Jetpack Boost – Website Speed, Performance and Critical CSS - Version 1.3.1

Version Description

Download this release

Release Info

Developer thingalon
Plugin Icon 128x128 Jetpack Boost – Website Speed, Performance and Critical CSS
Version 1.3.1
Comparing to
See all releases

Code changes from version 1.3.0 to 1.3.1

Files changed (77) hide show
  1. CHANGELOG.md +28 -10
  2. app/admin/class-admin.php +1 -1
  3. app/assets/dist/jetpack-boost.css +1 -0
  4. app/assets/dist/jetpack-boost.js +1 -1
  5. app/class-jetpack-boost.php +3 -2
  6. app/lib/class-cli.php +72 -6
  7. app/lib/class-speed-score-request.php +24 -12
  8. app/lib/class-speed-score.php +2 -1
  9. app/modules/critical-css/class-critical-css.php +63 -31
  10. compatibility/elementor.php +25 -0
  11. composer.json +8 -8
  12. jetpack-boost.php +6 -2
  13. readme.txt +24 -26
  14. vendor/autoload.php +1 -1
  15. vendor/autoload_packages.php +1 -1
  16. vendor/automattic/jetpack-a8c-mc-stats/CHANGELOG.md +6 -0
  17. vendor/automattic/jetpack-admin-ui/CHANGELOG.md +7 -0
  18. vendor/automattic/jetpack-admin-ui/src/class-admin-menu.php +1 -1
  19. vendor/automattic/jetpack-assets/CHANGELOG.md +27 -0
  20. vendor/automattic/jetpack-assets/composer.json +2 -2
  21. vendor/automattic/jetpack-assets/src/class-assets.php +180 -0
  22. vendor/automattic/jetpack-connection/CHANGELOG.md +28 -0
  23. vendor/automattic/jetpack-connection/composer.json +3 -3
  24. vendor/automattic/jetpack-connection/legacy/class-jetpack-xmlrpc-server.php +15 -0
  25. vendor/automattic/jetpack-connection/src/class-client.php +11 -0
  26. vendor/automattic/jetpack-connection/src/class-package-version.php +1 -1
  27. vendor/automattic/jetpack-connection/src/class-rest-connector.php +18 -0
  28. vendor/automattic/jetpack-constants/CHANGELOG.md +16 -0
  29. vendor/automattic/jetpack-constants/composer.json +1 -1
  30. vendor/automattic/jetpack-constants/src/class-constants.php +1 -1
  31. vendor/automattic/jetpack-device-detection/CHANGELOG.md +11 -0
  32. vendor/automattic/jetpack-device-detection/src/class-user-agent-info.php +8 -1
  33. vendor/automattic/jetpack-lazy-images/CHANGELOG.md +29 -0
  34. vendor/automattic/jetpack-lazy-images/composer.json +1 -1
  35. vendor/automattic/jetpack-lazy-images/dist/intersection-observer.js +0 -1
  36. vendor/automattic/jetpack-lazy-images/dist/intersection-observer.min.asset.php +1 -0
  37. vendor/automattic/jetpack-lazy-images/dist/intersection-observer.min.js +1 -0
  38. vendor/automattic/jetpack-lazy-images/dist/intersection-observer.src.js +1 -1014
  39. vendor/automattic/jetpack-lazy-images/dist/lazy-images.js +0 -1
  40. vendor/automattic/jetpack-lazy-images/dist/lazy-images.min.asset.php +1 -0
  41. vendor/automattic/jetpack-lazy-images/dist/lazy-images.min.js +1 -0
  42. vendor/automattic/jetpack-lazy-images/src/lazy-images.php +16 -20
  43. vendor/automattic/jetpack-lazy-images/webpack.config.js +43 -0
  44. vendor/automattic/jetpack-options/CHANGELOG.md +5 -0
  45. vendor/automattic/jetpack-options/legacy/class-jetpack-options.php +29 -28
  46. vendor/automattic/jetpack-redirect/CHANGELOG.md +16 -0
  47. vendor/automattic/jetpack-redirect/composer.json +2 -2
  48. vendor/automattic/jetpack-roles/CHANGELOG.md +11 -0
  49. vendor/automattic/jetpack-roles/composer.json +1 -1
  50. vendor/automattic/jetpack-status/CHANGELOG.md +21 -0
  51. vendor/automattic/jetpack-status/composer.json +5 -3
  52. vendor/automattic/jetpack-status/src/class-host.php +40 -0
  53. vendor/automattic/jetpack-status/src/class-status.php +4 -2
  54. vendor/automattic/jetpack-terms-of-service/CHANGELOG.md +16 -0
  55. vendor/automattic/jetpack-terms-of-service/composer.json +2 -2
  56. vendor/automattic/jetpack-tracking/CHANGELOG.md +21 -0
  57. vendor/automattic/jetpack-tracking/composer.json +3 -3
  58. vendor/composer/autoload_classmap.php +1 -0
  59. vendor/composer/autoload_real.php +4 -4
  60. vendor/composer/autoload_static.php +6 -5
  61. vendor/composer/installed.json +118 -115
  62. vendor/composer/installed.php +46 -46
  63. vendor/composer/jetpack_autoload_classmap.php +208 -204
  64. vendor/jetpack-autoloader/class-autoloader-handler.php +1 -1
  65. vendor/jetpack-autoloader/class-autoloader-locator.php +1 -1
  66. vendor/jetpack-autoloader/class-autoloader.php +1 -1
  67. vendor/jetpack-autoloader/class-container.php +1 -1
  68. vendor/jetpack-autoloader/class-hook-manager.php +1 -1
  69. vendor/jetpack-autoloader/class-latest-autoloader-guard.php +1 -1
  70. vendor/jetpack-autoloader/class-manifest-reader.php +1 -1
  71. vendor/jetpack-autoloader/class-path-processor.php +1 -1
  72. vendor/jetpack-autoloader/class-php-autoloader.php +4 -1
  73. vendor/jetpack-autoloader/class-plugin-locator.php +1 -1
  74. vendor/jetpack-autoloader/class-plugins-handler.php +1 -1
  75. vendor/jetpack-autoloader/class-shutdown-handler.php +1 -1
  76. vendor/jetpack-autoloader/class-version-loader.php +1 -1
  77. vendor/jetpack-autoloader/class-version-selector.php +1 -1
CHANGELOG.md CHANGED
@@ -5,30 +5,47 @@ All notable changes to this project will be documented in this file.
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
 
8
- ## [1.3.0] - 2021-10-25
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9
  ### Security
10
  - Critical CSS: Add permissions checks to AJAX endpoints used when dismissing Critical CSS Recommendations.
11
 
12
  ### Added
 
13
  - Critical CSS: Added explanation for mod-security HTTP 418 errors.
14
  - Critical CSS: Added stats tracking for generation outcomes.
15
  - Critical CSS: Added step-by-step instructions for Advanced Recommendations.
16
- - Critical CSS: Add extra information to "fetch" errors when generating Critical CSS.
17
  - Critical CSS: More descriptive error message if critical css is failing because of x-frame-options deny config.
18
  - Speed Scores: Added "without Boost" speed score indicator.
19
- - Speed Scores: Retry if a score request job is stuck for more than 15 minutes
20
 
21
  ### Changed
22
  - Critical CSS: Take port numbers into account when comparing origins for proxying.
23
- - Refresh speed score if theme has changed since last score
24
- - Update Critical CSS Generator library to latest
25
- - Use the Admin UI package and register the menu under the Jetpack top level menu
26
 
27
  ### Fixed
28
  - Critical CSS: Clear generated CSS on theme change.
29
  - Critical CSS: Ensure generator process is resumed after module deactivated and reactivated without reload.
30
- - Critical CSS: Move CSS file proxying to client-side, to catch WAF-based CDN URLs
31
- - Make sure that the Critical CSS Nonce for dismissing recommendations is always available in the settings page
32
  - Speed Scores: Clear speed score on plugin deactivation and uninstallation.
33
 
34
  ## [1.2.0] - 2021-08-12
@@ -101,5 +118,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
101
 
102
  - First public alpha release
103
 
104
- [1.3.0]: https://github.com/Automattic/jetpack-boost-production/compare/v1.2.0...v1.3.0
105
- [1.2.0]: https://github.com/Automattic/jetpack-boost-production/compare/v1.1.0...v1.2.0
 
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
 
8
+ ## [1.3.1-beta] - 2021-12-02
9
+ ### Added
10
+ - Critical CSS: Added a filter to allow stylesheets to load synchronously, to avoid CLS issues on certain setups.
11
+ - Critical CSS: Exclude "library" posts from Elementor plugin when generating Critical CSS.
12
+ - Critical CSS: Explicitly hide admin_bar during Critical CSS render, to improve compatability with custom admin bar setups.
13
+ - Speed Scores: Automatically retry if a speed score request is stuck for more than 15 minutes.
14
+ - Stability: New end-to-end testing system.
15
+
16
+ ### Changed
17
+ - Critical CSS: Detect external CSS URLs from the client side, to improve compatibility with WAFs which modify HTML.
18
+ - Move Boost admin menu into Jetpack submenu.
19
+ - Speed Scores: Automatically refresh speed scores if the theme has changed.
20
+ - Speed Scores: Include active modules and Jetpack Boost version with Speed Score requests.
21
+
22
+ ### Fixed
23
+ - Critical CSS: Ensure CSS files still load when JavaScript is not enabled.
24
+ - Critical CSS: Fixed issue with re-serving Critical CSS during generation process
25
+ - Critical CSS: Fix handling for corrupted font-face rules.
26
+ - Critical CSS: Fix issue with dismissing recommendations after enabling Critical CSS without page refresh.
27
+ - Critical CSS: Use home_url instead of site_url when determining homepage during Critical CSS generation.
28
+ - Minor UI fixes for small screens and tooltip display.
29
+ - Speed Scores: Do not show comparative scores when no modules are active.
30
+
31
+ ## [1.3.0-beta] - 2021-10-04
32
  ### Security
33
  - Critical CSS: Add permissions checks to AJAX endpoints used when dismissing Critical CSS Recommendations.
34
 
35
  ### Added
36
+ - Critical CSS: Add extra information to "fetch" errors when generating Critical CSS.
37
  - Critical CSS: Added explanation for mod-security HTTP 418 errors.
38
  - Critical CSS: Added stats tracking for generation outcomes.
39
  - Critical CSS: Added step-by-step instructions for Advanced Recommendations.
 
40
  - Critical CSS: More descriptive error message if critical css is failing because of x-frame-options deny config.
41
  - Speed Scores: Added "without Boost" speed score indicator.
 
42
 
43
  ### Changed
44
  - Critical CSS: Take port numbers into account when comparing origins for proxying.
 
 
 
45
 
46
  ### Fixed
47
  - Critical CSS: Clear generated CSS on theme change.
48
  - Critical CSS: Ensure generator process is resumed after module deactivated and reactivated without reload.
 
 
49
  - Speed Scores: Clear speed score on plugin deactivation and uninstallation.
50
 
51
  ## [1.2.0] - 2021-08-12
118
 
119
  - First public alpha release
120
 
121
+ [1.3.1-beta]: https://github.com/Automattic/jetpack-boost-production/compare/v1.3.0-beta...v1.3.1-beta
122
+ [1.3.0-beta]: https://github.com/Automattic/jetpack-boost-production/compare/v1.2.0...v1.3.0-beta
123
+ [1.2.0]: https://github.com/Automattic/jetpack-boost-production/compare/v1.1.0...v1.2.0-beta
app/admin/class-admin.php CHANGED
@@ -138,7 +138,7 @@ class Admin {
138
  'config' => $this->jetpack_boost->config()->get_data(),
139
  'locale' => get_locale(),
140
  'site' => array(
141
- 'url' => get_site_url(),
142
  'online' => ! ( new Status() )->is_offline_mode(),
143
  'assetPath' => plugins_url( $internal_path, JETPACK_BOOST_PATH ),
144
  ),
138
  'config' => $this->jetpack_boost->config()->get_data(),
139
  'locale' => get_locale(),
140
  'site' => array(
141
+ 'url' => get_home_url(),
142
  'online' => ! ( new Status() )->is_offline_mode(),
143
  'assetPath' => plugins_url( $internal_path, JETPACK_BOOST_PATH ),
144
  ),
app/assets/dist/jetpack-boost.css CHANGED
@@ -510,6 +510,7 @@
510
  @media (max-width: 767px) {
511
  .jb-score-bar__filler {
512
  min-width: 43px;
 
513
  }
514
  }
515
  .jb-score-bar__no_boost_score {
510
  @media (max-width: 767px) {
511
  .jb-score-bar__filler {
512
  min-width: 43px;
513
+ border-radius: inherit;
514
  }
515
  }
516
  .jb-score-bar__no_boost_score {
app/assets/dist/jetpack-boost.js CHANGED
@@ -1 +1 @@
1
- var app=function(t){"use strict";function e(){}const n=t=>t;function o(t,e){for(const n in e)t[n]=e[n];return t}function r(t){return t()}function s(){return Object.create(null)}function i(t){t.forEach(r)}function c(t){return"function"==typeof t}function a(t,e){return t!=t?e==e:t!==e||t&&"object"==typeof t||"function"==typeof t}function l(t,...n){if(null==t)return e;const o=t.subscribe(...n);return o.unsubscribe?()=>o.unsubscribe():o}function u(t,e,n){t.$$.on_destroy.push(l(e,n))}function d(t,e,n,o){if(t){const r=p(t,e,n,o);return t[0](r)}}function p(t,e,n,r){return t[1]&&r?o(n.ctx.slice(),t[1](r(e))):n.ctx}function h(t,e,n,o){if(t[2]&&o){const r=t[2](o(n));if(void 0===e.dirty)return r;if("object"==typeof r){const t=[],n=Math.max(e.dirty.length,r.length);for(let o=0;o<n;o+=1)t[o]=e.dirty[o]|r[o];return t}return e.dirty|r}return e.dirty}function f(t,e,n,o,r,s){if(r){const i=p(e,n,o,s);t.p(i,r)}}function g(t){if(t.ctx.length>32){const e=[],n=t.ctx.length/32;for(let t=0;t<n;t++)e[t]=-1;return e}return-1}function m(t){const e={};for(const n in t)"$"!==n[0]&&(e[n]=t[n]);return e}const $="undefined"!=typeof window;let b=$?()=>window.performance.now():()=>Date.now(),_=$?t=>requestAnimationFrame(t):e;const w=new Set;function v(t){w.forEach((e=>{e.c(t)||(w.delete(e),e.f())})),0!==w.size&&_(v)}let y=!1;function k(t,e,n,o){for(;t<e;){const r=t+(e-t>>1);n(r)<=o?t=r+1:e=r}return t}function j(t,e){t.appendChild(e)}function x(t){if(!t)return document;const e=t.getRootNode?t.getRootNode():t.ownerDocument;return e&&e.host?e:t.ownerDocument}function S(t){const e=L("style");return function(t,e){j(t.head||t,e)}(x(t),e),e}function E(t,e){if(y){for(!function(t){if(t.hydrate_init)return;t.hydrate_init=!0;let e=t.childNodes;if("HEAD"===t.nodeName){const t=[];for(let n=0;n<e.length;n++){const o=e[n];void 0!==o.claim_order&&t.push(o)}e=t}const n=new Int32Array(e.length+1),o=new Int32Array(e.length);n[0]=-1;let r=0;for(let t=0;t<e.length;t++){const s=e[t].claim_order,i=(r>0&&e[n[r]].claim_order<=s?r+1:k(1,r,(t=>e[n[t]].claim_order),s))-1;o[t]=n[i]+1;const c=i+1;n[c]=t,r=Math.max(c,r)}const s=[],i=[];let c=e.length-1;for(let t=n[r]+1;0!=t;t=o[t-1]){for(s.push(e[t-1]);c>=t;c--)i.push(e[c]);c--}for(;c>=0;c--)i.push(e[c]);s.reverse(),i.sort(((t,e)=>t.claim_order-e.claim_order));for(let e=0,n=0;e<i.length;e++){for(;n<s.length&&i[e].claim_order>=s[n].claim_order;)n++;const o=n<s.length?s[n]:null;t.insertBefore(i[e],o)}}(t),(void 0===t.actual_end_child||null!==t.actual_end_child&&t.actual_end_child.parentElement!==t)&&(t.actual_end_child=t.firstChild);null!==t.actual_end_child&&void 0===t.actual_end_child.claim_order;)t.actual_end_child=t.actual_end_child.nextSibling;e!==t.actual_end_child?void 0===e.claim_order&&e.parentNode===t||t.insertBefore(e,t.actual_end_child):t.actual_end_child=e.nextSibling}else e.parentNode===t&&null===e.nextSibling||t.appendChild(e)}function C(t,e,n){t.insertBefore(e,n||null)}function B(t,e,n){y&&!n?E(t,e):e.parentNode===t&&e.nextSibling==n||t.insertBefore(e,n||null)}function P(t){t.parentNode.removeChild(t)}function z(t,e){for(let n=0;n<t.length;n+=1)t[n]&&t[n].d(e)}function L(t){return document.createElement(t)}function M(t){return document.createElementNS("http://www.w3.org/2000/svg",t)}function T(t){return document.createTextNode(t)}function V(){return T(" ")}function O(){return T("")}function I(t,e,n,o){return t.addEventListener(e,n,o),()=>t.removeEventListener(e,n,o)}function R(t){return function(e){return e.preventDefault(),t.call(this,e)}}function N(t,e,n){null==n?t.removeAttribute(e):t.getAttribute(e)!==n&&t.setAttribute(e,n)}function A(t,e){for(const n in e)N(t,n,e[n])}function J(t){return Array.from(t.childNodes)}function H(t,e,n){return function(t,e,n,o){return function(t,e,n,o,r=!1){!function(t){void 0===t.claim_info&&(t.claim_info={last_index:0,total_claimed:0})}(t);const s=(()=>{for(let o=t.claim_info.last_index;o<t.length;o++){const s=t[o];if(e(s)){const e=n(s);return void 0===e?t.splice(o,1):t[o]=e,r||(t.claim_info.last_index=o),s}}for(let o=t.claim_info.last_index-1;o>=0;o--){const s=t[o];if(e(s)){const e=n(s);return void 0===e?t.splice(o,1):t[o]=e,r?void 0===e&&t.claim_info.last_index--:t.claim_info.last_index=o,s}}return o()})();return s.claim_order=t.claim_info.total_claimed,t.claim_info.total_claimed+=1,s}(t,(t=>t.nodeName===e),(t=>{const e=[];for(let o=0;o<t.attributes.length;o++){const r=t.attributes[o];n[r.name]||e.push(r.name)}e.forEach((e=>t.removeAttribute(e)))}),(()=>o(e)))}(t,e,n,M)}function W(t,e){e=""+e,t.wholeText!==e&&(t.data=e)}function F(t,e,n,o){t.style.setProperty(e,n,o?"important":"")}function D(t,e,n){t.classList[n?"add":"remove"](e)}function U(t,e,n=!1){const o=document.createEvent("CustomEvent");return o.initCustomEvent(t,n,!1,e),o}const q=new Set;let Y,G=0;function X(t,e,n,o,r,s,i,c=0){const a=16.666/o;let l="{\n";for(let t=0;t<=1;t+=a){const o=e+(n-e)*s(t);l+=100*t+`%{${i(o,1-o)}}\n`}const u=l+`100% {${i(n,1-n)}}\n}`,d=`__svelte_${function(t){let e=5381,n=t.length;for(;n--;)e=(e<<5)-e^t.charCodeAt(n);return e>>>0}(u)}_${c}`,p=x(t);q.add(p);const h=p.__svelte_stylesheet||(p.__svelte_stylesheet=S(t).sheet),f=p.__svelte_rules||(p.__svelte_rules={});f[d]||(f[d]=!0,h.insertRule(`@keyframes ${d} ${u}`,h.cssRules.length));const g=t.style.animation||"";return t.style.animation=`${g?`${g}, `:""}${d} ${o}ms linear ${r}ms 1 both`,G+=1,d}function K(t,e){const n=(t.style.animation||"").split(", "),o=n.filter(e?t=>t.indexOf(e)<0:t=>-1===t.indexOf("__svelte")),r=n.length-o.length;r&&(t.style.animation=o.join(", "),G-=r,G||_((()=>{G||(q.forEach((t=>{const e=t.__svelte_stylesheet;let n=e.cssRules.length;for(;n--;)e.deleteRule(n);t.__svelte_rules={}})),q.clear())})))}function Q(t){Y=t}function Z(){if(!Y)throw new Error("Function called outside component initialization");return Y}function tt(t){Z().$$.on_mount.push(t)}function et(){const t=Z();return(e,n)=>{const o=t.$$.callbacks[e];if(o){const r=U(e,n);o.slice().forEach((e=>{e.call(t,r)}))}}}function nt(t,e){const n=t.$$.callbacks[e.type];n&&n.slice().forEach((t=>t.call(this,e)))}const ot=[],rt=[],st=[],it=[],ct=Promise.resolve();let at=!1;function lt(t){st.push(t)}let ut=!1;const dt=new Set;function pt(){if(!ut){ut=!0;do{for(let t=0;t<ot.length;t+=1){const e=ot[t];Q(e),ht(e.$$)}for(Q(null),ot.length=0;rt.length;)rt.pop()();for(let t=0;t<st.length;t+=1){const e=st[t];dt.has(e)||(dt.add(e),e())}st.length=0}while(ot.length);for(;it.length;)it.pop()();at=!1,ut=!1,dt.clear()}}function ht(t){if(null!==t.fragment){t.update(),i(t.before_update);const e=t.dirty;t.dirty=[-1],t.fragment&&t.fragment.p(t.ctx,e),t.after_update.forEach(lt)}}let ft;function gt(t,e,n){t.dispatchEvent(U(`${e?"intro":"outro"}${n}`))}const mt=new Set;let $t;function bt(){$t={r:0,c:[],p:$t}}function _t(){$t.r||i($t.c),$t=$t.p}function wt(t,e){t&&t.i&&(mt.delete(t),t.i(e))}function vt(t,e,n,o){if(t&&t.o){if(mt.has(t))return;mt.add(t),$t.c.push((()=>{mt.delete(t),o&&(n&&t.d(1),o())})),t.o(e)}}const yt={duration:0};function kt(t,o,r,s){let a=o(t,r),l=s?0:1,u=null,d=null,p=null;function h(){p&&K(t,p)}function f(t,e){const n=t.b-l;return e*=Math.abs(n),{a:l,b:t.b,d:n,duration:e,start:t.start,end:t.start+e,group:t.group}}function g(o){const{delay:r=0,duration:s=300,easing:c=n,tick:g=e,css:m}=a||yt,$={start:b()+r,b:o};o||($.group=$t,$t.r+=1),u||d?d=$:(m&&(h(),p=X(t,l,o,s,r,c,m)),o&&g(0,1),u=f($,s),lt((()=>gt(t,o,"start"))),function(t){let e;0===w.size&&_(v),new Promise((n=>{w.add(e={c:t,f:n})}))}((e=>{if(d&&e>d.start&&(u=f(d,s),d=null,gt(t,u.b,"start"),m&&(h(),p=X(t,l,u.b,u.duration,0,c,a.css))),u)if(e>=u.end)g(l=u.b,1-l),gt(t,u.b,"end"),d||(u.b?h():--u.group.r||i(u.group.c)),u=null;else if(e>=u.start){const t=e-u.start;l=u.a+u.d*c(t/u.duration),g(l,1-l)}return!(!u&&!d)})))}return{run(t){c(a)?(ft||(ft=Promise.resolve(),ft.then((()=>{ft=null}))),ft).then((()=>{a=a(),g(t)})):g(t)},end(){h(),u=d=null}}}function jt(t,e){vt(t,1,1,(()=>{e.delete(t.key)}))}function xt(t,e){const n={},o={},r={$$scope:1};let s=t.length;for(;s--;){const i=t[s],c=e[s];if(c){for(const t in i)t in c||(o[t]=1);for(const t in c)r[t]||(n[t]=c[t],r[t]=1);t[s]=c}else for(const t in i)r[t]=1}for(const t in o)t in n||(n[t]=void 0);return n}function St(t){t&&t.c()}function Et(t,e,n,o){const{fragment:s,on_mount:a,on_destroy:l,after_update:u}=t.$$;s&&s.m(e,n),o||lt((()=>{const e=a.map(r).filter(c);l?l.push(...e):i(e),t.$$.on_mount=[]})),u.forEach(lt)}function Ct(t,e){const n=t.$$;null!==n.fragment&&(i(n.on_destroy),n.fragment&&n.fragment.d(e),n.on_destroy=n.fragment=null,n.ctx=[])}function Bt(t,e){-1===t.$$.dirty[0]&&(ot.push(t),at||(at=!0,ct.then(pt)),t.$$.dirty.fill(0)),t.$$.dirty[e/31|0]|=1<<e%31}function Pt(t,n,o,r,c,a,l,u=[-1]){const d=Y;Q(t);const p=t.$$={fragment:null,ctx:null,props:a,update:e,not_equal:c,bound:s(),on_mount:[],on_destroy:[],on_disconnect:[],before_update:[],after_update:[],context:new Map(d?d.$$.context:n.context||[]),callbacks:s(),dirty:u,skip_bound:!1,root:n.target||d.$$.root};l&&l(p.root);let h=!1;if(p.ctx=o?o(t,n.props||{},((e,n,...o)=>{const r=o.length?o[0]:n;return p.ctx&&c(p.ctx[e],p.ctx[e]=r)&&(!p.skip_bound&&p.bound[e]&&p.bound[e](r),h&&Bt(t,e)),n})):[],p.update(),h=!0,i(p.before_update),p.fragment=!!r&&r(p.ctx),n.target){if(n.hydrate){y=!0;const t=J(n.target);p.fragment&&p.fragment.l(t),t.forEach(P)}else p.fragment&&p.fragment.c();n.intro&&wt(t.$$.fragment),Et(t,n.target,n.anchor,n.customElement),y=!1,pt()}Q(d)}class zt{$destroy(){Ct(this,1),this.$destroy=e}$on(t,e){const n=this.$$.callbacks[t]||(this.$$.callbacks[t]=[]);return n.push(e),()=>{const t=n.indexOf(e);-1!==t&&n.splice(t,1)}}$set(t){var e;this.$$set&&(e=t,0!==Object.keys(e).length)&&(this.$$.skip_bound=!0,this.$$set(t),this.$$.skip_bound=!1)}}function Lt(t){let n,r,s,i=[{class:"gridicon gridicons-checkmark-circle"},{height:"24"},{width:"24"},{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},t[0]],c={};for(let t=0;t<i.length;t+=1)c=o(c,i[t]);return{c(){n=M("svg"),r=M("g"),s=M("path"),this.h()},l(t){n=H(t,"svg",{class:!0,height:!0,width:!0,xmlns:!0,viewBox:!0});var e=J(n);r=H(e,"g",{});var o=J(r);s=H(o,"path",{d:!0}),J(s).forEach(P),o.forEach(P),e.forEach(P),this.h()},h(){N(s,"d","M11 17.768l-4.884-4.884 1.768-1.768L11 14.232l8.658-8.658C17.823 3.39 15.075 2 12 2 6.477 2 2 6.477 2 12s4.477 10 10 10 10-4.477 10-10c0-1.528-.353-2.97-.966-4.266L11 17.768z"),A(n,c)},m(t,e){B(t,n,e),E(n,r),E(r,s)},p(t,[e]){A(n,c=xt(i,[{class:"gridicon gridicons-checkmark-circle"},{height:"24"},{width:"24"},{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},1&e&&t[0]]))},i:e,o:e,d(t){t&&P(n)}}}function Mt(t,e,n){return t.$$set=t=>{n(0,e=o(o({},e),m(t)))},[e=m(e)]}class Tt extends zt{constructor(t){super(),Pt(this,t,Mt,Lt,a,{})}}function Vt(t,e,n){for(const o of Array.from(t.childNodes)){let t;if(n[o.nodeName]){const[e,r,s]=n[o.nodeName];t=It(e,r,s),Ot(o,t)}else o.tagName?(t=document.createElement(o.tagName),Ot(o,t)):t=o.cloneNode();e.appendChild(t),Vt(o,t,n)}}function Ot(t,e){for(let n=0;n<t.attributes.length;n++){const o=t.attributes.item(n);e.setAttribute(o.name,o.value)}}function It(t,e,n){const o=document.createElement(t);for(const[t,n]of Object.entries(e))t.startsWith("on")&&n instanceof Function?o.addEventListener(t.substring(2),n):o.setAttribute(t,n.toString());return n&&o.append(n),o}function Rt(t){let n;return{c(){n=L("span")},m(e,o){C(e,n,o),t[3](n)},p:e,i:e,o:e,d(e){e&&P(n),t[3](null)}}}function Nt(t,e,n){let o,{template:r}=e,{vars:s}=e;return tt((()=>{Vt(function(t){const e="<PseudoHTML>"+t+"</PseudoHTML>";return(new DOMParser).parseFromString(e,"application/xml").childNodes[0]}(r),o,s)})),t.$$set=t=>{"template"in t&&n(1,r=t.template),"vars"in t&&n(2,s=t.vars)},[o,r,s,function(t){rt[t?"unshift":"push"]((()=>{o=t,n(0,o)}))}]}class At extends zt{constructor(t){super(),Pt(this,t,Nt,Rt,a,{template:1,vars:2})}}function Jt(t,e="link"){return{[e]:["a",{href:t,target:"_blank",rel:"noopener noreferrer"}]}}const Ht=[];function Wt(t,e){return{subscribe:Ft(t,e).subscribe}}function Ft(t,n=e){let o;const r=new Set;function s(e){if(a(t,e)&&(t=e,o)){const e=!Ht.length;for(const e of r)e[1](),Ht.push(e,t);if(e){for(let t=0;t<Ht.length;t+=2)Ht[t][0](Ht[t+1]);Ht.length=0}}}return{set:s,update:function(e){s(e(t))},subscribe:function(i,c=e){const a=[i,c];return r.add(a),1===r.size&&(o=n(s)||e),i(t),()=>{r.delete(a),0===r.size&&(o(),o=null)}}}}function Dt(t,n,o){const r=!Array.isArray(t),s=r?[t]:t,a=n.length<2;return Wt(o,(t=>{let o=!1;const u=[];let d=0,p=e;const h=()=>{if(d)return;p();const o=n(r?u[0]:u,t);a?t(o):p=c(o)?o:e},f=s.map(((t,e)=>l(t,(t=>{u[e]=t,d&=~(1<<e),o&&h()}),(()=>{d|=1<<e}))));return o=!0,h(),function(){i(f),p()}}))}function Ut(t,e){return"string"==typeof t?t:t&&t.toString instanceof Function?t.toString():e}function qt(t){return!!t&&t instanceof Object&&!(t instanceof Array)}class Yt extends Error{constructor(t,e,n){super(),this.httpCode=t,this.body=e,this.parseError=n}get message(){switch(this.httpCode){case 403:return this.getRestApiErrorMessage();case 200:if(this.parseError)return t.sprintf(t.__("Received invalid response while communicating with your WordPress site: %s","jetpack-boost"),this.parseError.message)}return t.sprintf(t.__("HTTP %d error received while communicating with the server.","jetpack-boost"),this.httpCode)}getDisplayBody(){return qt(this.body)?JSON.stringify(this.body,null," "):Ut(this.body,"").substring(0,1e3)}getRestApiErrorMessage(){return t.__("Your site's REST API does not seem to be accessible. Jetpack Boost requires access to your REST API in order to receive site performance scores. Please make sure that your site's REST API is active and accessible, and try again.","jetpack-boost")}}async function Gt(e,n,o=null){const r={method:e,mode:"cors",headers:{"X-WP-Nonce":wpApiSettings.nonce}};"post"!==e&&"delete"!==e||!o||(r.body=JSON.stringify(o),r.headers["Content-Type"]="application/json");const s=function(t){return wpApiSettings.root+Jetpack_Boost.api.namespace+Jetpack_Boost.api.prefix+t}(n);let i;try{i=await fetch(s,r)}catch(e){const n=r;delete n.body,delete n.headers["X-WP-Nonce"];const o={requestInitiator:window.location.href,requestUrl:s,requestArgs:n,originalErrorMessage:e.toString()};throw new Error(t.sprintf(t.__("An error occurred while trying to communicate with the site REST API. Extra debug info: %s","jetpack-boost"),JSON.stringify(o)))}return i}async function Xt(t,e,n=null){const o=await Gt(t,e,n);let r,s;try{r=await o.text()}catch(t){throw new Yt(o.status,null,t)}try{s=JSON.parse(r)}catch(t){throw new Yt(o.status,r,t)}if(!o.ok)throw new Yt(o.status,s,null);return s}var Kt={get:function(t){return Xt("get",t)},post:function(t,e=null){return Xt("post",t,e)},delete:function(t,e=null){return Xt("delete",t,e)}};const Qt=Jetpack_Boost.connection,{subscribe:Zt,update:te}=Ft(Qt);function ee(t){te((e=>Object.assign(Object.assign({},e),t)))}const ne={subscribe:Zt,initialize:async function(){ee({isConnecting:!0});try{ee(await Kt.post("/connection"))}catch(t){ee({isConnecting:!1,error:t})}},refresh:async function(){ee(await Kt.get("/connection"))}};function oe(t,e="action"){return{[e]:["a",{class:"action",onclick:e=>{e.preventDefault(),t(e.target.getAttribute("name"))},href:"#"}]}}function re(t,e){return t instanceof Error?t:"string"==typeof t||t instanceof String?new Error(t.toString()):t.message?new Error(t.message):e?new Error(e):new Error(JSON.stringify(t))}function se(t="support"){return Jt("https://wordpress.org/support/plugin/jetpack-boost/",t)}function ie(t){let n,r,s,i=[{version:"1.1"},{xmlns:"http://www.w3.org/2000/svg"},{"xmlns:xlink":"http://www.w3.org/1999/xlink"},{x:"0px"},{y:"0px"},{viewBox:"0 0 24 24"},{style:"enable-background:new 0 0 24 24;"},{"xml:space":"preserve"},t[0]],c={};for(let t=0;t<i.length;t+=1)c=o(c,i[t]);return{c(){n=M("svg"),r=M("g"),s=M("path"),this.h()},l(t){n=H(t,"svg",{version:!0,xmlns:!0,"xmlns:xlink":!0,x:!0,y:!0,viewBox:!0,style:!0,"xml:space":!0});var e=J(n);r=H(e,"g",{id:!0});var o=J(r);s=H(o,"path",{style:!0,d:!0}),J(s).forEach(P),o.forEach(P),e.forEach(P),this.h()},h(){F(s,"fill","#d63638"),N(s,"d","M12,4c4.411,0,8,3.589,8,8s-3.589,8-8,8s-8-3.589-8-8S7.589,4,12,4 M12,2C6.477,2,2,6.477,2,12s4.477,10,10,10 s10-4.477,10-10S17.523,2,12,2L12,2z M13,15h-2v2h2V15z M11,13h2l0.5-6h-3L11,13z"),N(r,"id","notice-outline"),A(n,c)},m(t,e){B(t,n,e),E(n,r),E(r,s)},p(t,[e]){A(n,c=xt(i,[{version:"1.1"},{xmlns:"http://www.w3.org/2000/svg"},{"xmlns:xlink":"http://www.w3.org/1999/xlink"},{x:"0px"},{y:"0px"},{viewBox:"0 0 24 24"},{style:"enable-background:new 0 0 24 24;"},{"xml:space":"preserve"},1&e&&t[0]]))},i:e,o:e,d(t){t&&P(n)}}}function ce(t,e,n){return t.$$set=t=>{n(0,e=o(o({},e),m(t)))},[e=m(e)]}class ae extends zt{constructor(t){super(),Pt(this,t,ce,ie,a,{})}}const le=t=>({}),ue=t=>({});function de(t){let e,n;return{c(){e=L("pre"),n=T(t[0]),N(e,"class","data")},m(t,o){C(t,e,o),j(e,n)},p(t,e){1&e&&W(n,t[0])},d(t){t&&P(e)}}}function pe(t){let e,n,o;return n=new At({props:{template:t[2],vars:t[4]}}),{c(){e=L("p"),St(n.$$.fragment),N(e,"class","suggestion")},m(t,r){C(t,e,r),Et(n,e,null),o=!0},p(t,e){const o={};4&e&&(o.template=t[2]),n.$set(o)},i(t){o||(wt(n.$$.fragment,t),o=!0)},o(t){vt(n.$$.fragment,t),o=!1},d(t){t&&P(e),Ct(n)}}}function he(t){let n,o,r,s,i,c,a,l,u,p,m,$,b;o=new ae({props:{class:"icon"}});const _=t[8].default,w=d(_,t,t[7],null),v=w||function(t){let n;return{c(){n=L("p"),n.textContent=`${t[3]}`},m(t,e){C(t,n,e)},p:e,d(t){t&&P(n)}}}(t);let y=t[0]&&de(t),k=t[2]&&pe(t);const x=t[8].actionButton,S=d(x,t,t[7],ue);return{c(){n=L("div"),St(o.$$.fragment),r=V(),s=L("div"),i=L("div"),c=T(t[1]),a=V(),l=L("div"),v&&v.c(),u=V(),y&&y.c(),p=V(),k&&k.c(),m=V(),$=L("div"),S&&S.c(),N(i,"class","jb-error__description"),N(l,"class","jb-error__message"),N(s,"class","jb-error__main-content"),N($,"class","jb-error__main-action"),N(n,"class","jb-error")},m(t,e){C(t,n,e),Et(o,n,null),j(n,r),j(n,s),j(s,i),j(i,c),j(s,a),j(s,l),v&&v.m(l,null),j(l,u),y&&y.m(l,null),j(l,p),k&&k.m(l,null),j(n,m),j(n,$),S&&S.m($,null),b=!0},p(t,[e]){(!b||2&e)&&W(c,t[1]),w&&w.p&&(!b||128&e)&&f(w,_,t,t[7],b?h(_,t[7],e,null):g(t[7]),null),t[0]?y?y.p(t,e):(y=de(t),y.c(),y.m(l,p)):y&&(y.d(1),y=null),t[2]?k?(k.p(t,e),4&e&&wt(k,1)):(k=pe(t),k.c(),wt(k,1),k.m(l,null)):k&&(bt(),vt(k,1,1,(()=>{k=null})),_t()),S&&S.p&&(!b||128&e)&&f(S,x,t,t[7],b?h(x,t[7],e,le):g(t[7]),ue)},i(t){b||(wt(o.$$.fragment,t),wt(v,t),wt(k),wt(S,t),b=!0)},o(t){vt(o.$$.fragment,t),vt(v,t),vt(k),vt(S,t),b=!1},d(t){t&&P(n),Ct(o),v&&v.d(t),y&&y.d(),k&&k.d(),S&&S.d(t)}}}function fe(t,e,n){let{$$slots:o={},$$scope:r}=e,{title:s}=e,{error:i=new Error(s)}=e,{data:c}=e,{suggestion:a}=e,{vars:l={}}=e;const u=re(i).message;!c&&i instanceof Yt&&(c=i.getDisplayBody());const d=et();const p={...se(),...oe((function(t){d(t),d("action",t)}),"action"),...l};return t.$$set=t=>{"title"in t&&n(1,s=t.title),"error"in t&&n(5,i=t.error),"data"in t&&n(0,c=t.data),"suggestion"in t&&n(2,a=t.suggestion),"vars"in t&&n(6,l=t.vars),"$$scope"in t&&n(7,r=t.$$scope)},[c,s,a,u,p,i,l,r,o]}class ge extends zt{constructor(t){super(),Pt(this,t,fe,he,a,{title:1,error:5,data:0,suggestion:2,vars:6})}}const me=Jetpack_Boost;function $e(t,e,n){const o=t.slice();return o[3]=e[n],o}function be(t){let n,o,r,s,i,c,a,l=t[3]+"";return o=new Tt({}),{c(){n=L("div"),St(o.$$.fragment),r=V(),s=L("span"),i=T(l),c=V(),N(n,"class","checklist__item")},m(t,e){C(t,n,e),Et(o,n,null),j(n,r),j(n,s),j(s,i),j(n,c),a=!0},p:e,i(t){a||(wt(o.$$.fragment,t),a=!0)},o(t){vt(o.$$.fragment,t),a=!1},d(t){t&&P(n),Ct(o)}}}function _e(e){let n,o;return n=new ge({props:{title:t.__("Failed to connect to WordPress.com","jetpack-boost"),suggestion:t.__("If you need further assistance, contact <support>Jetpack Boost Support</support>.","jetpack-boost"),error:e[0].error}}),{c(){St(n.$$.fragment)},m(t,e){Et(n,t,e),o=!0},p(t,e){const o={};1&e&&(o.error=t[0].error),n.$set(o)},i(t){o||(wt(n.$$.fragment,t),o=!0)},o(t){vt(n.$$.fragment,t),o=!1},d(t){Ct(n,t)}}}function we(n){let o,r=t.__("Get Started","jetpack-boost")+"";return{c(){o=T(r)},m(t,e){C(t,o,e)},p:e,d(t){t&&P(o)}}}function ve(n){let o,r=t.__("Connecting to WordPress.com","jetpack-boost")+"";return{c(){o=T(r)},m(t,e){C(t,o,e)},p:e,d(t){t&&P(o)}}}function ye(e){let n,o,r,s,i,c,a,l,u,d,p,h,f,g,m,$,b,_,w,v=e[2],y=[];for(let t=0;t<v.length;t+=1)y[t]=be($e(e,v,t));const k=t=>vt(y[t],1,1,(()=>{y[t]=null}));let x=e[0].error&&_e(e);function S(t,e){return t[0].isConnecting?ve:we}let E=S(e),B=E(e);return $=new At({props:{template:t.__("By clicking the button above, you agree to our\n\t\t\t\t\t\t <tosLink>Terms of Service</tosLink> and to\n\t\t\t\t\t\t <shareLink>share details</shareLink> with WordPress.com.","jetpack-boost"),vars:{...Jt(e[1]("https://jetpack.com/redirect/?source=wpcom-tos"),"tosLink"),...Jt(e[1]("https://jetpack.com/redirect/?source=jetpack-support-what-data-does-jetpack-sync"),"shareLink")}}}),{c(){n=L("div"),o=L("div"),r=L("div"),s=L("h1"),s.textContent=`${t.__("Get faster loading times with Jetpack Boost","jetpack-boost")}`,i=V(),c=L("p"),c.textContent=`${t.__("Connect Jetpack Boost and we will make your site faster in no time.","jetpack-boost")}`,a=V(),l=L("div");for(let t=0;t<y.length;t+=1)y[t].c();u=V(),x&&x.c(),d=V(),p=L("button"),B.c(),f=V(),g=L("div"),m=L("p"),St($.$$.fragment),N(s,"class","jb-connection__title"),N(c,"class","jb-connection__description"),N(r,"class","jb-connection__header"),N(l,"class","checklist"),N(p,"type","button"),N(p,"class","components-button is-primary"),p.disabled=h=e[0].isConnecting,N(g,"class","jb-connection-overlay"),N(o,"class","jb-connection"),N(n,"class","jb-section__inner connection")},m(t,e){C(t,n,e),j(n,o),j(o,r),j(r,s),j(r,i),j(r,c),j(o,a),j(o,l);for(let t=0;t<y.length;t+=1)y[t].m(l,null);j(o,u),x&&x.m(o,null),j(o,d),j(o,p),B.m(p,null),j(o,f),j(o,g),j(g,m),Et($,m,null),b=!0,_||(w=I(p,"click",ne.initialize),_=!0)},p(t,[e]){if(4&e){let n;for(v=t[2],n=0;n<v.length;n+=1){const o=$e(t,v,n);y[n]?(y[n].p(o,e),wt(y[n],1)):(y[n]=be(o),y[n].c(),wt(y[n],1),y[n].m(l,null))}for(bt(),n=v.length;n<y.length;n+=1)k(n);_t()}t[0].error?x?(x.p(t,e),1&e&&wt(x,1)):(x=_e(t),x.c(),wt(x,1),x.m(o,d)):x&&(bt(),vt(x,1,1,(()=>{x=null})),_t()),E===(E=S(t))&&B?B.p(t,e):(B.d(1),B=E(t),B&&(B.c(),B.m(p,null))),(!b||1&e&&h!==(h=t[0].isConnecting))&&(p.disabled=h)},i(t){if(!b){for(let t=0;t<v.length;t+=1)wt(y[t]);wt(x),wt($.$$.fragment,t),b=!0}},o(t){y=y.filter(Boolean);for(let t=0;t<y.length;t+=1)vt(y[t]);vt(x),vt($.$$.fragment,t),b=!1},d(t){t&&P(n),z(y,t),x&&x.d(),B.d(),Ct($),_=!1,w()}}}function ke(e,n,o){let r;u(e,ne,(t=>o(0,r=t)));const s=[t.__("Speed up your site load time","jetpack-boost"),t.__("Decrease bounce rate of your visitors","jetpack-boost"),t.__("Improve your SEO ranking","jetpack-boost"),t.__("Sell more stuff","jetpack-boost")];return[r,function(t){return me.site.url&&(t=t+"&site="+encodeURIComponent(me.site.url)),t},s]}class je extends zt{constructor(t){super(),Pt(this,t,ke,ye,a,{})}}function xe(n){let o,r,s,i,c,a,l,u,d,p,h,f,g,m,$,b,_;return p=new At({props:{template:t.__("Pages that take over 3 seconds to load have 4x the bounce\n\t\t\t\t\t\t\trate of pages that load in 2 seconds or less. (source: <link>Pingdom</link>).","jetpack-boost"),vars:Jt("https://royal.pingdom.com/page-load-time-really-affect-bounce-rate/")}}),b=new At({props:{template:t.__("A one-second delay in loading times can reduce conversion\n\t\t\t\t\t\t\trates by 20%. (source: <link>Google</link>).","jetpack-boost"),vars:Jt("https://web.dev/why-speed-matters/")}}),{c(){o=L("div"),r=L("div"),s=L("h3"),s.textContent=`${t.__("Did you know?","jetpack-boost")}`,i=V(),c=L("div"),a=L("div"),l=L("div"),l.textContent="4x",u=V(),d=L("div"),St(p.$$.fragment),h=V(),f=L("div"),g=L("div"),g.textContent="20%",m=V(),$=L("div"),St(b.$$.fragment),N(s,"class","jb-tips__title"),N(l,"class","item__rate"),N(d,"class","item__description"),N(a,"class","item"),N(g,"class","item__rate"),N($,"class","item__description"),N(f,"class","item"),N(c,"class","jb-tips__items"),N(r,"class","jb-tips"),N(o,"class","jb-container--narrow")},m(t,e){C(t,o,e),j(o,r),j(r,s),j(r,i),j(r,c),j(c,a),j(a,l),j(a,u),j(a,d),Et(p,d,null),j(c,h),j(c,f),j(f,g),j(f,m),j(f,$),Et(b,$,null),_=!0},p:e,i(t){_||(wt(p.$$.fragment,t),wt(b.$$.fragment,t),_=!0)},o(t){vt(p.$$.fragment,t),vt(b.$$.fragment,t),_=!1},d(t){t&&P(o),Ct(p),Ct(b)}}}class Se extends zt{constructor(t){super(),Pt(this,t,null,xe,a,{})}}function Ee(t){let n,r,s,i=[{class:"gridicon gridicons-computer"},{height:"24"},{width:"24"},{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},t[0]],c={};for(let t=0;t<i.length;t+=1)c=o(c,i[t]);return{c(){n=M("svg"),r=M("g"),s=M("path"),this.h()},l(t){n=H(t,"svg",{class:!0,height:!0,width:!0,xmlns:!0,viewBox:!0});var e=J(n);r=H(e,"g",{});var o=J(r);s=H(o,"path",{d:!0}),J(s).forEach(P),o.forEach(P),e.forEach(P),this.h()},h(){N(s,"d","M20 2H4c-1.104 0-2 .896-2 2v12c0 1.104.896 2 2 2h6v2H7v2h10v-2h-3v-2h6c1.104 0 2-.896 2-2V4c0-1.104-.896-2-2-2zm0 14H4V4h16v12z"),A(n,c)},m(t,e){B(t,n,e),E(n,r),E(r,s)},p(t,[e]){A(n,c=xt(i,[{class:"gridicon gridicons-computer"},{height:"24"},{width:"24"},{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},1&e&&t[0]]))},i:e,o:e,d(t){t&&P(n)}}}function Ce(t,e,n){return t.$$set=t=>{n(0,e=o(o({},e),m(t)))},[e=m(e)]}class Be extends zt{constructor(t){super(),Pt(this,t,Ce,Ee,a,{})}}function Pe(t){let n,r,s,i=[{class:"gridicon gridicons-phone"},{height:"24"},{width:"24"},{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},t[0]],c={};for(let t=0;t<i.length;t+=1)c=o(c,i[t]);return{c(){n=M("svg"),r=M("g"),s=M("path"),this.h()},l(t){n=H(t,"svg",{class:!0,height:!0,width:!0,xmlns:!0,viewBox:!0});var e=J(n);r=H(e,"g",{});var o=J(r);s=H(o,"path",{d:!0}),J(s).forEach(P),o.forEach(P),e.forEach(P),this.h()},h(){N(s,"d","M16 2H8c-1.104 0-2 .896-2 2v16c0 1.104.896 2 2 2h8c1.104 0 2-.896 2-2V4c0-1.104-.896-2-2-2zm-3 19h-2v-1h2v1zm3-2H8V5h8v14z"),A(n,c)},m(t,e){B(t,n,e),E(n,r),E(r,s)},p(t,[e]){A(n,c=xt(i,[{class:"gridicon gridicons-phone"},{height:"24"},{width:"24"},{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},1&e&&t[0]]))},i:e,o:e,d(t){t&&P(n)}}}function ze(t,e,n){return t.$$set=t=>{n(0,e=o(o({},e),m(t)))},[e=m(e)]}class Le extends zt{constructor(t){super(),Pt(this,t,ze,Pe,a,{})}}function Me(t){let n,r,s,i=[{class:"gridicon gridicons-refresh"},{height:"15"},{width:"15"},{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},t[0]],c={};for(let t=0;t<i.length;t+=1)c=o(c,i[t]);return{c(){n=M("svg"),r=M("g"),s=M("path"),this.h()},l(t){n=H(t,"svg",{class:!0,height:!0,width:!0,xmlns:!0,viewBox:!0});var e=J(n);r=H(e,"g",{});var o=J(r);s=H(o,"path",{d:!0}),J(s).forEach(P),o.forEach(P),e.forEach(P),this.h()},h(){N(s,"d","M17.91 14c-.478 2.833-2.943 5-5.91 5-3.308 0-6-2.692-6-6s2.692-6 6-6h2.172l-2.086 2.086L13.5 10.5 18 6l-4.5-4.5-1.414 1.414L14.172 5H12c-4.418 0-8 3.582-8 8s3.582 8 8 8c4.08 0 7.438-3.055 7.93-7h-2.02z"),A(n,c)},m(t,e){B(t,n,e),E(n,r),E(r,s)},p(t,[e]){A(n,c=xt(i,[{class:"gridicon gridicons-refresh"},{height:"15"},{width:"15"},{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},1&e&&t[0]]))},i:e,o:e,d(t){t&&P(n)}}}function Te(t,e,n){return t.$$set=t=>{n(0,e=o(o({},e),m(t)))},[e=m(e)]}class Ve extends zt{constructor(t){super(),Pt(this,t,Te,Me,a,{})}}function Oe(t){let n,r,s,i,c=[{xmlns:"http://www.w3.org/2000/svg"},{width:"24"},{height:"24"},{viewBox:"0 0 128 128"},t[0]],a={};for(let t=0;t<c.length;t+=1)a=o(a,c[t]);return{c(){n=M("svg"),r=M("g"),s=M("path"),i=M("animateTransform"),this.h()},l(t){n=H(t,"svg",{xmlns:!0,width:!0,height:!0,viewBox:!0});var e=J(n);r=H(e,"g",{});var o=J(r);s=H(o,"path",{d:!0}),J(s).forEach(P),i=H(o,"animateTransform",{attributeName:!0,type:!0,values:!0,calcMode:!0,dur:!0,repeatCount:!0}),J(i).forEach(P),o.forEach(P),e.forEach(P),this.h()},h(){N(s,"d","M64 0a7 7 0 11-7 7 7 7 0 017-7zm29.86 12.2a2.8 2.8 0 11-3.83 1.02 2.8 2.8 0 013.83-1.02zm22.16 21.68a3.15 3.15 0 11-4.3-1.15 3.15 3.15 0 014.3 1.15zm.87 60.53a4.2 4.2 0 11-1.57-5.7 4.2 4.2 0 011.54 5.73zm7.8-30.5a3.85 3.85 0 11-3.85-3.85 3.85 3.85 0 013.85 3.84zm-30 53.2a4.55 4.55 0 111.66-6.23 4.55 4.55 0 01-1.67 6.22zM64 125.9a4.9 4.9 0 114.9-4.9 4.9 4.9 0 01-4.9 4.9zm-31.06-8.22a5.25 5.25 0 117.17-1.93 5.25 5.25 0 01-7.14 1.93zM9.9 95.1a5.6 5.6 0 117.65 2.06A5.6 5.6 0 019.9 95.1zM1.18 63.9a5.95 5.95 0 115.95 5.94 5.95 5.95 0 01-5.96-5.94zm8.1-31.6a6.3 6.3 0 112.32 8.6 6.3 6.3 0 01-2.3-8.6zM32.25 8.87a6.65 6.65 0 11-2.44 9.1 6.65 6.65 0 012.46-9.1z"),N(i,"attributeName","transform"),N(i,"type","rotate"),N(i,"values","0 64 64;30 64 64;60 64 64;90 64 64;120 64 64;150 64 64;180 64 64;210 64 64;240 64 64;270 64 64;300 64 64;330 64 64"),N(i,"calcMode","discrete"),N(i,"dur","1080ms"),N(i,"repeatCount","indefinite"),A(n,a)},m(t,e){B(t,n,e),E(n,r),E(r,s),E(r,i)},p(t,[e]){A(n,a=xt(c,[{xmlns:"http://www.w3.org/2000/svg"},{width:"24"},{height:"24"},{viewBox:"0 0 128 128"},1&e&&t[0]]))},i:e,o:e,d(t){t&&P(n)}}}function Ie(t,e,n){return t.$$set=t=>{n(0,e=o(o({},e),m(t)))},[e=m(e)]}class Re extends zt{constructor(t){super(),Pt(this,t,Ie,Oe,a,{})}}function Ne(t){let e,n,o,r,s,i;const c=[Je,Ae],a=[];function l(t,e){return t[1]?0:1}n=l(t),o=a[n]=c[n](t);let u=t[2]&&t[4]&&t[4]<t[0]&&He(t);return{c(){e=L("div"),o.c(),r=V(),u&&u.c(),N(e,"class",s="jb-score-bar__filler "+t[6]),F(e,"width",t[0]+"%")},m(t,o){C(t,e,o),a[n].m(e,null),j(e,r),u&&u.m(e,null),i=!0},p(t,d){let p=n;n=l(t),n===p?a[n].p(t,d):(bt(),vt(a[p],1,1,(()=>{a[p]=null})),_t(),o=a[n],o?o.p(t,d):(o=a[n]=c[n](t),o.c()),wt(o,1),o.m(e,r)),t[2]&&t[4]&&t[4]<t[0]?u?u.p(t,d):(u=He(t),u.c(),u.m(e,null)):u&&(u.d(1),u=null),(!i||64&d&&s!==(s="jb-score-bar__filler "+t[6]))&&N(e,"class",s),(!i||1&d)&&F(e,"width",t[0]+"%")},i(t){i||(wt(o),i=!0)},o(t){vt(o),i=!1},d(t){t&&P(e),a[n].d(),u&&u.d()}}}function Ae(t){let n,o;return{c(){n=L("div"),o=T(t[0]),N(n,"class","jb-score-bar__score")},m(t,e){C(t,n,e),j(n,o)},p(t,e){1&e&&W(o,t[0])},i:e,o:e,d(t){t&&P(n)}}}function Je(t){let n,o,r;return o=new Re({}),{c(){n=L("div"),St(o.$$.fragment),N(n,"class","jb-score-bar__loading")},m(t,e){C(t,n,e),Et(o,n,null),r=!0},p:e,i(t){r||(wt(o.$$.fragment,t),r=!0)},o(t){vt(o.$$.fragment,t),r=!1},d(t){t&&P(n),Ct(o)}}}function He(t){let e,n,o,r=t[5]&&We(t);return{c(){e=L("div"),n=T(t[4]),o=V(),r&&r.c(),N(e,"class","jb-score-bar__no_boost_score"),F(e,"left","min("+t[7]+"%, calc(100% - var(--clearance-space))")},m(t,s){C(t,e,s),j(e,n),j(e,o),r&&r.m(e,null)},p(t,o){16&o&&W(n,t[4]),t[5]?r?r.p(t,o):(r=We(t),r.c(),r.m(e,null)):r&&(r.d(1),r=null),128&o&&F(e,"left","min("+t[7]+"%, calc(100% - var(--clearance-space))")},d(t){t&&P(e),r&&r.d()}}}function We(t){let e,n;return{c(){e=L("div"),n=T(t[5]),N(e,"class","jb-score-bar__no_boost_score_tooltip")},m(t,o){C(t,e,o),j(e,n)},p(t,e){32&e&&W(n,t[5])},d(t){t&&P(e)}}}function Fe(t){let e,n,o=t[3]&&Ne(t);return{c(){e=L("div"),o&&o.c(),N(e,"class","jb-score-bar__bounds")},m(t,r){C(t,e,r),o&&o.m(e,null),n=!0},p(t,[n]){t[3]?o?(o.p(t,n),8&n&&wt(o,1)):(o=Ne(t),o.c(),wt(o,1),o.m(e,null)):o&&(bt(),vt(o,1,1,(()=>{o=null})),_t())},i(t){n||(wt(o),n=!0)},o(t){vt(o),n=!1},d(t){t&&P(e),o&&o.d()}}}function De(t,e,n){let o,r,{score:s=0}=e,{isLoading:i=!0}=e,{showPrevScores:c=!1}=e,{active:a=!0}=e,{prevScore:l=0}=e,{noBoostScoreTooltip:u=null}=e;return t.$$set=t=>{"score"in t&&n(0,s=t.score),"isLoading"in t&&n(1,i=t.isLoading),"showPrevScores"in t&&n(2,c=t.showPrevScores),"active"in t&&n(3,a=t.active),"prevScore"in t&&n(4,l=t.prevScore),"noBoostScoreTooltip"in t&&n(5,u=t.noBoostScoreTooltip)},t.$$.update=()=>{var e;17&t.$$.dirty&&(n(6,(e=s,o=i?"fill-loading":e>70?"fill-good":e>50?"fill-mediocre":e?"fill-bad":void 0)),n(7,r=l/s*100))},[s,i,c,a,l,u,o,r]}class Ue extends zt{constructor(t){super(),Pt(this,t,De,Fe,a,{score:0,isLoading:1,showPrevScores:2,active:3,prevScore:4,noBoostScoreTooltip:5})}}function qe(n){let o,r,s,i,c,a,l,u,d,p,h;return{c(){o=L("div"),r=L("span"),r.textContent="i",s=V(),i=L("div"),c=L("p"),c.textContent=`${t.__("Your Overall Score is a summary of your website performance across both mobile and desktop devices. It gives a general idea of your sites' overall performance.","jetpack-boost")}`,a=V(),l=L("table"),l.innerHTML="<tr><th>A</th> \n\t\t\t\t<td>90+</td></tr> \n\t\t\t<tr><th>B</th> \n\t\t\t\t<td>75 - 90</td></tr> \n\t\t\t<tr><th>C</th> \n\t\t\t\t<td>50 - 75</td></tr>",u=V(),d=L("table"),d.innerHTML="<tr><th>D</th> \n\t\t\t\t<td>35 - 50</td></tr> \n\t\t\t<tr><th>E</th> \n\t\t\t\t<td>25 - 35</td></tr> \n\t\t\t<tr><th>F</th> \n\t\t\t\t<td>0 - 25</td></tr>",p=V(),h=L("i"),N(r,"class","jb-score-context__info-icon"),N(i,"class","jb-score-context__info-container"),N(o,"class","jb-score-context")},m(t,e){C(t,o,e),j(o,r),j(o,s),j(o,i),j(i,c),j(i,a),j(i,l),j(i,u),j(i,d),j(i,p),j(i,h)},p:e,i:e,o:e,d(t){t&&P(o)}}}class Ye extends zt{constructor(t){super(),Pt(this,t,null,qe,a,{})}}function Ge(t,e){if("number"==typeof t)return t;if("string"==typeof t){const e=parseFloat(t);if(!isNaN(e))return e}return e}const Xe=12e4;async function Ke(e=!1){const n=Qe(await Kt.post(e?"/speed-scores/refresh":"/speed-scores",{url:Jetpack_Boost.site.url}));return n.scores?n.scores:await async function(){return async function({interval:e,callback:n,timeout:o,timeoutError:r}){let s,i;return new Promise(((c,a)=>{s=setTimeout((()=>{a(new Error(r||t.__("Timed out","jetpack-boost")))}),o||12e4),i=setInterval((async()=>{try{await Promise.resolve(n(c))}catch(t){a(t)}}),e)})).finally((()=>{clearTimeout(s),clearInterval(i)}))}({timeout:Xe,interval:5e3,timeoutError:t.__("Timed out while waiting for speed-score.","jetpack-boost"),callback:async t=>{const e=Qe(await Kt.post("/speed-scores",{url:Jetpack_Boost.site.url}));e.scores&&t(e.scores)}})}()}function Qe(e){if(e.error){const n=t.__("An unknown error occurred while requesting metrics","jetpack-boost");throw re(e.error,n)}if(qt(e.scores))return{status:"success",scores:{current:qt(e.scores.current)?{mobile:Ge(e.scores.current.mobile,0),desktop:Ge(e.scores.current.desktop,0)}:{mobile:0,desktop:0},noBoost:qt(e.scores.noBoost)?{mobile:Ge(e.scores.noBoost.mobile,0),desktop:Ge(e.scores.noBoost.desktop,0)}:null,isStale:!!e.scores.isStale}};const n=Ut(e.status);if(!n)throw new Error(t.__("Invalid response while requesting metrics","jetpack-boost"));return{status:n}}function Ze(t){const e=t.current,n=t.noBoost;return null!==e&&null!==n&&e.mobile>=n.mobile&&e.desktop>=n.desktop&&e.mobile+e.desktop>n.mobile+n.desktop&&(tn(t)>=5||e.desktop+e.mobile>180)}function tn(t){const e=(t.current.mobile+t.current.desktop)/(t.noBoost.mobile+t.noBoost.desktop)-1;return Math.round(100*e)}const en="success",nn="fail",on=Jetpack_Boost.criticalCssStatus||{generating:!1,progress:0,status:"not_generated",retried_show_stopper:!1},{subscribe:rn,update:sn}=Ft(on),cn=Dt({subscribe:rn},(t=>t.providers_errors?Object.keys(t.providers_errors).length:0)),an=Dt({subscribe:rn},(t=>[en,nn].includes(t.status)));async function ln(t,e,n){const o=await Kt[t](e,n);if("module-unavailable"===o.status)return!1;if(o.status!==en)throw new Error(o.code||o.message||o.error||JSON.stringify(o));return sn((t=>Object.assign(Object.assign({},t),o.status_update))),o.status_update}function un(t,e){return sn((n=>Object.assign(Object.assign({},n),{generating:t,progress:e,status:t?"requesting":n.status})))}async function dn(t,e,n){return ln("post",`/critical-css/${t}/${e}`,n)}const pn={subscribe:rn};const hn=me.config,{subscribe:fn,update:gn}=Ft(hn);let mn;function $n(t){return mn[t]&&mn[t].enabled}async function bn(e,n){const o=$n(e);let r=n;_n(e,n);try{r=await async function(e,n){const o=await Kt.post(`/module/${e}/status`,{status:n});if(!0!==o&&!1!==o){const e=JSON.stringify(o);throw new Error(t.sprintf(t.__("Unexpected data received from WordPress: %s","jetpack-boost"),e))}return o!==n?!n:o}(e,n),_n(e,r,!0)}catch(t){throw _n(e,o,!0),t}return r}function _n(t,e,n=!1){gn((o=>Object.assign(Object.assign({},o),{[t]:Object.assign(Object.assign({},o[t]),{enabled:e,synced:n})})))}fn((t=>mn=t));const wn={subscribe:fn,updateModuleState:bn};function vn(n){let o,r,s,i;return{c(){o=L("a"),r=L("span"),r.textContent=`${t.__("Dismiss","jetpack-boost")}`,N(r,"class","screen-reader-text"),N(o,"href","#"),N(o,"class","cross-close")},m(t,e){C(t,o,e),j(o,r),s||(i=I(o,"click",R(n[0])),s=!0)},p:e,i:e,o:e,d(t){t&&P(o),s=!1,i()}}}function yn(t){return[function(e){nt.call(this,t,e)}]}class kn extends zt{constructor(t){super(),Pt(this,t,yn,vn,a,{})}}function jn(t){return t<.5?4*t*t*t:.5*Math.pow(2*t-2,3)+1}function xn(t){const e=t-1;return e*e*e+1}function Sn(t,e){const n=getComputedStyle(t).transform.replace("none","");return{delay:e.delay||0,duration:e.duration||2e3,easing:e.easing||jn,css:(t,e)=>`transform: ${n} translateX(${100*e}%)`}}class En extends Error{constructor(t){super(t),this.name="AdminAjaxError"}}async function Cn(e){const n={method:"post",body:new URLSearchParams(e),headers:{"Content-Type":"application/x-www-form-urlencoded"}},o=await fetch(ajaxurl,n);if(!o.ok)throw new En(t.sprintf(t.__("Received HTTP %d while communicating with your WordPress site","jetpack-boost"),o.status));return o}async function Bn(e){const n=await Cn(e);let o;try{o=await n.json()}catch(e){throw new En(t.sprintf(t.__("Received invalid response while communicating with your WordPress site: %s","jetpack-boost"),e.message))}if(!n.ok)throw new En(t.sprintf(t.__("HTTP %d error received while communicating with the server.","jetpack-boost"),n.status));return o}function Pn(e){let n,o=t.sprintf(t.__("You achieved a score of %d!"),e[1])+"";return{c(){n=T(o)},m(t,e){C(t,n,e)},p(e,r){2&r&&o!==(o=t.sprintf(t.__("You achieved a score of %d!"),e[1])+"")&&W(n,o)},d(t){t&&P(n)}}}function zn(e){let n,o=t.sprintf(t.__("Faster by %d%%","jetpack-boost"),e[0])+"";return{c(){n=T(o)},m(t,e){C(t,n,e)},p(e,r){1&r&&o!==(o=t.sprintf(t.__("Faster by %d%%","jetpack-boost"),e[0])+"")&&W(n,o)},d(t){t&&P(n)}}}function Ln(e){let n,o,r,s,i,c,a,l,u,d,p,h;function f(t,e){return t[0]>=5?zn:Pn}o=new kn({}),o.$on("click",e[4]);let g=f(e),m=g(e);return{c(){n=L("div"),St(o.$$.fragment),r=V(),s=L("h3"),m.c(),i=V(),c=L("p"),c.textContent=`${t.__("That’s a great result! If you’re happy with your result, why not rate Boost?","jetpack-boost")}`,a=V(),l=L("a"),l.textContent=`${t.__("Rate the plugin","jetpack-boost")}`,N(s,"class","jb-rating-card__headline"),N(c,"class","jb-rating-card__paragraph"),N(l,"class","jb-button--primary"),N(l,"href","https://wordpress.org/support/plugin/jetpack-boost/reviews/#new-post"),N(l,"target","_blank"),N(n,"class","jb-rating-card")},m(t,u){C(t,n,u),Et(o,n,null),j(n,r),j(n,s),m.m(s,null),j(n,i),j(n,c),j(n,a),j(n,l),d=!0,p||(h=I(l,"click",e[5]),p=!0)},p(t,[e]){g===(g=f(t))&&m?m.p(t,e):(m.d(1),m=g(t),m&&(m.c(),m.m(s,null)))},i(t){d||(wt(o.$$.fragment,t),lt((()=>{u||(u=kt(n,Sn,{},!0)),u.run(1)})),d=!0)},o(t){vt(o.$$.fragment,t),u||(u=kt(n,Sn,{},!1)),u.run(0),d=!1},d(t){t&&P(n),Ct(o),m.d(),t&&u&&u.end(),p=!1,h()}}}function Mn(t,e,n){let{improvement:o}=e,{currentPercentage:r}=e;const s=et();async function i(){await Bn({action:"set_show_rating_prompt",value:!1,nonce:Jetpack_Boost.showRatingPromptNonce}),s("dismiss")}return t.$$set=t=>{"improvement"in t&&n(0,o=t.improvement),"currentPercentage"in t&&n(1,r=t.currentPercentage)},[o,r,s,i,()=>s("dismiss"),()=>{i()}]}class Tn extends zt{constructor(t){super(),Pt(this,t,Mn,Ln,a,{improvement:0,currentPercentage:1})}}function Vn(n){let o,r,s,i;return{c(){o=L("div"),r=L("h2"),r.textContent=`${t.__("Website Offline","jetpack-boost")}`,s=V(),i=L("p"),i.textContent=`${t.__("All Jetpack Boost features are still available, but to get a performance score you would first have to make your website available online.","jetpack-boost")}`,N(o,"class","jb-site-score__offline")},m(t,e){C(t,o,e),j(o,r),j(o,s),j(o,i)},p:e,i:e,o:e,d(t){t&&P(o)}}}function On(e){let n,o,r,s,i,c,a,l,u,d,p,h=t.__("Refresh","jetpack-boost")+"";function f(t,e){return t[7]?Nn:t[2]?Rn:In}let g=f(e),m=g(e),$=!e[7]&&!e[2]&&An();return c=new Ve({}),{c(){n=L("div"),o=L("h2"),m.c(),r=V(),$&&$.c(),s=V(),i=L("button"),St(c.$$.fragment),a=V(),l=T(h),N(i,"type","button"),N(i,"class","components-button is-link"),i.disabled=e[7],N(n,"class","jb-site-score__top")},m(t,h){C(t,n,h),j(n,o),m.m(o,null),j(n,r),$&&$.m(n,null),j(n,s),j(n,i),Et(c,i,null),j(i,a),j(i,l),u=!0,d||(p=I(i,"click",e[17]),d=!0)},p(t,e){g===(g=f(t))&&m?m.p(t,e):(m.d(1),m=g(t),m&&(m.c(),m.m(o,null))),t[7]||t[2]?$&&(bt(),vt($,1,1,(()=>{$=null})),_t()):$?132&e&&wt($,1):($=An(),$.c(),wt($,1),$.m(n,s)),(!u||128&e)&&(i.disabled=t[7])},i(t){u||(wt($),wt(c.$$.fragment,t),u=!0)},o(t){vt($),vt(c.$$.fragment,t),u=!1},d(t){t&&P(n),m.d(),$&&$.d(),Ct(c),d=!1,p()}}}function In(e){let n,o,r,s=t.__("Overall score","jetpack-boost")+"";return{c(){n=T(s),o=T(": "),r=T(e[4])},m(t,e){C(t,n,e),C(t,o,e),C(t,r,e)},p(t,e){16&e&&W(r,t[4])},d(t){t&&P(n),t&&P(o),t&&P(r)}}}function Rn(n){let o,r=t.__("Whoops, something went wrong","jetpack-boost")+"";return{c(){o=T(r)},m(t,e){C(t,o,e)},p:e,d(t){t&&P(o)}}}function Nn(n){let o,r=t.__("Loading…","jetpack-boost")+"";return{c(){o=T(r)},m(t,e){C(t,o,e)},p:e,d(t){t&&P(o)}}}function An(t){let e,n;return e=new Ye({}),{c(){St(e.$$.fragment)},m(t,o){Et(e,t,o),n=!0},i(t){n||(wt(e.$$.fragment,t),n=!0)},o(t){vt(e.$$.fragment,t),n=!1},d(t){Ct(e,t)}}}function Jn(e){let n,o;return n=new ge({props:{title:t.__("Failed to load Speed Scores","jetpack-boost"),error:e[2],suggestion:t.__('<action name="retry">Try again</action>',"jetpack-boost")}}),n.$on("retry",e[18]),{c(){St(n.$$.fragment)},m(t,e){Et(n,t,e),o=!0},p(t,e){const o={};4&e&&(o.error=t[2]),n.$set(o)},i(t){o||(wt(n.$$.fragment,t),o=!0)},o(t){vt(n.$$.fragment,t),o=!1},d(t){Ct(n,t)}}}function Hn(t){let e,n;return e=new Tn({props:{improvement:t[5],currentPercentage:t[6]}}),e.$on("dismiss",t[19]),{c(){St(e.$$.fragment)},m(t,o){Et(e,t,o),n=!0},p(t,n){const o={};32&n&&(o.improvement=t[5]),64&n&&(o.currentPercentage=t[6]),e.$set(o)},i(t){n||(wt(e.$$.fragment,t),n=!0)},o(t){vt(e.$$.fragment,t),n=!1},d(t){Ct(e,t)}}}function Wn(e){let n,o,r,s,i,c,a,l,u,d,p,h,f,g,m,$,b,_,w,v,y,k,x,S;const E=[On,Vn],B=[];r=function(t,e){return t[8]?0:1}(e),s=B[r]=E[r](e);let z=e[2]&&Jn(e);u=new Le({}),f=new Ue({props:{prevScore:e[0].noBoost?.mobile,score:e[0].current.mobile,active:e[8],isLoading:e[7],showPrevScores:e[3],noBoostScoreTooltip:t.__("Your mobile score without Boost","jetpack-boost")}}),b=new Be({}),y=new Ue({props:{prevScore:e[0].noBoost?.desktop,score:e[0].current.desktop,active:e[8],isLoading:e[7],showPrevScores:e[3],noBoostScoreTooltip:t.__("Your desktop score without Boost","jetpack-boost")}});let M=e[1]&&Hn(e);return{c(){n=L("div"),o=L("div"),s.c(),i=V(),z&&z.c(),c=V(),a=L("div"),l=L("div"),St(u.$$.fragment),d=V(),p=L("div"),p.textContent=`${t.__("Mobile score","jetpack-boost")}`,h=V(),St(f.$$.fragment),g=V(),m=L("div"),$=L("div"),St(b.$$.fragment),_=V(),w=L("div"),w.textContent=`${t.__("Desktop score","jetpack-boost")}`,v=V(),St(y.$$.fragment),k=V(),M&&M.c(),x=O(),N(l,"class","jb-score-bar__label"),N(a,"class","jb-score-bar jb-score-bar--mobile"),N($,"class","jb-score-bar__label"),N(m,"class","jb-score-bar jb-score-bar--desktop"),N(o,"class","jb-site-score"),D(o,"loading",e[7]),N(n,"class","jb-container")},m(t,e){C(t,n,e),j(n,o),B[r].m(o,null),j(o,i),z&&z.m(o,null),j(o,c),j(o,a),j(a,l),Et(u,l,null),j(l,d),j(l,p),j(a,h),Et(f,a,null),j(o,g),j(o,m),j(m,$),Et(b,$,null),j($,_),j($,w),j(m,v),Et(y,m,null),C(t,k,e),M&&M.m(t,e),C(t,x,e),S=!0},p(t,[e]){s.p(t,e),t[2]?z?(z.p(t,e),4&e&&wt(z,1)):(z=Jn(t),z.c(),wt(z,1),z.m(o,c)):z&&(bt(),vt(z,1,1,(()=>{z=null})),_t());const n={};1&e&&(n.prevScore=t[0].noBoost?.mobile),1&e&&(n.score=t[0].current.mobile),128&e&&(n.isLoading=t[7]),8&e&&(n.showPrevScores=t[3]),f.$set(n);const r={};1&e&&(r.prevScore=t[0].noBoost?.desktop),1&e&&(r.score=t[0].current.desktop),128&e&&(r.isLoading=t[7]),8&e&&(r.showPrevScores=t[3]),y.$set(r),128&e&&D(o,"loading",t[7]),t[1]?M?(M.p(t,e),2&e&&wt(M,1)):(M=Hn(t),M.c(),wt(M,1),M.m(x.parentNode,x)):M&&(bt(),vt(M,1,1,(()=>{M=null})),_t())},i(t){S||(wt(s),wt(z),wt(u.$$.fragment,t),wt(f.$$.fragment,t),wt(b.$$.fragment,t),wt(y.$$.fragment,t),wt(M),S=!0)},o(t){vt(s),vt(z),vt(u.$$.fragment,t),vt(f.$$.fragment,t),vt(b.$$.fragment,t),vt(y.$$.fragment,t),vt(M),S=!1},d(t){t&&P(n),B[r].d(),z&&z.d(),Ct(u),Ct(f),Ct(b),Ct(y),t&&P(k),M&&M.d(t),t&&P(x)}}}function Fn(t,e,n){let o,r,s,i,c;const a=Jetpack_Boost.site.online;let l,d,p="",h=0,f=0;const g=Ft(a);u(t,g,(t=>n(7,c=t)));const m=Ft({current:{mobile:0,desktop:0},noBoost:null,isStale:!1});u(t,m,(t=>n(0,o=t))),w(!1);const $=Dt(wn,(t=>!Object.values(t).some((t=>!1===t.synced)))),b=Dt([wn,pn],(([t,e])=>JSON.stringify({modules:t,criticalCss:{created:e.created}})));u(t,b,(t=>n(21,i=t)));let _=i;async function w(t=!1){if(a){g.set(!0),n(2,l=void 0);try{m.set(await Ke(t)),n(4,p=function(t,e){const n=(t+e)/2;return n>90?"A":n>75?"B":n>50?"C":n>35?"D":n>25?"E":"F"}(o.current.mobile,o.current.desktop)),n(3,d=Ze(o)&&!o.isStale),_=i}catch(t){console.log(t),n(2,l=t)}finally{g.set(!1)}}}const v=Dt([pn,$,b,m],(([t,e,n,o])=>!t.generating&&e&&(n!==_||o.isStale)));u(t,v,(t=>n(16,s=t)));const y=function(t,e){let n;return function(...o){clearTimeout(n),n=setTimeout((()=>t.apply(this,o)),e)}}((t=>{s&&w(t)}),2e3),k=Ft(Jetpack_Boost.preferences.showRatingPrompt),j=Dt([m,k,g],(([t,e,n])=>Ze(t)&&e&&!n&&!t.isStale));u(t,j,(t=>n(1,r=t)));return t.$$.update=()=>{65536&t.$$.dirty&&s&&y(!0),3&t.$$.dirty&&r&&(n(5,h=tn(o)),n(6,f=(o.current.mobile+o.current.desktop)/2))},[o,r,l,d,p,h,f,c,a,g,m,b,w,v,k,j,s,()=>w(!0),()=>w(!0),()=>k.set(!1)]}class Dn extends zt{constructor(t){super(),Pt(this,t,Fn,Wn,a,{})}}const{subscribe:Un,set:qn}=Ft(window.location.hash);function Yn(t=""){window.location.hash=t}window.addEventListener("hashchange",(()=>{qn(window.location.hash)}));var Gn={subscribe:Un};function Xn(t,{delay:e=0,duration:n=400,easing:o=xn}={}){const r=getComputedStyle(t),s=+r.opacity,i=parseFloat(r.height),c=parseFloat(r.paddingTop),a=parseFloat(r.paddingBottom),l=parseFloat(r.marginTop),u=parseFloat(r.marginBottom),d=parseFloat(r.borderTopWidth),p=parseFloat(r.borderBottomWidth);return{delay:e,duration:n,easing:o,css:t=>`overflow: hidden;opacity: ${Math.min(20*t,1)*s};height: ${t*i}px;padding-top: ${t*c}px;padding-bottom: ${t*a}px;margin-top: ${t*l}px;margin-bottom: ${t*u}px;border-top-width: ${t*d}px;border-bottom-width: ${t*p}px;`}}function Kn(t){let n,r,s,i,c=[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},t[0]],a={};for(let t=0;t<c.length;t+=1)a=o(a,c[t]);return{c(){n=M("svg"),r=M("rect"),s=M("g"),i=M("path"),this.h()},l(t){n=H(t,"svg",{xmlns:!0,viewBox:!0});var e=J(n);r=H(e,"rect",{x:!0,fill:!0,width:!0,height:!0}),J(r).forEach(P),s=H(e,"g",{});var o=J(s);i=H(o,"path",{d:!0}),J(i).forEach(P),o.forEach(P),e.forEach(P),this.h()},h(){N(r,"x","0"),N(r,"fill","none"),N(r,"width","24"),N(r,"height","24"),N(i,"d","M20 11H7.83l5.59-5.59L12 4l-8 8 8 8 1.41-1.41L7.83 13H20v-2z"),A(n,a)},m(t,e){B(t,n,e),E(n,r),E(n,s),E(s,i)},p(t,[e]){A(n,a=xt(c,[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},1&e&&t[0]]))},i:e,o:e,d(t){t&&P(n)}}}function Qn(t,e,n){return t.$$set=t=>{n(0,e=o(o({},e),m(t)))},[e=m(e)]}class Zn extends zt{constructor(t){super(),Pt(this,t,Qn,Kn,a,{})}}const to=["core_front_page","core_posts_page","singular_page","singular_post"],eo=Ft(Jetpack_Boost.criticalCssDismissedRecommendations||[]),no=Dt(pn,(t=>t.providers_errors?Object.entries(t.providers_errors).map((([e,n])=>({key:e,label:t.provider_key_labels[e]||e,errors:lo(n)}))):[])),oo={subscribe:eo.subscribe},ro=Dt([no,oo],(([t,e])=>t.filter((t=>!e.includes(t.key))))),so=Dt(no,(t=>{for(const e of to){const n=t.find((t=>t.key===e));if(n)return n.errors[0]}})),io=Ft(null);function co(t,e){io.set({title:t,error:e})}async function ao(){await Bn({action:"reset_dismissed_recommendations",nonce:Jetpack_Boost.criticalCssDismissRecommendationsNonce}),eo.set([])}function lo(t){return function(t){const e=t.reduce(((t,e)=>(t[e]=(t[e]||0)+1,t)),{});return Object.keys(e).sort(((t,n)=>e[t]>e[n]?1:-1))}(Object.values(t).map(uo)).map((e=>{const n=(o=t,r=t=>uo(t)===e,Object.entries(o).reduce(((t,[e,n])=>(r(n,e)&&(t[e]=n),t)),{}));var o,r;const s=n[Object.keys(n)[0]];return{type:s.type,firstMeta:s.meta,byUrl:n}}))}function uo(t){return"HttpError"===t.type?t.type+"-"+Ut(t.meta.code,""):"UnknownError"===t.type?t.type+"-"+t.message:t.type}function po(t){let n,r,s,i,c=[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},t[0]],a={};for(let t=0;t<c.length;t+=1)a=o(a,c[t]);return{c(){n=M("svg"),r=M("rect"),s=M("g"),i=M("path"),this.h()},l(t){n=H(t,"svg",{xmlns:!0,viewBox:!0});var e=J(n);r=H(e,"rect",{x:!0,fill:!0,width:!0,height:!0}),J(r).forEach(P),s=H(e,"g",{});var o=J(s);i=H(o,"path",{d:!0}),J(i).forEach(P),o.forEach(P),e.forEach(P),this.h()},h(){N(r,"x","0"),N(r,"fill","none"),N(r,"width","24"),N(r,"height","24"),N(i,"d","M13 9h-2V7h2v2zm0 2h-2v6h2v-6zm-1-7c-4.41 0-8 3.59-8 8s3.59 8 8 8 8-3.59 8-8-3.59-8-8-8m0-2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2z"),A(n,a)},m(t,e){B(t,n,e),E(n,r),E(n,s),E(s,i)},p(t,[e]){A(n,a=xt(c,[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},1&e&&t[0]]))},i:e,o:e,d(t){t&&P(n)}}}function ho(t,e,n){return t.$$set=t=>{n(0,e=o(o({},e),m(t)))},[e=m(e)]}class fo extends zt{constructor(t){super(),Pt(this,t,ho,po,a,{})}}let go;function mo(t,e,n){!("boost_version"in n)&&"version"in Jetpack_Boost&&(n.boost_version=Jetpack_Boost.version),jpTracksAJAX.record_ajax_event(`boost_${t}`,"click",n)}let $o=!1;async function bo(){if(!$o)return _o(!1)}async function _o(e=!0,n=!1){$o=!0;let o=!1;e&&(await ao(),un(!0,0));try{const r=await async function(t,e){return sn((t=>Object.assign(Object.assign({},t),{retried_show_stopper:e}))),ln("post","/critical-css/request-generate",{reset:t})}(e,n);if(!r||"requesting"!==r.status)return;!function(t){for(const e of Jetpack_Boost.shownAdminNoticeIds)if(e.includes(t)){const t=document.getElementById(e);t&&t.remove()}}("critical-css"),un(!0,0),await async function(){return go||(go=new Promise(((e,n)=>{const o=Jetpack_Boost.site.assetPath+"/critical-css-gen.js?ver="+Jetpack_Boost.version,r=document.createElement("script");r.src=o,r.addEventListener("error",(()=>n(new Error(t.sprintf(t.__("Failed to load Critical CSS library at %s","jetpack-boost"),o)))));const s=setTimeout((()=>{n(new Error(t.sprintf(t.__("Timeout while loading Critical CSS library at %s","jetpack-boost"),o)))}),6e4);r.addEventListener("load",(()=>{clearTimeout(s),e()})),document.body.appendChild(r)})),go)}();const s=function(t,e){return(n,o,r,s)=>{const i=100/Math.max(1,o+t),c=r/Math.max(1,s);e((n+t+c)*i)}}(r.success_count||0,(e=>{if(!$n("critical-css"))throw o=!0,new Error(t.__("Operation cancelled","jetpack-boost"));un(!0,e)})),i={"jb-generate-critical-css":r.generation_nonce};un(!0,0),await async function(t,e,n,o,r,s,i){const c=Object.keys(t).length+1;let a=0;const l=Date.now();let u=0,d=0,p=0,h=0;for(const[f,g]of Object.entries(t)){r(++a,c,0,0);try{const[t,l]=await CriticalCSSGenerator.generateCriticalCSS({browserInterface:wo(e,i),urls:g,viewports:n,progressCallback:(t,e)=>{r(a,c,t,e)},filters:{atRules:vo,properties:yo},successRatio:s[f]});if(!1===await dn(f,"success",{data:t,warnings:l.map((t=>t.toString())),passthrough:o}))return;d++,u+=t.length,h=t.length>h?t.length:h}catch(t){if(!t.isSuccessTargetError){await dn(f,"error",{data:{show_stopper:!0,error:t.message},passthrough:o});return void mo("critical_css_failure",0,{time:Date.now()-l,provider_key:f,error_message:t.message,error_type:t.type||t.constructor&&t.constructor.name||"unknown"})}{await dn(f,"error",{data:{show_stopper:!1,provider_key:f,urls:t.urlErrors},passthrough:o}),p++;const e=t.urlErrors;for(const[t,n]of Object.entries(e)){const e={url:t,provider_key:f,error_message:n.message,error_type:n.type};"HttpError"===n.type&&(e.error_meta=Ge(n.meta.code)),mo("critical_css_url_error",0,e)}}}}if(0===d){mo("critical_css_failure",0,{time:Date.now()-l,error_message:"Critical CSS Generation failed for all the provider keys.",error_type:"allProvidersError"})}else{mo("critical_css_success",0,{time:Date.now()-l,block_count:d,error_count:p,average_size:u/Math.max(1,d),max_size:h,provider_keys:Object.keys(t).join(",")})}un(!1,0)}(r.pending_provider_keys,i,r.viewports,r.callback_passthrough,s,r.provider_success_ratio,r.proxy_nonce)}catch(t){o||(r=t,sn((t=>Object.assign(Object.assign({},t),{status:"error",status_error:r}))))}finally{un(!1,0)}var r}function wo(t,e){return new class extends CriticalCSSGenerator.BrowserInterfaceIframe{constructor(){super({requestGetParameters:t,verifyPage:ko,allowScripts:!1})}fetch(t,n,o){return"css"!==o||function(t){return new URL(t).origin===window.location.origin}(t)?fetch(t,n):Cn({action:"boost_proxy_css",proxy_url:t,nonce:e})}}}function vo(t){return!t.endsWith("keyframes")}function yo(t,e){const n=function(t){for(const e of["-webkit-","-moz-","-ms-","-o-"])if(t.startsWith(e))return t.substring(e.length);return t}(t);return!n.startsWith("animation")}function ko(t,e,n){return!!n.querySelector('meta[name="jb-generate-critical-css"]')}function jo(t){let e;const n=t[4].default,o=d(n,t,t[3],null);return{c(){o&&o.c()},m(t,n){o&&o.m(t,n),e=!0},p(t,r){o&&o.p&&(!e||8&r)&&f(o,n,t,t[3],e?h(n,t[3],r,null):g(t[3]),null)},i(t){e||(wt(o,t),e=!0)},o(t){vt(o,t),e=!1},d(t){o&&o.d(t)}}}function xo(t){let e,n,o,r,s,i,c,a=(t[0]?t[2]:t[1])+"",l=t[0]&&jo(t);return{c(){e=L("button"),n=T(a),o=V(),l&&l.c(),r=O(),N(e,"class","components-button is-link foldable-element-control"),D(e,"visible",t[0])},m(a,u){C(a,e,u),j(e,n),C(a,o,u),l&&l.m(a,u),C(a,r,u),s=!0,i||(c=I(e,"click",t[5]),i=!0)},p(t,[o]){(!s||7&o)&&a!==(a=(t[0]?t[2]:t[1])+"")&&W(n,a),1&o&&D(e,"visible",t[0]),t[0]?l?(l.p(t,o),1&o&&wt(l,1)):(l=jo(t),l.c(),wt(l,1),l.m(r.parentNode,r)):l&&(bt(),vt(l,1,1,(()=>{l=null})),_t())},i(t){s||(wt(l),s=!0)},o(t){vt(l),s=!1},d(t){t&&P(e),t&&P(o),l&&l.d(t),t&&P(r),i=!1,c()}}}function So(t,e,n){let{$$slots:o={},$$scope:r}=e,{showLabel:s}=e,{hideLabel:i}=e,{visible:c=!1}=e;return t.$$set=t=>{"showLabel"in t&&n(1,s=t.showLabel),"hideLabel"in t&&n(2,i=t.hideLabel),"visible"in t&&n(0,c=t.visible),"$$scope"in t&&n(3,r=t.$$scope)},[c,s,i,r,o,()=>n(0,c=!c)]}wn.subscribe((t=>{t["critical-css"]&&t["critical-css"].enabled||($o=!1)}));class Eo extends zt{constructor(t){super(),Pt(this,t,So,xo,a,{showLabel:1,hideLabel:2,visible:0})}}function Co(t,e,n){const o=t.slice();return o[6]=e[n],o}const Bo=t=>({entry:7&t}),Po=t=>({entry:t[6]});function zo(t){let e,n,o;const r=t[5].default,s=d(r,t,t[4],Po);return{c(){e=L("li"),s&&s.c()},m(t,n){C(t,e,n),s&&s.m(e,null),o=!0},p(t,e){s&&s.p&&(!o||23&e)&&f(s,r,t,t[4],o?h(r,t[4],e,Bo):g(t[4]),Po)},i(t){o||(wt(s,t),t&&lt((()=>{n||(n=kt(e,Xn,{},!0)),n.run(1)})),o=!0)},o(t){vt(s,t),t&&(n||(n=kt(e,Xn,{},!1)),n.run(0)),o=!1},d(t){t&&P(e),s&&s.d(t),t&&n&&n.end()}}}function Lo(e){let n,o,r,s,i,c,a,l=t.sprintf(t.__("...and %d more","jetpack-boost"),e[0].length-e[1])+"";return{c(){n=L("a"),o=T(l),N(n,"href",r="#")},m(t,r){C(t,n,r),j(n,o),i=!0,c||(a=I(n,"click",R(e[3])),c=!0)},p(e,n){(!i||3&n)&&l!==(l=t.sprintf(t.__("...and %d more","jetpack-boost"),e[0].length-e[1])+"")&&W(o,l)},i(t){i||(t&&lt((()=>{s||(s=kt(n,Xn,{},!0)),s.run(1)})),i=!0)},o(t){t&&(s||(s=kt(n,Xn,{},!1)),s.run(0)),i=!1},d(t){t&&P(n),t&&s&&s.end(),c=!1,a()}}}function Mo(t){let e,n,o,r=t[2]?t[0]:t[0].slice(0,t[1]),s=[];for(let e=0;e<r.length;e+=1)s[e]=zo(Co(t,r,e));const i=t=>vt(s[t],1,1,(()=>{s[t]=null}));let c=!t[2]&&t[0].length>t[1]&&Lo(t);return{c(){e=L("ul");for(let t=0;t<s.length;t+=1)s[t].c();n=V(),c&&c.c()},m(t,r){C(t,e,r);for(let t=0;t<s.length;t+=1)s[t].m(e,null);j(e,n),c&&c.m(e,null),o=!0},p(t,[o]){if(23&o){let c;for(r=t[2]?t[0]:t[0].slice(0,t[1]),c=0;c<r.length;c+=1){const i=Co(t,r,c);s[c]?(s[c].p(i,o),wt(s[c],1)):(s[c]=zo(i),s[c].c(),wt(s[c],1),s[c].m(e,n))}for(bt(),c=r.length;c<s.length;c+=1)i(c);_t()}!t[2]&&t[0].length>t[1]?c?(c.p(t,o),7&o&&wt(c,1)):(c=Lo(t),c.c(),wt(c,1),c.m(e,null)):c&&(bt(),vt(c,1,1,(()=>{c=null})),_t())},i(t){if(!o){for(let t=0;t<r.length;t+=1)wt(s[t]);wt(c),o=!0}},o(t){s=s.filter(Boolean);for(let t=0;t<s.length;t+=1)vt(s[t]);vt(c),o=!1},d(t){t&&P(e),z(s,t),c&&c.d()}}}function To(t,e,n){let{$$slots:o={},$$scope:r}=e,{entries:s=[]}=e,{showLimit:i=2}=e,c=!1;return t.$$set=t=>{"entries"in t&&n(0,s=t.entries),"showLimit"in t&&n(1,i=t.showLimit),"$$scope"in t&&n(4,r=t.$$scope)},[s,i,c,function(){n(2,c=!c)},r,o]}class Vo extends zt{constructor(t){super(),Pt(this,t,To,Mo,a,{entries:0,showLimit:1})}}function Oo(n){let o,r,s,i,c,a,l,u,d,p,h,f,g,m,$,b;return{c(){o=L("div"),r=L("div"),s=L("div"),s.textContent=`${t.__("Protocol","jetpack-boost")}`,i=V(),c=L("div"),a=V(),l=T(n[0]),u=V(),d=L("div"),d.textContent="://",p=V(),h=L("div"),f=L("div"),f.textContent=`${t.__("Host name","jetpack-boost")}`,g=V(),m=L("div"),$=V(),b=T(n[1]),N(s,"class","label"),N(c,"class","arrows"),N(r,"class","segment"),N(d,"class","segment"),N(f,"class","label"),N(m,"class","arrows"),N(h,"class","segment"),N(o,"class","url-container")},m(t,e){C(t,o,e),j(o,r),j(r,s),j(r,i),j(r,c),j(r,a),j(r,l),j(o,u),j(o,d),j(o,p),j(o,h),j(h,f),j(h,g),j(h,m),j(h,$),j(h,b)},p:e,i:e,o:e,d(t){t&&P(o)}}}function Io(t){return[window.location.protocol.split(":")[0],window.location.hostname]}class Ro extends zt{constructor(t){super(),Pt(this,t,Io,Oo,a,{})}}function No(t){return Do(t.type).describeSet(t)}function Ao(t){const e=Do(t.type);return e.suggestion?e.suggestion(t):{paragraph:""}}function Jo(t){const e=Do(t.type);return e.footerComponent?e.footerComponent():null}function Ho(t){const e=Do(t.type);return e.rawError?e.rawError(t):""}function Wo(t){return Object.keys(t.byUrl).length}const Fo={HttpError:{describeSet:e=>t.sprintf(t._n("Boost received HTTP error <b>%d</b> on the following page:","Boost received HTTP error <b>%d</b> on the following pages:",Wo(e),"jetpack-boost"),e.firstMeta.code),suggestion:e=>function(e,n){switch(e){case 401:case 403:return{paragraph:t.sprintf(t._n("%d means there is a permission issue in your WordPress site. Please follow these troubleshooting steps for the page:","%d means there is a permission issue in your WordPress site. Please follow these troubleshooting steps for each of the pages:",n,"jetpack-boost"),e),list:[t.__("Check your WordPress settings, or contact your hosting provider to ask why the above URL is unavailable.","jetpack-boost"),t.__("<retry>Try again</retry> to generate the Critical CSS.","jetpack-boost")],closingParagraph:t.__("If this is a private page and not supposed to be viewed publicly, you can safely ignore this message.","jetpack-boost")};case 404:return{paragraph:t._n("Your WordPress site has reported that the above page does not exist. Please ensure that the URL is correct, and <retry>try again</retry>.","Your WordPress site has reported that the above pages do not exist. Please ensure that the URLs are correct, and <retry>try again</retry>.",n,"jetpack-boost"),list:[t.__("Visit the link, and confirm that the page you landed on loads successfully.","jetpack-boost"),t.__("If the page shows an error, please verify that the page should be a part of your WordPress site.","jetpack-boost"),t.__('Try visiting the link using "Incognito Mode" or "Private Browsing" in your browser to check if the error occurs when you are not logged in.',"jetpack-boost"),t.__('If you see an error only when not logged into your WordPress site (i.e.: in "Incognito Mode"), then check for plugins which might be enforcing access permissions on your pages. For example, a plugin which only allows authenticated users to view specific areas of your site.',"jetpack-boost")],closingParagraph:t.__("If the page is only accessible to users who are logged in to your WordPress site, or should not be a part of your site then it is safe to ignore this error.","jetpack-boost")};case 418:return{paragraph:t.__("Your WordPress site returned a 418 error which many web hosts use to indicate they rejected your request due to security rules. Please contact your hosting provider for more information.","jetpack-boost"),list:[t.__('Contact your hosting provider, with details of this issue. Please let them know it is an "HTTP 418" error, which URL(s) are affected, and the time it occurred.',"jetpack-boost"),t.__("Your hosting provider should be able to advise you on next steps.","jetpack-boost"),t.__("If you manage to sort the issue out with your hosting provider, please <retry>try again</retry> to regenerate your Critical CSS.","jetpack-boost")]};case 500:return{paragraph:t._n("Your WordPress site encountered an error while trying to load the above page.","Your WordPress site encountered errors while trying to load the above pages.",n,"jetpack-boost"),list:[t.__('Learn about the error and common solutions by <a target="_blank" href="https://wordpress.org/support/article/common-wordpress-errors/#internal-server-error">clicking here</a>.',"jetpack-boost"),t.__("If the issue is still not resolved, check your server logs or contact your hosting provider for help to investigate the issue.","jetpack-boost"),t.__("Once you have resolved the issue which caused the 500 error, you can <retry>try again</retry>.","jetpack-boost")]};default:return{paragraph:t._n("Please verify the link is valid and <retry>try again</retry>. We recommend the following:","Please verify each link is valid and <retry>try again</retry>. For each link, we recommend the following:",n,"jetpack-boost"),list:[t.__("Visit the link and check for an error.","jetpack-boost"),t.__("<retry>Try to generate Critical CSS again<retry>, in case the error was intermittent.","jetpack-boost"),t.sprintf(t.__("Check your server logs for information about the HTTP %d error, or contact your hosting provider for help with investigating the problem.","jetpack-boost"),e),t.__("Once you have resolved the error, please <retry>try again</retry>.","jetpack-boost"),t.__("If you need help understanding the error, or investigating what went wrong please contact <support>Jetpack Boost Support</support>.","jetpack-boost")]}}}(Ge(e.firstMeta.code),Wo(e))},RedirectError:{describeSet:e=>t._n("This URL is redirecting to a different page:","These URLs are redirecting to different pages:",Wo(e),"jetpack-boost"),suggestion:e=>({paragraph:t.__("This may indicate that a WordPress plugin is redirecting users who are not logged in to a different location, or it may indicate that your hosting provider is redirecting your WordPress site to a different URL.","jetpack-boost"),list:[t.__('Try visiting the link using "Incognito Mode" or "Private Browsing" in your browser and note if the page is being redirected.',"jetpack-boost"),t.__("If it is redirecting, check if a plugin could potentially create the redirection and fix it if appropriate. Otherwise, contact your hosting provider for assistance to fix the URL redirection.","jetpack-boost"),t.__("If you believe the issue is resolved, please <retry>try again</retry>.","jetpack-boost"),t.__("If you think that the redirection is valid, then it is safe to ignore this issue.","jetpack-boost")]})},CrossDomainError:{describeSet:e=>t._n("It looks like this URL doesn't match:","It looks like these URLs don't match:",Wo(e),"jetpack-boost"),suggestion:e=>({paragraph:t._n("Visit the page and complete the following troubleshooting steps.","Visit each page and complete the following troubleshooting steps.",Wo(e),"jetpack-boost"),list:[t.__('Visit the page and look at the protocol and host name to ensure it matches the one in your <a target="_blank" href="https://wordpress.org/support/article/administration-screens/">WordPress Administration Screen</a>.',"jetpack-boost"),t.__("If not, then please reach out to your hosting provider and ask why.","jetpack-boost"),t.__("If you believe the issue is resolved, please <retry>try again</retry>.","jetpack-boost")]}),footerComponent:()=>Ro},LoadTimeoutError:{describeSet:e=>t._n("This page timed out:","These pages timed out:",Wo(e),"jetpack-boost"),suggestion:e=>({paragraph:t._n("The page timed out during load. There could be various reasons but most likely a plugin is causing this issue. Please complete the following steps.","The pages timed out during load. There could be various reasons but most likely a plugin is causing this issue. Please complete the following steps for each of the pages.",Wo(e),"jetpack-boost"),list:[t.__("Clear the cache in your browser.","jetpack-boost"),t.__("Visit the page while not logged into WordPress.","jetpack-boost"),t.__("See how long it takes to load compared to other pages on your site.","jetpack-boost"),t.__("If this page is slower than the others, check what plugins are working on that page.","jetpack-boost"),t.__("Deactivate any plugin that you believe are making the page slow.","jetpack-boost"),t.__("<retry>Try again</retry> to generate the Critical CSS.","jetpack-boost")]})},UrlVerifyError:{describeSet:e=>t._n("Jetpack Boost couldn't verify this page:","Jetpack Boost couldn't verify these pages:",Wo(e),"jetpack-boost"),suggestion:e=>({paragraph:t._n("Please follow the troubleshooting steps below for the page.","Please follow the troubleshooting steps below for each of the pages.",Wo(e),"jetpack-boost"),list:[t.__("Visit the page.","jetpack-boost"),t.__("Verify that the content displayed is a part of your WordPress site, and not an external page managed by a different system.","jetpack-boost"),t.__("<retry>Try again</retry> to generate the Critical CSS.","jetpack-boost")]})},EmptyCSSError:{describeSet:e=>t._n("It looks like this page does not contain any relevant CSS in its external style sheet(s):","It looks like these pages do not contain any relevant CSS in their external style sheet(s):",Wo(e),"jetpack-boost"),suggestion:e=>({paragraph:t._n("Please follow the troubleshooting steps below for the page.","Please follow the troubleshooting steps below for each of the pages.",Wo(e),"jetpack-boost"),list:[t.__("Visit the page.","jetpack-boost"),t.__("Verify its styles load correctly, and <retry>try again</retry>.","jetpack-boost")],closingParagraph:t.__("If you are using a plugin which embeds your CSS styles directly into your pages, or your site does not use external CSS style sheets, then it is safe to ignore this issue as Critical CSS can only speed up pages which use external styles.","jetpack-boost")})},UnknownError:{describeSet:e=>t._n("Something went wrong, which Jetpack Boost did not anticipate. An unexpected error occurred while trying to generate Critical CSS for the following page:","Something went wrong, which Jetpack Boost did not anticipate. An unexpected error occurred while trying to generate Critical CSS for the following pages:",Wo(e),"jetpack-boost"),rawError:t=>Object.values(t.byUrl)[0].message,suggestion:e=>({paragraph:t._n("Please follow the troubleshooting steps below for the page.","Please follow the troubleshooting steps below for each of the pages.",Wo(e),"jetpack-boost"),list:[t.__("Visit the page.","jetpack-boost"),t.__("Verify that the page loads correctly.","jetpack-boost"),t.__("If it does, <retry>try again</retry> to generate the Critical CSS.","jetpack-boost"),t.__("If the error still persist please contact <support>Jetpack Boost Support</support> with a copy of your error message.","jetpack-boost")]})},XFrameDenyError:{describeSet:e=>t._n("Jetpack Boost couldn't load the following page due to its X-Frame-Options configuration:","Jetpack Boost couldn't load the following page due to their X-Frame-Options configuration:",Wo(e),"jetpack-boost"),rawError:t=>Object.values(t.byUrl)[0].message,suggestion:e=>({paragraph:t.__('Jetpack Boost uses iframes while generating your Critical CSS. Unfortunately, your site has a special configuration header which prevents it from loading inside an iframe. The header is called "X-Frame-Options: DENY". This can be added to a WordPress site either by using a plugin, or by server configuration.',"jetpack-boost"),list:[t.__("Check that you are not using any plugins which add extra HTTP headers to your WordPress site, and deactivate them if you are.","jetpack-boost"),t.__('If you are unsure of what these headers are, or where they come from please contact your hosting provider and ask them to remove the "X-Frame-Options" header from your site',"jetpack-boost"),t.__("<retry>Try again</retry> to generate the Critical CSS.","jetpack-boost")]})}};function Do(t){return Fo[t]||Fo.UnknownError}function Uo(t,e,n){const o=t.slice();return o[2]=e[n],o[4]=n,o}function qo(t){let e,n,o,r,s,i,c,a,l=t[4]+1+"";return i=new At({props:{template:t[2],vars:t[1]}}),{c(){e=L("li"),n=L("span"),o=T(l),r=V(),s=L("span"),St(i.$$.fragment),c=V(),N(n,"class","index"),N(s,"class","text")},m(t,l){C(t,e,l),j(e,n),j(n,o),j(e,r),j(e,s),Et(i,s,null),j(e,c),a=!0},p(t,e){const n={};1&e&&(n.template=t[2]),2&e&&(n.vars=t[1]),i.$set(n)},i(t){a||(wt(i.$$.fragment,t),a=!0)},o(t){vt(i.$$.fragment,t),a=!1},d(t){t&&P(e),Ct(i)}}}function Yo(t){let e,n,o=t[0],r=[];for(let e=0;e<o.length;e+=1)r[e]=qo(Uo(t,o,e));const s=t=>vt(r[t],1,1,(()=>{r[t]=null}));return{c(){e=L("ol");for(let t=0;t<r.length;t+=1)r[t].c();N(e,"class","numbered-list")},m(t,o){C(t,e,o);for(let t=0;t<r.length;t+=1)r[t].m(e,null);n=!0},p(t,[n]){if(3&n){let i;for(o=t[0],i=0;i<o.length;i+=1){const s=Uo(t,o,i);r[i]?(r[i].p(s,n),wt(r[i],1)):(r[i]=qo(s),r[i].c(),wt(r[i],1),r[i].m(e,null))}for(bt(),i=o.length;i<r.length;i+=1)s(i);_t()}},i(t){if(!n){for(let t=0;t<o.length;t+=1)wt(r[t]);n=!0}},o(t){r=r.filter(Boolean);for(let t=0;t<r.length;t+=1)vt(r[t]);n=!1},d(t){t&&P(e),z(r,t)}}}function Go(t,e,n){let{items:o}=e,{vars:r}=e;return t.$$set=t=>{"items"in t&&n(0,o=t.items),"vars"in t&&n(1,r=t.vars)},[o,r]}class Xo extends zt{constructor(t){super(),Pt(this,t,Go,Yo,a,{items:0,vars:1})}}function Ko(t){let e,n,o,r=t[6].label+"";return{c(){e=L("a"),n=T(r),N(e,"href",o=t[6].href),N(e,"target","_blank")},m(t,o){C(t,e,o),j(e,n)},p(t,s){64&s&&r!==(r=t[6].label+"")&&W(n,r),64&s&&o!==(o=t[6].href)&&N(e,"href",o)},d(t){t&&P(e)}}}function Qo(e){let n,o,r,s,i,c,a,l,u,d,p=Ao(e[2]).list,h=Ao(e[2]).closingParagraph;s=new At({props:{template:Ao(e[2]).paragraph,vars:e[4]}});let f=p&&Zo(e),g=h&&tr(e);var m=Jo(e[2]);return m&&(l=new m({})),{c(){n=L("h5"),n.textContent=`${t.__("What to do","jetpack-boost")}`,o=V(),r=L("p"),St(s.$$.fragment),i=V(),f&&f.c(),c=V(),g&&g.c(),a=V(),l&&St(l.$$.fragment),u=O(),N(r,"class","suggestion")},m(t,e){C(t,n,e),C(t,o,e),C(t,r,e),Et(s,r,null),j(r,i),f&&f.m(r,null),C(t,c,e),g&&g.m(t,e),C(t,a,e),l&&Et(l,t,e),C(t,u,e),d=!0},p(t,e){const n={};if(4&e&&(n.template=Ao(t[2]).paragraph),s.$set(n),4&e&&(p=Ao(t[2]).list),p?f?(f.p(t,e),4&e&&wt(f,1)):(f=Zo(t),f.c(),wt(f,1),f.m(r,null)):f&&(bt(),vt(f,1,1,(()=>{f=null})),_t()),4&e&&(h=Ao(t[2]).closingParagraph),h?g?(g.p(t,e),4&e&&wt(g,1)):(g=tr(t),g.c(),wt(g,1),g.m(a.parentNode,a)):g&&(bt(),vt(g,1,1,(()=>{g=null})),_t()),m!==(m=Jo(t[2]))){if(l){bt();const t=l;vt(t.$$.fragment,1,0,(()=>{Ct(t,1)})),_t()}m?(l=new m({}),St(l.$$.fragment),wt(l.$$.fragment,1),Et(l,u.parentNode,u)):l=null}},i(t){d||(wt(s.$$.fragment,t),wt(f),wt(g),l&&wt(l.$$.fragment,t),d=!0)},o(t){vt(s.$$.fragment,t),vt(f),vt(g),l&&vt(l.$$.fragment,t),d=!1},d(t){t&&P(n),t&&P(o),t&&P(r),Ct(s),f&&f.d(),t&&P(c),g&&g.d(t),t&&P(a),t&&P(u),l&&Ct(l,t)}}}function Zo(t){let e,n;return e=new Xo({props:{items:Ao(t[2]).list,vars:t[4]}}),{c(){St(e.$$.fragment)},m(t,o){Et(e,t,o),n=!0},p(t,n){const o={};4&n&&(o.items=Ao(t[2]).list),e.$set(o)},i(t){n||(wt(e.$$.fragment,t),n=!0)},o(t){vt(e.$$.fragment,t),n=!1},d(t){Ct(e,t)}}}function tr(t){let e,n,o;return n=new At({props:{template:Ao(t[2]).closingParagraph,vars:t[4]}}),{c(){e=L("p"),St(n.$$.fragment),N(e,"class","suggestion-closing")},m(t,r){C(t,e,r),Et(n,e,null),o=!0},p(t,e){const o={};4&e&&(o.template=Ao(t[2]).closingParagraph),n.$set(o)},i(t){o||(wt(n.$$.fragment,t),o=!0)},o(t){vt(n.$$.fragment,t),o=!1},d(t){t&&P(e),Ct(n)}}}function er(t){let e,n,o,r;const s=[or,nr],i=[];function c(t,e){return t[1]?0:1}return e=c(t),n=i[e]=s[e](t),{c(){n.c(),o=O()},m(t,n){i[e].m(t,n),C(t,o,n),r=!0},p(t,r){let a=e;e=c(t),e===a?i[e].p(t,r):(bt(),vt(i[a],1,1,(()=>{i[a]=null})),_t(),n=i[e],n?n.p(t,r):(n=i[e]=s[e](t),n.c()),wt(n,1),n.m(o.parentNode,o))},i(t){r||(wt(n),r=!0)},o(t){vt(n),r=!1},d(t){i[e].d(t),t&&P(o)}}}function nr(t){let e,n,o,r,s=Ho(t[2])+"";return{c(){e=L("p"),n=T(s),N(e,"class","raw-error")},m(t,o){C(t,e,o),j(e,n),r=!0},p(t,e){(!r||4&e)&&s!==(s=Ho(t[2])+"")&&W(n,s)},i(t){r||(t&&lt((()=>{o||(o=kt(e,Xn,{},!0)),o.run(1)})),r=!0)},o(t){t&&(o||(o=kt(e,Xn,{},!1)),o.run(0)),r=!1},d(t){t&&P(e),t&&o&&o.end()}}}function or(e){let n,o;return n=new Eo({props:{showLabel:t.__("See error message","jetpack-boost"),hideLabel:t.__("Hide error message","jetpack-boost"),$$slots:{default:[rr]},$$scope:{ctx:e}}}),{c(){St(n.$$.fragment)},m(t,e){Et(n,t,e),o=!0},p(t,e){const o={};132&e&&(o.$$scope={dirty:e,ctx:t}),n.$set(o)},i(t){o||(wt(n.$$.fragment,t),o=!0)},o(t){vt(n.$$.fragment,t),o=!1},d(t){Ct(n,t)}}}function rr(t){let e,n,o,r,s=Ho(t[2])+"";return{c(){e=L("p"),n=T(s),N(e,"class","raw-error")},m(t,o){C(t,e,o),j(e,n),r=!0},p(t,e){(!r||4&e)&&s!==(s=Ho(t[2])+"")&&W(n,s)},i(t){r||(t&&lt((()=>{o||(o=kt(e,Xn,{},!0)),o.run(1)})),r=!0)},o(t){t&&(o||(o=kt(e,Xn,{},!1)),o.run(0)),r=!1},d(t){t&&P(e),t&&o&&o.end()}}}function sr(t){let e,n,o,r,s,i,c,a,l=Ho(t[2]);o=new At({props:{template:No(t[2]),vars:{templateVars:t[4]}}}),s=new Vo({props:{entries:t[3],$$slots:{default:[Ko,({entry:t})=>({6:t}),({entry:t})=>t?64:0]},$$scope:{ctx:t}}});let u=t[0]&&Qo(t),d=l&&er(t);return{c(){e=L("div"),n=L("span"),St(o.$$.fragment),r=V(),St(s.$$.fragment),i=V(),u&&u.c(),c=V(),d&&d.c(),N(n,"class","error-description"),N(e,"class","jb-critical-css__error-description")},m(t,l){C(t,e,l),j(e,n),Et(o,n,null),j(e,r),Et(s,e,null),j(e,i),u&&u.m(e,null),j(e,c),d&&d.m(e,null),a=!0},p(t,[n]){const r={};4&n&&(r.template=No(t[2])),o.$set(r);const i={};8&n&&(i.entries=t[3]),192&n&&(i.$$scope={dirty:n,ctx:t}),s.$set(i),t[0]?u?(u.p(t,n),1&n&&wt(u,1)):(u=Qo(t),u.c(),wt(u,1),u.m(e,c)):u&&(bt(),vt(u,1,1,(()=>{u=null})),_t()),4&n&&(l=Ho(t[2])),l?d?(d.p(t,n),4&n&&wt(d,1)):(d=er(t),d.c(),wt(d,1),d.m(e,null)):d&&(bt(),vt(d,1,1,(()=>{d=null})),_t())},i(t){a||(wt(o.$$.fragment,t),wt(s.$$.fragment,t),wt(u),wt(d),a=!0)},o(t){vt(o.$$.fragment,t),vt(s.$$.fragment,t),vt(u),vt(d),a=!1},d(t){t&&P(e),Ct(o),Ct(s),u&&u.d(),d&&d.d()}}}function ir(t,e,n){const o=et();let{showSuggestion:r=!0}=e,{foldRawErrors:s=!0}=e,{errorSet:i}=e,c=[];const a={...oe((()=>o("retry")),"retry"),...se()};return t.$$set=t=>{"showSuggestion"in t&&n(0,r=t.showSuggestion),"foldRawErrors"in t&&n(1,s=t.foldRawErrors),"errorSet"in t&&n(2,i=t.errorSet)},t.$$.update=()=>{4&t.$$.dirty&&n(3,c=Object.entries(i.byUrl).map((([t,e])=>({href:e.meta.url?e.meta.url:t,label:t}))))},[r,s,i,c,a]}class cr extends zt{constructor(t){super(),Pt(this,t,ir,sr,a,{showSuggestion:0,foldRawErrors:1,errorSet:2})}}function ar(t,e,n){const o=t.slice();return o[10]=e[n],o}function lr(t,e,n){const o=t.slice();return o[13]=e[n],o}function ur(e){let n,o,r,s,i,c=t.sprintf(t._n("Show %d hidden recommendation.","Show %d hidden recommendations.",e[2].length,"jetpack-boost"),e[2].length)+"";return{c(){n=L("p"),o=L("button"),r=T(c),N(o,"class","components-button is-link")},m(t,c){C(t,n,c),j(n,o),j(o,r),s||(i=I(o,"click",e[6]),s=!0)},p(e,n){4&n&&c!==(c=t.sprintf(t._n("Show %d hidden recommendation.","Show %d hidden recommendations.",e[2].length,"jetpack-boost"),e[2].length)+"")&&W(r,c)},d(t){t&&P(n),s=!1,i()}}}function dr(t){let e,n,o,r,s,i,c=t[2].length>0&&ur(t);return{c(){e=L("section"),n=L("p"),o=T(t[1]),r=V(),c&&c.c()},m(t,s){C(t,e,s),j(e,n),j(n,o),j(e,r),c&&c.m(e,null),i=!0},p(t,n){(!i||2&n)&&W(o,t[1]),t[2].length>0?c?c.p(t,n):(c=ur(t),c.c(),c.m(e,null)):c&&(c.d(1),c=null)},i(t){i||(t&&lt((()=>{s||(s=kt(e,Xn,{},!0)),s.run(1)})),i=!0)},o(t){t&&(s||(s=kt(e,Xn,{},!1)),s.run(0)),i=!1},d(t){t&&P(e),c&&c.d(),t&&s&&s.end()}}}function pr(t){let e,n;return e=new ge({props:{title:t[3].title,error:t[3].error}}),{c(){St(e.$$.fragment)},m(t,o){Et(e,t,o),n=!0},p(t,n){const o={};8&n&&(o.title=t[3].title),8&n&&(o.error=t[3].error),e.$set(o)},i(t){n||(wt(e.$$.fragment,t),n=!0)},o(t){vt(e.$$.fragment,t),n=!1},d(t){Ct(e,t)}}}function hr(t){let e,n,o;return n=new cr({props:{errorSet:t[13]}}),n.$on("retry",t[4]),{c(){e=L("div"),St(n.$$.fragment),N(e,"class","problem")},m(t,r){C(t,e,r),Et(n,e,null),o=!0},p(t,e){const o={};1&e&&(o.errorSet=t[13]),n.$set(o)},i(t){o||(wt(n.$$.fragment,t),o=!0)},o(t){vt(n.$$.fragment,t),o=!1},d(t){t&&P(e),Ct(n)}}}function fr(t,e){let n,o,r,s,i,c,a,l,u,d,p,h=e[10].label+"";o=new kn({}),o.$on("click",(function(){return e[9](e[10])})),i=new fo({});let f=[e[10].errors[0]],g=[];for(let t=0;t<1;t+=1)g[t]=hr(lr(e,f,t));const m=t=>vt(g[t],1,1,(()=>{g[t]=null}));return{key:t,first:null,c(){n=L("div"),St(o.$$.fragment),r=V(),s=L("h4"),St(i.$$.fragment),c=V(),a=T(h),l=V();for(let t=0;t<1;t+=1)g[t].c();u=V(),N(n,"class","panel"),this.first=n},m(t,e){C(t,n,e),Et(o,n,null),j(n,r),j(n,s),Et(i,s,null),j(s,c),j(s,a),j(n,l);for(let t=0;t<1;t+=1)g[t].m(n,null);j(n,u),p=!0},p(t,o){if(e=t,(!p||1&o)&&h!==(h=e[10].label+"")&&W(a,h),17&o){let t;for(f=[e[10].errors[0]],t=0;t<1;t+=1){const r=lr(e,f,t);g[t]?(g[t].p(r,o),wt(g[t],1)):(g[t]=hr(r),g[t].c(),wt(g[t],1),g[t].m(n,u))}for(bt(),t=1;t<1;t+=1)m(t);_t()}},i(t){if(!p){wt(o.$$.fragment,t),wt(i.$$.fragment,t);for(let t=0;t<1;t+=1)wt(g[t]);t&&lt((()=>{d||(d=kt(n,Xn,{},!0)),d.run(1)})),p=!0}},o(t){vt(o.$$.fragment,t),vt(i.$$.fragment,t),g=g.filter(Boolean);for(let t=0;t<1;t+=1)vt(g[t]);t&&(d||(d=kt(n,Xn,{},!1)),d.run(0)),p=!1},d(t){t&&P(n),Ct(o),Ct(i),z(g,t),t&&d&&d.end()}}}function gr(n){let o,r,s,i,c,l,u,d,p,h,f,g,m,$=t.__("Go back","jetpack-boost")+"",b=n[1],_=[],w=new Map;s=new Zn({});let v=dr(n),y=n[3]&&pr(n),k=n[0];const x=t=>t[10].key;for(let t=0;t<k.length;t+=1){let e=ar(n,k,t),o=x(e);w.set(o,_[t]=fr(o,e))}return{c(){o=L("div"),r=L("button"),St(s.$$.fragment),i=V(),c=T($),l=V(),u=L("h3"),u.textContent=`${t.__("Critical CSS advanced recommendations","jetpack-boost")}`,d=V(),v.c(),p=V(),y&&y.c(),h=V();for(let t=0;t<_.length;t+=1)_[t].c();N(r,"class","components-button is-link close"),N(o,"class","jb-container--narrow jb-critical-css__advanced")},m(t,e){C(t,o,e),j(o,r),Et(s,r,null),j(r,i),j(r,c),j(o,l),j(o,u),j(o,d),v.m(o,null),j(o,p),y&&y.m(o,null),j(o,h);for(let t=0;t<_.length;t+=1)_[t].m(o,null);f=!0,g||(m=I(r,"click",n[8]),g=!0)},p(t,[n]){2&n&&a(b,b=t[1])?(bt(),vt(v,1,1,e),_t(),v=dr(t),v.c(),wt(v),v.m(o,p)):v.p(t,n),t[3]?y?(y.p(t,n),8&n&&wt(y,1)):(y=pr(t),y.c(),wt(y,1),y.m(o,h)):y&&(bt(),vt(y,1,1,(()=>{y=null})),_t()),49&n&&(k=t[0],bt(),_=function(t,e,n,o,r,s,i,c,a,l,u,d){let p=t.length,h=s.length,f=p;const g={};for(;f--;)g[t[f].key]=f;const m=[],$=new Map,b=new Map;for(f=h;f--;){const t=d(r,s,f),c=n(t);let a=i.get(c);a?o&&a.p(t,e):(a=l(c,t),a.c()),$.set(c,m[f]=a),c in g&&b.set(c,Math.abs(f-g[c]))}const _=new Set,w=new Set;function v(t){wt(t,1),t.m(c,u),i.set(t.key,t),u=t.first,h--}for(;p&&h;){const e=m[h-1],n=t[p-1],o=e.key,r=n.key;e===n?(u=e.first,p--,h--):$.has(r)?!i.has(o)||_.has(o)?v(e):w.has(r)?p--:b.get(o)>b.get(r)?(w.add(o),v(e)):(_.add(r),p--):(a(n,i),p--)}for(;p--;){const e=t[p];$.has(e.key)||a(e,i)}for(;h;)v(m[h-1]);return m}(_,n,x,1,t,k,w,o,jt,fr,null,ar),_t())},i(t){if(!f){wt(s.$$.fragment,t),wt(v),wt(y);for(let t=0;t<k.length;t+=1)wt(_[t]);f=!0}},o(t){vt(s.$$.fragment,t),vt(v),vt(y);for(let t=0;t<_.length;t+=1)vt(_[t]);f=!1},d(t){t&&P(o),Ct(s),v.d(t),y&&y.d();for(let t=0;t<_.length;t+=1)_[t].d();g=!1,m()}}}function mr(e,n,o){let r,s,i,c,a;async function l(e){try{await async function(t){await Bn({action:"dismiss_recommendations",providerKey:t,nonce:Jetpack_Boost.criticalCssDismissRecommendationsNonce}),eo.update((e=>[...e,t]))}(e)}catch(e){co(t.__("Failed to dismiss recommendation","jetpack-boost"),e)}}u(e,an,(t=>o(7,r=t))),u(e,ro,(t=>o(0,s=t))),u(e,oo,(t=>o(2,i=t))),u(e,io,(t=>o(3,c=t)));return e.$$.update=()=>{1&e.$$.dirty&&o(1,a=0===s.length?t.__("Congratulations, you have dealt with all the recommendations.","jetpack-boost"):t.__("While Jetpack Boost has been able to automatically generate optimized CSS for most of your important files & sections, we have identified a few more that require your attention.","jetpack-boost")),128&e.$$.dirty&&(r||Yn())},[s,a,i,c,function(){_o(),Yn()},l,async function(){try{await ao()}catch(e){co(t.__("Failed to show the dismissed recommendations","jetpack-boost"),e)}},r,()=>Yn(),t=>l(t.key)]}class $r extends zt{constructor(t){super(),Pt(this,t,mr,gr,a,{})}}function br(e){let n,o;return n=new Eo({props:{showLabel:t.__("See error message","jetpack-boost"),hideLabel:t.__("Hide error message","jetpack-boost"),$$slots:{default:[vr]},$$scope:{ctx:e}}}),{c(){St(n.$$.fragment)},m(t,e){Et(n,t,e),o=!0},p(t,e){const o={};39&e&&(o.$$scope={dirty:e,ctx:t}),n.$set(o)},i(t){o||(wt(n.$$.fragment,t),o=!0)},o(t){vt(n.$$.fragment,t),o=!1},d(t){Ct(n,t)}}}function _r(t){let n,o=t[0].status_error+"";return{c(){n=T(o)},m(t,e){C(t,n,e)},p(t,e){1&e&&o!==(o=t[0].status_error+"")&&W(n,o)},i:e,o:e,d(t){t&&P(n)}}}function wr(t){let e,n;return e=new cr({props:{errorSet:t[1],showSuggestion:!1,foldRawErrors:!1}}),e.$on("retry",_o),{c(){St(e.$$.fragment)},m(t,o){Et(e,t,o),n=!0},p(t,n){const o={};2&n&&(o.errorSet=t[1]),e.$set(o)},i(t){n||(wt(e.$$.fragment,t),n=!0)},o(t){vt(e.$$.fragment,t),n=!1},d(t){Ct(e,t)}}}function vr(t){let e,n,o,r,s;const i=[wr,_r],c=[];function a(t,e){return t[2]?0:1}return n=a(t),o=c[n]=i[n](t),{c(){e=L("div"),o.c(),N(e,"class","raw-error")},m(t,o){C(t,e,o),c[n].m(e,null),s=!0},p(t,r){let s=n;n=a(t),n===s?c[n].p(t,r):(bt(),vt(c[s],1,1,(()=>{c[s]=null})),_t(),o=c[n],o?o.p(t,r):(o=c[n]=i[n](t),o.c()),wt(o,1),o.m(e,null))},i(t){s||(wt(o),t&&lt((()=>{r||(r=kt(e,Xn,{},!0)),r.run(1)})),s=!0)},o(t){vt(o),t&&(r||(r=kt(e,Xn,{},!1)),r.run(0)),s=!1},d(t){t&&P(e),c[n].d(),t&&r&&r.end()}}}function yr(e){let n,o,r,s,i,c=(e[0].retried_show_stopper?t.__("Hmm, looks like something went wrong. We're still seeing an unexpected error. Please reach out to our support to get help.","jetpack-boost"):t.__("An unexpected error has occurred. As this error may be temporary, please try and refresh the Critical CSS.","jetpack-boost"))+"",a=(e[2]||e[0].status_error)&&br(e);return{c(){n=L("p"),o=T(c),r=V(),a&&a.c(),s=O()},m(t,e){C(t,n,e),j(n,o),C(t,r,e),a&&a.m(t,e),C(t,s,e),i=!0},p(e,n){(!i||1&n)&&c!==(c=(e[0].retried_show_stopper?t.__("Hmm, looks like something went wrong. We're still seeing an unexpected error. Please reach out to our support to get help.","jetpack-boost"):t.__("An unexpected error has occurred. As this error may be temporary, please try and refresh the Critical CSS.","jetpack-boost"))+"")&&W(o,c),e[2]||e[0].status_error?a?(a.p(e,n),5&n&&wt(a,1)):(a=br(e),a.c(),wt(a,1),a.m(s.parentNode,s)):a&&(bt(),vt(a,1,1,(()=>{a=null})),_t())},i(t){i||(wt(a),i=!0)},o(t){vt(a),i=!1},d(t){t&&P(n),t&&P(r),a&&a.d(t),t&&P(s)}}}function kr(n){let o,r,s;return{c(){o=L("button"),o.textContent=`${t.__("Refresh","jetpack-boost")}`,N(o,"class","secondary")},m(t,e){C(t,o,e),r||(s=I(o,"click",n[4]),r=!0)},p:e,d(t){t&&P(o),r=!1,s()}}}function jr(n){let o;return{c(){o=L("a"),o.textContent=`${t.__("Contact Support","jetpack-boost")}`,N(o,"class","button button-secondary"),N(o,"href","https://wordpress.org/support/plugin/jetpack-boost/"),N(o,"target","_blank")},m(t,e){C(t,o,e)},p:e,d(t){t&&P(o)}}}function xr(t){let e;function n(t,e){return t[0].retried_show_stopper?jr:kr}let o=n(t),r=o(t);return{c(){e=L("div"),r.c(),N(e,"slot","actionButton")},m(t,n){C(t,e,n),r.m(e,null)},p(t,s){o===(o=n(t))&&r?r.p(t,s):(r.d(1),r=o(t),r&&(r.c(),r.m(e,null)))},d(t){t&&P(e),r.d()}}}function Sr(t){let e,n;return e=new ge({props:{title:t[3],$$slots:{actionButton:[xr],default:[yr]},$$scope:{ctx:t}}}),{c(){St(e.$$.fragment)},m(t,o){Et(e,t,o),n=!0},p(t,[n]){const o={};39&n&&(o.$$scope={dirty:n,ctx:t}),e.$set(o)},i(t){n||(wt(e.$$.fragment,t),n=!0)},o(t){vt(e.$$.fragment,t),n=!1},d(t){Ct(e,t)}}}function Er(e,n,o){let r,s;u(e,pn,(t=>o(0,r=t))),u(e,so,(t=>o(1,s=t)));let i=!1;const c=t.__("Failed to generate Critical CSS","jetpack-boost");return e.$$.update=()=>{3&e.$$.dirty&&o(2,i=s&&"success"===r.status)},[r,s,i,c,function(){_o(!0,!0)}]}class Cr extends zt{constructor(t){super(),Pt(this,t,Er,Sr,a,{})}}const Br=6e4,Pr=36e5,zr=24*Pr;function Lr(e){const n=Date.now()-e.getTime();if(n<Br)return t.__("a few moments ago","jetpack-boost");if(n<Pr){const e=Math.floor(n/Br);return t.sprintf(t._n("%d minute ago","%d minutes ago",e,"jetpack-boost"),e)}if(n<zr){const e=Math.floor(n/Pr);return t.sprintf(t._n("%d hour ago","%d hours ago",e,"jetpack-boost"),e)}if(n<12096e5){const e=Math.floor(n/zr);return t.sprintf(t._n("%d day ago","%d days ago",e,"jetpack-boost"),e)}const o={month:"short",day:"numeric",year:(new Date).getFullYear()===e.getFullYear()?void 0:"numeric"};return t.sprintf(t.__("on %s","jetpack-boost"),e.toLocaleDateString(navigator.language,o))}function Mr(t){let n,o,r;return{c(){n=L("span"),o=T(t[1]),N(n,"title",r=t[0].toLocaleString()),N(n,"class","time-ago")},m(t,e){C(t,n,e),j(n,o)},p(t,[e]){2&e&&W(o,t[1]),1&e&&r!==(r=t[0].toLocaleString())&&N(n,"title",r)},i:e,o:e,d(t){t&&P(n)}}}function Tr(t,e,n){let o,{time:r}=e;const s=Wt(Lr(r),(t=>{const e=setInterval((()=>{t(Lr(r))}),1e4);return()=>clearInterval(e)}));return u(t,s,(t=>n(1,o=t))),t.$$set=t=>{"time"in t&&n(0,r=t.time)},[r,o,s]}class Vr extends zt{constructor(t){super(),Pt(this,t,Tr,Mr,a,{time:0})}}function Or(e){let n,o,r,s,i,c,a,l,u,d,p,h,f,g,m,$,b=t.sprintf(t._n("%d file generated","%d files generated",e[0].success_count,"jetpack-boost"),e[0].success_count)+"",_=t.__("Regenerate","jetpack-boost")+"";c=new Vr({props:{time:new Date(1e3*e[0].created)}});let w=e[2]>0&&Nr(e);return p=new Ve({}),{c(){n=L("div"),o=L("div"),r=L("div"),s=T(b),i=V(),St(c.$$.fragment),a=T("."),l=V(),w&&w.c(),u=V(),d=L("button"),St(p.$$.fragment),h=V(),f=T(_),N(r,"class","successes"),N(o,"class","summary"),N(d,"type","button"),N(d,"class","components-button is-link"),N(n,"class","jb-critical-css__meta")},m(t,e){C(t,n,e),j(n,o),j(o,r),j(r,s),j(r,i),Et(c,r,null),j(r,a),j(o,l),w&&w.m(o,null),j(n,u),j(n,d),Et(p,d,null),j(d,h),j(d,f),g=!0,m||($=I(d,"click",_o),m=!0)},p(e,n){(!g||1&n)&&b!==(b=t.sprintf(t._n("%d file generated","%d files generated",e[0].success_count,"jetpack-boost"),e[0].success_count)+"")&&W(s,b);const r={};1&n&&(r.time=new Date(1e3*e[0].created)),c.$set(r),e[2]>0?w?(w.p(e,n),4&n&&wt(w,1)):(w=Nr(e),w.c(),wt(w,1),w.m(o,null)):w&&(bt(),vt(w,1,1,(()=>{w=null})),_t())},i(t){g||(wt(c.$$.fragment,t),wt(w),wt(p.$$.fragment,t),g=!0)},o(t){vt(c.$$.fragment,t),vt(w),vt(p.$$.fragment,t),g=!1},d(t){t&&P(n),Ct(c),w&&w.d(),Ct(p),m=!1,$()}}}function Ir(t){let n,o;return n=new Cr({}),{c(){St(n.$$.fragment)},m(t,e){Et(n,t,e),o=!0},p:e,i(t){o||(wt(n.$$.fragment,t),o=!0)},o(t){vt(n.$$.fragment,t),o=!1},d(t){Ct(n,t)}}}function Rr(n){let o,r,s,i,c,a,l;return{c(){o=L("div"),r=L("span"),r.textContent=`${t.__("Generating Critical CSS…","jetpack-boost")}`,s=V(),i=L("div"),c=L("div"),N(r,"class","jb-critical-css-progress__label"),N(c,"class","jb-progress-bar__filler"),N(c,"aria-hidden","true"),N(c,"style",a=`width: ${n[0].progress}%;`),N(i,"role","progressbar"),N(i,"aria-valuemax","100"),N(i,"aria-valuemin","0"),N(i,"aria-valuenow",l=n[0].progress),N(i,"class","jb-progress-bar"),N(o,"class","jb-critical-css-progress")},m(t,e){C(t,o,e),j(o,r),j(o,s),j(o,i),j(i,c)},p(t,e){1&e&&a!==(a=`width: ${t[0].progress}%;`)&&N(c,"style",a),1&e&&l!==(l=t[0].progress)&&N(i,"aria-valuenow",l)},i:e,o:e,d(t){t&&P(o)}}}function Nr(e){let n,o,r,s,i;return o=new fo({}),s=new At({props:{template:t.sprintf(t._n("%d file could not be automatically generated. Visit the <advanced>advanced recommendations page</advanced> to optimize this file.","%d files could not be automatically generated. Visit the <advanced>advanced recommendations page</advanced> to optimize these files.",e[2],"jetpack-boost"),e[2]),vars:{...oe(e[3],"advanced")}}}),{c(){n=L("div"),St(o.$$.fragment),r=V(),St(s.$$.fragment),N(n,"class","failures")},m(t,e){C(t,n,e),Et(o,n,null),j(n,r),Et(s,n,null),i=!0},p(e,n){const o={};4&n&&(o.template=t.sprintf(t._n("%d file could not be automatically generated. Visit the <advanced>advanced recommendations page</advanced> to optimize this file.","%d files could not be automatically generated. Visit the <advanced>advanced recommendations page</advanced> to optimize these files.",e[2],"jetpack-boost"),e[2])),s.$set(o)},i(t){i||(wt(o.$$.fragment,t),wt(s.$$.fragment,t),i=!0)},o(t){vt(o.$$.fragment,t),vt(s.$$.fragment,t),i=!1},d(t){t&&P(n),Ct(o),Ct(s)}}}function Ar(t){let e,n,o,r;const s=[Rr,Ir,Or],i=[];function c(t,e){return t[0].generating?0:t[1]?1:"success"===t[0].status?2:-1}return~(e=c(t))&&(n=i[e]=s[e](t)),{c(){n&&n.c(),o=O()},m(t,n){~e&&i[e].m(t,n),C(t,o,n),r=!0},p(t,[r]){let a=e;e=c(t),e===a?~e&&i[e].p(t,r):(n&&(bt(),vt(i[a],1,1,(()=>{i[a]=null})),_t()),~e?(n=i[e],n?n.p(t,r):(n=i[e]=s[e](t),n.c()),wt(n,1),n.m(o.parentNode,o)):n=null)},i(t){r||(wt(n),r=!0)},o(t){vt(n),r=!1},d(t){~e&&i[e].d(t),t&&P(o)}}}function Jr(t,e,n){let o,r;u(t,pn,(t=>n(0,o=t))),u(t,cn,(t=>n(2,r=t)));let s=!1;return t.$$.update=()=>{1&t.$$.dirty&&n(1,s="error"===o.status||"success"===o.status&&0===o.success_count)},[o,s,r,()=>Yn("critical-css-advanced")]}class Hr extends zt{constructor(t){super(),Pt(this,t,Jr,Ar,a,{})}}function Wr(t){let n,o,r,s,c,a,l,u,d,p,h;return{c(){n=L("div"),o=L("div"),r=L("span"),s=L("input"),c=V(),a=L("span"),l=V(),u=L("span"),d=L("label"),N(s,"id",t[1]),N(s,"class","components-form-toggle__input"),N(s,"type","checkbox"),s.disabled=t[2],N(a,"class","components-form-toggle__track"),N(u,"class","components-form-toggle__thumb"),N(r,"class","components-form-toggle"),D(r,"is-checked",t[0]),N(d,"for",t[1]),N(d,"class","components-toggle-control__label"),N(o,"class","components-base-control__field"),N(n,"class","components-base-control components-toggle-control")},m(e,i){C(e,n,i),j(n,o),j(o,r),j(r,s),s.checked=t[0],j(r,c),j(r,a),j(r,l),j(r,u),j(o,d),p||(h=[I(s,"click",t[3]),I(s,"change",t[4])],p=!0)},p(t,[e]){2&e&&N(s,"id",t[1]),4&e&&(s.disabled=t[2]),1&e&&(s.checked=t[0]),1&e&&D(r,"is-checked",t[0]),2&e&&N(d,"for",t[1])},i:e,o:e,d(t){t&&P(n),p=!1,i(h)}}}function Fr(t,e,n){let{id:o}=e,{checked:r=!1}=e,{disabled:s=!1}=e;return t.$$set=t=>{"id"in t&&n(1,o=t.id),"checked"in t&&n(0,r=t.checked),"disabled"in t&&n(2,s=t.disabled)},[r,o,s,function(e){nt.call(this,t,e)},function(){r=this.checked,n(0,r)}]}class Dr extends zt{constructor(t){super(),Pt(this,t,Fr,Wr,a,{id:1,checked:0,disabled:2})}}const Ur=t=>({}),qr=t=>({}),Yr=t=>({}),Gr=t=>({}),Xr=t=>({}),Kr=t=>({});function Qr(e){let n,o;return n=new ge({props:{title:t.__("Failed to toggle feature","jetpack-boost"),error:e[1]}}),{c(){St(n.$$.fragment)},m(t,e){Et(n,t,e),o=!0},p(t,e){const o={};2&e&&(o.error=t[1]),n.$set(o)},i(t){o||(wt(n.$$.fragment,t),o=!0)},o(t){vt(n.$$.fragment,t),o=!1},d(t){Ct(n,t)}}}function Zr(t){let e;const n=t[7].meta,o=d(n,t,t[6],qr);return{c(){o&&o.c()},m(t,n){o&&o.m(t,n),e=!0},p(t,r){o&&o.p&&(!e||64&r)&&f(o,n,t,t[6],e?h(n,t[6],r,Ur):g(t[6]),qr)},i(t){e||(wt(o,t),e=!0)},o(t){vt(o,t),e=!1},d(t){o&&o.d(t)}}}function ts(t){let e,n,o,r,s,i,c,a,l,u,p,m,$;function b(e){t[8](e)}let _={id:`jb-feature-toggle-${t[0]}`,checked:t[3]};void 0!==t[2]&&(_.disabled=t[2]),o=new Dr({props:_}),rt.push((()=>function(t,e,n){const o=t.$$.props[e];void 0!==o&&(t.$$.bound[o]=n,n(t.$$.ctx[o]))}(o,"disabled",b))),o.$on("click",t[5]);const w=t[7].title,v=d(w,t,t[6],Kr),y=t[7].description,k=d(y,t,t[6],Gr),x=t[7].default,S=d(x,t,t[6],null);let E=t[1]&&Qr(t),B=t[3]&&Zr(t);return{c(){e=L("div"),n=L("div"),St(o.$$.fragment),s=V(),i=L("div"),v&&v.c(),c=V(),a=L("div"),k&&k.c(),l=V(),u=L("div"),S&&S.c(),p=V(),E&&E.c(),m=V(),B&&B.c(),N(n,"class","jb-feature-toggle__toggle"),N(a,"class","jb-feature-toggle__text"),N(u,"class","jb-feature-toggle__content"),N(i,"class","jb-feature-toggle__content"),N(e,"class","jb-feature-toggle")},m(t,r){C(t,e,r),j(e,n),Et(o,n,null),j(e,s),j(e,i),v&&v.m(i,null),j(i,c),j(i,a),k&&k.m(a,null),j(i,l),j(i,u),S&&S.m(u,null),j(u,p),E&&E.m(u,null),j(u,m),B&&B.m(u,null),$=!0},p(t,[e]){const n={};var s;1&e&&(n.id=`jb-feature-toggle-${t[0]}`),8&e&&(n.checked=t[3]),!r&&4&e&&(r=!0,n.disabled=t[2],s=()=>r=!1,it.push(s)),o.$set(n),v&&v.p&&(!$||64&e)&&f(v,w,t,t[6],$?h(w,t[6],e,Xr):g(t[6]),Kr),k&&k.p&&(!$||64&e)&&f(k,y,t,t[6],$?h(y,t[6],e,Yr):g(t[6]),Gr),S&&S.p&&(!$||64&e)&&f(S,x,t,t[6],$?h(x,t[6],e,null):g(t[6]),null),t[1]?E?(E.p(t,e),2&e&&wt(E,1)):(E=Qr(t),E.c(),wt(E,1),E.m(u,m)):E&&(bt(),vt(E,1,1,(()=>{E=null})),_t()),t[3]?B?(B.p(t,e),8&e&&wt(B,1)):(B=Zr(t),B.c(),wt(B,1),B.m(u,null)):B&&(bt(),vt(B,1,1,(()=>{B=null})),_t())},i(t){$||(wt(o.$$.fragment,t),wt(v,t),wt(k,t),wt(S,t),wt(E),wt(B),$=!0)},o(t){vt(o.$$.fragment,t),vt(v,t),vt(k,t),vt(S,t),vt(E),vt(B),$=!1},d(t){t&&P(e),Ct(o),v&&v.d(t),k&&k.d(t),S&&S.d(t),E&&E.d(),B&&B.d()}}}function es(t,e,n){let o,{$$slots:r={},$$scope:s}=e,{slug:i}=e;const c=et(),a=Dt(wn,(t=>t[i]&&t[i].enabled));u(t,a,(t=>n(3,o=t)));let l=null,d=!1;return tt((async()=>{o&&c("mountEnabled")})),t.$$set=t=>{"slug"in t&&n(0,i=t.slug),"$$scope"in t&&n(6,s=t.$$scope)},[i,l,d,o,a,async function(){if(!d){n(1,l=null),n(2,d=!0);try{await bn(i,!o)&&c("enabled")}catch(t){n(1,l=t)}n(2,d=!1)}},s,r,function(t){d=t,n(2,d)}]}class ns extends zt{constructor(t){super(),Pt(this,t,es,ts,a,{slug:0})}}function os(n){let o;return{c(){o=L("h3"),o.textContent=`${t.__("Optimize CSS Loading","jetpack-boost")}`,N(o,"slot","title")},m(t,e){C(t,o,e)},p:e,d(t){t&&P(o)}}}function rs(n){let o,r,s;return r=new At({props:{template:t.__("Move important styling information to the start of the\n\t\t\t\t\tpage, which helps pages display your content sooner, so\n\t\t\t\t\tyour users don’t have to wait for the entire page to\n\t\t\t\t\tload. Commonly referred to as <link>Critical CSS</link>.","jetpack-boost"),vars:Jt("https://web.dev/extract-critical-css/")}}),{c(){o=L("p"),St(r.$$.fragment),N(o,"slot","description")},m(t,e){C(t,o,e),Et(r,o,null),s=!0},p:e,i(t){s||(wt(r.$$.fragment,t),s=!0)},o(t){vt(r.$$.fragment,t),s=!1},d(t){t&&P(o),Ct(r)}}}function ss(t){let e,n,o;return n=new Hr({}),{c(){e=L("div"),St(n.$$.fragment),N(e,"slot","meta")},m(t,r){C(t,e,r),Et(n,e,null),o=!0},i(t){o||(wt(n.$$.fragment,t),o=!0)},o(t){vt(n.$$.fragment,t),o=!1},d(t){t&&P(e),Ct(n)}}}function is(n){let o;return{c(){o=L("h3"),o.textContent=`${t.__("Defer Non-Essential Javascript","jetpack-boost")}`,N(o,"slot","title")},m(t,e){C(t,o,e)},p:e,d(t){t&&P(o)}}}function cs(n){let o,r,s;return r=new At({props:{template:t.__("Run non-essential javascript after the page has loaded so\n\t\t\t\t\tthat styles and images can load more quickly. Read more on\n\t\t\t\t\t<link>web.dev</link>.","jetpack-boost"),vars:Jt("https://web.dev/efficiently-load-third-party-javascript/")}}),{c(){o=L("p"),St(r.$$.fragment),N(o,"slot","description")},m(t,e){C(t,o,e),Et(r,o,null),s=!0},p:e,i(t){s||(wt(r.$$.fragment,t),s=!0)},o(t){vt(r.$$.fragment,t),s=!1},d(t){t&&P(o),Ct(r)}}}function as(n){let o;return{c(){o=L("h3"),o.textContent=`${t.__("Lazy Image Loading","jetpack-boost")}`,N(o,"slot","title")},m(t,e){C(t,o,e)},p:e,d(t){t&&P(o)}}}function ls(n){let o,r,s;return r=new At({props:{template:t.__("Improve page loading speed by only loading images when they\n\t\t\t\t\tare required. Read more on <link>web.dev</link>.","jetpack-boost"),vars:Jt("https://web.dev/browser-level-image-lazy-loading/")}}),{c(){o=L("p"),St(r.$$.fragment),N(o,"slot","description")},m(t,e){C(t,o,e),Et(r,o,null),s=!0},p:e,i(t){s||(wt(r.$$.fragment,t),s=!0)},o(t){vt(r.$$.fragment,t),s=!1},d(t){t&&P(o),Ct(r)}}}function us(t){let e,n,o,r,s,i,c;return n=new ns({props:{slug:"critical-css",$$slots:{meta:[ss],description:[rs],title:[os]},$$scope:{ctx:t}}}),n.$on("enabled",bo),n.$on("mountEnabled",bo),r=new ns({props:{slug:"render-blocking-js",$$slots:{description:[cs],title:[is]},$$scope:{ctx:t}}}),i=new ns({props:{slug:"lazy-images",$$slots:{description:[ls],title:[as]},$$scope:{ctx:t}}}),{c(){e=L("div"),St(n.$$.fragment),o=V(),St(r.$$.fragment),s=V(),St(i.$$.fragment),N(e,"class","jb-container--narrow")},m(t,a){C(t,e,a),Et(n,e,null),j(e,o),Et(r,e,null),j(e,s),Et(i,e,null),c=!0},p(t,[e]){const o={};1&e&&(o.$$scope={dirty:e,ctx:t}),n.$set(o);const s={};1&e&&(s.$$scope={dirty:e,ctx:t}),r.$set(s);const c={};1&e&&(c.$$scope={dirty:e,ctx:t}),i.$set(c)},i(t){c||(wt(n.$$.fragment,t),wt(r.$$.fragment,t),wt(i.$$.fragment,t),c=!0)},o(t){vt(n.$$.fragment,t),vt(r.$$.fragment,t),vt(i.$$.fragment,t),c=!1},d(t){t&&P(e),Ct(n),Ct(r),Ct(i)}}}class ds extends zt{constructor(t){super(),Pt(this,t,null,us,a,{})}}function ps(t){let n,o,r;return o=new ds({}),{c(){n=L("div"),St(o.$$.fragment),N(n,"class","jb-section jb-section--main")},m(t,e){C(t,n,e),Et(o,n,null),r=!0},p:e,i(t){r||(wt(o.$$.fragment,t),r=!0)},o(t){vt(o.$$.fragment,t),r=!1},d(t){t&&P(n),Ct(o)}}}function hs(t){let e,n,o;var r=t[0];return r&&(n=new r({})),{c(){e=L("div"),n&&St(n.$$.fragment),N(e,"class","jb-section jb-section--subpage")},m(t,r){C(t,e,r),n&&Et(n,e,null),o=!0},p(t,o){if(r!==(r=t[0])){if(n){bt();const t=n;vt(t.$$.fragment,1,0,(()=>{Ct(t,1)})),_t()}r?(n=new r({}),St(n.$$.fragment),wt(n.$$.fragment,1),Et(n,e,null)):n=null}},i(t){o||(n&&wt(n.$$.fragment,t),o=!0)},o(t){n&&vt(n.$$.fragment,t),o=!1},d(t){t&&P(e),n&&Ct(n)}}}function fs(t){let e,n,o,r,s,i,c,a,l;n=new Dn({});const u=[hs,ps],d=[];function p(t,e){return t[0]?0:1}return r=p(t),s=d[r]=u[r](t),a=new Se({}),{c(){e=L("div"),St(n.$$.fragment),o=V(),s.c(),i=V(),c=L("div"),St(a.$$.fragment),N(e,"class","jb-section--alt jb-section--scores"),N(c,"class","jb-section--alt")},m(t,s){C(t,e,s),Et(n,e,null),C(t,o,s),d[r].m(t,s),C(t,i,s),C(t,c,s),Et(a,c,null),l=!0},p(t,[e]){let n=r;r=p(t),r===n?d[r].p(t,e):(bt(),vt(d[n],1,1,(()=>{d[n]=null})),_t(),s=d[r],s?s.p(t,e):(s=d[r]=u[r](t),s.c()),wt(s,1),s.m(i.parentNode,i))},i(t){l||(wt(n.$$.fragment,t),wt(s),wt(a.$$.fragment,t),l=!0)},o(t){vt(n.$$.fragment,t),vt(s),vt(a.$$.fragment,t),l=!1},d(t){t&&P(e),Ct(n),t&&P(o),d[r].d(t),t&&P(i),t&&P(c),Ct(a)}}}function gs(t,e,n){let o;const r={"#critical-css-advanced":$r},s=Dt(Gn,(t=>r[t]));return u(t,s,(t=>n(0,o=t))),[o,s]}class ms extends zt{constructor(t){super(),Pt(this,t,gs,fs,a,{})}}function $s(t){let n,r,s,i,c,a,l=[{width:"177"},{height:"7"},{fill:"none"},{xmlns:"http://www.w3.org/2000/svg"},t[0]],u={};for(let t=0;t<l.length;t+=1)u=o(u,l[t]);return{c(){n=M("svg"),r=M("g"),s=M("path"),i=M("defs"),c=M("clipPath"),a=M("path"),this.h()},l(t){n=H(t,"svg",{width:!0,height:!0,fill:!0,xmlns:!0});var e=J(n);r=H(e,"g",{"clip-path":!0,fill:!0,"fill-opacity":!0});var o=J(r);s=H(o,"path",{d:!0}),J(s).forEach(P),o.forEach(P),i=H(e,"defs",{});var l=J(i);c=H(l,"clipPath",{id:!0});var u=J(c);a=H(u,"path",{fill:!0,d:!0}),J(a).forEach(P),u.forEach(P),l.forEach(P),e.forEach(P),this.h()},h(){N(s,"d","M59.878 7c-2.38 0-3.909-1.668-3.909-3.39v-.22c0-1.76 1.548-3.39 3.909-3.39 2.379 0 3.927 1.63 3.927 3.39v.22c0 1.722-1.548 3.39-3.927 3.39zm2.662-3.592c0-1.264-.944-2.382-2.662-2.382-1.719 0-2.644 1.118-2.644 2.382v.165c0 1.265.944 2.4 2.644 2.4 1.7 0 2.662-1.135 2.662-2.4v-.165zM33.045 6.743l-.887-1.612H28.21l-.85 1.612H26.04L29.646.238h1.039l3.682 6.505h-1.322zm-2.889-5.24l-1.454 2.73h2.965l-1.511-2.73zM40.107 7c-2.398 0-3.53-1.264-3.53-2.969V.238h1.245v3.83c0 1.21.813 1.924 2.36 1.924 1.587 0 2.248-.715 2.248-1.924V.238h1.265v3.793C43.695 5.644 42.638 7 40.107 7zM50.72 1.246v5.497h-1.266V1.246h-2.926V.238h7.118v1.008H50.72zm24.302 5.497V1.594l-.34.568-2.814 4.581h-.623l-2.776-4.58-.34-.569v5.15h-1.227V.237h1.737l2.644 4.471.321.55.321-.55L74.55.24h1.718v6.504h-1.246zm10.782 0l-.887-1.612H80.97l-.85 1.612h-1.322L82.425.238h1.039l3.682 6.505h-1.34zm-2.889-5.24l-1.454 2.73h2.965l-1.511-2.73zm9.31-.257v5.497h-1.266V1.246h-2.927V.238h7.12v1.008h-2.928zm9.233 0v5.497h-1.265V1.246h-2.927V.238h7.119v1.008h-2.927zm6.043 5.497v-5.9c.509 0 .698-.257.698-.623h.529v6.505l-1.227.018zm11.084-4.672c-.604-.532-1.492-1.045-2.682-1.045-1.793 0-2.794 1.191-2.794 2.437v.129c0 1.227 1.019 2.382 2.889 2.382 1.114 0 2.039-.513 2.625-1.045l.755.77c-.737.696-1.983 1.301-3.456 1.301-2.53 0-4.078-1.594-4.078-3.353v-.22c0-1.76 1.68-3.427 4.135-3.427 1.416 0 2.7.568 3.399 1.301l-.793.77zm-57.876.201c.226.147.283.44.15.66l-1.151 1.722a.501.501 0 01-.68.147.486.486 0 01-.151-.66l1.152-1.722a.485.485 0 01.68-.147zM7.081 6.725l-.887-1.63H2.209l-.868 1.63H0L3.663.147h1.058l3.72 6.578H7.08zM4.154 1.43L2.681 4.196h3.003L4.154 1.43zm11.481 5.296l-4.4-4.398-.434-.458v4.875H9.536V.147h1.227l4.268 4.398.434.476V.147h1.265v6.578h-1.095zM135.938 6.78l-.907-1.63h-3.984l-.868 1.63h-1.341L132.52.183h1.058l3.738 6.597h-1.378zm-2.927-5.314l-1.473 2.767h3.003l-1.53-2.767zm5.401 5.314V.183h1.284V6.78h-1.284zm9.063 0c-.34 0-.491-.458-.547-1.063l-.038-.678c-.038-.66-.321-.934-1.586-.934h-2.417V6.78h-1.265V.183h3.701c2.039 0 2.964.788 2.964 1.814 0 .715-.377 1.411-1.699 1.65 1.322.091 1.605.678 1.624 1.447l.019.55c.019.458.094.788.415 1.118v.018h-1.171zm-.472-4.618c0-.476-.396-.934-1.491-.934h-2.606v1.979h2.719c.944 0 1.378-.44 1.378-.953v-.092zm3.078 4.618V.183h1.284v5.57h5.325V6.78h-6.609zm7.912 0V.183h1.284V6.78h-1.284zm9.347 0l-4.418-4.416-.435-.458V6.78h-1.284V.183h1.228l4.286 4.416.434.477V.183h1.284V6.78h-1.095zm3.04 0V.183h6.175V1.21h-4.91v1.686h3.777v1.008h-3.777v1.85h4.91V6.78h-6.175z"),N(r,"clip-path","url(#footer-automattic_svg__clip0)"),N(r,"fill","#000"),N(r,"fill-opacity","0.8"),N(a,"fill","#fff"),N(a,"d","M0 0h176.556v7H0z"),N(c,"id","footer-automattic_svg__clip0"),A(n,u)},m(t,e){B(t,n,e),E(n,r),E(r,s),E(n,i),E(i,c),E(c,a)},p(t,[e]){A(n,u=xt(l,[{width:"177"},{height:"7"},{fill:"none"},{xmlns:"http://www.w3.org/2000/svg"},1&e&&t[0]]))},i:e,o:e,d(t){t&&P(n)}}}function bs(t,e,n){return t.$$set=t=>{n(0,e=o(o({},e),m(t)))},[e=m(e)]}class _s extends zt{constructor(t){super(),Pt(this,t,bs,$s,a,{})}}function ws(t){let n,r,s=[{xmlns:"http://www.w3.org/2000/svg"},{width:"16"},{height:"16"},{fill:"none"},t[0]],i={};for(let t=0;t<s.length;t+=1)i=o(i,s[t]);return{c(){n=M("svg"),r=M("path"),this.h()},l(t){n=H(t,"svg",{xmlns:!0,width:!0,height:!0,fill:!0});var e=J(n);r=H(e,"path",{d:!0,fill:!0,"fill-opacity":!0}),J(r).forEach(P),e.forEach(P),this.h()},h(){N(r,"d","M8 0C3.588 0 0 3.588 0 8s3.588 8 8 8 8-3.588 8-8-3.588-8-8-8zm-.412 9.328H3.603l3.985-7.755v7.755zm.809 5.084V6.656h3.985l-3.985 7.756z"),N(r,"fill","#000"),N(r,"fill-opacity","0.7"),A(n,i)},m(t,e){B(t,n,e),E(n,r)},p(t,[e]){A(n,i=xt(s,[{xmlns:"http://www.w3.org/2000/svg"},{width:"16"},{height:"16"},{fill:"none"},1&e&&t[0]]))},i:e,o:e,d(t){t&&P(n)}}}function vs(t,e,n){return t.$$set=t=>{n(0,e=o(o({},e),m(t)))},[e=m(e)]}class ys extends zt{constructor(t){super(),Pt(this,t,vs,ws,a,{})}}function ks(n){let o,r,s,i,c,a,l,u,d,p=t.__("Jetpack Boost","jetpack-boost")+"";return s=new ys({}),u=new _s({}),{c(){o=L("footer"),r=L("div"),St(s.$$.fragment),i=V(),c=T(p),a=V(),l=L("div"),St(u.$$.fragment),N(r,"class","jb-signature--jetpack"),N(l,"class","jb-signature--automattic"),N(o,"class","jb-settings-footer")},m(t,e){C(t,o,e),j(o,r),Et(s,r,null),j(r,i),j(r,c),j(o,a),j(o,l),Et(u,l,null),d=!0},p:e,i(t){d||(wt(s.$$.fragment,t),wt(u.$$.fragment,t),d=!0)},o(t){vt(s.$$.fragment,t),vt(u.$$.fragment,t),d=!1},d(t){t&&P(o),Ct(s),Ct(u)}}}class js extends zt{constructor(t){super(),Pt(this,t,null,ks,a,{})}}function xs(t){let n,r,s,i,c=[{xmlns:"http://www.w3.org/2000/svg"},{width:"176"},{height:"32"},{fill:"none"},t[0]],a={};for(let t=0;t<c.length;t+=1)a=o(a,c[t]);return{c(){n=M("svg"),r=M("path"),s=M("path"),i=M("path"),this.h()},l(t){n=H(t,"svg",{xmlns:!0,width:!0,height:!0,fill:!0});var e=J(n);r=H(e,"path",{d:!0,fill:!0}),J(r).forEach(P),s=H(e,"path",{d:!0,fill:!0}),J(s).forEach(P),i=H(e,"path",{d:!0,fill:!0}),J(i).forEach(P),e.forEach(P),this.h()},h(){N(r,"d","M131.517 10.878c0 .656-.149 1.257-.446 1.804-.3.547-.79 1-1.477 1.364v.045c.381.128.73.292 1.047.492a3.205 3.205 0 011.339 1.646c.126.347.188.735.188 1.164 0 .37-.059.766-.177 1.188a3.68 3.68 0 01-.624 1.228 4.8 4.8 0 01-1.19 1.091c-.495.332-1.121.596-1.876.792-.191.045-.398.087-.624.125-.225.037-.475.07-.75.096-.275.026-.58.045-.915.056-.336.01-.713.016-1.133.016h-4.45V6.852h5.32c1.137 0 2.053.113 2.747.34.52.165.969.382 1.35.65.381.268.697.566.944.894a3.513 3.513 0 01.727 2.142zm-5.756 2.206c.762 0 1.33-.075 1.705-.226.42-.173.719-.413.899-.718.178-.306.268-.651.268-1.035 0-.4-.103-.756-.31-1.069-.205-.313-.556-.545-1.051-.696a3.915 3.915 0 00-.72-.13c-.276-.027-.615-.04-1.02-.04h-2.3v3.914h2.529zm-2.529 2.318v4.265h1.83a17.1 17.1 0 001.26-.04c.35-.026.652-.07.904-.13.39-.083.713-.194.973-.334.259-.14.469-.298.63-.476.16-.176.274-.373.343-.588.07-.215.102-.442.102-.684 0-.422-.117-.791-.354-1.108-.236-.317-.606-.554-1.11-.713a4.023 4.023 0 00-.778-.146c-.298-.03-.679-.046-1.144-.046h-2.656zM144.904 16.511c0 .86-.13 1.644-.39 2.353a5.163 5.163 0 01-1.116 1.821 4.945 4.945 0 01-1.756 1.17c-.686.276-1.453.413-2.3.413-.87 0-1.65-.138-2.34-.413a4.87 4.87 0 01-1.757-1.17 5.104 5.104 0 01-1.104-1.821c-.255-.708-.383-1.494-.383-2.353 0-.86.13-1.643.389-2.353a5.152 5.152 0 011.116-1.82 4.942 4.942 0 011.756-1.171c.687-.276 1.453-.413 2.3-.413.87 0 1.65.138 2.34.413.691.276 1.276.665 1.757 1.17.48.505.848 1.112 1.104 1.821.255.71.384 1.494.384 2.353zm-2.804 0c0-.58-.069-1.093-.206-1.539a3.308 3.308 0 00-.573-1.12 2.328 2.328 0 00-.882-.678 2.753 2.753 0 00-1.12-.226 2.68 2.68 0 00-1.105.226c-.338.152-.63.378-.874.679a3.318 3.318 0 00-.573 1.12 5.241 5.241 0 00-.206 1.538c0 .58.07 1.093.206 1.539.137.444.33.816.578 1.114.248.298.542.524.881.678.339.155.71.232 1.116.232.404 0 .774-.077 1.11-.232a2.42 2.42 0 00.869-.678 3.25 3.25 0 00.573-1.114c.137-.446.206-.959.206-1.539zM157.476 16.511c0 .86-.129 1.644-.389 2.353a5.163 5.163 0 01-1.116 1.821 4.952 4.952 0 01-1.756 1.17c-.686.276-1.453.413-2.3.413-.87 0-1.65-.138-2.34-.413a4.87 4.87 0 01-1.757-1.17 5.104 5.104 0 01-1.104-1.821c-.255-.708-.383-1.494-.383-2.353 0-.86.13-1.643.389-2.353a5.152 5.152 0 011.116-1.82 4.942 4.942 0 011.756-1.171c.687-.276 1.453-.413 2.3-.413.87 0 1.65.138 2.34.413.691.276 1.276.665 1.757 1.17.48.505.848 1.112 1.104 1.821.255.71.383 1.494.383 2.353zm-2.804 0c0-.58-.07-1.093-.206-1.539a3.308 3.308 0 00-.573-1.12 2.334 2.334 0 00-.881-.678 2.753 2.753 0 00-1.122-.226 2.68 2.68 0 00-1.104.226c-.339.152-.631.378-.875.679a3.317 3.317 0 00-.572 1.12c-.137.444-.206.957-.206 1.538 0 .58.069 1.093.206 1.539.138.444.33.816.578 1.114.248.298.541.524.88.678.34.155.712.232 1.116.232a2.63 2.63 0 001.111-.232c.336-.154.625-.38.87-.678a3.25 3.25 0 00.572-1.114c.138-.446.206-.959.206-1.539zM164.359 18.806a.842.842 0 00-.2-.576 1.592 1.592 0 00-.532-.38 4.742 4.742 0 00-.762-.266 42.567 42.567 0 00-.898-.226 11.73 11.73 0 01-1.144-.367 3.471 3.471 0 01-.966-.548c-.28-.227-.5-.511-.664-.854-.164-.343-.247-.763-.247-1.261 0-.611.11-1.14.332-1.59.22-.448.52-.819.898-1.114a3.836 3.836 0 011.316-.656 5.718 5.718 0 011.585-.215 10.58 10.58 0 013.524.588v2.184a12.7 12.7 0 00-1.643-.418c-.286-.053-.57-.096-.853-.13a6.67 6.67 0 00-.801-.05c-.32 0-.591.029-.812.09-.222.06-.4.14-.538.242a.917.917 0 00-.39.763c0 .25.068.453.2.612.134.158.318.286.554.385.237.098.485.178.745.243l.755.187c.382.09.762.2 1.144.327.382.128.725.308 1.03.538.305.23.555.528.75.893.194.366.291.832.291 1.396 0 .62-.117 1.158-.355 1.618-.236.46-.566.842-.989 1.148-.423.305-.931.531-1.523.678-.59.147-1.24.22-1.95.22a9.935 9.935 0 01-1.893-.164c-.56-.109-1.025-.247-1.391-.412v-2.16a8.79 8.79 0 001.648.447c.503.08.973.119 1.408.119.335 0 .648-.024.938-.074.29-.048.539-.126.75-.232.21-.105.376-.239.497-.401a.928.928 0 00.186-.584zM176 21.973c-.306.09-.67.163-1.093.215a9.57 9.57 0 01-1.184.08c-.93 0-1.692-.149-2.282-.447-.592-.298-1.01-.726-1.254-1.284-.175-.4-.264-.942-.264-1.629v-5.677h-2.07v-2.206h2.07V7.96h2.713v3.066h3.203v2.206h-3.203v5.327c0 .423.064.736.194.94.228.347.682.52 1.361.52.312 0 .623-.024.933-.074.309-.049.6-.112.874-.187v2.215H176z"),N(r,"fill","#787C82"),N(s,"d","M39.777 26.842c-.46-.695-.887-1.388-1.316-2.052 2.265-1.359 3.03-2.445 3.03-4.498V8.429h-2.663V6.167h5.662v13.522c0 3.441-1.01 5.372-4.713 7.153zM63.494 18.753c0 1.146.826 1.267 1.377 1.267s1.347-.181 1.958-.362v2.113c-.857.272-1.744.483-2.968.483-1.47 0-3.183-.544-3.183-3.08v-6.218h-1.56v-2.143h1.56V7.645h2.816v3.169h3.55v2.143h-3.55v5.796zM69.37 27.898V10.783h2.693v1.026c1.07-.815 2.264-1.328 3.733-1.328 2.54 0 4.56 1.751 4.56 5.524 0 3.743-2.203 6.218-5.845 6.218-.887 0-1.59-.12-2.326-.272v5.916H69.37v.03zm5.691-15.122c-.826 0-1.867.392-2.846 1.238v5.826c.611.12 1.255.21 2.111.21 1.989 0 3.122-1.238 3.122-3.833 0-2.385-.827-3.441-2.387-3.441zM91.432 21.982h-2.631v-1.238h-.062c-.918.694-2.05 1.449-3.733 1.449-1.469 0-3.06-1.057-3.06-3.2 0-2.867 2.478-3.41 4.223-3.652l2.478-.332v-.331c0-1.51-.612-1.992-2.051-1.992-.704 0-2.356.21-3.703.754l-.244-2.234c1.224-.422 2.907-.724 4.315-.724 2.754 0 4.529 1.087 4.529 4.317v7.183h-.061zm-2.815-5.222l-2.327.362c-.704.09-1.438.513-1.438 1.54 0 .905.52 1.418 1.285 1.418.827 0 1.714-.483 2.478-1.026V16.76h.002zM103.061 21.62c-1.162.392-2.203.634-3.52.634-4.222 0-5.906-2.385-5.906-5.855 0-3.652 2.327-5.917 6.09-5.917 1.407 0 2.264.242 3.212.544v2.354c-.826-.302-2.02-.633-3.182-.633-1.714 0-3.182.905-3.182 3.5 0 2.868 1.468 3.744 3.335 3.744.887 0 1.867-.182 3.182-.695v2.324h-.029zM108.385 15.614c.246-.272.43-.544 3.978-4.8h3.672l-4.59 5.313 5.018 5.885h-3.672l-4.376-5.312v5.312h-2.814V6.166h2.816v9.448h-.032zM57.006 21.62a13.455 13.455 0 01-4.193.634c-3.611 0-5.845-1.78-5.845-5.947 0-3.049 1.898-5.826 5.539-5.826 3.61 0 4.866 2.475 4.866 4.83 0 .784-.062 1.207-.092 1.659H50c.061 2.444 1.469 3.018 3.58 3.018 1.162 0 2.203-.271 3.397-.694v2.324h.03v.002zm-2.57-6.49c0-1.359-.46-2.536-1.958-2.536-1.407 0-2.264.996-2.448 2.536h4.406z"),N(s,"fill","#000"),N(i,"d","M15.714 0C7.047 0 0 6.951 0 15.5S7.047 31 15.714 31c8.667 0 15.715-6.951 15.715-15.5S24.38 0 15.714 0zm-.81 18.073H7.078l7.828-15.026v15.026zm1.59 9.85V12.898h7.827l-7.827 15.027z"),N(i,"fill","#069E08"),A(n,a)},m(t,e){B(t,n,e),E(n,r),E(n,s),E(n,i)},p(t,[e]){A(n,a=xt(c,[{xmlns:"http://www.w3.org/2000/svg"},{width:"176"},{height:"32"},{fill:"none"},1&e&&t[0]]))},i:e,o:e,d(t){t&&P(n)}}}function Ss(t,e,n){return t.$$set=t=>{n(0,e=o(o({},e),m(t)))},[e=m(e)]}class Es extends zt{constructor(t){super(),Pt(this,t,Ss,xs,a,{})}}function Cs(t){let n,o,r,s;return r=new Es({}),{c(){n=L("div"),o=L("div"),St(r.$$.fragment),N(o,"class","jb-settings-header__logo"),N(n,"class","jb-settings-header")},m(t,e){C(t,n,e),j(n,o),Et(r,o,null),s=!0},p:e,i(t){s||(wt(r.$$.fragment,t),s=!0)},o(t){vt(r.$$.fragment,t),s=!1},d(t){t&&P(n),Ct(r)}}}class Bs extends zt{constructor(t){super(),Pt(this,t,null,Cs,a,{})}}function Ps(t){let e,n;return e=new je({}),{c(){St(e.$$.fragment)},m(t,o){Et(e,t,o),n=!0},i(t){n||(wt(e.$$.fragment,t),n=!0)},o(t){vt(e.$$.fragment,t),n=!1},d(t){Ct(e,t)}}}function zs(t){let e,n;return e=new ms({}),{c(){St(e.$$.fragment)},m(t,o){Et(e,t,o),n=!0},i(t){n||(wt(e.$$.fragment,t),n=!0)},o(t){vt(e.$$.fragment,t),n=!1},d(t){Ct(e,t)}}}function Ls(t){let e,n,o,r,s,i,c,a,l,u;r=new Bs({});const d=[zs,Ps],p=[];function h(t,e){return t[0].connected||!me.site.online?0:1}return i=h(t),c=p[i]=d[i](t),l=new js({}),{c(){e=L("div"),n=L("div"),o=L("div"),St(r.$$.fragment),s=V(),c.c(),a=V(),St(l.$$.fragment),N(o,"class","jb-container"),N(n,"id","jb-settings"),N(n,"class","jb-settings"),N(e,"id","jb-admin-settings")},m(t,c){C(t,e,c),j(e,n),j(n,o),Et(r,o,null),j(n,s),p[i].m(n,null),j(n,a),Et(l,n,null),u=!0},p(t,[e]){let o=i;i=h(t),i!==o&&(bt(),vt(p[o],1,1,(()=>{p[o]=null})),_t(),c=p[i],c||(c=p[i]=d[i](t),c.c()),wt(c,1),c.m(n,a))},i(t){u||(wt(r.$$.fragment,t),wt(c),wt(l.$$.fragment,t),u=!0)},o(t){vt(r.$$.fragment,t),vt(c),vt(l.$$.fragment,t),u=!1},d(t){t&&P(e),Ct(r),p[i].d(),Ct(l)}}}function Ms(t,e,n){let o;return u(t,ne,(t=>n(0,o=t))),[o]}const Ts=document.getElementById("jb-admin-settings");return new class extends zt{constructor(t){super(),Pt(this,t,Ms,Ls,a,{})}}({target:Ts})}(wp.i18n);
1
+ var app=function(t){"use strict";function e(){}const n=t=>t;function o(t,e){for(const n in e)t[n]=e[n];return t}function r(t){return t()}function s(){return Object.create(null)}function i(t){t.forEach(r)}function c(t){return"function"==typeof t}function a(t,e){return t!=t?e==e:t!==e||t&&"object"==typeof t||"function"==typeof t}function l(t,...n){if(null==t)return e;const o=t.subscribe(...n);return o.unsubscribe?()=>o.unsubscribe():o}function u(t,e,n){t.$$.on_destroy.push(l(e,n))}function d(t,e,n,o){if(t){const r=p(t,e,n,o);return t[0](r)}}function p(t,e,n,r){return t[1]&&r?o(n.ctx.slice(),t[1](r(e))):n.ctx}function h(t,e,n,o){if(t[2]&&o){const r=t[2](o(n));if(void 0===e.dirty)return r;if("object"==typeof r){const t=[],n=Math.max(e.dirty.length,r.length);for(let o=0;o<n;o+=1)t[o]=e.dirty[o]|r[o];return t}return e.dirty|r}return e.dirty}function f(t,e,n,o,r,s){if(r){const i=p(e,n,o,s);t.p(i,r)}}function g(t){if(t.ctx.length>32){const e=[],n=t.ctx.length/32;for(let t=0;t<n;t++)e[t]=-1;return e}return-1}function m(t){const e={};for(const n in t)"$"!==n[0]&&(e[n]=t[n]);return e}const $="undefined"!=typeof window;let b=$?()=>window.performance.now():()=>Date.now(),_=$?t=>requestAnimationFrame(t):e;const w=new Set;function v(t){w.forEach((e=>{e.c(t)||(w.delete(e),e.f())})),0!==w.size&&_(v)}let y=!1;function k(t,e,n,o){for(;t<e;){const r=t+(e-t>>1);n(r)<=o?t=r+1:e=r}return t}function j(t,e){t.appendChild(e)}function x(t){if(!t)return document;const e=t.getRootNode?t.getRootNode():t.ownerDocument;return e&&e.host?e:t.ownerDocument}function S(t){const e=L("style");return function(t,e){j(t.head||t,e)}(x(t),e),e}function E(t,e){if(y){for(!function(t){if(t.hydrate_init)return;t.hydrate_init=!0;let e=t.childNodes;if("HEAD"===t.nodeName){const t=[];for(let n=0;n<e.length;n++){const o=e[n];void 0!==o.claim_order&&t.push(o)}e=t}const n=new Int32Array(e.length+1),o=new Int32Array(e.length);n[0]=-1;let r=0;for(let t=0;t<e.length;t++){const s=e[t].claim_order,i=(r>0&&e[n[r]].claim_order<=s?r+1:k(1,r,(t=>e[n[t]].claim_order),s))-1;o[t]=n[i]+1;const c=i+1;n[c]=t,r=Math.max(c,r)}const s=[],i=[];let c=e.length-1;for(let t=n[r]+1;0!=t;t=o[t-1]){for(s.push(e[t-1]);c>=t;c--)i.push(e[c]);c--}for(;c>=0;c--)i.push(e[c]);s.reverse(),i.sort(((t,e)=>t.claim_order-e.claim_order));for(let e=0,n=0;e<i.length;e++){for(;n<s.length&&i[e].claim_order>=s[n].claim_order;)n++;const o=n<s.length?s[n]:null;t.insertBefore(i[e],o)}}(t),(void 0===t.actual_end_child||null!==t.actual_end_child&&t.actual_end_child.parentElement!==t)&&(t.actual_end_child=t.firstChild);null!==t.actual_end_child&&void 0===t.actual_end_child.claim_order;)t.actual_end_child=t.actual_end_child.nextSibling;e!==t.actual_end_child?void 0===e.claim_order&&e.parentNode===t||t.insertBefore(e,t.actual_end_child):t.actual_end_child=e.nextSibling}else e.parentNode===t&&null===e.nextSibling||t.appendChild(e)}function C(t,e,n){t.insertBefore(e,n||null)}function B(t,e,n){y&&!n?E(t,e):e.parentNode===t&&e.nextSibling==n||t.insertBefore(e,n||null)}function P(t){t.parentNode.removeChild(t)}function z(t,e){for(let n=0;n<t.length;n+=1)t[n]&&t[n].d(e)}function L(t){return document.createElement(t)}function M(t){return document.createElementNS("http://www.w3.org/2000/svg",t)}function T(t){return document.createTextNode(t)}function V(){return T(" ")}function O(){return T("")}function I(t,e,n,o){return t.addEventListener(e,n,o),()=>t.removeEventListener(e,n,o)}function R(t){return function(e){return e.preventDefault(),t.call(this,e)}}function N(t,e,n){null==n?t.removeAttribute(e):t.getAttribute(e)!==n&&t.setAttribute(e,n)}function A(t,e){for(const n in e)N(t,n,e[n])}function J(t){return Array.from(t.childNodes)}function H(t,e,n){return function(t,e,n,o){return function(t,e,n,o,r=!1){!function(t){void 0===t.claim_info&&(t.claim_info={last_index:0,total_claimed:0})}(t);const s=(()=>{for(let o=t.claim_info.last_index;o<t.length;o++){const s=t[o];if(e(s)){const e=n(s);return void 0===e?t.splice(o,1):t[o]=e,r||(t.claim_info.last_index=o),s}}for(let o=t.claim_info.last_index-1;o>=0;o--){const s=t[o];if(e(s)){const e=n(s);return void 0===e?t.splice(o,1):t[o]=e,r?void 0===e&&t.claim_info.last_index--:t.claim_info.last_index=o,s}}return o()})();return s.claim_order=t.claim_info.total_claimed,t.claim_info.total_claimed+=1,s}(t,(t=>t.nodeName===e),(t=>{const e=[];for(let o=0;o<t.attributes.length;o++){const r=t.attributes[o];n[r.name]||e.push(r.name)}e.forEach((e=>t.removeAttribute(e)))}),(()=>o(e)))}(t,e,n,M)}function W(t,e){e=""+e,t.wholeText!==e&&(t.data=e)}function F(t,e,n,o){t.style.setProperty(e,n,o?"important":"")}function D(t,e,n){t.classList[n?"add":"remove"](e)}function U(t,e,n=!1){const o=document.createEvent("CustomEvent");return o.initCustomEvent(t,n,!1,e),o}const q=new Set;let Y,G=0;function X(t,e,n,o,r,s,i,c=0){const a=16.666/o;let l="{\n";for(let t=0;t<=1;t+=a){const o=e+(n-e)*s(t);l+=100*t+`%{${i(o,1-o)}}\n`}const u=l+`100% {${i(n,1-n)}}\n}`,d=`__svelte_${function(t){let e=5381,n=t.length;for(;n--;)e=(e<<5)-e^t.charCodeAt(n);return e>>>0}(u)}_${c}`,p=x(t);q.add(p);const h=p.__svelte_stylesheet||(p.__svelte_stylesheet=S(t).sheet),f=p.__svelte_rules||(p.__svelte_rules={});f[d]||(f[d]=!0,h.insertRule(`@keyframes ${d} ${u}`,h.cssRules.length));const g=t.style.animation||"";return t.style.animation=`${g?`${g}, `:""}${d} ${o}ms linear ${r}ms 1 both`,G+=1,d}function K(t,e){const n=(t.style.animation||"").split(", "),o=n.filter(e?t=>t.indexOf(e)<0:t=>-1===t.indexOf("__svelte")),r=n.length-o.length;r&&(t.style.animation=o.join(", "),G-=r,G||_((()=>{G||(q.forEach((t=>{const e=t.__svelte_stylesheet;let n=e.cssRules.length;for(;n--;)e.deleteRule(n);t.__svelte_rules={}})),q.clear())})))}function Q(t){Y=t}function Z(){if(!Y)throw new Error("Function called outside component initialization");return Y}function tt(t){Z().$$.on_mount.push(t)}function et(){const t=Z();return(e,n)=>{const o=t.$$.callbacks[e];if(o){const r=U(e,n);o.slice().forEach((e=>{e.call(t,r)}))}}}function nt(t,e){const n=t.$$.callbacks[e.type];n&&n.slice().forEach((t=>t.call(this,e)))}const ot=[],rt=[],st=[],it=[],ct=Promise.resolve();let at=!1;function lt(t){st.push(t)}let ut=!1;const dt=new Set;function pt(){if(!ut){ut=!0;do{for(let t=0;t<ot.length;t+=1){const e=ot[t];Q(e),ht(e.$$)}for(Q(null),ot.length=0;rt.length;)rt.pop()();for(let t=0;t<st.length;t+=1){const e=st[t];dt.has(e)||(dt.add(e),e())}st.length=0}while(ot.length);for(;it.length;)it.pop()();at=!1,ut=!1,dt.clear()}}function ht(t){if(null!==t.fragment){t.update(),i(t.before_update);const e=t.dirty;t.dirty=[-1],t.fragment&&t.fragment.p(t.ctx,e),t.after_update.forEach(lt)}}let ft;function gt(t,e,n){t.dispatchEvent(U(`${e?"intro":"outro"}${n}`))}const mt=new Set;let $t;function bt(){$t={r:0,c:[],p:$t}}function _t(){$t.r||i($t.c),$t=$t.p}function wt(t,e){t&&t.i&&(mt.delete(t),t.i(e))}function vt(t,e,n,o){if(t&&t.o){if(mt.has(t))return;mt.add(t),$t.c.push((()=>{mt.delete(t),o&&(n&&t.d(1),o())})),t.o(e)}}const yt={duration:0};function kt(t,o,r,s){let a=o(t,r),l=s?0:1,u=null,d=null,p=null;function h(){p&&K(t,p)}function f(t,e){const n=t.b-l;return e*=Math.abs(n),{a:l,b:t.b,d:n,duration:e,start:t.start,end:t.start+e,group:t.group}}function g(o){const{delay:r=0,duration:s=300,easing:c=n,tick:g=e,css:m}=a||yt,$={start:b()+r,b:o};o||($.group=$t,$t.r+=1),u||d?d=$:(m&&(h(),p=X(t,l,o,s,r,c,m)),o&&g(0,1),u=f($,s),lt((()=>gt(t,o,"start"))),function(t){let e;0===w.size&&_(v),new Promise((n=>{w.add(e={c:t,f:n})}))}((e=>{if(d&&e>d.start&&(u=f(d,s),d=null,gt(t,u.b,"start"),m&&(h(),p=X(t,l,u.b,u.duration,0,c,a.css))),u)if(e>=u.end)g(l=u.b,1-l),gt(t,u.b,"end"),d||(u.b?h():--u.group.r||i(u.group.c)),u=null;else if(e>=u.start){const t=e-u.start;l=u.a+u.d*c(t/u.duration),g(l,1-l)}return!(!u&&!d)})))}return{run(t){c(a)?(ft||(ft=Promise.resolve(),ft.then((()=>{ft=null}))),ft).then((()=>{a=a(),g(t)})):g(t)},end(){h(),u=d=null}}}function jt(t,e){vt(t,1,1,(()=>{e.delete(t.key)}))}function xt(t,e){const n={},o={},r={$$scope:1};let s=t.length;for(;s--;){const i=t[s],c=e[s];if(c){for(const t in i)t in c||(o[t]=1);for(const t in c)r[t]||(n[t]=c[t],r[t]=1);t[s]=c}else for(const t in i)r[t]=1}for(const t in o)t in n||(n[t]=void 0);return n}function St(t){t&&t.c()}function Et(t,e,n,o){const{fragment:s,on_mount:a,on_destroy:l,after_update:u}=t.$$;s&&s.m(e,n),o||lt((()=>{const e=a.map(r).filter(c);l?l.push(...e):i(e),t.$$.on_mount=[]})),u.forEach(lt)}function Ct(t,e){const n=t.$$;null!==n.fragment&&(i(n.on_destroy),n.fragment&&n.fragment.d(e),n.on_destroy=n.fragment=null,n.ctx=[])}function Bt(t,e){-1===t.$$.dirty[0]&&(ot.push(t),at||(at=!0,ct.then(pt)),t.$$.dirty.fill(0)),t.$$.dirty[e/31|0]|=1<<e%31}function Pt(t,n,o,r,c,a,l,u=[-1]){const d=Y;Q(t);const p=t.$$={fragment:null,ctx:null,props:a,update:e,not_equal:c,bound:s(),on_mount:[],on_destroy:[],on_disconnect:[],before_update:[],after_update:[],context:new Map(d?d.$$.context:n.context||[]),callbacks:s(),dirty:u,skip_bound:!1,root:n.target||d.$$.root};l&&l(p.root);let h=!1;if(p.ctx=o?o(t,n.props||{},((e,n,...o)=>{const r=o.length?o[0]:n;return p.ctx&&c(p.ctx[e],p.ctx[e]=r)&&(!p.skip_bound&&p.bound[e]&&p.bound[e](r),h&&Bt(t,e)),n})):[],p.update(),h=!0,i(p.before_update),p.fragment=!!r&&r(p.ctx),n.target){if(n.hydrate){y=!0;const t=J(n.target);p.fragment&&p.fragment.l(t),t.forEach(P)}else p.fragment&&p.fragment.c();n.intro&&wt(t.$$.fragment),Et(t,n.target,n.anchor,n.customElement),y=!1,pt()}Q(d)}class zt{$destroy(){Ct(this,1),this.$destroy=e}$on(t,e){const n=this.$$.callbacks[t]||(this.$$.callbacks[t]=[]);return n.push(e),()=>{const t=n.indexOf(e);-1!==t&&n.splice(t,1)}}$set(t){var e;this.$$set&&(e=t,0!==Object.keys(e).length)&&(this.$$.skip_bound=!0,this.$$set(t),this.$$.skip_bound=!1)}}function Lt(t){let n,r,s,i=[{class:"gridicon gridicons-checkmark-circle"},{height:"24"},{width:"24"},{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},t[0]],c={};for(let t=0;t<i.length;t+=1)c=o(c,i[t]);return{c(){n=M("svg"),r=M("g"),s=M("path"),this.h()},l(t){n=H(t,"svg",{class:!0,height:!0,width:!0,xmlns:!0,viewBox:!0});var e=J(n);r=H(e,"g",{});var o=J(r);s=H(o,"path",{d:!0}),J(s).forEach(P),o.forEach(P),e.forEach(P),this.h()},h(){N(s,"d","M11 17.768l-4.884-4.884 1.768-1.768L11 14.232l8.658-8.658C17.823 3.39 15.075 2 12 2 6.477 2 2 6.477 2 12s4.477 10 10 10 10-4.477 10-10c0-1.528-.353-2.97-.966-4.266L11 17.768z"),A(n,c)},m(t,e){B(t,n,e),E(n,r),E(r,s)},p(t,[e]){A(n,c=xt(i,[{class:"gridicon gridicons-checkmark-circle"},{height:"24"},{width:"24"},{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},1&e&&t[0]]))},i:e,o:e,d(t){t&&P(n)}}}function Mt(t,e,n){return t.$$set=t=>{n(0,e=o(o({},e),m(t)))},[e=m(e)]}class Tt extends zt{constructor(t){super(),Pt(this,t,Mt,Lt,a,{})}}function Vt(t,e,n){for(const o of Array.from(t.childNodes)){let t;if(n[o.nodeName]){const[e,r,s]=n[o.nodeName];t=It(e,r,s),Ot(o,t)}else o.tagName?(t=document.createElement(o.tagName),Ot(o,t)):t=o.cloneNode();e.appendChild(t),Vt(o,t,n)}}function Ot(t,e){for(let n=0;n<t.attributes.length;n++){const o=t.attributes.item(n);e.setAttribute(o.name,o.value)}}function It(t,e,n){const o=document.createElement(t);for(const[t,n]of Object.entries(e))t.startsWith("on")&&n instanceof Function?o.addEventListener(t.substring(2),n):o.setAttribute(t,n.toString());return n&&o.append(n),o}function Rt(t){let n;return{c(){n=L("span")},m(e,o){C(e,n,o),t[3](n)},p:e,i:e,o:e,d(e){e&&P(n),t[3](null)}}}function Nt(t,e,n){let o,{template:r}=e,{vars:s}=e;return tt((()=>{Vt(function(t){const e="<PseudoHTML>"+t+"</PseudoHTML>";return(new DOMParser).parseFromString(e,"application/xml").childNodes[0]}(r),o,s)})),t.$$set=t=>{"template"in t&&n(1,r=t.template),"vars"in t&&n(2,s=t.vars)},[o,r,s,function(t){rt[t?"unshift":"push"]((()=>{o=t,n(0,o)}))}]}class At extends zt{constructor(t){super(),Pt(this,t,Nt,Rt,a,{template:1,vars:2})}}function Jt(t,e="link"){return{[e]:["a",{href:t,target:"_blank",rel:"noopener noreferrer"}]}}const Ht=[];function Wt(t,e){return{subscribe:Ft(t,e).subscribe}}function Ft(t,n=e){let o;const r=new Set;function s(e){if(a(t,e)&&(t=e,o)){const e=!Ht.length;for(const e of r)e[1](),Ht.push(e,t);if(e){for(let t=0;t<Ht.length;t+=2)Ht[t][0](Ht[t+1]);Ht.length=0}}}return{set:s,update:function(e){s(e(t))},subscribe:function(i,c=e){const a=[i,c];return r.add(a),1===r.size&&(o=n(s)||e),i(t),()=>{r.delete(a),0===r.size&&(o(),o=null)}}}}function Dt(t,n,o){const r=!Array.isArray(t),s=r?[t]:t,a=n.length<2;return Wt(o,(t=>{let o=!1;const u=[];let d=0,p=e;const h=()=>{if(d)return;p();const o=n(r?u[0]:u,t);a?t(o):p=c(o)?o:e},f=s.map(((t,e)=>l(t,(t=>{u[e]=t,d&=~(1<<e),o&&h()}),(()=>{d|=1<<e}))));return o=!0,h(),function(){i(f),p()}}))}function Ut(t,e){return"string"==typeof t?t:t&&t.toString instanceof Function?t.toString():e}function qt(t){return!!t&&t instanceof Object&&!(t instanceof Array)}class Yt extends Error{constructor(t,e,n){super(),this.httpCode=t,this.body=e,this.parseError=n}get message(){switch(this.httpCode){case 403:return this.getRestApiErrorMessage();case 200:if(this.parseError)return t.sprintf(t.__("Received invalid response while communicating with your WordPress site: %s","jetpack-boost"),this.parseError.message)}return t.sprintf(t.__("HTTP %d error received while communicating with the server.","jetpack-boost"),this.httpCode)}getDisplayBody(){return qt(this.body)?JSON.stringify(this.body,null," "):Ut(this.body,"").substring(0,1e3)}getRestApiErrorMessage(){return t.__("Your site's REST API does not seem to be accessible. Jetpack Boost requires access to your REST API in order to receive site performance scores. Please make sure that your site's REST API is active and accessible, and try again.","jetpack-boost")}}async function Gt(e,n,o=null){const r={method:e,mode:"cors",headers:{"X-WP-Nonce":wpApiSettings.nonce}};"post"!==e&&"delete"!==e||!o||(r.body=JSON.stringify(o),r.headers["Content-Type"]="application/json");const s=function(t){return wpApiSettings.root+Jetpack_Boost.api.namespace+Jetpack_Boost.api.prefix+t}(n);let i;try{i=await fetch(s,r)}catch(e){const n=r;delete n.body,delete n.headers["X-WP-Nonce"];const o={requestInitiator:window.location.href,requestUrl:s,requestArgs:n,originalErrorMessage:e.toString()};throw new Error(t.sprintf(t.__("An error occurred while trying to communicate with the site REST API. Extra debug info: %s","jetpack-boost"),JSON.stringify(o)))}return i}async function Xt(t,e,n=null){const o=await Gt(t,e,n);let r,s;try{r=await o.text()}catch(t){throw new Yt(o.status,null,t)}try{s=JSON.parse(r)}catch(t){throw new Yt(o.status,r,t)}if(!o.ok)throw new Yt(o.status,s,null);return s}var Kt={get:function(t){return Xt("get",t)},post:function(t,e=null){return Xt("post",t,e)},delete:function(t,e=null){return Xt("delete",t,e)}};const Qt=Jetpack_Boost.connection,{subscribe:Zt,update:te}=Ft(Qt);function ee(t){te((e=>Object.assign(Object.assign({},e),t)))}const ne={subscribe:Zt,initialize:async function(){ee({isConnecting:!0});try{ee(await Kt.post("/connection"))}catch(t){ee({isConnecting:!1,error:t})}},refresh:async function(){ee(await Kt.get("/connection"))}};function oe(t,e="action"){return{[e]:["a",{class:"action",onclick:e=>{e.preventDefault(),t(e.target.getAttribute("name"))},href:"#"}]}}function re(t,e){return t instanceof Error?t:"string"==typeof t||t instanceof String?new Error(t.toString()):t.message?new Error(t.message):e?new Error(e):new Error(JSON.stringify(t))}function se(t="support"){return Jt("https://wordpress.org/support/plugin/jetpack-boost/",t)}function ie(t){let n,r,s,i=[{version:"1.1"},{xmlns:"http://www.w3.org/2000/svg"},{"xmlns:xlink":"http://www.w3.org/1999/xlink"},{x:"0px"},{y:"0px"},{viewBox:"0 0 24 24"},{style:"enable-background:new 0 0 24 24;"},{"xml:space":"preserve"},t[0]],c={};for(let t=0;t<i.length;t+=1)c=o(c,i[t]);return{c(){n=M("svg"),r=M("g"),s=M("path"),this.h()},l(t){n=H(t,"svg",{version:!0,xmlns:!0,"xmlns:xlink":!0,x:!0,y:!0,viewBox:!0,style:!0,"xml:space":!0});var e=J(n);r=H(e,"g",{id:!0});var o=J(r);s=H(o,"path",{style:!0,d:!0}),J(s).forEach(P),o.forEach(P),e.forEach(P),this.h()},h(){F(s,"fill","#d63638"),N(s,"d","M12,4c4.411,0,8,3.589,8,8s-3.589,8-8,8s-8-3.589-8-8S7.589,4,12,4 M12,2C6.477,2,2,6.477,2,12s4.477,10,10,10 s10-4.477,10-10S17.523,2,12,2L12,2z M13,15h-2v2h2V15z M11,13h2l0.5-6h-3L11,13z"),N(r,"id","notice-outline"),A(n,c)},m(t,e){B(t,n,e),E(n,r),E(r,s)},p(t,[e]){A(n,c=xt(i,[{version:"1.1"},{xmlns:"http://www.w3.org/2000/svg"},{"xmlns:xlink":"http://www.w3.org/1999/xlink"},{x:"0px"},{y:"0px"},{viewBox:"0 0 24 24"},{style:"enable-background:new 0 0 24 24;"},{"xml:space":"preserve"},1&e&&t[0]]))},i:e,o:e,d(t){t&&P(n)}}}function ce(t,e,n){return t.$$set=t=>{n(0,e=o(o({},e),m(t)))},[e=m(e)]}class ae extends zt{constructor(t){super(),Pt(this,t,ce,ie,a,{})}}const le=t=>({}),ue=t=>({});function de(t){let e,n;return{c(){e=L("pre"),n=T(t[0]),N(e,"class","data")},m(t,o){C(t,e,o),j(e,n)},p(t,e){1&e&&W(n,t[0])},d(t){t&&P(e)}}}function pe(t){let e,n,o;return n=new At({props:{template:t[2],vars:t[4]}}),{c(){e=L("p"),St(n.$$.fragment),N(e,"class","suggestion")},m(t,r){C(t,e,r),Et(n,e,null),o=!0},p(t,e){const o={};4&e&&(o.template=t[2]),n.$set(o)},i(t){o||(wt(n.$$.fragment,t),o=!0)},o(t){vt(n.$$.fragment,t),o=!1},d(t){t&&P(e),Ct(n)}}}function he(t){let n,o,r,s,i,c,a,l,u,p,m,$,b;o=new ae({props:{class:"icon"}});const _=t[8].default,w=d(_,t,t[7],null),v=w||function(t){let n;return{c(){n=L("p"),n.textContent=`${t[3]}`},m(t,e){C(t,n,e)},p:e,d(t){t&&P(n)}}}(t);let y=t[0]&&de(t),k=t[2]&&pe(t);const x=t[8].actionButton,S=d(x,t,t[7],ue);return{c(){n=L("div"),St(o.$$.fragment),r=V(),s=L("div"),i=L("div"),c=T(t[1]),a=V(),l=L("div"),v&&v.c(),u=V(),y&&y.c(),p=V(),k&&k.c(),m=V(),$=L("div"),S&&S.c(),N(i,"class","jb-error__description"),N(l,"class","jb-error__message"),N(s,"class","jb-error__main-content"),N($,"class","jb-error__main-action"),N(n,"class","jb-error")},m(t,e){C(t,n,e),Et(o,n,null),j(n,r),j(n,s),j(s,i),j(i,c),j(s,a),j(s,l),v&&v.m(l,null),j(l,u),y&&y.m(l,null),j(l,p),k&&k.m(l,null),j(n,m),j(n,$),S&&S.m($,null),b=!0},p(t,[e]){(!b||2&e)&&W(c,t[1]),w&&w.p&&(!b||128&e)&&f(w,_,t,t[7],b?h(_,t[7],e,null):g(t[7]),null),t[0]?y?y.p(t,e):(y=de(t),y.c(),y.m(l,p)):y&&(y.d(1),y=null),t[2]?k?(k.p(t,e),4&e&&wt(k,1)):(k=pe(t),k.c(),wt(k,1),k.m(l,null)):k&&(bt(),vt(k,1,1,(()=>{k=null})),_t()),S&&S.p&&(!b||128&e)&&f(S,x,t,t[7],b?h(x,t[7],e,le):g(t[7]),ue)},i(t){b||(wt(o.$$.fragment,t),wt(v,t),wt(k),wt(S,t),b=!0)},o(t){vt(o.$$.fragment,t),vt(v,t),vt(k),vt(S,t),b=!1},d(t){t&&P(n),Ct(o),v&&v.d(t),y&&y.d(),k&&k.d(),S&&S.d(t)}}}function fe(t,e,n){let{$$slots:o={},$$scope:r}=e,{title:s}=e,{error:i=new Error(s)}=e,{data:c}=e,{suggestion:a}=e,{vars:l={}}=e;const u=re(i).message;!c&&i instanceof Yt&&(c=i.getDisplayBody());const d=et();const p={...se(),...oe((function(t){d(t),d("action",t)}),"action"),...l};return t.$$set=t=>{"title"in t&&n(1,s=t.title),"error"in t&&n(5,i=t.error),"data"in t&&n(0,c=t.data),"suggestion"in t&&n(2,a=t.suggestion),"vars"in t&&n(6,l=t.vars),"$$scope"in t&&n(7,r=t.$$scope)},[c,s,a,u,p,i,l,r,o]}class ge extends zt{constructor(t){super(),Pt(this,t,fe,he,a,{title:1,error:5,data:0,suggestion:2,vars:6})}}const me=Jetpack_Boost;function $e(t,e,n){const o=t.slice();return o[3]=e[n],o}function be(t){let n,o,r,s,i,c,a,l=t[3]+"";return o=new Tt({}),{c(){n=L("div"),St(o.$$.fragment),r=V(),s=L("span"),i=T(l),c=V(),N(n,"class","checklist__item")},m(t,e){C(t,n,e),Et(o,n,null),j(n,r),j(n,s),j(s,i),j(n,c),a=!0},p:e,i(t){a||(wt(o.$$.fragment,t),a=!0)},o(t){vt(o.$$.fragment,t),a=!1},d(t){t&&P(n),Ct(o)}}}function _e(e){let n,o;return n=new ge({props:{title:t.__("Failed to connect to WordPress.com","jetpack-boost"),suggestion:t.__("If you need further assistance, contact <support>Jetpack Boost Support</support>.","jetpack-boost"),error:e[0].error}}),{c(){St(n.$$.fragment)},m(t,e){Et(n,t,e),o=!0},p(t,e){const o={};1&e&&(o.error=t[0].error),n.$set(o)},i(t){o||(wt(n.$$.fragment,t),o=!0)},o(t){vt(n.$$.fragment,t),o=!1},d(t){Ct(n,t)}}}function we(n){let o,r=t.__("Get Started","jetpack-boost")+"";return{c(){o=T(r)},m(t,e){C(t,o,e)},p:e,d(t){t&&P(o)}}}function ve(n){let o,r=t.__("Connecting to WordPress.com","jetpack-boost")+"";return{c(){o=T(r)},m(t,e){C(t,o,e)},p:e,d(t){t&&P(o)}}}function ye(e){let n,o,r,s,i,c,a,l,u,d,p,h,f,g,m,$,b,_,w,v=e[2],y=[];for(let t=0;t<v.length;t+=1)y[t]=be($e(e,v,t));const k=t=>vt(y[t],1,1,(()=>{y[t]=null}));let x=e[0].error&&_e(e);function S(t,e){return t[0].isConnecting?ve:we}let E=S(e),B=E(e);return $=new At({props:{template:t.__("By clicking the button above, you agree to our <tosLink>Terms of Service</tosLink> and to <shareLink>share details</shareLink> with WordPress.com.","jetpack-boost"),vars:{...Jt(e[1]("https://jetpack.com/redirect/?source=wpcom-tos"),"tosLink"),...Jt(e[1]("https://jetpack.com/redirect/?source=jetpack-support-what-data-does-jetpack-sync"),"shareLink")}}}),{c(){n=L("div"),o=L("div"),r=L("div"),s=L("h1"),s.textContent=`${t.__("Get faster loading times with Jetpack Boost","jetpack-boost")}`,i=V(),c=L("p"),c.textContent=`${t.__("Connect Jetpack Boost and we will make your site faster in no time.","jetpack-boost")}`,a=V(),l=L("div");for(let t=0;t<y.length;t+=1)y[t].c();u=V(),x&&x.c(),d=V(),p=L("button"),B.c(),f=V(),g=L("div"),m=L("p"),St($.$$.fragment),N(s,"class","jb-connection__title"),N(c,"class","jb-connection__description"),N(r,"class","jb-connection__header"),N(l,"class","checklist"),N(p,"type","button"),N(p,"class","components-button is-primary"),p.disabled=h=e[0].isConnecting,N(g,"class","jb-connection-overlay"),N(o,"class","jb-connection"),N(n,"class","jb-section__inner connection")},m(t,e){C(t,n,e),j(n,o),j(o,r),j(r,s),j(r,i),j(r,c),j(o,a),j(o,l);for(let t=0;t<y.length;t+=1)y[t].m(l,null);j(o,u),x&&x.m(o,null),j(o,d),j(o,p),B.m(p,null),j(o,f),j(o,g),j(g,m),Et($,m,null),b=!0,_||(w=I(p,"click",ne.initialize),_=!0)},p(t,[e]){if(4&e){let n;for(v=t[2],n=0;n<v.length;n+=1){const o=$e(t,v,n);y[n]?(y[n].p(o,e),wt(y[n],1)):(y[n]=be(o),y[n].c(),wt(y[n],1),y[n].m(l,null))}for(bt(),n=v.length;n<y.length;n+=1)k(n);_t()}t[0].error?x?(x.p(t,e),1&e&&wt(x,1)):(x=_e(t),x.c(),wt(x,1),x.m(o,d)):x&&(bt(),vt(x,1,1,(()=>{x=null})),_t()),E===(E=S(t))&&B?B.p(t,e):(B.d(1),B=E(t),B&&(B.c(),B.m(p,null))),(!b||1&e&&h!==(h=t[0].isConnecting))&&(p.disabled=h)},i(t){if(!b){for(let t=0;t<v.length;t+=1)wt(y[t]);wt(x),wt($.$$.fragment,t),b=!0}},o(t){y=y.filter(Boolean);for(let t=0;t<y.length;t+=1)vt(y[t]);vt(x),vt($.$$.fragment,t),b=!1},d(t){t&&P(n),z(y,t),x&&x.d(),B.d(),Ct($),_=!1,w()}}}function ke(e,n,o){let r;u(e,ne,(t=>o(0,r=t)));const s=[t.__("Speed up your site load time","jetpack-boost"),t.__("Decrease bounce rate of your visitors","jetpack-boost"),t.__("Improve your SEO ranking","jetpack-boost"),t.__("Sell more stuff","jetpack-boost")];return[r,function(t){return me.site.url&&(t=t+"&site="+encodeURIComponent(me.site.url)),t},s]}class je extends zt{constructor(t){super(),Pt(this,t,ke,ye,a,{})}}function xe(n){let o,r,s,i,c,a,l,u,d,p,h,f,g,m,$,b,_;return p=new At({props:{template:t.__("Pages that take over 3 seconds to load have 4x the bounce rate of pages that load in 2 seconds or less. (source: <link>Pingdom</link>).","jetpack-boost"),vars:Jt("https://royal.pingdom.com/page-load-time-really-affect-bounce-rate/")}}),b=new At({props:{template:t.__("A one-second delay in loading times can reduce conversion rates by 20%. (source: <link>Google</link>).","jetpack-boost"),vars:Jt("https://web.dev/why-speed-matters/")}}),{c(){o=L("div"),r=L("div"),s=L("h3"),s.textContent=`${t.__("Did you know?","jetpack-boost")}`,i=V(),c=L("div"),a=L("div"),l=L("div"),l.textContent="4x",u=V(),d=L("div"),St(p.$$.fragment),h=V(),f=L("div"),g=L("div"),g.textContent="20%",m=V(),$=L("div"),St(b.$$.fragment),N(s,"class","jb-tips__title"),N(l,"class","item__rate"),N(d,"class","item__description"),N(a,"class","item"),N(g,"class","item__rate"),N($,"class","item__description"),N(f,"class","item"),N(c,"class","jb-tips__items"),N(r,"class","jb-tips"),N(o,"class","jb-container--narrow")},m(t,e){C(t,o,e),j(o,r),j(r,s),j(r,i),j(r,c),j(c,a),j(a,l),j(a,u),j(a,d),Et(p,d,null),j(c,h),j(c,f),j(f,g),j(f,m),j(f,$),Et(b,$,null),_=!0},p:e,i(t){_||(wt(p.$$.fragment,t),wt(b.$$.fragment,t),_=!0)},o(t){vt(p.$$.fragment,t),vt(b.$$.fragment,t),_=!1},d(t){t&&P(o),Ct(p),Ct(b)}}}class Se extends zt{constructor(t){super(),Pt(this,t,null,xe,a,{})}}function Ee(t){let n,r,s,i=[{class:"gridicon gridicons-computer"},{height:"24"},{width:"24"},{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},t[0]],c={};for(let t=0;t<i.length;t+=1)c=o(c,i[t]);return{c(){n=M("svg"),r=M("g"),s=M("path"),this.h()},l(t){n=H(t,"svg",{class:!0,height:!0,width:!0,xmlns:!0,viewBox:!0});var e=J(n);r=H(e,"g",{});var o=J(r);s=H(o,"path",{d:!0}),J(s).forEach(P),o.forEach(P),e.forEach(P),this.h()},h(){N(s,"d","M20 2H4c-1.104 0-2 .896-2 2v12c0 1.104.896 2 2 2h6v2H7v2h10v-2h-3v-2h6c1.104 0 2-.896 2-2V4c0-1.104-.896-2-2-2zm0 14H4V4h16v12z"),A(n,c)},m(t,e){B(t,n,e),E(n,r),E(r,s)},p(t,[e]){A(n,c=xt(i,[{class:"gridicon gridicons-computer"},{height:"24"},{width:"24"},{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},1&e&&t[0]]))},i:e,o:e,d(t){t&&P(n)}}}function Ce(t,e,n){return t.$$set=t=>{n(0,e=o(o({},e),m(t)))},[e=m(e)]}class Be extends zt{constructor(t){super(),Pt(this,t,Ce,Ee,a,{})}}function Pe(t){let n,r,s,i=[{class:"gridicon gridicons-phone"},{height:"24"},{width:"24"},{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},t[0]],c={};for(let t=0;t<i.length;t+=1)c=o(c,i[t]);return{c(){n=M("svg"),r=M("g"),s=M("path"),this.h()},l(t){n=H(t,"svg",{class:!0,height:!0,width:!0,xmlns:!0,viewBox:!0});var e=J(n);r=H(e,"g",{});var o=J(r);s=H(o,"path",{d:!0}),J(s).forEach(P),o.forEach(P),e.forEach(P),this.h()},h(){N(s,"d","M16 2H8c-1.104 0-2 .896-2 2v16c0 1.104.896 2 2 2h8c1.104 0 2-.896 2-2V4c0-1.104-.896-2-2-2zm-3 19h-2v-1h2v1zm3-2H8V5h8v14z"),A(n,c)},m(t,e){B(t,n,e),E(n,r),E(r,s)},p(t,[e]){A(n,c=xt(i,[{class:"gridicon gridicons-phone"},{height:"24"},{width:"24"},{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},1&e&&t[0]]))},i:e,o:e,d(t){t&&P(n)}}}function ze(t,e,n){return t.$$set=t=>{n(0,e=o(o({},e),m(t)))},[e=m(e)]}class Le extends zt{constructor(t){super(),Pt(this,t,ze,Pe,a,{})}}function Me(t){let n,r,s,i=[{class:"gridicon gridicons-refresh"},{height:"15"},{width:"15"},{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},t[0]],c={};for(let t=0;t<i.length;t+=1)c=o(c,i[t]);return{c(){n=M("svg"),r=M("g"),s=M("path"),this.h()},l(t){n=H(t,"svg",{class:!0,height:!0,width:!0,xmlns:!0,viewBox:!0});var e=J(n);r=H(e,"g",{});var o=J(r);s=H(o,"path",{d:!0}),J(s).forEach(P),o.forEach(P),e.forEach(P),this.h()},h(){N(s,"d","M17.91 14c-.478 2.833-2.943 5-5.91 5-3.308 0-6-2.692-6-6s2.692-6 6-6h2.172l-2.086 2.086L13.5 10.5 18 6l-4.5-4.5-1.414 1.414L14.172 5H12c-4.418 0-8 3.582-8 8s3.582 8 8 8c4.08 0 7.438-3.055 7.93-7h-2.02z"),A(n,c)},m(t,e){B(t,n,e),E(n,r),E(r,s)},p(t,[e]){A(n,c=xt(i,[{class:"gridicon gridicons-refresh"},{height:"15"},{width:"15"},{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},1&e&&t[0]]))},i:e,o:e,d(t){t&&P(n)}}}function Te(t,e,n){return t.$$set=t=>{n(0,e=o(o({},e),m(t)))},[e=m(e)]}class Ve extends zt{constructor(t){super(),Pt(this,t,Te,Me,a,{})}}function Oe(t){let n,r,s,i,c=[{xmlns:"http://www.w3.org/2000/svg"},{width:"24"},{height:"24"},{viewBox:"0 0 128 128"},t[0]],a={};for(let t=0;t<c.length;t+=1)a=o(a,c[t]);return{c(){n=M("svg"),r=M("g"),s=M("path"),i=M("animateTransform"),this.h()},l(t){n=H(t,"svg",{xmlns:!0,width:!0,height:!0,viewBox:!0});var e=J(n);r=H(e,"g",{});var o=J(r);s=H(o,"path",{d:!0}),J(s).forEach(P),i=H(o,"animateTransform",{attributeName:!0,type:!0,values:!0,calcMode:!0,dur:!0,repeatCount:!0}),J(i).forEach(P),o.forEach(P),e.forEach(P),this.h()},h(){N(s,"d","M64 0a7 7 0 11-7 7 7 7 0 017-7zm29.86 12.2a2.8 2.8 0 11-3.83 1.02 2.8 2.8 0 013.83-1.02zm22.16 21.68a3.15 3.15 0 11-4.3-1.15 3.15 3.15 0 014.3 1.15zm.87 60.53a4.2 4.2 0 11-1.57-5.7 4.2 4.2 0 011.54 5.73zm7.8-30.5a3.85 3.85 0 11-3.85-3.85 3.85 3.85 0 013.85 3.84zm-30 53.2a4.55 4.55 0 111.66-6.23 4.55 4.55 0 01-1.67 6.22zM64 125.9a4.9 4.9 0 114.9-4.9 4.9 4.9 0 01-4.9 4.9zm-31.06-8.22a5.25 5.25 0 117.17-1.93 5.25 5.25 0 01-7.14 1.93zM9.9 95.1a5.6 5.6 0 117.65 2.06A5.6 5.6 0 019.9 95.1zM1.18 63.9a5.95 5.95 0 115.95 5.94 5.95 5.95 0 01-5.96-5.94zm8.1-31.6a6.3 6.3 0 112.32 8.6 6.3 6.3 0 01-2.3-8.6zM32.25 8.87a6.65 6.65 0 11-2.44 9.1 6.65 6.65 0 012.46-9.1z"),N(i,"attributeName","transform"),N(i,"type","rotate"),N(i,"values","0 64 64;30 64 64;60 64 64;90 64 64;120 64 64;150 64 64;180 64 64;210 64 64;240 64 64;270 64 64;300 64 64;330 64 64"),N(i,"calcMode","discrete"),N(i,"dur","1080ms"),N(i,"repeatCount","indefinite"),A(n,a)},m(t,e){B(t,n,e),E(n,r),E(r,s),E(r,i)},p(t,[e]){A(n,a=xt(c,[{xmlns:"http://www.w3.org/2000/svg"},{width:"24"},{height:"24"},{viewBox:"0 0 128 128"},1&e&&t[0]]))},i:e,o:e,d(t){t&&P(n)}}}function Ie(t,e,n){return t.$$set=t=>{n(0,e=o(o({},e),m(t)))},[e=m(e)]}class Re extends zt{constructor(t){super(),Pt(this,t,Ie,Oe,a,{})}}function Ne(t){let e,n,o,r,s,i;const c=[Je,Ae],a=[];function l(t,e){return t[1]?0:1}n=l(t),o=a[n]=c[n](t);let u=t[2]&&t[4]&&t[4]<t[0]&&He(t);return{c(){e=L("div"),o.c(),r=V(),u&&u.c(),N(e,"class",s="jb-score-bar__filler "+t[6]),F(e,"width",t[0]+"%")},m(t,o){C(t,e,o),a[n].m(e,null),j(e,r),u&&u.m(e,null),i=!0},p(t,d){let p=n;n=l(t),n===p?a[n].p(t,d):(bt(),vt(a[p],1,1,(()=>{a[p]=null})),_t(),o=a[n],o?o.p(t,d):(o=a[n]=c[n](t),o.c()),wt(o,1),o.m(e,r)),t[2]&&t[4]&&t[4]<t[0]?u?u.p(t,d):(u=He(t),u.c(),u.m(e,null)):u&&(u.d(1),u=null),(!i||64&d&&s!==(s="jb-score-bar__filler "+t[6]))&&N(e,"class",s),(!i||1&d)&&F(e,"width",t[0]+"%")},i(t){i||(wt(o),i=!0)},o(t){vt(o),i=!1},d(t){t&&P(e),a[n].d(),u&&u.d()}}}function Ae(t){let n,o;return{c(){n=L("div"),o=T(t[0]),N(n,"class","jb-score-bar__score")},m(t,e){C(t,n,e),j(n,o)},p(t,e){1&e&&W(o,t[0])},i:e,o:e,d(t){t&&P(n)}}}function Je(t){let n,o,r;return o=new Re({}),{c(){n=L("div"),St(o.$$.fragment),N(n,"class","jb-score-bar__loading")},m(t,e){C(t,n,e),Et(o,n,null),r=!0},p:e,i(t){r||(wt(o.$$.fragment,t),r=!0)},o(t){vt(o.$$.fragment,t),r=!1},d(t){t&&P(n),Ct(o)}}}function He(t){let e,n,o,r=t[5]&&We(t);return{c(){e=L("div"),n=T(t[4]),o=V(),r&&r.c(),N(e,"class","jb-score-bar__no_boost_score"),F(e,"left","min("+t[7]+"%, calc(100% - var(--clearance-space))")},m(t,s){C(t,e,s),j(e,n),j(e,o),r&&r.m(e,null)},p(t,o){16&o&&W(n,t[4]),t[5]?r?r.p(t,o):(r=We(t),r.c(),r.m(e,null)):r&&(r.d(1),r=null),128&o&&F(e,"left","min("+t[7]+"%, calc(100% - var(--clearance-space))")},d(t){t&&P(e),r&&r.d()}}}function We(t){let e,n;return{c(){e=L("div"),n=T(t[5]),N(e,"class","jb-score-bar__no_boost_score_tooltip")},m(t,o){C(t,e,o),j(e,n)},p(t,e){32&e&&W(n,t[5])},d(t){t&&P(e)}}}function Fe(t){let e,n,o=t[3]&&Ne(t);return{c(){e=L("div"),o&&o.c(),N(e,"class","jb-score-bar__bounds")},m(t,r){C(t,e,r),o&&o.m(e,null),n=!0},p(t,[n]){t[3]?o?(o.p(t,n),8&n&&wt(o,1)):(o=Ne(t),o.c(),wt(o,1),o.m(e,null)):o&&(bt(),vt(o,1,1,(()=>{o=null})),_t())},i(t){n||(wt(o),n=!0)},o(t){vt(o),n=!1},d(t){t&&P(e),o&&o.d()}}}function De(t,e,n){let o,r,{score:s=0}=e,{isLoading:i=!0}=e,{showPrevScores:c=!1}=e,{active:a=!0}=e,{prevScore:l=0}=e,{noBoostScoreTooltip:u=null}=e;return t.$$set=t=>{"score"in t&&n(0,s=t.score),"isLoading"in t&&n(1,i=t.isLoading),"showPrevScores"in t&&n(2,c=t.showPrevScores),"active"in t&&n(3,a=t.active),"prevScore"in t&&n(4,l=t.prevScore),"noBoostScoreTooltip"in t&&n(5,u=t.noBoostScoreTooltip)},t.$$.update=()=>{var e;17&t.$$.dirty&&(n(6,(e=s,o=i?"fill-loading":e>70?"fill-good":e>50?"fill-mediocre":e?"fill-bad":void 0)),n(7,r=l/s*100))},[s,i,c,a,l,u,o,r]}class Ue extends zt{constructor(t){super(),Pt(this,t,De,Fe,a,{score:0,isLoading:1,showPrevScores:2,active:3,prevScore:4,noBoostScoreTooltip:5})}}function qe(n){let o,r,s,i,c,a,l,u,d,p,h;return{c(){o=L("div"),r=L("span"),r.textContent="i",s=V(),i=L("div"),c=L("p"),c.textContent=`${t.__("Your Overall Score is a summary of your website performance across both mobile and desktop devices. It gives a general idea of your sites' overall performance.","jetpack-boost")}`,a=V(),l=L("table"),l.innerHTML="<tr><th>A</th> \n\t\t\t\t<td>90+</td></tr> \n\t\t\t<tr><th>B</th> \n\t\t\t\t<td>75 - 90</td></tr> \n\t\t\t<tr><th>C</th> \n\t\t\t\t<td>50 - 75</td></tr>",u=V(),d=L("table"),d.innerHTML="<tr><th>D</th> \n\t\t\t\t<td>35 - 50</td></tr> \n\t\t\t<tr><th>E</th> \n\t\t\t\t<td>25 - 35</td></tr> \n\t\t\t<tr><th>F</th> \n\t\t\t\t<td>0 - 25</td></tr>",p=V(),h=L("i"),N(r,"class","jb-score-context__info-icon"),N(i,"class","jb-score-context__info-container"),N(o,"class","jb-score-context")},m(t,e){C(t,o,e),j(o,r),j(o,s),j(o,i),j(i,c),j(i,a),j(i,l),j(i,u),j(i,d),j(i,p),j(i,h)},p:e,i:e,o:e,d(t){t&&P(o)}}}class Ye extends zt{constructor(t){super(),Pt(this,t,null,qe,a,{})}}function Ge(t,e){if("number"==typeof t)return t;if("string"==typeof t){const e=parseFloat(t);if(!isNaN(e))return e}return e}const Xe=12e4;async function Ke(e=!1){const n=Qe(await Kt.post(e?"/speed-scores/refresh":"/speed-scores",{url:Jetpack_Boost.site.url}));return n.scores?n.scores:await async function(){return async function({interval:e,callback:n,timeout:o,timeoutError:r}){let s,i;return new Promise(((c,a)=>{s=setTimeout((()=>{a(new Error(r||t.__("Timed out","jetpack-boost")))}),o||12e4),i=setInterval((async()=>{try{await Promise.resolve(n(c))}catch(t){a(t)}}),e)})).finally((()=>{clearTimeout(s),clearInterval(i)}))}({timeout:Xe,interval:5e3,timeoutError:t.__("Timed out while waiting for speed-score.","jetpack-boost"),callback:async t=>{const e=Qe(await Kt.post("/speed-scores",{url:Jetpack_Boost.site.url}));e.scores&&t(e.scores)}})}()}function Qe(e){if(e.error){const n=t.__("An unknown error occurred while requesting metrics","jetpack-boost");throw re(e.error,n)}if(qt(e.scores))return{status:"success",scores:{current:qt(e.scores.current)?{mobile:Ge(e.scores.current.mobile,0),desktop:Ge(e.scores.current.desktop,0)}:{mobile:0,desktop:0},noBoost:qt(e.scores.noBoost)?{mobile:Ge(e.scores.noBoost.mobile,0),desktop:Ge(e.scores.noBoost.desktop,0)}:null,isStale:!!e.scores.isStale}};const n=Ut(e.status);if(!n)throw new Error(t.__("Invalid response while requesting metrics","jetpack-boost"));return{status:n}}function Ze(t){const e=t.current,n=t.noBoost;return null!==e&&null!==n&&e.mobile>=n.mobile&&e.desktop>=n.desktop&&e.mobile+e.desktop>n.mobile+n.desktop&&(tn(t)>=5||e.desktop+e.mobile>180)}function tn(t){const e=(t.current.mobile+t.current.desktop)/(t.noBoost.mobile+t.noBoost.desktop)-1;return Math.round(100*e)}const en="success",nn="fail",on=Jetpack_Boost.criticalCssStatus||{generating:!1,progress:0,status:"not_generated",retried_show_stopper:!1},{subscribe:rn,update:sn}=Ft(on),cn=Dt({subscribe:rn},(t=>t.providers_errors?Object.keys(t.providers_errors).length:0)),an=Dt({subscribe:rn},(t=>[en,nn].includes(t.status)));async function ln(t,e,n){const o=await Kt[t](e,n);if("module-unavailable"===o.status)return!1;if(o.status!==en)throw new Error(o.code||o.message||o.error||JSON.stringify(o));return sn((t=>Object.assign(Object.assign({},t),o.status_update))),o.status_update}function un(t,e){return sn((n=>Object.assign(Object.assign({},n),{generating:t,progress:e,status:t?"requesting":n.status})))}async function dn(t,e,n){return ln("post",`/critical-css/${t}/${e}`,n)}const pn={subscribe:rn};const hn=me.config,{subscribe:fn,update:gn}=Ft(hn);let mn;function $n(t){return mn[t]&&mn[t].enabled}async function bn(e,n){const o=$n(e);let r=n;_n(e,n);try{r=await async function(e,n){const o=await Kt.post(`/module/${e}/status`,{status:n});if(!0!==o&&!1!==o){const e=JSON.stringify(o);throw new Error(t.sprintf(t.__("Unexpected data received from WordPress: %s","jetpack-boost"),e))}return o!==n?!n:o}(e,n),_n(e,r,!0)}catch(t){throw _n(e,o,!0),t}return r}function _n(t,e,n=!1){gn((o=>Object.assign(Object.assign({},o),{[t]:Object.assign(Object.assign({},o[t]),{enabled:e,synced:n})})))}fn((t=>mn=t));const wn={subscribe:fn,updateModuleState:bn};function vn(n){let o,r,s,i;return{c(){o=L("a"),r=L("span"),r.textContent=`${t.__("Dismiss","jetpack-boost")}`,N(r,"class","screen-reader-text"),N(o,"href","#"),N(o,"class","cross-close")},m(t,e){C(t,o,e),j(o,r),s||(i=I(o,"click",R(n[0])),s=!0)},p:e,i:e,o:e,d(t){t&&P(o),s=!1,i()}}}function yn(t){return[function(e){nt.call(this,t,e)}]}class kn extends zt{constructor(t){super(),Pt(this,t,yn,vn,a,{})}}function jn(t){return t<.5?4*t*t*t:.5*Math.pow(2*t-2,3)+1}function xn(t){const e=t-1;return e*e*e+1}function Sn(t,e){const n=getComputedStyle(t).transform.replace("none","");return{delay:e.delay||0,duration:e.duration||2e3,easing:e.easing||jn,css:(t,e)=>`transform: ${n} translateX(${100*e}%)`}}class En extends Error{constructor(t){super(t),this.name="AdminAjaxError"}}async function Cn(e){const n={method:"post",body:new URLSearchParams(e),headers:{"Content-Type":"application/x-www-form-urlencoded"}},o=await fetch(ajaxurl,n);if(!o.ok)throw new En(t.sprintf(t.__("Received HTTP %d while communicating with your WordPress site","jetpack-boost"),o.status));return o}async function Bn(e){const n=await Cn(e);let o;try{o=await n.json()}catch(e){throw new En(t.sprintf(t.__("Received invalid response while communicating with your WordPress site: %s","jetpack-boost"),e.message))}if(!n.ok)throw new En(t.sprintf(t.__("HTTP %d error received while communicating with the server.","jetpack-boost"),n.status));return o}function Pn(e){let n,o=t.sprintf(t.__("You achieved a score of %d!","jetpack-boost"),e[1])+"";return{c(){n=T(o)},m(t,e){C(t,n,e)},p(e,r){2&r&&o!==(o=t.sprintf(t.__("You achieved a score of %d!","jetpack-boost"),e[1])+"")&&W(n,o)},d(t){t&&P(n)}}}function zn(e){let n,o=t.sprintf(t.__("Faster by %1$d%%","jetpack-boost"),e[0])+"";return{c(){n=T(o)},m(t,e){C(t,n,e)},p(e,r){1&r&&o!==(o=t.sprintf(t.__("Faster by %1$d%%","jetpack-boost"),e[0])+"")&&W(n,o)},d(t){t&&P(n)}}}function Ln(e){let n,o,r,s,i,c,a,l,u,d,p,h;function f(t,e){return t[0]>5?zn:Pn}o=new kn({}),o.$on("click",e[4]);let g=f(e),m=g(e);return{c(){n=L("div"),St(o.$$.fragment),r=V(),s=L("h3"),m.c(),i=V(),c=L("p"),c.textContent=`${t.__("That’s a great result! If you’re happy with your result, why not rate Boost?","jetpack-boost")}`,a=V(),l=L("a"),l.textContent=`${t.__("Rate the plugin","jetpack-boost")}`,N(s,"class","jb-rating-card__headline"),N(c,"class","jb-rating-card__paragraph"),N(l,"class","jb-button--primary"),N(l,"href","https://wordpress.org/support/plugin/jetpack-boost/reviews/#new-post"),N(l,"target","_blank"),N(n,"class","jb-rating-card")},m(t,u){C(t,n,u),Et(o,n,null),j(n,r),j(n,s),m.m(s,null),j(n,i),j(n,c),j(n,a),j(n,l),d=!0,p||(h=I(l,"click",e[5]),p=!0)},p(t,[e]){g===(g=f(t))&&m?m.p(t,e):(m.d(1),m=g(t),m&&(m.c(),m.m(s,null)))},i(t){d||(wt(o.$$.fragment,t),lt((()=>{u||(u=kt(n,Sn,{},!0)),u.run(1)})),d=!0)},o(t){vt(o.$$.fragment,t),u||(u=kt(n,Sn,{},!1)),u.run(0),d=!1},d(t){t&&P(n),Ct(o),m.d(),t&&u&&u.end(),p=!1,h()}}}function Mn(t,e,n){let{improvement:o}=e,{currentPercentage:r}=e;const s=et();async function i(){await Bn({action:"set_show_rating_prompt",value:!1,nonce:Jetpack_Boost.showRatingPromptNonce}),s("dismiss")}return t.$$set=t=>{"improvement"in t&&n(0,o=t.improvement),"currentPercentage"in t&&n(1,r=t.currentPercentage)},[o,r,s,i,()=>s("dismiss"),()=>{i()}]}class Tn extends zt{constructor(t){super(),Pt(this,t,Mn,Ln,a,{improvement:0,currentPercentage:1})}}function Vn(n){let o,r,s,i;return{c(){o=L("div"),r=L("h2"),r.textContent=`${t.__("Website Offline","jetpack-boost")}`,s=V(),i=L("p"),i.textContent=`${t.__("All Jetpack Boost features are still available, but to get a performance score you would first have to make your website available online.","jetpack-boost")}`,N(o,"class","jb-site-score__offline")},m(t,e){C(t,o,e),j(o,r),j(o,s),j(o,i)},p:e,i:e,o:e,d(t){t&&P(o)}}}function On(e){let n,o,r,s,i,c,a,l,u,d,p,h=t.__("Refresh","jetpack-boost")+"";function f(t,e){return t[7]?Nn:t[2]?Rn:In}let g=f(e),m=g(e),$=!e[7]&&!e[2]&&An();return c=new Ve({}),{c(){n=L("div"),o=L("h2"),m.c(),r=V(),$&&$.c(),s=V(),i=L("button"),St(c.$$.fragment),a=V(),l=T(h),N(i,"type","button"),N(i,"class","components-button is-link"),i.disabled=e[7],N(n,"class","jb-site-score__top")},m(t,h){C(t,n,h),j(n,o),m.m(o,null),j(n,r),$&&$.m(n,null),j(n,s),j(n,i),Et(c,i,null),j(i,a),j(i,l),u=!0,d||(p=I(i,"click",e[17]),d=!0)},p(t,e){g===(g=f(t))&&m?m.p(t,e):(m.d(1),m=g(t),m&&(m.c(),m.m(o,null))),t[7]||t[2]?$&&(bt(),vt($,1,1,(()=>{$=null})),_t()):$?132&e&&wt($,1):($=An(),$.c(),wt($,1),$.m(n,s)),(!u||128&e)&&(i.disabled=t[7])},i(t){u||(wt($),wt(c.$$.fragment,t),u=!0)},o(t){vt($),vt(c.$$.fragment,t),u=!1},d(t){t&&P(n),m.d(),$&&$.d(),Ct(c),d=!1,p()}}}function In(e){let n,o,r,s=t.__("Overall score","jetpack-boost")+"";return{c(){n=T(s),o=T(": "),r=T(e[4])},m(t,e){C(t,n,e),C(t,o,e),C(t,r,e)},p(t,e){16&e&&W(r,t[4])},d(t){t&&P(n),t&&P(o),t&&P(r)}}}function Rn(n){let o,r=t.__("Whoops, something went wrong","jetpack-boost")+"";return{c(){o=T(r)},m(t,e){C(t,o,e)},p:e,d(t){t&&P(o)}}}function Nn(n){let o,r=t.__("Loading…","jetpack-boost")+"";return{c(){o=T(r)},m(t,e){C(t,o,e)},p:e,d(t){t&&P(o)}}}function An(t){let e,n;return e=new Ye({}),{c(){St(e.$$.fragment)},m(t,o){Et(e,t,o),n=!0},i(t){n||(wt(e.$$.fragment,t),n=!0)},o(t){vt(e.$$.fragment,t),n=!1},d(t){Ct(e,t)}}}function Jn(e){let n,o;return n=new ge({props:{title:t.__("Failed to load Speed Scores","jetpack-boost"),error:e[2],suggestion:t.__('<action name="retry">Try again</action>',"jetpack-boost")}}),n.$on("retry",e[18]),{c(){St(n.$$.fragment)},m(t,e){Et(n,t,e),o=!0},p(t,e){const o={};4&e&&(o.error=t[2]),n.$set(o)},i(t){o||(wt(n.$$.fragment,t),o=!0)},o(t){vt(n.$$.fragment,t),o=!1},d(t){Ct(n,t)}}}function Hn(t){let e,n;return e=new Tn({props:{improvement:t[5],currentPercentage:t[6]}}),e.$on("dismiss",t[19]),{c(){St(e.$$.fragment)},m(t,o){Et(e,t,o),n=!0},p(t,n){const o={};32&n&&(o.improvement=t[5]),64&n&&(o.currentPercentage=t[6]),e.$set(o)},i(t){n||(wt(e.$$.fragment,t),n=!0)},o(t){vt(e.$$.fragment,t),n=!1},d(t){Ct(e,t)}}}function Wn(e){let n,o,r,s,i,c,a,l,u,d,p,h,f,g,m,$,b,_,w,v,y,k,x,S;const E=[On,Vn],B=[];r=function(t,e){return t[8]?0:1}(e),s=B[r]=E[r](e);let z=e[2]&&Jn(e);u=new Le({}),f=new Ue({props:{prevScore:e[0].noBoost?.mobile,score:e[0].current.mobile,active:e[8],isLoading:e[7],showPrevScores:e[3],noBoostScoreTooltip:t.__("Your mobile score without Boost","jetpack-boost")}}),b=new Be({}),y=new Ue({props:{prevScore:e[0].noBoost?.desktop,score:e[0].current.desktop,active:e[8],isLoading:e[7],showPrevScores:e[3],noBoostScoreTooltip:t.__("Your desktop score without Boost","jetpack-boost")}});let M=e[1]&&Hn(e);return{c(){n=L("div"),o=L("div"),s.c(),i=V(),z&&z.c(),c=V(),a=L("div"),l=L("div"),St(u.$$.fragment),d=V(),p=L("div"),p.textContent=`${t.__("Mobile score","jetpack-boost")}`,h=V(),St(f.$$.fragment),g=V(),m=L("div"),$=L("div"),St(b.$$.fragment),_=V(),w=L("div"),w.textContent=`${t.__("Desktop score","jetpack-boost")}`,v=V(),St(y.$$.fragment),k=V(),M&&M.c(),x=O(),N(l,"class","jb-score-bar__label"),N(a,"class","jb-score-bar jb-score-bar--mobile"),N($,"class","jb-score-bar__label"),N(m,"class","jb-score-bar jb-score-bar--desktop"),N(o,"class","jb-site-score"),D(o,"loading",e[7]),N(n,"class","jb-container")},m(t,e){C(t,n,e),j(n,o),B[r].m(o,null),j(o,i),z&&z.m(o,null),j(o,c),j(o,a),j(a,l),Et(u,l,null),j(l,d),j(l,p),j(a,h),Et(f,a,null),j(o,g),j(o,m),j(m,$),Et(b,$,null),j($,_),j($,w),j(m,v),Et(y,m,null),C(t,k,e),M&&M.m(t,e),C(t,x,e),S=!0},p(t,[e]){s.p(t,e),t[2]?z?(z.p(t,e),4&e&&wt(z,1)):(z=Jn(t),z.c(),wt(z,1),z.m(o,c)):z&&(bt(),vt(z,1,1,(()=>{z=null})),_t());const n={};1&e&&(n.prevScore=t[0].noBoost?.mobile),1&e&&(n.score=t[0].current.mobile),128&e&&(n.isLoading=t[7]),8&e&&(n.showPrevScores=t[3]),f.$set(n);const r={};1&e&&(r.prevScore=t[0].noBoost?.desktop),1&e&&(r.score=t[0].current.desktop),128&e&&(r.isLoading=t[7]),8&e&&(r.showPrevScores=t[3]),y.$set(r),128&e&&D(o,"loading",t[7]),t[1]?M?(M.p(t,e),2&e&&wt(M,1)):(M=Hn(t),M.c(),wt(M,1),M.m(x.parentNode,x)):M&&(bt(),vt(M,1,1,(()=>{M=null})),_t())},i(t){S||(wt(s),wt(z),wt(u.$$.fragment,t),wt(f.$$.fragment,t),wt(b.$$.fragment,t),wt(y.$$.fragment,t),wt(M),S=!0)},o(t){vt(s),vt(z),vt(u.$$.fragment,t),vt(f.$$.fragment,t),vt(b.$$.fragment,t),vt(y.$$.fragment,t),vt(M),S=!1},d(t){t&&P(n),B[r].d(),z&&z.d(),Ct(u),Ct(f),Ct(b),Ct(y),t&&P(k),M&&M.d(t),t&&P(x)}}}function Fn(t,e,n){let o,r,s,i,c;const a=Jetpack_Boost.site.online;let l,d,p="",h=0,f=0;const g=Ft(a);u(t,g,(t=>n(7,c=t)));const m=Ft({current:{mobile:0,desktop:0},noBoost:null,isStale:!1});u(t,m,(t=>n(0,o=t))),w(!1);const $=Dt(wn,(t=>!Object.values(t).some((t=>!1===t.synced)))),b=Dt([wn,pn],(([t,e])=>JSON.stringify({modules:t,criticalCss:{created:e.created}})));u(t,b,(t=>n(21,i=t)));let _=i;async function w(t=!1){if(a){g.set(!0),n(2,l=void 0);try{m.set(await Ke(t)),n(4,p=function(t,e){const n=(t+e)/2;return n>90?"A":n>75?"B":n>50?"C":n>35?"D":n>25?"E":"F"}(o.current.mobile,o.current.desktop)),n(3,d=Ze(o)&&!o.isStale),_=i}catch(t){console.log(t),n(2,l=t)}finally{g.set(!1)}}}const v=Dt([pn,$,b,m],(([t,e,n,o])=>!t.generating&&e&&(n!==_||o.isStale)));u(t,v,(t=>n(16,s=t)));const y=function(t,e){let n;return function(...o){clearTimeout(n),n=setTimeout((()=>t.apply(this,o)),e)}}((t=>{s&&w(t)}),2e3),k=Ft(Jetpack_Boost.preferences.showRatingPrompt),j=Dt([m,k,g],(([t,e,n])=>Ze(t)&&e&&!n&&!t.isStale));u(t,j,(t=>n(1,r=t)));return t.$$.update=()=>{65536&t.$$.dirty&&s&&y(!0),3&t.$$.dirty&&r&&(n(5,h=tn(o)),n(6,f=(o.current.mobile+o.current.desktop)/2))},[o,r,l,d,p,h,f,c,a,g,m,b,w,v,k,j,s,()=>w(!0),()=>w(!0),()=>k.set(!1)]}class Dn extends zt{constructor(t){super(),Pt(this,t,Fn,Wn,a,{})}}const{subscribe:Un,set:qn}=Ft(window.location.hash);function Yn(t=""){window.location.hash=t}window.addEventListener("hashchange",(()=>{qn(window.location.hash)}));var Gn={subscribe:Un};function Xn(t,{delay:e=0,duration:n=400,easing:o=xn}={}){const r=getComputedStyle(t),s=+r.opacity,i=parseFloat(r.height),c=parseFloat(r.paddingTop),a=parseFloat(r.paddingBottom),l=parseFloat(r.marginTop),u=parseFloat(r.marginBottom),d=parseFloat(r.borderTopWidth),p=parseFloat(r.borderBottomWidth);return{delay:e,duration:n,easing:o,css:t=>`overflow: hidden;opacity: ${Math.min(20*t,1)*s};height: ${t*i}px;padding-top: ${t*c}px;padding-bottom: ${t*a}px;margin-top: ${t*l}px;margin-bottom: ${t*u}px;border-top-width: ${t*d}px;border-bottom-width: ${t*p}px;`}}function Kn(t){let n,r,s,i,c=[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},t[0]],a={};for(let t=0;t<c.length;t+=1)a=o(a,c[t]);return{c(){n=M("svg"),r=M("rect"),s=M("g"),i=M("path"),this.h()},l(t){n=H(t,"svg",{xmlns:!0,viewBox:!0});var e=J(n);r=H(e,"rect",{x:!0,fill:!0,width:!0,height:!0}),J(r).forEach(P),s=H(e,"g",{});var o=J(s);i=H(o,"path",{d:!0}),J(i).forEach(P),o.forEach(P),e.forEach(P),this.h()},h(){N(r,"x","0"),N(r,"fill","none"),N(r,"width","24"),N(r,"height","24"),N(i,"d","M20 11H7.83l5.59-5.59L12 4l-8 8 8 8 1.41-1.41L7.83 13H20v-2z"),A(n,a)},m(t,e){B(t,n,e),E(n,r),E(n,s),E(s,i)},p(t,[e]){A(n,a=xt(c,[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},1&e&&t[0]]))},i:e,o:e,d(t){t&&P(n)}}}function Qn(t,e,n){return t.$$set=t=>{n(0,e=o(o({},e),m(t)))},[e=m(e)]}class Zn extends zt{constructor(t){super(),Pt(this,t,Qn,Kn,a,{})}}const to=["core_front_page","core_posts_page","singular_page","singular_post"],eo=Ft(Jetpack_Boost.criticalCssDismissedRecommendations||[]),no=Dt(pn,(t=>t.providers_errors?Object.entries(t.providers_errors).map((([e,n])=>({key:e,label:t.provider_key_labels[e]||e,errors:lo(n)}))):[])),oo={subscribe:eo.subscribe},ro=Dt([no,oo],(([t,e])=>t.filter((t=>!e.includes(t.key))))),so=Dt(no,(t=>{for(const e of to){const n=t.find((t=>t.key===e));if(n)return n.errors[0]}})),io=Ft(null);function co(t,e){io.set({title:t,error:e})}async function ao(){await Bn({action:"reset_dismissed_recommendations",nonce:Jetpack_Boost.criticalCssDismissRecommendationsNonce}),eo.set([])}function lo(t){return function(t){const e=t.reduce(((t,e)=>(t[e]=(t[e]||0)+1,t)),{});return Object.keys(e).sort(((t,n)=>e[t]>e[n]?1:-1))}(Object.values(t).map(uo)).map((e=>{const n=(o=t,r=t=>uo(t)===e,Object.entries(o).reduce(((t,[e,n])=>(r(n,e)&&(t[e]=n),t)),{}));var o,r;const s=n[Object.keys(n)[0]];return{type:s.type,firstMeta:s.meta,byUrl:n}}))}function uo(t){return"HttpError"===t.type?t.type+"-"+Ut(t.meta.code,""):"UnknownError"===t.type?t.type+"-"+t.message:t.type}function po(t){let n,r,s,i,c=[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},t[0]],a={};for(let t=0;t<c.length;t+=1)a=o(a,c[t]);return{c(){n=M("svg"),r=M("rect"),s=M("g"),i=M("path"),this.h()},l(t){n=H(t,"svg",{xmlns:!0,viewBox:!0});var e=J(n);r=H(e,"rect",{x:!0,fill:!0,width:!0,height:!0}),J(r).forEach(P),s=H(e,"g",{});var o=J(s);i=H(o,"path",{d:!0}),J(i).forEach(P),o.forEach(P),e.forEach(P),this.h()},h(){N(r,"x","0"),N(r,"fill","none"),N(r,"width","24"),N(r,"height","24"),N(i,"d","M13 9h-2V7h2v2zm0 2h-2v6h2v-6zm-1-7c-4.41 0-8 3.59-8 8s3.59 8 8 8 8-3.59 8-8-3.59-8-8-8m0-2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2z"),A(n,a)},m(t,e){B(t,n,e),E(n,r),E(n,s),E(s,i)},p(t,[e]){A(n,a=xt(c,[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},1&e&&t[0]]))},i:e,o:e,d(t){t&&P(n)}}}function ho(t,e,n){return t.$$set=t=>{n(0,e=o(o({},e),m(t)))},[e=m(e)]}class fo extends zt{constructor(t){super(),Pt(this,t,ho,po,a,{})}}let go;function mo(t,e,n){!("boost_version"in n)&&"version"in Jetpack_Boost&&(n.boost_version=Jetpack_Boost.version),jpTracksAJAX.record_ajax_event(`boost_${t}`,"click",n)}let $o=!1;async function bo(){if(!$o)return _o(!1)}async function _o(e=!0,n=!1){$o=!0;let o=!1;e&&(await ao(),un(!0,0));try{const r=await async function(t,e){return sn((t=>Object.assign(Object.assign({},t),{retried_show_stopper:e}))),ln("post","/critical-css/request-generate",{reset:t})}(e,n);if(!r||"requesting"!==r.status)return;!function(t){for(const e of Jetpack_Boost.shownAdminNoticeIds)if(e.includes(t)){const t=document.getElementById(e);t&&t.remove()}}("critical-css"),un(!0,0),await async function(){return go||(go=new Promise(((e,n)=>{const o=Jetpack_Boost.site.assetPath+"/critical-css-gen.js?ver="+Jetpack_Boost.version,r=document.createElement("script");r.src=o,r.addEventListener("error",(()=>n(new Error(t.sprintf(t.__("Failed to load Critical CSS library at %s","jetpack-boost"),o)))));const s=setTimeout((()=>{n(new Error(t.sprintf(t.__("Timeout while loading Critical CSS library at %s","jetpack-boost"),o)))}),6e4);r.addEventListener("load",(()=>{clearTimeout(s),e()})),document.body.appendChild(r)})),go)}();const s=function(t,e){return(n,o,r,s)=>{const i=100/Math.max(1,o+t),c=r/Math.max(1,s);e((n+t+c)*i)}}(r.success_count||0,(e=>{if(!$n("critical-css"))throw o=!0,new Error(t.__("Operation cancelled","jetpack-boost"));un(!0,e)})),i={"jb-generate-critical-css":r.generation_nonce};un(!0,0),await async function(t,e,n,o,r,s,i){const c=Object.keys(t).length+1;let a=0;const l=Date.now();let u=0,d=0,p=0,h=0;for(const[f,g]of Object.entries(t)){r(++a,c,0,0);try{const[t,l]=await CriticalCSSGenerator.generateCriticalCSS({browserInterface:wo(e,i),urls:g,viewports:n,progressCallback:(t,e)=>{r(a,c,t,e)},filters:{atRules:vo,properties:yo},successRatio:s[f]});if(!1===await dn(f,"success",{data:t,warnings:l.map((t=>t.toString())),passthrough:o}))return;d++,u+=t.length,h=t.length>h?t.length:h}catch(t){if(!t.isSuccessTargetError){await dn(f,"error",{data:{show_stopper:!0,error:t.message},passthrough:o});return void mo("critical_css_failure",0,{time:Date.now()-l,provider_key:f,error_message:t.message,error_type:t.type||t.constructor&&t.constructor.name||"unknown"})}{await dn(f,"error",{data:{show_stopper:!1,provider_key:f,urls:t.urlErrors},passthrough:o}),p++;const e=t.urlErrors;for(const[t,n]of Object.entries(e)){const e={url:t,provider_key:f,error_message:n.message,error_type:n.type};"HttpError"===n.type&&(e.error_meta=Ge(n.meta.code)),mo("critical_css_url_error",0,e)}}}}if(0===d){mo("critical_css_failure",0,{time:Date.now()-l,error_message:"Critical CSS Generation failed for all the provider keys.",error_type:"allProvidersError"})}else{mo("critical_css_success",0,{time:Date.now()-l,block_count:d,error_count:p,average_size:u/Math.max(1,d),max_size:h,provider_keys:Object.keys(t).join(",")})}un(!1,0)}(r.pending_provider_keys,i,r.viewports,r.callback_passthrough,s,r.provider_success_ratio,r.proxy_nonce)}catch(t){o||(r=t,sn((t=>Object.assign(Object.assign({},t),{status:"error",status_error:r}))))}finally{un(!1,0)}var r}function wo(t,e){return new class extends CriticalCSSGenerator.BrowserInterfaceIframe{constructor(){super({requestGetParameters:t,verifyPage:ko,allowScripts:!1})}fetch(t,n,o){return"css"!==o||function(t){return new URL(t).origin===window.location.origin}(t)?fetch(t,n):Cn({action:"boost_proxy_css",proxy_url:t,nonce:e})}}}function vo(t){return!t.endsWith("keyframes")}function yo(t,e){const n=function(t){for(const e of["-webkit-","-moz-","-ms-","-o-"])if(t.startsWith(e))return t.substring(e.length);return t}(t);return!n.startsWith("animation")}function ko(t,e,n){return!!n.querySelector('meta[name="jb-generate-critical-css"]')}function jo(t){let e;const n=t[4].default,o=d(n,t,t[3],null);return{c(){o&&o.c()},m(t,n){o&&o.m(t,n),e=!0},p(t,r){o&&o.p&&(!e||8&r)&&f(o,n,t,t[3],e?h(n,t[3],r,null):g(t[3]),null)},i(t){e||(wt(o,t),e=!0)},o(t){vt(o,t),e=!1},d(t){o&&o.d(t)}}}function xo(t){let e,n,o,r,s,i,c,a=(t[0]?t[2]:t[1])+"",l=t[0]&&jo(t);return{c(){e=L("button"),n=T(a),o=V(),l&&l.c(),r=O(),N(e,"class","components-button is-link foldable-element-control"),D(e,"visible",t[0])},m(a,u){C(a,e,u),j(e,n),C(a,o,u),l&&l.m(a,u),C(a,r,u),s=!0,i||(c=I(e,"click",t[5]),i=!0)},p(t,[o]){(!s||7&o)&&a!==(a=(t[0]?t[2]:t[1])+"")&&W(n,a),1&o&&D(e,"visible",t[0]),t[0]?l?(l.p(t,o),1&o&&wt(l,1)):(l=jo(t),l.c(),wt(l,1),l.m(r.parentNode,r)):l&&(bt(),vt(l,1,1,(()=>{l=null})),_t())},i(t){s||(wt(l),s=!0)},o(t){vt(l),s=!1},d(t){t&&P(e),t&&P(o),l&&l.d(t),t&&P(r),i=!1,c()}}}function So(t,e,n){let{$$slots:o={},$$scope:r}=e,{showLabel:s}=e,{hideLabel:i}=e,{visible:c=!1}=e;return t.$$set=t=>{"showLabel"in t&&n(1,s=t.showLabel),"hideLabel"in t&&n(2,i=t.hideLabel),"visible"in t&&n(0,c=t.visible),"$$scope"in t&&n(3,r=t.$$scope)},[c,s,i,r,o,()=>n(0,c=!c)]}wn.subscribe((t=>{t["critical-css"]&&t["critical-css"].enabled||($o=!1)}));class Eo extends zt{constructor(t){super(),Pt(this,t,So,xo,a,{showLabel:1,hideLabel:2,visible:0})}}function Co(t,e,n){const o=t.slice();return o[6]=e[n],o}const Bo=t=>({entry:7&t}),Po=t=>({entry:t[6]});function zo(t){let e,n,o;const r=t[5].default,s=d(r,t,t[4],Po);return{c(){e=L("li"),s&&s.c()},m(t,n){C(t,e,n),s&&s.m(e,null),o=!0},p(t,e){s&&s.p&&(!o||23&e)&&f(s,r,t,t[4],o?h(r,t[4],e,Bo):g(t[4]),Po)},i(t){o||(wt(s,t),t&&lt((()=>{n||(n=kt(e,Xn,{},!0)),n.run(1)})),o=!0)},o(t){vt(s,t),t&&(n||(n=kt(e,Xn,{},!1)),n.run(0)),o=!1},d(t){t&&P(e),s&&s.d(t),t&&n&&n.end()}}}function Lo(e){let n,o,r,s,i,c,a,l=t.sprintf(t.__("…and %d more","jetpack-boost"),e[0].length-e[1])+"";return{c(){n=L("a"),o=T(l),N(n,"href",r="#")},m(t,r){C(t,n,r),j(n,o),i=!0,c||(a=I(n,"click",R(e[3])),c=!0)},p(e,n){(!i||3&n)&&l!==(l=t.sprintf(t.__("…and %d more","jetpack-boost"),e[0].length-e[1])+"")&&W(o,l)},i(t){i||(t&&lt((()=>{s||(s=kt(n,Xn,{},!0)),s.run(1)})),i=!0)},o(t){t&&(s||(s=kt(n,Xn,{},!1)),s.run(0)),i=!1},d(t){t&&P(n),t&&s&&s.end(),c=!1,a()}}}function Mo(t){let e,n,o,r=t[2]?t[0]:t[0].slice(0,t[1]),s=[];for(let e=0;e<r.length;e+=1)s[e]=zo(Co(t,r,e));const i=t=>vt(s[t],1,1,(()=>{s[t]=null}));let c=!t[2]&&t[0].length>t[1]&&Lo(t);return{c(){e=L("ul");for(let t=0;t<s.length;t+=1)s[t].c();n=V(),c&&c.c()},m(t,r){C(t,e,r);for(let t=0;t<s.length;t+=1)s[t].m(e,null);j(e,n),c&&c.m(e,null),o=!0},p(t,[o]){if(23&o){let c;for(r=t[2]?t[0]:t[0].slice(0,t[1]),c=0;c<r.length;c+=1){const i=Co(t,r,c);s[c]?(s[c].p(i,o),wt(s[c],1)):(s[c]=zo(i),s[c].c(),wt(s[c],1),s[c].m(e,n))}for(bt(),c=r.length;c<s.length;c+=1)i(c);_t()}!t[2]&&t[0].length>t[1]?c?(c.p(t,o),7&o&&wt(c,1)):(c=Lo(t),c.c(),wt(c,1),c.m(e,null)):c&&(bt(),vt(c,1,1,(()=>{c=null})),_t())},i(t){if(!o){for(let t=0;t<r.length;t+=1)wt(s[t]);wt(c),o=!0}},o(t){s=s.filter(Boolean);for(let t=0;t<s.length;t+=1)vt(s[t]);vt(c),o=!1},d(t){t&&P(e),z(s,t),c&&c.d()}}}function To(t,e,n){let{$$slots:o={},$$scope:r}=e,{entries:s=[]}=e,{showLimit:i=2}=e,c=!1;return t.$$set=t=>{"entries"in t&&n(0,s=t.entries),"showLimit"in t&&n(1,i=t.showLimit),"$$scope"in t&&n(4,r=t.$$scope)},[s,i,c,function(){n(2,c=!c)},r,o]}class Vo extends zt{constructor(t){super(),Pt(this,t,To,Mo,a,{entries:0,showLimit:1})}}function Oo(n){let o,r,s,i,c,a,l,u,d,p,h,f,g,m,$,b;return{c(){o=L("div"),r=L("div"),s=L("div"),s.textContent=`${t.__("Protocol","jetpack-boost")}`,i=V(),c=L("div"),a=V(),l=T(n[0]),u=V(),d=L("div"),d.textContent="://",p=V(),h=L("div"),f=L("div"),f.textContent=`${t.__("Host name","jetpack-boost")}`,g=V(),m=L("div"),$=V(),b=T(n[1]),N(s,"class","label"),N(c,"class","arrows"),N(r,"class","segment"),N(d,"class","segment"),N(f,"class","label"),N(m,"class","arrows"),N(h,"class","segment"),N(o,"class","url-container")},m(t,e){C(t,o,e),j(o,r),j(r,s),j(r,i),j(r,c),j(r,a),j(r,l),j(o,u),j(o,d),j(o,p),j(o,h),j(h,f),j(h,g),j(h,m),j(h,$),j(h,b)},p:e,i:e,o:e,d(t){t&&P(o)}}}function Io(t){return[window.location.protocol.split(":")[0],window.location.hostname]}class Ro extends zt{constructor(t){super(),Pt(this,t,Io,Oo,a,{})}}function No(t){return Do(t.type).describeSet(t)}function Ao(t){const e=Do(t.type);return e.suggestion?e.suggestion(t):{paragraph:""}}function Jo(t){const e=Do(t.type);return e.footerComponent?e.footerComponent():null}function Ho(t){const e=Do(t.type);return e.rawError?e.rawError(t):""}function Wo(t){return Object.keys(t.byUrl).length}const Fo={HttpError:{describeSet:e=>t.sprintf(t._n("Boost received HTTP error <b>%d</b> on the following page:","Boost received HTTP error <b>%d</b> on the following pages:",Wo(e),"jetpack-boost"),e.firstMeta.code),suggestion:e=>function(e,n){switch(e){case 401:case 403:return{paragraph:t.sprintf(t._n("%d means there is a permission issue in your WordPress site. Please follow these troubleshooting steps for the page:","%d means there is a permission issue in your WordPress site. Please follow these troubleshooting steps for each of the pages:",n,"jetpack-boost"),e),list:[t.__("Check your WordPress settings, or contact your hosting provider to ask why the above URL is unavailable.","jetpack-boost"),t.__("<retry>Try again</retry> to generate the Critical CSS.","jetpack-boost")],closingParagraph:t.__("If this is a private page and not supposed to be viewed publicly, you can safely ignore this message.","jetpack-boost")};case 404:return{paragraph:t._n("Your WordPress site has reported that the above page does not exist. Please ensure that the URL is correct, and <retry>try again</retry>.","Your WordPress site has reported that the above pages do not exist. Please ensure that the URLs are correct, and <retry>try again</retry>.",n,"jetpack-boost"),list:[t.__("Visit the link, and confirm that the page you landed on loads successfully.","jetpack-boost"),t.__("If the page shows an error, please verify that the page should be a part of your WordPress site.","jetpack-boost"),t.__('Try visiting the link using "Incognito Mode" or "Private Browsing" in your browser to check if the error occurs when you are not logged in.',"jetpack-boost"),t.__('If you see an error only when not logged into your WordPress site (i.e.: in "Incognito Mode"), then check for plugins which might be enforcing access permissions on your pages. For example, a plugin which only allows authenticated users to view specific areas of your site.',"jetpack-boost")],closingParagraph:t.__("If the page is only accessible to users who are logged in to your WordPress site, or should not be a part of your site then it is safe to ignore this error.","jetpack-boost")};case 418:return{paragraph:t.__("Your WordPress site returned a 418 error which many web hosts use to indicate they rejected your request due to security rules. Please contact your hosting provider for more information.","jetpack-boost"),list:[t.__('Contact your hosting provider, with details of this issue. Please let them know it is an "HTTP 418" error, which URL(s) are affected, and the time it occurred.',"jetpack-boost"),t.__("Your hosting provider should be able to advise you on next steps.","jetpack-boost"),t.__("If you manage to sort the issue out with your hosting provider, please <retry>try again</retry> to regenerate your Critical CSS.","jetpack-boost")]};case 500:return{paragraph:t._n("Your WordPress site encountered an error while trying to load the above page.","Your WordPress site encountered errors while trying to load the above pages.",n,"jetpack-boost"),list:[t.__('Learn about the error and common solutions by <a target="_blank" href="https://wordpress.org/support/article/common-wordpress-errors/#internal-server-error">clicking here</a>.',"jetpack-boost"),t.__("If the issue is still not resolved, check your server logs or contact your hosting provider for help to investigate the issue.","jetpack-boost"),t.__("Once you have resolved the issue which caused the 500 error, you can <retry>try again</retry>.","jetpack-boost")]};default:return{paragraph:t._n("Please verify the link is valid and <retry>try again</retry>. We recommend the following:","Please verify each link is valid and <retry>try again</retry>. For each link, we recommend the following:",n,"jetpack-boost"),list:[t.__("Visit the link and check for an error.","jetpack-boost"),t.__("<retry>Try to generate Critical CSS again<retry>, in case the error was intermittent.","jetpack-boost"),t.sprintf(t.__("Check your server logs for information about the HTTP %d error, or contact your hosting provider for help with investigating the problem.","jetpack-boost"),e),t.__("Once you have resolved the error, please <retry>try again</retry>.","jetpack-boost"),t.__("If you need help understanding the error, or investigating what went wrong please contact <support>Jetpack Boost Support</support>.","jetpack-boost")]}}}(Ge(e.firstMeta.code),Wo(e))},RedirectError:{describeSet:e=>t._n("This URL is redirecting to a different page:","These URLs are redirecting to different pages:",Wo(e),"jetpack-boost"),suggestion:e=>({paragraph:t.__("This may indicate that a WordPress plugin is redirecting users who are not logged in to a different location, or it may indicate that your hosting provider is redirecting your WordPress site to a different URL.","jetpack-boost"),list:[t.__('Try visiting the link using "Incognito Mode" or "Private Browsing" in your browser and note if the page is being redirected.',"jetpack-boost"),t.__("If it is redirecting, check if a plugin could potentially create the redirection and fix it if appropriate. Otherwise, contact your hosting provider for assistance to fix the URL redirection.","jetpack-boost"),t.__("If you believe the issue is resolved, please <retry>try again</retry>.","jetpack-boost"),t.__("If you think that the redirection is valid, then it is safe to ignore this issue.","jetpack-boost")]})},CrossDomainError:{describeSet:e=>t._n("It looks like this URL doesn't match:","It looks like these URLs don't match:",Wo(e),"jetpack-boost"),suggestion:e=>({paragraph:t._n("Visit the page and complete the following troubleshooting steps.","Visit each page and complete the following troubleshooting steps.",Wo(e),"jetpack-boost"),list:[t.__('Visit the page and look at the protocol and host name to ensure it matches the one in your <a target="_blank" href="https://wordpress.org/support/article/administration-screens/">WordPress Administration Screen</a>.',"jetpack-boost"),t.__("If not, then please reach out to your hosting provider and ask why.","jetpack-boost"),t.__("If you believe the issue is resolved, please <retry>try again</retry>.","jetpack-boost")]}),footerComponent:()=>Ro},LoadTimeoutError:{describeSet:e=>t._n("This page timed out:","These pages timed out:",Wo(e),"jetpack-boost"),suggestion:e=>({paragraph:t._n("The page timed out during load. There could be various reasons but most likely a plugin is causing this issue. Please complete the following steps.","The pages timed out during load. There could be various reasons but most likely a plugin is causing this issue. Please complete the following steps for each of the pages.",Wo(e),"jetpack-boost"),list:[t.__("Clear the cache in your browser.","jetpack-boost"),t.__("Visit the page while not logged into WordPress.","jetpack-boost"),t.__("See how long it takes to load compared to other pages on your site.","jetpack-boost"),t.__("If this page is slower than the others, check what plugins are working on that page.","jetpack-boost"),t.__("Deactivate any plugin that you believe are making the page slow.","jetpack-boost"),t.__("<retry>Try again</retry> to generate the Critical CSS.","jetpack-boost")]})},UrlVerifyError:{describeSet:e=>t._n("Jetpack Boost couldn't verify this page:","Jetpack Boost couldn't verify these pages:",Wo(e),"jetpack-boost"),suggestion:e=>({paragraph:t._n("Please follow the troubleshooting steps below for the page.","Please follow the troubleshooting steps below for each of the pages.",Wo(e),"jetpack-boost"),list:[t.__("Visit the page.","jetpack-boost"),t.__("Verify that the content displayed is a part of your WordPress site, and not an external page managed by a different system.","jetpack-boost"),t.__("<retry>Try again</retry> to generate the Critical CSS.","jetpack-boost")]})},EmptyCSSError:{describeSet:e=>t._n("It looks like this page does not contain any relevant CSS in its external style sheet(s):","It looks like these pages do not contain any relevant CSS in their external style sheet(s):",Wo(e),"jetpack-boost"),suggestion:e=>({paragraph:t._n("Please follow the troubleshooting steps below for the page.","Please follow the troubleshooting steps below for each of the pages.",Wo(e),"jetpack-boost"),list:[t.__("Visit the page.","jetpack-boost"),t.__("Verify its styles load correctly, and <retry>try again</retry>.","jetpack-boost")],closingParagraph:t.__("If you are using a plugin which embeds your CSS styles directly into your pages, or your site does not use external CSS style sheets, then it is safe to ignore this issue as Critical CSS can only speed up pages which use external styles.","jetpack-boost")})},UnknownError:{describeSet:e=>t._n("Something went wrong, which Jetpack Boost did not anticipate. An unexpected error occurred while trying to generate Critical CSS for the following page:","Something went wrong, which Jetpack Boost did not anticipate. An unexpected error occurred while trying to generate Critical CSS for the following pages:",Wo(e),"jetpack-boost"),rawError:t=>Object.values(t.byUrl)[0].message,suggestion:e=>({paragraph:t._n("Please follow the troubleshooting steps below for the page.","Please follow the troubleshooting steps below for each of the pages.",Wo(e),"jetpack-boost"),list:[t.__("Visit the page.","jetpack-boost"),t.__("Verify that the page loads correctly.","jetpack-boost"),t.__("If it does, <retry>try again</retry> to generate the Critical CSS.","jetpack-boost"),t.__("If the error still persist please contact <support>Jetpack Boost Support</support> with a copy of your error message.","jetpack-boost")]})},XFrameDenyError:{describeSet:e=>t._n("Jetpack Boost couldn't load the following page due to its X-Frame-Options configuration:","Jetpack Boost couldn't load the following page due to their X-Frame-Options configuration:",Wo(e),"jetpack-boost"),rawError:t=>Object.values(t.byUrl)[0].message,suggestion:e=>({paragraph:t.__('Jetpack Boost uses iframes while generating your Critical CSS. Unfortunately, your site has a special configuration header which prevents it from loading inside an iframe. The header is called "X-Frame-Options: DENY". This can be added to a WordPress site either by using a plugin, or by server configuration.',"jetpack-boost"),list:[t.__("Check that you are not using any plugins which add extra HTTP headers to your WordPress site, and deactivate them if you are.","jetpack-boost"),t.__('If you are unsure of what these headers are, or where they come from please contact your hosting provider and ask them to remove the "X-Frame-Options" header from your site',"jetpack-boost"),t.__("<retry>Try again</retry> to generate the Critical CSS.","jetpack-boost")]})}};function Do(t){return Fo[t]||Fo.UnknownError}function Uo(t,e,n){const o=t.slice();return o[2]=e[n],o[4]=n,o}function qo(t){let e,n,o,r,s,i,c,a,l=t[4]+1+"";return i=new At({props:{template:t[2],vars:t[1]}}),{c(){e=L("li"),n=L("span"),o=T(l),r=V(),s=L("span"),St(i.$$.fragment),c=V(),N(n,"class","index"),N(s,"class","text")},m(t,l){C(t,e,l),j(e,n),j(n,o),j(e,r),j(e,s),Et(i,s,null),j(e,c),a=!0},p(t,e){const n={};1&e&&(n.template=t[2]),2&e&&(n.vars=t[1]),i.$set(n)},i(t){a||(wt(i.$$.fragment,t),a=!0)},o(t){vt(i.$$.fragment,t),a=!1},d(t){t&&P(e),Ct(i)}}}function Yo(t){let e,n,o=t[0],r=[];for(let e=0;e<o.length;e+=1)r[e]=qo(Uo(t,o,e));const s=t=>vt(r[t],1,1,(()=>{r[t]=null}));return{c(){e=L("ol");for(let t=0;t<r.length;t+=1)r[t].c();N(e,"class","numbered-list")},m(t,o){C(t,e,o);for(let t=0;t<r.length;t+=1)r[t].m(e,null);n=!0},p(t,[n]){if(3&n){let i;for(o=t[0],i=0;i<o.length;i+=1){const s=Uo(t,o,i);r[i]?(r[i].p(s,n),wt(r[i],1)):(r[i]=qo(s),r[i].c(),wt(r[i],1),r[i].m(e,null))}for(bt(),i=o.length;i<r.length;i+=1)s(i);_t()}},i(t){if(!n){for(let t=0;t<o.length;t+=1)wt(r[t]);n=!0}},o(t){r=r.filter(Boolean);for(let t=0;t<r.length;t+=1)vt(r[t]);n=!1},d(t){t&&P(e),z(r,t)}}}function Go(t,e,n){let{items:o}=e,{vars:r}=e;return t.$$set=t=>{"items"in t&&n(0,o=t.items),"vars"in t&&n(1,r=t.vars)},[o,r]}class Xo extends zt{constructor(t){super(),Pt(this,t,Go,Yo,a,{items:0,vars:1})}}function Ko(t){let e,n,o,r=t[6].label+"";return{c(){e=L("a"),n=T(r),N(e,"href",o=t[6].href),N(e,"target","_blank")},m(t,o){C(t,e,o),j(e,n)},p(t,s){64&s&&r!==(r=t[6].label+"")&&W(n,r),64&s&&o!==(o=t[6].href)&&N(e,"href",o)},d(t){t&&P(e)}}}function Qo(e){let n,o,r,s,i,c,a,l,u,d,p=Ao(e[2]).list,h=Ao(e[2]).closingParagraph;s=new At({props:{template:Ao(e[2]).paragraph,vars:e[4]}});let f=p&&Zo(e),g=h&&tr(e);var m=Jo(e[2]);return m&&(l=new m({})),{c(){n=L("h5"),n.textContent=`${t.__("What to do","jetpack-boost")}`,o=V(),r=L("p"),St(s.$$.fragment),i=V(),f&&f.c(),c=V(),g&&g.c(),a=V(),l&&St(l.$$.fragment),u=O(),N(r,"class","suggestion")},m(t,e){C(t,n,e),C(t,o,e),C(t,r,e),Et(s,r,null),j(r,i),f&&f.m(r,null),C(t,c,e),g&&g.m(t,e),C(t,a,e),l&&Et(l,t,e),C(t,u,e),d=!0},p(t,e){const n={};if(4&e&&(n.template=Ao(t[2]).paragraph),s.$set(n),4&e&&(p=Ao(t[2]).list),p?f?(f.p(t,e),4&e&&wt(f,1)):(f=Zo(t),f.c(),wt(f,1),f.m(r,null)):f&&(bt(),vt(f,1,1,(()=>{f=null})),_t()),4&e&&(h=Ao(t[2]).closingParagraph),h?g?(g.p(t,e),4&e&&wt(g,1)):(g=tr(t),g.c(),wt(g,1),g.m(a.parentNode,a)):g&&(bt(),vt(g,1,1,(()=>{g=null})),_t()),m!==(m=Jo(t[2]))){if(l){bt();const t=l;vt(t.$$.fragment,1,0,(()=>{Ct(t,1)})),_t()}m?(l=new m({}),St(l.$$.fragment),wt(l.$$.fragment,1),Et(l,u.parentNode,u)):l=null}},i(t){d||(wt(s.$$.fragment,t),wt(f),wt(g),l&&wt(l.$$.fragment,t),d=!0)},o(t){vt(s.$$.fragment,t),vt(f),vt(g),l&&vt(l.$$.fragment,t),d=!1},d(t){t&&P(n),t&&P(o),t&&P(r),Ct(s),f&&f.d(),t&&P(c),g&&g.d(t),t&&P(a),t&&P(u),l&&Ct(l,t)}}}function Zo(t){let e,n;return e=new Xo({props:{items:Ao(t[2]).list,vars:t[4]}}),{c(){St(e.$$.fragment)},m(t,o){Et(e,t,o),n=!0},p(t,n){const o={};4&n&&(o.items=Ao(t[2]).list),e.$set(o)},i(t){n||(wt(e.$$.fragment,t),n=!0)},o(t){vt(e.$$.fragment,t),n=!1},d(t){Ct(e,t)}}}function tr(t){let e,n,o;return n=new At({props:{template:Ao(t[2]).closingParagraph,vars:t[4]}}),{c(){e=L("p"),St(n.$$.fragment),N(e,"class","suggestion-closing")},m(t,r){C(t,e,r),Et(n,e,null),o=!0},p(t,e){const o={};4&e&&(o.template=Ao(t[2]).closingParagraph),n.$set(o)},i(t){o||(wt(n.$$.fragment,t),o=!0)},o(t){vt(n.$$.fragment,t),o=!1},d(t){t&&P(e),Ct(n)}}}function er(t){let e,n,o,r;const s=[or,nr],i=[];function c(t,e){return t[1]?0:1}return e=c(t),n=i[e]=s[e](t),{c(){n.c(),o=O()},m(t,n){i[e].m(t,n),C(t,o,n),r=!0},p(t,r){let a=e;e=c(t),e===a?i[e].p(t,r):(bt(),vt(i[a],1,1,(()=>{i[a]=null})),_t(),n=i[e],n?n.p(t,r):(n=i[e]=s[e](t),n.c()),wt(n,1),n.m(o.parentNode,o))},i(t){r||(wt(n),r=!0)},o(t){vt(n),r=!1},d(t){i[e].d(t),t&&P(o)}}}function nr(t){let e,n,o,r,s=Ho(t[2])+"";return{c(){e=L("p"),n=T(s),N(e,"class","raw-error")},m(t,o){C(t,e,o),j(e,n),r=!0},p(t,e){(!r||4&e)&&s!==(s=Ho(t[2])+"")&&W(n,s)},i(t){r||(t&&lt((()=>{o||(o=kt(e,Xn,{},!0)),o.run(1)})),r=!0)},o(t){t&&(o||(o=kt(e,Xn,{},!1)),o.run(0)),r=!1},d(t){t&&P(e),t&&o&&o.end()}}}function or(e){let n,o;return n=new Eo({props:{showLabel:t.__("See error message","jetpack-boost"),hideLabel:t.__("Hide error message","jetpack-boost"),$$slots:{default:[rr]},$$scope:{ctx:e}}}),{c(){St(n.$$.fragment)},m(t,e){Et(n,t,e),o=!0},p(t,e){const o={};132&e&&(o.$$scope={dirty:e,ctx:t}),n.$set(o)},i(t){o||(wt(n.$$.fragment,t),o=!0)},o(t){vt(n.$$.fragment,t),o=!1},d(t){Ct(n,t)}}}function rr(t){let e,n,o,r,s=Ho(t[2])+"";return{c(){e=L("p"),n=T(s),N(e,"class","raw-error")},m(t,o){C(t,e,o),j(e,n),r=!0},p(t,e){(!r||4&e)&&s!==(s=Ho(t[2])+"")&&W(n,s)},i(t){r||(t&&lt((()=>{o||(o=kt(e,Xn,{},!0)),o.run(1)})),r=!0)},o(t){t&&(o||(o=kt(e,Xn,{},!1)),o.run(0)),r=!1},d(t){t&&P(e),t&&o&&o.end()}}}function sr(t){let e,n,o,r,s,i,c,a,l=Ho(t[2]);o=new At({props:{template:No(t[2]),vars:{templateVars:t[4]}}}),s=new Vo({props:{entries:t[3],$$slots:{default:[Ko,({entry:t})=>({6:t}),({entry:t})=>t?64:0]},$$scope:{ctx:t}}});let u=t[0]&&Qo(t),d=l&&er(t);return{c(){e=L("div"),n=L("span"),St(o.$$.fragment),r=V(),St(s.$$.fragment),i=V(),u&&u.c(),c=V(),d&&d.c(),N(n,"class","error-description"),N(e,"class","jb-critical-css__error-description")},m(t,l){C(t,e,l),j(e,n),Et(o,n,null),j(e,r),Et(s,e,null),j(e,i),u&&u.m(e,null),j(e,c),d&&d.m(e,null),a=!0},p(t,[n]){const r={};4&n&&(r.template=No(t[2])),o.$set(r);const i={};8&n&&(i.entries=t[3]),192&n&&(i.$$scope={dirty:n,ctx:t}),s.$set(i),t[0]?u?(u.p(t,n),1&n&&wt(u,1)):(u=Qo(t),u.c(),wt(u,1),u.m(e,c)):u&&(bt(),vt(u,1,1,(()=>{u=null})),_t()),4&n&&(l=Ho(t[2])),l?d?(d.p(t,n),4&n&&wt(d,1)):(d=er(t),d.c(),wt(d,1),d.m(e,null)):d&&(bt(),vt(d,1,1,(()=>{d=null})),_t())},i(t){a||(wt(o.$$.fragment,t),wt(s.$$.fragment,t),wt(u),wt(d),a=!0)},o(t){vt(o.$$.fragment,t),vt(s.$$.fragment,t),vt(u),vt(d),a=!1},d(t){t&&P(e),Ct(o),Ct(s),u&&u.d(),d&&d.d()}}}function ir(t,e,n){const o=et();let{showSuggestion:r=!0}=e,{foldRawErrors:s=!0}=e,{errorSet:i}=e,c=[];const a={...oe((()=>o("retry")),"retry"),...se()};return t.$$set=t=>{"showSuggestion"in t&&n(0,r=t.showSuggestion),"foldRawErrors"in t&&n(1,s=t.foldRawErrors),"errorSet"in t&&n(2,i=t.errorSet)},t.$$.update=()=>{4&t.$$.dirty&&n(3,c=Object.entries(i.byUrl).map((([t,e])=>({href:e.meta.url?e.meta.url:t,label:t}))))},[r,s,i,c,a]}class cr extends zt{constructor(t){super(),Pt(this,t,ir,sr,a,{showSuggestion:0,foldRawErrors:1,errorSet:2})}}function ar(t,e,n){const o=t.slice();return o[10]=e[n],o}function lr(t,e,n){const o=t.slice();return o[13]=e[n],o}function ur(e){let n,o,r,s,i,c=t.sprintf(t._n("Show %d hidden recommendation.","Show %d hidden recommendations.",e[2].length,"jetpack-boost"),e[2].length)+"";return{c(){n=L("p"),o=L("button"),r=T(c),N(o,"class","components-button is-link")},m(t,c){C(t,n,c),j(n,o),j(o,r),s||(i=I(o,"click",e[6]),s=!0)},p(e,n){4&n&&c!==(c=t.sprintf(t._n("Show %d hidden recommendation.","Show %d hidden recommendations.",e[2].length,"jetpack-boost"),e[2].length)+"")&&W(r,c)},d(t){t&&P(n),s=!1,i()}}}function dr(t){let e,n,o,r,s,i,c=t[2].length>0&&ur(t);return{c(){e=L("section"),n=L("p"),o=T(t[1]),r=V(),c&&c.c()},m(t,s){C(t,e,s),j(e,n),j(n,o),j(e,r),c&&c.m(e,null),i=!0},p(t,n){(!i||2&n)&&W(o,t[1]),t[2].length>0?c?c.p(t,n):(c=ur(t),c.c(),c.m(e,null)):c&&(c.d(1),c=null)},i(t){i||(t&&lt((()=>{s||(s=kt(e,Xn,{},!0)),s.run(1)})),i=!0)},o(t){t&&(s||(s=kt(e,Xn,{},!1)),s.run(0)),i=!1},d(t){t&&P(e),c&&c.d(),t&&s&&s.end()}}}function pr(t){let e,n;return e=new ge({props:{title:t[3].title,error:t[3].error}}),{c(){St(e.$$.fragment)},m(t,o){Et(e,t,o),n=!0},p(t,n){const o={};8&n&&(o.title=t[3].title),8&n&&(o.error=t[3].error),e.$set(o)},i(t){n||(wt(e.$$.fragment,t),n=!0)},o(t){vt(e.$$.fragment,t),n=!1},d(t){Ct(e,t)}}}function hr(t){let e,n,o;return n=new cr({props:{errorSet:t[13]}}),n.$on("retry",t[4]),{c(){e=L("div"),St(n.$$.fragment),N(e,"class","problem")},m(t,r){C(t,e,r),Et(n,e,null),o=!0},p(t,e){const o={};1&e&&(o.errorSet=t[13]),n.$set(o)},i(t){o||(wt(n.$$.fragment,t),o=!0)},o(t){vt(n.$$.fragment,t),o=!1},d(t){t&&P(e),Ct(n)}}}function fr(t,e){let n,o,r,s,i,c,a,l,u,d,p,h=e[10].label+"";o=new kn({}),o.$on("click",(function(){return e[9](e[10])})),i=new fo({});let f=[e[10].errors[0]],g=[];for(let t=0;t<1;t+=1)g[t]=hr(lr(e,f,t));const m=t=>vt(g[t],1,1,(()=>{g[t]=null}));return{key:t,first:null,c(){n=L("div"),St(o.$$.fragment),r=V(),s=L("h4"),St(i.$$.fragment),c=V(),a=T(h),l=V();for(let t=0;t<1;t+=1)g[t].c();u=V(),N(n,"class","panel"),this.first=n},m(t,e){C(t,n,e),Et(o,n,null),j(n,r),j(n,s),Et(i,s,null),j(s,c),j(s,a),j(n,l);for(let t=0;t<1;t+=1)g[t].m(n,null);j(n,u),p=!0},p(t,o){if(e=t,(!p||1&o)&&h!==(h=e[10].label+"")&&W(a,h),17&o){let t;for(f=[e[10].errors[0]],t=0;t<1;t+=1){const r=lr(e,f,t);g[t]?(g[t].p(r,o),wt(g[t],1)):(g[t]=hr(r),g[t].c(),wt(g[t],1),g[t].m(n,u))}for(bt(),t=1;t<1;t+=1)m(t);_t()}},i(t){if(!p){wt(o.$$.fragment,t),wt(i.$$.fragment,t);for(let t=0;t<1;t+=1)wt(g[t]);t&&lt((()=>{d||(d=kt(n,Xn,{},!0)),d.run(1)})),p=!0}},o(t){vt(o.$$.fragment,t),vt(i.$$.fragment,t),g=g.filter(Boolean);for(let t=0;t<1;t+=1)vt(g[t]);t&&(d||(d=kt(n,Xn,{},!1)),d.run(0)),p=!1},d(t){t&&P(n),Ct(o),Ct(i),z(g,t),t&&d&&d.end()}}}function gr(n){let o,r,s,i,c,l,u,d,p,h,f,g,m,$=t.__("Go back","jetpack-boost")+"",b=n[1],_=[],w=new Map;s=new Zn({});let v=dr(n),y=n[3]&&pr(n),k=n[0];const x=t=>t[10].key;for(let t=0;t<k.length;t+=1){let e=ar(n,k,t),o=x(e);w.set(o,_[t]=fr(o,e))}return{c(){o=L("div"),r=L("button"),St(s.$$.fragment),i=V(),c=T($),l=V(),u=L("h3"),u.textContent=`${t.__("Critical CSS advanced recommendations","jetpack-boost")}`,d=V(),v.c(),p=V(),y&&y.c(),h=V();for(let t=0;t<_.length;t+=1)_[t].c();N(r,"class","components-button is-link close"),N(o,"class","jb-container--narrow jb-critical-css__advanced")},m(t,e){C(t,o,e),j(o,r),Et(s,r,null),j(r,i),j(r,c),j(o,l),j(o,u),j(o,d),v.m(o,null),j(o,p),y&&y.m(o,null),j(o,h);for(let t=0;t<_.length;t+=1)_[t].m(o,null);f=!0,g||(m=I(r,"click",n[8]),g=!0)},p(t,[n]){2&n&&a(b,b=t[1])?(bt(),vt(v,1,1,e),_t(),v=dr(t),v.c(),wt(v),v.m(o,p)):v.p(t,n),t[3]?y?(y.p(t,n),8&n&&wt(y,1)):(y=pr(t),y.c(),wt(y,1),y.m(o,h)):y&&(bt(),vt(y,1,1,(()=>{y=null})),_t()),49&n&&(k=t[0],bt(),_=function(t,e,n,o,r,s,i,c,a,l,u,d){let p=t.length,h=s.length,f=p;const g={};for(;f--;)g[t[f].key]=f;const m=[],$=new Map,b=new Map;for(f=h;f--;){const t=d(r,s,f),c=n(t);let a=i.get(c);a?o&&a.p(t,e):(a=l(c,t),a.c()),$.set(c,m[f]=a),c in g&&b.set(c,Math.abs(f-g[c]))}const _=new Set,w=new Set;function v(t){wt(t,1),t.m(c,u),i.set(t.key,t),u=t.first,h--}for(;p&&h;){const e=m[h-1],n=t[p-1],o=e.key,r=n.key;e===n?(u=e.first,p--,h--):$.has(r)?!i.has(o)||_.has(o)?v(e):w.has(r)?p--:b.get(o)>b.get(r)?(w.add(o),v(e)):(_.add(r),p--):(a(n,i),p--)}for(;p--;){const e=t[p];$.has(e.key)||a(e,i)}for(;h;)v(m[h-1]);return m}(_,n,x,1,t,k,w,o,jt,fr,null,ar),_t())},i(t){if(!f){wt(s.$$.fragment,t),wt(v),wt(y);for(let t=0;t<k.length;t+=1)wt(_[t]);f=!0}},o(t){vt(s.$$.fragment,t),vt(v),vt(y);for(let t=0;t<_.length;t+=1)vt(_[t]);f=!1},d(t){t&&P(o),Ct(s),v.d(t),y&&y.d();for(let t=0;t<_.length;t+=1)_[t].d();g=!1,m()}}}function mr(e,n,o){let r,s,i,c,a;async function l(e){try{await async function(t){await Bn({action:"dismiss_recommendations",providerKey:t,nonce:Jetpack_Boost.criticalCssDismissRecommendationsNonce}),eo.update((e=>[...e,t]))}(e)}catch(e){co(t.__("Failed to dismiss recommendation","jetpack-boost"),e)}}u(e,an,(t=>o(7,r=t))),u(e,ro,(t=>o(0,s=t))),u(e,oo,(t=>o(2,i=t))),u(e,io,(t=>o(3,c=t)));return e.$$.update=()=>{1&e.$$.dirty&&o(1,a=0===s.length?t.__("Congratulations, you have dealt with all the recommendations.","jetpack-boost"):t.__("While Jetpack Boost has been able to automatically generate optimized CSS for most of your important files & sections, we have identified a few more that require your attention.","jetpack-boost")),128&e.$$.dirty&&(r||Yn())},[s,a,i,c,function(){_o(),Yn()},l,async function(){try{await ao()}catch(e){co(t.__("Failed to show the dismissed recommendations","jetpack-boost"),e)}},r,()=>Yn(),t=>l(t.key)]}class $r extends zt{constructor(t){super(),Pt(this,t,mr,gr,a,{})}}function br(e){let n,o;return n=new Eo({props:{showLabel:t.__("See error message","jetpack-boost"),hideLabel:t.__("Hide error message","jetpack-boost"),$$slots:{default:[vr]},$$scope:{ctx:e}}}),{c(){St(n.$$.fragment)},m(t,e){Et(n,t,e),o=!0},p(t,e){const o={};39&e&&(o.$$scope={dirty:e,ctx:t}),n.$set(o)},i(t){o||(wt(n.$$.fragment,t),o=!0)},o(t){vt(n.$$.fragment,t),o=!1},d(t){Ct(n,t)}}}function _r(t){let n,o=t[0].status_error+"";return{c(){n=T(o)},m(t,e){C(t,n,e)},p(t,e){1&e&&o!==(o=t[0].status_error+"")&&W(n,o)},i:e,o:e,d(t){t&&P(n)}}}function wr(t){let e,n;return e=new cr({props:{errorSet:t[1],showSuggestion:!1,foldRawErrors:!1}}),e.$on("retry",_o),{c(){St(e.$$.fragment)},m(t,o){Et(e,t,o),n=!0},p(t,n){const o={};2&n&&(o.errorSet=t[1]),e.$set(o)},i(t){n||(wt(e.$$.fragment,t),n=!0)},o(t){vt(e.$$.fragment,t),n=!1},d(t){Ct(e,t)}}}function vr(t){let e,n,o,r,s;const i=[wr,_r],c=[];function a(t,e){return t[2]?0:1}return n=a(t),o=c[n]=i[n](t),{c(){e=L("div"),o.c(),N(e,"class","raw-error")},m(t,o){C(t,e,o),c[n].m(e,null),s=!0},p(t,r){let s=n;n=a(t),n===s?c[n].p(t,r):(bt(),vt(c[s],1,1,(()=>{c[s]=null})),_t(),o=c[n],o?o.p(t,r):(o=c[n]=i[n](t),o.c()),wt(o,1),o.m(e,null))},i(t){s||(wt(o),t&&lt((()=>{r||(r=kt(e,Xn,{},!0)),r.run(1)})),s=!0)},o(t){vt(o),t&&(r||(r=kt(e,Xn,{},!1)),r.run(0)),s=!1},d(t){t&&P(e),c[n].d(),t&&r&&r.end()}}}function yr(e){let n,o,r,s,i,c=(e[0].retried_show_stopper?t.__("Hmm, looks like something went wrong. We're still seeing an unexpected error. Please reach out to our support to get help.","jetpack-boost"):t.__("An unexpected error has occurred. As this error may be temporary, please try and refresh the Critical CSS.","jetpack-boost"))+"",a=(e[2]||e[0].status_error)&&br(e);return{c(){n=L("p"),o=T(c),r=V(),a&&a.c(),s=O()},m(t,e){C(t,n,e),j(n,o),C(t,r,e),a&&a.m(t,e),C(t,s,e),i=!0},p(e,n){(!i||1&n)&&c!==(c=(e[0].retried_show_stopper?t.__("Hmm, looks like something went wrong. We're still seeing an unexpected error. Please reach out to our support to get help.","jetpack-boost"):t.__("An unexpected error has occurred. As this error may be temporary, please try and refresh the Critical CSS.","jetpack-boost"))+"")&&W(o,c),e[2]||e[0].status_error?a?(a.p(e,n),5&n&&wt(a,1)):(a=br(e),a.c(),wt(a,1),a.m(s.parentNode,s)):a&&(bt(),vt(a,1,1,(()=>{a=null})),_t())},i(t){i||(wt(a),i=!0)},o(t){vt(a),i=!1},d(t){t&&P(n),t&&P(r),a&&a.d(t),t&&P(s)}}}function kr(n){let o,r,s;return{c(){o=L("button"),o.textContent=`${t.__("Refresh","jetpack-boost")}`,N(o,"class","secondary")},m(t,e){C(t,o,e),r||(s=I(o,"click",n[4]),r=!0)},p:e,d(t){t&&P(o),r=!1,s()}}}function jr(n){let o;return{c(){o=L("a"),o.textContent=`${t.__("Contact Support","jetpack-boost")}`,N(o,"class","button button-secondary"),N(o,"href","https://wordpress.org/support/plugin/jetpack-boost/"),N(o,"target","_blank")},m(t,e){C(t,o,e)},p:e,d(t){t&&P(o)}}}function xr(t){let e;function n(t,e){return t[0].retried_show_stopper?jr:kr}let o=n(t),r=o(t);return{c(){e=L("div"),r.c(),N(e,"slot","actionButton")},m(t,n){C(t,e,n),r.m(e,null)},p(t,s){o===(o=n(t))&&r?r.p(t,s):(r.d(1),r=o(t),r&&(r.c(),r.m(e,null)))},d(t){t&&P(e),r.d()}}}function Sr(t){let e,n;return e=new ge({props:{title:t[3],$$slots:{actionButton:[xr],default:[yr]},$$scope:{ctx:t}}}),{c(){St(e.$$.fragment)},m(t,o){Et(e,t,o),n=!0},p(t,[n]){const o={};39&n&&(o.$$scope={dirty:n,ctx:t}),e.$set(o)},i(t){n||(wt(e.$$.fragment,t),n=!0)},o(t){vt(e.$$.fragment,t),n=!1},d(t){Ct(e,t)}}}function Er(e,n,o){let r,s;u(e,pn,(t=>o(0,r=t))),u(e,so,(t=>o(1,s=t)));let i=!1;const c=t.__("Failed to generate Critical CSS","jetpack-boost");return e.$$.update=()=>{3&e.$$.dirty&&o(2,i=s&&"success"===r.status)},[r,s,i,c,function(){_o(!0,!0)}]}class Cr extends zt{constructor(t){super(),Pt(this,t,Er,Sr,a,{})}}const Br=6e4,Pr=36e5,zr=24*Pr;function Lr(e){const n=Date.now()-e.getTime();if(n<Br)return t.__("a few moments ago","jetpack-boost");if(n<Pr){const e=Math.floor(n/Br);return t.sprintf(t._n("%d minute ago","%d minutes ago",e,"jetpack-boost"),e)}if(n<zr){const e=Math.floor(n/Pr);return t.sprintf(t._n("%d hour ago","%d hours ago",e,"jetpack-boost"),e)}if(n<12096e5){const e=Math.floor(n/zr);return t.sprintf(t._n("%d day ago","%d days ago",e,"jetpack-boost"),e)}const o={month:"short",day:"numeric",year:(new Date).getFullYear()===e.getFullYear()?void 0:"numeric"};return t.sprintf(t.__("on %s","jetpack-boost"),e.toLocaleDateString(navigator.language,o))}function Mr(t){let n,o,r;return{c(){n=L("span"),o=T(t[1]),N(n,"title",r=t[0].toLocaleString()),N(n,"class","time-ago")},m(t,e){C(t,n,e),j(n,o)},p(t,[e]){2&e&&W(o,t[1]),1&e&&r!==(r=t[0].toLocaleString())&&N(n,"title",r)},i:e,o:e,d(t){t&&P(n)}}}function Tr(t,e,n){let o,{time:r}=e;const s=Wt(Lr(r),(t=>{const e=setInterval((()=>{t(Lr(r))}),1e4);return()=>clearInterval(e)}));return u(t,s,(t=>n(1,o=t))),t.$$set=t=>{"time"in t&&n(0,r=t.time)},[r,o,s]}class Vr extends zt{constructor(t){super(),Pt(this,t,Tr,Mr,a,{time:0})}}function Or(e){let n,o,r,s,i,c,a,l,u,d,p,h,f,g,m,$,b=t.sprintf(t._n("%d file generated","%d files generated",e[0].success_count,"jetpack-boost"),e[0].success_count)+"",_=t.__("Regenerate","jetpack-boost")+"";c=new Vr({props:{time:new Date(1e3*e[0].created)}});let w=e[2]>0&&Nr(e);return p=new Ve({}),{c(){n=L("div"),o=L("div"),r=L("div"),s=T(b),i=V(),St(c.$$.fragment),a=T("."),l=V(),w&&w.c(),u=V(),d=L("button"),St(p.$$.fragment),h=V(),f=T(_),N(r,"class","successes"),N(o,"class","summary"),N(d,"type","button"),N(d,"class","components-button is-link"),N(n,"class","jb-critical-css__meta")},m(t,e){C(t,n,e),j(n,o),j(o,r),j(r,s),j(r,i),Et(c,r,null),j(r,a),j(o,l),w&&w.m(o,null),j(n,u),j(n,d),Et(p,d,null),j(d,h),j(d,f),g=!0,m||($=I(d,"click",_o),m=!0)},p(e,n){(!g||1&n)&&b!==(b=t.sprintf(t._n("%d file generated","%d files generated",e[0].success_count,"jetpack-boost"),e[0].success_count)+"")&&W(s,b);const r={};1&n&&(r.time=new Date(1e3*e[0].created)),c.$set(r),e[2]>0?w?(w.p(e,n),4&n&&wt(w,1)):(w=Nr(e),w.c(),wt(w,1),w.m(o,null)):w&&(bt(),vt(w,1,1,(()=>{w=null})),_t())},i(t){g||(wt(c.$$.fragment,t),wt(w),wt(p.$$.fragment,t),g=!0)},o(t){vt(c.$$.fragment,t),vt(w),vt(p.$$.fragment,t),g=!1},d(t){t&&P(n),Ct(c),w&&w.d(),Ct(p),m=!1,$()}}}function Ir(t){let n,o;return n=new Cr({}),{c(){St(n.$$.fragment)},m(t,e){Et(n,t,e),o=!0},p:e,i(t){o||(wt(n.$$.fragment,t),o=!0)},o(t){vt(n.$$.fragment,t),o=!1},d(t){Ct(n,t)}}}function Rr(n){let o,r,s,i,c,a,l;return{c(){o=L("div"),r=L("span"),r.textContent=`${t.__("Generating Critical CSS…","jetpack-boost")}`,s=V(),i=L("div"),c=L("div"),N(r,"class","jb-critical-css-progress__label"),N(c,"class","jb-progress-bar__filler"),N(c,"aria-hidden","true"),N(c,"style",a=`width: ${n[0].progress}%;`),N(i,"role","progressbar"),N(i,"aria-valuemax","100"),N(i,"aria-valuemin","0"),N(i,"aria-valuenow",l=n[0].progress),N(i,"class","jb-progress-bar"),N(o,"class","jb-critical-css-progress")},m(t,e){C(t,o,e),j(o,r),j(o,s),j(o,i),j(i,c)},p(t,e){1&e&&a!==(a=`width: ${t[0].progress}%;`)&&N(c,"style",a),1&e&&l!==(l=t[0].progress)&&N(i,"aria-valuenow",l)},i:e,o:e,d(t){t&&P(o)}}}function Nr(e){let n,o,r,s,i;return o=new fo({}),s=new At({props:{template:t.sprintf(t._n("%d file could not be automatically generated. Visit the <advanced>advanced recommendations page</advanced> to optimize this file.","%d files could not be automatically generated. Visit the <advanced>advanced recommendations page</advanced> to optimize these files.",e[2],"jetpack-boost"),e[2]),vars:{...oe(e[3],"advanced")}}}),{c(){n=L("div"),St(o.$$.fragment),r=V(),St(s.$$.fragment),N(n,"class","failures")},m(t,e){C(t,n,e),Et(o,n,null),j(n,r),Et(s,n,null),i=!0},p(e,n){const o={};4&n&&(o.template=t.sprintf(t._n("%d file could not be automatically generated. Visit the <advanced>advanced recommendations page</advanced> to optimize this file.","%d files could not be automatically generated. Visit the <advanced>advanced recommendations page</advanced> to optimize these files.",e[2],"jetpack-boost"),e[2])),s.$set(o)},i(t){i||(wt(o.$$.fragment,t),wt(s.$$.fragment,t),i=!0)},o(t){vt(o.$$.fragment,t),vt(s.$$.fragment,t),i=!1},d(t){t&&P(n),Ct(o),Ct(s)}}}function Ar(t){let e,n,o,r;const s=[Rr,Ir,Or],i=[];function c(t,e){return t[0].generating?0:t[1]?1:"success"===t[0].status?2:-1}return~(e=c(t))&&(n=i[e]=s[e](t)),{c(){n&&n.c(),o=O()},m(t,n){~e&&i[e].m(t,n),C(t,o,n),r=!0},p(t,[r]){let a=e;e=c(t),e===a?~e&&i[e].p(t,r):(n&&(bt(),vt(i[a],1,1,(()=>{i[a]=null})),_t()),~e?(n=i[e],n?n.p(t,r):(n=i[e]=s[e](t),n.c()),wt(n,1),n.m(o.parentNode,o)):n=null)},i(t){r||(wt(n),r=!0)},o(t){vt(n),r=!1},d(t){~e&&i[e].d(t),t&&P(o)}}}function Jr(t,e,n){let o,r;u(t,pn,(t=>n(0,o=t))),u(t,cn,(t=>n(2,r=t)));let s=!1;return t.$$.update=()=>{1&t.$$.dirty&&n(1,s="error"===o.status||"success"===o.status&&0===o.success_count)},[o,s,r,()=>Yn("critical-css-advanced")]}class Hr extends zt{constructor(t){super(),Pt(this,t,Jr,Ar,a,{})}}function Wr(t){let n,o,r,s,c,a,l,u,d,p,h;return{c(){n=L("div"),o=L("div"),r=L("span"),s=L("input"),c=V(),a=L("span"),l=V(),u=L("span"),d=L("label"),N(s,"id",t[1]),N(s,"class","components-form-toggle__input"),N(s,"type","checkbox"),s.disabled=t[2],N(a,"class","components-form-toggle__track"),N(u,"class","components-form-toggle__thumb"),N(r,"class","components-form-toggle"),D(r,"is-checked",t[0]),N(d,"for",t[1]),N(d,"class","components-toggle-control__label"),N(o,"class","components-base-control__field"),N(n,"class","components-base-control components-toggle-control")},m(e,i){C(e,n,i),j(n,o),j(o,r),j(r,s),s.checked=t[0],j(r,c),j(r,a),j(r,l),j(r,u),j(o,d),p||(h=[I(s,"click",t[3]),I(s,"change",t[4])],p=!0)},p(t,[e]){2&e&&N(s,"id",t[1]),4&e&&(s.disabled=t[2]),1&e&&(s.checked=t[0]),1&e&&D(r,"is-checked",t[0]),2&e&&N(d,"for",t[1])},i:e,o:e,d(t){t&&P(n),p=!1,i(h)}}}function Fr(t,e,n){let{id:o}=e,{checked:r=!1}=e,{disabled:s=!1}=e;return t.$$set=t=>{"id"in t&&n(1,o=t.id),"checked"in t&&n(0,r=t.checked),"disabled"in t&&n(2,s=t.disabled)},[r,o,s,function(e){nt.call(this,t,e)},function(){r=this.checked,n(0,r)}]}class Dr extends zt{constructor(t){super(),Pt(this,t,Fr,Wr,a,{id:1,checked:0,disabled:2})}}const Ur=t=>({}),qr=t=>({}),Yr=t=>({}),Gr=t=>({}),Xr=t=>({}),Kr=t=>({});function Qr(e){let n,o;return n=new ge({props:{title:t.__("Failed to toggle feature","jetpack-boost"),error:e[1]}}),{c(){St(n.$$.fragment)},m(t,e){Et(n,t,e),o=!0},p(t,e){const o={};2&e&&(o.error=t[1]),n.$set(o)},i(t){o||(wt(n.$$.fragment,t),o=!0)},o(t){vt(n.$$.fragment,t),o=!1},d(t){Ct(n,t)}}}function Zr(t){let e;const n=t[7].meta,o=d(n,t,t[6],qr);return{c(){o&&o.c()},m(t,n){o&&o.m(t,n),e=!0},p(t,r){o&&o.p&&(!e||64&r)&&f(o,n,t,t[6],e?h(n,t[6],r,Ur):g(t[6]),qr)},i(t){e||(wt(o,t),e=!0)},o(t){vt(o,t),e=!1},d(t){o&&o.d(t)}}}function ts(t){let e,n,o,r,s,i,c,a,l,u,p,m,$;function b(e){t[8](e)}let _={id:`jb-feature-toggle-${t[0]}`,checked:t[3]};void 0!==t[2]&&(_.disabled=t[2]),o=new Dr({props:_}),rt.push((()=>function(t,e,n){const o=t.$$.props[e];void 0!==o&&(t.$$.bound[o]=n,n(t.$$.ctx[o]))}(o,"disabled",b))),o.$on("click",t[5]);const w=t[7].title,v=d(w,t,t[6],Kr),y=t[7].description,k=d(y,t,t[6],Gr),x=t[7].default,S=d(x,t,t[6],null);let E=t[1]&&Qr(t),B=t[3]&&Zr(t);return{c(){e=L("div"),n=L("div"),St(o.$$.fragment),s=V(),i=L("div"),v&&v.c(),c=V(),a=L("div"),k&&k.c(),l=V(),u=L("div"),S&&S.c(),p=V(),E&&E.c(),m=V(),B&&B.c(),N(n,"class","jb-feature-toggle__toggle"),N(a,"class","jb-feature-toggle__text"),N(u,"class","jb-feature-toggle__content"),N(i,"class","jb-feature-toggle__content"),N(e,"class","jb-feature-toggle")},m(t,r){C(t,e,r),j(e,n),Et(o,n,null),j(e,s),j(e,i),v&&v.m(i,null),j(i,c),j(i,a),k&&k.m(a,null),j(i,l),j(i,u),S&&S.m(u,null),j(u,p),E&&E.m(u,null),j(u,m),B&&B.m(u,null),$=!0},p(t,[e]){const n={};var s;1&e&&(n.id=`jb-feature-toggle-${t[0]}`),8&e&&(n.checked=t[3]),!r&&4&e&&(r=!0,n.disabled=t[2],s=()=>r=!1,it.push(s)),o.$set(n),v&&v.p&&(!$||64&e)&&f(v,w,t,t[6],$?h(w,t[6],e,Xr):g(t[6]),Kr),k&&k.p&&(!$||64&e)&&f(k,y,t,t[6],$?h(y,t[6],e,Yr):g(t[6]),Gr),S&&S.p&&(!$||64&e)&&f(S,x,t,t[6],$?h(x,t[6],e,null):g(t[6]),null),t[1]?E?(E.p(t,e),2&e&&wt(E,1)):(E=Qr(t),E.c(),wt(E,1),E.m(u,m)):E&&(bt(),vt(E,1,1,(()=>{E=null})),_t()),t[3]?B?(B.p(t,e),8&e&&wt(B,1)):(B=Zr(t),B.c(),wt(B,1),B.m(u,null)):B&&(bt(),vt(B,1,1,(()=>{B=null})),_t())},i(t){$||(wt(o.$$.fragment,t),wt(v,t),wt(k,t),wt(S,t),wt(E),wt(B),$=!0)},o(t){vt(o.$$.fragment,t),vt(v,t),vt(k,t),vt(S,t),vt(E),vt(B),$=!1},d(t){t&&P(e),Ct(o),v&&v.d(t),k&&k.d(t),S&&S.d(t),E&&E.d(),B&&B.d()}}}function es(t,e,n){let o,{$$slots:r={},$$scope:s}=e,{slug:i}=e;const c=et(),a=Dt(wn,(t=>t[i]&&t[i].enabled));u(t,a,(t=>n(3,o=t)));let l=null,d=!1;return tt((async()=>{o&&c("mountEnabled")})),t.$$set=t=>{"slug"in t&&n(0,i=t.slug),"$$scope"in t&&n(6,s=t.$$scope)},[i,l,d,o,a,async function(){if(!d){n(1,l=null),n(2,d=!0);try{await bn(i,!o)&&c("enabled")}catch(t){n(1,l=t)}n(2,d=!1)}},s,r,function(t){d=t,n(2,d)}]}class ns extends zt{constructor(t){super(),Pt(this,t,es,ts,a,{slug:0})}}function os(n){let o;return{c(){o=L("h3"),o.textContent=`${t.__("Optimize CSS Loading","jetpack-boost")}`,N(o,"slot","title")},m(t,e){C(t,o,e)},p:e,d(t){t&&P(o)}}}function rs(n){let o,r,s;return r=new At({props:{template:t.__("Move important styling information to the start of the page, which helps pages display your content sooner, so your users don’t have to wait for the entire page to load. Commonly referred to as <link>Critical CSS</link>.","jetpack-boost"),vars:Jt("https://web.dev/extract-critical-css/")}}),{c(){o=L("p"),St(r.$$.fragment),N(o,"slot","description")},m(t,e){C(t,o,e),Et(r,o,null),s=!0},p:e,i(t){s||(wt(r.$$.fragment,t),s=!0)},o(t){vt(r.$$.fragment,t),s=!1},d(t){t&&P(o),Ct(r)}}}function ss(t){let e,n,o;return n=new Hr({}),{c(){e=L("div"),St(n.$$.fragment),N(e,"slot","meta")},m(t,r){C(t,e,r),Et(n,e,null),o=!0},i(t){o||(wt(n.$$.fragment,t),o=!0)},o(t){vt(n.$$.fragment,t),o=!1},d(t){t&&P(e),Ct(n)}}}function is(n){let o;return{c(){o=L("h3"),o.textContent=`${t.__("Defer Non-Essential JavaScript","jetpack-boost")}`,N(o,"slot","title")},m(t,e){C(t,o,e)},p:e,d(t){t&&P(o)}}}function cs(n){let o,r,s;return r=new At({props:{template:t.__("Run non-essential JavaScript after the page has loaded so that styles and images can load more quickly. Read more on <link>web.dev</link>.","jetpack-boost"),vars:Jt("https://web.dev/efficiently-load-third-party-javascript/")}}),{c(){o=L("p"),St(r.$$.fragment),N(o,"slot","description")},m(t,e){C(t,o,e),Et(r,o,null),s=!0},p:e,i(t){s||(wt(r.$$.fragment,t),s=!0)},o(t){vt(r.$$.fragment,t),s=!1},d(t){t&&P(o),Ct(r)}}}function as(n){let o;return{c(){o=L("h3"),o.textContent=`${t.__("Lazy Image Loading","jetpack-boost")}`,N(o,"slot","title")},m(t,e){C(t,o,e)},p:e,d(t){t&&P(o)}}}function ls(n){let o,r,s;return r=new At({props:{template:t.__("Improve page loading speed by only loading images when they are required. Read more on <link>web.dev</link>.","jetpack-boost"),vars:Jt("https://web.dev/browser-level-image-lazy-loading/")}}),{c(){o=L("p"),St(r.$$.fragment),N(o,"slot","description")},m(t,e){C(t,o,e),Et(r,o,null),s=!0},p:e,i(t){s||(wt(r.$$.fragment,t),s=!0)},o(t){vt(r.$$.fragment,t),s=!1},d(t){t&&P(o),Ct(r)}}}function us(t){let e,n,o,r,s,i,c;return n=new ns({props:{slug:"critical-css",$$slots:{meta:[ss],description:[rs],title:[os]},$$scope:{ctx:t}}}),n.$on("enabled",bo),n.$on("mountEnabled",bo),r=new ns({props:{slug:"render-blocking-js",$$slots:{description:[cs],title:[is]},$$scope:{ctx:t}}}),i=new ns({props:{slug:"lazy-images",$$slots:{description:[ls],title:[as]},$$scope:{ctx:t}}}),{c(){e=L("div"),St(n.$$.fragment),o=V(),St(r.$$.fragment),s=V(),St(i.$$.fragment),N(e,"class","jb-container--narrow")},m(t,a){C(t,e,a),Et(n,e,null),j(e,o),Et(r,e,null),j(e,s),Et(i,e,null),c=!0},p(t,[e]){const o={};1&e&&(o.$$scope={dirty:e,ctx:t}),n.$set(o);const s={};1&e&&(s.$$scope={dirty:e,ctx:t}),r.$set(s);const c={};1&e&&(c.$$scope={dirty:e,ctx:t}),i.$set(c)},i(t){c||(wt(n.$$.fragment,t),wt(r.$$.fragment,t),wt(i.$$.fragment,t),c=!0)},o(t){vt(n.$$.fragment,t),vt(r.$$.fragment,t),vt(i.$$.fragment,t),c=!1},d(t){t&&P(e),Ct(n),Ct(r),Ct(i)}}}class ds extends zt{constructor(t){super(),Pt(this,t,null,us,a,{})}}function ps(t){let n,o,r;return o=new ds({}),{c(){n=L("div"),St(o.$$.fragment),N(n,"class","jb-section jb-section--main")},m(t,e){C(t,n,e),Et(o,n,null),r=!0},p:e,i(t){r||(wt(o.$$.fragment,t),r=!0)},o(t){vt(o.$$.fragment,t),r=!1},d(t){t&&P(n),Ct(o)}}}function hs(t){let e,n,o;var r=t[0];return r&&(n=new r({})),{c(){e=L("div"),n&&St(n.$$.fragment),N(e,"class","jb-section jb-section--subpage")},m(t,r){C(t,e,r),n&&Et(n,e,null),o=!0},p(t,o){if(r!==(r=t[0])){if(n){bt();const t=n;vt(t.$$.fragment,1,0,(()=>{Ct(t,1)})),_t()}r?(n=new r({}),St(n.$$.fragment),wt(n.$$.fragment,1),Et(n,e,null)):n=null}},i(t){o||(n&&wt(n.$$.fragment,t),o=!0)},o(t){n&&vt(n.$$.fragment,t),o=!1},d(t){t&&P(e),n&&Ct(n)}}}function fs(t){let e,n,o,r,s,i,c,a,l;n=new Dn({});const u=[hs,ps],d=[];function p(t,e){return t[0]?0:1}return r=p(t),s=d[r]=u[r](t),a=new Se({}),{c(){e=L("div"),St(n.$$.fragment),o=V(),s.c(),i=V(),c=L("div"),St(a.$$.fragment),N(e,"class","jb-section--alt jb-section--scores"),N(c,"class","jb-section--alt")},m(t,s){C(t,e,s),Et(n,e,null),C(t,o,s),d[r].m(t,s),C(t,i,s),C(t,c,s),Et(a,c,null),l=!0},p(t,[e]){let n=r;r=p(t),r===n?d[r].p(t,e):(bt(),vt(d[n],1,1,(()=>{d[n]=null})),_t(),s=d[r],s?s.p(t,e):(s=d[r]=u[r](t),s.c()),wt(s,1),s.m(i.parentNode,i))},i(t){l||(wt(n.$$.fragment,t),wt(s),wt(a.$$.fragment,t),l=!0)},o(t){vt(n.$$.fragment,t),vt(s),vt(a.$$.fragment,t),l=!1},d(t){t&&P(e),Ct(n),t&&P(o),d[r].d(t),t&&P(i),t&&P(c),Ct(a)}}}function gs(t,e,n){let o;const r={"#critical-css-advanced":$r},s=Dt(Gn,(t=>r[t]));return u(t,s,(t=>n(0,o=t))),[o,s]}class ms extends zt{constructor(t){super(),Pt(this,t,gs,fs,a,{})}}function $s(t){let n,r,s,i,c,a,l=[{width:"177"},{height:"7"},{fill:"none"},{xmlns:"http://www.w3.org/2000/svg"},t[0]],u={};for(let t=0;t<l.length;t+=1)u=o(u,l[t]);return{c(){n=M("svg"),r=M("g"),s=M("path"),i=M("defs"),c=M("clipPath"),a=M("path"),this.h()},l(t){n=H(t,"svg",{width:!0,height:!0,fill:!0,xmlns:!0});var e=J(n);r=H(e,"g",{"clip-path":!0,fill:!0,"fill-opacity":!0});var o=J(r);s=H(o,"path",{d:!0}),J(s).forEach(P),o.forEach(P),i=H(e,"defs",{});var l=J(i);c=H(l,"clipPath",{id:!0});var u=J(c);a=H(u,"path",{fill:!0,d:!0}),J(a).forEach(P),u.forEach(P),l.forEach(P),e.forEach(P),this.h()},h(){N(s,"d","M59.878 7c-2.38 0-3.909-1.668-3.909-3.39v-.22c0-1.76 1.548-3.39 3.909-3.39 2.379 0 3.927 1.63 3.927 3.39v.22c0 1.722-1.548 3.39-3.927 3.39zm2.662-3.592c0-1.264-.944-2.382-2.662-2.382-1.719 0-2.644 1.118-2.644 2.382v.165c0 1.265.944 2.4 2.644 2.4 1.7 0 2.662-1.135 2.662-2.4v-.165zM33.045 6.743l-.887-1.612H28.21l-.85 1.612H26.04L29.646.238h1.039l3.682 6.505h-1.322zm-2.889-5.24l-1.454 2.73h2.965l-1.511-2.73zM40.107 7c-2.398 0-3.53-1.264-3.53-2.969V.238h1.245v3.83c0 1.21.813 1.924 2.36 1.924 1.587 0 2.248-.715 2.248-1.924V.238h1.265v3.793C43.695 5.644 42.638 7 40.107 7zM50.72 1.246v5.497h-1.266V1.246h-2.926V.238h7.118v1.008H50.72zm24.302 5.497V1.594l-.34.568-2.814 4.581h-.623l-2.776-4.58-.34-.569v5.15h-1.227V.237h1.737l2.644 4.471.321.55.321-.55L74.55.24h1.718v6.504h-1.246zm10.782 0l-.887-1.612H80.97l-.85 1.612h-1.322L82.425.238h1.039l3.682 6.505h-1.34zm-2.889-5.24l-1.454 2.73h2.965l-1.511-2.73zm9.31-.257v5.497h-1.266V1.246h-2.927V.238h7.12v1.008h-2.928zm9.233 0v5.497h-1.265V1.246h-2.927V.238h7.119v1.008h-2.927zm6.043 5.497v-5.9c.509 0 .698-.257.698-.623h.529v6.505l-1.227.018zm11.084-4.672c-.604-.532-1.492-1.045-2.682-1.045-1.793 0-2.794 1.191-2.794 2.437v.129c0 1.227 1.019 2.382 2.889 2.382 1.114 0 2.039-.513 2.625-1.045l.755.77c-.737.696-1.983 1.301-3.456 1.301-2.53 0-4.078-1.594-4.078-3.353v-.22c0-1.76 1.68-3.427 4.135-3.427 1.416 0 2.7.568 3.399 1.301l-.793.77zm-57.876.201c.226.147.283.44.15.66l-1.151 1.722a.501.501 0 01-.68.147.486.486 0 01-.151-.66l1.152-1.722a.485.485 0 01.68-.147zM7.081 6.725l-.887-1.63H2.209l-.868 1.63H0L3.663.147h1.058l3.72 6.578H7.08zM4.154 1.43L2.681 4.196h3.003L4.154 1.43zm11.481 5.296l-4.4-4.398-.434-.458v4.875H9.536V.147h1.227l4.268 4.398.434.476V.147h1.265v6.578h-1.095zM135.938 6.78l-.907-1.63h-3.984l-.868 1.63h-1.341L132.52.183h1.058l3.738 6.597h-1.378zm-2.927-5.314l-1.473 2.767h3.003l-1.53-2.767zm5.401 5.314V.183h1.284V6.78h-1.284zm9.063 0c-.34 0-.491-.458-.547-1.063l-.038-.678c-.038-.66-.321-.934-1.586-.934h-2.417V6.78h-1.265V.183h3.701c2.039 0 2.964.788 2.964 1.814 0 .715-.377 1.411-1.699 1.65 1.322.091 1.605.678 1.624 1.447l.019.55c.019.458.094.788.415 1.118v.018h-1.171zm-.472-4.618c0-.476-.396-.934-1.491-.934h-2.606v1.979h2.719c.944 0 1.378-.44 1.378-.953v-.092zm3.078 4.618V.183h1.284v5.57h5.325V6.78h-6.609zm7.912 0V.183h1.284V6.78h-1.284zm9.347 0l-4.418-4.416-.435-.458V6.78h-1.284V.183h1.228l4.286 4.416.434.477V.183h1.284V6.78h-1.095zm3.04 0V.183h6.175V1.21h-4.91v1.686h3.777v1.008h-3.777v1.85h4.91V6.78h-6.175z"),N(r,"clip-path","url(#footer-automattic_svg__clip0)"),N(r,"fill","#000"),N(r,"fill-opacity","0.8"),N(a,"fill","#fff"),N(a,"d","M0 0h176.556v7H0z"),N(c,"id","footer-automattic_svg__clip0"),A(n,u)},m(t,e){B(t,n,e),E(n,r),E(r,s),E(n,i),E(i,c),E(c,a)},p(t,[e]){A(n,u=xt(l,[{width:"177"},{height:"7"},{fill:"none"},{xmlns:"http://www.w3.org/2000/svg"},1&e&&t[0]]))},i:e,o:e,d(t){t&&P(n)}}}function bs(t,e,n){return t.$$set=t=>{n(0,e=o(o({},e),m(t)))},[e=m(e)]}class _s extends zt{constructor(t){super(),Pt(this,t,bs,$s,a,{})}}function ws(t){let n,r,s=[{xmlns:"http://www.w3.org/2000/svg"},{width:"16"},{height:"16"},{fill:"none"},t[0]],i={};for(let t=0;t<s.length;t+=1)i=o(i,s[t]);return{c(){n=M("svg"),r=M("path"),this.h()},l(t){n=H(t,"svg",{xmlns:!0,width:!0,height:!0,fill:!0});var e=J(n);r=H(e,"path",{d:!0,fill:!0,"fill-opacity":!0}),J(r).forEach(P),e.forEach(P),this.h()},h(){N(r,"d","M8 0C3.588 0 0 3.588 0 8s3.588 8 8 8 8-3.588 8-8-3.588-8-8-8zm-.412 9.328H3.603l3.985-7.755v7.755zm.809 5.084V6.656h3.985l-3.985 7.756z"),N(r,"fill","#000"),N(r,"fill-opacity","0.7"),A(n,i)},m(t,e){B(t,n,e),E(n,r)},p(t,[e]){A(n,i=xt(s,[{xmlns:"http://www.w3.org/2000/svg"},{width:"16"},{height:"16"},{fill:"none"},1&e&&t[0]]))},i:e,o:e,d(t){t&&P(n)}}}function vs(t,e,n){return t.$$set=t=>{n(0,e=o(o({},e),m(t)))},[e=m(e)]}class ys extends zt{constructor(t){super(),Pt(this,t,vs,ws,a,{})}}function ks(n){let o,r,s,i,c,a,l,u,d,p=t.__("Jetpack Boost","jetpack-boost")+"";return s=new ys({}),u=new _s({}),{c(){o=L("footer"),r=L("div"),St(s.$$.fragment),i=V(),c=T(p),a=V(),l=L("div"),St(u.$$.fragment),N(r,"class","jb-signature--jetpack"),N(l,"class","jb-signature--automattic"),N(o,"class","jb-settings-footer")},m(t,e){C(t,o,e),j(o,r),Et(s,r,null),j(r,i),j(r,c),j(o,a),j(o,l),Et(u,l,null),d=!0},p:e,i(t){d||(wt(s.$$.fragment,t),wt(u.$$.fragment,t),d=!0)},o(t){vt(s.$$.fragment,t),vt(u.$$.fragment,t),d=!1},d(t){t&&P(o),Ct(s),Ct(u)}}}class js extends zt{constructor(t){super(),Pt(this,t,null,ks,a,{})}}function xs(t){let n,r,s,i,c=[{xmlns:"http://www.w3.org/2000/svg"},{width:"176"},{height:"32"},{fill:"none"},t[0]],a={};for(let t=0;t<c.length;t+=1)a=o(a,c[t]);return{c(){n=M("svg"),r=M("path"),s=M("path"),i=M("path"),this.h()},l(t){n=H(t,"svg",{xmlns:!0,width:!0,height:!0,fill:!0});var e=J(n);r=H(e,"path",{d:!0,fill:!0}),J(r).forEach(P),s=H(e,"path",{d:!0,fill:!0}),J(s).forEach(P),i=H(e,"path",{d:!0,fill:!0}),J(i).forEach(P),e.forEach(P),this.h()},h(){N(r,"d","M131.517 10.878c0 .656-.149 1.257-.446 1.804-.3.547-.79 1-1.477 1.364v.045c.381.128.73.292 1.047.492a3.205 3.205 0 011.339 1.646c.126.347.188.735.188 1.164 0 .37-.059.766-.177 1.188a3.68 3.68 0 01-.624 1.228 4.8 4.8 0 01-1.19 1.091c-.495.332-1.121.596-1.876.792-.191.045-.398.087-.624.125-.225.037-.475.07-.75.096-.275.026-.58.045-.915.056-.336.01-.713.016-1.133.016h-4.45V6.852h5.32c1.137 0 2.053.113 2.747.34.52.165.969.382 1.35.65.381.268.697.566.944.894a3.513 3.513 0 01.727 2.142zm-5.756 2.206c.762 0 1.33-.075 1.705-.226.42-.173.719-.413.899-.718.178-.306.268-.651.268-1.035 0-.4-.103-.756-.31-1.069-.205-.313-.556-.545-1.051-.696a3.915 3.915 0 00-.72-.13c-.276-.027-.615-.04-1.02-.04h-2.3v3.914h2.529zm-2.529 2.318v4.265h1.83a17.1 17.1 0 001.26-.04c.35-.026.652-.07.904-.13.39-.083.713-.194.973-.334.259-.14.469-.298.63-.476.16-.176.274-.373.343-.588.07-.215.102-.442.102-.684 0-.422-.117-.791-.354-1.108-.236-.317-.606-.554-1.11-.713a4.023 4.023 0 00-.778-.146c-.298-.03-.679-.046-1.144-.046h-2.656zM144.904 16.511c0 .86-.13 1.644-.39 2.353a5.163 5.163 0 01-1.116 1.821 4.945 4.945 0 01-1.756 1.17c-.686.276-1.453.413-2.3.413-.87 0-1.65-.138-2.34-.413a4.87 4.87 0 01-1.757-1.17 5.104 5.104 0 01-1.104-1.821c-.255-.708-.383-1.494-.383-2.353 0-.86.13-1.643.389-2.353a5.152 5.152 0 011.116-1.82 4.942 4.942 0 011.756-1.171c.687-.276 1.453-.413 2.3-.413.87 0 1.65.138 2.34.413.691.276 1.276.665 1.757 1.17.48.505.848 1.112 1.104 1.821.255.71.384 1.494.384 2.353zm-2.804 0c0-.58-.069-1.093-.206-1.539a3.308 3.308 0 00-.573-1.12 2.328 2.328 0 00-.882-.678 2.753 2.753 0 00-1.12-.226 2.68 2.68 0 00-1.105.226c-.338.152-.63.378-.874.679a3.318 3.318 0 00-.573 1.12 5.241 5.241 0 00-.206 1.538c0 .58.07 1.093.206 1.539.137.444.33.816.578 1.114.248.298.542.524.881.678.339.155.71.232 1.116.232.404 0 .774-.077 1.11-.232a2.42 2.42 0 00.869-.678 3.25 3.25 0 00.573-1.114c.137-.446.206-.959.206-1.539zM157.476 16.511c0 .86-.129 1.644-.389 2.353a5.163 5.163 0 01-1.116 1.821 4.952 4.952 0 01-1.756 1.17c-.686.276-1.453.413-2.3.413-.87 0-1.65-.138-2.34-.413a4.87 4.87 0 01-1.757-1.17 5.104 5.104 0 01-1.104-1.821c-.255-.708-.383-1.494-.383-2.353 0-.86.13-1.643.389-2.353a5.152 5.152 0 011.116-1.82 4.942 4.942 0 011.756-1.171c.687-.276 1.453-.413 2.3-.413.87 0 1.65.138 2.34.413.691.276 1.276.665 1.757 1.17.48.505.848 1.112 1.104 1.821.255.71.383 1.494.383 2.353zm-2.804 0c0-.58-.07-1.093-.206-1.539a3.308 3.308 0 00-.573-1.12 2.334 2.334 0 00-.881-.678 2.753 2.753 0 00-1.122-.226 2.68 2.68 0 00-1.104.226c-.339.152-.631.378-.875.679a3.317 3.317 0 00-.572 1.12c-.137.444-.206.957-.206 1.538 0 .58.069 1.093.206 1.539.138.444.33.816.578 1.114.248.298.541.524.88.678.34.155.712.232 1.116.232a2.63 2.63 0 001.111-.232c.336-.154.625-.38.87-.678a3.25 3.25 0 00.572-1.114c.138-.446.206-.959.206-1.539zM164.359 18.806a.842.842 0 00-.2-.576 1.592 1.592 0 00-.532-.38 4.742 4.742 0 00-.762-.266 42.567 42.567 0 00-.898-.226 11.73 11.73 0 01-1.144-.367 3.471 3.471 0 01-.966-.548c-.28-.227-.5-.511-.664-.854-.164-.343-.247-.763-.247-1.261 0-.611.11-1.14.332-1.59.22-.448.52-.819.898-1.114a3.836 3.836 0 011.316-.656 5.718 5.718 0 011.585-.215 10.58 10.58 0 013.524.588v2.184a12.7 12.7 0 00-1.643-.418c-.286-.053-.57-.096-.853-.13a6.67 6.67 0 00-.801-.05c-.32 0-.591.029-.812.09-.222.06-.4.14-.538.242a.917.917 0 00-.39.763c0 .25.068.453.2.612.134.158.318.286.554.385.237.098.485.178.745.243l.755.187c.382.09.762.2 1.144.327.382.128.725.308 1.03.538.305.23.555.528.75.893.194.366.291.832.291 1.396 0 .62-.117 1.158-.355 1.618-.236.46-.566.842-.989 1.148-.423.305-.931.531-1.523.678-.59.147-1.24.22-1.95.22a9.935 9.935 0 01-1.893-.164c-.56-.109-1.025-.247-1.391-.412v-2.16a8.79 8.79 0 001.648.447c.503.08.973.119 1.408.119.335 0 .648-.024.938-.074.29-.048.539-.126.75-.232.21-.105.376-.239.497-.401a.928.928 0 00.186-.584zM176 21.973c-.306.09-.67.163-1.093.215a9.57 9.57 0 01-1.184.08c-.93 0-1.692-.149-2.282-.447-.592-.298-1.01-.726-1.254-1.284-.175-.4-.264-.942-.264-1.629v-5.677h-2.07v-2.206h2.07V7.96h2.713v3.066h3.203v2.206h-3.203v5.327c0 .423.064.736.194.94.228.347.682.52 1.361.52.312 0 .623-.024.933-.074.309-.049.6-.112.874-.187v2.215H176z"),N(r,"fill","#787C82"),N(s,"d","M39.777 26.842c-.46-.695-.887-1.388-1.316-2.052 2.265-1.359 3.03-2.445 3.03-4.498V8.429h-2.663V6.167h5.662v13.522c0 3.441-1.01 5.372-4.713 7.153zM63.494 18.753c0 1.146.826 1.267 1.377 1.267s1.347-.181 1.958-.362v2.113c-.857.272-1.744.483-2.968.483-1.47 0-3.183-.544-3.183-3.08v-6.218h-1.56v-2.143h1.56V7.645h2.816v3.169h3.55v2.143h-3.55v5.796zM69.37 27.898V10.783h2.693v1.026c1.07-.815 2.264-1.328 3.733-1.328 2.54 0 4.56 1.751 4.56 5.524 0 3.743-2.203 6.218-5.845 6.218-.887 0-1.59-.12-2.326-.272v5.916H69.37v.03zm5.691-15.122c-.826 0-1.867.392-2.846 1.238v5.826c.611.12 1.255.21 2.111.21 1.989 0 3.122-1.238 3.122-3.833 0-2.385-.827-3.441-2.387-3.441zM91.432 21.982h-2.631v-1.238h-.062c-.918.694-2.05 1.449-3.733 1.449-1.469 0-3.06-1.057-3.06-3.2 0-2.867 2.478-3.41 4.223-3.652l2.478-.332v-.331c0-1.51-.612-1.992-2.051-1.992-.704 0-2.356.21-3.703.754l-.244-2.234c1.224-.422 2.907-.724 4.315-.724 2.754 0 4.529 1.087 4.529 4.317v7.183h-.061zm-2.815-5.222l-2.327.362c-.704.09-1.438.513-1.438 1.54 0 .905.52 1.418 1.285 1.418.827 0 1.714-.483 2.478-1.026V16.76h.002zM103.061 21.62c-1.162.392-2.203.634-3.52.634-4.222 0-5.906-2.385-5.906-5.855 0-3.652 2.327-5.917 6.09-5.917 1.407 0 2.264.242 3.212.544v2.354c-.826-.302-2.02-.633-3.182-.633-1.714 0-3.182.905-3.182 3.5 0 2.868 1.468 3.744 3.335 3.744.887 0 1.867-.182 3.182-.695v2.324h-.029zM108.385 15.614c.246-.272.43-.544 3.978-4.8h3.672l-4.59 5.313 5.018 5.885h-3.672l-4.376-5.312v5.312h-2.814V6.166h2.816v9.448h-.032zM57.006 21.62a13.455 13.455 0 01-4.193.634c-3.611 0-5.845-1.78-5.845-5.947 0-3.049 1.898-5.826 5.539-5.826 3.61 0 4.866 2.475 4.866 4.83 0 .784-.062 1.207-.092 1.659H50c.061 2.444 1.469 3.018 3.58 3.018 1.162 0 2.203-.271 3.397-.694v2.324h.03v.002zm-2.57-6.49c0-1.359-.46-2.536-1.958-2.536-1.407 0-2.264.996-2.448 2.536h4.406z"),N(s,"fill","#000"),N(i,"d","M15.714 0C7.047 0 0 6.951 0 15.5S7.047 31 15.714 31c8.667 0 15.715-6.951 15.715-15.5S24.38 0 15.714 0zm-.81 18.073H7.078l7.828-15.026v15.026zm1.59 9.85V12.898h7.827l-7.827 15.027z"),N(i,"fill","#069E08"),A(n,a)},m(t,e){B(t,n,e),E(n,r),E(n,s),E(n,i)},p(t,[e]){A(n,a=xt(c,[{xmlns:"http://www.w3.org/2000/svg"},{width:"176"},{height:"32"},{fill:"none"},1&e&&t[0]]))},i:e,o:e,d(t){t&&P(n)}}}function Ss(t,e,n){return t.$$set=t=>{n(0,e=o(o({},e),m(t)))},[e=m(e)]}class Es extends zt{constructor(t){super(),Pt(this,t,Ss,xs,a,{})}}function Cs(t){let n,o,r,s;return r=new Es({}),{c(){n=L("div"),o=L("div"),St(r.$$.fragment),N(o,"class","jb-settings-header__logo"),N(n,"class","jb-settings-header")},m(t,e){C(t,n,e),j(n,o),Et(r,o,null),s=!0},p:e,i(t){s||(wt(r.$$.fragment,t),s=!0)},o(t){vt(r.$$.fragment,t),s=!1},d(t){t&&P(n),Ct(r)}}}class Bs extends zt{constructor(t){super(),Pt(this,t,null,Cs,a,{})}}function Ps(t){let e,n;return e=new je({}),{c(){St(e.$$.fragment)},m(t,o){Et(e,t,o),n=!0},i(t){n||(wt(e.$$.fragment,t),n=!0)},o(t){vt(e.$$.fragment,t),n=!1},d(t){Ct(e,t)}}}function zs(t){let e,n;return e=new ms({}),{c(){St(e.$$.fragment)},m(t,o){Et(e,t,o),n=!0},i(t){n||(wt(e.$$.fragment,t),n=!0)},o(t){vt(e.$$.fragment,t),n=!1},d(t){Ct(e,t)}}}function Ls(t){let e,n,o,r,s,i,c,a,l,u;r=new Bs({});const d=[zs,Ps],p=[];function h(t,e){return t[0].connected||!me.site.online?0:1}return i=h(t),c=p[i]=d[i](t),l=new js({}),{c(){e=L("div"),n=L("div"),o=L("div"),St(r.$$.fragment),s=V(),c.c(),a=V(),St(l.$$.fragment),N(o,"class","jb-container"),N(n,"id","jb-settings"),N(n,"class","jb-settings"),N(e,"id","jb-admin-settings")},m(t,c){C(t,e,c),j(e,n),j(n,o),Et(r,o,null),j(n,s),p[i].m(n,null),j(n,a),Et(l,n,null),u=!0},p(t,[e]){let o=i;i=h(t),i!==o&&(bt(),vt(p[o],1,1,(()=>{p[o]=null})),_t(),c=p[i],c||(c=p[i]=d[i](t),c.c()),wt(c,1),c.m(n,a))},i(t){u||(wt(r.$$.fragment,t),wt(c),wt(l.$$.fragment,t),u=!0)},o(t){vt(r.$$.fragment,t),vt(c),vt(l.$$.fragment,t),u=!1},d(t){t&&P(e),Ct(r),p[i].d(),Ct(l)}}}function Ms(t,e,n){let o;return u(t,ne,(t=>n(0,o=t))),[o]}const Ts=document.getElementById("jb-admin-settings");return new class extends zt{constructor(t){super(),Pt(this,t,Ms,Ls,a,{})}}({target:Ts})}(wp.i18n);
app/class-jetpack-boost.php CHANGED
@@ -122,8 +122,9 @@ class Jetpack_Boost {
122
 
123
  $this->register_deactivation_hook();
124
 
125
- if ( class_exists( 'WP_CLI' ) ) {
126
- CLI::register( $this );
 
127
  }
128
 
129
  // Initialize the config module separately.
122
 
123
  $this->register_deactivation_hook();
124
 
125
+ if ( defined( 'WP_CLI' ) && WP_CLI ) {
126
+ $cli_instance = new CLI( $this );
127
+ \WP_CLI::add_command( 'jetpack-boost', $cli_instance );
128
  }
129
 
130
  // Initialize the config module separately.
app/lib/class-cli.php CHANGED
@@ -9,8 +9,10 @@
9
 
10
  namespace Automattic\Jetpack_Boost\Lib;
11
 
 
 
12
  /**
13
- * Class CLI
14
  */
15
  class CLI {
16
 
@@ -32,6 +34,8 @@ class CLI {
32
 
33
  /**
34
  * Reset settings command.
 
 
35
  */
36
  public function reset_settings() {
37
  $this->jetpack_boost->config()->reset();
@@ -39,12 +43,74 @@ class CLI {
39
  }
40
 
41
  /**
42
- * Register CLI commands.
43
  *
44
- * @param \Automattic\Jetpack_Boost\Jetpack_Boost $jetpack_boost Jetpack Boost plugin.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
45
  */
46
- public static function register( $jetpack_boost ) {
47
- $instance = new CLI( $jetpack_boost );
48
- \WP_CLI::add_command( 'jetpack-boost reset-settings', array( $instance, 'reset_settings' ) );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
49
  }
50
  }
9
 
10
  namespace Automattic\Jetpack_Boost\Lib;
11
 
12
+ use Automattic\Jetpack_Boost\Jetpack_Boost;
13
+
14
  /**
15
+ * Control your local Jetpack Boost installation.
16
  */
17
  class CLI {
18
 
34
 
35
  /**
36
  * Reset settings command.
37
+ *
38
+ * @subcommand reset-settings
39
  */
40
  public function reset_settings() {
41
  $this->jetpack_boost->config()->reset();
43
  }
44
 
45
  /**
46
+ * Manage Jetpack Boost Modules
47
  *
48
+ * ## OPTIONS
49
+ *
50
+ * <activate|deactivate>
51
+ * : The action to take.
52
+ * ---
53
+ * options:
54
+ * - activate
55
+ * - deactivate
56
+ * ---
57
+ *
58
+ * [<module_slug>]
59
+ * : The slug of the module to perform an action on.
60
+ *
61
+ * ## EXAMPLES
62
+ *
63
+ * wp jetpack module activate critical-css
64
+ * wp jetpack module deactivate critical-css
65
+ *
66
+ * @param array $args Command arguments.
67
  */
68
+ public function module( $args ) {
69
+ $action = isset( $args[0] ) ? $args[0] : null;
70
+
71
+ if ( ! $action ) {
72
+ \WP_CLI::error( __( 'Please specify a valid action.', 'jetpack-boost' ) );
73
+ }
74
+
75
+ $module_slug = null;
76
+
77
+ if ( isset( $args[1] ) ) {
78
+ $module_slug = $args[1];
79
+ if ( ! in_array( $module_slug, Jetpack_Boost::AVAILABLE_MODULES_DEFAULT, true ) ) {
80
+ \WP_CLI::error(
81
+ /* translators: %s refers to the module slug like 'critical-css' */
82
+ sprintf( __( "The '%s' module slug is invalid", 'jetpack-boost' ), $module_slug )
83
+ );
84
+ }
85
+ } else {
86
+ \WP_CLI::error( __( 'Please specify a valid module.', 'jetpack-boost' ) );
87
+ }
88
+
89
+ switch ( $action ) {
90
+ case 'activate':
91
+ $this->set_module_status( $module_slug, 'active' );
92
+ break;
93
+ case 'deactivate':
94
+ $this->set_module_status( $module_slug, 'inactive' );
95
+ break;
96
+ }
97
+ }
98
+
99
+ /**
100
+ * Set a module status.
101
+ *
102
+ * @param string $module_slug Module slug.
103
+ * @param string $status Module status.
104
+ */
105
+ private function set_module_status( $module_slug, $status ) {
106
+ $enable = 'active' === $status;
107
+
108
+ $this->jetpack_boost->set_module_status( $enable, $module_slug );
109
+ $status_label = $enable ? __( 'activated', 'jetpack-boost' ) : __( 'deactivated', 'jetpack-boost' );
110
+
111
+ /* translators: The %1$s refers to the module slug, %2$s refers to the module state (either activated or deactivated)*/
112
+ \WP_CLI::success(
113
+ sprintf( __( "'%1\$s' has been %2\$s.", 'jetpack-boost' ), $module_slug, $status_label )
114
+ );
115
  }
116
  }
app/lib/class-speed-score-request.php CHANGED
@@ -25,6 +25,13 @@ class Speed_Score_Request extends Cacheable {
25
  */
26
  private $url;
27
 
 
 
 
 
 
 
 
28
  /**
29
  * When the Speed Scores request was created, in seconds since epoch.
30
  *
@@ -50,17 +57,19 @@ class Speed_Score_Request extends Cacheable {
50
  * Constructor.
51
  *
52
  * @param string $url The URL to get the Speed Scores for.
 
53
  * @param null $created When the Speed Scores request was created, in seconds since epoch.
54
  * @param string $status Status of the Speed Scores request.
55
  * @param null $error The Speed Scores error.
56
  */
57
- public function __construct( $url, $created = null, $status = 'pending', $error = null ) {
58
  $this->set_cache_id( self::generate_cache_id_from_url( $url ) );
59
 
60
- $this->url = $url;
61
- $this->created = is_null( $created ) ? microtime( true ) : $created;
62
- $this->status = $status;
63
- $this->error = $error;
 
64
  }
65
 
66
  /**
@@ -81,11 +90,12 @@ class Speed_Score_Request extends Cacheable {
81
  */
82
  public function jsonSerialize() {
83
  return array(
84
- 'id' => $this->get_cache_id(),
85
- 'url' => $this->url,
86
- 'created' => $this->created,
87
- 'status' => $this->status,
88
- 'error' => $this->error,
 
89
  );
90
  }
91
 
@@ -99,6 +109,7 @@ class Speed_Score_Request extends Cacheable {
99
  public static function jsonUnserialize( $data ) {
100
  $object = new Speed_Score_Request(
101
  $data['url'],
 
102
  $data['created'],
103
  $data['status'],
104
  $data['error']
@@ -133,8 +144,9 @@ class Speed_Score_Request extends Cacheable {
133
  sprintf( '/sites/%d/jetpack-boost/speed-scores', $blog_id ),
134
  null,
135
  array(
136
- 'request_id' => $this->get_cache_id(),
137
- 'url' => Url::normalize( $this->url ),
 
138
  )
139
  );
140
 
25
  */
26
  private $url;
27
 
28
+ /**
29
+ * Active Jetpack Boost modules.
30
+ *
31
+ * @var array $active_modules Active modules.
32
+ */
33
+ private $active_modules;
34
+
35
  /**
36
  * When the Speed Scores request was created, in seconds since epoch.
37
  *
57
  * Constructor.
58
  *
59
  * @param string $url The URL to get the Speed Scores for.
60
+ * @param array $active_modules Active modules.
61
  * @param null $created When the Speed Scores request was created, in seconds since epoch.
62
  * @param string $status Status of the Speed Scores request.
63
  * @param null $error The Speed Scores error.
64
  */
65
+ public function __construct( $url, $active_modules = array(), $created = null, $status = 'pending', $error = null ) {
66
  $this->set_cache_id( self::generate_cache_id_from_url( $url ) );
67
 
68
+ $this->url = $url;
69
+ $this->active_modules = $active_modules;
70
+ $this->created = is_null( $created ) ? microtime( true ) : $created;
71
+ $this->status = $status;
72
+ $this->error = $error;
73
  }
74
 
75
  /**
90
  */
91
  public function jsonSerialize() {
92
  return array(
93
+ 'id' => $this->get_cache_id(),
94
+ 'url' => $this->url,
95
+ 'active_modules' => $this->active_modules,
96
+ 'created' => $this->created,
97
+ 'status' => $this->status,
98
+ 'error' => $this->error,
99
  );
100
  }
101
 
109
  public static function jsonUnserialize( $data ) {
110
  $object = new Speed_Score_Request(
111
  $data['url'],
112
+ $data['active_modules'],
113
  $data['created'],
114
  $data['status'],
115
  $data['error']
144
  sprintf( '/sites/%d/jetpack-boost/speed-scores', $blog_id ),
145
  null,
146
  array(
147
+ 'request_id' => $this->get_cache_id(),
148
+ 'url' => Url::normalize( $this->url ),
149
+ 'active_modules' => $this->active_modules,
150
  )
151
  );
152
 
app/lib/class-speed-score.php CHANGED
@@ -100,7 +100,8 @@ class Speed_Score {
100
  $score_request = $this->get_score_request_by_url( $url );
101
  if ( empty( $score_request ) || ! $score_request->is_pending() ) {
102
  // Create and store the Speed Score request.
103
- $score_request = new Speed_Score_Request( $url );
 
104
  $score_request->store( 1800 ); // Keep the request for 30 minutes even if no one access the results.
105
 
106
  // Send the request.
100
  $score_request = $this->get_score_request_by_url( $url );
101
  if ( empty( $score_request ) || ! $score_request->is_pending() ) {
102
  // Create and store the Speed Score request.
103
+ $active_modules = array_keys( $this->jetpack_boost->get_active_modules() );
104
+ $score_request = new Speed_Score_Request( $url, $active_modules );
105
  $score_request->store( 1800 ); // Keep the request for 30 minutes even if no one access the results.
106
 
107
  // Send the request.
app/modules/critical-css/class-critical-css.php CHANGED
@@ -64,13 +64,6 @@ class Critical_CSS extends Module {
64
  'singular_product',
65
  );
66
 
67
- /**
68
- * True if this pageload is generating Critical CSS.
69
- *
70
- * @var bool
71
- */
72
- public $generating_critical_css;
73
-
74
  /**
75
  * List of all the Critical CSS Types.
76
  *
@@ -146,15 +139,13 @@ class Critical_CSS extends Module {
146
 
147
  if ( $this->should_display_critical_css() ) {
148
  Admin_Bar_Css_Compat::init();
 
149
  add_action( 'wp_head', array( $this, 'display_critical_css' ), 0 );
150
  add_filter( 'style_loader_tag', array( $this, 'asynchronize_stylesheets' ), 10, 4 );
151
  add_action( 'wp_footer', array( $this, 'onload_flip_stylesheets' ) );
152
  }
153
 
154
- // Check for the GET parameter indicating this is rendering for CSS generation.
155
- $this->generating_critical_css = $this->check_generate_query();
156
-
157
- if ( $this->generating_critical_css ) {
158
  add_action( 'wp_head', array( $this, 'display_generate_meta' ), 0 );
159
  $this->force_logged_out_render();
160
  }
@@ -449,11 +440,18 @@ class Critical_CSS extends Module {
449
  }
450
 
451
  /**
452
- * Check for GET parameters or Headers indicating the current request is
453
- * generating Critical CSS.
 
454
  * phpcs:disable WordPress.Security.NonceVerification.Recommended
455
  */
456
- public function check_generate_query() {
 
 
 
 
 
 
457
  $generate_nonce = null;
458
  if ( ! empty( $_GET[ self::GENERATE_QUERY_ACTION ] ) ) {
459
  $generate_nonce = sanitize_key(
@@ -465,15 +463,15 @@ class Critical_CSS extends Module {
465
  );
466
  }
467
 
468
- if ( empty( $generate_nonce ) ) {
469
- return false;
470
- }
471
 
472
- if ( ! Nonce::verify( $generate_nonce, self::GENERATE_QUERY_ACTION ) ) {
 
473
  die();
474
  }
475
 
476
- return true;
477
  }
478
  // phpcs:enable WordPress.Security.NonceVerification.Recommended
479
 
@@ -652,26 +650,56 @@ class Critical_CSS extends Module {
652
  * @see style_loader_tag
653
  */
654
  public function asynchronize_stylesheets( $html, $handle, $href, $media ) {
 
655
  if ( function_exists( 'is_amp_endpoint' ) && is_amp_endpoint() ) {
656
  return $html;
657
  }
658
 
 
659
  if ( false === $this->get_critical_css() ) {
660
  return $html;
661
  }
662
 
663
- if ( ! apply_filters( 'jetpack_boost_async_style', true, $handle ) ) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
664
  return $html;
665
  }
666
- $async_media = apply_filters( 'jetpack_boost_async_media', array( 'all', 'screen' ) );
667
 
668
- // Convert stylesheets intended for screens.
669
- if ( in_array( $media, $async_media, true ) ) {
670
- $media_replacement = 'media="not all" onload="this.media=\'all\'"';
671
- $html = preg_replace( '~media=[\'"]?[^\'"\s]+[\'"]?~', $media_replacement, $html );
672
- }
673
 
674
- return $html;
 
 
675
  }
676
 
677
  /**
@@ -679,7 +707,7 @@ class Critical_CSS extends Module {
679
  */
680
  public function should_display_critical_css() {
681
  // Don't display Critical CSS when generating Critical CSS.
682
- if ( $this->generating_critical_css ) {
683
  return false;
684
  }
685
 
@@ -748,6 +776,9 @@ class Critical_CSS extends Module {
748
  if ( 0 !== $current_user_id ) {
749
  // Force current user to 0 to ensure page is rendered as a non-logged-in user.
750
  wp_set_current_user( 0 );
 
 
 
751
  }
752
  }
753
 
@@ -818,8 +849,9 @@ class Critical_CSS extends Module {
818
  // Flip all media="not all" links to media="all".
819
  document.querySelectorAll( 'link' ).forEach(
820
  function( link ) {
821
- if ( link.media === 'not all' ) {
822
- link.media = 'all';
 
823
  }
824
  }
825
  );
@@ -838,7 +870,7 @@ class Critical_CSS extends Module {
838
  // Minified version of footer script. See above comment for unminified version.
839
  ?>
840
  <script>window.addEventListener('load', function() {
841
- document.querySelectorAll('link').forEach(function(e) {'not all' === e.media && (e.media = 'all');});
842
  var e = document.getElementById('jetpack-boost-critical-css');
843
  e && (e.media = 'not all');
844
  });</script>
64
  'singular_product',
65
  );
66
 
 
 
 
 
 
 
 
67
  /**
68
  * List of all the Critical CSS Types.
69
  *
139
 
140
  if ( $this->should_display_critical_css() ) {
141
  Admin_Bar_Css_Compat::init();
142
+
143
  add_action( 'wp_head', array( $this, 'display_critical_css' ), 0 );
144
  add_filter( 'style_loader_tag', array( $this, 'asynchronize_stylesheets' ), 10, 4 );
145
  add_action( 'wp_footer', array( $this, 'onload_flip_stylesheets' ) );
146
  }
147
 
148
+ if ( $this->is_generating_critical_css() ) {
 
 
 
149
  add_action( 'wp_head', array( $this, 'display_generate_meta' ), 0 );
150
  $this->force_logged_out_render();
151
  }
440
  }
441
 
442
  /**
443
+ * Returns true if this pageload is generating Critical CSS, based on GET
444
+ * parameters and headers.
445
+ *
446
  * phpcs:disable WordPress.Security.NonceVerification.Recommended
447
  */
448
+ public function is_generating_critical_css() {
449
+ static $is_generating = null;
450
+ if ( null !== $is_generating ) {
451
+ return $is_generating;
452
+ }
453
+
454
+ // Accept nonce via HTTP headers or GET parameters.
455
  $generate_nonce = null;
456
  if ( ! empty( $_GET[ self::GENERATE_QUERY_ACTION ] ) ) {
457
  $generate_nonce = sanitize_key(
463
  );
464
  }
465
 
466
+ // If GET parameter or header set, we are trying to generate.
467
+ $is_generating = ! empty( $generate_nonce );
 
468
 
469
+ // Die if the nonce is invalid.
470
+ if ( $is_generating && ! Nonce::verify( $generate_nonce, self::GENERATE_QUERY_ACTION ) ) {
471
  die();
472
  }
473
 
474
+ return $is_generating;
475
  }
476
  // phpcs:enable WordPress.Security.NonceVerification.Recommended
477
 
650
  * @see style_loader_tag
651
  */
652
  public function asynchronize_stylesheets( $html, $handle, $href, $media ) {
653
+ // If is AMP, do not alter the stylesheet loading.
654
  if ( function_exists( 'is_amp_endpoint' ) && is_amp_endpoint() ) {
655
  return $html;
656
  }
657
 
658
+ // If there is no critical CSS, do not alter the stylesheet loading.
659
  if ( false === $this->get_critical_css() ) {
660
  return $html;
661
  }
662
 
663
+ $available_methods = array(
664
+ 'async' => 'media="not all" data-media="' . $media . '" onload="this.media=this.dataset.media; delete this.dataset.media; this.removeAttribute( \'onload\' );"',
665
+ 'deferred' => 'media="not all" data-media="' . $media . '"',
666
+ );
667
+
668
+ /**
669
+ * Loading method for stylesheets.
670
+ *
671
+ * Filter the loading method for each stylesheet for the screen with following values:
672
+ * async - Stylesheets are loaded asynchronously.
673
+ * Styles are applied once the stylesheet is loaded completely without render blocking.
674
+ * deferred - Loading of stylesheets are deferred until the window load event.
675
+ * Styles from all the stylesheets are applied at once after the page load.
676
+ *
677
+ * Stylesheet loading behaviour is not altered for any other value such as false or 'default'.
678
+ * Stylesheet loading is instant and the process blocks the page rendering.
679
+ * Eg: add_filter( 'jetpack_boost_async_style', '__return_false' );
680
+ *
681
+ * @see onload_flip_stylesheets for how stylesheets loading is deferred.
682
+ *
683
+ * @param string $handle The style's registered handle.
684
+ * @param string $media The stylesheet's media attribute.
685
+ *
686
+ * @todo Retrieve settings from database, either via auto-configuration or UI option.
687
+ */
688
+ $method = apply_filters( 'jetpack_boost_async_style', 'async', $handle, $media );
689
+
690
+ // If the loading method is not allowed, do not alter the stylesheet loading.
691
+ if ( ! isset( $available_methods[ $method ] ) ) {
692
  return $html;
693
  }
 
694
 
695
+ $html_no_script = '<noscript>' . $html . '</noscript>';
696
+
697
+ // Update the stylesheet markup for allowed methods.
698
+ $html = preg_replace( '~media=(\'[^\']+\')|("[^"]+")~', $available_methods[ $method ], $html );
 
699
 
700
+ // Append to the HTML stylesheet tag the same untouched HTML stylesheet tag within the noscript tag
701
+ // to support the rendering of the stylesheet when JavaScript is disabled.
702
+ return $html_no_script . $html;
703
  }
704
 
705
  /**
707
  */
708
  public function should_display_critical_css() {
709
  // Don't display Critical CSS when generating Critical CSS.
710
+ if ( $this->is_generating_critical_css() ) {
711
  return false;
712
  }
713
 
776
  if ( 0 !== $current_user_id ) {
777
  // Force current user to 0 to ensure page is rendered as a non-logged-in user.
778
  wp_set_current_user( 0 );
779
+
780
+ // Turn off display of admin bar.
781
+ add_filter( 'show_admin_bar', '__return_false', PHP_INT_MAX );
782
  }
783
  }
784
 
849
  // Flip all media="not all" links to media="all".
850
  document.querySelectorAll( 'link' ).forEach(
851
  function( link ) {
852
+ if ( link.media === 'not all' && link.dataset.media ) {
853
+ link.media = link.dataset.media;
854
+ delete link.dataset.media;
855
  }
856
  }
857
  );
870
  // Minified version of footer script. See above comment for unminified version.
871
  ?>
872
  <script>window.addEventListener('load', function() {
873
+ document.querySelectorAll('link').forEach(function(e) {'not all' === e.media && e.dataset.media && (e.media=e.dataset.media,delete e.dataset.media)});
874
  var e = document.getElementById('jetpack-boost-critical-css');
875
  e && (e.media = 'not all');
876
  });</script>
compatibility/elementor.php ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Compatibility functions for Elementor
4
+ *
5
+ * @package automattic/jetpack-boost
6
+ */
7
+
8
+ namespace Automattic\Jetpack_Boost\Compatibility\Elementor;
9
+
10
+ use Elementor\TemplateLibrary\Source_Local;
11
+
12
+ /**
13
+ * Exclude Elementor Library custom post type from the list of post types to get urls from.
14
+ *
15
+ * @param array $post_types Post types.
16
+ */
17
+ function exclude_elementor_library_custom_post_type( $post_types ) {
18
+ if ( isset( $post_types[ Source_Local::CPT ] ) ) {
19
+ unset( $post_types[ Source_Local::CPT ] );
20
+ }
21
+
22
+ return $post_types;
23
+ }
24
+
25
+ add_filter( 'jetpack_boost_critical_css_post_types', __NAMESPACE__ . '\exclude_elementor_library_custom_post_type' );
composer.json CHANGED
@@ -3,7 +3,7 @@
3
  "description": "Boost your WordPress site's performance, from the creators of Jetpack",
4
  "type": "library",
5
  "license": "GPL-2.0-or-later",
6
- "version": "1.3.0",
7
  "authors": [
8
  {
9
  "name": "Automattic, Inc.",
@@ -14,10 +14,10 @@
14
  "prefer-stable": true,
15
  "require": {
16
  "ext-json": "*",
17
- "automattic/jetpack-admin-ui": "^0.1.0",
18
  "automattic/jetpack-autoloader": "^2.10",
19
  "automattic/jetpack-config": "^1.5",
20
- "automattic/jetpack-connection": "^1.30",
21
  "automattic/jetpack-device-detection": "^1.4",
22
  "automattic/jetpack-lazy-images": "^2.0",
23
  "automattic/jetpack-terms-of-service": "^1.9",
@@ -25,10 +25,10 @@
25
  "tedivm/jshrink": "1.4.0"
26
  },
27
  "require-dev": {
28
- "automattic/jetpack-changelogger": "^2.0",
29
- "automattic/wordbless": "dev-master",
30
- "brain/monkey": "2.6.0",
31
- "yoast/phpunit-polyfills": "1.0.1"
32
  },
33
  "scripts": {
34
  "phpunit": [
@@ -71,7 +71,7 @@
71
  "platform": {
72
  "ext-intl": "0.0.0"
73
  },
74
- "autoloader-suffix": "b1e77e6231d50e7663f84529b6a3dfda_jetpack_boostⓥ1_3_0"
75
  },
76
  "repositories": [],
77
  "extra": {
3
  "description": "Boost your WordPress site's performance, from the creators of Jetpack",
4
  "type": "library",
5
  "license": "GPL-2.0-or-later",
6
+ "version": "1.3.1",
7
  "authors": [
8
  {
9
  "name": "Automattic, Inc.",
14
  "prefer-stable": true,
15
  "require": {
16
  "ext-json": "*",
17
+ "automattic/jetpack-admin-ui": "^0.1.1",
18
  "automattic/jetpack-autoloader": "^2.10",
19
  "automattic/jetpack-config": "^1.5",
20
+ "automattic/jetpack-connection": "^1.31",
21
  "automattic/jetpack-device-detection": "^1.4",
22
  "automattic/jetpack-lazy-images": "^2.0",
23
  "automattic/jetpack-terms-of-service": "^1.9",
25
  "tedivm/jshrink": "1.4.0"
26
  },
27
  "require-dev": {
28
+ "automattic/jetpack-changelogger": "^3.0",
29
+ "automattic/wordbless": "0.3.1",
30
+ "brain/monkey": "2.6.1",
31
+ "yoast/phpunit-polyfills": "1.0.2"
32
  },
33
  "scripts": {
34
  "phpunit": [
71
  "platform": {
72
  "ext-intl": "0.0.0"
73
  },
74
+ "autoloader-suffix": "b1e77e6231d50e7663f84529b6a3dfda_jetpack_boostⓥ1_3_1"
75
  },
76
  "repositories": [],
77
  "extra": {
jetpack-boost.php CHANGED
@@ -9,7 +9,7 @@
9
  * Plugin Name: Jetpack Boost
10
  * Plugin URI: https://jetpack.com/boost
11
  * Description: Boost your WordPress site's performance, from the creators of Jetpack
12
- * Version: 1.3.0
13
  * Author: Automattic
14
  * Author URI: https://automattic.com
15
  * License: GPL-2.0+
@@ -29,7 +29,7 @@ if ( ! defined( 'WPINC' ) ) {
29
  die;
30
  }
31
 
32
- define( 'JETPACK_BOOST_VERSION', '1.3.0' );
33
  define( 'JETPACK_BOOST_SLUG', 'jetpack-boost' );
34
 
35
  if ( ! defined( 'JETPACK_BOOST_CLIENT_NAME' ) ) {
@@ -135,6 +135,10 @@ function include_compatibility_files() {
135
  if ( class_exists( '\Google\Web_Stories\Plugin' ) ) {
136
  require_once __DIR__ . '/compatibility/web-stories.php';
137
  }
 
 
 
 
138
  }
139
 
140
  add_action( 'plugins_loaded', __NAMESPACE__ . '\include_compatibility_files' );
9
  * Plugin Name: Jetpack Boost
10
  * Plugin URI: https://jetpack.com/boost
11
  * Description: Boost your WordPress site's performance, from the creators of Jetpack
12
+ * Version: 1.3.1
13
  * Author: Automattic
14
  * Author URI: https://automattic.com
15
  * License: GPL-2.0+
29
  die;
30
  }
31
 
32
+ define( 'JETPACK_BOOST_VERSION', '1.3.1' );
33
  define( 'JETPACK_BOOST_SLUG', 'jetpack-boost' );
34
 
35
  if ( ! defined( 'JETPACK_BOOST_CLIENT_NAME' ) ) {
135
  if ( class_exists( '\Google\Web_Stories\Plugin' ) ) {
136
  require_once __DIR__ . '/compatibility/web-stories.php';
137
  }
138
+
139
+ if ( class_exists( '\Elementor\TemplateLibrary\Source_Local' ) ) {
140
+ require_once __DIR__ . '/compatibility/elementor.php';
141
+ }
142
  }
143
 
144
  add_action( 'plugins_loaded', __NAMESPACE__ . '\include_compatibility_files' );
readme.txt CHANGED
@@ -1,11 +1,11 @@
1
  === Jetpack Boost ===
2
- Contributors: automattic, xwp, thingalon, pyronaur, davidlonjon, danwalmsley, luchad0res, ebinnion, jpolakovic, rheinardkorf, scruffian, exelero
3
  Donate link: https://automattic.com
4
  Tags: performance, speed, pagespeed, web vitals, critical css, optimize, defer
5
  Requires at least: 5.5
6
  Tested up to: 5.8
7
  Requires PHP: 7.0
8
- Stable tag: 1.3.0
9
  License: GPLv2 or later
10
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
11
 
@@ -97,7 +97,7 @@ For example, our “Optimize CSS Loading” feature ensures the most important C
97
 
98
  Jetpack Boost is a part of the Jetpack brand, but it doesn’t require Jetpack plugin to run. This is a separate plugin from Jetpack and it will always remain that way.
99
 
100
- = Will this plugin be able to improve performance on any website? =
101
 
102
  This plugin includes a range of performance improvements, which can help almost any WordPress site perform better.
103
 
@@ -116,7 +116,7 @@ Every site is different and so performance benefits for each module may vary fro
116
 
117
  Google PageSpeed measurements are built-in the Jetpack Boost dashboard.
118
 
119
- = Is Speed Optimization with Jetpack Boost safe? =
120
 
121
  Yes, it’s safe to try Jetpack Boost on any WordPress site.
122
 
@@ -140,11 +140,11 @@ Jetpack Boost does not include any optimizations that target large databases at
140
 
141
  = Does Jetpack Boost help with image optimization? =
142
 
143
- Jetpack Boost can help sites with large images perform better through lazy-loading, preventing images from loading until they are scrolled into view.
144
 
145
  However, it currently does not have any Image Format Optimization features. We are always looking for ways to improve the plugin, so watch this space for more features in the near future.
146
 
147
- = Is Jetpack Boost compatible with other caching and speed optimization plugins? =
148
 
149
  With few exceptions, Jetpack Boost has no problems running alongside most caching and speed optimization plugins. As a guideline, we don’t recommend enabling the same feature in multiple optimization plugins.
150
 
@@ -165,31 +165,29 @@ If you run into compatibility issues, please do let us know. You can drop us a l
165
  1. Manage your Jetpack Boost settings
166
 
167
  == Changelog ==
168
- ### 1.3.0 - 2021-10-25
169
- #### Security
170
- - Critical CSS: Add permissions checks to AJAX endpoints used when dismissing Critical CSS Recommendations.
171
-
172
  #### Added
173
- - Critical CSS: Added explanation for mod-security HTTP 418 errors.
174
- - Critical CSS: Added stats tracking for generation outcomes.
175
- - Critical CSS: Added step-by-step instructions for Advanced Recommendations.
176
- - Critical CSS: Add extra information to "fetch" errors when generating Critical CSS.
177
- - Critical CSS: More descriptive error message if critical css is failing because of x-frame-options deny config.
178
- - Speed Scores: Added "without Boost" speed score indicator.
179
- - Speed Scores: Retry if a score request job is stuck for more than 15 minutes
180
 
181
  #### Changed
182
- - Critical CSS: Take port numbers into account when comparing origins for proxying.
183
- - Refresh speed score if theme has changed since last score
184
- - Update Critical CSS Generator library to latest
 
185
 
186
  #### Fixed
187
- - Critical CSS: Clear generated CSS on theme change.
188
- - Critical CSS: Ensure generator process is resumed after module deactivated and reactivated without reload.
189
- - Critical CSS: Move CSS file proxying to client-side, to catch WAF-based CDN URLs
190
- - Make sure that the Critical CSS Nonce for dismissing recommendations is always available in the settings page
191
- - Speed Scores: Clear speed score on plugin deactivation and uninstallation.
 
 
192
 
193
  --------
194
 
195
- [See the previous changelogs here](https://github.com/Automattic/jetpack/blob/master/projects/plugins/boost/CHANGELOG.md#changelog)
1
  === Jetpack Boost ===
2
+ Contributors: automattic, xwp, adnan007, bjorsch, danwalmsley, davidlonjon, ebinnion, exelero, jeherve, jpolakovic, karthikbhatb, kraftbj, luchad0res, pyronaur, rheinardkorf, scruffian, thingalon
3
  Donate link: https://automattic.com
4
  Tags: performance, speed, pagespeed, web vitals, critical css, optimize, defer
5
  Requires at least: 5.5
6
  Tested up to: 5.8
7
  Requires PHP: 7.0
8
+ Stable tag: 1.3.1
9
  License: GPLv2 or later
10
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
11
 
97
 
98
  Jetpack Boost is a part of the Jetpack brand, but it doesn’t require Jetpack plugin to run. This is a separate plugin from Jetpack and it will always remain that way.
99
 
100
+ = Will this plugin be able to improve performance on any website? =
101
 
102
  This plugin includes a range of performance improvements, which can help almost any WordPress site perform better.
103
 
116
 
117
  Google PageSpeed measurements are built-in the Jetpack Boost dashboard.
118
 
119
+ = Is Speed Optimization with Jetpack Boost safe? =
120
 
121
  Yes, it’s safe to try Jetpack Boost on any WordPress site.
122
 
140
 
141
  = Does Jetpack Boost help with image optimization? =
142
 
143
+ Jetpack Boost can help sites with large images perform better through lazy-loading, preventing images from loading until they are scrolled into view.
144
 
145
  However, it currently does not have any Image Format Optimization features. We are always looking for ways to improve the plugin, so watch this space for more features in the near future.
146
 
147
+ = Is Jetpack Boost compatible with other caching and speed optimization plugins? =
148
 
149
  With few exceptions, Jetpack Boost has no problems running alongside most caching and speed optimization plugins. As a guideline, we don’t recommend enabling the same feature in multiple optimization plugins.
150
 
165
  1. Manage your Jetpack Boost settings
166
 
167
  == Changelog ==
168
+ ### 1.3.1-beta - 2021-12-02
 
 
 
169
  #### Added
170
+ - Critical CSS: Added a filter to allow stylesheets to load synchronously, to avoid CLS issues on certain setups.
171
+ - Critical CSS: Exclude "library" posts from Elementor plugin when generating Critical CSS.
172
+ - Critical CSS: Explicitly hide admin_bar during Critical CSS render, to improve compatability with custom admin bar setups.
173
+ - Speed Scores: Automatically retry if a speed score request is stuck for more than 15 minutes.
174
+ - Stability: New end-to-end testing system.
 
 
175
 
176
  #### Changed
177
+ - Critical CSS: Detect external CSS URLs from the client side, to improve compatibility with WAFs which modify HTML.
178
+ - Move Boost admin menu into Jetpack submenu.
179
+ - Speed Scores: Automatically refresh speed scores if the theme has changed.
180
+ - Speed Scores: Include active modules and Jetpack Boost version with Speed Score requests.
181
 
182
  #### Fixed
183
+ - Critical CSS: Ensure CSS files still load when JavaScript is not enabled.
184
+ - Critical CSS: Fixed issue with re-serving Critical CSS during generation process
185
+ - Critical CSS: Fix handling for corrupted font-face rules.
186
+ - Critical CSS: Fix issue with dismissing recommendations after enabling Critical CSS without page refresh.
187
+ - Critical CSS: Use home_url instead of site_url when determining homepage during Critical CSS generation.
188
+ - Minor UI fixes for small screens and tooltip display.
189
+ - Speed Scores: Do not show comparative scores when no modules are active.
190
 
191
  --------
192
 
193
+ [See the previous changelogs here](https://github.com/Automattic/jetpack/blob/master/projects/plugins/boost/CHANGELOG.md#changelog)
vendor/autoload.php CHANGED
@@ -4,4 +4,4 @@
4
 
5
  require_once __DIR__ . '/composer/autoload_real.php';
6
 
7
- return ComposerAutoloaderInitb1e77e6231d50e7663f84529b6a3dfda_jetpack_boostⓥ1_3_0::getLoader();
4
 
5
  require_once __DIR__ . '/composer/autoload_real.php';
6
 
7
+ return ComposerAutoloaderInitb1e77e6231d50e7663f84529b6a3dfda_jetpack_boostⓥ1_3_1::getLoader();
vendor/autoload_packages.php CHANGED
@@ -5,7 +5,7 @@
5
  * @package automattic/jetpack-autoloader
6
  */
7
 
8
- namespace Automattic\Jetpack\Autoloader\jpb1e77e6231d50e7663f84529b6a3dfda_jetpack_boostⓥ1_3_0;
9
 
10
  // phpcs:ignore
11
 
5
  * @package automattic/jetpack-autoloader
6
  */
7
 
8
+ namespace Automattic\Jetpack\Autoloader\jpb1e77e6231d50e7663f84529b6a3dfda_jetpack_boostⓥ1_3_1;
9
 
10
  // phpcs:ignore
11
 
vendor/automattic/jetpack-a8c-mc-stats/CHANGELOG.md CHANGED
@@ -5,6 +5,11 @@ All notable changes to this project will be documented in this file.
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
 
 
 
 
 
 
8
  ## [1.4.8] - 2021-10-13
9
  ### Changed
10
  - Updated package dependencies.
@@ -69,6 +74,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
69
 
70
  - Creates the MC Stats package
71
 
 
72
  [1.4.8]: https://github.com/Automattic/jetpack-a8c-mc-stats/compare/v1.4.7...v1.4.8
73
  [1.4.7]: https://github.com/Automattic/jetpack-a8c-mc-stats/compare/v1.4.6...v1.4.7
74
  [1.4.6]: https://github.com/Automattic/jetpack-a8c-mc-stats/compare/v1.4.5...v1.4.6
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
 
8
+ ## [1.4.9] - 2021-11-02
9
+ ### Changed
10
+ - Set `convertDeprecationsToExceptions` true in PHPUnit config.
11
+ - Update PHPUnit configs to include just what needs coverage rather than include everything then try to exclude stuff that doesn't.
12
+
13
  ## [1.4.8] - 2021-10-13
14
  ### Changed
15
  - Updated package dependencies.
74
 
75
  - Creates the MC Stats package
76
 
77
+ [1.4.9]: https://github.com/Automattic/jetpack-a8c-mc-stats/compare/v1.4.8...v1.4.9
78
  [1.4.8]: https://github.com/Automattic/jetpack-a8c-mc-stats/compare/v1.4.7...v1.4.8
79
  [1.4.7]: https://github.com/Automattic/jetpack-a8c-mc-stats/compare/v1.4.6...v1.4.7
80
  [1.4.6]: https://github.com/Automattic/jetpack-a8c-mc-stats/compare/v1.4.5...v1.4.6
vendor/automattic/jetpack-admin-ui/CHANGELOG.md CHANGED
@@ -5,6 +5,11 @@ All notable changes to this project will be documented in this file.
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
 
 
 
 
 
 
8
  ## 0.1.0 - 2021-10-13
9
  ### Added
10
  - Created the package.
@@ -14,3 +19,5 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
14
 
15
  ### Fixed
16
  - Fixing menu visibility issues.
 
 
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
 
8
+ ## [0.1.1] - 2021-11-17
9
+ ### Changed
10
+ - Set `convertDeprecationsToExceptions` true in PHPUnit config.
11
+ - Update PHPUnit configs to include just what needs coverage rather than include everything then try to exclude stuff that doesn't.
12
+
13
  ## 0.1.0 - 2021-10-13
14
  ### Added
15
  - Created the package.
19
 
20
  ### Fixed
21
  - Fixing menu visibility issues.
22
+
23
+ [0.1.1]: https://github.com/Automattic/jetpack-admin-ui/compare/0.1.0...0.1.1
vendor/automattic/jetpack-admin-ui/src/class-admin-menu.php CHANGED
@@ -13,7 +13,7 @@ namespace Automattic\Jetpack\Admin_UI;
13
  */
14
  class Admin_Menu {
15
 
16
- const PACKAGE_VERSION = '0.1.0';
17
 
18
  /**
19
  * Whether this class has been initialized
13
  */
14
  class Admin_Menu {
15
 
16
+ const PACKAGE_VERSION = '0.1.1';
17
 
18
  /**
19
  * Whether this class has been initialized
vendor/automattic/jetpack-assets/CHANGELOG.md CHANGED
@@ -5,6 +5,29 @@ All notable changes to this project will be documented in this file.
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8
  ## [1.11.9] - 2021-10-13
9
  ### Changed
10
  - Updated package dependencies.
@@ -122,6 +145,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
122
 
123
  - Statically access asset tools
124
 
 
 
 
 
125
  [1.11.9]: https://github.com/Automattic/jetpack-assets/compare/v1.11.8...v1.11.9
126
  [1.11.8]: https://github.com/Automattic/jetpack-assets/compare/v1.11.7...v1.11.8
127
  [1.11.7]: https://github.com/Automattic/jetpack-assets/compare/v1.11.6...v1.11.7
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
 
8
+ ## [1.13.1] - 2021-11-22
9
+ ### Fixed
10
+ - Call `_doing_it_wrong` correctly.
11
+
12
+ ## [1.13.0] - 2021-11-22
13
+ ### Added
14
+ - Have `Assets::register_script()` accept a textdomain for `wp_set_script_translations` (and complain if no textdomain is passed when `wp-i18n` is depended on).
15
+
16
+ ### Changed
17
+ - Updated package dependencies
18
+
19
+ ### Fixed
20
+ - Added missing option doc for `Assets::register_script()`.
21
+
22
+ ## [1.12.0] - 2021-11-15
23
+ ### Added
24
+ - Add `Assets::register_script()` for easier loading of Webpack-built scripts.
25
+
26
+ ## [1.11.10] - 2021-11-02
27
+ ### Changed
28
+ - Set `convertDeprecationsToExceptions` true in PHPUnit config.
29
+ - Update PHPUnit configs to include just what needs coverage rather than include everything then try to exclude stuff that doesn't.
30
+
31
  ## [1.11.9] - 2021-10-13
32
  ### Changed
33
  - Updated package dependencies.
145
 
146
  - Statically access asset tools
147
 
148
+ [1.13.1]: https://github.com/Automattic/jetpack-assets/compare/v1.13.0...v1.13.1
149
+ [1.13.0]: https://github.com/Automattic/jetpack-assets/compare/v1.12.0...v1.13.0
150
+ [1.12.0]: https://github.com/Automattic/jetpack-assets/compare/v1.11.10...v1.12.0
151
+ [1.11.10]: https://github.com/Automattic/jetpack-assets/compare/v1.11.9...v1.11.10
152
  [1.11.9]: https://github.com/Automattic/jetpack-assets/compare/v1.11.8...v1.11.9
153
  [1.11.8]: https://github.com/Automattic/jetpack-assets/compare/v1.11.7...v1.11.8
154
  [1.11.7]: https://github.com/Automattic/jetpack-assets/compare/v1.11.6...v1.11.7
vendor/automattic/jetpack-assets/composer.json CHANGED
@@ -7,7 +7,7 @@
7
  "automattic/jetpack-constants": "^1.6"
8
  },
9
  "require-dev": {
10
- "brain/monkey": "2.6.0",
11
  "yoast/phpunit-polyfills": "1.0.2",
12
  "automattic/jetpack-changelogger": "^3.0"
13
  },
@@ -39,7 +39,7 @@
39
  "link-template": "https://github.com/Automattic/jetpack-assets/compare/v${old}...v${new}"
40
  },
41
  "branch-alias": {
42
- "dev-master": "1.11.x-dev"
43
  }
44
  }
45
  }
7
  "automattic/jetpack-constants": "^1.6"
8
  },
9
  "require-dev": {
10
+ "brain/monkey": "2.6.1",
11
  "yoast/phpunit-polyfills": "1.0.2",
12
  "automattic/jetpack-changelogger": "^3.0"
13
  },
39
  "link-template": "https://github.com/Automattic/jetpack-assets/compare/v${old}...v${new}"
40
  },
41
  "branch-alias": {
42
+ "dev-master": "1.13.x-dev"
43
  }
44
  }
45
  }
vendor/automattic/jetpack-assets/src/class-assets.php CHANGED
@@ -223,4 +223,184 @@ class Assets {
223
 
224
  return preg_replace( '|://[^/]+?/|', "://s$static_counter.wp.com/", $url );
225
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
226
  }
223
 
224
  return preg_replace( '|://[^/]+?/|', "://s$static_counter.wp.com/", $url );
225
  }
226
+
227
+ /**
228
+ * Resolve '.' and '..' components in a path or URL.
229
+ *
230
+ * @since 1.12.0
231
+ * @param string $path Path or URL.
232
+ * @return string Normalized path or URL.
233
+ */
234
+ public static function normalize_path( $path ) {
235
+ $parts = wp_parse_url( $path );
236
+ if ( ! isset( $parts['path'] ) ) {
237
+ return $path;
238
+ }
239
+
240
+ $ret = '';
241
+ $ret .= isset( $parts['scheme'] ) ? $parts['scheme'] . '://' : '';
242
+ if ( isset( $parts['user'] ) || isset( $parts['pass'] ) ) {
243
+ $ret .= isset( $parts['user'] ) ? $parts['user'] : '';
244
+ $ret .= isset( $parts['pass'] ) ? ':' . $parts['pass'] : '';
245
+ $ret .= '@';
246
+ }
247
+ $ret .= isset( $parts['host'] ) ? $parts['host'] : '';
248
+ $ret .= isset( $parts['port'] ) ? ':' . $parts['port'] : '';
249
+
250
+ $pp = explode( '/', $parts['path'] );
251
+ if ( '' === $pp[0] ) {
252
+ $ret .= '/';
253
+ array_shift( $pp );
254
+ }
255
+ $i = 0;
256
+ while ( $i < count( $pp ) ) { // phpcs:ignore Squiz.PHP.DisallowSizeFunctionsInLoops.Found
257
+ if ( '' === $pp[ $i ] || '.' === $pp[ $i ] || 0 === $i && '..' === $pp[ $i ] ) {
258
+ array_splice( $pp, $i, 1 );
259
+ } elseif ( '..' === $pp[ $i ] ) {
260
+ array_splice( $pp, --$i, 2 );
261
+ } else {
262
+ $i++;
263
+ }
264
+ }
265
+ $ret .= join( '/', $pp );
266
+
267
+ $ret .= isset( $parts['query'] ) ? '?' . $parts['query'] : '';
268
+ $ret .= isset( $parts['fragment'] ) ? '#' . $parts['fragment'] : '';
269
+
270
+ return $ret;
271
+ }
272
+
273
+ /**
274
+ * Register a Webpack-built script.
275
+ *
276
+ * Our Webpack-built scripts tend to need a bunch of boilerplate:
277
+ * - A call to `Assets::get_file_url_for_environment()` for possible debugging.
278
+ * - A call to `wp_register_style()` for extracted CSS, possibly with detection of RTL.
279
+ * - Loading of dependencies and version provided by `@wordpress/dependency-extraction-webpack-plugin`.
280
+ * - Avoiding WPCom's broken minifier.
281
+ *
282
+ * This wrapper handles all of that.
283
+ *
284
+ * @since 1.12.0
285
+ * @param string $handle Name of the script. Should be unique across both scripts and styles.
286
+ * @param string $path Minimized script path.
287
+ * @param string $relative_to File that `$path` is relative to. Pass `__FILE__`.
288
+ * @param array $options Additional options:
289
+ * - `asset_path`: (string|null) `.asset.php` to load. Default is to base it on `$path`.
290
+ * - `async`: (bool) Set true to register the script as async, like `Assets::enqueue_async_script()`
291
+ * - `css_dependencies`: (string[]) Additional style dependencies to queue.
292
+ * - `css_path`: (string|null) `.css` to load. Default is to base it on `$path`.
293
+ * - `dependencies`: (string[]) Additional script dependencies to queue.
294
+ * - `enqueue`: (bool) Set true to enqueue the script immediately.
295
+ * - `in_footer`: (bool) Set true to register script for the footer.
296
+ * - `media`: (string) Media for the css file. Default 'all'.
297
+ * - `minify`: (bool|null) Set true to pass `minify=true` in the query string, or `null` to suppress the normal `minify=false`.
298
+ * - `nonmin_path`: (string) Non-minified script path.
299
+ * - `textdomain`: (string) Text domain for the script. Required if the script depends on wp-i18n.
300
+ * - `version`: (string) Override the version from the `asset_path` file.
301
+ * @throws \InvalidArgumentException If arguments are invalid.
302
+ */
303
+ public static function register_script( $handle, $path, $relative_to, array $options = array() ) {
304
+ if ( substr( $path, -3 ) !== '.js' ) {
305
+ throw new \InvalidArgumentException( '$path must end in ".js"' );
306
+ }
307
+
308
+ $dir = dirname( $relative_to );
309
+ $base = substr( $path, 0, -3 );
310
+ $options += array(
311
+ 'asset_path' => "$base.asset.php",
312
+ 'async' => false,
313
+ 'css_dependencies' => array(),
314
+ 'css_path' => "$base.css",
315
+ 'dependencies' => array(),
316
+ 'enqueue' => false,
317
+ 'in_footer' => false,
318
+ 'media' => 'all',
319
+ 'minify' => false,
320
+ 'textdomain' => null,
321
+ );
322
+
323
+ if ( $options['css_path'] && substr( $options['css_path'], -4 ) !== '.css' ) {
324
+ throw new \InvalidArgumentException( '$options[\'css_path\'] must end in ".css"' );
325
+ }
326
+
327
+ if ( isset( $options['nonmin_path'] ) ) {
328
+ $url = self::get_file_url_for_environment( $path, $options['nonmin_path'], $relative_to );
329
+ } else {
330
+ $url = plugins_url( $path, $relative_to );
331
+ }
332
+ $url = self::normalize_path( $url );
333
+ if ( null !== $options['minify'] ) {
334
+ $url = add_query_arg( 'minify', $options['minify'] ? 'true' : 'false', $url );
335
+ }
336
+
337
+ if ( $options['asset_path'] && file_exists( "$dir/{$options['asset_path']}" ) ) {
338
+ $asset = require "$dir/{$options['asset_path']}";
339
+ $options['dependencies'] = array_merge( $asset['dependencies'], $options['dependencies'] );
340
+ $options['css_dependencies'] = array_merge(
341
+ array_filter(
342
+ $asset['dependencies'],
343
+ function ( $d ) {
344
+ return wp_style_is( $d, 'registered' );
345
+ }
346
+ ),
347
+ $options['css_dependencies']
348
+ );
349
+ $ver = isset( $options['version'] ) ? $options['version'] : $asset['version'];
350
+ } else {
351
+ $ver = isset( $options['version'] ) ? $options['version'] : filemtime( "$dir/$path" );
352
+ }
353
+
354
+ wp_register_script( $handle, $url, $options['dependencies'], $ver, $options['in_footer'] );
355
+ if ( $options['async'] ) {
356
+ self::instance()->add_async_script( $handle );
357
+ }
358
+ if ( $options['textdomain'] ) {
359
+ wp_set_script_translations( $handle, $options['textdomain'] );
360
+ } elseif ( in_array( 'wp-i18n', $options['dependencies'], true ) ) {
361
+ _doing_it_wrong(
362
+ __METHOD__,
363
+ /* translators: %s is the script handle. */
364
+ esc_html( sprintf( __( 'Script "%s" depends on wp-i18n but does not specify "textdomain"', 'jetpack' ), $handle ) ),
365
+ ''
366
+ );
367
+ }
368
+
369
+ if ( $options['css_path'] && file_exists( "$dir/{$options['css_path']}" ) ) {
370
+ $csspath = $options['css_path'];
371
+ if ( is_rtl() ) {
372
+ $rtlcsspath = substr( $csspath, 0, -4 ) . '.rtl.css';
373
+ if ( file_exists( "$dir/$rtlcsspath" ) ) {
374
+ $csspath = $rtlcsspath;
375
+ }
376
+ }
377
+
378
+ $url = self::normalize_path( plugins_url( $csspath, $relative_to ) );
379
+ if ( null !== $options['minify'] ) {
380
+ $url = add_query_arg( 'minify', $options['minify'] ? 'true' : 'false', $url );
381
+ }
382
+ wp_register_style( $handle, $url, $options['css_dependencies'], $ver, $options['media'] );
383
+ wp_script_add_data( $handle, 'Jetpack::Assets::hascss', true );
384
+ } else {
385
+ wp_script_add_data( $handle, 'Jetpack::Assets::hascss', false );
386
+ }
387
+
388
+ if ( $options['enqueue'] ) {
389
+ self::enqueue_script( $handle );
390
+ }
391
+ }
392
+
393
+ /**
394
+ * Enqueue a script registered with `Assets::register_script`.
395
+ *
396
+ * @since 1.12.0
397
+ * @param string $handle Name of the script. Should be unique across both scripts and styles.
398
+ */
399
+ public static function enqueue_script( $handle ) {
400
+ wp_enqueue_script( $handle );
401
+ if ( wp_scripts()->get_data( $handle, 'Jetpack::Assets::hascss' ) ) {
402
+ wp_enqueue_style( $handle );
403
+ }
404
+ }
405
+
406
  }
vendor/automattic/jetpack-connection/CHANGELOG.md CHANGED
@@ -5,6 +5,30 @@ All notable changes to this project will be documented in this file.
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8
  ## [1.30.10] - 2021-10-19
9
  ### Deprecated
10
  - General: remove numerous long-deprecated functions.
@@ -446,6 +470,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
446
 
447
  - Separate the connection library into its own package.
448
 
 
 
 
 
449
  [1.30.10]: https://github.com/Automattic/jetpack-connection/compare/v1.30.9...v1.30.10
450
  [1.30.9]: https://github.com/Automattic/jetpack-connection/compare/v1.30.8...v1.30.9
451
  [1.30.8]: https://github.com/Automattic/jetpack-connection/compare/v1.30.7...v1.30.8
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
 
8
+ ## [1.31.0] - 2021-11-22
9
+ ### Added
10
+ - Added plugin_slug parameter to the v4/register endpoint
11
+
12
+ ### Changed
13
+ - Updated package dependencies
14
+
15
+ ## [1.30.13] - 2021-11-09
16
+ ### Fixed
17
+ - Fix PHP 8.1 deprecation warning.
18
+
19
+ ## [1.30.12] - 2021-11-02
20
+ ### Added
21
+ - Client: add IDC query args to remote requests
22
+
23
+ ### Changed
24
+ - Set `convertDeprecationsToExceptions` true in PHPUnit config.
25
+ - Update PHPUnit configs to include just what needs coverage rather than include everything then try to exclude stuff that doesn't.
26
+
27
+ ## [1.30.11] - 2021-10-26
28
+ ### Changed
29
+ - Change the error code returned when a remoteRegister XMLRPC call is executed to the more helpful "already_registered" when the blog is already registered
30
+ - Updated package dependencies.
31
+
32
  ## [1.30.10] - 2021-10-19
33
  ### Deprecated
34
  - General: remove numerous long-deprecated functions.
470
 
471
  - Separate the connection library into its own package.
472
 
473
+ [1.31.0]: https://github.com/Automattic/jetpack-connection/compare/v1.30.13...v1.31.0
474
+ [1.30.13]: https://github.com/Automattic/jetpack-connection/compare/v1.30.12...v1.30.13
475
+ [1.30.12]: https://github.com/Automattic/jetpack-connection/compare/v1.30.11...v1.30.12
476
+ [1.30.11]: https://github.com/Automattic/jetpack-connection/compare/v1.30.10...v1.30.11
477
  [1.30.10]: https://github.com/Automattic/jetpack-connection/compare/v1.30.9...v1.30.10
478
  [1.30.9]: https://github.com/Automattic/jetpack-connection/compare/v1.30.8...v1.30.9
479
  [1.30.8]: https://github.com/Automattic/jetpack-connection/compare/v1.30.7...v1.30.8
vendor/automattic/jetpack-connection/composer.json CHANGED
@@ -9,7 +9,7 @@
9
  "automattic/jetpack-heartbeat": "^1.3",
10
  "automattic/jetpack-options": "^1.13",
11
  "automattic/jetpack-roles": "^1.4",
12
- "automattic/jetpack-status": "^1.8",
13
  "automattic/jetpack-terms-of-service": "^1.9",
14
  "automattic/jetpack-tracking": "^1.13",
15
  "automattic/jetpack-redirect": "^1.7"
@@ -17,7 +17,7 @@
17
  "require-dev": {
18
  "automattic/wordbless": "@dev",
19
  "yoast/phpunit-polyfills": "1.0.2",
20
- "brain/monkey": "2.6.0",
21
  "automattic/jetpack-changelogger": "^3.0"
22
  },
23
  "autoload": {
@@ -53,7 +53,7 @@
53
  "link-template": "https://github.com/Automattic/jetpack-connection/compare/v${old}...v${new}"
54
  },
55
  "branch-alias": {
56
- "dev-master": "1.30.x-dev"
57
  }
58
  }
59
  }
9
  "automattic/jetpack-heartbeat": "^1.3",
10
  "automattic/jetpack-options": "^1.13",
11
  "automattic/jetpack-roles": "^1.4",
12
+ "automattic/jetpack-status": "^1.9",
13
  "automattic/jetpack-terms-of-service": "^1.9",
14
  "automattic/jetpack-tracking": "^1.13",
15
  "automattic/jetpack-redirect": "^1.7"
17
  "require-dev": {
18
  "automattic/wordbless": "@dev",
19
  "yoast/phpunit-polyfills": "1.0.2",
20
+ "brain/monkey": "2.6.1",
21
  "automattic/jetpack-changelogger": "^3.0"
22
  },
23
  "autoload": {
53
  "link-template": "https://github.com/Automattic/jetpack-connection/compare/v${old}...v${new}"
54
  },
55
  "branch-alias": {
56
+ "dev-master": "1.31.x-dev"
57
  }
58
  }
59
  }
vendor/automattic/jetpack-connection/legacy/class-jetpack-xmlrpc-server.php CHANGED
@@ -119,6 +119,7 @@ class Jetpack_XMLRPC_Server {
119
  public function authorize_xmlrpc_methods() {
120
  return array(
121
  'jetpack.remoteAuthorize' => array( $this, 'remote_authorize' ),
 
122
  );
123
  }
124
 
@@ -353,6 +354,20 @@ class Jetpack_XMLRPC_Server {
353
  );
354
  }
355
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
356
  /**
357
  * This XML-RPC method is called from the /jpphp/provision endpoint on WPCOM in order to
358
  * register this site so that a plan can be provisioned.
119
  public function authorize_xmlrpc_methods() {
120
  return array(
121
  'jetpack.remoteAuthorize' => array( $this, 'remote_authorize' ),
122
+ 'jetpack.remoteRegister' => array( $this, 'remote_already_registered' ),
123
  );
124
  }
125
 
354
  );
355
  }
356
 
357
+ /**
358
+ * This is a substitute for remote_register() when the blog is already registered which returns an error code
359
+ * signifying that state.
360
+ * This is an unauthorized call and we should not be responding with any data other than the error code.
361
+ *
362
+ * @return \IXR_Error
363
+ */
364
+ public function remote_already_registered() {
365
+ return $this->error(
366
+ new \WP_Error( 'already_registered', __( 'Blog is already registered', 'jetpack' ), 400 ),
367
+ 'remote_register'
368
+ );
369
+ }
370
+
371
  /**
372
  * This XML-RPC method is called from the /jpphp/provision endpoint on WPCOM in order to
373
  * register this site so that a plan can be provisioned.
vendor/automattic/jetpack-connection/src/class-client.php CHANGED
@@ -23,6 +23,17 @@ class Client {
23
  * @return array|WP_Error WP HTTP response on success
24
  */
25
  public static function remote_request( $args, $body = null ) {
 
 
 
 
 
 
 
 
 
 
 
26
  $result = self::build_signed_request( $args, $body );
27
  if ( ! $result || is_wp_error( $result ) ) {
28
  return $result;
23
  * @return array|WP_Error WP HTTP response on success
24
  */
25
  public static function remote_request( $args, $body = null ) {
26
+ if ( isset( $args['url'] ) ) {
27
+ /**
28
+ * Filters the remote request url.
29
+ *
30
+ * @since 1.30.12
31
+ *
32
+ * @param string The remote request url.
33
+ */
34
+ $args['url'] = apply_filters( 'jetpack_remote_request_url', $args['url'] );
35
+ }
36
+
37
  $result = self::build_signed_request( $args, $body );
38
  if ( ! $result || is_wp_error( $result ) ) {
39
  return $result;
vendor/automattic/jetpack-connection/src/class-package-version.php CHANGED
@@ -12,7 +12,7 @@ namespace Automattic\Jetpack\Connection;
12
  */
13
  class Package_Version {
14
 
15
- const PACKAGE_VERSION = '1.30.10';
16
 
17
  const PACKAGE_SLUG = 'connection';
18
 
12
  */
13
  class Package_Version {
14
 
15
+ const PACKAGE_VERSION = '1.31.0';
16
 
17
  const PACKAGE_SLUG = 'connection';
18
 
vendor/automattic/jetpack-connection/src/class-rest-connector.php CHANGED
@@ -187,6 +187,10 @@ class REST_Connector {
187
  'description' => __( 'URI of the admin page where the user should be redirected after connection flow', 'jetpack' ),
188
  'type' => 'string',
189
  ),
 
 
 
 
190
  ),
191
  )
192
  );
@@ -438,6 +442,11 @@ class REST_Connector {
438
  $wpcom_user_data = $connection->get_connected_user_data();
439
 
440
  // Add connected user gravatar to the returned wpcom_user_data.
 
 
 
 
 
441
  $wpcom_user_data['avatar'] = ( ! empty( $wpcom_user_data['email'] ) ?
442
  get_avatar_url(
443
  $wpcom_user_data['email'],
@@ -641,6 +650,15 @@ class REST_Connector {
641
  if ( isset( $request['from'] ) ) {
642
  $this->connection->add_register_request_param( 'from', (string) $request['from'] );
643
  }
 
 
 
 
 
 
 
 
 
644
  $result = $this->connection->try_registration();
645
 
646
  if ( is_wp_error( $result ) ) {
187
  'description' => __( 'URI of the admin page where the user should be redirected after connection flow', 'jetpack' ),
188
  'type' => 'string',
189
  ),
190
+ 'plugin_slug' => array(
191
+ 'description' => __( 'Indicates from what plugin the request is coming from', 'jetpack' ),
192
+ 'type' => 'string',
193
+ ),
194
  ),
195
  )
196
  );
442
  $wpcom_user_data = $connection->get_connected_user_data();
443
 
444
  // Add connected user gravatar to the returned wpcom_user_data.
445
+ // Probably we shouldn't do this when $wpcom_user_data is false, but we have been since 2016 so
446
+ // clients probably expect that by now.
447
+ if ( false === $wpcom_user_data ) {
448
+ $wpcom_user_data = array();
449
+ }
450
  $wpcom_user_data['avatar'] = ( ! empty( $wpcom_user_data['email'] ) ?
451
  get_avatar_url(
452
  $wpcom_user_data['email'],
650
  if ( isset( $request['from'] ) ) {
651
  $this->connection->add_register_request_param( 'from', (string) $request['from'] );
652
  }
653
+
654
+ if ( ! empty( $request['plugin_slug'] ) ) {
655
+ // If `plugin_slug` matches a plugin using the connection, let's inform the plugin that is establishing the connection.
656
+ $connected_plugin = Plugin_Storage::get_one( (string) $request['plugin_slug'] );
657
+ if ( ! is_wp_error( $connected_plugin ) && ! empty( $connected_plugin ) ) {
658
+ $this->connection->set_plugin_instance( new Plugin( (string) $request['plugin_slug'] ) );
659
+ }
660
+ }
661
+
662
  $result = $this->connection->try_registration();
663
 
664
  if ( is_wp_error( $result ) ) {
vendor/automattic/jetpack-constants/CHANGELOG.md CHANGED
@@ -5,6 +5,19 @@ All notable changes to this project will be documented in this file.
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8
  ## [1.6.9] - 2021-10-13
9
  ### Changed
10
  - Updated package dependencies.
@@ -96,6 +109,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
96
 
97
  - Packages: Finish the constants package
98
 
 
 
 
99
  [1.6.9]: https://github.com/Automattic/jetpack-constants/compare/v1.6.8...v1.6.9
100
  [1.6.8]: https://github.com/Automattic/jetpack-constants/compare/v1.6.7...v1.6.8
101
  [1.6.7]: https://github.com/Automattic/jetpack-constants/compare/v1.6.6...v1.6.7
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
 
8
+ ## [1.6.12] - 2021-11-22
9
+ ### Changed
10
+ - Updated package dependencies
11
+
12
+ ## [1.6.11] - 2021-11-02
13
+ ### Changed
14
+ - Set `convertDeprecationsToExceptions` true in PHPUnit config.
15
+ - Update PHPUnit configs to include just what needs coverage rather than include everything then try to exclude stuff that doesn't.
16
+
17
+ ## [1.6.10] - 2021-10-26
18
+ ### Fixed
19
+ - Updated is_true docblock to be more accurate.
20
+
21
  ## [1.6.9] - 2021-10-13
22
  ### Changed
23
  - Updated package dependencies.
109
 
110
  - Packages: Finish the constants package
111
 
112
+ [1.6.12]: https://github.com/Automattic/jetpack-constants/compare/v1.6.11...v1.6.12
113
+ [1.6.11]: https://github.com/Automattic/jetpack-constants/compare/v1.6.10...v1.6.11
114
+ [1.6.10]: https://github.com/Automattic/jetpack-constants/compare/v1.6.9...v1.6.10
115
  [1.6.9]: https://github.com/Automattic/jetpack-constants/compare/v1.6.8...v1.6.9
116
  [1.6.8]: https://github.com/Automattic/jetpack-constants/compare/v1.6.7...v1.6.8
117
  [1.6.7]: https://github.com/Automattic/jetpack-constants/compare/v1.6.6...v1.6.7
vendor/automattic/jetpack-constants/composer.json CHANGED
@@ -5,7 +5,7 @@
5
  "license": "GPL-2.0-or-later",
6
  "require": {},
7
  "require-dev": {
8
- "brain/monkey": "2.6.0",
9
  "yoast/phpunit-polyfills": "1.0.2",
10
  "automattic/jetpack-changelogger": "^3.0"
11
  },
5
  "license": "GPL-2.0-or-later",
6
  "require": {},
7
  "require-dev": {
8
+ "brain/monkey": "2.6.1",
9
  "yoast/phpunit-polyfills": "1.0.2",
10
  "automattic/jetpack-changelogger": "^3.0"
11
  },
vendor/automattic/jetpack-constants/src/class-constants.php CHANGED
@@ -35,7 +35,7 @@ class Constants {
35
 
36
  /**
37
  * Checks if a "constant" has been set in constants Manager
38
- * and has the value of true
39
  *
40
  * @param string $name The name of the constant.
41
  *
35
 
36
  /**
37
  * Checks if a "constant" has been set in constants Manager
38
+ * and has a truthy value (e.g. not null, not false, not 0, any string).
39
  *
40
  * @param string $name The name of the constant.
41
  *
vendor/automattic/jetpack-device-detection/CHANGELOG.md CHANGED
@@ -5,6 +5,15 @@ All notable changes to this project will be documented in this file.
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
 
 
 
 
 
 
 
 
 
 
8
  ## [1.4.7] - 2021-10-19
9
  ### Deprecated
10
  - General: remove numerous long-deprecated functions.
@@ -78,6 +87,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
78
 
79
  - Moving jetpack_is_mobile into a package
80
 
 
 
81
  [1.4.7]: https://github.com/Automattic/jetpack-device-detection/compare/v1.4.6...v1.4.7
82
  [1.4.6]: https://github.com/Automattic/jetpack-device-detection/compare/v1.4.5...v1.4.6
83
  [1.4.5]: https://github.com/Automattic/jetpack-device-detection/compare/v1.4.4...v1.4.5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
 
8
+ ## [1.4.9] - 2021-11-16
9
+ ### Fixed
10
+ - Verify $_SERVER['HTTP_USER_AGENT'] exists before use.
11
+
12
+ ## [1.4.8] - 2021-11-02
13
+ ### Changed
14
+ - Set `convertDeprecationsToExceptions` true in PHPUnit config.
15
+ - Update PHPUnit configs to include just what needs coverage rather than include everything then try to exclude stuff that doesn't.
16
+
17
  ## [1.4.7] - 2021-10-19
18
  ### Deprecated
19
  - General: remove numerous long-deprecated functions.
87
 
88
  - Moving jetpack_is_mobile into a package
89
 
90
+ [1.4.9]: https://github.com/Automattic/jetpack-device-detection/compare/v1.4.8...v1.4.9
91
+ [1.4.8]: https://github.com/Automattic/jetpack-device-detection/compare/v1.4.7...v1.4.8
92
  [1.4.7]: https://github.com/Automattic/jetpack-device-detection/compare/v1.4.6...v1.4.7
93
  [1.4.6]: https://github.com/Automattic/jetpack-device-detection/compare/v1.4.5...v1.4.6
94
  [1.4.5]: https://github.com/Automattic/jetpack-device-detection/compare/v1.4.4...v1.4.5
vendor/automattic/jetpack-device-detection/src/class-user-agent-info.php CHANGED
@@ -206,7 +206,7 @@ class User_Agent_Info {
206
  } elseif ( $this->is_Nintendo_3DS() ) {
207
  return 'nintendo-3ds';
208
  } else {
209
- $agent = strtolower( $_SERVER['HTTP_USER_AGENT'] );
210
  $dumb_agents = $this->dumb_agents;
211
  foreach ( $dumb_agents as $dumb_agent ) {
212
  if ( false !== strpos( $agent, $dumb_agent ) ) {
@@ -1262,6 +1262,9 @@ class User_Agent_Info {
1262
  * The is_blackberry_10() method can be used to check the User Agent for a BlackBerry 10 device.
1263
  */
1264
  public static function is_blackberry_10() {
 
 
 
1265
  $agent = strtolower( $_SERVER['HTTP_USER_AGENT'] );
1266
  return ( strpos( $agent, 'bb10' ) !== false ) && ( strpos( $agent, 'mobile' ) !== false );
1267
  }
@@ -1479,6 +1482,10 @@ class User_Agent_Info {
1479
  public static function is_bot() {
1480
  static $is_bot = null;
1481
 
 
 
 
 
1482
  if ( is_null( $is_bot ) ) {
1483
  $is_bot = self::is_bot_user_agent( $_SERVER['HTTP_USER_AGENT'] );
1484
  }
206
  } elseif ( $this->is_Nintendo_3DS() ) {
207
  return 'nintendo-3ds';
208
  } else {
209
+ $agent = $this->useragent;
210
  $dumb_agents = $this->dumb_agents;
211
  foreach ( $dumb_agents as $dumb_agent ) {
212
  if ( false !== strpos( $agent, $dumb_agent ) ) {
1262
  * The is_blackberry_10() method can be used to check the User Agent for a BlackBerry 10 device.
1263
  */
1264
  public static function is_blackberry_10() {
1265
+ if ( empty( $_SERVER['HTTP_USER_AGENT'] ) ) {
1266
+ return false;
1267
+ }
1268
  $agent = strtolower( $_SERVER['HTTP_USER_AGENT'] );
1269
  return ( strpos( $agent, 'bb10' ) !== false ) && ( strpos( $agent, 'mobile' ) !== false );
1270
  }
1482
  public static function is_bot() {
1483
  static $is_bot = null;
1484
 
1485
+ if ( empty( $_SERVER['HTTP_USER_AGENT'] ) ) {
1486
+ return false;
1487
+ }
1488
+
1489
  if ( is_null( $is_bot ) ) {
1490
  $is_bot = self::is_bot_user_agent( $_SERVER['HTTP_USER_AGENT'] );
1491
  }
vendor/automattic/jetpack-lazy-images/CHANGELOG.md CHANGED
@@ -5,6 +5,30 @@ All notable changes to this project will be documented in this file.
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8
  ## [2.0.3] - 2021-10-19
9
  ### Changed
10
  - Updated package dependencies.
@@ -123,6 +147,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
123
 
124
  - Lazy Images: Move into a package
125
 
 
 
 
 
 
126
  [2.0.3]: https://github.com/Automattic/jetpack-lazy-images/compare/v2.0.2...v2.0.3
127
  [2.0.2]: https://github.com/Automattic/jetpack-lazy-images/compare/v2.0.1...v2.0.2
128
  [2.0.1]: https://github.com/Automattic/jetpack-lazy-images/compare/v2.0.0...v2.0.1
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
 
8
+ ## [2.0.8] - 2021-11-22
9
+ ### Changed
10
+ - Updated package dependencies
11
+
12
+ ## [2.0.7] - 2021-11-17
13
+ ### Changed
14
+ - Updated package dependencies.
15
+
16
+ ## [2.0.6] - 2021-11-16
17
+ ### Added
18
+ - Use monorepo `validate-es` script to validate Webpack builds.
19
+
20
+ ### Changed
21
+ - Updated package dependencies.
22
+
23
+ ## [2.0.5] - 2021-11-09
24
+ ### Changed
25
+ - Update webpack build config.
26
+
27
+ ## [2.0.4] - 2021-11-02
28
+ ### Changed
29
+ - Set `convertDeprecationsToExceptions` true in PHPUnit config.
30
+ - Update PHPUnit configs to include just what needs coverage rather than include everything then try to exclude stuff that doesn't.
31
+
32
  ## [2.0.3] - 2021-10-19
33
  ### Changed
34
  - Updated package dependencies.
147
 
148
  - Lazy Images: Move into a package
149
 
150
+ [2.0.8]: https://github.com/Automattic/jetpack-lazy-images/compare/v2.0.7...v2.0.8
151
+ [2.0.7]: https://github.com/Automattic/jetpack-lazy-images/compare/v2.0.6...v2.0.7
152
+ [2.0.6]: https://github.com/Automattic/jetpack-lazy-images/compare/v2.0.5...v2.0.6
153
+ [2.0.5]: https://github.com/Automattic/jetpack-lazy-images/compare/v2.0.4...v2.0.5
154
+ [2.0.4]: https://github.com/Automattic/jetpack-lazy-images/compare/v2.0.3...v2.0.4
155
  [2.0.3]: https://github.com/Automattic/jetpack-lazy-images/compare/v2.0.2...v2.0.3
156
  [2.0.2]: https://github.com/Automattic/jetpack-lazy-images/compare/v2.0.1...v2.0.2
157
  [2.0.1]: https://github.com/Automattic/jetpack-lazy-images/compare/v2.0.0...v2.0.1
vendor/automattic/jetpack-lazy-images/composer.json CHANGED
@@ -5,7 +5,7 @@
5
  "license": "GPL-2.0-or-later",
6
  "require": {
7
  "automattic/jetpack-constants": "^1.6",
8
- "automattic/jetpack-assets": "^1.11"
9
  },
10
  "require-dev": {
11
  "automattic/wordbless": "dev-master",
5
  "license": "GPL-2.0-or-later",
6
  "require": {
7
  "automattic/jetpack-constants": "^1.6",
8
+ "automattic/jetpack-assets": "^1.13"
9
  },
10
  "require-dev": {
11
  "automattic/wordbless": "dev-master",
vendor/automattic/jetpack-lazy-images/dist/intersection-observer.js DELETED
@@ -1 +0,0 @@
1
- !function(){var t={};!function(){"use strict";if("object"==typeof window)if("IntersectionObserver"in window&&"IntersectionObserverEntry"in window&&"intersectionRatio"in window.IntersectionObserverEntry.prototype)"isIntersecting"in window.IntersectionObserverEntry.prototype||Object.defineProperty(window.IntersectionObserverEntry.prototype,"isIntersecting",{get:function(){return this.intersectionRatio>0}});else{var t=function(t){for(var e=window.document,o=i(e);o;)o=i(e=o.ownerDocument);return e}(),e=[],o=null,n=null;s.prototype.THROTTLE_TIMEOUT=100,s.prototype.POLL_INTERVAL=null,s.prototype.USE_MUTATION_OBSERVER=!0,s._setupCrossOriginUpdater=function(){return o||(o=function(t,o){n=t&&o?l(t,o):{top:0,bottom:0,left:0,right:0,width:0,height:0},e.forEach((function(t){t._checkForIntersections()}))}),o},s._resetCrossOriginUpdater=function(){o=null,n=null},s.prototype.observe=function(t){if(!this._observationTargets.some((function(e){return e.element==t}))){if(!t||1!=t.nodeType)throw new Error("target must be an Element");this._registerInstance(),this._observationTargets.push({element:t,entry:null}),this._monitorIntersections(t.ownerDocument),this._checkForIntersections()}},s.prototype.unobserve=function(t){this._observationTargets=this._observationTargets.filter((function(e){return e.element!=t})),this._unmonitorIntersections(t.ownerDocument),0==this._observationTargets.length&&this._unregisterInstance()},s.prototype.disconnect=function(){this._observationTargets=[],this._unmonitorAllIntersections(),this._unregisterInstance()},s.prototype.takeRecords=function(){var t=this._queuedEntries.slice();return this._queuedEntries=[],t},s.prototype._initThresholds=function(t){var e=t||[0];return Array.isArray(e)||(e=[e]),e.sort().filter((function(t,e,o){if("number"!=typeof t||isNaN(t)||t<0||t>1)throw new Error("threshold must be a number between 0 and 1 inclusively");return t!==o[e-1]}))},s.prototype._parseRootMargin=function(t){var e=(t||"0px").split(/\s+/).map((function(t){var e=/^(-?\d*\.?\d+)(px|%)$/.exec(t);if(!e)throw new Error("rootMargin must be specified in pixels or percent");return{value:parseFloat(e[1]),unit:e[2]}}));return e[1]=e[1]||e[0],e[2]=e[2]||e[0],e[3]=e[3]||e[1],e},s.prototype._monitorIntersections=function(e){var o=e.defaultView;if(o&&-1==this._monitoringDocuments.indexOf(e)){var n=this._checkForIntersections,r=null,s=null;this.POLL_INTERVAL?r=o.setInterval(n,this.POLL_INTERVAL):(h(o,"resize",n,!0),h(e,"scroll",n,!0),this.USE_MUTATION_OBSERVER&&"MutationObserver"in o&&(s=new o.MutationObserver(n)).observe(e,{attributes:!0,childList:!0,characterData:!0,subtree:!0})),this._monitoringDocuments.push(e),this._monitoringUnsubscribes.push((function(){var t=e.defaultView;t&&(r&&t.clearInterval(r),u(t,"resize",n,!0)),u(e,"scroll",n,!0),s&&s.disconnect()}));var c=this.root&&(this.root.ownerDocument||this.root)||t;if(e!=c){var a=i(e);a&&this._monitorIntersections(a.ownerDocument)}}},s.prototype._unmonitorIntersections=function(e){var o=this._monitoringDocuments.indexOf(e);if(-1!=o){var n=this.root&&(this.root.ownerDocument||this.root)||t,r=this._observationTargets.some((function(t){var o=t.element.ownerDocument;if(o==e)return!0;for(;o&&o!=n;){var r=i(o);if((o=r&&r.ownerDocument)==e)return!0}return!1}));if(!r){var s=this._monitoringUnsubscribes[o];if(this._monitoringDocuments.splice(o,1),this._monitoringUnsubscribes.splice(o,1),s(),e!=n){var h=i(e);h&&this._unmonitorIntersections(h.ownerDocument)}}}},s.prototype._unmonitorAllIntersections=function(){var t=this._monitoringUnsubscribes.slice(0);this._monitoringDocuments.length=0,this._monitoringUnsubscribes.length=0;for(var e=0;e<t.length;e++)t[e]()},s.prototype._checkForIntersections=function(){if(this.root||!o||n){var t=this._rootIsInDom(),e=t?this._getRootRect():{top:0,bottom:0,left:0,right:0,width:0,height:0};this._observationTargets.forEach((function(n){var i=n.element,s=c(i),h=this._rootContainsTarget(i),u=n.entry,a=t&&h&&this._computeTargetAndRootIntersection(i,s,e),l=null;this._rootContainsTarget(i)?o&&!this.root||(l=e):l={top:0,bottom:0,left:0,right:0,width:0,height:0};var f=n.entry=new r({time:window.performance&&performance.now&&performance.now(),target:i,boundingClientRect:s,rootBounds:l,intersectionRect:a});u?t&&h?this._hasCrossedThreshold(u,f)&&this._queuedEntries.push(f):u&&u.isIntersecting&&this._queuedEntries.push(f):this._queuedEntries.push(f)}),this),this._queuedEntries.length&&this._callback(this.takeRecords(),this)}},s.prototype._computeTargetAndRootIntersection=function(e,i,r){if("none"!=window.getComputedStyle(e).display){for(var s,h,u,a,f,d,g,m,v=i,_=p(e),b=!1;!b&&_;){var w=null,y=1==_.nodeType?window.getComputedStyle(_):{};if("none"==y.display)return null;if(_==this.root||9==_.nodeType)if(b=!0,_==this.root||_==t)o&&!this.root?!n||0==n.width&&0==n.height?(_=null,w=null,v=null):w=n:w=r;else{var I=p(_),E=I&&c(I),T=I&&this._computeTargetAndRootIntersection(I,E,r);E&&T?(_=I,w=l(E,T)):(_=null,v=null)}else{var R=_.ownerDocument;_!=R.body&&_!=R.documentElement&&"visible"!=y.overflow&&(w=c(_))}if(w&&(s=w,h=v,u=void 0,a=void 0,f=void 0,d=void 0,g=void 0,m=void 0,u=Math.max(s.top,h.top),a=Math.min(s.bottom,h.bottom),f=Math.max(s.left,h.left),d=Math.min(s.right,h.right),m=a-u,v=(g=d-f)>=0&&m>=0&&{top:u,bottom:a,left:f,right:d,width:g,height:m}||null),!v)break;_=_&&p(_)}return v}},s.prototype._getRootRect=function(){var e;if(this.root&&!d(this.root))e=c(this.root);else{var o=d(this.root)?this.root:t,n=o.documentElement,i=o.body;e={top:0,left:0,right:n.clientWidth||i.clientWidth,width:n.clientWidth||i.clientWidth,bottom:n.clientHeight||i.clientHeight,height:n.clientHeight||i.clientHeight}}return this._expandRectByRootMargin(e)},s.prototype._expandRectByRootMargin=function(t){var e=this._rootMarginValues.map((function(e,o){return"px"==e.unit?e.value:e.value*(o%2?t.width:t.height)/100})),o={top:t.top-e[0],right:t.right+e[1],bottom:t.bottom+e[2],left:t.left-e[3]};return o.width=o.right-o.left,o.height=o.bottom-o.top,o},s.prototype._hasCrossedThreshold=function(t,e){var o=t&&t.isIntersecting?t.intersectionRatio||0:-1,n=e.isIntersecting?e.intersectionRatio||0:-1;if(o!==n)for(var i=0;i<this.thresholds.length;i++){var r=this.thresholds[i];if(r==o||r==n||r<o!=r<n)return!0}},s.prototype._rootIsInDom=function(){return!this.root||f(t,this.root)},s.prototype._rootContainsTarget=function(e){var o=this.root&&(this.root.ownerDocument||this.root)||t;return f(o,e)&&(!this.root||o==e.ownerDocument)},s.prototype._registerInstance=function(){e.indexOf(this)<0&&e.push(this)},s.prototype._unregisterInstance=function(){var t=e.indexOf(this);-1!=t&&e.splice(t,1)},window.IntersectionObserver=s,window.IntersectionObserverEntry=r}function i(t){try{return t.defaultView&&t.defaultView.frameElement||null}catch(e){return null}}function r(t){this.time=t.time,this.target=t.target,this.rootBounds=a(t.rootBounds),this.boundingClientRect=a(t.boundingClientRect),this.intersectionRect=a(t.intersectionRect||{top:0,bottom:0,left:0,right:0,width:0,height:0}),this.isIntersecting=!!t.intersectionRect;var e=this.boundingClientRect,o=e.width*e.height,n=this.intersectionRect,i=n.width*n.height;this.intersectionRatio=o?Number((i/o).toFixed(4)):this.isIntersecting?1:0}function s(t,e){var o,n,i,r=e||{};if("function"!=typeof t)throw new Error("callback must be a function");if(r.root&&1!=r.root.nodeType&&9!=r.root.nodeType)throw new Error("root must be a Document or Element");this._checkForIntersections=(o=this._checkForIntersections.bind(this),n=this.THROTTLE_TIMEOUT,i=null,function(){i||(i=setTimeout((function(){o(),i=null}),n))}),this._callback=t,this._observationTargets=[],this._queuedEntries=[],this._rootMarginValues=this._parseRootMargin(r.rootMargin),this.thresholds=this._initThresholds(r.threshold),this.root=r.root||null,this.rootMargin=this._rootMarginValues.map((function(t){return t.value+t.unit})).join(" "),this._monitoringDocuments=[],this._monitoringUnsubscribes=[]}function h(t,e,o,n){"function"==typeof t.addEventListener?t.addEventListener(e,o,n||!1):"function"==typeof t.attachEvent&&t.attachEvent("on"+e,o)}function u(t,e,o,n){"function"==typeof t.removeEventListener?t.removeEventListener(e,o,n||!1):"function"==typeof t.detatchEvent&&t.detatchEvent("on"+e,o)}function c(t){var e;try{e=t.getBoundingClientRect()}catch(o){}return e?(e.width&&e.height||(e={top:e.top,right:e.right,bottom:e.bottom,left:e.left,width:e.right-e.left,height:e.bottom-e.top}),e):{top:0,bottom:0,left:0,right:0,width:0,height:0}}function a(t){return!t||"x"in t?t:{top:t.top,y:t.top,bottom:t.bottom,left:t.left,x:t.left,right:t.right,width:t.width,height:t.height}}function l(t,e){var o=e.top-t.top,n=e.left-t.left;return{top:o,left:n,height:e.height,width:e.width,bottom:o+e.height,right:n+e.width}}function f(t,e){for(var o=e;o;){if(o==t)return!0;o=p(o)}return!1}function p(e){var o=e.parentNode;return 9==e.nodeType&&e!=t?i(e):(o&&o.assignedSlot&&(o=o.assignedSlot.parentNode),o&&11==o.nodeType&&o.host?o.host:o)}function d(t){return t&&9===t.nodeType}}();var e=window;for(var o in t)e[o]=t[o];t.__esModule&&Object.defineProperty(e,"__esModule",{value:!0})}();
 
vendor/automattic/jetpack-lazy-images/dist/intersection-observer.min.asset.php ADDED
@@ -0,0 +1 @@
 
1
+ <?php return array('dependencies' => array(), 'version' => '2d4bf43f398489795f1893179047a63c');
vendor/automattic/jetpack-lazy-images/dist/intersection-observer.min.js ADDED
@@ -0,0 +1 @@
 
1
+ !function(){"use strict";if("object"==typeof window)if("IntersectionObserver"in window&&"IntersectionObserverEntry"in window&&"intersectionRatio"in window.IntersectionObserverEntry.prototype)"isIntersecting"in window.IntersectionObserverEntry.prototype||Object.defineProperty(window.IntersectionObserverEntry.prototype,"isIntersecting",{get:function(){return this.intersectionRatio>0}});else{var t=function(t){for(var e=window.document,o=i(e);o;)o=i(e=o.ownerDocument);return e}(),e=[],o=null,n=null;s.prototype.THROTTLE_TIMEOUT=100,s.prototype.POLL_INTERVAL=null,s.prototype.USE_MUTATION_OBSERVER=!0,s._setupCrossOriginUpdater=function(){return o||(o=function(t,o){n=t&&o?l(t,o):{top:0,bottom:0,left:0,right:0,width:0,height:0},e.forEach((function(t){t._checkForIntersections()}))}),o},s._resetCrossOriginUpdater=function(){o=null,n=null},s.prototype.observe=function(t){if(!this._observationTargets.some((function(e){return e.element==t}))){if(!t||1!=t.nodeType)throw new Error("target must be an Element");this._registerInstance(),this._observationTargets.push({element:t,entry:null}),this._monitorIntersections(t.ownerDocument),this._checkForIntersections()}},s.prototype.unobserve=function(t){this._observationTargets=this._observationTargets.filter((function(e){return e.element!=t})),this._unmonitorIntersections(t.ownerDocument),0==this._observationTargets.length&&this._unregisterInstance()},s.prototype.disconnect=function(){this._observationTargets=[],this._unmonitorAllIntersections(),this._unregisterInstance()},s.prototype.takeRecords=function(){var t=this._queuedEntries.slice();return this._queuedEntries=[],t},s.prototype._initThresholds=function(t){var e=t||[0];return Array.isArray(e)||(e=[e]),e.sort().filter((function(t,e,o){if("number"!=typeof t||isNaN(t)||t<0||t>1)throw new Error("threshold must be a number between 0 and 1 inclusively");return t!==o[e-1]}))},s.prototype._parseRootMargin=function(t){var e=(t||"0px").split(/\s+/).map((function(t){var e=/^(-?\d*\.?\d+)(px|%)$/.exec(t);if(!e)throw new Error("rootMargin must be specified in pixels or percent");return{value:parseFloat(e[1]),unit:e[2]}}));return e[1]=e[1]||e[0],e[2]=e[2]||e[0],e[3]=e[3]||e[1],e},s.prototype._monitorIntersections=function(e){var o=e.defaultView;if(o&&-1==this._monitoringDocuments.indexOf(e)){var n=this._checkForIntersections,r=null,s=null;this.POLL_INTERVAL?r=o.setInterval(n,this.POLL_INTERVAL):(h(o,"resize",n,!0),h(e,"scroll",n,!0),this.USE_MUTATION_OBSERVER&&"MutationObserver"in o&&(s=new o.MutationObserver(n)).observe(e,{attributes:!0,childList:!0,characterData:!0,subtree:!0})),this._monitoringDocuments.push(e),this._monitoringUnsubscribes.push((function(){var t=e.defaultView;t&&(r&&t.clearInterval(r),c(t,"resize",n,!0)),c(e,"scroll",n,!0),s&&s.disconnect()}));var u=this.root&&(this.root.ownerDocument||this.root)||t;if(e!=u){var a=i(e);a&&this._monitorIntersections(a.ownerDocument)}}},s.prototype._unmonitorIntersections=function(e){var o=this._monitoringDocuments.indexOf(e);if(-1!=o){var n=this.root&&(this.root.ownerDocument||this.root)||t,r=this._observationTargets.some((function(t){var o=t.element.ownerDocument;if(o==e)return!0;for(;o&&o!=n;){var r=i(o);if((o=r&&r.ownerDocument)==e)return!0}return!1}));if(!r){var s=this._monitoringUnsubscribes[o];if(this._monitoringDocuments.splice(o,1),this._monitoringUnsubscribes.splice(o,1),s(),e!=n){var h=i(e);h&&this._unmonitorIntersections(h.ownerDocument)}}}},s.prototype._unmonitorAllIntersections=function(){var t=this._monitoringUnsubscribes.slice(0);this._monitoringDocuments.length=0,this._monitoringUnsubscribes.length=0;for(var e=0;e<t.length;e++)t[e]()},s.prototype._checkForIntersections=function(){if(this.root||!o||n){var t=this._rootIsInDom(),e=t?this._getRootRect():{top:0,bottom:0,left:0,right:0,width:0,height:0};this._observationTargets.forEach((function(n){var i=n.element,s=u(i),h=this._rootContainsTarget(i),c=n.entry,a=t&&h&&this._computeTargetAndRootIntersection(i,s,e),l=null;this._rootContainsTarget(i)?o&&!this.root||(l=e):l={top:0,bottom:0,left:0,right:0,width:0,height:0};var f=n.entry=new r({time:window.performance&&performance.now&&performance.now(),target:i,boundingClientRect:s,rootBounds:l,intersectionRect:a});c?t&&h?this._hasCrossedThreshold(c,f)&&this._queuedEntries.push(f):c&&c.isIntersecting&&this._queuedEntries.push(f):this._queuedEntries.push(f)}),this),this._queuedEntries.length&&this._callback(this.takeRecords(),this)}},s.prototype._computeTargetAndRootIntersection=function(e,i,r){if("none"!=window.getComputedStyle(e).display){for(var s,h,c,a,f,d,g,m,v=i,_=p(e),b=!1;!b&&_;){var w=null,y=1==_.nodeType?window.getComputedStyle(_):{};if("none"==y.display)return null;if(_==this.root||9==_.nodeType)if(b=!0,_==this.root||_==t)o&&!this.root?!n||0==n.width&&0==n.height?(_=null,w=null,v=null):w=n:w=r;else{var I=p(_),E=I&&u(I),T=I&&this._computeTargetAndRootIntersection(I,E,r);E&&T?(_=I,w=l(E,T)):(_=null,v=null)}else{var R=_.ownerDocument;_!=R.body&&_!=R.documentElement&&"visible"!=y.overflow&&(w=u(_))}if(w&&(s=w,h=v,c=void 0,a=void 0,f=void 0,d=void 0,g=void 0,m=void 0,c=Math.max(s.top,h.top),a=Math.min(s.bottom,h.bottom),f=Math.max(s.left,h.left),d=Math.min(s.right,h.right),m=a-c,v=(g=d-f)>=0&&m>=0&&{top:c,bottom:a,left:f,right:d,width:g,height:m}||null),!v)break;_=_&&p(_)}return v}},s.prototype._getRootRect=function(){var e;if(this.root&&!d(this.root))e=u(this.root);else{var o=d(this.root)?this.root:t,n=o.documentElement,i=o.body;e={top:0,left:0,right:n.clientWidth||i.clientWidth,width:n.clientWidth||i.clientWidth,bottom:n.clientHeight||i.clientHeight,height:n.clientHeight||i.clientHeight}}return this._expandRectByRootMargin(e)},s.prototype._expandRectByRootMargin=function(t){var e=this._rootMarginValues.map((function(e,o){return"px"==e.unit?e.value:e.value*(o%2?t.width:t.height)/100})),o={top:t.top-e[0],right:t.right+e[1],bottom:t.bottom+e[2],left:t.left-e[3]};return o.width=o.right-o.left,o.height=o.bottom-o.top,o},s.prototype._hasCrossedThreshold=function(t,e){var o=t&&t.isIntersecting?t.intersectionRatio||0:-1,n=e.isIntersecting?e.intersectionRatio||0:-1;if(o!==n)for(var i=0;i<this.thresholds.length;i++){var r=this.thresholds[i];if(r==o||r==n||r<o!=r<n)return!0}},s.prototype._rootIsInDom=function(){return!this.root||f(t,this.root)},s.prototype._rootContainsTarget=function(e){var o=this.root&&(this.root.ownerDocument||this.root)||t;return f(o,e)&&(!this.root||o==e.ownerDocument)},s.prototype._registerInstance=function(){e.indexOf(this)<0&&e.push(this)},s.prototype._unregisterInstance=function(){var t=e.indexOf(this);-1!=t&&e.splice(t,1)},window.IntersectionObserver=s,window.IntersectionObserverEntry=r}function i(t){try{return t.defaultView&&t.defaultView.frameElement||null}catch(t){return null}}function r(t){this.time=t.time,this.target=t.target,this.rootBounds=a(t.rootBounds),this.boundingClientRect=a(t.boundingClientRect),this.intersectionRect=a(t.intersectionRect||{top:0,bottom:0,left:0,right:0,width:0,height:0}),this.isIntersecting=!!t.intersectionRect;var e=this.boundingClientRect,o=e.width*e.height,n=this.intersectionRect,i=n.width*n.height;this.intersectionRatio=o?Number((i/o).toFixed(4)):this.isIntersecting?1:0}function s(t,e){var o,n,i,r=e||{};if("function"!=typeof t)throw new Error("callback must be a function");if(r.root&&1!=r.root.nodeType&&9!=r.root.nodeType)throw new Error("root must be a Document or Element");this._checkForIntersections=(o=this._checkForIntersections.bind(this),n=this.THROTTLE_TIMEOUT,i=null,function(){i||(i=setTimeout((function(){o(),i=null}),n))}),this._callback=t,this._observationTargets=[],this._queuedEntries=[],this._rootMarginValues=this._parseRootMargin(r.rootMargin),this.thresholds=this._initThresholds(r.threshold),this.root=r.root||null,this.rootMargin=this._rootMarginValues.map((function(t){return t.value+t.unit})).join(" "),this._monitoringDocuments=[],this._monitoringUnsubscribes=[]}function h(t,e,o,n){"function"==typeof t.addEventListener?t.addEventListener(e,o,n||!1):"function"==typeof t.attachEvent&&t.attachEvent("on"+e,o)}function c(t,e,o,n){"function"==typeof t.removeEventListener?t.removeEventListener(e,o,n||!1):"function"==typeof t.detatchEvent&&t.detatchEvent("on"+e,o)}function u(t){var e;try{e=t.getBoundingClientRect()}catch(t){}return e?(e.width&&e.height||(e={top:e.top,right:e.right,bottom:e.bottom,left:e.left,width:e.right-e.left,height:e.bottom-e.top}),e):{top:0,bottom:0,left:0,right:0,width:0,height:0}}function a(t){return!t||"x"in t?t:{top:t.top,y:t.top,bottom:t.bottom,left:t.left,x:t.left,right:t.right,width:t.width,height:t.height}}function l(t,e){var o=e.top-t.top,n=e.left-t.left;return{top:o,left:n,height:e.height,width:e.width,bottom:o+e.height,right:n+e.width}}function f(t,e){for(var o=e;o;){if(o==t)return!0;o=p(o)}return!1}function p(e){var o=e.parentNode;return 9==e.nodeType&&e!=t?i(e):(o&&o.assignedSlot&&(o=o.assignedSlot.parentNode),o&&11==o.nodeType&&o.host?o.host:o)}function d(t){return t&&9===t.nodeType}}();
vendor/automattic/jetpack-lazy-images/dist/intersection-observer.src.js CHANGED
@@ -1,1014 +1 @@
1
- /**
2
- * Copyright 2016 Google Inc. All Rights Reserved.
3
- *
4
- * Licensed under the W3C SOFTWARE AND DOCUMENT NOTICE AND LICENSE.
5
- *
6
- * https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document
7
- *
8
- */
9
- (function() {
10
- 'use strict';
11
-
12
- // Exit early if we're not running in a browser.
13
- if (typeof window !== 'object') {
14
- return;
15
- }
16
-
17
- // Exit early if all IntersectionObserver and IntersectionObserverEntry
18
- // features are natively supported.
19
- if ('IntersectionObserver' in window &&
20
- 'IntersectionObserverEntry' in window &&
21
- 'intersectionRatio' in window.IntersectionObserverEntry.prototype) {
22
-
23
- // Minimal polyfill for Edge 15's lack of `isIntersecting`
24
- // See: https://github.com/w3c/IntersectionObserver/issues/211
25
- if (!('isIntersecting' in window.IntersectionObserverEntry.prototype)) {
26
- Object.defineProperty(window.IntersectionObserverEntry.prototype,
27
- 'isIntersecting', {
28
- get: function () {
29
- return this.intersectionRatio > 0;
30
- }
31
- });
32
- }
33
- return;
34
- }
35
-
36
- /**
37
- * Returns the embedding frame element, if any.
38
- * @param {!Document} doc
39
- * @return {!Element}
40
- */
41
- function getFrameElement(doc) {
42
- try {
43
- return doc.defaultView && doc.defaultView.frameElement || null;
44
- } catch (e) {
45
- // Ignore the error.
46
- return null;
47
- }
48
- }
49
-
50
- /**
51
- * A local reference to the root document.
52
- */
53
- var document = (function(startDoc) {
54
- var doc = startDoc;
55
- var frame = getFrameElement(doc);
56
- while (frame) {
57
- doc = frame.ownerDocument;
58
- frame = getFrameElement(doc);
59
- }
60
- return doc;
61
- })(window.document);
62
-
63
- /**
64
- * An IntersectionObserver registry. This registry exists to hold a strong
65
- * reference to IntersectionObserver instances currently observing a target
66
- * element. Without this registry, instances without another reference may be
67
- * garbage collected.
68
- */
69
- var registry = [];
70
-
71
- /**
72
- * The signal updater for cross-origin intersection. When not null, it means
73
- * that the polyfill is configured to work in a cross-origin mode.
74
- * @type {function(DOMRect|ClientRect, DOMRect|ClientRect)}
75
- */
76
- var crossOriginUpdater = null;
77
-
78
- /**
79
- * The current cross-origin intersection. Only used in the cross-origin mode.
80
- * @type {DOMRect|ClientRect}
81
- */
82
- var crossOriginRect = null;
83
-
84
-
85
- /**
86
- * Creates the global IntersectionObserverEntry constructor.
87
- * https://w3c.github.io/IntersectionObserver/#intersection-observer-entry
88
- * @param {Object} entry A dictionary of instance properties.
89
- * @constructor
90
- */
91
- function IntersectionObserverEntry(entry) {
92
- this.time = entry.time;
93
- this.target = entry.target;
94
- this.rootBounds = ensureDOMRect(entry.rootBounds);
95
- this.boundingClientRect = ensureDOMRect(entry.boundingClientRect);
96
- this.intersectionRect = ensureDOMRect(entry.intersectionRect || getEmptyRect());
97
- this.isIntersecting = !!entry.intersectionRect;
98
-
99
- // Calculates the intersection ratio.
100
- var targetRect = this.boundingClientRect;
101
- var targetArea = targetRect.width * targetRect.height;
102
- var intersectionRect = this.intersectionRect;
103
- var intersectionArea = intersectionRect.width * intersectionRect.height;
104
-
105
- // Sets intersection ratio.
106
- if (targetArea) {
107
- // Round the intersection ratio to avoid floating point math issues:
108
- // https://github.com/w3c/IntersectionObserver/issues/324
109
- this.intersectionRatio = Number((intersectionArea / targetArea).toFixed(4));
110
- } else {
111
- // If area is zero and is intersecting, sets to 1, otherwise to 0
112
- this.intersectionRatio = this.isIntersecting ? 1 : 0;
113
- }
114
- }
115
-
116
-
117
- /**
118
- * Creates the global IntersectionObserver constructor.
119
- * https://w3c.github.io/IntersectionObserver/#intersection-observer-interface
120
- * @param {Function} callback The function to be invoked after intersection
121
- * changes have queued. The function is not invoked if the queue has
122
- * been emptied by calling the `takeRecords` method.
123
- * @param {Object=} opt_options Optional configuration options.
124
- * @constructor
125
- */
126
- function IntersectionObserver(callback, opt_options) {
127
-
128
- var options = opt_options || {};
129
-
130
- if (typeof callback != 'function') {
131
- throw new Error('callback must be a function');
132
- }
133
-
134
- if (
135
- options.root &&
136
- options.root.nodeType != 1 &&
137
- options.root.nodeType != 9
138
- ) {
139
- throw new Error('root must be a Document or Element');
140
- }
141
-
142
- // Binds and throttles `this._checkForIntersections`.
143
- this._checkForIntersections = throttle(
144
- this._checkForIntersections.bind(this), this.THROTTLE_TIMEOUT);
145
-
146
- // Private properties.
147
- this._callback = callback;
148
- this._observationTargets = [];
149
- this._queuedEntries = [];
150
- this._rootMarginValues = this._parseRootMargin(options.rootMargin);
151
-
152
- // Public properties.
153
- this.thresholds = this._initThresholds(options.threshold);
154
- this.root = options.root || null;
155
- this.rootMargin = this._rootMarginValues.map(function(margin) {
156
- return margin.value + margin.unit;
157
- }).join(' ');
158
-
159
- /** @private @const {!Array<!Document>} */
160
- this._monitoringDocuments = [];
161
- /** @private @const {!Array<function()>} */
162
- this._monitoringUnsubscribes = [];
163
- }
164
-
165
-
166
- /**
167
- * The minimum interval within which the document will be checked for
168
- * intersection changes.
169
- */
170
- IntersectionObserver.prototype.THROTTLE_TIMEOUT = 100;
171
-
172
-
173
- /**
174
- * The frequency in which the polyfill polls for intersection changes.
175
- * this can be updated on a per instance basis and must be set prior to
176
- * calling `observe` on the first target.
177
- */
178
- IntersectionObserver.prototype.POLL_INTERVAL = null;
179
-
180
- /**
181
- * Use a mutation observer on the root element
182
- * to detect intersection changes.
183
- */
184
- IntersectionObserver.prototype.USE_MUTATION_OBSERVER = true;
185
-
186
-
187
- /**
188
- * Sets up the polyfill in the cross-origin mode. The result is the
189
- * updater function that accepts two arguments: `boundingClientRect` and
190
- * `intersectionRect` - just as these fields would be available to the
191
- * parent via `IntersectionObserverEntry`. This function should be called
192
- * each time the iframe receives intersection information from the parent
193
- * window, e.g. via messaging.
194
- * @return {function(DOMRect|ClientRect, DOMRect|ClientRect)}
195
- */
196
- IntersectionObserver._setupCrossOriginUpdater = function() {
197
- if (!crossOriginUpdater) {
198
- /**
199
- * @param {DOMRect|ClientRect} boundingClientRect
200
- * @param {DOMRect|ClientRect} intersectionRect
201
- */
202
- crossOriginUpdater = function(boundingClientRect, intersectionRect) {
203
- if (!boundingClientRect || !intersectionRect) {
204
- crossOriginRect = getEmptyRect();
205
- } else {
206
- crossOriginRect = convertFromParentRect(boundingClientRect, intersectionRect);
207
- }
208
- registry.forEach(function(observer) {
209
- observer._checkForIntersections();
210
- });
211
- };
212
- }
213
- return crossOriginUpdater;
214
- };
215
-
216
-
217
- /**
218
- * Resets the cross-origin mode.
219
- */
220
- IntersectionObserver._resetCrossOriginUpdater = function() {
221
- crossOriginUpdater = null;
222
- crossOriginRect = null;
223
- };
224
-
225
-
226
- /**
227
- * Starts observing a target element for intersection changes based on
228
- * the thresholds values.
229
- * @param {Element} target The DOM element to observe.
230
- */
231
- IntersectionObserver.prototype.observe = function(target) {
232
- var isTargetAlreadyObserved = this._observationTargets.some(function(item) {
233
- return item.element == target;
234
- });
235
-
236
- if (isTargetAlreadyObserved) {
237
- return;
238
- }
239
-
240
- if (!(target && target.nodeType == 1)) {
241
- throw new Error('target must be an Element');
242
- }
243
-
244
- this._registerInstance();
245
- this._observationTargets.push({element: target, entry: null});
246
- this._monitorIntersections(target.ownerDocument);
247
- this._checkForIntersections();
248
- };
249
-
250
-
251
- /**
252
- * Stops observing a target element for intersection changes.
253
- * @param {Element} target The DOM element to observe.
254
- */
255
- IntersectionObserver.prototype.unobserve = function(target) {
256
- this._observationTargets =
257
- this._observationTargets.filter(function(item) {
258
- return item.element != target;
259
- });
260
- this._unmonitorIntersections(target.ownerDocument);
261
- if (this._observationTargets.length == 0) {
262
- this._unregisterInstance();
263
- }
264
- };
265
-
266
-
267
- /**
268
- * Stops observing all target elements for intersection changes.
269
- */
270
- IntersectionObserver.prototype.disconnect = function() {
271
- this._observationTargets = [];
272
- this._unmonitorAllIntersections();
273
- this._unregisterInstance();
274
- };
275
-
276
-
277
- /**
278
- * Returns any queue entries that have not yet been reported to the
279
- * callback and clears the queue. This can be used in conjunction with the
280
- * callback to obtain the absolute most up-to-date intersection information.
281
- * @return {Array} The currently queued entries.
282
- */
283
- IntersectionObserver.prototype.takeRecords = function() {
284
- var records = this._queuedEntries.slice();
285
- this._queuedEntries = [];
286
- return records;
287
- };
288
-
289
-
290
- /**
291
- * Accepts the threshold value from the user configuration object and
292
- * returns a sorted array of unique threshold values. If a value is not
293
- * between 0 and 1 and error is thrown.
294
- * @private
295
- * @param {Array|number=} opt_threshold An optional threshold value or
296
- * a list of threshold values, defaulting to [0].
297
- * @return {Array} A sorted list of unique and valid threshold values.
298
- */
299
- IntersectionObserver.prototype._initThresholds = function(opt_threshold) {
300
- var threshold = opt_threshold || [0];
301
- if (!Array.isArray(threshold)) threshold = [threshold];
302
-
303
- return threshold.sort().filter(function(t, i, a) {
304
- if (typeof t != 'number' || isNaN(t) || t < 0 || t > 1) {
305
- throw new Error('threshold must be a number between 0 and 1 inclusively');
306
- }
307
- return t !== a[i - 1];
308
- });
309
- };
310
-
311
-
312
- /**
313
- * Accepts the rootMargin value from the user configuration object
314
- * and returns an array of the four margin values as an object containing
315
- * the value and unit properties. If any of the values are not properly
316
- * formatted or use a unit other than px or %, and error is thrown.
317
- * @private
318
- * @param {string=} opt_rootMargin An optional rootMargin value,
319
- * defaulting to '0px'.
320
- * @return {Array<Object>} An array of margin objects with the keys
321
- * value and unit.
322
- */
323
- IntersectionObserver.prototype._parseRootMargin = function(opt_rootMargin) {
324
- var marginString = opt_rootMargin || '0px';
325
- var margins = marginString.split(/\s+/).map(function(margin) {
326
- var parts = /^(-?\d*\.?\d+)(px|%)$/.exec(margin);
327
- if (!parts) {
328
- throw new Error('rootMargin must be specified in pixels or percent');
329
- }
330
- return {value: parseFloat(parts[1]), unit: parts[2]};
331
- });
332
-
333
- // Handles shorthand.
334
- margins[1] = margins[1] || margins[0];
335
- margins[2] = margins[2] || margins[0];
336
- margins[3] = margins[3] || margins[1];
337
-
338
- return margins;
339
- };
340
-
341
-
342
- /**
343
- * Starts polling for intersection changes if the polling is not already
344
- * happening, and if the page's visibility state is visible.
345
- * @param {!Document} doc
346
- * @private
347
- */
348
- IntersectionObserver.prototype._monitorIntersections = function(doc) {
349
- var win = doc.defaultView;
350
- if (!win) {
351
- // Already destroyed.
352
- return;
353
- }
354
- if (this._monitoringDocuments.indexOf(doc) != -1) {
355
- // Already monitoring.
356
- return;
357
- }
358
-
359
- // Private state for monitoring.
360
- var callback = this._checkForIntersections;
361
- var monitoringInterval = null;
362
- var domObserver = null;
363
-
364
- // If a poll interval is set, use polling instead of listening to
365
- // resize and scroll events or DOM mutations.
366
- if (this.POLL_INTERVAL) {
367
- monitoringInterval = win.setInterval(callback, this.POLL_INTERVAL);
368
- } else {
369
- addEvent(win, 'resize', callback, true);
370
- addEvent(doc, 'scroll', callback, true);
371
- if (this.USE_MUTATION_OBSERVER && 'MutationObserver' in win) {
372
- domObserver = new win.MutationObserver(callback);
373
- domObserver.observe(doc, {
374
- attributes: true,
375
- childList: true,
376
- characterData: true,
377
- subtree: true
378
- });
379
- }
380
- }
381
-
382
- this._monitoringDocuments.push(doc);
383
- this._monitoringUnsubscribes.push(function() {
384
- // Get the window object again. When a friendly iframe is destroyed, it
385
- // will be null.
386
- var win = doc.defaultView;
387
-
388
- if (win) {
389
- if (monitoringInterval) {
390
- win.clearInterval(monitoringInterval);
391
- }
392
- removeEvent(win, 'resize', callback, true);
393
- }
394
-
395
- removeEvent(doc, 'scroll', callback, true);
396
- if (domObserver) {
397
- domObserver.disconnect();
398
- }
399
- });
400
-
401
- // Also monitor the parent.
402
- var rootDoc =
403
- (this.root && (this.root.ownerDocument || this.root)) || document;
404
- if (doc != rootDoc) {
405
- var frame = getFrameElement(doc);
406
- if (frame) {
407
- this._monitorIntersections(frame.ownerDocument);
408
- }
409
- }
410
- };
411
-
412
-
413
- /**
414
- * Stops polling for intersection changes.
415
- * @param {!Document} doc
416
- * @private
417
- */
418
- IntersectionObserver.prototype._unmonitorIntersections = function(doc) {
419
- var index = this._monitoringDocuments.indexOf(doc);
420
- if (index == -1) {
421
- return;
422
- }
423
-
424
- var rootDoc =
425
- (this.root && (this.root.ownerDocument || this.root)) || document;
426
-
427
- // Check if any dependent targets are still remaining.
428
- var hasDependentTargets =
429
- this._observationTargets.some(function(item) {
430
- var itemDoc = item.element.ownerDocument;
431
- // Target is in this context.
432
- if (itemDoc == doc) {
433
- return true;
434
- }
435
- // Target is nested in this context.
436
- while (itemDoc && itemDoc != rootDoc) {
437
- var frame = getFrameElement(itemDoc);
438
- itemDoc = frame && frame.ownerDocument;
439
- if (itemDoc == doc) {
440
- return true;
441
- }
442
- }
443
- return false;
444
- });
445
- if (hasDependentTargets) {
446
- return;
447
- }
448
-
449
- // Unsubscribe.
450
- var unsubscribe = this._monitoringUnsubscribes[index];
451
- this._monitoringDocuments.splice(index, 1);
452
- this._monitoringUnsubscribes.splice(index, 1);
453
- unsubscribe();
454
-
455
- // Also unmonitor the parent.
456
- if (doc != rootDoc) {
457
- var frame = getFrameElement(doc);
458
- if (frame) {
459
- this._unmonitorIntersections(frame.ownerDocument);
460
- }
461
- }
462
- };
463
-
464
-
465
- /**
466
- * Stops polling for intersection changes.
467
- * @param {!Document} doc
468
- * @private
469
- */
470
- IntersectionObserver.prototype._unmonitorAllIntersections = function() {
471
- var unsubscribes = this._monitoringUnsubscribes.slice(0);
472
- this._monitoringDocuments.length = 0;
473
- this._monitoringUnsubscribes.length = 0;
474
- for (var i = 0; i < unsubscribes.length; i++) {
475
- unsubscribes[i]();
476
- }
477
- };
478
-
479
-
480
- /**
481
- * Scans each observation target for intersection changes and adds them
482
- * to the internal entries queue. If new entries are found, it
483
- * schedules the callback to be invoked.
484
- * @private
485
- */
486
- IntersectionObserver.prototype._checkForIntersections = function() {
487
- if (!this.root && crossOriginUpdater && !crossOriginRect) {
488
- // Cross origin monitoring, but no initial data available yet.
489
- return;
490
- }
491
-
492
- var rootIsInDom = this._rootIsInDom();
493
- var rootRect = rootIsInDom ? this._getRootRect() : getEmptyRect();
494
-
495
- this._observationTargets.forEach(function(item) {
496
- var target = item.element;
497
- var targetRect = getBoundingClientRect(target);
498
- var rootContainsTarget = this._rootContainsTarget(target);
499
- var oldEntry = item.entry;
500
- var intersectionRect = rootIsInDom && rootContainsTarget &&
501
- this._computeTargetAndRootIntersection(target, targetRect, rootRect);
502
-
503
- var rootBounds = null;
504
- if (!this._rootContainsTarget(target)) {
505
- rootBounds = getEmptyRect();
506
- } else if (!crossOriginUpdater || this.root) {
507
- rootBounds = rootRect;
508
- }
509
-
510
- var newEntry = item.entry = new IntersectionObserverEntry({
511
- time: now(),
512
- target: target,
513
- boundingClientRect: targetRect,
514
- rootBounds: rootBounds,
515
- intersectionRect: intersectionRect
516
- });
517
-
518
- if (!oldEntry) {
519
- this._queuedEntries.push(newEntry);
520
- } else if (rootIsInDom && rootContainsTarget) {
521
- // If the new entry intersection ratio has crossed any of the
522
- // thresholds, add a new entry.
523
- if (this._hasCrossedThreshold(oldEntry, newEntry)) {
524
- this._queuedEntries.push(newEntry);
525
- }
526
- } else {
527
- // If the root is not in the DOM or target is not contained within
528
- // root but the previous entry for this target had an intersection,
529
- // add a new record indicating removal.
530
- if (oldEntry && oldEntry.isIntersecting) {
531
- this._queuedEntries.push(newEntry);
532
- }
533
- }
534
- }, this);
535
-
536
- if (this._queuedEntries.length) {
537
- this._callback(this.takeRecords(), this);
538
- }
539
- };
540
-
541
-
542
- /**
543
- * Accepts a target and root rect computes the intersection between then
544
- * following the algorithm in the spec.
545
- * TODO(philipwalton): at this time clip-path is not considered.
546
- * https://w3c.github.io/IntersectionObserver/#calculate-intersection-rect-algo
547
- * @param {Element} target The target DOM element
548
- * @param {Object} targetRect The bounding rect of the target.
549
- * @param {Object} rootRect The bounding rect of the root after being
550
- * expanded by the rootMargin value.
551
- * @return {?Object} The final intersection rect object or undefined if no
552
- * intersection is found.
553
- * @private
554
- */
555
- IntersectionObserver.prototype._computeTargetAndRootIntersection =
556
- function(target, targetRect, rootRect) {
557
- // If the element isn't displayed, an intersection can't happen.
558
- if (window.getComputedStyle(target).display == 'none') return;
559
-
560
- var intersectionRect = targetRect;
561
- var parent = getParentNode(target);
562
- var atRoot = false;
563
-
564
- while (!atRoot && parent) {
565
- var parentRect = null;
566
- var parentComputedStyle = parent.nodeType == 1 ?
567
- window.getComputedStyle(parent) : {};
568
-
569
- // If the parent isn't displayed, an intersection can't happen.
570
- if (parentComputedStyle.display == 'none') return null;
571
-
572
- if (parent == this.root || parent.nodeType == /* DOCUMENT */ 9) {
573
- atRoot = true;
574
- if (parent == this.root || parent == document) {
575
- if (crossOriginUpdater && !this.root) {
576
- if (!crossOriginRect ||
577
- crossOriginRect.width == 0 && crossOriginRect.height == 0) {
578
- // A 0-size cross-origin intersection means no-intersection.
579
- parent = null;
580
- parentRect = null;
581
- intersectionRect = null;
582
- } else {
583
- parentRect = crossOriginRect;
584
- }
585
- } else {
586
- parentRect = rootRect;
587
- }
588
- } else {
589
- // Check if there's a frame that can be navigated to.
590
- var frame = getParentNode(parent);
591
- var frameRect = frame && getBoundingClientRect(frame);
592
- var frameIntersect =
593
- frame &&
594
- this._computeTargetAndRootIntersection(frame, frameRect, rootRect);
595
- if (frameRect && frameIntersect) {
596
- parent = frame;
597
- parentRect = convertFromParentRect(frameRect, frameIntersect);
598
- } else {
599
- parent = null;
600
- intersectionRect = null;
601
- }
602
- }
603
- } else {
604
- // If the element has a non-visible overflow, and it's not the <body>
605
- // or <html> element, update the intersection rect.
606
- // Note: <body> and <html> cannot be clipped to a rect that's not also
607
- // the document rect, so no need to compute a new intersection.
608
- var doc = parent.ownerDocument;
609
- if (parent != doc.body &&
610
- parent != doc.documentElement &&
611
- parentComputedStyle.overflow != 'visible') {
612
- parentRect = getBoundingClientRect(parent);
613
- }
614
- }
615
-
616
- // If either of the above conditionals set a new parentRect,
617
- // calculate new intersection data.
618
- if (parentRect) {
619
- intersectionRect = computeRectIntersection(parentRect, intersectionRect);
620
- }
621
- if (!intersectionRect) break;
622
- parent = parent && getParentNode(parent);
623
- }
624
- return intersectionRect;
625
- };
626
-
627
-
628
- /**
629
- * Returns the root rect after being expanded by the rootMargin value.
630
- * @return {ClientRect} The expanded root rect.
631
- * @private
632
- */
633
- IntersectionObserver.prototype._getRootRect = function() {
634
- var rootRect;
635
- if (this.root && !isDoc(this.root)) {
636
- rootRect = getBoundingClientRect(this.root);
637
- } else {
638
- // Use <html>/<body> instead of window since scroll bars affect size.
639
- var doc = isDoc(this.root) ? this.root : document;
640
- var html = doc.documentElement;
641
- var body = doc.body;
642
- rootRect = {
643
- top: 0,
644
- left: 0,
645
- right: html.clientWidth || body.clientWidth,
646
- width: html.clientWidth || body.clientWidth,
647
- bottom: html.clientHeight || body.clientHeight,
648
- height: html.clientHeight || body.clientHeight
649
- };
650
- }
651
- return this._expandRectByRootMargin(rootRect);
652
- };
653
-
654
-
655
- /**
656
- * Accepts a rect and expands it by the rootMargin value.
657
- * @param {DOMRect|ClientRect} rect The rect object to expand.
658
- * @return {ClientRect} The expanded rect.
659
- * @private
660
- */
661
- IntersectionObserver.prototype._expandRectByRootMargin = function(rect) {
662
- var margins = this._rootMarginValues.map(function(margin, i) {
663
- return margin.unit == 'px' ? margin.value :
664
- margin.value * (i % 2 ? rect.width : rect.height) / 100;
665
- });
666
- var newRect = {
667
- top: rect.top - margins[0],
668
- right: rect.right + margins[1],
669
- bottom: rect.bottom + margins[2],
670
- left: rect.left - margins[3]
671
- };
672
- newRect.width = newRect.right - newRect.left;
673
- newRect.height = newRect.bottom - newRect.top;
674
-
675
- return newRect;
676
- };
677
-
678
-
679
- /**
680
- * Accepts an old and new entry and returns true if at least one of the
681
- * threshold values has been crossed.
682
- * @param {?IntersectionObserverEntry} oldEntry The previous entry for a
683
- * particular target element or null if no previous entry exists.
684
- * @param {IntersectionObserverEntry} newEntry The current entry for a
685
- * particular target element.
686
- * @return {boolean} Returns true if a any threshold has been crossed.
687
- * @private
688
- */
689
- IntersectionObserver.prototype._hasCrossedThreshold =
690
- function(oldEntry, newEntry) {
691
-
692
- // To make comparing easier, an entry that has a ratio of 0
693
- // but does not actually intersect is given a value of -1
694
- var oldRatio = oldEntry && oldEntry.isIntersecting ?
695
- oldEntry.intersectionRatio || 0 : -1;
696
- var newRatio = newEntry.isIntersecting ?
697
- newEntry.intersectionRatio || 0 : -1;
698
-
699
- // Ignore unchanged ratios
700
- if (oldRatio === newRatio) return;
701
-
702
- for (var i = 0; i < this.thresholds.length; i++) {
703
- var threshold = this.thresholds[i];
704
-
705
- // Return true if an entry matches a threshold or if the new ratio
706
- // and the old ratio are on the opposite sides of a threshold.
707
- if (threshold == oldRatio || threshold == newRatio ||
708
- threshold < oldRatio !== threshold < newRatio) {
709
- return true;
710
- }
711
- }
712
- };
713
-
714
-
715
- /**
716
- * Returns whether or not the root element is an element and is in the DOM.
717
- * @return {boolean} True if the root element is an element and is in the DOM.
718
- * @private
719
- */
720
- IntersectionObserver.prototype._rootIsInDom = function() {
721
- return !this.root || containsDeep(document, this.root);
722
- };
723
-
724
-
725
- /**
726
- * Returns whether or not the target element is a child of root.
727
- * @param {Element} target The target element to check.
728
- * @return {boolean} True if the target element is a child of root.
729
- * @private
730
- */
731
- IntersectionObserver.prototype._rootContainsTarget = function(target) {
732
- var rootDoc =
733
- (this.root && (this.root.ownerDocument || this.root)) || document;
734
- return (
735
- containsDeep(rootDoc, target) &&
736
- (!this.root || rootDoc == target.ownerDocument)
737
- );
738
- };
739
-
740
-
741
- /**
742
- * Adds the instance to the global IntersectionObserver registry if it isn't
743
- * already present.
744
- * @private
745
- */
746
- IntersectionObserver.prototype._registerInstance = function() {
747
- if (registry.indexOf(this) < 0) {
748
- registry.push(this);
749
- }
750
- };
751
-
752
-
753
- /**
754
- * Removes the instance from the global IntersectionObserver registry.
755
- * @private
756
- */
757
- IntersectionObserver.prototype._unregisterInstance = function() {
758
- var index = registry.indexOf(this);
759
- if (index != -1) registry.splice(index, 1);
760
- };
761
-
762
-
763
- /**
764
- * Returns the result of the performance.now() method or null in browsers
765
- * that don't support the API.
766
- * @return {number} The elapsed time since the page was requested.
767
- */
768
- function now() {
769
- return window.performance && performance.now && performance.now();
770
- }
771
-
772
-
773
- /**
774
- * Throttles a function and delays its execution, so it's only called at most
775
- * once within a given time period.
776
- * @param {Function} fn The function to throttle.
777
- * @param {number} timeout The amount of time that must pass before the
778
- * function can be called again.
779
- * @return {Function} The throttled function.
780
- */
781
- function throttle(fn, timeout) {
782
- var timer = null;
783
- return function () {
784
- if (!timer) {
785
- timer = setTimeout(function() {
786
- fn();
787
- timer = null;
788
- }, timeout);
789
- }
790
- };
791
- }
792
-
793
-
794
- /**
795
- * Adds an event handler to a DOM node ensuring cross-browser compatibility.
796
- * @param {Node} node The DOM node to add the event handler to.
797
- * @param {string} event The event name.
798
- * @param {Function} fn The event handler to add.
799
- * @param {boolean} opt_useCapture Optionally adds the even to the capture
800
- * phase. Note: this only works in modern browsers.
801
- */
802
- function addEvent(node, event, fn, opt_useCapture) {
803
- if (typeof node.addEventListener == 'function') {
804
- node.addEventListener(event, fn, opt_useCapture || false);
805
- }
806
- else if (typeof node.attachEvent == 'function') {
807
- node.attachEvent('on' + event, fn);
808
- }
809
- }
810
-
811
-
812
- /**
813
- * Removes a previously added event handler from a DOM node.
814
- * @param {Node} node The DOM node to remove the event handler from.
815
- * @param {string} event The event name.
816
- * @param {Function} fn The event handler to remove.
817
- * @param {boolean} opt_useCapture If the event handler was added with this
818
- * flag set to true, it should be set to true here in order to remove it.
819
- */
820
- function removeEvent(node, event, fn, opt_useCapture) {
821
- if (typeof node.removeEventListener == 'function') {
822
- node.removeEventListener(event, fn, opt_useCapture || false);
823
- }
824
- else if (typeof node.detatchEvent == 'function') {
825
- node.detatchEvent('on' + event, fn);
826
- }
827
- }
828
-
829
-
830
- /**
831
- * Returns the intersection between two rect objects.
832
- * @param {Object} rect1 The first rect.
833
- * @param {Object} rect2 The second rect.
834
- * @return {?Object|?ClientRect} The intersection rect or undefined if no
835
- * intersection is found.
836
- */
837
- function computeRectIntersection(rect1, rect2) {
838
- var top = Math.max(rect1.top, rect2.top);
839
- var bottom = Math.min(rect1.bottom, rect2.bottom);
840
- var left = Math.max(rect1.left, rect2.left);
841
- var right = Math.min(rect1.right, rect2.right);
842
- var width = right - left;
843
- var height = bottom - top;
844
-
845
- return (width >= 0 && height >= 0) && {
846
- top: top,
847
- bottom: bottom,
848
- left: left,
849
- right: right,
850
- width: width,
851
- height: height
852
- } || null;
853
- }
854
-
855
-
856
- /**
857
- * Shims the native getBoundingClientRect for compatibility with older IE.
858
- * @param {Element} el The element whose bounding rect to get.
859
- * @return {DOMRect|ClientRect} The (possibly shimmed) rect of the element.
860
- */
861
- function getBoundingClientRect(el) {
862
- var rect;
863
-
864
- try {
865
- rect = el.getBoundingClientRect();
866
- } catch (err) {
867
- // Ignore Windows 7 IE11 "Unspecified error"
868
- // https://github.com/w3c/IntersectionObserver/pull/205
869
- }
870
-
871
- if (!rect) return getEmptyRect();
872
-
873
- // Older IE
874
- if (!(rect.width && rect.height)) {
875
- rect = {
876
- top: rect.top,
877
- right: rect.right,
878
- bottom: rect.bottom,
879
- left: rect.left,
880
- width: rect.right - rect.left,
881
- height: rect.bottom - rect.top
882
- };
883
- }
884
- return rect;
885
- }
886
-
887
-
888
- /**
889
- * Returns an empty rect object. An empty rect is returned when an element
890
- * is not in the DOM.
891
- * @return {ClientRect} The empty rect.
892
- */
893
- function getEmptyRect() {
894
- return {
895
- top: 0,
896
- bottom: 0,
897
- left: 0,
898
- right: 0,
899
- width: 0,
900
- height: 0
901
- };
902
- }
903
-
904
-
905
- /**
906
- * Ensure that the result has all of the necessary fields of the DOMRect.
907
- * Specifically this ensures that `x` and `y` fields are set.
908
- *
909
- * @param {?DOMRect|?ClientRect} rect
910
- * @return {?DOMRect}
911
- */
912
- function ensureDOMRect(rect) {
913
- // A `DOMRect` object has `x` and `y` fields.
914
- if (!rect || 'x' in rect) {
915
- return rect;
916
- }
917
- // A IE's `ClientRect` type does not have `x` and `y`. The same is the case
918
- // for internally calculated Rect objects. For the purposes of
919
- // `IntersectionObserver`, it's sufficient to simply mirror `left` and `top`
920
- // for these fields.
921
- return {
922
- top: rect.top,
923
- y: rect.top,
924
- bottom: rect.bottom,
925
- left: rect.left,
926
- x: rect.left,
927
- right: rect.right,
928
- width: rect.width,
929
- height: rect.height
930
- };
931
- }
932
-
933
-
934
- /**
935
- * Inverts the intersection and bounding rect from the parent (frame) BCR to
936
- * the local BCR space.
937
- * @param {DOMRect|ClientRect} parentBoundingRect The parent's bound client rect.
938
- * @param {DOMRect|ClientRect} parentIntersectionRect The parent's own intersection rect.
939
- * @return {ClientRect} The local root bounding rect for the parent's children.
940
- */
941
- function convertFromParentRect(parentBoundingRect, parentIntersectionRect) {
942
- var top = parentIntersectionRect.top - parentBoundingRect.top;
943
- var left = parentIntersectionRect.left - parentBoundingRect.left;
944
- return {
945
- top: top,
946
- left: left,
947
- height: parentIntersectionRect.height,
948
- width: parentIntersectionRect.width,
949
- bottom: top + parentIntersectionRect.height,
950
- right: left + parentIntersectionRect.width
951
- };
952
- }
953
-
954
-
955
- /**
956
- * Checks to see if a parent element contains a child element (including inside
957
- * shadow DOM).
958
- * @param {Node} parent The parent element.
959
- * @param {Node} child The child element.
960
- * @return {boolean} True if the parent node contains the child node.
961
- */
962
- function containsDeep(parent, child) {
963
- var node = child;
964
- while (node) {
965
- if (node == parent) return true;
966
-
967
- node = getParentNode(node);
968
- }
969
- return false;
970
- }
971
-
972
-
973
- /**
974
- * Gets the parent node of an element or its host element if the parent node
975
- * is a shadow root.
976
- * @param {Node} node The node whose parent to get.
977
- * @return {Node|null} The parent node or null if no parent exists.
978
- */
979
- function getParentNode(node) {
980
- var parent = node.parentNode;
981
-
982
- if (node.nodeType == /* DOCUMENT */ 9 && node != document) {
983
- // If this node is a document node, look for the embedding frame.
984
- return getFrameElement(node);
985
- }
986
-
987
- // If the parent has element that is assigned through shadow root slot
988
- if (parent && parent.assignedSlot) {
989
- parent = parent.assignedSlot.parentNode
990
- }
991
-
992
- if (parent && parent.nodeType == 11 && parent.host) {
993
- // If the parent is a shadow root, return the host element.
994
- return parent.host;
995
- }
996
-
997
- return parent;
998
- }
999
-
1000
- /**
1001
- * Returns true if `node` is a Document.
1002
- * @param {!Node} node
1003
- * @returns {boolean}
1004
- */
1005
- function isDoc(node) {
1006
- return node && node.nodeType === 9;
1007
- }
1008
-
1009
-
1010
- // Exposes the constructors globally.
1011
- window.IntersectionObserver = IntersectionObserver;
1012
- window.IntersectionObserverEntry = IntersectionObserverEntry;
1013
-
1014
- }());
1
+ !function(){"use strict";if("object"==typeof window)if("IntersectionObserver"in window&&"IntersectionObserverEntry"in window&&"intersectionRatio"in window.IntersectionObserverEntry.prototype)"isIntersecting"in window.IntersectionObserverEntry.prototype||Object.defineProperty(window.IntersectionObserverEntry.prototype,"isIntersecting",{get:function(){return this.intersectionRatio>0}});else{var t=function(t){for(var e=window.document,o=i(e);o;)o=i(e=o.ownerDocument);return e}(),e=[],o=null,n=null;s.prototype.THROTTLE_TIMEOUT=100,s.prototype.POLL_INTERVAL=null,s.prototype.USE_MUTATION_OBSERVER=!0,s._setupCrossOriginUpdater=function(){return o||(o=function(t,o){n=t&&o?l(t,o):{top:0,bottom:0,left:0,right:0,width:0,height:0},e.forEach((function(t){t._checkForIntersections()}))}),o},s._resetCrossOriginUpdater=function(){o=null,n=null},s.prototype.observe=function(t){if(!this._observationTargets.some((function(e){return e.element==t}))){if(!t||1!=t.nodeType)throw new Error("target must be an Element");this._registerInstance(),this._observationTargets.push({element:t,entry:null}),this._monitorIntersections(t.ownerDocument),this._checkForIntersections()}},s.prototype.unobserve=function(t){this._observationTargets=this._observationTargets.filter((function(e){return e.element!=t})),this._unmonitorIntersections(t.ownerDocument),0==this._observationTargets.length&&this._unregisterInstance()},s.prototype.disconnect=function(){this._observationTargets=[],this._unmonitorAllIntersections(),this._unregisterInstance()},s.prototype.takeRecords=function(){var t=this._queuedEntries.slice();return this._queuedEntries=[],t},s.prototype._initThresholds=function(t){var e=t||[0];return Array.isArray(e)||(e=[e]),e.sort().filter((function(t,e,o){if("number"!=typeof t||isNaN(t)||t<0||t>1)throw new Error("threshold must be a number between 0 and 1 inclusively");return t!==o[e-1]}))},s.prototype._parseRootMargin=function(t){var e=(t||"0px").split(/\s+/).map((function(t){var e=/^(-?\d*\.?\d+)(px|%)$/.exec(t);if(!e)throw new Error("rootMargin must be specified in pixels or percent");return{value:parseFloat(e[1]),unit:e[2]}}));return e[1]=e[1]||e[0],e[2]=e[2]||e[0],e[3]=e[3]||e[1],e},s.prototype._monitorIntersections=function(e){var o=e.defaultView;if(o&&-1==this._monitoringDocuments.indexOf(e)){var n=this._checkForIntersections,r=null,s=null;this.POLL_INTERVAL?r=o.setInterval(n,this.POLL_INTERVAL):(h(o,"resize",n,!0),h(e,"scroll",n,!0),this.USE_MUTATION_OBSERVER&&"MutationObserver"in o&&(s=new o.MutationObserver(n)).observe(e,{attributes:!0,childList:!0,characterData:!0,subtree:!0})),this._monitoringDocuments.push(e),this._monitoringUnsubscribes.push((function(){var t=e.defaultView;t&&(r&&t.clearInterval(r),c(t,"resize",n,!0)),c(e,"scroll",n,!0),s&&s.disconnect()}));var u=this.root&&(this.root.ownerDocument||this.root)||t;if(e!=u){var a=i(e);a&&this._monitorIntersections(a.ownerDocument)}}},s.prototype._unmonitorIntersections=function(e){var o=this._monitoringDocuments.indexOf(e);if(-1!=o){var n=this.root&&(this.root.ownerDocument||this.root)||t,r=this._observationTargets.some((function(t){var o=t.element.ownerDocument;if(o==e)return!0;for(;o&&o!=n;){var r=i(o);if((o=r&&r.ownerDocument)==e)return!0}return!1}));if(!r){var s=this._monitoringUnsubscribes[o];if(this._monitoringDocuments.splice(o,1),this._monitoringUnsubscribes.splice(o,1),s(),e!=n){var h=i(e);h&&this._unmonitorIntersections(h.ownerDocument)}}}},s.prototype._unmonitorAllIntersections=function(){var t=this._monitoringUnsubscribes.slice(0);this._monitoringDocuments.length=0,this._monitoringUnsubscribes.length=0;for(var e=0;e<t.length;e++)t[e]()},s.prototype._checkForIntersections=function(){if(this.root||!o||n){var t=this._rootIsInDom(),e=t?this._getRootRect():{top:0,bottom:0,left:0,right:0,width:0,height:0};this._observationTargets.forEach((function(n){var i=n.element,s=u(i),h=this._rootContainsTarget(i),c=n.entry,a=t&&h&&this._computeTargetAndRootIntersection(i,s,e),l=null;this._rootContainsTarget(i)?o&&!this.root||(l=e):l={top:0,bottom:0,left:0,right:0,width:0,height:0};var f=n.entry=new r({time:window.performance&&performance.now&&performance.now(),target:i,boundingClientRect:s,rootBounds:l,intersectionRect:a});c?t&&h?this._hasCrossedThreshold(c,f)&&this._queuedEntries.push(f):c&&c.isIntersecting&&this._queuedEntries.push(f):this._queuedEntries.push(f)}),this),this._queuedEntries.length&&this._callback(this.takeRecords(),this)}},s.prototype._computeTargetAndRootIntersection=function(e,i,r){if("none"!=window.getComputedStyle(e).display){for(var s,h,c,a,f,d,g,m,v=i,_=p(e),b=!1;!b&&_;){var w=null,y=1==_.nodeType?window.getComputedStyle(_):{};if("none"==y.display)return null;if(_==this.root||9==_.nodeType)if(b=!0,_==this.root||_==t)o&&!this.root?!n||0==n.width&&0==n.height?(_=null,w=null,v=null):w=n:w=r;else{var I=p(_),E=I&&u(I),T=I&&this._computeTargetAndRootIntersection(I,E,r);E&&T?(_=I,w=l(E,T)):(_=null,v=null)}else{var R=_.ownerDocument;_!=R.body&&_!=R.documentElement&&"visible"!=y.overflow&&(w=u(_))}if(w&&(s=w,h=v,c=void 0,a=void 0,f=void 0,d=void 0,g=void 0,m=void 0,c=Math.max(s.top,h.top),a=Math.min(s.bottom,h.bottom),f=Math.max(s.left,h.left),d=Math.min(s.right,h.right),m=a-c,v=(g=d-f)>=0&&m>=0&&{top:c,bottom:a,left:f,right:d,width:g,height:m}||null),!v)break;_=_&&p(_)}return v}},s.prototype._getRootRect=function(){var e;if(this.root&&!d(this.root))e=u(this.root);else{var o=d(this.root)?this.root:t,n=o.documentElement,i=o.body;e={top:0,left:0,right:n.clientWidth||i.clientWidth,width:n.clientWidth||i.clientWidth,bottom:n.clientHeight||i.clientHeight,height:n.clientHeight||i.clientHeight}}return this._expandRectByRootMargin(e)},s.prototype._expandRectByRootMargin=function(t){var e=this._rootMarginValues.map((function(e,o){return"px"==e.unit?e.value:e.value*(o%2?t.width:t.height)/100})),o={top:t.top-e[0],right:t.right+e[1],bottom:t.bottom+e[2],left:t.left-e[3]};return o.width=o.right-o.left,o.height=o.bottom-o.top,o},s.prototype._hasCrossedThreshold=function(t,e){var o=t&&t.isIntersecting?t.intersectionRatio||0:-1,n=e.isIntersecting?e.intersectionRatio||0:-1;if(o!==n)for(var i=0;i<this.thresholds.length;i++){var r=this.thresholds[i];if(r==o||r==n||r<o!=r<n)return!0}},s.prototype._rootIsInDom=function(){return!this.root||f(t,this.root)},s.prototype._rootContainsTarget=function(e){var o=this.root&&(this.root.ownerDocument||this.root)||t;return f(o,e)&&(!this.root||o==e.ownerDocument)},s.prototype._registerInstance=function(){e.indexOf(this)<0&&e.push(this)},s.prototype._unregisterInstance=function(){var t=e.indexOf(this);-1!=t&&e.splice(t,1)},window.IntersectionObserver=s,window.IntersectionObserverEntry=r}function i(t){try{return t.defaultView&&t.defaultView.frameElement||null}catch(t){return null}}function r(t){this.time=t.time,this.target=t.target,this.rootBounds=a(t.rootBounds),this.boundingClientRect=a(t.boundingClientRect),this.intersectionRect=a(t.intersectionRect||{top:0,bottom:0,left:0,right:0,width:0,height:0}),this.isIntersecting=!!t.intersectionRect;var e=this.boundingClientRect,o=e.width*e.height,n=this.intersectionRect,i=n.width*n.height;this.intersectionRatio=o?Number((i/o).toFixed(4)):this.isIntersecting?1:0}function s(t,e){var o,n,i,r=e||{};if("function"!=typeof t)throw new Error("callback must be a function");if(r.root&&1!=r.root.nodeType&&9!=r.root.nodeType)throw new Error("root must be a Document or Element");this._checkForIntersections=(o=this._checkForIntersections.bind(this),n=this.THROTTLE_TIMEOUT,i=null,function(){i||(i=setTimeout((function(){o(),i=null}),n))}),this._callback=t,this._observationTargets=[],this._queuedEntries=[],this._rootMarginValues=this._parseRootMargin(r.rootMargin),this.thresholds=this._initThresholds(r.threshold),this.root=r.root||null,this.rootMargin=this._rootMarginValues.map((function(t){return t.value+t.unit})).join(" "),this._monitoringDocuments=[],this._monitoringUnsubscribes=[]}function h(t,e,o,n){"function"==typeof t.addEventListener?t.addEventListener(e,o,n||!1):"function"==typeof t.attachEvent&&t.attachEvent("on"+e,o)}function c(t,e,o,n){"function"==typeof t.removeEventListener?t.removeEventListener(e,o,n||!1):"function"==typeof t.detatchEvent&&t.detatchEvent("on"+e,o)}function u(t){var e;try{e=t.getBoundingClientRect()}catch(t){}return e?(e.width&&e.height||(e={top:e.top,right:e.right,bottom:e.bottom,left:e.left,width:e.right-e.left,height:e.bottom-e.top}),e):{top:0,bottom:0,left:0,right:0,width:0,height:0}}function a(t){return!t||"x"in t?t:{top:t.top,y:t.top,bottom:t.bottom,left:t.left,x:t.left,right:t.right,width:t.width,height:t.height}}function l(t,e){var o=e.top-t.top,n=e.left-t.left;return{top:o,left:n,height:e.height,width:e.width,bottom:o+e.height,right:n+e.width}}function f(t,e){for(var o=e;o;){if(o==t)return!0;o=p(o)}return!1}function p(e){var o=e.parentNode;return 9==e.nodeType&&e!=t?i(e):(o&&o.assignedSlot&&(o=o.assignedSlot.parentNode),o&&11==o.nodeType&&o.host?o.host:o)}function d(t){return t&&9===t.nodeType}}();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/automattic/jetpack-lazy-images/dist/lazy-images.js DELETED
@@ -1 +0,0 @@
1
- !function(){var e={},t=function(){var e,t,n,a={rootMargin:"200px 0px",threshold:.01},i=[];d();var r=document.querySelector("body");function d(){e=[].slice.call(document.querySelectorAll("img.jetpack-lazy-image:not(.jetpack-lazy-image--handled)")),n&&n.disconnect(),"IntersectionObserver"in window?(n=new IntersectionObserver(l,a),e.forEach((function(e){e.getAttribute("data-lazy-loaded")||n.observe(e)})),window.addEventListener("beforeprint",c),window.matchMedia&&window.matchMedia("print").addListener((function(e){e.matches&&c()}))):o()}function o(){for(n&&n.disconnect();e.length>0;)s(e[0])}function l(t){for(var a=0;a<t.length;a++){var i=t[a];i.intersectionRatio>0&&(n.unobserve(i.target),s(i.target))}0===e.length&&n.disconnect()}function c(){if(!t&&(e.length>0||i.length>0)){(t=document.createElement("div")).id="loadingWarning",t.style.fontWeight="bold",t.innerText=jetpackLazyImagesL10n.loading_warning;var n=document.createElement("style");n.innerHTML="#loadingWarning { display: none; }\n@media print {\n#loadingWarning { display: block; }\nbody > #loadingWarning ~ * { display: none !important; }\n}",t.appendChild(n),r.insertBefore(t,r.firstChild)}e.length>0&&o(),t&&alert(jetpackLazyImagesL10n.loading_warning)}function s(t){var n;if(t instanceof HTMLImageElement){var a=t.getAttribute("data-lazy-srcset"),r=t.getAttribute("data-lazy-sizes");t.removeAttribute("data-lazy-srcset"),t.removeAttribute("data-lazy-sizes"),t.removeAttribute("data-lazy-src"),t.classList.add("jetpack-lazy-image--handled"),t.setAttribute("data-lazy-loaded",1),r&&t.setAttribute("sizes",r),a?t.setAttribute("srcset",a):t.removeAttribute("srcset"),t.setAttribute("loading","eager"),i.push(t);var d=e.indexOf(t);d>=0&&e.splice(d,1),t.complete?g.call(t,null):(t.addEventListener("load",g,{once:!0}),t.addEventListener("error",g,{once:!0}));try{n=new Event("jetpack-lazy-loaded-image",{bubbles:!0,cancelable:!0})}catch(o){(n=document.createEvent("Event")).initEvent("jetpack-lazy-loaded-image",!0,!0)}t.dispatchEvent(n)}}function g(){var n=i.indexOf(this);n>=0&&i.splice(n,1),t&&0===e.length&&0===i.length&&(t.parentNode.removeChild(t),t=null)}r&&(r.addEventListener("is.post-load",d),r.addEventListener("jetpack-lazy-images-load",d))};"interactive"===document.readyState||"complete"===document.readyState?t():document.addEventListener("DOMContentLoaded",t);var n=window;for(var a in e)n[a]=e[a];e.__esModule&&Object.defineProperty(n,"__esModule",{value:!0})}();
 
vendor/automattic/jetpack-lazy-images/dist/lazy-images.min.asset.php ADDED
@@ -0,0 +1 @@
 
1
+ <?php return array('dependencies' => array(), 'version' => '1c8bb5930b723e669774487342a8fa98');
vendor/automattic/jetpack-lazy-images/dist/lazy-images.min.js ADDED
@@ -0,0 +1 @@
 
1
+ !function(){var e=function(){var e,t,n,a={rootMargin:"200px 0px",threshold:.01},i=[];d();var r=document.querySelector("body");function d(){e=[].slice.call(document.querySelectorAll("img.jetpack-lazy-image:not(.jetpack-lazy-image--handled)")),n&&n.disconnect(),"IntersectionObserver"in window?(n=new IntersectionObserver(l,a),e.forEach((function(e){e.getAttribute("data-lazy-loaded")||n.observe(e)})),window.addEventListener("beforeprint",c),window.matchMedia&&window.matchMedia("print").addListener((function(e){e.matches&&c()}))):o()}function o(){for(n&&n.disconnect();e.length>0;)s(e[0])}function l(t){for(var a=0;a<t.length;a++){var i=t[a];i.intersectionRatio>0&&(n.unobserve(i.target),s(i.target))}0===e.length&&n.disconnect()}function c(){if(!t&&(e.length>0||i.length>0)){(t=document.createElement("div")).id="loadingWarning",t.style.fontWeight="bold",t.innerText=jetpackLazyImagesL10n.loading_warning;var n=document.createElement("style");n.innerHTML="#loadingWarning { display: none; }\n@media print {\n#loadingWarning { display: block; }\nbody > #loadingWarning ~ * { display: none !important; }\n}",t.appendChild(n),r.insertBefore(t,r.firstChild)}e.length>0&&o(),t&&alert(jetpackLazyImagesL10n.loading_warning)}function s(t){var n;if(t instanceof HTMLImageElement){var a=t.getAttribute("data-lazy-srcset"),r=t.getAttribute("data-lazy-sizes");t.removeAttribute("data-lazy-srcset"),t.removeAttribute("data-lazy-sizes"),t.removeAttribute("data-lazy-src"),t.classList.add("jetpack-lazy-image--handled"),t.setAttribute("data-lazy-loaded",1),r&&t.setAttribute("sizes",r),a?t.setAttribute("srcset",a):t.removeAttribute("srcset"),t.setAttribute("loading","eager"),i.push(t);var d=e.indexOf(t);d>=0&&e.splice(d,1),t.complete?g.call(t,null):(t.addEventListener("load",g,{once:!0}),t.addEventListener("error",g,{once:!0}));try{n=new Event("jetpack-lazy-loaded-image",{bubbles:!0,cancelable:!0})}catch(e){(n=document.createEvent("Event")).initEvent("jetpack-lazy-loaded-image",!0,!0)}t.dispatchEvent(n)}}function g(){var n=i.indexOf(this);n>=0&&i.splice(n,1),t&&0===e.length&&0===i.length&&(t.parentNode.removeChild(t),t=null)}r&&(r.addEventListener("is.post-load",d),r.addEventListener("jetpack-lazy-images-load",d))};"interactive"===document.readyState||"complete"===document.readyState?e():document.addEventListener("DOMContentLoaded",e)}();
vendor/automattic/jetpack-lazy-images/src/lazy-images.php CHANGED
@@ -32,16 +32,6 @@ namespace Automattic\Jetpack;
32
  */
33
  class Jetpack_Lazy_Images {
34
 
35
- /**
36
- * The assets version.
37
- *
38
- * @since 1.0.0
39
- * @since-jetpack 8.8.0
40
- *
41
- * @var string Assets version.
42
- */
43
- const ASSETS_VERSION = '1.1.3';
44
-
45
  /**
46
  * Class instance.
47
  *
@@ -495,20 +485,26 @@ class Jetpack_Lazy_Images {
495
  * @return void
496
  */
497
  public function enqueue_assets() {
498
- wp_enqueue_script(
499
  'jetpack-lazy-images-polyfill-intersectionobserver',
500
- Assets::get_file_url_for_environment( '../dist/intersection-observer.js', '../dist/intersection-observer.src.js', __FILE__ ),
501
- array(),
502
- self::ASSETS_VERSION,
503
- true
 
 
504
  );
505
- wp_enqueue_script(
506
  'jetpack-lazy-images',
507
- Assets::get_file_url_for_environment( '../dist/lazy-images.js', 'js/lazy-images.js', __FILE__ ),
508
- array( 'jetpack-lazy-images-polyfill-intersectionobserver' ),
509
- self::ASSETS_VERSION,
510
- true
 
 
 
511
  );
 
512
  wp_localize_script(
513
  'jetpack-lazy-images',
514
  'jetpackLazyImagesL10n',
32
  */
33
  class Jetpack_Lazy_Images {
34
 
 
 
 
 
 
 
 
 
 
 
35
  /**
36
  * Class instance.
37
  *
485
  * @return void
486
  */
487
  public function enqueue_assets() {
488
+ Assets::register_script(
489
  'jetpack-lazy-images-polyfill-intersectionobserver',
490
+ '../dist/intersection-observer.min.js',
491
+ __FILE__,
492
+ array(
493
+ 'nonmin_path' => '../dist/intersection-observer.src.js',
494
+ 'in_footer' => true,
495
+ )
496
  );
497
+ Assets::register_script(
498
  'jetpack-lazy-images',
499
+ '../dist/lazy-images.min.js',
500
+ __FILE__,
501
+ array(
502
+ 'nonmin_path' => 'js/lazy-images.js',
503
+ 'dependencies' => array( 'jetpack-lazy-images-polyfill-intersectionobserver' ),
504
+ 'in_footer' => true,
505
+ )
506
  );
507
+ Assets::enqueue_script( 'jetpack-lazy-images' );
508
  wp_localize_script(
509
  'jetpack-lazy-images',
510
  'jetpackLazyImagesL10n',
vendor/automattic/jetpack-lazy-images/webpack.config.js ADDED
@@ -0,0 +1,43 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ const jetpackWebpackConfig = require( '@automattic/jetpack-webpack-config/webpack' );
2
+ const path = require( 'path' );
3
+ const CopyWebpackPlugin = require( 'copy-webpack-plugin' );
4
+
5
+ module.exports = [
6
+ {
7
+ entry: {
8
+ 'lazy-images': './src/js/lazy-images.js',
9
+ 'intersection-observer': require.resolve( 'intersection-observer/intersection-observer.js' ),
10
+ },
11
+ mode: jetpackWebpackConfig.mode,
12
+ devtool: jetpackWebpackConfig.devtool,
13
+ output: {
14
+ ...jetpackWebpackConfig.output,
15
+ path: path.resolve( './dist' ),
16
+ },
17
+ optimization: {
18
+ ...jetpackWebpackConfig.optimization,
19
+ },
20
+ resolve: {
21
+ ...jetpackWebpackConfig.resolve,
22
+ },
23
+ node: false,
24
+ plugins: [
25
+ ...jetpackWebpackConfig.StandardPlugins(),
26
+ new CopyWebpackPlugin( {
27
+ patterns: [
28
+ {
29
+ from: require.resolve( 'intersection-observer/intersection-observer.js' ),
30
+ to: 'intersection-observer.src.js',
31
+ },
32
+ ],
33
+ } ),
34
+ ],
35
+ module: {
36
+ strictExportPresence: true,
37
+ rules: [
38
+ // Transpile JavaScript, including node_modules.
39
+ jetpackWebpackConfig.TranspileRule(),
40
+ ],
41
+ },
42
+ },
43
+ ];
vendor/automattic/jetpack-options/CHANGELOG.md CHANGED
@@ -5,6 +5,10 @@ All notable changes to this project will be documented in this file.
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
 
 
 
 
 
8
  ## [1.13.4] - 2021-10-13
9
  ### Changed
10
  - Updated package dependencies.
@@ -128,6 +132,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
128
 
129
  - Initial release
130
 
 
131
  [1.13.4]: https://github.com/Automattic/jetpack-options/compare/v1.13.3...v1.13.4
132
  [1.13.3]: https://github.com/Automattic/jetpack-options/compare/v1.13.2...v1.13.3
133
  [1.13.2]: https://github.com/Automattic/jetpack-options/compare/v1.13.1...v1.13.2
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
 
8
+ ## [1.13.5] - 2021-11-16
9
+ ### Added
10
+ - Added Jetpack Option 'licensing_activation_notice_dismiss'.
11
+
12
  ## [1.13.4] - 2021-10-13
13
  ### Changed
14
  - Updated package dependencies.
132
 
133
  - Initial release
134
 
135
+ [1.13.5]: https://github.com/Automattic/jetpack-options/compare/v1.13.4...v1.13.5
136
  [1.13.4]: https://github.com/Automattic/jetpack-options/compare/v1.13.3...v1.13.4
137
  [1.13.3]: https://github.com/Automattic/jetpack-options/compare/v1.13.2...v1.13.3
138
  [1.13.2]: https://github.com/Automattic/jetpack-options/compare/v1.13.1...v1.13.2
vendor/automattic/jetpack-options/legacy/class-jetpack-options.php CHANGED
@@ -92,34 +92,35 @@ class Jetpack_Options {
92
  }
93
 
94
  return array(
95
- 'id', // (int) The Client ID/WP.com Blog ID of this site.
96
- 'publicize_connections', // (array) An array of Publicize connections from WordPress.com.
97
- 'master_user', // (int) The local User ID of the user who connected this site to jetpack.wordpress.com.
98
- 'version', // (string) Used during upgrade procedure to auto-activate new modules. version:time.
99
- 'old_version', // (string) Used to determine which modules are the most recently added. previous_version:time.
100
- 'fallback_no_verify_ssl_certs', // (int) Flag for determining if this host must skip SSL Certificate verification due to misconfigured SSL.
101
- 'time_diff', // (int) Offset between Jetpack server's clocks and this server's clocks. Jetpack Server Time = time() + (int) Jetpack_Options::get_option( 'time_diff' )
102
- 'public', // (int|bool) If we think this site is public or not (1, 0), false if we haven't yet tried to figure it out.
103
- 'videopress', // (array) VideoPress options array.
104
- 'is_network_site', // (int|bool) If we think this site is a network or a single blog (1, 0), false if we haven't yet tried to figue it out.
105
- 'social_links', // (array) The specified links for each social networking site.
106
- 'identity_crisis_whitelist', // (array) An array of options, each having an array of the values whitelisted for it.
107
- 'gplus_authors', // (array) The Google+ authorship information for connected users.
108
- 'last_heartbeat', // (int) The timestamp of the last heartbeat that fired.
109
- 'hide_jitm', // (array) A list of just in time messages that we should not show because they have been dismissed by the user.
110
- 'custom_css_4.7_migration', // (bool) Whether Custom CSS has scanned for and migrated any legacy CSS CPT entries to the new Core format.
111
- 'image_widget_migration', // (bool) Whether any legacy Image Widgets have been converted to the new Core widget.
112
- 'gallery_widget_migration', // (bool) Whether any legacy Gallery Widgets have been converted to the new Core widget.
113
- 'sso_first_login', // (bool) Is this the first time the user logins via SSO.
114
- 'dismissed_hints', // (array) Part of Plugin Search Hints. List of cards that have been dismissed.
115
- 'first_admin_view', // (bool) Set to true the first time the user views the admin. Usually after the initial connection.
116
- 'setup_wizard_questionnaire', // (array) (DEPRECATED) List of user choices from the setup wizard.
117
- 'setup_wizard_status', // (string) (DEPRECATED) Status of the setup wizard.
118
- 'licensing_error', // (string) Last error message occurred while attaching licenses that is yet to be surfaced to the user.
119
- 'recommendations_banner_dismissed', // (bool) Determines if the recommendations dashboard banner is dismissed or not.
120
- 'recommendations_banner_enabled', // (bool) Whether the recommendations are enabled or not.
121
- 'recommendations_data', // (array) The user choice and other data for the recommendations.
122
- 'recommendations_step', // (string) The current step of the recommendations.
 
123
  );
124
  }
125
 
92
  }
93
 
94
  return array(
95
+ 'id', // (int) The Client ID/WP.com Blog ID of this site.
96
+ 'publicize_connections', // (array) An array of Publicize connections from WordPress.com.
97
+ 'master_user', // (int) The local User ID of the user who connected this site to jetpack.wordpress.com.
98
+ 'version', // (string) Used during upgrade procedure to auto-activate new modules. version:time.
99
+ 'old_version', // (string) Used to determine which modules are the most recently added. previous_version:time.
100
+ 'fallback_no_verify_ssl_certs', // (int) Flag for determining if this host must skip SSL Certificate verification due to misconfigured SSL.
101
+ 'time_diff', // (int) Offset between Jetpack server's clocks and this server's clocks. Jetpack Server Time = time() + (int) Jetpack_Options::get_option( 'time_diff' )
102
+ 'public', // (int|bool) If we think this site is public or not (1, 0), false if we haven't yet tried to figure it out.
103
+ 'videopress', // (array) VideoPress options array.
104
+ 'is_network_site', // (int|bool) If we think this site is a network or a single blog (1, 0), false if we haven't yet tried to figue it out.
105
+ 'social_links', // (array) The specified links for each social networking site.
106
+ 'identity_crisis_whitelist', // (array) An array of options, each having an array of the values whitelisted for it.
107
+ 'gplus_authors', // (array) The Google+ authorship information for connected users.
108
+ 'last_heartbeat', // (int) The timestamp of the last heartbeat that fired.
109
+ 'hide_jitm', // (array) A list of just in time messages that we should not show because they have been dismissed by the user.
110
+ 'custom_css_4.7_migration', // (bool) Whether Custom CSS has scanned for and migrated any legacy CSS CPT entries to the new Core format.
111
+ 'image_widget_migration', // (bool) Whether any legacy Image Widgets have been converted to the new Core widget.
112
+ 'gallery_widget_migration', // (bool) Whether any legacy Gallery Widgets have been converted to the new Core widget.
113
+ 'sso_first_login', // (bool) Is this the first time the user logins via SSO.
114
+ 'dismissed_hints', // (array) Part of Plugin Search Hints. List of cards that have been dismissed.
115
+ 'first_admin_view', // (bool) Set to true the first time the user views the admin. Usually after the initial connection.
116
+ 'setup_wizard_questionnaire', // (array) (DEPRECATED) List of user choices from the setup wizard.
117
+ 'setup_wizard_status', // (string) (DEPRECATED) Status of the setup wizard.
118
+ 'licensing_error', // (string) Last error message occurred while attaching licenses that is yet to be surfaced to the user.
119
+ 'recommendations_banner_dismissed', // (bool) Determines if the recommendations dashboard banner is dismissed or not.
120
+ 'recommendations_banner_enabled', // (bool) Whether the recommendations are enabled or not.
121
+ 'recommendations_data', // (array) The user choice and other data for the recommendations.
122
+ 'recommendations_step', // (string) The current step of the recommendations.
123
+ 'licensing_activation_notice_dismiss', // (array) The `last_detached_count` and the `last_dismissed_time` for the user-license activation notice.
124
  );
125
  }
126
 
vendor/automattic/jetpack-redirect/CHANGELOG.md CHANGED
@@ -5,6 +5,19 @@ All notable changes to this project will be documented in this file.
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8
  ## [1.7.4] - 2021-10-13
9
  ### Changed
10
  - Updated package dependencies.
@@ -96,6 +109,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
96
 
97
  - Create Jetpack Redirect package
98
 
 
 
 
99
  [1.7.4]: https://github.com/Automattic/jetpack-redirect/compare/v1.7.3...v1.7.4
100
  [1.7.3]: https://github.com/Automattic/jetpack-redirect/compare/v1.7.2...v1.7.3
101
  [1.7.2]: https://github.com/Automattic/jetpack-redirect/compare/v1.7.1...v1.7.2
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
 
8
+ ## [1.7.7] - 2021-11-22
9
+ ### Changed
10
+ - Updated package dependencies
11
+
12
+ ## [1.7.6] - 2021-11-02
13
+ ### Changed
14
+ - Set `convertDeprecationsToExceptions` true in PHPUnit config.
15
+ - Update PHPUnit configs to include just what needs coverage rather than include everything then try to exclude stuff that doesn't.
16
+
17
+ ## [1.7.5] - 2021-10-26
18
+ ### Changed
19
+ - Updated package dependencies.
20
+
21
  ## [1.7.4] - 2021-10-13
22
  ### Changed
23
  - Updated package dependencies.
109
 
110
  - Create Jetpack Redirect package
111
 
112
+ [1.7.7]: https://github.com/Automattic/jetpack-redirect/compare/v1.7.6...v1.7.7
113
+ [1.7.6]: https://github.com/Automattic/jetpack-redirect/compare/v1.7.5...v1.7.6
114
+ [1.7.5]: https://github.com/Automattic/jetpack-redirect/compare/v1.7.4...v1.7.5
115
  [1.7.4]: https://github.com/Automattic/jetpack-redirect/compare/v1.7.3...v1.7.4
116
  [1.7.3]: https://github.com/Automattic/jetpack-redirect/compare/v1.7.2...v1.7.3
117
  [1.7.2]: https://github.com/Automattic/jetpack-redirect/compare/v1.7.1...v1.7.2
vendor/automattic/jetpack-redirect/composer.json CHANGED
@@ -4,10 +4,10 @@
4
  "type": "library",
5
  "license": "GPL-2.0-or-later",
6
  "require": {
7
- "automattic/jetpack-status": "^1.8"
8
  },
9
  "require-dev": {
10
- "brain/monkey": "2.6.0",
11
  "yoast/phpunit-polyfills": "1.0.2",
12
  "automattic/jetpack-changelogger": "^3.0"
13
  },
4
  "type": "library",
5
  "license": "GPL-2.0-or-later",
6
  "require": {
7
+ "automattic/jetpack-status": "^1.9"
8
  },
9
  "require-dev": {
10
+ "brain/monkey": "2.6.1",
11
  "yoast/phpunit-polyfills": "1.0.2",
12
  "automattic/jetpack-changelogger": "^3.0"
13
  },
vendor/automattic/jetpack-roles/CHANGELOG.md CHANGED
@@ -5,6 +5,15 @@ All notable changes to this project will be documented in this file.
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
 
 
 
 
 
 
 
 
 
 
8
  ## [1.4.9] - 2021-10-13
9
  ### Changed
10
  - Updated package dependencies.
@@ -89,6 +98,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
89
 
90
  - Jetpack DNA: Introduce a Roles package
91
 
 
 
92
  [1.4.9]: https://github.com/Automattic/jetpack-roles/compare/v1.4.8...v1.4.9
93
  [1.4.8]: https://github.com/Automattic/jetpack-roles/compare/v1.4.7...v1.4.8
94
  [1.4.7]: https://github.com/Automattic/jetpack-roles/compare/v1.4.6...v1.4.7
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
 
8
+ ## [1.4.11] - 2021-11-22
9
+ ### Changed
10
+ - Updated package dependencies
11
+
12
+ ## [1.4.10] - 2021-11-02
13
+ ### Changed
14
+ - Set `convertDeprecationsToExceptions` true in PHPUnit config.
15
+ - Update PHPUnit configs to include just what needs coverage rather than include everything then try to exclude stuff that doesn't.
16
+
17
  ## [1.4.9] - 2021-10-13
18
  ### Changed
19
  - Updated package dependencies.
98
 
99
  - Jetpack DNA: Introduce a Roles package
100
 
101
+ [1.4.11]: https://github.com/Automattic/jetpack-roles/compare/v1.4.10...v1.4.11
102
+ [1.4.10]: https://github.com/Automattic/jetpack-roles/compare/v1.4.9...v1.4.10
103
  [1.4.9]: https://github.com/Automattic/jetpack-roles/compare/v1.4.8...v1.4.9
104
  [1.4.8]: https://github.com/Automattic/jetpack-roles/compare/v1.4.7...v1.4.8
105
  [1.4.7]: https://github.com/Automattic/jetpack-roles/compare/v1.4.6...v1.4.7
vendor/automattic/jetpack-roles/composer.json CHANGED
@@ -5,7 +5,7 @@
5
  "license": "GPL-2.0-or-later",
6
  "require": {},
7
  "require-dev": {
8
- "brain/monkey": "2.6.0",
9
  "yoast/phpunit-polyfills": "1.0.2",
10
  "automattic/jetpack-changelogger": "^3.0"
11
  },
5
  "license": "GPL-2.0-or-later",
6
  "require": {},
7
  "require-dev": {
8
+ "brain/monkey": "2.6.1",
9
  "yoast/phpunit-polyfills": "1.0.2",
10
  "automattic/jetpack-changelogger": "^3.0"
11
  },
vendor/automattic/jetpack-status/CHANGELOG.md CHANGED
@@ -5,6 +5,23 @@ All notable changes to this project will be documented in this file.
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8
  ## [1.8.4] - 2021-10-13
9
  ### Changed
10
  - Updated package dependencies.
@@ -120,6 +137,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
120
 
121
  - Packages: Introduce a status package
122
 
 
 
 
 
123
  [1.8.4]: https://github.com/Automattic/jetpack-status/compare/v1.8.3...v1.8.4
124
  [1.8.3]: https://github.com/Automattic/jetpack-status/compare/v1.8.2...v1.8.3
125
  [1.8.2]: https://github.com/Automattic/jetpack-status/compare/v1.8.1...v1.8.2
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
 
8
+ ## [1.9.3] - 2021-11-22
9
+ ### Changed
10
+ - Updated package dependencies
11
+
12
+ ## [1.9.2] - 2021-11-16
13
+ ### Changed
14
+ - Add a function_exists check before calling wp_get_environment_type
15
+
16
+ ## [1.9.1] - 2021-11-02
17
+ ### Changed
18
+ - Set `convertDeprecationsToExceptions` true in PHPUnit config.
19
+ - Update PHPUnit configs to include just what needs coverage rather than include everything then try to exclude stuff that doesn't.
20
+
21
+ ## [1.9.0] - 2021-10-26
22
+ ### Added
23
+ - Added Host class for reporting known hosting environment information.
24
+
25
  ## [1.8.4] - 2021-10-13
26
  ### Changed
27
  - Updated package dependencies.
137
 
138
  - Packages: Introduce a status package
139
 
140
+ [1.9.3]: https://github.com/Automattic/jetpack-status/compare/v1.9.2...v1.9.3
141
+ [1.9.2]: https://github.com/Automattic/jetpack-status/compare/v1.9.1...v1.9.2
142
+ [1.9.1]: https://github.com/Automattic/jetpack-status/compare/v1.9.0...v1.9.1
143
+ [1.9.0]: https://github.com/Automattic/jetpack-status/compare/v1.8.4...v1.9.0
144
  [1.8.4]: https://github.com/Automattic/jetpack-status/compare/v1.8.3...v1.8.4
145
  [1.8.3]: https://github.com/Automattic/jetpack-status/compare/v1.8.2...v1.8.3
146
  [1.8.2]: https://github.com/Automattic/jetpack-status/compare/v1.8.1...v1.8.2
vendor/automattic/jetpack-status/composer.json CHANGED
@@ -3,9 +3,11 @@
3
  "description": "Used to retrieve information about the current status of Jetpack and the site overall.",
4
  "type": "library",
5
  "license": "GPL-2.0-or-later",
6
- "require": {},
 
 
7
  "require-dev": {
8
- "brain/monkey": "2.6.0",
9
  "yoast/phpunit-polyfills": "1.0.2",
10
  "automattic/jetpack-changelogger": "^3.0"
11
  },
@@ -37,7 +39,7 @@
37
  "link-template": "https://github.com/Automattic/jetpack-status/compare/v${old}...v${new}"
38
  },
39
  "branch-alias": {
40
- "dev-master": "1.8.x-dev"
41
  }
42
  }
43
  }
3
  "description": "Used to retrieve information about the current status of Jetpack and the site overall.",
4
  "type": "library",
5
  "license": "GPL-2.0-or-later",
6
+ "require": {
7
+ "automattic/jetpack-constants": "^1.6"
8
+ },
9
  "require-dev": {
10
+ "brain/monkey": "2.6.1",
11
  "yoast/phpunit-polyfills": "1.0.2",
12
  "automattic/jetpack-changelogger": "^3.0"
13
  },
39
  "link-template": "https://github.com/Automattic/jetpack-status/compare/v${old}...v${new}"
40
  },
41
  "branch-alias": {
42
+ "dev-master": "1.9.x-dev"
43
  }
44
  }
45
  }
vendor/automattic/jetpack-status/src/class-host.php ADDED
@@ -0,0 +1,40 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * A hosting provide class for Jetpack.
4
+ *
5
+ * @package automattic/jetpack-status
6
+ */
7
+
8
+ namespace Automattic\Jetpack\Status;
9
+
10
+ use Automattic\Jetpack\Constants;
11
+
12
+ /**
13
+ * Hosting provider class.
14
+ */
15
+ class Host {
16
+ /**
17
+ * Determine if this site is an WordPress.com on Atomic site or not looking first at the 'at_options' option.
18
+ * As a fallback, check for presence of wpcomsh plugin to determine if a current site has undergone AT.
19
+ *
20
+ * @since $$next_version$$
21
+ *
22
+ * @return bool
23
+ */
24
+ public function is_woa_site() {
25
+ $at_options = get_option( 'at_options', array() );
26
+ return $this->is_atomic_platform() && ( ! empty( $at_options ) || Constants::is_true( 'WPCOMSH__PLUGIN_FILE' ) );
27
+ }
28
+
29
+ /**
30
+ * Determine if site is hosted on the Atomic hosting platform.
31
+ *
32
+ * @since $$next_version$$
33
+ *
34
+ * @return bool;
35
+ */
36
+ public function is_atomic_platform() {
37
+ return Constants::is_true( 'ATOMIC_SITE_ID' ) && Constants::is_true( 'ATOMIC_CLIENT_ID' );
38
+ }
39
+
40
+ }
vendor/automattic/jetpack-status/src/class-status.php CHANGED
@@ -141,8 +141,9 @@ class Status {
141
  // Check for localhost and sites using an IP only first.
142
  $is_local = site_url() && false === strpos( site_url(), '.' );
143
 
 
144
  // Use Core's environment check, if available. Added in 5.5.0 / 5.5.1 (for `local` return value).
145
- if ( 'local' === wp_get_environment_type() ) {
146
  $is_local = true;
147
  }
148
 
@@ -184,8 +185,9 @@ class Status {
184
  * @return bool
185
  */
186
  public function is_staging_site() {
 
187
  // Core's wp_get_environment_type allows for a few specific options. We should default to bowing out gracefully for anything other than production or local.
188
- $is_staging = ! in_array( \wp_get_environment_type(), array( 'production', 'local' ), true );
189
 
190
  $known_staging = array(
191
  'urls' => array(
141
  // Check for localhost and sites using an IP only first.
142
  $is_local = site_url() && false === strpos( site_url(), '.' );
143
 
144
+ // @todo Remove function_exists when the package has a documented minimum WP version.
145
  // Use Core's environment check, if available. Added in 5.5.0 / 5.5.1 (for `local` return value).
146
+ if ( function_exists( 'wp_get_environment_type' ) && 'local' === wp_get_environment_type() ) {
147
  $is_local = true;
148
  }
149
 
185
  * @return bool
186
  */
187
  public function is_staging_site() {
188
+ // @todo Remove function_exists when the package has a documented minimum WP version.
189
  // Core's wp_get_environment_type allows for a few specific options. We should default to bowing out gracefully for anything other than production or local.
190
+ $is_staging = function_exists( 'wp_get_environment_type' ) && ! in_array( wp_get_environment_type(), array( 'production', 'local' ), true );
191
 
192
  $known_staging = array(
193
  'urls' => array(
vendor/automattic/jetpack-terms-of-service/CHANGELOG.md CHANGED
@@ -5,6 +5,19 @@ All notable changes to this project will be documented in this file.
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8
  ## [1.9.12] - 2021-10-13
9
  ### Changed
10
  - Updated package dependencies.
@@ -156,6 +169,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
156
 
157
  - Package: Create new TOS package
158
 
 
 
 
159
  [1.9.12]: https://github.com/Automattic/jetpack-terms-of-service/compare/v1.9.11...v1.9.12
160
  [1.9.11]: https://github.com/Automattic/jetpack-terms-of-service/compare/v1.9.10...v1.9.11
161
  [1.9.10]: https://github.com/Automattic/jetpack-terms-of-service/compare/v1.9.9...v1.9.10
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
 
8
+ ## [1.9.15] - 2021-11-22
9
+ ### Changed
10
+ - Updated package dependencies
11
+
12
+ ## [1.9.14] - 2021-11-02
13
+ ### Changed
14
+ - Set `convertDeprecationsToExceptions` true in PHPUnit config.
15
+ - Update PHPUnit configs to include just what needs coverage rather than include everything then try to exclude stuff that doesn't.
16
+
17
+ ## [1.9.13] - 2021-10-26
18
+ ### Changed
19
+ - Updated package dependencies.
20
+
21
  ## [1.9.12] - 2021-10-13
22
  ### Changed
23
  - Updated package dependencies.
169
 
170
  - Package: Create new TOS package
171
 
172
+ [1.9.15]: https://github.com/Automattic/jetpack-terms-of-service/compare/v1.9.14...v1.9.15
173
+ [1.9.14]: https://github.com/Automattic/jetpack-terms-of-service/compare/v1.9.13...v1.9.14
174
+ [1.9.13]: https://github.com/Automattic/jetpack-terms-of-service/compare/v1.9.12...v1.9.13
175
  [1.9.12]: https://github.com/Automattic/jetpack-terms-of-service/compare/v1.9.11...v1.9.12
176
  [1.9.11]: https://github.com/Automattic/jetpack-terms-of-service/compare/v1.9.10...v1.9.11
177
  [1.9.10]: https://github.com/Automattic/jetpack-terms-of-service/compare/v1.9.9...v1.9.10
vendor/automattic/jetpack-terms-of-service/composer.json CHANGED
@@ -5,10 +5,10 @@
5
  "license": "GPL-2.0-or-later",
6
  "require": {
7
  "automattic/jetpack-options": "^1.13",
8
- "automattic/jetpack-status": "^1.8"
9
  },
10
  "require-dev": {
11
- "brain/monkey": "2.6.0",
12
  "yoast/phpunit-polyfills": "1.0.2",
13
  "automattic/jetpack-changelogger": "^3.0"
14
  },
5
  "license": "GPL-2.0-or-later",
6
  "require": {
7
  "automattic/jetpack-options": "^1.13",
8
+ "automattic/jetpack-status": "^1.9"
9
  },
10
  "require-dev": {
11
+ "brain/monkey": "2.6.1",
12
  "yoast/phpunit-polyfills": "1.0.2",
13
  "automattic/jetpack-changelogger": "^3.0"
14
  },
vendor/automattic/jetpack-tracking/CHANGELOG.md CHANGED
@@ -5,6 +5,23 @@ All notable changes to this project will be documented in this file.
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8
  ## [1.13.13] - 2021-10-13
9
  ### Changed
10
  - Updated package dependencies.
@@ -175,6 +192,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
175
 
176
  - Create package for Jetpack Tracking
177
 
 
 
 
 
178
  [1.13.13]: https://github.com/Automattic/jetpack-tracking/compare/v1.13.12...v1.13.13
179
  [1.13.12]: https://github.com/Automattic/jetpack-tracking/compare/v1.13.11...v1.13.12
180
  [1.13.11]: https://github.com/Automattic/jetpack-tracking/compare/v1.13.10...v1.13.11
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
 
8
+ ## [1.13.17] - 2021-11-22
9
+ ### Changed
10
+ - Updated package dependencies
11
+
12
+ ## [1.13.16] - 2021-11-16
13
+ ### Changed
14
+ - Updated package dependencies.
15
+
16
+ ## [1.13.15] - 2021-11-02
17
+ ### Changed
18
+ - Set `convertDeprecationsToExceptions` true in PHPUnit config.
19
+ - Update PHPUnit configs to include just what needs coverage rather than include everything then try to exclude stuff that doesn't.
20
+
21
+ ## [1.13.14] - 2021-10-26
22
+ ### Changed
23
+ - Updated package dependencies.
24
+
25
  ## [1.13.13] - 2021-10-13
26
  ### Changed
27
  - Updated package dependencies.
192
 
193
  - Create package for Jetpack Tracking
194
 
195
+ [1.13.17]: https://github.com/Automattic/jetpack-tracking/compare/v1.13.16...v1.13.17
196
+ [1.13.16]: https://github.com/Automattic/jetpack-tracking/compare/v1.13.15...v1.13.16
197
+ [1.13.15]: https://github.com/Automattic/jetpack-tracking/compare/v1.13.14...v1.13.15
198
+ [1.13.14]: https://github.com/Automattic/jetpack-tracking/compare/v1.13.13...v1.13.14
199
  [1.13.13]: https://github.com/Automattic/jetpack-tracking/compare/v1.13.12...v1.13.13
200
  [1.13.12]: https://github.com/Automattic/jetpack-tracking/compare/v1.13.11...v1.13.12
201
  [1.13.11]: https://github.com/Automattic/jetpack-tracking/compare/v1.13.10...v1.13.11
vendor/automattic/jetpack-tracking/composer.json CHANGED
@@ -4,13 +4,13 @@
4
  "type": "library",
5
  "license": "GPL-2.0-or-later",
6
  "require": {
7
- "automattic/jetpack-assets": "^1.11",
8
  "automattic/jetpack-options": "^1.13",
9
- "automattic/jetpack-status": "^1.8",
10
  "automattic/jetpack-terms-of-service": "^1.9"
11
  },
12
  "require-dev": {
13
- "brain/monkey": "2.6.0",
14
  "yoast/phpunit-polyfills": "1.0.2",
15
  "automattic/jetpack-changelogger": "^3.0"
16
  },
4
  "type": "library",
5
  "license": "GPL-2.0-or-later",
6
  "require": {
7
+ "automattic/jetpack-assets": "^1.13",
8
  "automattic/jetpack-options": "^1.13",
9
+ "automattic/jetpack-status": "^1.9",
10
  "automattic/jetpack-terms-of-service": "^1.9"
11
  },
12
  "require-dev": {
13
+ "brain/monkey": "2.6.1",
14
  "yoast/phpunit-polyfills": "1.0.2",
15
  "automattic/jetpack-changelogger": "^3.0"
16
  },
vendor/composer/autoload_classmap.php CHANGED
@@ -42,6 +42,7 @@ return array(
42
  'Automattic\\Jetpack\\Redirect' => $vendorDir . '/automattic/jetpack-redirect/src/class-redirect.php',
43
  'Automattic\\Jetpack\\Roles' => $vendorDir . '/automattic/jetpack-roles/src/class-roles.php',
44
  'Automattic\\Jetpack\\Status' => $vendorDir . '/automattic/jetpack-status/src/class-status.php',
 
45
  'Automattic\\Jetpack\\Terms_Of_Service' => $vendorDir . '/automattic/jetpack-terms-of-service/src/class-terms-of-service.php',
46
  'Automattic\\Jetpack\\Tracking' => $vendorDir . '/automattic/jetpack-tracking/src/class-tracking.php',
47
  'Automattic\\Jetpack_Boost\\Admin\\Admin' => $baseDir . '/app/admin/class-admin.php',
42
  'Automattic\\Jetpack\\Redirect' => $vendorDir . '/automattic/jetpack-redirect/src/class-redirect.php',
43
  'Automattic\\Jetpack\\Roles' => $vendorDir . '/automattic/jetpack-roles/src/class-roles.php',
44
  'Automattic\\Jetpack\\Status' => $vendorDir . '/automattic/jetpack-status/src/class-status.php',
45
+ 'Automattic\\Jetpack\\Status\\Host' => $vendorDir . '/automattic/jetpack-status/src/class-host.php',
46
  'Automattic\\Jetpack\\Terms_Of_Service' => $vendorDir . '/automattic/jetpack-terms-of-service/src/class-terms-of-service.php',
47
  'Automattic\\Jetpack\\Tracking' => $vendorDir . '/automattic/jetpack-tracking/src/class-tracking.php',
48
  'Automattic\\Jetpack_Boost\\Admin\\Admin' => $baseDir . '/app/admin/class-admin.php',
vendor/composer/autoload_real.php CHANGED
@@ -2,7 +2,7 @@
2
 
3
  // autoload_real.php @generated by Composer
4
 
5
- class ComposerAutoloaderInitb1e77e6231d50e7663f84529b6a3dfda_jetpack_boostⓥ1_3_0
6
  {
7
  private static $loader;
8
 
@@ -24,15 +24,15 @@ class ComposerAutoloaderInitb1e77e6231d50e7663f84529b6a3dfda_jetpack_boostⓥ1_3
24
 
25
  require __DIR__ . '/platform_check.php';
26
 
27
- spl_autoload_register(array('ComposerAutoloaderInitb1e77e6231d50e7663f84529b6a3dfda_jetpack_boostⓥ1_3_0', 'loadClassLoader'), true, true);
28
  self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(\dirname(__FILE__)));
29
- spl_autoload_unregister(array('ComposerAutoloaderInitb1e77e6231d50e7663f84529b6a3dfda_jetpack_boostⓥ1_3_0', 'loadClassLoader'));
30
 
31
  $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
32
  if ($useStaticLoader) {
33
  require __DIR__ . '/autoload_static.php';
34
 
35
- call_user_func(\Composer\Autoload\ComposerStaticInitb1e77e6231d50e7663f84529b6a3dfda_jetpack_boostⓥ1_3_0::getInitializer($loader));
36
  } else {
37
  $classMap = require __DIR__ . '/autoload_classmap.php';
38
  if ($classMap) {
2
 
3
  // autoload_real.php @generated by Composer
4
 
5
+ class ComposerAutoloaderInitb1e77e6231d50e7663f84529b6a3dfda_jetpack_boostⓥ1_3_1
6
  {
7
  private static $loader;
8
 
24
 
25
  require __DIR__ . '/platform_check.php';
26
 
27
+ spl_autoload_register(array('ComposerAutoloaderInitb1e77e6231d50e7663f84529b6a3dfda_jetpack_boostⓥ1_3_1', 'loadClassLoader'), true, true);
28
  self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(\dirname(__FILE__)));
29
+ spl_autoload_unregister(array('ComposerAutoloaderInitb1e77e6231d50e7663f84529b6a3dfda_jetpack_boostⓥ1_3_1', 'loadClassLoader'));
30
 
31
  $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
32
  if ($useStaticLoader) {
33
  require __DIR__ . '/autoload_static.php';
34
 
35
+ call_user_func(\Composer\Autoload\ComposerStaticInitb1e77e6231d50e7663f84529b6a3dfda_jetpack_boostⓥ1_3_1::getInitializer($loader));
36
  } else {
37
  $classMap = require __DIR__ . '/autoload_classmap.php';
38
  if ($classMap) {
vendor/composer/autoload_static.php CHANGED
@@ -4,7 +4,7 @@
4
 
5
  namespace Composer\Autoload;
6
 
7
- class ComposerStaticInitb1e77e6231d50e7663f84529b6a3dfda_jetpack_boostⓥ1_3_0
8
  {
9
  public static $prefixLengthsPsr4 = array (
10
  'A' =>
@@ -67,6 +67,7 @@ class ComposerStaticInitb1e77e6231d50e7663f84529b6a3dfda_jetpack_boostⓥ1_3_0
67
  'Automattic\\Jetpack\\Redirect' => __DIR__ . '/..' . '/automattic/jetpack-redirect/src/class-redirect.php',
68
  'Automattic\\Jetpack\\Roles' => __DIR__ . '/..' . '/automattic/jetpack-roles/src/class-roles.php',
69
  'Automattic\\Jetpack\\Status' => __DIR__ . '/..' . '/automattic/jetpack-status/src/class-status.php',
 
70
  'Automattic\\Jetpack\\Terms_Of_Service' => __DIR__ . '/..' . '/automattic/jetpack-terms-of-service/src/class-terms-of-service.php',
71
  'Automattic\\Jetpack\\Tracking' => __DIR__ . '/..' . '/automattic/jetpack-tracking/src/class-tracking.php',
72
  'Automattic\\Jetpack_Boost\\Admin\\Admin' => __DIR__ . '/../..' . '/app/admin/class-admin.php',
@@ -119,10 +120,10 @@ class ComposerStaticInitb1e77e6231d50e7663f84529b6a3dfda_jetpack_boostⓥ1_3_0
119
  public static function getInitializer(ClassLoader $loader)
120
  {
121
  return \Closure::bind(function () use ($loader) {
122
- $loader->prefixLengthsPsr4 = ComposerStaticInitb1e77e6231d50e7663f84529b6a3dfda_jetpack_boostⓥ1_3_0::$prefixLengthsPsr4;
123
- $loader->prefixDirsPsr4 = ComposerStaticInitb1e77e6231d50e7663f84529b6a3dfda_jetpack_boostⓥ1_3_0::$prefixDirsPsr4;
124
- $loader->prefixesPsr0 = ComposerStaticInitb1e77e6231d50e7663f84529b6a3dfda_jetpack_boostⓥ1_3_0::$prefixesPsr0;
125
- $loader->classMap = ComposerStaticInitb1e77e6231d50e7663f84529b6a3dfda_jetpack_boostⓥ1_3_0::$classMap;
126
 
127
  }, null, ClassLoader::class);
128
  }
4
 
5
  namespace Composer\Autoload;
6
 
7
+ class ComposerStaticInitb1e77e6231d50e7663f84529b6a3dfda_jetpack_boostⓥ1_3_1
8
  {
9
  public static $prefixLengthsPsr4 = array (
10
  'A' =>
67
  'Automattic\\Jetpack\\Redirect' => __DIR__ . '/..' . '/automattic/jetpack-redirect/src/class-redirect.php',
68
  'Automattic\\Jetpack\\Roles' => __DIR__ . '/..' . '/automattic/jetpack-roles/src/class-roles.php',
69
  'Automattic\\Jetpack\\Status' => __DIR__ . '/..' . '/automattic/jetpack-status/src/class-status.php',
70
+ 'Automattic\\Jetpack\\Status\\Host' => __DIR__ . '/..' . '/automattic/jetpack-status/src/class-host.php',
71
  'Automattic\\Jetpack\\Terms_Of_Service' => __DIR__ . '/..' . '/automattic/jetpack-terms-of-service/src/class-terms-of-service.php',
72
  'Automattic\\Jetpack\\Tracking' => __DIR__ . '/..' . '/automattic/jetpack-tracking/src/class-tracking.php',
73
  'Automattic\\Jetpack_Boost\\Admin\\Admin' => __DIR__ . '/../..' . '/app/admin/class-admin.php',
120
  public static function getInitializer(ClassLoader $loader)
121
  {
122
  return \Closure::bind(function () use ($loader) {
123
+ $loader->prefixLengthsPsr4 = ComposerStaticInitb1e77e6231d50e7663f84529b6a3dfda_jetpack_boostⓥ1_3_1::$prefixLengthsPsr4;
124
+ $loader->prefixDirsPsr4 = ComposerStaticInitb1e77e6231d50e7663f84529b6a3dfda_jetpack_boostⓥ1_3_1::$prefixDirsPsr4;
125
+ $loader->prefixesPsr0 = ComposerStaticInitb1e77e6231d50e7663f84529b6a3dfda_jetpack_boostⓥ1_3_1::$prefixesPsr0;
126
+ $loader->classMap = ComposerStaticInitb1e77e6231d50e7663f84529b6a3dfda_jetpack_boostⓥ1_3_1::$classMap;
127
 
128
  }, null, ClassLoader::class);
129
  }
vendor/composer/installed.json CHANGED
@@ -2,24 +2,24 @@
2
  "packages": [
3
  {
4
  "name": "automattic/jetpack-a8c-mc-stats",
5
- "version": "v1.4.8",
6
- "version_normalized": "1.4.8.0",
7
  "source": {
8
  "type": "git",
9
  "url": "https://github.com/Automattic/jetpack-a8c-mc-stats.git",
10
- "reference": "adb8738d08ae88c16a0dda0a3fc8285b60c0d96f"
11
  },
12
  "dist": {
13
  "type": "zip",
14
- "url": "https://api.github.com/repos/Automattic/jetpack-a8c-mc-stats/zipball/adb8738d08ae88c16a0dda0a3fc8285b60c0d96f",
15
- "reference": "adb8738d08ae88c16a0dda0a3fc8285b60c0d96f",
16
  "shasum": ""
17
  },
18
  "require-dev": {
19
  "automattic/jetpack-changelogger": "^3.0",
20
  "yoast/phpunit-polyfills": "1.0.2"
21
  },
22
- "time": "2021-10-13T17:10:46+00:00",
23
  "type": "library",
24
  "extra": {
25
  "autotagger": true,
@@ -43,23 +43,23 @@
43
  ],
44
  "description": "Used to record internal usage stats for Automattic. Not visible to site owners.",
45
  "support": {
46
- "source": "https://github.com/Automattic/jetpack-a8c-mc-stats/tree/v1.4.8"
47
  },
48
  "install-path": "../automattic/jetpack-a8c-mc-stats"
49
  },
50
  {
51
  "name": "automattic/jetpack-admin-ui",
52
- "version": "v0.1.0",
53
- "version_normalized": "0.1.0.0",
54
  "source": {
55
  "type": "git",
56
  "url": "https://github.com/Automattic/jetpack-admin-ui.git",
57
- "reference": "cdc082542b0967bfdc6363305906cf86d74126d9"
58
  },
59
  "dist": {
60
  "type": "zip",
61
- "url": "https://api.github.com/repos/Automattic/jetpack-admin-ui/zipball/cdc082542b0967bfdc6363305906cf86d74126d9",
62
- "reference": "cdc082542b0967bfdc6363305906cf86d74126d9",
63
  "shasum": ""
64
  },
65
  "require-dev": {
@@ -67,7 +67,7 @@
67
  "automattic/wordbless": "dev-master",
68
  "yoast/phpunit-polyfills": "1.0.2"
69
  },
70
- "time": "2021-10-13T17:10:47+00:00",
71
  "type": "library",
72
  "extra": {
73
  "autotagger": true,
@@ -94,23 +94,23 @@
94
  ],
95
  "description": "Generic Jetpack wp-admin UI elements",
96
  "support": {
97
- "source": "https://github.com/Automattic/jetpack-admin-ui/tree/v0.1.0"
98
  },
99
  "install-path": "../automattic/jetpack-admin-ui"
100
  },
101
  {
102
  "name": "automattic/jetpack-assets",
103
- "version": "v1.11.9",
104
- "version_normalized": "1.11.9.0",
105
  "source": {
106
  "type": "git",
107
  "url": "https://github.com/Automattic/jetpack-assets.git",
108
- "reference": "7e2fc169af1b3dfce5ea70e0b225aaf6ad49b77a"
109
  },
110
  "dist": {
111
  "type": "zip",
112
- "url": "https://api.github.com/repos/Automattic/jetpack-assets/zipball/7e2fc169af1b3dfce5ea70e0b225aaf6ad49b77a",
113
- "reference": "7e2fc169af1b3dfce5ea70e0b225aaf6ad49b77a",
114
  "shasum": ""
115
  },
116
  "require": {
@@ -118,10 +118,10 @@
118
  },
119
  "require-dev": {
120
  "automattic/jetpack-changelogger": "^3.0",
121
- "brain/monkey": "2.6.0",
122
  "yoast/phpunit-polyfills": "1.0.2"
123
  },
124
- "time": "2021-10-13T17:11:16+00:00",
125
  "type": "library",
126
  "extra": {
127
  "autotagger": true,
@@ -130,7 +130,7 @@
130
  "link-template": "https://github.com/Automattic/jetpack-assets/compare/v${old}...v${new}"
131
  },
132
  "branch-alias": {
133
- "dev-master": "1.11.x-dev"
134
  }
135
  },
136
  "installation-source": "dist",
@@ -145,23 +145,23 @@
145
  ],
146
  "description": "Asset management utilities for Jetpack ecosystem packages",
147
  "support": {
148
- "source": "https://github.com/Automattic/jetpack-assets/tree/v1.11.9"
149
  },
150
  "install-path": "../automattic/jetpack-assets"
151
  },
152
  {
153
  "name": "automattic/jetpack-autoloader",
154
- "version": "v2.10.8",
155
- "version_normalized": "2.10.8.0",
156
  "source": {
157
  "type": "git",
158
  "url": "https://github.com/Automattic/jetpack-autoloader.git",
159
- "reference": "95dfab9eaf9484887557ded269c44f9d03358290"
160
  },
161
  "dist": {
162
  "type": "zip",
163
- "url": "https://api.github.com/repos/Automattic/jetpack-autoloader/zipball/95dfab9eaf9484887557ded269c44f9d03358290",
164
- "reference": "95dfab9eaf9484887557ded269c44f9d03358290",
165
  "shasum": ""
166
  },
167
  "require": {
@@ -171,7 +171,7 @@
171
  "automattic/jetpack-changelogger": "^3.0",
172
  "yoast/phpunit-polyfills": "1.0.2"
173
  },
174
- "time": "2021-10-13T17:10:50+00:00",
175
  "type": "composer-plugin",
176
  "extra": {
177
  "autotagger": true,
@@ -199,7 +199,7 @@
199
  ],
200
  "description": "Creates a custom autoloader for a plugin or theme.",
201
  "support": {
202
- "source": "https://github.com/Automattic/jetpack-autoloader/tree/v2.10.8"
203
  },
204
  "install-path": "../automattic/jetpack-autoloader"
205
  },
@@ -251,17 +251,17 @@
251
  },
252
  {
253
  "name": "automattic/jetpack-connection",
254
- "version": "v1.30.10",
255
- "version_normalized": "1.30.10.0",
256
  "source": {
257
  "type": "git",
258
  "url": "https://github.com/Automattic/jetpack-connection.git",
259
- "reference": "844cb5264ffd2bc41e641016a3b5c57cb03ae70e"
260
  },
261
  "dist": {
262
  "type": "zip",
263
- "url": "https://api.github.com/repos/Automattic/jetpack-connection/zipball/844cb5264ffd2bc41e641016a3b5c57cb03ae70e",
264
- "reference": "844cb5264ffd2bc41e641016a3b5c57cb03ae70e",
265
  "shasum": ""
266
  },
267
  "require": {
@@ -271,17 +271,17 @@
271
  "automattic/jetpack-options": "^1.13",
272
  "automattic/jetpack-redirect": "^1.7",
273
  "automattic/jetpack-roles": "^1.4",
274
- "automattic/jetpack-status": "^1.8",
275
  "automattic/jetpack-terms-of-service": "^1.9",
276
  "automattic/jetpack-tracking": "^1.13"
277
  },
278
  "require-dev": {
279
  "automattic/jetpack-changelogger": "^3.0",
280
  "automattic/wordbless": "@dev",
281
- "brain/monkey": "2.6.0",
282
  "yoast/phpunit-polyfills": "1.0.2"
283
  },
284
- "time": "2021-10-19T10:39:56+00:00",
285
  "type": "library",
286
  "extra": {
287
  "autotagger": true,
@@ -293,7 +293,7 @@
293
  "link-template": "https://github.com/Automattic/jetpack-connection/compare/v${old}...v${new}"
294
  },
295
  "branch-alias": {
296
- "dev-master": "1.30.x-dev"
297
  }
298
  },
299
  "installation-source": "dist",
@@ -309,31 +309,31 @@
309
  ],
310
  "description": "Everything needed to connect to the Jetpack infrastructure",
311
  "support": {
312
- "source": "https://github.com/Automattic/jetpack-connection/tree/v1.30.10"
313
  },
314
  "install-path": "../automattic/jetpack-connection"
315
  },
316
  {
317
  "name": "automattic/jetpack-constants",
318
- "version": "v1.6.9",
319
- "version_normalized": "1.6.9.0",
320
  "source": {
321
  "type": "git",
322
  "url": "https://github.com/Automattic/jetpack-constants.git",
323
- "reference": "b4764b5050367692f173d62220cf1e69f4f7af0b"
324
  },
325
  "dist": {
326
  "type": "zip",
327
- "url": "https://api.github.com/repos/Automattic/jetpack-constants/zipball/b4764b5050367692f173d62220cf1e69f4f7af0b",
328
- "reference": "b4764b5050367692f173d62220cf1e69f4f7af0b",
329
  "shasum": ""
330
  },
331
  "require-dev": {
332
  "automattic/jetpack-changelogger": "^3.0",
333
- "brain/monkey": "2.6.0",
334
  "yoast/phpunit-polyfills": "1.0.2"
335
  },
336
- "time": "2021-10-13T17:10:57+00:00",
337
  "type": "library",
338
  "extra": {
339
  "autotagger": true,
@@ -357,30 +357,30 @@
357
  ],
358
  "description": "A wrapper for defining constants in a more testable way.",
359
  "support": {
360
- "source": "https://github.com/Automattic/jetpack-constants/tree/v1.6.9"
361
  },
362
  "install-path": "../automattic/jetpack-constants"
363
  },
364
  {
365
  "name": "automattic/jetpack-device-detection",
366
- "version": "v1.4.7",
367
- "version_normalized": "1.4.7.0",
368
  "source": {
369
  "type": "git",
370
  "url": "https://github.com/Automattic/jetpack-device-detection.git",
371
- "reference": "cbacb9c516c93d69e3ad7cd2820292e70066453b"
372
  },
373
  "dist": {
374
  "type": "zip",
375
- "url": "https://api.github.com/repos/Automattic/jetpack-device-detection/zipball/cbacb9c516c93d69e3ad7cd2820292e70066453b",
376
- "reference": "cbacb9c516c93d69e3ad7cd2820292e70066453b",
377
  "shasum": ""
378
  },
379
  "require-dev": {
380
  "automattic/jetpack-changelogger": "^3.0",
381
  "yoast/phpunit-polyfills": "1.0.2"
382
  },
383
- "time": "2021-10-19T10:39:42+00:00",
384
  "type": "library",
385
  "extra": {
386
  "autotagger": true,
@@ -404,7 +404,7 @@
404
  ],
405
  "description": "A way to detect device types based on User-Agent header.",
406
  "support": {
407
- "source": "https://github.com/Automattic/jetpack-device-detection/tree/v1.4.7"
408
  },
409
  "install-path": "../automattic/jetpack-device-detection"
410
  },
@@ -460,21 +460,21 @@
460
  },
461
  {
462
  "name": "automattic/jetpack-lazy-images",
463
- "version": "v2.0.3",
464
- "version_normalized": "2.0.3.0",
465
  "source": {
466
  "type": "git",
467
  "url": "https://github.com/Automattic/jetpack-lazy-images.git",
468
- "reference": "e6ffca36388dcc4ad02ca10c118cb17554b9bf32"
469
  },
470
  "dist": {
471
  "type": "zip",
472
- "url": "https://api.github.com/repos/Automattic/jetpack-lazy-images/zipball/e6ffca36388dcc4ad02ca10c118cb17554b9bf32",
473
- "reference": "e6ffca36388dcc4ad02ca10c118cb17554b9bf32",
474
  "shasum": ""
475
  },
476
  "require": {
477
- "automattic/jetpack-assets": "^1.11",
478
  "automattic/jetpack-constants": "^1.6"
479
  },
480
  "require-dev": {
@@ -482,7 +482,7 @@
482
  "automattic/wordbless": "dev-master",
483
  "yoast/phpunit-polyfills": "1.0.2"
484
  },
485
- "time": "2021-10-19T10:39:53+00:00",
486
  "type": "library",
487
  "extra": {
488
  "autotagger": true,
@@ -506,23 +506,23 @@
506
  ],
507
  "description": "Speed up your site and create a smoother viewing experience by loading images as visitors scroll down the screen, instead of all at once.",
508
  "support": {
509
- "source": "https://github.com/Automattic/jetpack-lazy-images/tree/v2.0.3"
510
  },
511
  "install-path": "../automattic/jetpack-lazy-images"
512
  },
513
  {
514
  "name": "automattic/jetpack-options",
515
- "version": "v1.13.4",
516
- "version_normalized": "1.13.4.0",
517
  "source": {
518
  "type": "git",
519
  "url": "https://github.com/Automattic/jetpack-options.git",
520
- "reference": "aa021e07d60b978f8631de1aa564af80b46eede5"
521
  },
522
  "dist": {
523
  "type": "zip",
524
- "url": "https://api.github.com/repos/Automattic/jetpack-options/zipball/aa021e07d60b978f8631de1aa564af80b46eede5",
525
- "reference": "aa021e07d60b978f8631de1aa564af80b46eede5",
526
  "shasum": ""
527
  },
528
  "require": {
@@ -532,7 +532,7 @@
532
  "automattic/jetpack-changelogger": "^3.0",
533
  "yoast/phpunit-polyfills": "1.0.2"
534
  },
535
- "time": "2021-10-13T17:11:18+00:00",
536
  "type": "library",
537
  "extra": {
538
  "autotagger": true,
@@ -556,34 +556,34 @@
556
  ],
557
  "description": "A wrapper for wp-options to manage specific Jetpack options.",
558
  "support": {
559
- "source": "https://github.com/Automattic/jetpack-options/tree/v1.13.4"
560
  },
561
  "install-path": "../automattic/jetpack-options"
562
  },
563
  {
564
  "name": "automattic/jetpack-redirect",
565
- "version": "v1.7.4",
566
- "version_normalized": "1.7.4.0",
567
  "source": {
568
  "type": "git",
569
  "url": "https://github.com/Automattic/jetpack-redirect.git",
570
- "reference": "c3e64db200272f3ab7a5fb0381b0c3a5b89a624f"
571
  },
572
  "dist": {
573
  "type": "zip",
574
- "url": "https://api.github.com/repos/Automattic/jetpack-redirect/zipball/c3e64db200272f3ab7a5fb0381b0c3a5b89a624f",
575
- "reference": "c3e64db200272f3ab7a5fb0381b0c3a5b89a624f",
576
  "shasum": ""
577
  },
578
  "require": {
579
- "automattic/jetpack-status": "^1.8"
580
  },
581
  "require-dev": {
582
  "automattic/jetpack-changelogger": "^3.0",
583
- "brain/monkey": "2.6.0",
584
  "yoast/phpunit-polyfills": "1.0.2"
585
  },
586
- "time": "2021-10-13T17:11:20+00:00",
587
  "type": "library",
588
  "extra": {
589
  "autotagger": true,
@@ -607,31 +607,31 @@
607
  ],
608
  "description": "Utilities to build URLs to the jetpack.com/redirect/ service",
609
  "support": {
610
- "source": "https://github.com/Automattic/jetpack-redirect/tree/v1.7.4"
611
  },
612
  "install-path": "../automattic/jetpack-redirect"
613
  },
614
  {
615
  "name": "automattic/jetpack-roles",
616
- "version": "v1.4.9",
617
- "version_normalized": "1.4.9.0",
618
  "source": {
619
  "type": "git",
620
  "url": "https://github.com/Automattic/jetpack-roles.git",
621
- "reference": "75d466da1c421d071d09051eddfd570a7c950f59"
622
  },
623
  "dist": {
624
  "type": "zip",
625
- "url": "https://api.github.com/repos/Automattic/jetpack-roles/zipball/75d466da1c421d071d09051eddfd570a7c950f59",
626
- "reference": "75d466da1c421d071d09051eddfd570a7c950f59",
627
  "shasum": ""
628
  },
629
  "require-dev": {
630
  "automattic/jetpack-changelogger": "^3.0",
631
- "brain/monkey": "2.6.0",
632
  "yoast/phpunit-polyfills": "1.0.2"
633
  },
634
- "time": "2021-10-13T17:11:07+00:00",
635
  "type": "library",
636
  "extra": {
637
  "autotagger": true,
@@ -655,31 +655,34 @@
655
  ],
656
  "description": "Utilities, related with user roles and capabilities.",
657
  "support": {
658
- "source": "https://github.com/Automattic/jetpack-roles/tree/v1.4.9"
659
  },
660
  "install-path": "../automattic/jetpack-roles"
661
  },
662
  {
663
  "name": "automattic/jetpack-status",
664
- "version": "v1.8.4",
665
- "version_normalized": "1.8.4.0",
666
  "source": {
667
  "type": "git",
668
  "url": "https://github.com/Automattic/jetpack-status.git",
669
- "reference": "da3d0a44586f5a168d7c8d930ce21539db30ae47"
670
  },
671
  "dist": {
672
  "type": "zip",
673
- "url": "https://api.github.com/repos/Automattic/jetpack-status/zipball/da3d0a44586f5a168d7c8d930ce21539db30ae47",
674
- "reference": "da3d0a44586f5a168d7c8d930ce21539db30ae47",
675
  "shasum": ""
676
  },
 
 
 
677
  "require-dev": {
678
  "automattic/jetpack-changelogger": "^3.0",
679
- "brain/monkey": "2.6.0",
680
  "yoast/phpunit-polyfills": "1.0.2"
681
  },
682
- "time": "2021-10-13T17:11:09+00:00",
683
  "type": "library",
684
  "extra": {
685
  "autotagger": true,
@@ -688,7 +691,7 @@
688
  "link-template": "https://github.com/Automattic/jetpack-status/compare/v${old}...v${new}"
689
  },
690
  "branch-alias": {
691
- "dev-master": "1.8.x-dev"
692
  }
693
  },
694
  "installation-source": "dist",
@@ -703,35 +706,35 @@
703
  ],
704
  "description": "Used to retrieve information about the current status of Jetpack and the site overall.",
705
  "support": {
706
- "source": "https://github.com/Automattic/jetpack-status/tree/v1.8.4"
707
  },
708
  "install-path": "../automattic/jetpack-status"
709
  },
710
  {
711
  "name": "automattic/jetpack-terms-of-service",
712
- "version": "v1.9.12",
713
- "version_normalized": "1.9.12.0",
714
  "source": {
715
  "type": "git",
716
  "url": "https://github.com/Automattic/jetpack-terms-of-service.git",
717
- "reference": "4c7cf21695503750be136d1e431a3c0f4c2d737d"
718
  },
719
  "dist": {
720
  "type": "zip",
721
- "url": "https://api.github.com/repos/Automattic/jetpack-terms-of-service/zipball/4c7cf21695503750be136d1e431a3c0f4c2d737d",
722
- "reference": "4c7cf21695503750be136d1e431a3c0f4c2d737d",
723
  "shasum": ""
724
  },
725
  "require": {
726
  "automattic/jetpack-options": "^1.13",
727
- "automattic/jetpack-status": "^1.8"
728
  },
729
  "require-dev": {
730
  "automattic/jetpack-changelogger": "^3.0",
731
- "brain/monkey": "2.6.0",
732
  "yoast/phpunit-polyfills": "1.0.2"
733
  },
734
- "time": "2021-10-13T17:11:28+00:00",
735
  "type": "library",
736
  "extra": {
737
  "autotagger": true,
@@ -755,37 +758,37 @@
755
  ],
756
  "description": "Everything need to manage the terms of service state",
757
  "support": {
758
- "source": "https://github.com/Automattic/jetpack-terms-of-service/tree/v1.9.12"
759
  },
760
  "install-path": "../automattic/jetpack-terms-of-service"
761
  },
762
  {
763
  "name": "automattic/jetpack-tracking",
764
- "version": "v1.13.13",
765
- "version_normalized": "1.13.13.0",
766
  "source": {
767
  "type": "git",
768
  "url": "https://github.com/Automattic/jetpack-tracking.git",
769
- "reference": "f49360abb3b9c1072f6f7b336fbd2324a477f2ae"
770
  },
771
  "dist": {
772
  "type": "zip",
773
- "url": "https://api.github.com/repos/Automattic/jetpack-tracking/zipball/f49360abb3b9c1072f6f7b336fbd2324a477f2ae",
774
- "reference": "f49360abb3b9c1072f6f7b336fbd2324a477f2ae",
775
  "shasum": ""
776
  },
777
  "require": {
778
- "automattic/jetpack-assets": "^1.11",
779
  "automattic/jetpack-options": "^1.13",
780
- "automattic/jetpack-status": "^1.8",
781
  "automattic/jetpack-terms-of-service": "^1.9"
782
  },
783
  "require-dev": {
784
  "automattic/jetpack-changelogger": "^3.0",
785
- "brain/monkey": "2.6.0",
786
  "yoast/phpunit-polyfills": "1.0.2"
787
  },
788
- "time": "2021-10-13T17:11:30+00:00",
789
  "type": "library",
790
  "extra": {
791
  "autotagger": true,
@@ -810,7 +813,7 @@
810
  ],
811
  "description": "Tracking for Jetpack",
812
  "support": {
813
- "source": "https://github.com/Automattic/jetpack-tracking/tree/v1.13.13"
814
  },
815
  "install-path": "../automattic/jetpack-tracking"
816
  },
2
  "packages": [
3
  {
4
  "name": "automattic/jetpack-a8c-mc-stats",
5
+ "version": "v1.4.9",
6
+ "version_normalized": "1.4.9.0",
7
  "source": {
8
  "type": "git",
9
  "url": "https://github.com/Automattic/jetpack-a8c-mc-stats.git",
10
+ "reference": "6920ecb008891558cbf619838d1ce963838f077d"
11
  },
12
  "dist": {
13
  "type": "zip",
14
+ "url": "https://api.github.com/repos/Automattic/jetpack-a8c-mc-stats/zipball/6920ecb008891558cbf619838d1ce963838f077d",
15
+ "reference": "6920ecb008891558cbf619838d1ce963838f077d",
16
  "shasum": ""
17
  },
18
  "require-dev": {
19
  "automattic/jetpack-changelogger": "^3.0",
20
  "yoast/phpunit-polyfills": "1.0.2"
21
  },
22
+ "time": "2021-11-02T14:06:54+00:00",
23
  "type": "library",
24
  "extra": {
25
  "autotagger": true,
43
  ],
44
  "description": "Used to record internal usage stats for Automattic. Not visible to site owners.",
45
  "support": {
46
+ "source": "https://github.com/Automattic/jetpack-a8c-mc-stats/tree/v1.4.9"
47
  },
48
  "install-path": "../automattic/jetpack-a8c-mc-stats"
49
  },
50
  {
51
  "name": "automattic/jetpack-admin-ui",
52
+ "version": "v0.1.1",
53
+ "version_normalized": "0.1.1.0",
54
  "source": {
55
  "type": "git",
56
  "url": "https://github.com/Automattic/jetpack-admin-ui.git",
57
+ "reference": "1888f7b1b9e5f16df8d4629d27aa6f2c69f46788"
58
  },
59
  "dist": {
60
  "type": "zip",
61
+ "url": "https://api.github.com/repos/Automattic/jetpack-admin-ui/zipball/1888f7b1b9e5f16df8d4629d27aa6f2c69f46788",
62
+ "reference": "1888f7b1b9e5f16df8d4629d27aa6f2c69f46788",
63
  "shasum": ""
64
  },
65
  "require-dev": {
67
  "automattic/wordbless": "dev-master",
68
  "yoast/phpunit-polyfills": "1.0.2"
69
  },
70
+ "time": "2021-11-18T01:12:26+00:00",
71
  "type": "library",
72
  "extra": {
73
  "autotagger": true,
94
  ],
95
  "description": "Generic Jetpack wp-admin UI elements",
96
  "support": {
97
+ "source": "https://github.com/Automattic/jetpack-admin-ui/tree/v0.1.1"
98
  },
99
  "install-path": "../automattic/jetpack-admin-ui"
100
  },
101
  {
102
  "name": "automattic/jetpack-assets",
103
+ "version": "v1.13.1",
104
+ "version_normalized": "1.13.1.0",
105
  "source": {
106
  "type": "git",
107
  "url": "https://github.com/Automattic/jetpack-assets.git",
108
+ "reference": "3f1bb61ef36548ba0e503816b557c303ea179d1c"
109
  },
110
  "dist": {
111
  "type": "zip",
112
+ "url": "https://api.github.com/repos/Automattic/jetpack-assets/zipball/3f1bb61ef36548ba0e503816b557c303ea179d1c",
113
+ "reference": "3f1bb61ef36548ba0e503816b557c303ea179d1c",
114
  "shasum": ""
115
  },
116
  "require": {
118
  },
119
  "require-dev": {
120
  "automattic/jetpack-changelogger": "^3.0",
121
+ "brain/monkey": "2.6.1",
122
  "yoast/phpunit-polyfills": "1.0.2"
123
  },
124
+ "time": "2021-11-22T23:53:54+00:00",
125
  "type": "library",
126
  "extra": {
127
  "autotagger": true,
130
  "link-template": "https://github.com/Automattic/jetpack-assets/compare/v${old}...v${new}"
131
  },
132
  "branch-alias": {
133
+ "dev-master": "1.13.x-dev"
134
  }
135
  },
136
  "installation-source": "dist",
145
  ],
146
  "description": "Asset management utilities for Jetpack ecosystem packages",
147
  "support": {
148
+ "source": "https://github.com/Automattic/jetpack-assets/tree/v1.13.1"
149
  },
150
  "install-path": "../automattic/jetpack-assets"
151
  },
152
  {
153
  "name": "automattic/jetpack-autoloader",
154
+ "version": "v2.10.10",
155
+ "version_normalized": "2.10.10.0",
156
  "source": {
157
  "type": "git",
158
  "url": "https://github.com/Automattic/jetpack-autoloader.git",
159
+ "reference": "8060f5c5822671b146ce8f57380193c8fb8e2571"
160
  },
161
  "dist": {
162
  "type": "zip",
163
+ "url": "https://api.github.com/repos/Automattic/jetpack-autoloader/zipball/8060f5c5822671b146ce8f57380193c8fb8e2571",
164
+ "reference": "8060f5c5822671b146ce8f57380193c8fb8e2571",
165
  "shasum": ""
166
  },
167
  "require": {
171
  "automattic/jetpack-changelogger": "^3.0",
172
  "yoast/phpunit-polyfills": "1.0.2"
173
  },
174
+ "time": "2021-11-16T16:27:09+00:00",
175
  "type": "composer-plugin",
176
  "extra": {
177
  "autotagger": true,
199
  ],
200
  "description": "Creates a custom autoloader for a plugin or theme.",
201
  "support": {
202
+ "source": "https://github.com/Automattic/jetpack-autoloader/tree/v2.10.10"
203
  },
204
  "install-path": "../automattic/jetpack-autoloader"
205
  },
251
  },
252
  {
253
  "name": "automattic/jetpack-connection",
254
+ "version": "v1.31.0",
255
+ "version_normalized": "1.31.0.0",
256
  "source": {
257
  "type": "git",
258
  "url": "https://github.com/Automattic/jetpack-connection.git",
259
+ "reference": "529b874e1f0a38205b7c9be574c237a83e8def56"
260
  },
261
  "dist": {
262
  "type": "zip",
263
+ "url": "https://api.github.com/repos/Automattic/jetpack-connection/zipball/529b874e1f0a38205b7c9be574c237a83e8def56",
264
+ "reference": "529b874e1f0a38205b7c9be574c237a83e8def56",
265
  "shasum": ""
266
  },
267
  "require": {
271
  "automattic/jetpack-options": "^1.13",
272
  "automattic/jetpack-redirect": "^1.7",
273
  "automattic/jetpack-roles": "^1.4",
274
+ "automattic/jetpack-status": "^1.9",
275
  "automattic/jetpack-terms-of-service": "^1.9",
276
  "automattic/jetpack-tracking": "^1.13"
277
  },
278
  "require-dev": {
279
  "automattic/jetpack-changelogger": "^3.0",
280
  "automattic/wordbless": "@dev",
281
+ "brain/monkey": "2.6.1",
282
  "yoast/phpunit-polyfills": "1.0.2"
283
  },
284
+ "time": "2021-11-22T23:54:06+00:00",
285
  "type": "library",
286
  "extra": {
287
  "autotagger": true,
293
  "link-template": "https://github.com/Automattic/jetpack-connection/compare/v${old}...v${new}"
294
  },
295
  "branch-alias": {
296
+ "dev-master": "1.31.x-dev"
297
  }
298
  },
299
  "installation-source": "dist",
309
  ],
310
  "description": "Everything needed to connect to the Jetpack infrastructure",
311
  "support": {
312
+ "source": "https://github.com/Automattic/jetpack-connection/tree/v1.31.0"
313
  },
314
  "install-path": "../automattic/jetpack-connection"
315
  },
316
  {
317
  "name": "automattic/jetpack-constants",
318
+ "version": "v1.6.12",
319
+ "version_normalized": "1.6.12.0",
320
  "source": {
321
  "type": "git",
322
  "url": "https://github.com/Automattic/jetpack-constants.git",
323
+ "reference": "7adbedb4947bd3cdcf3aa25d8dda3844b137744a"
324
  },
325
  "dist": {
326
  "type": "zip",
327
+ "url": "https://api.github.com/repos/Automattic/jetpack-constants/zipball/7adbedb4947bd3cdcf3aa25d8dda3844b137744a",
328
+ "reference": "7adbedb4947bd3cdcf3aa25d8dda3844b137744a",
329
  "shasum": ""
330
  },
331
  "require-dev": {
332
  "automattic/jetpack-changelogger": "^3.0",
333
+ "brain/monkey": "2.6.1",
334
  "yoast/phpunit-polyfills": "1.0.2"
335
  },
336
+ "time": "2021-11-22T17:18:30+00:00",
337
  "type": "library",
338
  "extra": {
339
  "autotagger": true,
357
  ],
358
  "description": "A wrapper for defining constants in a more testable way.",
359
  "support": {
360
+ "source": "https://github.com/Automattic/jetpack-constants/tree/v1.6.12"
361
  },
362
  "install-path": "../automattic/jetpack-constants"
363
  },
364
  {
365
  "name": "automattic/jetpack-device-detection",
366
+ "version": "v1.4.9",
367
+ "version_normalized": "1.4.9.0",
368
  "source": {
369
  "type": "git",
370
  "url": "https://github.com/Automattic/jetpack-device-detection.git",
371
+ "reference": "6e4a0038e3733e3cdab73460f7f05d7310c3231b"
372
  },
373
  "dist": {
374
  "type": "zip",
375
+ "url": "https://api.github.com/repos/Automattic/jetpack-device-detection/zipball/6e4a0038e3733e3cdab73460f7f05d7310c3231b",
376
+ "reference": "6e4a0038e3733e3cdab73460f7f05d7310c3231b",
377
  "shasum": ""
378
  },
379
  "require-dev": {
380
  "automattic/jetpack-changelogger": "^3.0",
381
  "yoast/phpunit-polyfills": "1.0.2"
382
  },
383
+ "time": "2021-11-16T16:27:13+00:00",
384
  "type": "library",
385
  "extra": {
386
  "autotagger": true,
404
  ],
405
  "description": "A way to detect device types based on User-Agent header.",
406
  "support": {
407
+ "source": "https://github.com/Automattic/jetpack-device-detection/tree/v1.4.9"
408
  },
409
  "install-path": "../automattic/jetpack-device-detection"
410
  },
460
  },
461
  {
462
  "name": "automattic/jetpack-lazy-images",
463
+ "version": "v2.0.8",
464
+ "version_normalized": "2.0.8.0",
465
  "source": {
466
  "type": "git",
467
  "url": "https://github.com/Automattic/jetpack-lazy-images.git",
468
+ "reference": "8945311c9bcf76a7cf4ca7b4b87d56253ecf284c"
469
  },
470
  "dist": {
471
  "type": "zip",
472
+ "url": "https://api.github.com/repos/Automattic/jetpack-lazy-images/zipball/8945311c9bcf76a7cf4ca7b4b87d56253ecf284c",
473
+ "reference": "8945311c9bcf76a7cf4ca7b4b87d56253ecf284c",
474
  "shasum": ""
475
  },
476
  "require": {
477
+ "automattic/jetpack-assets": "^1.13",
478
  "automattic/jetpack-constants": "^1.6"
479
  },
480
  "require-dev": {
482
  "automattic/wordbless": "dev-master",
483
  "yoast/phpunit-polyfills": "1.0.2"
484
  },
485
+ "time": "2021-11-22T23:53:58+00:00",
486
  "type": "library",
487
  "extra": {
488
  "autotagger": true,
506
  ],
507
  "description": "Speed up your site and create a smoother viewing experience by loading images as visitors scroll down the screen, instead of all at once.",
508
  "support": {
509
+ "source": "https://github.com/Automattic/jetpack-lazy-images/tree/v2.0.8"
510
  },
511
  "install-path": "../automattic/jetpack-lazy-images"
512
  },
513
  {
514
  "name": "automattic/jetpack-options",
515
+ "version": "v1.13.5",
516
+ "version_normalized": "1.13.5.0",
517
  "source": {
518
  "type": "git",
519
  "url": "https://github.com/Automattic/jetpack-options.git",
520
+ "reference": "4d06428b2842be31a8796a32d91cfe37c28931d3"
521
  },
522
  "dist": {
523
  "type": "zip",
524
+ "url": "https://api.github.com/repos/Automattic/jetpack-options/zipball/4d06428b2842be31a8796a32d91cfe37c28931d3",
525
+ "reference": "4d06428b2842be31a8796a32d91cfe37c28931d3",
526
  "shasum": ""
527
  },
528
  "require": {
532
  "automattic/jetpack-changelogger": "^3.0",
533
  "yoast/phpunit-polyfills": "1.0.2"
534
  },
535
+ "time": "2021-11-16T16:27:20+00:00",
536
  "type": "library",
537
  "extra": {
538
  "autotagger": true,
556
  ],
557
  "description": "A wrapper for wp-options to manage specific Jetpack options.",
558
  "support": {
559
+ "source": "https://github.com/Automattic/jetpack-options/tree/v1.13.5"
560
  },
561
  "install-path": "../automattic/jetpack-options"
562
  },
563
  {
564
  "name": "automattic/jetpack-redirect",
565
+ "version": "v1.7.7",
566
+ "version_normalized": "1.7.7.0",
567
  "source": {
568
  "type": "git",
569
  "url": "https://github.com/Automattic/jetpack-redirect.git",
570
+ "reference": "129db0fb5db1096ec20ffd924bc7ee678639991a"
571
  },
572
  "dist": {
573
  "type": "zip",
574
+ "url": "https://api.github.com/repos/Automattic/jetpack-redirect/zipball/129db0fb5db1096ec20ffd924bc7ee678639991a",
575
+ "reference": "129db0fb5db1096ec20ffd924bc7ee678639991a",
576
  "shasum": ""
577
  },
578
  "require": {
579
+ "automattic/jetpack-status": "^1.9"
580
  },
581
  "require-dev": {
582
  "automattic/jetpack-changelogger": "^3.0",
583
+ "brain/monkey": "2.6.1",
584
  "yoast/phpunit-polyfills": "1.0.2"
585
  },
586
+ "time": "2021-11-22T23:54:00+00:00",
587
  "type": "library",
588
  "extra": {
589
  "autotagger": true,
607
  ],
608
  "description": "Utilities to build URLs to the jetpack.com/redirect/ service",
609
  "support": {
610
+ "source": "https://github.com/Automattic/jetpack-redirect/tree/v1.7.7"
611
  },
612
  "install-path": "../automattic/jetpack-redirect"
613
  },
614
  {
615
  "name": "automattic/jetpack-roles",
616
+ "version": "v1.4.11",
617
+ "version_normalized": "1.4.11.0",
618
  "source": {
619
  "type": "git",
620
  "url": "https://github.com/Automattic/jetpack-roles.git",
621
+ "reference": "7eae1d12e531414714098580e9557739a934e957"
622
  },
623
  "dist": {
624
  "type": "zip",
625
+ "url": "https://api.github.com/repos/Automattic/jetpack-roles/zipball/7eae1d12e531414714098580e9557739a934e957",
626
+ "reference": "7eae1d12e531414714098580e9557739a934e957",
627
  "shasum": ""
628
  },
629
  "require-dev": {
630
  "automattic/jetpack-changelogger": "^3.0",
631
+ "brain/monkey": "2.6.1",
632
  "yoast/phpunit-polyfills": "1.0.2"
633
  },
634
+ "time": "2021-11-22T23:53:51+00:00",
635
  "type": "library",
636
  "extra": {
637
  "autotagger": true,
655
  ],
656
  "description": "Utilities, related with user roles and capabilities.",
657
  "support": {
658
+ "source": "https://github.com/Automattic/jetpack-roles/tree/v1.4.11"
659
  },
660
  "install-path": "../automattic/jetpack-roles"
661
  },
662
  {
663
  "name": "automattic/jetpack-status",
664
+ "version": "v1.9.3",
665
+ "version_normalized": "1.9.3.0",
666
  "source": {
667
  "type": "git",
668
  "url": "https://github.com/Automattic/jetpack-status.git",
669
+ "reference": "fe050c1727bde3c43659f50226440e48b2aefec4"
670
  },
671
  "dist": {
672
  "type": "zip",
673
+ "url": "https://api.github.com/repos/Automattic/jetpack-status/zipball/fe050c1727bde3c43659f50226440e48b2aefec4",
674
+ "reference": "fe050c1727bde3c43659f50226440e48b2aefec4",
675
  "shasum": ""
676
  },
677
+ "require": {
678
+ "automattic/jetpack-constants": "^1.6"
679
+ },
680
  "require-dev": {
681
  "automattic/jetpack-changelogger": "^3.0",
682
+ "brain/monkey": "2.6.1",
683
  "yoast/phpunit-polyfills": "1.0.2"
684
  },
685
+ "time": "2021-11-22T23:53:56+00:00",
686
  "type": "library",
687
  "extra": {
688
  "autotagger": true,
691
  "link-template": "https://github.com/Automattic/jetpack-status/compare/v${old}...v${new}"
692
  },
693
  "branch-alias": {
694
+ "dev-master": "1.9.x-dev"
695
  }
696
  },
697
  "installation-source": "dist",
706
  ],
707
  "description": "Used to retrieve information about the current status of Jetpack and the site overall.",
708
  "support": {
709
+ "source": "https://github.com/Automattic/jetpack-status/tree/v1.9.3"
710
  },
711
  "install-path": "../automattic/jetpack-status"
712
  },
713
  {
714
  "name": "automattic/jetpack-terms-of-service",
715
+ "version": "v1.9.15",
716
+ "version_normalized": "1.9.15.0",
717
  "source": {
718
  "type": "git",
719
  "url": "https://github.com/Automattic/jetpack-terms-of-service.git",
720
+ "reference": "76e051a7530478c42bc30134159e043621c16892"
721
  },
722
  "dist": {
723
  "type": "zip",
724
+ "url": "https://api.github.com/repos/Automattic/jetpack-terms-of-service/zipball/76e051a7530478c42bc30134159e043621c16892",
725
+ "reference": "76e051a7530478c42bc30134159e043621c16892",
726
  "shasum": ""
727
  },
728
  "require": {
729
  "automattic/jetpack-options": "^1.13",
730
+ "automattic/jetpack-status": "^1.9"
731
  },
732
  "require-dev": {
733
  "automattic/jetpack-changelogger": "^3.0",
734
+ "brain/monkey": "2.6.1",
735
  "yoast/phpunit-polyfills": "1.0.2"
736
  },
737
+ "time": "2021-11-22T23:54:02+00:00",
738
  "type": "library",
739
  "extra": {
740
  "autotagger": true,
758
  ],
759
  "description": "Everything need to manage the terms of service state",
760
  "support": {
761
+ "source": "https://github.com/Automattic/jetpack-terms-of-service/tree/v1.9.15"
762
  },
763
  "install-path": "../automattic/jetpack-terms-of-service"
764
  },
765
  {
766
  "name": "automattic/jetpack-tracking",
767
+ "version": "v1.13.17",
768
+ "version_normalized": "1.13.17.0",
769
  "source": {
770
  "type": "git",
771
  "url": "https://github.com/Automattic/jetpack-tracking.git",
772
+ "reference": "3b93ba1f7625ad002b66cf1257b7776aeafc9e39"
773
  },
774
  "dist": {
775
  "type": "zip",
776
+ "url": "https://api.github.com/repos/Automattic/jetpack-tracking/zipball/3b93ba1f7625ad002b66cf1257b7776aeafc9e39",
777
+ "reference": "3b93ba1f7625ad002b66cf1257b7776aeafc9e39",
778
  "shasum": ""
779
  },
780
  "require": {
781
+ "automattic/jetpack-assets": "^1.13",
782
  "automattic/jetpack-options": "^1.13",
783
+ "automattic/jetpack-status": "^1.9",
784
  "automattic/jetpack-terms-of-service": "^1.9"
785
  },
786
  "require-dev": {
787
  "automattic/jetpack-changelogger": "^3.0",
788
+ "brain/monkey": "2.6.1",
789
  "yoast/phpunit-polyfills": "1.0.2"
790
  },
791
+ "time": "2021-11-22T23:54:05+00:00",
792
  "type": "library",
793
  "extra": {
794
  "autotagger": true,
813
  ],
814
  "description": "Tracking for Jetpack",
815
  "support": {
816
+ "source": "https://github.com/Automattic/jetpack-tracking/tree/v1.13.17"
817
  },
818
  "install-path": "../automattic/jetpack-tracking"
819
  },
vendor/composer/installed.php CHANGED
@@ -1,7 +1,7 @@
1
  <?php return array(
2
  'root' => array(
3
- 'pretty_version' => '1.3.0',
4
- 'version' => '1.3.0.0',
5
  'type' => 'library',
6
  'install_path' => __DIR__ . '/../../',
7
  'aliases' => array(),
@@ -11,44 +11,44 @@
11
  ),
12
  'versions' => array(
13
  'automattic/jetpack-a8c-mc-stats' => array(
14
- 'pretty_version' => 'v1.4.8',
15
- 'version' => '1.4.8.0',
16
  'type' => 'library',
17
  'install_path' => __DIR__ . '/../automattic/jetpack-a8c-mc-stats',
18
  'aliases' => array(),
19
- 'reference' => 'adb8738d08ae88c16a0dda0a3fc8285b60c0d96f',
20
  'dev_requirement' => false,
21
  ),
22
  'automattic/jetpack-admin-ui' => array(
23
- 'pretty_version' => 'v0.1.0',
24
- 'version' => '0.1.0.0',
25
  'type' => 'library',
26
  'install_path' => __DIR__ . '/../automattic/jetpack-admin-ui',
27
  'aliases' => array(),
28
- 'reference' => 'cdc082542b0967bfdc6363305906cf86d74126d9',
29
  'dev_requirement' => false,
30
  ),
31
  'automattic/jetpack-assets' => array(
32
- 'pretty_version' => 'v1.11.9',
33
- 'version' => '1.11.9.0',
34
  'type' => 'library',
35
  'install_path' => __DIR__ . '/../automattic/jetpack-assets',
36
  'aliases' => array(),
37
- 'reference' => '7e2fc169af1b3dfce5ea70e0b225aaf6ad49b77a',
38
  'dev_requirement' => false,
39
  ),
40
  'automattic/jetpack-autoloader' => array(
41
- 'pretty_version' => 'v2.10.8',
42
- 'version' => '2.10.8.0',
43
  'type' => 'composer-plugin',
44
  'install_path' => __DIR__ . '/../automattic/jetpack-autoloader',
45
  'aliases' => array(),
46
- 'reference' => '95dfab9eaf9484887557ded269c44f9d03358290',
47
  'dev_requirement' => false,
48
  ),
49
  'automattic/jetpack-boost' => array(
50
- 'pretty_version' => '1.3.0',
51
- 'version' => '1.3.0.0',
52
  'type' => 'library',
53
  'install_path' => __DIR__ . '/../../',
54
  'aliases' => array(),
@@ -65,30 +65,30 @@
65
  'dev_requirement' => false,
66
  ),
67
  'automattic/jetpack-connection' => array(
68
- 'pretty_version' => 'v1.30.10',
69
- 'version' => '1.30.10.0',
70
  'type' => 'library',
71
  'install_path' => __DIR__ . '/../automattic/jetpack-connection',
72
  'aliases' => array(),
73
- 'reference' => '844cb5264ffd2bc41e641016a3b5c57cb03ae70e',
74
  'dev_requirement' => false,
75
  ),
76
  'automattic/jetpack-constants' => array(
77
- 'pretty_version' => 'v1.6.9',
78
- 'version' => '1.6.9.0',
79
  'type' => 'library',
80
  'install_path' => __DIR__ . '/../automattic/jetpack-constants',
81
  'aliases' => array(),
82
- 'reference' => 'b4764b5050367692f173d62220cf1e69f4f7af0b',
83
  'dev_requirement' => false,
84
  ),
85
  'automattic/jetpack-device-detection' => array(
86
- 'pretty_version' => 'v1.4.7',
87
- 'version' => '1.4.7.0',
88
  'type' => 'library',
89
  'install_path' => __DIR__ . '/../automattic/jetpack-device-detection',
90
  'aliases' => array(),
91
- 'reference' => 'cbacb9c516c93d69e3ad7cd2820292e70066453b',
92
  'dev_requirement' => false,
93
  ),
94
  'automattic/jetpack-heartbeat' => array(
@@ -101,66 +101,66 @@
101
  'dev_requirement' => false,
102
  ),
103
  'automattic/jetpack-lazy-images' => array(
104
- 'pretty_version' => 'v2.0.3',
105
- 'version' => '2.0.3.0',
106
  'type' => 'library',
107
  'install_path' => __DIR__ . '/../automattic/jetpack-lazy-images',
108
  'aliases' => array(),
109
- 'reference' => 'e6ffca36388dcc4ad02ca10c118cb17554b9bf32',
110
  'dev_requirement' => false,
111
  ),
112
  'automattic/jetpack-options' => array(
113
- 'pretty_version' => 'v1.13.4',
114
- 'version' => '1.13.4.0',
115
  'type' => 'library',
116
  'install_path' => __DIR__ . '/../automattic/jetpack-options',
117
  'aliases' => array(),
118
- 'reference' => 'aa021e07d60b978f8631de1aa564af80b46eede5',
119
  'dev_requirement' => false,
120
  ),
121
  'automattic/jetpack-redirect' => array(
122
- 'pretty_version' => 'v1.7.4',
123
- 'version' => '1.7.4.0',
124
  'type' => 'library',
125
  'install_path' => __DIR__ . '/../automattic/jetpack-redirect',
126
  'aliases' => array(),
127
- 'reference' => 'c3e64db200272f3ab7a5fb0381b0c3a5b89a624f',
128
  'dev_requirement' => false,
129
  ),
130
  'automattic/jetpack-roles' => array(
131
- 'pretty_version' => 'v1.4.9',
132
- 'version' => '1.4.9.0',
133
  'type' => 'library',
134
  'install_path' => __DIR__ . '/../automattic/jetpack-roles',
135
  'aliases' => array(),
136
- 'reference' => '75d466da1c421d071d09051eddfd570a7c950f59',
137
  'dev_requirement' => false,
138
  ),
139
  'automattic/jetpack-status' => array(
140
- 'pretty_version' => 'v1.8.4',
141
- 'version' => '1.8.4.0',
142
  'type' => 'library',
143
  'install_path' => __DIR__ . '/../automattic/jetpack-status',
144
  'aliases' => array(),
145
- 'reference' => 'da3d0a44586f5a168d7c8d930ce21539db30ae47',
146
  'dev_requirement' => false,
147
  ),
148
  'automattic/jetpack-terms-of-service' => array(
149
- 'pretty_version' => 'v1.9.12',
150
- 'version' => '1.9.12.0',
151
  'type' => 'library',
152
  'install_path' => __DIR__ . '/../automattic/jetpack-terms-of-service',
153
  'aliases' => array(),
154
- 'reference' => '4c7cf21695503750be136d1e431a3c0f4c2d737d',
155
  'dev_requirement' => false,
156
  ),
157
  'automattic/jetpack-tracking' => array(
158
- 'pretty_version' => 'v1.13.13',
159
- 'version' => '1.13.13.0',
160
  'type' => 'library',
161
  'install_path' => __DIR__ . '/../automattic/jetpack-tracking',
162
  'aliases' => array(),
163
- 'reference' => 'f49360abb3b9c1072f6f7b336fbd2324a477f2ae',
164
  'dev_requirement' => false,
165
  ),
166
  'tedivm/jshrink' => array(
1
  <?php return array(
2
  'root' => array(
3
+ 'pretty_version' => '1.3.1',
4
+ 'version' => '1.3.1.0',
5
  'type' => 'library',
6
  'install_path' => __DIR__ . '/../../',
7
  'aliases' => array(),
11
  ),
12
  'versions' => array(
13
  'automattic/jetpack-a8c-mc-stats' => array(
14
+ 'pretty_version' => 'v1.4.9',
15
+ 'version' => '1.4.9.0',
16
  'type' => 'library',
17
  'install_path' => __DIR__ . '/../automattic/jetpack-a8c-mc-stats',
18
  'aliases' => array(),
19
+ 'reference' => '6920ecb008891558cbf619838d1ce963838f077d',
20
  'dev_requirement' => false,
21
  ),
22
  'automattic/jetpack-admin-ui' => array(
23
+ 'pretty_version' => 'v0.1.1',
24
+ 'version' => '0.1.1.0',
25
  'type' => 'library',
26
  'install_path' => __DIR__ . '/../automattic/jetpack-admin-ui',
27
  'aliases' => array(),
28
+ 'reference' => '1888f7b1b9e5f16df8d4629d27aa6f2c69f46788',
29
  'dev_requirement' => false,
30
  ),
31
  'automattic/jetpack-assets' => array(
32
+ 'pretty_version' => 'v1.13.1',
33
+ 'version' => '1.13.1.0',
34
  'type' => 'library',
35
  'install_path' => __DIR__ . '/../automattic/jetpack-assets',
36
  'aliases' => array(),
37
+ 'reference' => '3f1bb61ef36548ba0e503816b557c303ea179d1c',
38
  'dev_requirement' => false,
39
  ),
40
  'automattic/jetpack-autoloader' => array(
41
+ 'pretty_version' => 'v2.10.10',
42
+ 'version' => '2.10.10.0',
43
  'type' => 'composer-plugin',
44
  'install_path' => __DIR__ . '/../automattic/jetpack-autoloader',
45
  'aliases' => array(),
46
+ 'reference' => '8060f5c5822671b146ce8f57380193c8fb8e2571',
47
  'dev_requirement' => false,
48
  ),
49
  'automattic/jetpack-boost' => array(
50
+ 'pretty_version' => '1.3.1',
51
+ 'version' => '1.3.1.0',
52
  'type' => 'library',
53
  'install_path' => __DIR__ . '/../../',
54
  'aliases' => array(),
65
  'dev_requirement' => false,
66
  ),
67
  'automattic/jetpack-connection' => array(
68
+ 'pretty_version' => 'v1.31.0',
69
+ 'version' => '1.31.0.0',
70
  'type' => 'library',
71
  'install_path' => __DIR__ . '/../automattic/jetpack-connection',
72
  'aliases' => array(),
73
+ 'reference' => '529b874e1f0a38205b7c9be574c237a83e8def56',
74
  'dev_requirement' => false,
75
  ),
76
  'automattic/jetpack-constants' => array(
77
+ 'pretty_version' => 'v1.6.12',
78
+ 'version' => '1.6.12.0',
79
  'type' => 'library',
80
  'install_path' => __DIR__ . '/../automattic/jetpack-constants',
81
  'aliases' => array(),
82
+ 'reference' => '7adbedb4947bd3cdcf3aa25d8dda3844b137744a',
83
  'dev_requirement' => false,
84
  ),
85
  'automattic/jetpack-device-detection' => array(
86
+ 'pretty_version' => 'v1.4.9',
87
+ 'version' => '1.4.9.0',
88
  'type' => 'library',
89
  'install_path' => __DIR__ . '/../automattic/jetpack-device-detection',
90
  'aliases' => array(),
91
+ 'reference' => '6e4a0038e3733e3cdab73460f7f05d7310c3231b',
92
  'dev_requirement' => false,
93
  ),
94
  'automattic/jetpack-heartbeat' => array(
101
  'dev_requirement' => false,
102
  ),
103
  'automattic/jetpack-lazy-images' => array(
104
+ 'pretty_version' => 'v2.0.8',
105
+ 'version' => '2.0.8.0',
106
  'type' => 'library',
107
  'install_path' => __DIR__ . '/../automattic/jetpack-lazy-images',
108
  'aliases' => array(),
109
+ 'reference' => '8945311c9bcf76a7cf4ca7b4b87d56253ecf284c',
110
  'dev_requirement' => false,
111
  ),
112
  'automattic/jetpack-options' => array(
113
+ 'pretty_version' => 'v1.13.5',
114
+ 'version' => '1.13.5.0',
115
  'type' => 'library',
116
  'install_path' => __DIR__ . '/../automattic/jetpack-options',
117
  'aliases' => array(),
118
+ 'reference' => '4d06428b2842be31a8796a32d91cfe37c28931d3',
119
  'dev_requirement' => false,
120
  ),
121
  'automattic/jetpack-redirect' => array(
122
+ 'pretty_version' => 'v1.7.7',
123
+ 'version' => '1.7.7.0',
124
  'type' => 'library',
125
  'install_path' => __DIR__ . '/../automattic/jetpack-redirect',
126
  'aliases' => array(),
127
+ 'reference' => '129db0fb5db1096ec20ffd924bc7ee678639991a',
128
  'dev_requirement' => false,
129
  ),
130
  'automattic/jetpack-roles' => array(
131
+ 'pretty_version' => 'v1.4.11',
132
+ 'version' => '1.4.11.0',
133
  'type' => 'library',
134
  'install_path' => __DIR__ . '/../automattic/jetpack-roles',
135
  'aliases' => array(),
136
+ 'reference' => '7eae1d12e531414714098580e9557739a934e957',
137
  'dev_requirement' => false,
138
  ),
139
  'automattic/jetpack-status' => array(
140
+ 'pretty_version' => 'v1.9.3',
141
+ 'version' => '1.9.3.0',
142
  'type' => 'library',
143
  'install_path' => __DIR__ . '/../automattic/jetpack-status',
144
  'aliases' => array(),
145
+ 'reference' => 'fe050c1727bde3c43659f50226440e48b2aefec4',
146
  'dev_requirement' => false,
147
  ),
148
  'automattic/jetpack-terms-of-service' => array(
149
+ 'pretty_version' => 'v1.9.15',
150
+ 'version' => '1.9.15.0',
151
  'type' => 'library',
152
  'install_path' => __DIR__ . '/../automattic/jetpack-terms-of-service',
153
  'aliases' => array(),
154
+ 'reference' => '76e051a7530478c42bc30134159e043621c16892',
155
  'dev_requirement' => false,
156
  ),
157
  'automattic/jetpack-tracking' => array(
158
+ 'pretty_version' => 'v1.13.17',
159
+ 'version' => '1.13.17.0',
160
  'type' => 'library',
161
  'install_path' => __DIR__ . '/../automattic/jetpack-tracking',
162
  'aliases' => array(),
163
+ 'reference' => '3b93ba1f7625ad002b66cf1257b7776aeafc9e39',
164
  'dev_requirement' => false,
165
  ),
166
  'tedivm/jshrink' => array(
vendor/composer/jetpack_autoload_classmap.php CHANGED
@@ -6,316 +6,316 @@ $vendorDir = dirname(__DIR__);
6
  $baseDir = dirname($vendorDir);
7
 
8
  return array(
 
 
 
 
 
 
 
 
 
 
 
 
9
  'Automattic\\Jetpack_Boost\\Tests\\Lib\\WP_Test_Speed_Score_History' => array(
10
- 'version' => '1.3.0.0',
11
  'path' => $baseDir . '/tests/php/lib/test-class-speed-score-history.php'
12
  ),
13
  'Automattic\\Jetpack_Boost\\Tests\\Lib\\WP_Test_Minify' => array(
14
- 'version' => '1.3.0.0',
15
  'path' => $baseDir . '/tests/php/lib/test-class-minify.php'
16
  ),
17
- 'Automattic\\Jetpack_Boost\\Tests\\Lib\\WP_Test_Url' => array(
18
- 'version' => '1.3.0.0',
19
- 'path' => $baseDir . '/tests/php/lib/test-class-url.php'
20
- ),
21
  'Automattic\\Jetpack_Boost\\Tests\\Lib\\WP_Test_Analytics' => array(
22
- 'version' => '1.3.0.0',
23
  'path' => $baseDir . '/tests/php/lib/test-class-analytics.php'
24
  ),
25
- 'Automattic\\Jetpack_Boost\\Tests\\Lib\\WP_Test_Viewport' => array(
26
- 'version' => '1.3.0.0',
27
- 'path' => $baseDir . '/tests/php/lib/test-class-viewport.php'
28
- ),
29
- 'Automattic\\Jetpack_Boost\\Tests\\Base_Test_Case' => array(
30
- 'version' => '1.3.0.0',
31
- 'path' => $baseDir . '/tests/php/class-base-test-case.php'
32
  ),
33
  'Automattic\\Jetpack_Boost\\Tests\\Modules\\WP_Test_Module' => array(
34
- 'version' => '1.3.0.0',
35
  'path' => $baseDir . '/tests/php/modules/test-class-module.php'
36
  ),
37
- 'Automattic\\Jetpack_Boost\\Tests\\Mocks\\Mock_Module' => array(
38
- 'version' => '1.3.0.0',
39
- 'path' => $baseDir . '/tests/php/mocks/mock-module.php'
 
 
 
 
40
  ),
41
  'Automattic\\Jetpack\\Autoloader\\ManifestGenerator' => array(
42
- 'version' => '2.10.8.0',
43
  'path' => $vendorDir . '/automattic/jetpack-autoloader/src/ManifestGenerator.php'
44
  ),
45
  'Automattic\\Jetpack\\Autoloader\\CustomAutoloaderPlugin' => array(
46
- 'version' => '2.10.8.0',
47
  'path' => $vendorDir . '/automattic/jetpack-autoloader/src/CustomAutoloaderPlugin.php'
48
  ),
49
- 'Automattic\\Jetpack\\Autoloader\\AutoloadGenerator' => array(
50
- 'version' => '2.10.8.0',
51
- 'path' => $vendorDir . '/automattic/jetpack-autoloader/src/AutoloadGenerator.php'
52
- ),
53
- 'Automattic\\Jetpack\\Autoloader\\AutoloadFileWriter' => array(
54
- 'version' => '2.10.8.0',
55
- 'path' => $vendorDir . '/automattic/jetpack-autoloader/src/AutoloadFileWriter.php'
56
- ),
57
  'Automattic\\Jetpack\\Autoloader\\AutoloadProcessor' => array(
58
- 'version' => '2.10.8.0',
59
  'path' => $vendorDir . '/automattic/jetpack-autoloader/src/AutoloadProcessor.php'
60
  ),
61
  'JShrink\\Minifier' => array(
62
  'version' => '1.4.0.0',
63
  'path' => $vendorDir . '/tedivm/jshrink/src/JShrink/Minifier.php'
64
  ),
65
- 'Automattic\\Jetpack_Boost\\Lib\\Output_Filter' => array(
66
- 'version' => '1.3.0.0',
67
- 'path' => $baseDir . '/app/lib/class-output-filter.php'
68
- ),
69
- 'Automattic\\Jetpack_Boost\\Lib\\Config' => array(
70
- 'version' => '1.3.0.0',
71
- 'path' => $baseDir . '/app/lib/class-config.php'
72
- ),
73
- 'Automattic\\Jetpack_Boost\\Lib\\Minify' => array(
74
- 'version' => '1.3.0.0',
75
- 'path' => $baseDir . '/app/lib/class-minify.php'
76
- ),
77
- 'Automattic\\Jetpack_Boost\\Lib\\Storage_Post_Type' => array(
78
- 'version' => '1.3.0.0',
79
- 'path' => $baseDir . '/app/lib/class-storage-post-type.php'
80
  ),
81
- 'Automattic\\Jetpack_Boost\\Lib\\Utils' => array(
82
- 'version' => '1.3.0.0',
83
- 'path' => $baseDir . '/app/lib/class-utils.php'
84
  ),
85
  'Automattic\\Jetpack_Boost\\Lib\\Transient' => array(
86
- 'version' => '1.3.0.0',
87
  'path' => $baseDir . '/app/lib/class-transient.php'
88
  ),
89
- 'Automattic\\Jetpack_Boost\\Lib\\Debug' => array(
90
- 'version' => '1.3.0.0',
91
- 'path' => $baseDir . '/app/lib/class-debug.php'
 
 
 
 
 
 
 
 
92
  ),
93
  'Automattic\\Jetpack_Boost\\Lib\\Connection' => array(
94
- 'version' => '1.3.0.0',
95
  'path' => $baseDir . '/app/lib/class-connection.php'
96
  ),
97
- 'Automattic\\Jetpack_Boost\\Lib\\Speed_Score_Request' => array(
98
- 'version' => '1.3.0.0',
99
- 'path' => $baseDir . '/app/lib/class-speed-score-request.php'
100
- ),
101
  'Automattic\\Jetpack_Boost\\Lib\\Viewport' => array(
102
- 'version' => '1.3.0.0',
103
  'path' => $baseDir . '/app/lib/class-viewport.php'
104
  ),
 
 
 
 
105
  'Automattic\\Jetpack_Boost\\Lib\\Url' => array(
106
- 'version' => '1.3.0.0',
107
  'path' => $baseDir . '/app/lib/class-url.php'
108
  ),
109
- 'Automattic\\Jetpack_Boost\\Lib\\Analytics' => array(
110
- 'version' => '1.3.0.0',
111
- 'path' => $baseDir . '/app/lib/class-analytics.php'
112
  ),
113
- 'Automattic\\Jetpack_Boost\\Lib\\Nonce' => array(
114
- 'version' => '1.3.0.0',
115
- 'path' => $baseDir . '/app/lib/class-nonce.php'
116
  ),
117
- 'Automattic\\Jetpack_Boost\\Lib\\Speed_Score' => array(
118
- 'version' => '1.3.0.0',
119
- 'path' => $baseDir . '/app/lib/class-speed-score.php'
120
  ),
121
- 'Automattic\\Jetpack_Boost\\Lib\\Cacheable' => array(
122
- 'version' => '1.3.0.0',
123
- 'path' => $baseDir . '/app/lib/class-cacheable.php'
 
 
 
 
124
  ),
125
  'Automattic\\Jetpack_Boost\\Lib\\Speed_Score_History' => array(
126
- 'version' => '1.3.0.0',
127
  'path' => $baseDir . '/app/lib/class-speed-score-history.php'
128
  ),
129
- 'Automattic\\Jetpack_Boost\\Lib\\Assets' => array(
130
- 'version' => '1.3.0.0',
131
- 'path' => $baseDir . '/app/lib/class-assets.php'
132
  ),
133
  'Automattic\\Jetpack_Boost\\Lib\\Environment_Change_Detector' => array(
134
- 'version' => '1.3.0.0',
135
  'path' => $baseDir . '/app/lib/class-environment-change-detector.php'
136
  ),
137
- 'Automattic\\Jetpack_Boost\\Lib\\CLI' => array(
138
- 'version' => '1.3.0.0',
139
- 'path' => $baseDir . '/app/lib/class-cli.php'
140
  ),
141
- 'Automattic\\Jetpack_Boost\\Modules\\Critical_CSS\\Providers\\Singular_Post_Provider' => array(
142
- 'version' => '1.3.0.0',
143
- 'path' => $baseDir . '/app/modules/critical-css/providers/class-singular-post-provider.php'
144
  ),
145
- 'Automattic\\Jetpack_Boost\\Modules\\Critical_CSS\\Providers\\Post_ID_Provider' => array(
146
- 'version' => '1.3.0.0',
147
- 'path' => $baseDir . '/app/modules/critical-css/providers/class-post-id-provider.php'
 
 
 
 
 
 
 
 
 
 
 
 
148
  ),
149
  'Automattic\\Jetpack_Boost\\Modules\\Critical_CSS\\Providers\\Taxonomy_Provider' => array(
150
- 'version' => '1.3.0.0',
151
  'path' => $baseDir . '/app/modules/critical-css/providers/class-taxonomy-provider.php'
152
  ),
153
- 'Automattic\\Jetpack_Boost\\Modules\\Critical_CSS\\Providers\\WP_Core_Provider' => array(
154
- 'version' => '1.3.0.0',
155
- 'path' => $baseDir . '/app/modules/critical-css/providers/class-wp-core-provider.php'
 
 
 
 
 
 
 
 
156
  ),
157
  'Automattic\\Jetpack_Boost\\Modules\\Critical_CSS\\Providers\\Archive_Provider' => array(
158
- 'version' => '1.3.0.0',
159
  'path' => $baseDir . '/app/modules/critical-css/providers/class-archive-provider.php'
160
  ),
161
- 'Automattic\\Jetpack_Boost\\Modules\\Critical_CSS\\Providers\\Provider' => array(
162
- 'version' => '1.3.0.0',
163
- 'path' => $baseDir . '/app/modules/critical-css/providers/class-provider.php'
164
- ),
165
- 'Automattic\\Jetpack_Boost\\Modules\\Critical_CSS\\Critical_CSS' => array(
166
- 'version' => '1.3.0.0',
167
- 'path' => $baseDir . '/app/modules/critical-css/class-critical-css.php'
168
  ),
169
  'Automattic\\Jetpack_Boost\\Modules\\Critical_CSS\\Regenerate_Admin_Notice' => array(
170
- 'version' => '1.3.0.0',
171
  'path' => $baseDir . '/app/modules/critical-css/class-regenerate-admin-notice.php'
172
  ),
173
- 'Automattic\\Jetpack_Boost\\Modules\\Critical_CSS\\Admin_Bar_Css_Compat' => array(
174
- 'version' => '1.3.0.0',
175
- 'path' => $baseDir . '/app/modules/critical-css/class-admin-bar-css-compat.php'
176
- ),
177
  'Automattic\\Jetpack_Boost\\Modules\\Critical_CSS\\Critical_CSS_State' => array(
178
- 'version' => '1.3.0.0',
179
  'path' => $baseDir . '/app/modules/critical-css/class-critical-css-state.php'
180
  ),
181
- 'Automattic\\Jetpack_Boost\\Modules\\Critical_CSS\\Critical_CSS_Storage' => array(
182
- 'version' => '1.3.0.0',
183
- 'path' => $baseDir . '/app/modules/critical-css/class-critical-css-storage.php'
184
- ),
185
- 'Automattic\\Jetpack_Boost\\Modules\\Module' => array(
186
- 'version' => '1.3.0.0',
187
- 'path' => $baseDir . '/app/modules/class-module.php'
188
  ),
189
  'Automattic\\Jetpack_Boost\\Modules\\Lazy_Images\\Lazy_Images' => array(
190
- 'version' => '1.3.0.0',
191
  'path' => $baseDir . '/app/modules/lazy-images/class-lazy-images.php'
192
  ),
193
  'Automattic\\Jetpack_Boost\\Modules\\Render_Blocking_JS\\Render_Blocking_JS' => array(
194
- 'version' => '1.3.0.0',
195
  'path' => $baseDir . '/app/modules/render-blocking-js/class-render-blocking-js.php'
196
  ),
197
- 'Automattic\\Jetpack_Boost\\Jetpack_Boost' => array(
198
- 'version' => '1.3.0.0',
199
- 'path' => $baseDir . '/app/class-jetpack-boost.php'
200
  ),
201
- 'Automattic\\Jetpack_Boost\\Admin\\Admin' => array(
202
- 'version' => '1.3.0.0',
203
- 'path' => $baseDir . '/app/admin/class-admin.php'
204
  ),
205
- 'Automattic\\Jetpack_Boost\\Admin\\Admin_Notice' => array(
206
- 'version' => '1.3.0.0',
207
- 'path' => $baseDir . '/app/admin/class-admin-notice.php'
208
  ),
209
- 'Automattic\\Jetpack\\Jetpack_Lazy_Images' => array(
210
- 'version' => '2.0.3.0',
211
- 'path' => $vendorDir . '/automattic/jetpack-lazy-images/src/lazy-images.php'
212
  ),
213
  'Jetpack_IXR_ClientMulticall' => array(
214
- 'version' => '1.30.10.0',
215
  'path' => $vendorDir . '/automattic/jetpack-connection/legacy/class-jetpack-ixr-clientmulticall.php'
216
  ),
217
- 'Jetpack_IXR_Client' => array(
218
- 'version' => '1.30.10.0',
219
- 'path' => $vendorDir . '/automattic/jetpack-connection/legacy/class-jetpack-ixr-client.php'
220
  ),
221
- 'Jetpack_XMLRPC_Server' => array(
222
- 'version' => '1.30.10.0',
223
- 'path' => $vendorDir . '/automattic/jetpack-connection/legacy/class-jetpack-xmlrpc-server.php'
224
  ),
225
- 'Jetpack_Signature' => array(
226
- 'version' => '1.30.10.0',
227
- 'path' => $vendorDir . '/automattic/jetpack-connection/legacy/class-jetpack-signature.php'
228
  ),
229
- 'Automattic\\Jetpack\\Connection\\Package_Version' => array(
230
- 'version' => '1.30.10.0',
231
- 'path' => $vendorDir . '/automattic/jetpack-connection/src/class-package-version.php'
232
  ),
233
- 'Automattic\\Jetpack\\Connection\\Webhooks' => array(
234
- 'version' => '1.30.10.0',
235
- 'path' => $vendorDir . '/automattic/jetpack-connection/src/class-webhooks.php'
236
  ),
237
- 'Automattic\\Jetpack\\Connection\\Urls' => array(
238
- 'version' => '1.30.10.0',
239
- 'path' => $vendorDir . '/automattic/jetpack-connection/src/class-urls.php'
 
 
 
 
240
  ),
241
  'Automattic\\Jetpack\\Connection\\Plugin' => array(
242
- 'version' => '1.30.10.0',
243
  'path' => $vendorDir . '/automattic/jetpack-connection/src/class-plugin.php'
244
  ),
245
- 'Automattic\\Jetpack\\Connection\\Utils' => array(
246
- 'version' => '1.30.10.0',
247
- 'path' => $vendorDir . '/automattic/jetpack-connection/src/class-utils.php'
248
  ),
249
- 'Automattic\\Jetpack\\Connection\\Error_Handler' => array(
250
- 'version' => '1.30.10.0',
251
- 'path' => $vendorDir . '/automattic/jetpack-connection/src/class-error-handler.php'
252
  ),
253
- 'Automattic\\Jetpack\\Connection\\Manager_Interface' => array(
254
- 'version' => '1.30.10.0',
255
- 'path' => $vendorDir . '/automattic/jetpack-connection/src/interface-manager.php'
256
  ),
257
- 'Automattic\\Jetpack\\Connection\\Client' => array(
258
- 'version' => '1.30.10.0',
259
- 'path' => $vendorDir . '/automattic/jetpack-connection/src/class-client.php'
260
  ),
261
  'Automattic\\Jetpack\\Connection\\XMLRPC_Async_Call' => array(
262
- 'version' => '1.30.10.0',
263
  'path' => $vendorDir . '/automattic/jetpack-connection/src/class-xmlrpc-async-call.php'
264
  ),
265
- 'Automattic\\Jetpack\\Connection\\Nonce_Handler' => array(
266
- 'version' => '1.30.10.0',
267
- 'path' => $vendorDir . '/automattic/jetpack-connection/src/class-nonce-handler.php'
268
  ),
269
- 'Automattic\\Jetpack\\Connection\\Secrets' => array(
270
- 'version' => '1.30.10.0',
271
- 'path' => $vendorDir . '/automattic/jetpack-connection/src/class-secrets.php'
272
  ),
273
- 'Automattic\\Jetpack\\Connection\\XMLRPC_Connector' => array(
274
- 'version' => '1.30.10.0',
275
- 'path' => $vendorDir . '/automattic/jetpack-connection/src/class-xmlrpc-connector.php'
276
  ),
277
  'Automattic\\Jetpack\\Connection\\Rest_Authentication' => array(
278
- 'version' => '1.30.10.0',
279
  'path' => $vendorDir . '/automattic/jetpack-connection/src/class-rest-authentication.php'
280
  ),
281
- 'Automattic\\Jetpack\\Connection\\Server_Sandbox' => array(
282
- 'version' => '1.30.10.0',
283
- 'path' => $vendorDir . '/automattic/jetpack-connection/src/class-server-sandbox.php'
284
  ),
285
  'Automattic\\Jetpack\\Connection\\Manager' => array(
286
- 'version' => '1.30.10.0',
287
  'path' => $vendorDir . '/automattic/jetpack-connection/src/class-manager.php'
288
  ),
289
- 'Automattic\\Jetpack\\Connection\\Plugin_Storage' => array(
290
- 'version' => '1.30.10.0',
291
- 'path' => $vendorDir . '/automattic/jetpack-connection/src/class-plugin-storage.php'
292
- ),
293
- 'Automattic\\Jetpack\\Connection\\Tokens' => array(
294
- 'version' => '1.30.10.0',
295
- 'path' => $vendorDir . '/automattic/jetpack-connection/src/class-tokens.php'
296
- ),
297
- 'Automattic\\Jetpack\\Connection\\Package_Version_Tracker' => array(
298
- 'version' => '1.30.10.0',
299
- 'path' => $vendorDir . '/automattic/jetpack-connection/src/class-package-version-tracker.php'
300
  ),
301
- 'Automattic\\Jetpack\\Connection\\REST_Connector' => array(
302
- 'version' => '1.30.10.0',
303
- 'path' => $vendorDir . '/automattic/jetpack-connection/src/class-rest-connector.php'
304
  ),
305
  'Automattic\\Jetpack\\Device_Detection\\User_Agent_Info' => array(
306
- 'version' => '1.4.7.0',
307
  'path' => $vendorDir . '/automattic/jetpack-device-detection/src/class-user-agent-info.php'
308
  ),
309
- 'Automattic\\Jetpack\\Device_Detection' => array(
310
- 'version' => '1.4.7.0',
311
- 'path' => $vendorDir . '/automattic/jetpack-device-detection/src/class-device-detection.php'
312
- ),
313
  'Automattic\\Jetpack\\Config' => array(
314
  'version' => '1.5.3.0',
315
  'path' => $vendorDir . '/automattic/jetpack-config/src/class-config.php'
316
  ),
317
  'Automattic\\Jetpack\\Admin_UI\\Admin_Menu' => array(
318
- 'version' => '0.1.0.0',
319
  'path' => $vendorDir . '/automattic/jetpack-admin-ui/src/class-admin-menu.php'
320
  ),
321
  'Automattic\\Jetpack\\Heartbeat' => array(
@@ -323,47 +323,51 @@ return array(
323
  'path' => $vendorDir . '/automattic/jetpack-heartbeat/src/class-heartbeat.php'
324
  ),
325
  'Automattic\\Jetpack\\Redirect' => array(
326
- 'version' => '1.7.4.0',
327
  'path' => $vendorDir . '/automattic/jetpack-redirect/src/class-redirect.php'
328
  ),
329
  'Automattic\\Jetpack\\Roles' => array(
330
- 'version' => '1.4.9.0',
331
  'path' => $vendorDir . '/automattic/jetpack-roles/src/class-roles.php'
332
  ),
333
- 'Jetpack_Tracks_Client' => array(
334
- 'version' => '1.13.13.0',
335
- 'path' => $vendorDir . '/automattic/jetpack-tracking/legacy/class-jetpack-tracks-client.php'
336
- ),
337
  'Jetpack_Tracks_Event' => array(
338
- 'version' => '1.13.13.0',
339
  'path' => $vendorDir . '/automattic/jetpack-tracking/legacy/class-jetpack-tracks-event.php'
340
  ),
 
 
 
 
341
  'Automattic\\Jetpack\\Tracking' => array(
342
- 'version' => '1.13.13.0',
343
  'path' => $vendorDir . '/automattic/jetpack-tracking/src/class-tracking.php'
344
  ),
345
  'Automattic\\Jetpack\\A8c_Mc_Stats' => array(
346
- 'version' => '1.4.8.0',
347
  'path' => $vendorDir . '/automattic/jetpack-a8c-mc-stats/src/class-a8c-mc-stats.php'
348
  ),
349
  'Automattic\\Jetpack\\Assets' => array(
350
- 'version' => '1.11.9.0',
351
  'path' => $vendorDir . '/automattic/jetpack-assets/src/class-assets.php'
352
  ),
353
  'Automattic\\Jetpack\\Terms_Of_Service' => array(
354
- 'version' => '1.9.12.0',
355
  'path' => $vendorDir . '/automattic/jetpack-terms-of-service/src/class-terms-of-service.php'
356
  ),
357
  'Jetpack_Options' => array(
358
- 'version' => '1.13.4.0',
359
  'path' => $vendorDir . '/automattic/jetpack-options/legacy/class-jetpack-options.php'
360
  ),
 
 
 
 
361
  'Automattic\\Jetpack\\Status' => array(
362
- 'version' => '1.8.4.0',
363
  'path' => $vendorDir . '/automattic/jetpack-status/src/class-status.php'
364
  ),
365
  'Automattic\\Jetpack\\Constants' => array(
366
- 'version' => '1.6.9.0',
367
  'path' => $vendorDir . '/automattic/jetpack-constants/src/class-constants.php'
368
  ),
369
  );
6
  $baseDir = dirname($vendorDir);
7
 
8
  return array(
9
+ 'Automattic\\Jetpack_Boost\\Tests\\Base_Test_Case' => array(
10
+ 'version' => '1.3.1.0',
11
+ 'path' => $baseDir . '/tests/php/class-base-test-case.php'
12
+ ),
13
+ 'Automattic\\Jetpack_Boost\\Tests\\Lib\\WP_Test_Url' => array(
14
+ 'version' => '1.3.1.0',
15
+ 'path' => $baseDir . '/tests/php/lib/test-class-url.php'
16
+ ),
17
+ 'Automattic\\Jetpack_Boost\\Tests\\Lib\\WP_Test_Viewport' => array(
18
+ 'version' => '1.3.1.0',
19
+ 'path' => $baseDir . '/tests/php/lib/test-class-viewport.php'
20
+ ),
21
  'Automattic\\Jetpack_Boost\\Tests\\Lib\\WP_Test_Speed_Score_History' => array(
22
+ 'version' => '1.3.1.0',
23
  'path' => $baseDir . '/tests/php/lib/test-class-speed-score-history.php'
24
  ),
25
  'Automattic\\Jetpack_Boost\\Tests\\Lib\\WP_Test_Minify' => array(
26
+ 'version' => '1.3.1.0',
27
  'path' => $baseDir . '/tests/php/lib/test-class-minify.php'
28
  ),
 
 
 
 
29
  'Automattic\\Jetpack_Boost\\Tests\\Lib\\WP_Test_Analytics' => array(
30
+ 'version' => '1.3.1.0',
31
  'path' => $baseDir . '/tests/php/lib/test-class-analytics.php'
32
  ),
33
+ 'Automattic\\Jetpack_Boost\\Tests\\Mocks\\Mock_Module' => array(
34
+ 'version' => '1.3.1.0',
35
+ 'path' => $baseDir . '/tests/php/mocks/mock-module.php'
 
 
 
 
36
  ),
37
  'Automattic\\Jetpack_Boost\\Tests\\Modules\\WP_Test_Module' => array(
38
+ 'version' => '1.3.1.0',
39
  'path' => $baseDir . '/tests/php/modules/test-class-module.php'
40
  ),
41
+ 'Automattic\\Jetpack\\Autoloader\\AutoloadFileWriter' => array(
42
+ 'version' => '2.10.10.0',
43
+ 'path' => $vendorDir . '/automattic/jetpack-autoloader/src/AutoloadFileWriter.php'
44
+ ),
45
+ 'Automattic\\Jetpack\\Autoloader\\AutoloadGenerator' => array(
46
+ 'version' => '2.10.10.0',
47
+ 'path' => $vendorDir . '/automattic/jetpack-autoloader/src/AutoloadGenerator.php'
48
  ),
49
  'Automattic\\Jetpack\\Autoloader\\ManifestGenerator' => array(
50
+ 'version' => '2.10.10.0',
51
  'path' => $vendorDir . '/automattic/jetpack-autoloader/src/ManifestGenerator.php'
52
  ),
53
  'Automattic\\Jetpack\\Autoloader\\CustomAutoloaderPlugin' => array(
54
+ 'version' => '2.10.10.0',
55
  'path' => $vendorDir . '/automattic/jetpack-autoloader/src/CustomAutoloaderPlugin.php'
56
  ),
 
 
 
 
 
 
 
 
57
  'Automattic\\Jetpack\\Autoloader\\AutoloadProcessor' => array(
58
+ 'version' => '2.10.10.0',
59
  'path' => $vendorDir . '/automattic/jetpack-autoloader/src/AutoloadProcessor.php'
60
  ),
61
  'JShrink\\Minifier' => array(
62
  'version' => '1.4.0.0',
63
  'path' => $vendorDir . '/tedivm/jshrink/src/JShrink/Minifier.php'
64
  ),
65
+ 'Automattic\\Jetpack_Boost\\Admin\\Admin' => array(
66
+ 'version' => '1.3.1.0',
67
+ 'path' => $baseDir . '/app/admin/class-admin.php'
 
 
 
 
 
 
 
 
 
 
 
 
68
  ),
69
+ 'Automattic\\Jetpack_Boost\\Admin\\Admin_Notice' => array(
70
+ 'version' => '1.3.1.0',
71
+ 'path' => $baseDir . '/app/admin/class-admin-notice.php'
72
  ),
73
  'Automattic\\Jetpack_Boost\\Lib\\Transient' => array(
74
+ 'version' => '1.3.1.0',
75
  'path' => $baseDir . '/app/lib/class-transient.php'
76
  ),
77
+ 'Automattic\\Jetpack_Boost\\Lib\\Output_Filter' => array(
78
+ 'version' => '1.3.1.0',
79
+ 'path' => $baseDir . '/app/lib/class-output-filter.php'
80
+ ),
81
+ 'Automattic\\Jetpack_Boost\\Lib\\Assets' => array(
82
+ 'version' => '1.3.1.0',
83
+ 'path' => $baseDir . '/app/lib/class-assets.php'
84
+ ),
85
+ 'Automattic\\Jetpack_Boost\\Lib\\Cacheable' => array(
86
+ 'version' => '1.3.1.0',
87
+ 'path' => $baseDir . '/app/lib/class-cacheable.php'
88
  ),
89
  'Automattic\\Jetpack_Boost\\Lib\\Connection' => array(
90
+ 'version' => '1.3.1.0',
91
  'path' => $baseDir . '/app/lib/class-connection.php'
92
  ),
 
 
 
 
93
  'Automattic\\Jetpack_Boost\\Lib\\Viewport' => array(
94
+ 'version' => '1.3.1.0',
95
  'path' => $baseDir . '/app/lib/class-viewport.php'
96
  ),
97
+ 'Automattic\\Jetpack_Boost\\Lib\\Speed_Score' => array(
98
+ 'version' => '1.3.1.0',
99
+ 'path' => $baseDir . '/app/lib/class-speed-score.php'
100
+ ),
101
  'Automattic\\Jetpack_Boost\\Lib\\Url' => array(
102
+ 'version' => '1.3.1.0',
103
  'path' => $baseDir . '/app/lib/class-url.php'
104
  ),
105
+ 'Automattic\\Jetpack_Boost\\Lib\\CLI' => array(
106
+ 'version' => '1.3.1.0',
107
+ 'path' => $baseDir . '/app/lib/class-cli.php'
108
  ),
109
+ 'Automattic\\Jetpack_Boost\\Lib\\Minify' => array(
110
+ 'version' => '1.3.1.0',
111
+ 'path' => $baseDir . '/app/lib/class-minify.php'
112
  ),
113
+ 'Automattic\\Jetpack_Boost\\Lib\\Speed_Score_Request' => array(
114
+ 'version' => '1.3.1.0',
115
+ 'path' => $baseDir . '/app/lib/class-speed-score-request.php'
116
  ),
117
+ 'Automattic\\Jetpack_Boost\\Lib\\Storage_Post_Type' => array(
118
+ 'version' => '1.3.1.0',
119
+ 'path' => $baseDir . '/app/lib/class-storage-post-type.php'
120
+ ),
121
+ 'Automattic\\Jetpack_Boost\\Lib\\Analytics' => array(
122
+ 'version' => '1.3.1.0',
123
+ 'path' => $baseDir . '/app/lib/class-analytics.php'
124
  ),
125
  'Automattic\\Jetpack_Boost\\Lib\\Speed_Score_History' => array(
126
+ 'version' => '1.3.1.0',
127
  'path' => $baseDir . '/app/lib/class-speed-score-history.php'
128
  ),
129
+ 'Automattic\\Jetpack_Boost\\Lib\\Utils' => array(
130
+ 'version' => '1.3.1.0',
131
+ 'path' => $baseDir . '/app/lib/class-utils.php'
132
  ),
133
  'Automattic\\Jetpack_Boost\\Lib\\Environment_Change_Detector' => array(
134
+ 'version' => '1.3.1.0',
135
  'path' => $baseDir . '/app/lib/class-environment-change-detector.php'
136
  ),
137
+ 'Automattic\\Jetpack_Boost\\Lib\\Config' => array(
138
+ 'version' => '1.3.1.0',
139
+ 'path' => $baseDir . '/app/lib/class-config.php'
140
  ),
141
+ 'Automattic\\Jetpack_Boost\\Lib\\Nonce' => array(
142
+ 'version' => '1.3.1.0',
143
+ 'path' => $baseDir . '/app/lib/class-nonce.php'
144
  ),
145
+ 'Automattic\\Jetpack_Boost\\Lib\\Debug' => array(
146
+ 'version' => '1.3.1.0',
147
+ 'path' => $baseDir . '/app/lib/class-debug.php'
148
+ ),
149
+ 'Automattic\\Jetpack_Boost\\Jetpack_Boost' => array(
150
+ 'version' => '1.3.1.0',
151
+ 'path' => $baseDir . '/app/class-jetpack-boost.php'
152
+ ),
153
+ 'Automattic\\Jetpack_Boost\\Modules\\Critical_CSS\\Admin_Bar_Css_Compat' => array(
154
+ 'version' => '1.3.1.0',
155
+ 'path' => $baseDir . '/app/modules/critical-css/class-admin-bar-css-compat.php'
156
+ ),
157
+ 'Automattic\\Jetpack_Boost\\Modules\\Critical_CSS\\Critical_CSS_Storage' => array(
158
+ 'version' => '1.3.1.0',
159
+ 'path' => $baseDir . '/app/modules/critical-css/class-critical-css-storage.php'
160
  ),
161
  'Automattic\\Jetpack_Boost\\Modules\\Critical_CSS\\Providers\\Taxonomy_Provider' => array(
162
+ 'version' => '1.3.1.0',
163
  'path' => $baseDir . '/app/modules/critical-css/providers/class-taxonomy-provider.php'
164
  ),
165
+ 'Automattic\\Jetpack_Boost\\Modules\\Critical_CSS\\Providers\\Provider' => array(
166
+ 'version' => '1.3.1.0',
167
+ 'path' => $baseDir . '/app/modules/critical-css/providers/class-provider.php'
168
+ ),
169
+ 'Automattic\\Jetpack_Boost\\Modules\\Critical_CSS\\Providers\\Post_ID_Provider' => array(
170
+ 'version' => '1.3.1.0',
171
+ 'path' => $baseDir . '/app/modules/critical-css/providers/class-post-id-provider.php'
172
+ ),
173
+ 'Automattic\\Jetpack_Boost\\Modules\\Critical_CSS\\Providers\\Singular_Post_Provider' => array(
174
+ 'version' => '1.3.1.0',
175
+ 'path' => $baseDir . '/app/modules/critical-css/providers/class-singular-post-provider.php'
176
  ),
177
  'Automattic\\Jetpack_Boost\\Modules\\Critical_CSS\\Providers\\Archive_Provider' => array(
178
+ 'version' => '1.3.1.0',
179
  'path' => $baseDir . '/app/modules/critical-css/providers/class-archive-provider.php'
180
  ),
181
+ 'Automattic\\Jetpack_Boost\\Modules\\Critical_CSS\\Providers\\WP_Core_Provider' => array(
182
+ 'version' => '1.3.1.0',
183
+ 'path' => $baseDir . '/app/modules/critical-css/providers/class-wp-core-provider.php'
 
 
 
 
184
  ),
185
  'Automattic\\Jetpack_Boost\\Modules\\Critical_CSS\\Regenerate_Admin_Notice' => array(
186
+ 'version' => '1.3.1.0',
187
  'path' => $baseDir . '/app/modules/critical-css/class-regenerate-admin-notice.php'
188
  ),
 
 
 
 
189
  'Automattic\\Jetpack_Boost\\Modules\\Critical_CSS\\Critical_CSS_State' => array(
190
+ 'version' => '1.3.1.0',
191
  'path' => $baseDir . '/app/modules/critical-css/class-critical-css-state.php'
192
  ),
193
+ 'Automattic\\Jetpack_Boost\\Modules\\Critical_CSS\\Critical_CSS' => array(
194
+ 'version' => '1.3.1.0',
195
+ 'path' => $baseDir . '/app/modules/critical-css/class-critical-css.php'
 
 
 
 
196
  ),
197
  'Automattic\\Jetpack_Boost\\Modules\\Lazy_Images\\Lazy_Images' => array(
198
+ 'version' => '1.3.1.0',
199
  'path' => $baseDir . '/app/modules/lazy-images/class-lazy-images.php'
200
  ),
201
  'Automattic\\Jetpack_Boost\\Modules\\Render_Blocking_JS\\Render_Blocking_JS' => array(
202
+ 'version' => '1.3.1.0',
203
  'path' => $baseDir . '/app/modules/render-blocking-js/class-render-blocking-js.php'
204
  ),
205
+ 'Automattic\\Jetpack_Boost\\Modules\\Module' => array(
206
+ 'version' => '1.3.1.0',
207
+ 'path' => $baseDir . '/app/modules/class-module.php'
208
  ),
209
+ 'Jetpack_XMLRPC_Server' => array(
210
+ 'version' => '1.31.0.0',
211
+ 'path' => $vendorDir . '/automattic/jetpack-connection/legacy/class-jetpack-xmlrpc-server.php'
212
  ),
213
+ 'Jetpack_Signature' => array(
214
+ 'version' => '1.31.0.0',
215
+ 'path' => $vendorDir . '/automattic/jetpack-connection/legacy/class-jetpack-signature.php'
216
  ),
217
+ 'Jetpack_IXR_Client' => array(
218
+ 'version' => '1.31.0.0',
219
+ 'path' => $vendorDir . '/automattic/jetpack-connection/legacy/class-jetpack-ixr-client.php'
220
  ),
221
  'Jetpack_IXR_ClientMulticall' => array(
222
+ 'version' => '1.31.0.0',
223
  'path' => $vendorDir . '/automattic/jetpack-connection/legacy/class-jetpack-ixr-clientmulticall.php'
224
  ),
225
+ 'Automattic\\Jetpack\\Connection\\Nonce_Handler' => array(
226
+ 'version' => '1.31.0.0',
227
+ 'path' => $vendorDir . '/automattic/jetpack-connection/src/class-nonce-handler.php'
228
  ),
229
+ 'Automattic\\Jetpack\\Connection\\Package_Version_Tracker' => array(
230
+ 'version' => '1.31.0.0',
231
+ 'path' => $vendorDir . '/automattic/jetpack-connection/src/class-package-version-tracker.php'
232
  ),
233
+ 'Automattic\\Jetpack\\Connection\\Secrets' => array(
234
+ 'version' => '1.31.0.0',
235
+ 'path' => $vendorDir . '/automattic/jetpack-connection/src/class-secrets.php'
236
  ),
237
+ 'Automattic\\Jetpack\\Connection\\Error_Handler' => array(
238
+ 'version' => '1.31.0.0',
239
+ 'path' => $vendorDir . '/automattic/jetpack-connection/src/class-error-handler.php'
240
  ),
241
+ 'Automattic\\Jetpack\\Connection\\Plugin_Storage' => array(
242
+ 'version' => '1.31.0.0',
243
+ 'path' => $vendorDir . '/automattic/jetpack-connection/src/class-plugin-storage.php'
244
  ),
245
+ 'Automattic\\Jetpack\\Connection\\Tokens' => array(
246
+ 'version' => '1.31.0.0',
247
+ 'path' => $vendorDir . '/automattic/jetpack-connection/src/class-tokens.php'
248
+ ),
249
+ 'Automattic\\Jetpack\\Connection\\XMLRPC_Connector' => array(
250
+ 'version' => '1.31.0.0',
251
+ 'path' => $vendorDir . '/automattic/jetpack-connection/src/class-xmlrpc-connector.php'
252
  ),
253
  'Automattic\\Jetpack\\Connection\\Plugin' => array(
254
+ 'version' => '1.31.0.0',
255
  'path' => $vendorDir . '/automattic/jetpack-connection/src/class-plugin.php'
256
  ),
257
+ 'Automattic\\Jetpack\\Connection\\Client' => array(
258
+ 'version' => '1.31.0.0',
259
+ 'path' => $vendorDir . '/automattic/jetpack-connection/src/class-client.php'
260
  ),
261
+ 'Automattic\\Jetpack\\Connection\\Webhooks' => array(
262
+ 'version' => '1.31.0.0',
263
+ 'path' => $vendorDir . '/automattic/jetpack-connection/src/class-webhooks.php'
264
  ),
265
+ 'Automattic\\Jetpack\\Connection\\Urls' => array(
266
+ 'version' => '1.31.0.0',
267
+ 'path' => $vendorDir . '/automattic/jetpack-connection/src/class-urls.php'
268
  ),
269
+ 'Automattic\\Jetpack\\Connection\\REST_Connector' => array(
270
+ 'version' => '1.31.0.0',
271
+ 'path' => $vendorDir . '/automattic/jetpack-connection/src/class-rest-connector.php'
272
  ),
273
  'Automattic\\Jetpack\\Connection\\XMLRPC_Async_Call' => array(
274
+ 'version' => '1.31.0.0',
275
  'path' => $vendorDir . '/automattic/jetpack-connection/src/class-xmlrpc-async-call.php'
276
  ),
277
+ 'Automattic\\Jetpack\\Connection\\Manager_Interface' => array(
278
+ 'version' => '1.31.0.0',
279
+ 'path' => $vendorDir . '/automattic/jetpack-connection/src/interface-manager.php'
280
  ),
281
+ 'Automattic\\Jetpack\\Connection\\Server_Sandbox' => array(
282
+ 'version' => '1.31.0.0',
283
+ 'path' => $vendorDir . '/automattic/jetpack-connection/src/class-server-sandbox.php'
284
  ),
285
+ 'Automattic\\Jetpack\\Connection\\Package_Version' => array(
286
+ 'version' => '1.31.0.0',
287
+ 'path' => $vendorDir . '/automattic/jetpack-connection/src/class-package-version.php'
288
  ),
289
  'Automattic\\Jetpack\\Connection\\Rest_Authentication' => array(
290
+ 'version' => '1.31.0.0',
291
  'path' => $vendorDir . '/automattic/jetpack-connection/src/class-rest-authentication.php'
292
  ),
293
+ 'Automattic\\Jetpack\\Connection\\Utils' => array(
294
+ 'version' => '1.31.0.0',
295
+ 'path' => $vendorDir . '/automattic/jetpack-connection/src/class-utils.php'
296
  ),
297
  'Automattic\\Jetpack\\Connection\\Manager' => array(
298
+ 'version' => '1.31.0.0',
299
  'path' => $vendorDir . '/automattic/jetpack-connection/src/class-manager.php'
300
  ),
301
+ 'Automattic\\Jetpack\\Jetpack_Lazy_Images' => array(
302
+ 'version' => '2.0.8.0',
303
+ 'path' => $vendorDir . '/automattic/jetpack-lazy-images/src/lazy-images.php'
 
 
 
 
 
 
 
 
304
  ),
305
+ 'Automattic\\Jetpack\\Device_Detection' => array(
306
+ 'version' => '1.4.9.0',
307
+ 'path' => $vendorDir . '/automattic/jetpack-device-detection/src/class-device-detection.php'
308
  ),
309
  'Automattic\\Jetpack\\Device_Detection\\User_Agent_Info' => array(
310
+ 'version' => '1.4.9.0',
311
  'path' => $vendorDir . '/automattic/jetpack-device-detection/src/class-user-agent-info.php'
312
  ),
 
 
 
 
313
  'Automattic\\Jetpack\\Config' => array(
314
  'version' => '1.5.3.0',
315
  'path' => $vendorDir . '/automattic/jetpack-config/src/class-config.php'
316
  ),
317
  'Automattic\\Jetpack\\Admin_UI\\Admin_Menu' => array(
318
+ 'version' => '0.1.1.0',
319
  'path' => $vendorDir . '/automattic/jetpack-admin-ui/src/class-admin-menu.php'
320
  ),
321
  'Automattic\\Jetpack\\Heartbeat' => array(
323
  'path' => $vendorDir . '/automattic/jetpack-heartbeat/src/class-heartbeat.php'
324
  ),
325
  'Automattic\\Jetpack\\Redirect' => array(
326
+ 'version' => '1.7.7.0',
327
  'path' => $vendorDir . '/automattic/jetpack-redirect/src/class-redirect.php'
328
  ),
329
  'Automattic\\Jetpack\\Roles' => array(
330
+ 'version' => '1.4.11.0',
331
  'path' => $vendorDir . '/automattic/jetpack-roles/src/class-roles.php'
332
  ),
 
 
 
 
333
  'Jetpack_Tracks_Event' => array(
334
+ 'version' => '1.13.17.0',
335
  'path' => $vendorDir . '/automattic/jetpack-tracking/legacy/class-jetpack-tracks-event.php'
336
  ),
337
+ 'Jetpack_Tracks_Client' => array(
338
+ 'version' => '1.13.17.0',
339
+ 'path' => $vendorDir . '/automattic/jetpack-tracking/legacy/class-jetpack-tracks-client.php'
340
+ ),
341
  'Automattic\\Jetpack\\Tracking' => array(
342
+ 'version' => '1.13.17.0',
343
  'path' => $vendorDir . '/automattic/jetpack-tracking/src/class-tracking.php'
344
  ),
345
  'Automattic\\Jetpack\\A8c_Mc_Stats' => array(
346
+ 'version' => '1.4.9.0',
347
  'path' => $vendorDir . '/automattic/jetpack-a8c-mc-stats/src/class-a8c-mc-stats.php'
348
  ),
349
  'Automattic\\Jetpack\\Assets' => array(
350
+ 'version' => '1.13.1.0',
351
  'path' => $vendorDir . '/automattic/jetpack-assets/src/class-assets.php'
352
  ),
353
  'Automattic\\Jetpack\\Terms_Of_Service' => array(
354
+ 'version' => '1.9.15.0',
355
  'path' => $vendorDir . '/automattic/jetpack-terms-of-service/src/class-terms-of-service.php'
356
  ),
357
  'Jetpack_Options' => array(
358
+ 'version' => '1.13.5.0',
359
  'path' => $vendorDir . '/automattic/jetpack-options/legacy/class-jetpack-options.php'
360
  ),
361
+ 'Automattic\\Jetpack\\Status\\Host' => array(
362
+ 'version' => '1.9.3.0',
363
+ 'path' => $vendorDir . '/automattic/jetpack-status/src/class-host.php'
364
+ ),
365
  'Automattic\\Jetpack\\Status' => array(
366
+ 'version' => '1.9.3.0',
367
  'path' => $vendorDir . '/automattic/jetpack-status/src/class-status.php'
368
  ),
369
  'Automattic\\Jetpack\\Constants' => array(
370
+ 'version' => '1.6.12.0',
371
  'path' => $vendorDir . '/automattic/jetpack-constants/src/class-constants.php'
372
  ),
373
  );
vendor/jetpack-autoloader/class-autoloader-handler.php CHANGED
@@ -5,7 +5,7 @@
5
  * @package automattic/jetpack-autoloader
6
  */
7
 
8
- namespace Automattic\Jetpack\Autoloader\jpb1e77e6231d50e7663f84529b6a3dfda_jetpack_boostⓥ1_3_0;
9
 
10
  // phpcs:ignore
11
 
5
  * @package automattic/jetpack-autoloader
6
  */
7
 
8
+ namespace Automattic\Jetpack\Autoloader\jpb1e77e6231d50e7663f84529b6a3dfda_jetpack_boostⓥ1_3_1;
9
 
10
  // phpcs:ignore
11
 
vendor/jetpack-autoloader/class-autoloader-locator.php CHANGED
@@ -5,7 +5,7 @@
5
  * @package automattic/jetpack-autoloader
6
  */
7
 
8
- namespace Automattic\Jetpack\Autoloader\jpb1e77e6231d50e7663f84529b6a3dfda_jetpack_boostⓥ1_3_0;
9
 
10
  // phpcs:ignore
11
 
5
  * @package automattic/jetpack-autoloader
6
  */
7
 
8
+ namespace Automattic\Jetpack\Autoloader\jpb1e77e6231d50e7663f84529b6a3dfda_jetpack_boostⓥ1_3_1;
9
 
10
  // phpcs:ignore
11
 
vendor/jetpack-autoloader/class-autoloader.php CHANGED
@@ -5,7 +5,7 @@
5
  * @package automattic/jetpack-autoloader
6
  */
7
 
8
- namespace Automattic\Jetpack\Autoloader\jpb1e77e6231d50e7663f84529b6a3dfda_jetpack_boostⓥ1_3_0;
9
 
10
  // phpcs:ignore
11
 
5
  * @package automattic/jetpack-autoloader
6
  */
7
 
8
+ namespace Automattic\Jetpack\Autoloader\jpb1e77e6231d50e7663f84529b6a3dfda_jetpack_boostⓥ1_3_1;
9
 
10
  // phpcs:ignore
11
 
vendor/jetpack-autoloader/class-container.php CHANGED
@@ -5,7 +5,7 @@
5
  * @package automattic/jetpack-autoloader
6
  */
7
 
8
- namespace Automattic\Jetpack\Autoloader\jpb1e77e6231d50e7663f84529b6a3dfda_jetpack_boostⓥ1_3_0;
9
 
10
  // phpcs:ignore
11
 
5
  * @package automattic/jetpack-autoloader
6
  */
7
 
8
+ namespace Automattic\Jetpack\Autoloader\jpb1e77e6231d50e7663f84529b6a3dfda_jetpack_boostⓥ1_3_1;
9
 
10
  // phpcs:ignore
11
 
vendor/jetpack-autoloader/class-hook-manager.php CHANGED
@@ -5,7 +5,7 @@
5
  * @package automattic/jetpack-autoloader
6
  */
7
 
8
- namespace Automattic\Jetpack\Autoloader\jpb1e77e6231d50e7663f84529b6a3dfda_jetpack_boostⓥ1_3_0;
9
 
10
  // phpcs:ignore
11
 
5
  * @package automattic/jetpack-autoloader
6
  */
7
 
8
+ namespace Automattic\Jetpack\Autoloader\jpb1e77e6231d50e7663f84529b6a3dfda_jetpack_boostⓥ1_3_1;
9
 
10
  // phpcs:ignore
11
 
vendor/jetpack-autoloader/class-latest-autoloader-guard.php CHANGED
@@ -5,7 +5,7 @@
5
  * @package automattic/jetpack-autoloader
6
  */
7
 
8
- namespace Automattic\Jetpack\Autoloader\jpb1e77e6231d50e7663f84529b6a3dfda_jetpack_boostⓥ1_3_0;
9
 
10
  // phpcs:ignore
11
 
5
  * @package automattic/jetpack-autoloader
6
  */
7
 
8
+ namespace Automattic\Jetpack\Autoloader\jpb1e77e6231d50e7663f84529b6a3dfda_jetpack_boostⓥ1_3_1;
9
 
10
  // phpcs:ignore
11
 
vendor/jetpack-autoloader/class-manifest-reader.php CHANGED
@@ -5,7 +5,7 @@
5
  * @package automattic/jetpack-autoloader
6
  */
7
 
8
- namespace Automattic\Jetpack\Autoloader\jpb1e77e6231d50e7663f84529b6a3dfda_jetpack_boostⓥ1_3_0;
9
 
10
  // phpcs:ignore
11
 
5
  * @package automattic/jetpack-autoloader
6
  */
7
 
8
+ namespace Automattic\Jetpack\Autoloader\jpb1e77e6231d50e7663f84529b6a3dfda_jetpack_boostⓥ1_3_1;
9
 
10
  // phpcs:ignore
11
 
vendor/jetpack-autoloader/class-path-processor.php CHANGED
@@ -5,7 +5,7 @@
5
  * @package automattic/jetpack-autoloader
6
  */
7
 
8
- namespace Automattic\Jetpack\Autoloader\jpb1e77e6231d50e7663f84529b6a3dfda_jetpack_boostⓥ1_3_0;
9
 
10
  // phpcs:ignore
11
 
5
  * @package automattic/jetpack-autoloader
6
  */
7
 
8
+ namespace Automattic\Jetpack\Autoloader\jpb1e77e6231d50e7663f84529b6a3dfda_jetpack_boostⓥ1_3_1;
9
 
10
  // phpcs:ignore
11
 
vendor/jetpack-autoloader/class-php-autoloader.php CHANGED
@@ -5,7 +5,7 @@
5
  * @package automattic/jetpack-autoloader
6
  */
7
 
8
- namespace Automattic\Jetpack\Autoloader\jpb1e77e6231d50e7663f84529b6a3dfda_jetpack_boostⓥ1_3_0;
9
 
10
  // phpcs:ignore
11
 
@@ -37,6 +37,9 @@ class PHP_Autoloader {
37
  public function unregister_autoloader() {
38
  // Remove any v2 autoloader that we've already registered.
39
  $autoload_chain = spl_autoload_functions();
 
 
 
40
  foreach ( $autoload_chain as $autoloader ) {
41
  // We can identify a v2 autoloader using the namespace.
42
  $namespace_check = null;
5
  * @package automattic/jetpack-autoloader
6
  */
7
 
8
+ namespace Automattic\Jetpack\Autoloader\jpb1e77e6231d50e7663f84529b6a3dfda_jetpack_boostⓥ1_3_1;
9
 
10
  // phpcs:ignore
11
 
37
  public function unregister_autoloader() {
38
  // Remove any v2 autoloader that we've already registered.
39
  $autoload_chain = spl_autoload_functions();
40
+ if ( ! $autoload_chain ) {
41
+ return;
42
+ }
43
  foreach ( $autoload_chain as $autoloader ) {
44
  // We can identify a v2 autoloader using the namespace.
45
  $namespace_check = null;
vendor/jetpack-autoloader/class-plugin-locator.php CHANGED
@@ -5,7 +5,7 @@
5
  * @package automattic/jetpack-autoloader
6
  */
7
 
8
- namespace Automattic\Jetpack\Autoloader\jpb1e77e6231d50e7663f84529b6a3dfda_jetpack_boostⓥ1_3_0;
9
 
10
  // phpcs:ignore
11
 
5
  * @package automattic/jetpack-autoloader
6
  */
7
 
8
+ namespace Automattic\Jetpack\Autoloader\jpb1e77e6231d50e7663f84529b6a3dfda_jetpack_boostⓥ1_3_1;
9
 
10
  // phpcs:ignore
11
 
vendor/jetpack-autoloader/class-plugins-handler.php CHANGED
@@ -5,7 +5,7 @@
5
  * @package automattic/jetpack-autoloader
6
  */
7
 
8
- namespace Automattic\Jetpack\Autoloader\jpb1e77e6231d50e7663f84529b6a3dfda_jetpack_boostⓥ1_3_0;
9
 
10
  // phpcs:ignore
11
 
5
  * @package automattic/jetpack-autoloader
6
  */
7
 
8
+ namespace Automattic\Jetpack\Autoloader\jpb1e77e6231d50e7663f84529b6a3dfda_jetpack_boostⓥ1_3_1;
9
 
10
  // phpcs:ignore
11
 
vendor/jetpack-autoloader/class-shutdown-handler.php CHANGED
@@ -5,7 +5,7 @@
5
  * @package automattic/jetpack-autoloader
6
  */
7
 
8
- namespace Automattic\Jetpack\Autoloader\jpb1e77e6231d50e7663f84529b6a3dfda_jetpack_boostⓥ1_3_0;
9
 
10
  // phpcs:ignore
11
 
5
  * @package automattic/jetpack-autoloader
6
  */
7
 
8
+ namespace Automattic\Jetpack\Autoloader\jpb1e77e6231d50e7663f84529b6a3dfda_jetpack_boostⓥ1_3_1;
9
 
10
  // phpcs:ignore
11
 
vendor/jetpack-autoloader/class-version-loader.php CHANGED
@@ -5,7 +5,7 @@
5
  * @package automattic/jetpack-autoloader
6
  */
7
 
8
- namespace Automattic\Jetpack\Autoloader\jpb1e77e6231d50e7663f84529b6a3dfda_jetpack_boostⓥ1_3_0;
9
 
10
  // phpcs:ignore
11
 
5
  * @package automattic/jetpack-autoloader
6
  */
7
 
8
+ namespace Automattic\Jetpack\Autoloader\jpb1e77e6231d50e7663f84529b6a3dfda_jetpack_boostⓥ1_3_1;
9
 
10
  // phpcs:ignore
11
 
vendor/jetpack-autoloader/class-version-selector.php CHANGED
@@ -5,7 +5,7 @@
5
  * @package automattic/jetpack-autoloader
6
  */
7
 
8
- namespace Automattic\Jetpack\Autoloader\jpb1e77e6231d50e7663f84529b6a3dfda_jetpack_boostⓥ1_3_0;
9
 
10
  // phpcs:ignore
11
 
5
  * @package automattic/jetpack-autoloader
6
  */
7
 
8
+ namespace Automattic\Jetpack\Autoloader\jpb1e77e6231d50e7663f84529b6a3dfda_jetpack_boostⓥ1_3_1;
9
 
10
  // phpcs:ignore
11