@browserless.io/browserless 2.2.0-beta-8 → 2.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +21 -2
- package/bin/browserless.js +1 -1
- package/bin/scaffold/README.md +8 -7
- package/build/browserless.js +7 -6
- package/build/browsers/chrome.cdp.d.ts +6 -0
- package/build/browsers/chrome.cdp.js +6 -0
- package/build/browsers/chrome.playwright.d.ts +6 -0
- package/build/browsers/chrome.playwright.js +6 -0
- package/build/browsers/{cdp-chromium.d.ts → chromium.cdp.d.ts} +3 -2
- package/build/browsers/{cdp-chromium.js → chromium.cdp.js} +16 -10
- package/build/browsers/{playwright-chromium.d.ts → chromium.playwright.d.ts} +3 -2
- package/build/browsers/{playwright-chromium.js → chromium.playwright.js} +6 -5
- package/build/browsers/{playwright-firefox.d.ts → firefox.playwright.d.ts} +2 -2
- package/build/browsers/{playwright-firefox.js → firefox.playwright.js} +4 -4
- package/build/browsers/index.d.ts +20 -10
- package/build/browsers/index.js +110 -11
- package/build/browsers/{playwright-webkit.d.ts → webkit.playwright.d.ts} +2 -2
- package/build/browsers/{playwright-webkit.js → webkit.playwright.js} +4 -4
- package/build/data/selectors.json +1 -1
- package/build/exports.d.ts +6 -4
- package/build/exports.js +6 -4
- package/build/hooks.d.ts +4 -5
- package/build/hooks.js +4 -6
- package/build/http.d.ts +22 -1
- package/build/http.js +21 -0
- package/build/router.js +19 -3
- package/build/routes/{chromium/http/content-post.body.json → chrome/http/content.post.body.json} +8 -8
- package/build/routes/chrome/http/content.post.d.ts +7 -0
- package/build/routes/chrome/http/content.post.js +6 -0
- package/build/routes/chrome/http/download.post.d.ts +7 -0
- package/build/routes/chrome/http/download.post.js +6 -0
- package/build/routes/chrome/http/function.post.d.ts +7 -0
- package/build/routes/chrome/http/function.post.js +6 -0
- package/build/routes/chrome/http/json-list.get.d.ts +1 -0
- package/build/routes/chrome/http/json-list.get.js +1 -0
- package/build/routes/chrome/http/json-new.put.d.ts +1 -0
- package/build/routes/chrome/http/json-new.put.js +1 -0
- package/build/routes/chrome/http/json-protocol.get.d.ts +1 -0
- package/build/routes/chrome/http/json-protocol.get.js +1 -0
- package/build/routes/chrome/http/json-version.get.d.ts +1 -0
- package/build/routes/chrome/http/json-version.get.js +1 -0
- package/build/routes/chrome/http/json-version.get.response.json +44 -0
- package/build/routes/{chromium/http/pdf-post.body.json → chrome/http/pdf.post.body.json} +8 -8
- package/build/routes/chrome/http/pdf.post.d.ts +7 -0
- package/build/routes/chrome/http/pdf.post.js +6 -0
- package/build/routes/chrome/http/performance.post.d.ts +7 -0
- package/build/routes/chrome/http/performance.post.js +6 -0
- package/build/routes/{chromium/http/scrape-post.body.json → chrome/http/scrape.post.body.json} +8 -8
- package/build/routes/chrome/http/scrape.post.d.ts +7 -0
- package/build/routes/chrome/http/scrape.post.js +6 -0
- package/build/routes/{chromium/http/screenshot-post.body.json → chrome/http/screenshot.post.body.json} +8 -8
- package/build/routes/chrome/http/screenshot.post.d.ts +7 -0
- package/build/routes/chrome/http/screenshot.post.js +6 -0
- package/build/routes/chrome/tests/content.spec.js +311 -0
- package/build/routes/chrome/tests/download.spec.js +67 -0
- package/build/routes/chrome/tests/function.spec.d.ts +1 -0
- package/build/routes/chrome/tests/function.spec.js +245 -0
- package/build/routes/chrome/tests/json-version.spec.d.ts +1 -0
- package/build/routes/chrome/tests/json-version.spec.js +37 -0
- package/build/routes/chrome/tests/page-websocket.spec.d.ts +1 -0
- package/build/routes/chrome/tests/page-websocket.spec.js +97 -0
- package/build/routes/chrome/tests/pdf.spec.d.ts +1 -0
- package/build/routes/chrome/tests/pdf.spec.js +333 -0
- package/build/routes/chrome/tests/performance.spec.d.ts +1 -0
- package/build/routes/chrome/tests/performance.spec.js +124 -0
- package/build/routes/chrome/tests/scrape.spec.d.ts +1 -0
- package/build/routes/chrome/tests/scrape.spec.js +354 -0
- package/build/routes/chrome/tests/screenshot.spec.d.ts +1 -0
- package/build/routes/chrome/tests/screenshot.spec.js +339 -0
- package/build/routes/chrome/tests/websocket.spec.d.ts +1 -0
- package/build/routes/chrome/tests/websocket.spec.js +371 -0
- package/build/routes/chrome/ws/browser.d.ts +6 -0
- package/build/routes/chrome/ws/browser.js +5 -0
- package/build/routes/chrome/ws/cdp.d.ts +7 -0
- package/build/routes/chrome/ws/cdp.js +6 -0
- package/build/routes/chrome/ws/cdp.query.json +120 -0
- package/build/routes/chrome/ws/page.d.ts +6 -0
- package/build/routes/chrome/ws/page.js +5 -0
- package/build/routes/chrome/ws/page.query.json +120 -0
- package/build/routes/chrome/ws/playwright.d.ts +7 -0
- package/build/routes/chrome/ws/playwright.js +6 -0
- package/build/routes/chromium/http/content.post.body.json +510 -0
- package/build/routes/chromium/http/content.post.d.ts +1 -0
- package/build/routes/chromium/http/content.post.js +1 -0
- package/build/routes/chromium/http/content.post.query.json +183 -0
- package/build/routes/chromium/http/content.post.response.json +5 -0
- package/build/routes/chromium/http/download.post.body.json +32 -0
- package/build/routes/chromium/http/download.post.d.ts +1 -0
- package/build/routes/chromium/http/download.post.js +1 -0
- package/build/routes/chromium/http/download.post.query.json +120 -0
- package/build/routes/chromium/http/download.post.response.json +4 -0
- package/build/routes/chromium/http/function.post.body.json +32 -0
- package/build/routes/chromium/http/function.post.d.ts +1 -0
- package/build/routes/chromium/http/function.post.js +1 -0
- package/build/routes/chromium/http/function.post.query.json +120 -0
- package/build/routes/chromium/http/function.post.response.json +4 -0
- package/build/routes/chromium/http/json-list.get.d.ts +1 -0
- package/build/routes/chromium/http/json-list.get.js +1 -0
- package/build/routes/chromium/http/json-list.get.response.json +52 -0
- package/build/routes/chromium/http/json-new.put.d.ts +1 -0
- package/build/routes/chromium/http/json-new.put.js +1 -0
- package/build/routes/chromium/http/json-new.put.response.json +44 -0
- package/build/routes/chromium/http/json-protocol.get.d.ts +1 -0
- package/build/routes/chromium/http/json-protocol.get.js +1 -0
- package/build/routes/chromium/http/json-protocol.get.response.json +6 -0
- package/build/routes/chromium/http/json-version.get.d.ts +1 -0
- package/build/routes/chromium/http/json-version.get.js +1 -0
- package/build/routes/chromium/http/json-version.get.response.json +44 -0
- package/build/routes/chromium/http/pdf.post.body.json +654 -0
- package/build/routes/chromium/http/pdf.post.d.ts +1 -0
- package/build/routes/chromium/http/pdf.post.js +1 -0
- package/build/routes/chromium/http/pdf.post.query.json +120 -0
- package/build/routes/chromium/http/pdf.post.response.json +5 -0
- package/build/routes/chromium/http/performance.post.body.json +26 -0
- package/build/routes/chromium/http/performance.post.d.ts +1 -0
- package/build/routes/chromium/http/performance.post.js +1 -0
- package/build/routes/chromium/http/performance.post.query.json +120 -0
- package/build/routes/chromium/http/performance.post.response.json +7 -0
- package/build/routes/chromium/http/scrape.post.body.json +557 -0
- package/build/routes/chromium/http/scrape.post.d.ts +1 -0
- package/build/routes/chromium/http/scrape.post.js +1 -0
- package/build/routes/chromium/http/scrape.post.query.json +183 -0
- package/build/routes/chromium/http/scrape.post.response.json +309 -0
- package/build/routes/chromium/http/screenshot.post.body.json +600 -0
- package/build/routes/chromium/http/screenshot.post.d.ts +1 -0
- package/build/routes/chromium/http/screenshot.post.js +1 -0
- package/build/routes/chromium/http/screenshot.post.query.json +120 -0
- package/build/routes/chromium/http/screenshot.post.response.json +5 -0
- package/build/routes/chromium/tests/content.spec.js +16 -16
- package/build/routes/chromium/tests/download.spec.js +3 -3
- package/build/routes/chromium/tests/function.spec.js +10 -10
- package/build/routes/chromium/tests/page-websocket.spec.d.ts +1 -0
- package/build/routes/chromium/tests/page-websocket.spec.js +97 -0
- package/build/routes/chromium/tests/pdf.spec.js +16 -16
- package/build/routes/chromium/tests/performance.spec.js +7 -7
- package/build/routes/chromium/tests/scrape.spec.js +15 -15
- package/build/routes/chromium/tests/screenshot.spec.js +17 -17
- package/build/routes/chromium/tests/websocket.spec.js +31 -37
- package/build/routes/chromium/ws/browser.d.ts +1 -16
- package/build/routes/chromium/ws/browser.js +1 -10
- package/build/routes/chromium/ws/cdp.d.ts +1 -0
- package/build/routes/chromium/ws/cdp.js +1 -0
- package/build/routes/chromium/ws/cdp.query.json +120 -0
- package/build/routes/chromium/ws/page.d.ts +1 -16
- package/build/routes/chromium/ws/page.js +1 -10
- package/build/routes/chromium/ws/playwright.d.ts +1 -0
- package/build/routes/chromium/ws/playwright.js +1 -0
- package/build/routes/firefox/ws/{playwright-firefox.d.ts → playwright.d.ts} +5 -5
- package/build/routes/firefox/ws/{playwright-firefox.js → playwright.js} +4 -4
- package/build/routes/management/http/{sessions-get.response.json → sessions.get.response.json} +11 -1
- package/build/routes/management/http/{static-get.js → static.get.js} +2 -2
- package/build/routes/webkit/ws/{playwright-webkit.d.ts → playwright.d.ts} +5 -5
- package/build/routes/webkit/ws/{playwright-webkit.js → playwright.js} +4 -4
- package/build/routes/webkit/ws/playwright.query.json +100 -0
- package/build/{routes/chromium/ws/cdp-chromium.d.ts → shared/browser.ws.d.ts} +4 -4
- package/build/shared/browser.ws.js +12 -0
- package/build/{routes/chromium/ws/playwright-chromium.d.ts → shared/chromium.playwright.ws.d.ts} +4 -4
- package/build/{routes/chromium/ws/playwright-chromium.js → shared/chromium.playwright.ws.js} +6 -3
- package/build/shared/chromium.ws.d.ts +16 -0
- package/build/shared/chromium.ws.js +10 -0
- package/build/{routes/chromium/http/content-post.d.ts → shared/content.http.d.ts} +3 -3
- package/build/{routes/chromium/http/content-post.js → shared/content.http.js} +3 -3
- package/build/{routes/chromium/http/download-post.d.ts → shared/download.http.d.ts} +3 -3
- package/build/{routes/chromium/http/download-post.js → shared/download.http.js} +4 -4
- package/build/{routes/chromium/http/function-post.d.ts → shared/function.http.d.ts} +3 -3
- package/build/{routes/chromium/http/function-post.js → shared/function.http.js} +4 -4
- package/build/{routes/chromium/http/json-new.d.ts → shared/json-list.http.d.ts} +2 -3
- package/build/{routes/chromium/http/json-list.js → shared/json-list.http.js} +5 -8
- package/build/{routes/chromium/http/json-list.d.ts → shared/json-new.http.d.ts} +2 -3
- package/build/shared/json-new.http.js +34 -0
- package/build/{routes/chromium/http/json-protocol-get.js → shared/json-protocol.http.js} +2 -2
- package/build/{routes/chromium/http/json-version-get.js → shared/json-version.http.js} +3 -3
- package/build/shared/page.ws.d.ts +16 -0
- package/build/shared/page.ws.js +13 -0
- package/build/{routes/chromium/http/pdf-post.d.ts → shared/pdf.http.d.ts} +3 -3
- package/build/{routes/chromium/http/pdf-post.js → shared/pdf.http.js} +3 -3
- package/build/{routes/chromium/http/performance.d.ts → shared/performance.http.d.ts} +3 -3
- package/build/{routes/chromium/http/performance.js → shared/performance.http.js} +4 -4
- package/build/{routes/chromium/http/scrape-post.d.ts → shared/scrape.http.d.ts} +3 -3
- package/build/{routes/chromium/http/scrape-post.js → shared/scrape.http.js} +3 -3
- package/build/{routes/chromium/http/screenshot-post.d.ts → shared/screenshot.http.d.ts} +3 -3
- package/build/{routes/chromium/http/screenshot-post.js → shared/screenshot.http.js} +3 -3
- package/build/shared/utils/performance/child.d.ts +1 -0
- package/build/{routes/chromium → shared}/utils/performance/main.js +1 -1
- package/build/shared/utils/performance/types.js +1 -0
- package/build/shim.js +2 -1
- package/build/types.d.ts +10 -8
- package/build/utils.d.ts +8 -3
- package/build/utils.js +24 -11
- package/docker/base/Dockerfile +1 -1
- package/docker/chrome/Dockerfile +4 -4
- package/docker/chromium/.dockerignore +16 -0
- package/docker/chromium/Dockerfile +40 -0
- package/docker/firefox/Dockerfile +1 -1
- package/docker/multi/Dockerfile +13 -1
- package/docker/webkit/Dockerfile +1 -1
- package/extensions/ublock/3p-filters.html +1 -1
- package/extensions/ublock/_locales/ar/messages.json +4 -0
- package/extensions/ublock/_locales/az/messages.json +4 -0
- package/extensions/ublock/_locales/be/messages.json +4 -0
- package/extensions/ublock/_locales/bg/messages.json +5 -1
- package/extensions/ublock/_locales/bn/messages.json +4 -0
- package/extensions/ublock/_locales/br_FR/messages.json +6 -2
- package/extensions/ublock/_locales/bs/messages.json +4 -0
- package/extensions/ublock/_locales/ca/messages.json +4 -0
- package/extensions/ublock/_locales/cs/messages.json +4 -0
- package/extensions/ublock/_locales/cv/messages.json +4 -0
- package/extensions/ublock/_locales/cy/messages.json +1294 -0
- package/extensions/ublock/_locales/da/messages.json +4 -0
- package/extensions/ublock/_locales/de/messages.json +5 -1
- package/extensions/ublock/_locales/el/messages.json +4 -0
- package/extensions/ublock/_locales/en/messages.json +4 -0
- package/extensions/ublock/_locales/en_GB/messages.json +4 -0
- package/extensions/ublock/_locales/eo/messages.json +9 -5
- package/extensions/ublock/_locales/es/messages.json +4 -0
- package/extensions/ublock/_locales/et/messages.json +4 -0
- package/extensions/ublock/_locales/eu/messages.json +8 -4
- package/extensions/ublock/_locales/fa/messages.json +4 -0
- package/extensions/ublock/_locales/fi/messages.json +4 -0
- package/extensions/ublock/_locales/fil/messages.json +4 -0
- package/extensions/ublock/_locales/fr/messages.json +4 -0
- package/extensions/ublock/_locales/fy/messages.json +4 -0
- package/extensions/ublock/_locales/gl/messages.json +4 -0
- package/extensions/ublock/_locales/gu/messages.json +4 -0
- package/extensions/ublock/_locales/he/messages.json +4 -0
- package/extensions/ublock/_locales/hi/messages.json +4 -0
- package/extensions/ublock/_locales/hr/messages.json +4 -0
- package/extensions/ublock/_locales/hu/messages.json +4 -0
- package/extensions/ublock/_locales/hy/messages.json +4 -0
- package/extensions/ublock/_locales/id/messages.json +5 -1
- package/extensions/ublock/_locales/it/messages.json +4 -0
- package/extensions/ublock/_locales/ja/messages.json +4 -0
- package/extensions/ublock/_locales/ka/messages.json +34 -30
- package/extensions/ublock/_locales/kk/messages.json +4 -0
- package/extensions/ublock/_locales/kn/messages.json +4 -0
- package/extensions/ublock/_locales/ko/messages.json +4 -0
- package/extensions/ublock/_locales/ku/messages.json +4 -0
- package/extensions/ublock/_locales/lt/messages.json +4 -0
- package/extensions/ublock/_locales/lv/messages.json +4 -0
- package/extensions/ublock/_locales/mk/messages.json +4 -0
- package/extensions/ublock/_locales/ml/messages.json +4 -0
- package/extensions/ublock/_locales/mr/messages.json +4 -0
- package/extensions/ublock/_locales/ms/messages.json +13 -9
- package/extensions/ublock/_locales/nb/messages.json +4 -0
- package/extensions/ublock/_locales/nl/messages.json +4 -0
- package/extensions/ublock/_locales/no/messages.json +4 -0
- package/extensions/ublock/_locales/oc/messages.json +4 -0
- package/extensions/ublock/_locales/pa/messages.json +4 -0
- package/extensions/ublock/_locales/pl/messages.json +5 -1
- package/extensions/ublock/_locales/pt_BR/messages.json +4 -0
- package/extensions/ublock/_locales/pt_PT/messages.json +4 -0
- package/extensions/ublock/_locales/ro/messages.json +5 -1
- package/extensions/ublock/_locales/ru/messages.json +4 -0
- package/extensions/ublock/_locales/si/messages.json +4 -0
- package/extensions/ublock/_locales/sk/messages.json +4 -0
- package/extensions/ublock/_locales/sl/messages.json +4 -0
- package/extensions/ublock/_locales/so/messages.json +4 -0
- package/extensions/ublock/_locales/sq/messages.json +4 -0
- package/extensions/ublock/_locales/sr/messages.json +4 -0
- package/extensions/ublock/_locales/sv/messages.json +4 -0
- package/extensions/ublock/_locales/sw/messages.json +4 -0
- package/extensions/ublock/_locales/ta/messages.json +4 -0
- package/extensions/ublock/_locales/te/messages.json +4 -0
- package/extensions/ublock/_locales/th/messages.json +12 -8
- package/extensions/ublock/_locales/tr/messages.json +4 -0
- package/extensions/ublock/_locales/uk/messages.json +4 -0
- package/extensions/ublock/_locales/ur/messages.json +4 -0
- package/extensions/ublock/_locales/vi/messages.json +4 -0
- package/extensions/ublock/_locales/zh_CN/messages.json +6 -2
- package/extensions/ublock/_locales/zh_TW/messages.json +6 -2
- package/extensions/ublock/assets/assets.json +11 -11
- package/extensions/ublock/assets/resources/scriptlets.js +660 -378
- package/extensions/ublock/assets/thirdparties/easylist/easylist.txt +7173 -3455
- package/extensions/ublock/assets/thirdparties/easylist/easyprivacy.txt +18829 -1918
- package/extensions/ublock/assets/thirdparties/pgl.yoyo.org/as/serverlist +21 -26
- package/extensions/ublock/assets/thirdparties/publicsuffix.org/list/effective_tld_names.dat +118 -46
- package/extensions/ublock/assets/thirdparties/urlhaus-filter/urlhaus-filter-online.txt +710 -1117
- package/extensions/ublock/assets/ublock/badlists.txt +0 -4
- package/extensions/ublock/assets/ublock/badware.min.txt +116 -105
- package/extensions/ublock/assets/ublock/filters.min.txt +1443 -1097
- package/extensions/ublock/assets/ublock/privacy.min.txt +50 -31
- package/extensions/ublock/assets/ublock/quick-fixes.min.txt +97 -108
- package/extensions/ublock/assets/ublock/unbreak.min.txt +64 -21
- package/extensions/ublock/css/1p-filters.css +4 -0
- package/extensions/ublock/css/3p-filters.css +6 -4
- package/extensions/ublock/css/common.css +1 -1
- package/extensions/ublock/css/fa-icons.css +1 -0
- package/extensions/ublock/css/logger-ui.css +72 -52
- package/extensions/ublock/css/popup-fenix.css +1 -1
- package/extensions/ublock/img/fontawesome/fontawesome-defs.svg +1 -0
- package/extensions/ublock/js/3p-filters.js +3 -3
- package/extensions/ublock/js/assets.js +7 -4
- package/extensions/ublock/js/background.js +1 -3
- package/extensions/ublock/js/benchmarks.js +1 -0
- package/extensions/ublock/js/broadcast.js +12 -0
- package/extensions/ublock/js/click2load.js +2 -3
- package/extensions/ublock/js/codemirror/ubo-static-filtering.js +1 -0
- package/extensions/ublock/js/commands.js +10 -0
- package/extensions/ublock/js/contentscript-extra.js +13 -11
- package/extensions/ublock/js/contentscript.js +0 -31
- package/extensions/ublock/js/contextmenu.js +5 -1
- package/extensions/ublock/js/dyna-rules.js +83 -52
- package/extensions/ublock/js/fa-icons.js +1 -0
- package/extensions/ublock/js/filtering-context.js +0 -2
- package/extensions/ublock/js/i18n.js +1 -5
- package/extensions/ublock/js/logger-ui.js +71 -38
- package/extensions/ublock/js/logger.js +18 -14
- package/extensions/ublock/js/messaging.js +17 -5
- package/extensions/ublock/js/popup-fenix.js +6 -6
- package/extensions/ublock/js/scriptlet-filtering-core.js +14 -12
- package/extensions/ublock/js/scriptlet-filtering.js +149 -53
- package/extensions/ublock/js/scriptlets/scriptlet-loglevel-1.js +49 -0
- package/extensions/ublock/js/scriptlets/scriptlet-loglevel-2.js +49 -0
- package/extensions/ublock/js/scriptlets/should-inject-contentscript.js +1 -1
- package/extensions/ublock/js/static-dnr-filtering.js +4 -2
- package/extensions/ublock/js/static-filtering-parser.js +14 -8
- package/extensions/ublock/js/static-net-filtering.js +32 -30
- package/extensions/ublock/js/storage.js +18 -4
- package/extensions/ublock/js/traffic.js +3 -3
- package/extensions/ublock/js/ublock.js +1 -1
- package/extensions/ublock/js/vapi-background.js +15 -7
- package/extensions/ublock/logger-ui.html +18 -10
- package/extensions/ublock/manifest.json +4 -1
- package/extensions/ublock/web_accessible_resources/chartbeat.js +3 -0
- package/package.json +12 -11
- package/scripts/build-function.js +1 -1
- package/scripts/build-open-api.js +3 -2
- package/scripts/clean.js +6 -1
- package/scripts/install-debugger.js +20 -0
- package/scripts/install-devtools.js +40 -0
- package/src/browserless.ts +11 -9
- package/src/browsers/chrome.cdp.ts +10 -0
- package/src/browsers/chrome.playwright.ts +10 -0
- package/src/browsers/{cdp-chromium.ts → chromium.cdp.ts} +20 -13
- package/src/browsers/{playwright-chromium.ts → chromium.playwright.ts} +7 -6
- package/src/browsers/{playwright-firefox.ts → firefox.playwright.ts} +5 -5
- package/src/browsers/index.ts +160 -23
- package/src/browsers/{playwright-webkit.ts → webkit.playwright.ts} +5 -5
- package/src/exports.ts +6 -4
- package/src/hooks.ts +4 -12
- package/src/http.ts +21 -0
- package/src/router.ts +21 -5
- package/src/routes/chrome/http/content.post.ts +14 -0
- package/src/routes/chrome/http/download.post.ts +14 -0
- package/src/routes/chrome/http/function.post.ts +14 -0
- package/src/routes/chrome/http/json-list.get.ts +1 -0
- package/src/routes/chrome/http/json-new.put.ts +1 -0
- package/src/routes/chrome/http/json-protocol.get.ts +1 -0
- package/src/routes/chrome/http/json-version.get.ts +1 -0
- package/src/routes/chrome/http/pdf.post.ts +14 -0
- package/src/routes/chrome/http/performance.post.ts +14 -0
- package/src/routes/chrome/http/scrape.post.ts +14 -0
- package/src/routes/chrome/http/screenshot.post.ts +14 -0
- package/src/routes/chrome/tests/content.spec.ts +375 -0
- package/src/routes/chrome/tests/download.spec.ts +77 -0
- package/src/routes/chrome/tests/function.spec.ts +282 -0
- package/src/routes/chrome/tests/json-version.spec.ts +52 -0
- package/src/routes/chrome/tests/page-websocket.spec.ts +129 -0
- package/src/routes/chrome/tests/pdf.spec.ts +380 -0
- package/src/routes/chrome/tests/performance.spec.ts +155 -0
- package/src/routes/chrome/tests/scrape.spec.ts +417 -0
- package/src/routes/chrome/tests/screenshot.spec.ts +387 -0
- package/src/routes/chrome/tests/websocket.spec.ts +491 -0
- package/src/routes/chrome/ws/browser.ts +8 -0
- package/src/routes/chrome/ws/cdp.ts +12 -0
- package/src/routes/chrome/ws/page.ts +8 -0
- package/src/routes/chrome/ws/playwright.ts +12 -0
- package/src/routes/chromium/http/content.post.ts +6 -0
- package/src/routes/chromium/http/download.post.ts +6 -0
- package/src/routes/chromium/http/function.post.ts +6 -0
- package/src/routes/chromium/http/json-list.get.ts +1 -0
- package/src/routes/chromium/http/json-new.put.ts +1 -0
- package/src/routes/chromium/http/json-protocol.get.ts +1 -0
- package/src/routes/chromium/http/json-version.get.ts +1 -0
- package/src/routes/chromium/http/pdf.post.ts +6 -0
- package/src/routes/chromium/http/performance.post.ts +6 -0
- package/src/routes/chromium/http/scrape.post.ts +6 -0
- package/src/routes/chromium/http/screenshot.post.ts +6 -0
- package/src/routes/chromium/tests/content.spec.ts +36 -28
- package/src/routes/chromium/tests/download.spec.ts +3 -3
- package/src/routes/chromium/tests/function.spec.ts +18 -15
- package/src/routes/chromium/tests/page-websocket.spec.ts +129 -0
- package/src/routes/chromium/tests/pdf.spec.ts +31 -26
- package/src/routes/chromium/tests/performance.spec.ts +46 -34
- package/src/routes/chromium/tests/scrape.spec.ts +23 -20
- package/src/routes/chromium/tests/screenshot.spec.ts +24 -24
- package/src/routes/chromium/tests/websocket.spec.ts +31 -40
- package/src/routes/chromium/ws/browser.ts +1 -29
- package/src/routes/chromium/ws/cdp.ts +1 -0
- package/src/routes/chromium/ws/page.ts +1 -29
- package/src/routes/chromium/ws/playwright.ts +4 -0
- package/src/routes/firefox/ws/{playwright-firefox.ts → playwright.ts} +5 -5
- package/src/routes/management/http/{static-get.ts → static.get.ts} +2 -2
- package/src/routes/webkit/ws/{playwright-webkit.ts → playwright.ts} +5 -5
- package/src/shared/browser.ws.ts +34 -0
- package/src/{routes/chromium/ws/playwright-chromium.ts → shared/chromium.playwright.ws.ts} +7 -4
- package/src/{routes/chromium/ws/cdp-chromium.ts → shared/chromium.ws.ts} +6 -6
- package/src/{routes/chromium/http/content-post.ts → shared/content.http.ts} +4 -4
- package/src/{routes/chromium/http/download-post.ts → shared/download.http.ts} +4 -4
- package/src/{routes/chromium/http/function-post.ts → shared/function.http.ts} +4 -4
- package/src/shared/json-list.http.ts +35 -0
- package/src/{routes/chromium/http/json-new.ts → shared/json-new.http.ts} +23 -7
- package/src/{routes/chromium/http/json-protocol-get.ts → shared/json-protocol.http.ts} +3 -5
- package/src/{routes/chromium/http/json-version-get.ts → shared/json-version.http.ts} +4 -5
- package/src/shared/page.ws.ts +35 -0
- package/src/{routes/chromium/http/pdf-post.ts → shared/pdf.http.ts} +4 -4
- package/src/{routes/chromium/http/performance.ts → shared/performance.http.ts} +4 -4
- package/src/{routes/chromium/http/scrape-post.ts → shared/scrape.http.ts} +4 -4
- package/src/{routes/chromium/http/screenshot-post.ts → shared/screenshot.http.ts} +4 -4
- package/src/{routes/chromium → shared}/utils/function/handler.ts +2 -2
- package/src/{routes/chromium → shared}/utils/performance/main.ts +1 -2
- package/src/shim.ts +2 -1
- package/src/types.ts +27 -20
- package/src/utils.ts +32 -14
- package/static/devtools/Images/accelerometer-back.svg +1 -0
- package/static/devtools/Images/accelerometer-bottom.png +0 -0
- package/static/devtools/Images/accelerometer-front.svg +1 -0
- package/static/devtools/Images/accelerometer-left.png +0 -0
- package/static/devtools/Images/accelerometer-right.png +0 -0
- package/static/devtools/Images/accelerometer-top.png +0 -0
- package/static/devtools/Images/baseline-icon.svg +1 -0
- package/static/devtools/Images/breaking_change_icon.svg +1 -0
- package/static/devtools/Images/checkboxCheckmark.svg +1 -0
- package/static/devtools/Images/checker.png +0 -0
- package/static/devtools/Images/chevrons.svg +1 -0
- package/static/devtools/Images/chromeDisabledSelect.png +0 -0
- package/static/devtools/Images/chromeDisabledSelect_2x.png +0 -0
- package/static/devtools/Images/chromeLeft.avif +0 -0
- package/static/devtools/Images/chromeMiddle.avif +0 -0
- package/static/devtools/Images/chromeRight.avif +0 -0
- package/static/devtools/Images/chromeSelect.svg +1 -0
- package/static/devtools/Images/chromeSelectDark.svg +1 -0
- package/static/devtools/Images/cssoverview_icons_2x.avif +0 -0
- package/static/devtools/Images/dropdown_7x6_icon.svg +1 -0
- package/static/devtools/Images/elements_panel_icon.svg +1 -0
- package/static/devtools/Images/errorWave.svg +1 -0
- package/static/devtools/Images/error_icon.svg +1 -0
- package/static/devtools/Images/feedback_thin_16x16_icon.svg +1 -0
- package/static/devtools/Images/flex-align-content-center-icon.svg +1 -0
- package/static/devtools/Images/flex-align-content-end-icon.svg +1 -0
- package/static/devtools/Images/flex-align-content-space-around-icon.svg +1 -0
- package/static/devtools/Images/flex-align-content-space-between-icon.svg +1 -0
- package/static/devtools/Images/flex-align-content-space-evenly-icon.svg +1 -0
- package/static/devtools/Images/flex-align-content-start-icon.svg +1 -0
- package/static/devtools/Images/flex-align-content-stretch-icon.svg +1 -0
- package/static/devtools/Images/flex-align-items-center-icon.svg +1 -0
- package/static/devtools/Images/flex-align-items-flex-end-icon.svg +1 -0
- package/static/devtools/Images/flex-align-items-flex-start-icon.svg +1 -0
- package/static/devtools/Images/flex-align-items-stretch-icon.svg +1 -0
- package/static/devtools/Images/flex-align-self-center-icon.svg +1 -0
- package/static/devtools/Images/flex-align-self-flex-end-icon.svg +1 -0
- package/static/devtools/Images/flex-align-self-flex-start-icon.svg +1 -0
- package/static/devtools/Images/flex-align-self-stretch-icon.svg +1 -0
- package/static/devtools/Images/flex-direction-icon.svg +1 -0
- package/static/devtools/Images/flex-justify-content-center-icon.svg +1 -0
- package/static/devtools/Images/flex-justify-content-flex-end-icon.svg +1 -0
- package/static/devtools/Images/flex-justify-content-flex-start-icon.svg +1 -0
- package/static/devtools/Images/flex-justify-content-space-around-icon.svg +1 -0
- package/static/devtools/Images/flex-justify-content-space-between-icon.svg +1 -0
- package/static/devtools/Images/flex-justify-content-space-evenly-icon.svg +1 -0
- package/static/devtools/Images/ic_checkmark_16x16.svg +3 -0
- package/static/devtools/Images/ic_delete_filter.svg +1 -0
- package/static/devtools/Images/ic_delete_list.svg +1 -0
- package/static/devtools/Images/ic_info_black_18dp.svg +1 -0
- package/static/devtools/Images/ic_page_next_16x16_icon.svg +1 -0
- package/static/devtools/Images/ic_page_prev_16x16_icon.svg +1 -0
- package/static/devtools/Images/ic_redo_16x16_icon.svg +1 -0
- package/static/devtools/Images/ic_show_node_16x16.svg +4 -0
- package/static/devtools/Images/ic_suggest_color.svg +6 -0
- package/static/devtools/Images/ic_undo_16x16_icon.svg +1 -0
- package/static/devtools/Images/ic_warning_black_18dp.svg +1 -0
- package/static/devtools/Images/issue-text-icon.svg +1 -0
- package/static/devtools/Images/largeIcons.svg +1 -0
- package/static/devtools/Images/lighthouse_logo.svg +1 -0
- package/static/devtools/Images/link_icon.svg +1 -0
- package/static/devtools/Images/mediumIcons.svg +1 -0
- package/static/devtools/Images/navigationControls.png +0 -0
- package/static/devtools/Images/navigationControls_2x.png +0 -0
- package/static/devtools/Images/network_panel_icon.svg +1 -0
- package/static/devtools/Images/nodeIcon.avif +0 -0
- package/static/devtools/Images/node_search_icon.svg +1 -0
- package/static/devtools/Images/popoverArrows.png +0 -0
- package/static/devtools/Images/profileGroupIcon.png +0 -0
- package/static/devtools/Images/profileIcon.png +0 -0
- package/static/devtools/Images/profileSmallIcon.png +0 -0
- package/static/devtools/Images/radioDot-dark-theme.png +0 -0
- package/static/devtools/Images/radioDot.png +0 -0
- package/static/devtools/Images/refresh_12x12_icon.svg +1 -0
- package/static/devtools/Images/resizeDiagonal.svg +1 -0
- package/static/devtools/Images/resizeHorizontal.svg +1 -0
- package/static/devtools/Images/resizeVertical.svg +1 -0
- package/static/devtools/Images/resourceCSSIcon.png +0 -0
- package/static/devtools/Images/resourceDocumentIcon.png +0 -0
- package/static/devtools/Images/resourceDocumentIconSmall.png +0 -0
- package/static/devtools/Images/resourceJSIcon.png +0 -0
- package/static/devtools/Images/resourcePlainIcon.png +0 -0
- package/static/devtools/Images/resourcePlainIconSmall.png +0 -0
- package/static/devtools/Images/resourcesTimeGraphIcon.avif +0 -0
- package/static/devtools/Images/searchNext.png +0 -0
- package/static/devtools/Images/searchPrev.png +0 -0
- package/static/devtools/Images/securityIcons.svg +1 -0
- package/static/devtools/Images/settings_14x14_icon.svg +1 -0
- package/static/devtools/Images/smallIcons.svg +1 -0
- package/static/devtools/Images/sources_panel_icon.svg +1 -0
- package/static/devtools/Images/speech.png +0 -0
- package/static/devtools/Images/toolbarResizerVertical.png +0 -0
- package/static/devtools/Images/touchCursor.png +0 -0
- package/static/devtools/Images/touchCursor_2x.png +0 -0
- package/static/devtools/Images/treeoutlineTriangles.svg +1 -0
- package/static/devtools/Images/warning_icon.svg +1 -0
- package/static/devtools/Images/whatsnew.avif +0 -0
- package/static/devtools/Tests.js +1654 -0
- package/static/devtools/accessibility/accessibility-legacy.js +1 -0
- package/static/devtools/accessibility/accessibility-meta.js +1 -0
- package/static/devtools/accessibility/accessibility.js +1 -0
- package/static/devtools/accessibility/accessibility_module.js +1 -0
- package/static/devtools/accessibility_test_runner/accessibility_test_runner.js +77 -0
- package/static/devtools/accessibility_test_runner/accessibility_test_runner_module.js +0 -0
- package/static/devtools/animation/animation-legacy.js +1 -0
- package/static/devtools/animation/animation-meta.js +1 -0
- package/static/devtools/animation/animation.js +1 -0
- package/static/devtools/animation/animation_module.js +1 -0
- package/static/devtools/application_test_runner/AppcacheTestRunner.js +220 -0
- package/static/devtools/application_test_runner/CacheStorageTestRunner.js +286 -0
- package/static/devtools/application_test_runner/IndexedDBTestRunner.js +476 -0
- package/static/devtools/application_test_runner/ResourceTreeTestRunner.js +99 -0
- package/static/devtools/application_test_runner/ResourcesTestRunner.js +167 -0
- package/static/devtools/application_test_runner/ServiceWorkersTestRunner.js +131 -0
- package/static/devtools/application_test_runner/application_test_runner.js +10 -0
- package/static/devtools/application_test_runner/application_test_runner_module.js +0 -0
- package/static/devtools/axe_core_test_runner/axe_core_test_runner.js +174 -0
- package/static/devtools/axe_core_test_runner/axe_core_test_runner_module.js +0 -0
- package/static/devtools/bindings/bindings-legacy.js +1 -0
- package/static/devtools/bindings/bindings.js +1 -0
- package/static/devtools/bindings_test_runner/AutomappingTestRunner.js +130 -0
- package/static/devtools/bindings_test_runner/BindingsTestRunner.js +238 -0
- package/static/devtools/bindings_test_runner/IsolatedFilesystemTestRunner.js +287 -0
- package/static/devtools/bindings_test_runner/OverridesTestRunner.js +26 -0
- package/static/devtools/bindings_test_runner/PersistenceTestRunner.js +109 -0
- package/static/devtools/bindings_test_runner/bindings_test_runner.js +9 -0
- package/static/devtools/bindings_test_runner/bindings_test_runner_module.js +0 -0
- package/static/devtools/browser_debugger/browser_debugger-legacy.js +1 -0
- package/static/devtools/browser_debugger/browser_debugger-meta.js +1 -0
- package/static/devtools/browser_debugger/browser_debugger.js +1 -0
- package/static/devtools/browser_debugger/browser_debugger_module.js +1 -0
- package/static/devtools/browser_sdk/browser_sdk-meta.js +1 -0
- package/static/devtools/browser_sdk/browser_sdk.js +1 -0
- package/static/devtools/changes/changes-legacy.js +1 -0
- package/static/devtools/changes/changes-meta.js +1 -0
- package/static/devtools/changes/changes.js +1 -0
- package/static/devtools/changes/changes_module.js +1 -0
- package/static/devtools/client_variations/client_variations.js +1 -0
- package/static/devtools/client_variations/client_variations_module.js +0 -0
- package/static/devtools/cm/cm.js +1 -0
- package/static/devtools/cm/cm_module.js +1 -0
- package/static/devtools/cm_headless/cm_headless.js +1 -0
- package/static/devtools/color_picker/color_picker-legacy.js +1 -0
- package/static/devtools/color_picker/color_picker.js +1 -0
- package/static/devtools/color_picker/color_picker_module.js +1 -0
- package/static/devtools/common/common-legacy.js +1 -0
- package/static/devtools/common/common.js +1 -0
- package/static/devtools/component_helpers/component_helpers.js +1 -0
- package/static/devtools/components/components-legacy.js +1 -0
- package/static/devtools/components/components.js +1 -0
- package/static/devtools/console/console-legacy.js +1 -0
- package/static/devtools/console/console-meta.js +1 -0
- package/static/devtools/console/console.js +6 -0
- package/static/devtools/console/console_module.js +1 -0
- package/static/devtools/console_counters/console_counters-legacy.js +1 -0
- package/static/devtools/console_counters/console_counters.js +1 -0
- package/static/devtools/console_test_runner/console_test_runner.js +696 -0
- package/static/devtools/console_test_runner/console_test_runner_module.js +0 -0
- package/static/devtools/cookie_table/cookie_table-legacy.js +1 -0
- package/static/devtools/cookie_table/cookie_table.js +1 -0
- package/static/devtools/cookie_table/cookie_table_module.js +1 -0
- package/static/devtools/coverage/coverage-legacy.js +1 -0
- package/static/devtools/coverage/coverage-meta.js +1 -0
- package/static/devtools/coverage/coverage.js +1 -0
- package/static/devtools/coverage/coverage_module.js +1 -0
- package/static/devtools/coverage_test_runner/coverage_test_runner.js +151 -0
- package/static/devtools/coverage_test_runner/coverage_test_runner_module.js +0 -0
- package/static/devtools/cpu_profiler_test_runner/cpu_profiler_test_runner.js +72 -0
- package/static/devtools/cpu_profiler_test_runner/cpu_profiler_test_runner_module.js +0 -0
- package/static/devtools/css_overview/css_overview-meta.js +1 -0
- package/static/devtools/css_overview/css_overview.js +146 -0
- package/static/devtools/css_overview/css_overview_module.js +1 -0
- package/static/devtools/data_grid/data_grid-legacy.js +1 -0
- package/static/devtools/data_grid/data_grid.js +1 -0
- package/static/devtools/data_grid/data_grid_module.js +1 -0
- package/static/devtools/data_grid_test_runner/data_grid_test_runner.js +78 -0
- package/static/devtools/data_grid_test_runner/data_grid_test_runner_module.js +0 -0
- package/static/devtools/developer_resources/developer_resources-legacy.js +1 -0
- package/static/devtools/developer_resources/developer_resources-meta.js +1 -0
- package/static/devtools/developer_resources/developer_resources.js +1 -0
- package/static/devtools/developer_resources/developer_resources_module.js +1 -0
- package/static/devtools/device_mode_test_runner/device_mode_test_runner.js +45 -0
- package/static/devtools/device_mode_test_runner/device_mode_test_runner_module.js +0 -0
- package/static/devtools/devtools_app.html +20 -0
- package/static/devtools/devtools_app.js +1 -0
- package/static/devtools/devtools_compatibility.js +1546 -0
- package/static/devtools/diff/diff-legacy.js +1 -0
- package/static/devtools/diff/diff.js +1 -0
- package/static/devtools/diff/diff_module.js +0 -0
- package/static/devtools/dom_extension/dom_extension.js +1 -0
- package/static/devtools/elements/elements-legacy.js +1 -0
- package/static/devtools/elements/elements-meta.js +1 -0
- package/static/devtools/elements/elements.js +469 -0
- package/static/devtools/elements/elements_module.js +1 -0
- package/static/devtools/elements_test_runner/EditDOMTestRunner.js +78 -0
- package/static/devtools/elements_test_runner/ElementsPanelShadowSelectionOnRefreshTestRunner.js +39 -0
- package/static/devtools/elements_test_runner/ElementsTestRunner.js +1280 -0
- package/static/devtools/elements_test_runner/SetOuterHTMLTestRunner.js +115 -0
- package/static/devtools/elements_test_runner/StylesUpdateLinksTestRunner.js +134 -0
- package/static/devtools/elements_test_runner/elements_test_runner.js +9 -0
- package/static/devtools/elements_test_runner/elements_test_runner_module.js +0 -0
- package/static/devtools/emulated_devices/emulated_devices_module.js +0 -0
- package/static/devtools/emulated_devices/optimized/MotoG4-landscape.avif +0 -0
- package/static/devtools/emulated_devices/optimized/MotoG4-portrait.avif +0 -0
- package/static/devtools/emulated_devices/optimized/Nexus5X-landscape.avif +0 -0
- package/static/devtools/emulated_devices/optimized/Nexus5X-portrait.avif +0 -0
- package/static/devtools/emulated_devices/optimized/Nexus6P-landscape.avif +0 -0
- package/static/devtools/emulated_devices/optimized/Nexus6P-portrait.avif +0 -0
- package/static/devtools/emulated_devices/optimized/google-nexus-5-horizontal-default-1x.avif +0 -0
- package/static/devtools/emulated_devices/optimized/google-nexus-5-horizontal-default-2x.avif +0 -0
- package/static/devtools/emulated_devices/optimized/google-nexus-5-horizontal-keyboard-1x.avif +0 -0
- package/static/devtools/emulated_devices/optimized/google-nexus-5-horizontal-keyboard-2x.avif +0 -0
- package/static/devtools/emulated_devices/optimized/google-nexus-5-horizontal-navigation-1x.avif +0 -0
- package/static/devtools/emulated_devices/optimized/google-nexus-5-horizontal-navigation-2x.avif +0 -0
- package/static/devtools/emulated_devices/optimized/google-nexus-5-vertical-default-1x.avif +0 -0
- package/static/devtools/emulated_devices/optimized/google-nexus-5-vertical-default-2x.avif +0 -0
- package/static/devtools/emulated_devices/optimized/google-nexus-5-vertical-keyboard-1x.avif +0 -0
- package/static/devtools/emulated_devices/optimized/google-nexus-5-vertical-keyboard-2x.avif +0 -0
- package/static/devtools/emulated_devices/optimized/google-nexus-5-vertical-navigation-1x.avif +0 -0
- package/static/devtools/emulated_devices/optimized/google-nexus-5-vertical-navigation-2x.avif +0 -0
- package/static/devtools/emulated_devices/optimized/google-nexus-5x-horizontal-default-1x.avif +0 -0
- package/static/devtools/emulated_devices/optimized/google-nexus-5x-horizontal-default-2x.avif +0 -0
- package/static/devtools/emulated_devices/optimized/google-nexus-5x-horizontal-keyboard-1x.avif +0 -0
- package/static/devtools/emulated_devices/optimized/google-nexus-5x-horizontal-keyboard-2x.avif +0 -0
- package/static/devtools/emulated_devices/optimized/google-nexus-5x-horizontal-navigation-1x.avif +0 -0
- package/static/devtools/emulated_devices/optimized/google-nexus-5x-horizontal-navigation-2x.avif +0 -0
- package/static/devtools/emulated_devices/optimized/google-nexus-5x-vertical-default-1x.avif +0 -0
- package/static/devtools/emulated_devices/optimized/google-nexus-5x-vertical-default-2x.avif +0 -0
- package/static/devtools/emulated_devices/optimized/google-nexus-5x-vertical-keyboard-1x.avif +0 -0
- package/static/devtools/emulated_devices/optimized/google-nexus-5x-vertical-keyboard-2x.avif +0 -0
- package/static/devtools/emulated_devices/optimized/google-nexus-5x-vertical-navigation-1x.avif +0 -0
- package/static/devtools/emulated_devices/optimized/google-nexus-5x-vertical-navigation-2x.avif +0 -0
- package/static/devtools/emulated_devices/optimized/iPad-landscape.avif +0 -0
- package/static/devtools/emulated_devices/optimized/iPad-portrait.avif +0 -0
- package/static/devtools/emulated_devices/optimized/iPhone5-landscape.avif +0 -0
- package/static/devtools/emulated_devices/optimized/iPhone5-portrait.avif +0 -0
- package/static/devtools/emulated_devices/optimized/iPhone6-landscape.avif +0 -0
- package/static/devtools/emulated_devices/optimized/iPhone6-portrait.avif +0 -0
- package/static/devtools/emulated_devices/optimized/iPhone6Plus-landscape.avif +0 -0
- package/static/devtools/emulated_devices/optimized/iPhone6Plus-portrait.avif +0 -0
- package/static/devtools/emulation/emulation-legacy.js +1 -0
- package/static/devtools/emulation/emulation-meta.js +1 -0
- package/static/devtools/emulation/emulation.js +1 -0
- package/static/devtools/event_listeners/event_listeners-legacy.js +1 -0
- package/static/devtools/event_listeners/event_listeners.js +1 -0
- package/static/devtools/event_listeners/event_listeners_module.js +1 -0
- package/static/devtools/extensions/extensions-legacy.js +1 -0
- package/static/devtools/extensions/extensions.js +1 -0
- package/static/devtools/extensions_test_runner/ExtensionsNetworkTestRunner.js +27 -0
- package/static/devtools/extensions_test_runner/ExtensionsTestRunner.js +68 -0
- package/static/devtools/extensions_test_runner/extensions_test_runner.js +6 -0
- package/static/devtools/extensions_test_runner/extensions_test_runner_module.js +0 -0
- package/static/devtools/formatter/formatter-legacy.js +1 -0
- package/static/devtools/formatter/formatter.js +1 -0
- package/static/devtools/formatter/formatter_module.js +0 -0
- package/static/devtools/formatter_worker/FormatterActions.js +1 -0
- package/static/devtools/formatter_worker/formatter_worker-entrypoint.js +1 -0
- package/static/devtools/formatter_worker/formatter_worker.js +1 -0
- package/static/devtools/har_importer/har_importer-legacy.js +1 -0
- package/static/devtools/har_importer/har_importer.js +1 -0
- package/static/devtools/har_importer/har_importer_module.js +0 -0
- package/static/devtools/heap_profiler_test_runner/heap_profiler_test_runner.js +740 -0
- package/static/devtools/heap_profiler_test_runner/heap_profiler_test_runner_module.js +0 -0
- package/static/devtools/heap_snapshot_model/heap_snapshot_model-legacy.js +1 -0
- package/static/devtools/heap_snapshot_model/heap_snapshot_model.js +1 -0
- package/static/devtools/heap_snapshot_model/heap_snapshot_model_module.js +0 -0
- package/static/devtools/heap_snapshot_worker/heap_snapshot_worker-entrypoint.js +1 -0
- package/static/devtools/heap_snapshot_worker/heap_snapshot_worker-legacy.js +1 -0
- package/static/devtools/heap_snapshot_worker/heap_snapshot_worker.js +1 -0
- package/static/devtools/heap_snapshot_worker/heap_snapshot_worker_module.js +0 -0
- package/static/devtools/help/help-legacy.js +1 -0
- package/static/devtools/help/help-meta.js +1 -0
- package/static/devtools/help/help.js +1 -0
- package/static/devtools/help/help_module.js +1 -0
- package/static/devtools/host/host-legacy.js +1 -0
- package/static/devtools/host/host.js +1 -0
- package/static/devtools/i18n/i18n.js +1 -0
- package/static/devtools/i18n/i18n_locales-tsconfig.json +8 -0
- package/static/devtools/i18n/locales/en-US.json +3566 -0
- package/static/devtools/inline_editor/inline_editor-legacy.js +1 -0
- package/static/devtools/inline_editor/inline_editor.js +203 -0
- package/static/devtools/inline_editor/inline_editor_module.js +1 -0
- package/static/devtools/input/input-legacy.js +1 -0
- package/static/devtools/input/input-meta.js +1 -0
- package/static/devtools/input/input.js +1 -0
- package/static/devtools/input/input_module.js +1 -0
- package/static/devtools/inspector.html +20 -0
- package/static/devtools/inspector.js +1 -0
- package/static/devtools/inspector_main/inspector_main-legacy.js +1 -0
- package/static/devtools/inspector_main/inspector_main-meta.js +1 -0
- package/static/devtools/inspector_main/inspector_main.js +1 -0
- package/static/devtools/integration_test_runner.html +14 -0
- package/static/devtools/integration_test_runner.js +2 -0
- package/static/devtools/issues/issues-legacy.js +1 -0
- package/static/devtools/issues/issues-meta.js +1 -0
- package/static/devtools/issues/issues.js +67 -0
- package/static/devtools/issues/issues_module.js +1 -0
- package/static/devtools/javascript_metadata/javascript_metadata-legacy.js +1 -0
- package/static/devtools/javascript_metadata/javascript_metadata.js +1 -0
- package/static/devtools/javascript_metadata/javascript_metadata_module.js +0 -0
- package/static/devtools/js_app.html +20 -0
- package/static/devtools/js_app.js +1 -0
- package/static/devtools/js_main/js_main-legacy.js +1 -0
- package/static/devtools/js_main/js_main.js +1 -0
- package/static/devtools/js_profiler/js_profiler-meta.js +1 -0
- package/static/devtools/js_profiler/js_profiler.js +1 -0
- package/static/devtools/js_profiler/js_profiler_module.js +0 -0
- package/static/devtools/layer_viewer/layer_viewer-legacy.js +1 -0
- package/static/devtools/layer_viewer/layer_viewer.js +1 -0
- package/static/devtools/layer_viewer/layer_viewer_module.js +1 -0
- package/static/devtools/layers/layers-legacy.js +1 -0
- package/static/devtools/layers/layers-meta.js +1 -0
- package/static/devtools/layers/layers.js +1 -0
- package/static/devtools/layers/layers_module.js +0 -0
- package/static/devtools/layers_test_runner/layers_test_runner.js +156 -0
- package/static/devtools/layers_test_runner/layers_test_runner_module.js +0 -0
- package/static/devtools/lighthouse/lighthouse-legacy.js +1 -0
- package/static/devtools/lighthouse/lighthouse-meta.js +1 -0
- package/static/devtools/lighthouse/lighthouse.js +70 -0
- package/static/devtools/lighthouse/lighthouse_module.js +1 -0
- package/static/devtools/lighthouse_test_runner/lighthouse_test_runner.js +136 -0
- package/static/devtools/lighthouse_test_runner/lighthouse_test_runner_module.js +0 -0
- package/static/devtools/lighthouse_worker/LighthouseService.js +195 -0
- package/static/devtools/lighthouse_worker/lighthouse_worker.js +6 -0
- package/static/devtools/lighthouse_worker.js +1 -0
- package/static/devtools/linear_memory_inspector/linear_memory_inspector-legacy.js +1 -0
- package/static/devtools/linear_memory_inspector/linear_memory_inspector-meta.js +1 -0
- package/static/devtools/linear_memory_inspector/linear_memory_inspector.js +399 -0
- package/static/devtools/linear_memory_inspector/linear_memory_inspector_module.js +0 -0
- package/static/devtools/main/main-legacy.js +1 -0
- package/static/devtools/main/main.js +1 -0
- package/static/devtools/media/media-legacy.js +1 -0
- package/static/devtools/media/media-meta.js +1 -0
- package/static/devtools/media/media.js +1 -0
- package/static/devtools/media/media_module.js +1 -0
- package/static/devtools/mobile_throttling/mobile_throttling-legacy.js +1 -0
- package/static/devtools/mobile_throttling/mobile_throttling-meta.js +1 -0
- package/static/devtools/mobile_throttling/mobile_throttling.js +1 -0
- package/static/devtools/ndb_app.html +20 -0
- package/static/devtools/ndb_app.js +1 -0
- package/static/devtools/network/network-legacy.js +1 -0
- package/static/devtools/network/network-meta.js +1 -0
- package/static/devtools/network/network.js +72 -0
- package/static/devtools/network/network_module.js +1 -0
- package/static/devtools/network_test_runner/network_test_runner.js +280 -0
- package/static/devtools/network_test_runner/network_test_runner_module.js +0 -0
- package/static/devtools/node_app.html +20 -0
- package/static/devtools/node_app.js +1 -0
- package/static/devtools/node_debugger/node_debugger-meta.js +1 -0
- package/static/devtools/node_debugger/node_debugger.js +1 -0
- package/static/devtools/node_debugger/node_debugger_module.js +0 -0
- package/static/devtools/node_main/node_main-legacy.js +1 -0
- package/static/devtools/node_main/node_main-meta.js +1 -0
- package/static/devtools/node_main/node_main.js +1 -0
- package/static/devtools/object_ui/object_ui-legacy.js +1 -0
- package/static/devtools/object_ui/object_ui.js +3 -0
- package/static/devtools/object_ui/object_ui_module.js +1 -0
- package/static/devtools/perf_ui/perf_ui-legacy.js +1 -0
- package/static/devtools/perf_ui/perf_ui.js +152 -0
- package/static/devtools/perf_ui/perf_ui_module.js +1 -0
- package/static/devtools/performance_monitor/performance_monitor-legacy.js +1 -0
- package/static/devtools/performance_monitor/performance_monitor-meta.js +1 -0
- package/static/devtools/performance_monitor/performance_monitor.js +1 -0
- package/static/devtools/performance_monitor/performance_monitor_module.js +1 -0
- package/static/devtools/performance_test_runner/TimelineDataTestRunner.js +5375 -0
- package/static/devtools/performance_test_runner/TimelineTestRunner.js +446 -0
- package/static/devtools/performance_test_runner/performance_test_runner.js +6 -0
- package/static/devtools/performance_test_runner/performance_test_runner_module.js +0 -0
- package/static/devtools/persistence/persistence-legacy.js +1 -0
- package/static/devtools/persistence/persistence-meta.js +1 -0
- package/static/devtools/persistence/persistence.js +1 -0
- package/static/devtools/platform/platform.js +1 -0
- package/static/devtools/profiler/profiler-legacy.js +1 -0
- package/static/devtools/profiler/profiler-meta.js +1 -0
- package/static/devtools/profiler/profiler.js +8 -0
- package/static/devtools/profiler/profiler_module.js +1 -0
- package/static/devtools/protocol_client/protocol_client-legacy.js +1 -0
- package/static/devtools/protocol_client/protocol_client.js +1 -0
- package/static/devtools/protocol_monitor/protocol_monitor-legacy.js +1 -0
- package/static/devtools/protocol_monitor/protocol_monitor-meta.js +1 -0
- package/static/devtools/protocol_monitor/protocol_monitor.js +1 -0
- package/static/devtools/protocol_monitor/protocol_monitor_module.js +1 -0
- package/static/devtools/quick_open/quick_open-legacy.js +1 -0
- package/static/devtools/quick_open/quick_open.js +1 -0
- package/static/devtools/quick_open/quick_open_module.js +1 -0
- package/static/devtools/recorder/recorder.js +1 -0
- package/static/devtools/resources/resources-legacy.js +1 -0
- package/static/devtools/resources/resources-meta.js +1 -0
- package/static/devtools/resources/resources.js +28 -0
- package/static/devtools/resources/resources_module.js +1 -0
- package/static/devtools/root/root-legacy.js +1 -0
- package/static/devtools/root/root.js +1 -0
- package/static/devtools/screencast/screencast-legacy.js +1 -0
- package/static/devtools/screencast/screencast.js +1 -0
- package/static/devtools/sdk/sdk-legacy.js +1 -0
- package/static/devtools/sdk/sdk.js +2 -0
- package/static/devtools/sdk_test_runner/sdk_test_runner.js +297 -0
- package/static/devtools/sdk_test_runner/sdk_test_runner_module.js +0 -0
- package/static/devtools/search/search-legacy.js +1 -0
- package/static/devtools/search/search.js +1 -0
- package/static/devtools/search/search_module.js +1 -0
- package/static/devtools/security/security-legacy.js +1 -0
- package/static/devtools/security/security-meta.js +1 -0
- package/static/devtools/security/security.js +1 -0
- package/static/devtools/security/security_module.js +1 -0
- package/static/devtools/security_test_runner/security_test_runner.js +32 -0
- package/static/devtools/security_test_runner/security_test_runner_module.js +0 -0
- package/static/devtools/services/services-legacy.js +1 -0
- package/static/devtools/services/services.js +1 -0
- package/static/devtools/settings/settings-legacy.js +1 -0
- package/static/devtools/settings/settings-meta.js +1 -0
- package/static/devtools/settings/settings.js +1 -0
- package/static/devtools/settings/settings_module.js +1 -0
- package/static/devtools/shell.js +1 -0
- package/static/devtools/snippets/snippets-legacy.js +1 -0
- package/static/devtools/snippets/snippets.js +1 -0
- package/static/devtools/snippets/snippets_module.js +0 -0
- package/static/devtools/source_frame/source_frame-legacy.js +1 -0
- package/static/devtools/source_frame/source_frame.js +1 -0
- package/static/devtools/source_frame/source_frame_module.js +1 -0
- package/static/devtools/sources/sources-legacy.js +1 -0
- package/static/devtools/sources/sources-meta.js +1 -0
- package/static/devtools/sources/sources.js +13 -0
- package/static/devtools/sources/sources_module.js +1 -0
- package/static/devtools/sources_test_runner/AutocompleteTestRunner.js +46 -0
- package/static/devtools/sources_test_runner/DebuggerTestRunner.js +895 -0
- package/static/devtools/sources_test_runner/EditorTestRunner.js +237 -0
- package/static/devtools/sources_test_runner/LiveEditTestRunner.js +33 -0
- package/static/devtools/sources_test_runner/SearchTestRunner.js +158 -0
- package/static/devtools/sources_test_runner/SourcesTestRunner.js +173 -0
- package/static/devtools/sources_test_runner/sources_test_runner.js +10 -0
- package/static/devtools/sources_test_runner/sources_test_runner_module.js +0 -0
- package/static/devtools/startup/startup.js +1 -0
- package/static/devtools/test_runner/test_runner.js +1 -0
- package/static/devtools/text_editor/text_editor-legacy.js +1 -0
- package/static/devtools/text_editor/text_editor.js +1 -0
- package/static/devtools/text_editor/text_editor_module.js +1 -0
- package/static/devtools/text_utils/text_utils-legacy.js +1 -0
- package/static/devtools/text_utils/text_utils.js +1 -0
- package/static/devtools/theme_support/theme_support.js +1 -0
- package/static/devtools/third_party/acorn/acorn-tsconfig.json +8 -0
- package/static/devtools/third_party/acorn/acorn.js +1 -0
- package/static/devtools/third_party/acorn/package/dist/acorn.d.ts +209 -0
- package/static/devtools/third_party/acorn/package/dist/acorn.mjs +5261 -0
- package/static/devtools/third_party/acorn/package/dist/acorn.mjs.d.ts +2 -0
- package/static/devtools/third_party/acorn/package/dist/acorn.mjs.map +1 -0
- package/static/devtools/third_party/acorn-loose/acorn-loose-tsconfig.json +8 -0
- package/static/devtools/third_party/acorn-loose/package/dist/acorn-loose.d.ts +16 -0
- package/static/devtools/third_party/acorn-loose/package/dist/acorn-loose.mjs +1418 -0
- package/static/devtools/third_party/axe-core/axe.js +16423 -0
- package/static/devtools/third_party/chromium/chromium-tsconfig.json +8 -0
- package/static/devtools/third_party/chromium/client-variations/ClientVariations.d.ts +13 -0
- package/static/devtools/third_party/chromium/client-variations/ClientVariations.js +27 -0
- package/static/devtools/third_party/codemirror/codemirror-tsconfig.json +72 -0
- package/static/devtools/third_party/codemirror/package/addon/comment/comment.d.ts +4 -0
- package/static/devtools/third_party/codemirror/package/addon/comment/comment.js +211 -0
- package/static/devtools/third_party/codemirror/package/addon/edit/closebrackets.d.ts +1 -0
- package/static/devtools/third_party/codemirror/package/addon/edit/closebrackets.js +201 -0
- package/static/devtools/third_party/codemirror/package/addon/edit/matchbrackets.d.ts +1 -0
- package/static/devtools/third_party/codemirror/package/addon/edit/matchbrackets.js +158 -0
- package/static/devtools/third_party/codemirror/package/addon/fold/brace-fold.d.ts +1 -0
- package/static/devtools/third_party/codemirror/package/addon/fold/brace-fold.js +105 -0
- package/static/devtools/third_party/codemirror/package/addon/fold/foldcode.d.ts +1 -0
- package/static/devtools/third_party/codemirror/package/addon/fold/foldcode.js +157 -0
- package/static/devtools/third_party/codemirror/package/addon/fold/foldgutter.d.ts +1 -0
- package/static/devtools/third_party/codemirror/package/addon/fold/foldgutter.js +163 -0
- package/static/devtools/third_party/codemirror/package/addon/mode/multiplex.d.ts +1 -0
- package/static/devtools/third_party/codemirror/package/addon/mode/multiplex.js +131 -0
- package/static/devtools/third_party/codemirror/package/addon/mode/overlay.d.ts +1 -0
- package/static/devtools/third_party/codemirror/package/addon/mode/overlay.js +90 -0
- package/static/devtools/third_party/codemirror/package/addon/mode/simple.d.ts +1 -0
- package/static/devtools/third_party/codemirror/package/addon/mode/simple.js +216 -0
- package/static/devtools/third_party/codemirror/package/addon/runmode/runmode-standalone.d.ts +1 -0
- package/static/devtools/third_party/codemirror/package/addon/runmode/runmode-standalone.js +333 -0
- package/static/devtools/third_party/codemirror/package/addon/selection/active-line.d.ts +1 -0
- package/static/devtools/third_party/codemirror/package/addon/selection/active-line.js +72 -0
- package/static/devtools/third_party/codemirror/package/addon/selection/mark-selection.d.ts +1 -0
- package/static/devtools/third_party/codemirror/package/addon/selection/mark-selection.js +119 -0
- package/static/devtools/third_party/codemirror/package/lib/codemirror.d.ts +1 -0
- package/static/devtools/third_party/codemirror/package/lib/codemirror.js +9800 -0
- package/static/devtools/third_party/codemirror/package/mode/clike/clike.d.ts +4 -0
- package/static/devtools/third_party/codemirror/package/mode/clike/clike.js +935 -0
- package/static/devtools/third_party/codemirror/package/mode/clojure/clojure.d.ts +4 -0
- package/static/devtools/third_party/codemirror/package/mode/clojure/clojure.js +292 -0
- package/static/devtools/third_party/codemirror/package/mode/coffeescript/coffeescript.d.ts +4 -0
- package/static/devtools/third_party/codemirror/package/mode/coffeescript/coffeescript.js +359 -0
- package/static/devtools/third_party/codemirror/package/mode/css/css.d.ts +1 -0
- package/static/devtools/third_party/codemirror/package/mode/css/css.js +864 -0
- package/static/devtools/third_party/codemirror/package/mode/htmlembedded/htmlembedded.d.ts +1 -0
- package/static/devtools/third_party/codemirror/package/mode/htmlembedded/htmlembedded.js +37 -0
- package/static/devtools/third_party/codemirror/package/mode/htmlmixed/htmlmixed.d.ts +1 -0
- package/static/devtools/third_party/codemirror/package/mode/htmlmixed/htmlmixed.js +153 -0
- package/static/devtools/third_party/codemirror/package/mode/javascript/javascript.d.ts +1 -0
- package/static/devtools/third_party/codemirror/package/mode/javascript/javascript.js +942 -0
- package/static/devtools/third_party/codemirror/package/mode/jsx/jsx.d.ts +4 -0
- package/static/devtools/third_party/codemirror/package/mode/jsx/jsx.js +148 -0
- package/static/devtools/third_party/codemirror/package/mode/livescript/livescript.d.ts +4 -0
- package/static/devtools/third_party/codemirror/package/mode/livescript/livescript.js +280 -0
- package/static/devtools/third_party/codemirror/package/mode/markdown/markdown.d.ts +1 -0
- package/static/devtools/third_party/codemirror/package/mode/markdown/markdown.js +886 -0
- package/static/devtools/third_party/codemirror/package/mode/php/php.d.ts +1 -0
- package/static/devtools/third_party/codemirror/package/mode/php/php.js +234 -0
- package/static/devtools/third_party/codemirror/package/mode/python/python.d.ts +1 -0
- package/static/devtools/third_party/codemirror/package/mode/python/python.js +399 -0
- package/static/devtools/third_party/codemirror/package/mode/shell/shell.d.ts +1 -0
- package/static/devtools/third_party/codemirror/package/mode/shell/shell.js +168 -0
- package/static/devtools/third_party/codemirror/package/mode/wast/wast.d.ts +1 -0
- package/static/devtools/third_party/codemirror/package/mode/wast/wast.js +41 -0
- package/static/devtools/third_party/codemirror/package/mode/xml/xml.d.ts +1 -0
- package/static/devtools/third_party/codemirror/package/mode/xml/xml.js +413 -0
- package/static/devtools/third_party/i18n/bundle-tsconfig.json +8 -0
- package/static/devtools/third_party/i18n/i18n.d.ts +108 -0
- package/static/devtools/third_party/i18n/i18n.js +4336 -0
- package/static/devtools/third_party/lighthouse/lighthouse-dt-bundle.d.ts +1 -0
- package/static/devtools/third_party/lighthouse/lighthouse-dt-bundle.js +1140 -0
- package/static/devtools/third_party/lighthouse/lighthouse-tsconfig.json +10 -0
- package/static/devtools/third_party/lighthouse/locales/ar-XB.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/ar.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/bg.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/ca.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/cs.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/da.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/de.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/el.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/en-GB.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/en-US.json +2297 -0
- package/static/devtools/third_party/lighthouse/locales/en-XA.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/en-XL.json +2297 -0
- package/static/devtools/third_party/lighthouse/locales/es-419.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/es.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/fi.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/fil.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/fr.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/he.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/hi.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/hr.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/hu.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/id.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/it.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/ja.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/ko.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/lt.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/lv.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/nl.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/no.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/pl.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/pt-PT.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/pt.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/ro.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/ru.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/sk.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/sl.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/sr-Latn.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/sr.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/sv.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/ta.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/te.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/th.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/tr.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/uk.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/vi.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/zh-HK.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/zh-TW.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/zh.json +2066 -0
- package/static/devtools/third_party/lighthouse/report-assets/report-generator.d.ts +1 -0
- package/static/devtools/third_party/lighthouse/report-assets/report-generator.js +167 -0
- package/static/devtools/third_party/lighthouse/report-assets/report.d.ts +1 -0
- package/static/devtools/third_party/lighthouse/report-assets/report.js +5032 -0
- package/static/devtools/third_party/lit-html/lit-html-tsconfig.json +22 -0
- package/static/devtools/third_party/lit-html/lit-html.js +120 -0
- package/static/devtools/third_party/lit-html/package/directives/class-map.d.ts +28 -0
- package/static/devtools/third_party/lit-html/package/directives/class-map.js +101 -0
- package/static/devtools/third_party/lit-html/package/directives/class-map.js.map +1 -0
- package/static/devtools/third_party/lit-html/package/directives/if-defined.d.ts +22 -0
- package/static/devtools/third_party/lit-html/package/directives/if-defined.js +37 -0
- package/static/devtools/third_party/lit-html/package/directives/if-defined.js.map +1 -0
- package/static/devtools/third_party/lit-html/package/directives/live.d.ts +38 -0
- package/static/devtools/third_party/lit-html/package/directives/live.js +73 -0
- package/static/devtools/third_party/lit-html/package/directives/live.js.map +1 -0
- package/static/devtools/third_party/lit-html/package/directives/repeat.d.ts +37 -0
- package/static/devtools/third_party/lit-html/package/directives/repeat.js +415 -0
- package/static/devtools/third_party/lit-html/package/directives/repeat.js.map +1 -0
- package/static/devtools/third_party/lit-html/package/directives/style-map.d.ts +36 -0
- package/static/devtools/third_party/lit-html/package/directives/style-map.js +78 -0
- package/static/devtools/third_party/lit-html/package/directives/style-map.js.map +1 -0
- package/static/devtools/third_party/lit-html/package/lib/default-template-processor.d.ts +39 -0
- package/static/devtools/third_party/lit-html/package/lib/default-template-processor.js +52 -0
- package/static/devtools/third_party/lit-html/package/lib/default-template-processor.js.map +1 -0
- package/static/devtools/third_party/lit-html/package/lib/directive.d.ts +59 -0
- package/static/devtools/third_party/lit-html/package/lib/directive.js +63 -0
- package/static/devtools/third_party/lit-html/package/lib/directive.js.map +1 -0
- package/static/devtools/third_party/lit-html/package/lib/dom.d.ts +29 -0
- package/static/devtools/third_party/lit-html/package/lib/dom.js +44 -0
- package/static/devtools/third_party/lit-html/package/lib/dom.js.map +1 -0
- package/static/devtools/third_party/lit-html/package/lib/part.d.ts +46 -0
- package/static/devtools/third_party/lit-html/package/lib/part.js +23 -0
- package/static/devtools/third_party/lit-html/package/lib/part.js.map +1 -0
- package/static/devtools/third_party/lit-html/package/lib/parts.d.ts +148 -0
- package/static/devtools/third_party/lit-html/package/lib/parts.js +476 -0
- package/static/devtools/third_party/lit-html/package/lib/parts.js.map +1 -0
- package/static/devtools/third_party/lit-html/package/lib/render.d.ts +33 -0
- package/static/devtools/third_party/lit-html/package/lib/render.js +43 -0
- package/static/devtools/third_party/lit-html/package/lib/render.js.map +1 -0
- package/static/devtools/third_party/lit-html/package/lib/template-factory.d.ts +57 -0
- package/static/devtools/third_party/lit-html/package/lib/template-factory.js +48 -0
- package/static/devtools/third_party/lit-html/package/lib/template-factory.js.map +1 -0
- package/static/devtools/third_party/lit-html/package/lib/template-instance.d.ts +30 -0
- package/static/devtools/third_party/lit-html/package/lib/template-instance.js +134 -0
- package/static/devtools/third_party/lit-html/package/lib/template-instance.js.map +1 -0
- package/static/devtools/third_party/lit-html/package/lib/template-result.d.ts +42 -0
- package/static/devtools/third_party/lit-html/package/lib/template-result.js +131 -0
- package/static/devtools/third_party/lit-html/package/lib/template-result.js.map +1 -0
- package/static/devtools/third_party/lit-html/package/lib/template.d.ts +92 -0
- package/static/devtools/third_party/lit-html/package/lib/template.js +215 -0
- package/static/devtools/third_party/lit-html/package/lib/template.js.map +1 -0
- package/static/devtools/third_party/lit-html/package/lit-html.d.ts +42 -0
- package/static/devtools/third_party/lit-html/package/lit-html.js +59 -0
- package/static/devtools/third_party/lit-html/package/lit-html.js.map +1 -0
- package/static/devtools/third_party/marked/marked-tsconfig.json +8 -0
- package/static/devtools/third_party/marked/marked.js +1 -0
- package/static/devtools/third_party/marked/package/lib/marked.esm.d.ts +1 -0
- package/static/devtools/third_party/marked/package/lib/marked.esm.js +2584 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/api-docs-entry.d.ts +53 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/api-docs-entry.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/api-docs-entry.js +64 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Accessibility.d.ts +176 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Accessibility.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Accessibility.js +356 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/AriaQueryHandler.d.ts +21 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/AriaQueryHandler.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/AriaQueryHandler.js +81 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Browser.d.ts +423 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Browser.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Browser.js +516 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/BrowserConnector.d.ts +39 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/BrowserConnector.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/BrowserConnector.js +76 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/BrowserWebSocketTransport.d.ts +26 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/BrowserWebSocketTransport.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/BrowserWebSocketTransport.js +30 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Connection.d.ts +120 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Connection.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Connection.js +266 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/ConnectionTransport.d.ts +22 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/ConnectionTransport.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/ConnectionTransport.js +15 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/ConsoleMessage.d.ts +72 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/ConsoleMessage.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/ConsoleMessage.js +60 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Coverage.d.ts +181 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Coverage.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Coverage.js +316 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/DOMWorld.d.ts +174 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/DOMWorld.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/DOMWorld.js +647 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Debug.d.ts +53 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Debug.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Debug.js +77 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/DeviceDescriptors.d.ts +33 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/DeviceDescriptors.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/DeviceDescriptors.js +873 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Dialog.d.ts +76 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Dialog.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Dialog.js +92 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/EmulationManager.d.ts +25 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/EmulationManager.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/EmulationManager.js +33 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Errors.d.ts +34 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Errors.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Errors.js +37 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/EvalTypes.d.ts +59 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/EvalTypes.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/EvalTypes.js +15 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/EventEmitter.d.ts +89 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/EventEmitter.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/EventEmitter.js +109 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Events.d.ts +82 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Events.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Events.js +83 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/ExecutionContext.d.ts +189 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/ExecutionContext.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/ExecutionContext.js +313 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/FileChooser.d.ts +60 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/FileChooser.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/FileChooser.js +66 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/FrameManager.d.ts +735 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/FrameManager.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/FrameManager.js +962 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/HTTPRequest.d.ts +276 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/HTTPRequest.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/HTTPRequest.js +421 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/HTTPResponse.d.ts +128 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/HTTPResponse.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/HTTPResponse.js +150 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Input.d.ts +322 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Input.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Input.js +463 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/JSHandle.d.ts +439 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/JSHandle.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/JSHandle.js +724 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/LifecycleWatcher.d.ts +62 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/LifecycleWatcher.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/LifecycleWatcher.js +145 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/NetworkManager.d.ts +80 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/NetworkManager.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/NetworkManager.js +262 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/PDFOptions.d.ts +152 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/PDFOptions.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/PDFOptions.js +31 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Page.d.ts +910 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Page.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Page.js +1343 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Product.d.ts +21 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Product.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Product.js +15 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Puppeteer.d.ts +135 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Puppeteer.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Puppeteer.js +133 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/PuppeteerViewport.d.ts +24 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/PuppeteerViewport.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/PuppeteerViewport.js +0 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/QueryHandler.d.ts +66 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/QueryHandler.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/QueryHandler.js +157 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/SecurityDetails.d.ts +61 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/SecurityDetails.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/SecurityDetails.js +72 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Target.d.ts +98 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Target.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Target.js +137 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/TimeoutSettings.d.ts +28 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/TimeoutSettings.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/TimeoutSettings.js +43 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Tracing.d.ts +47 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Tracing.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Tracing.js +94 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/USKeyboardLayout.d.ts +40 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/USKeyboardLayout.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/USKeyboardLayout.js +403 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/WebWorker.d.ts +102 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/WebWorker.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/WebWorker.js +109 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/assert.d.ts +22 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/assert.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/assert.js +24 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/fetch.d.ts +17 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/fetch.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/fetch.js +20 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/helper.d.ts +66 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/helper.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/helper.js +288 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/environment.d.ts +17 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/environment.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/environment.js +16 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/initialize-node.d.ts +18 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/initialize-node.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/initialize-node.js +39 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/initialize-web.d.ts +18 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/initialize-web.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/initialize-web.js +22 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserFetcher.d.ts +132 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserFetcher.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserFetcher.js +468 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserRunner.d.ts +40 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserRunner.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserRunner.js +197 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node/LaunchOptions.d.ts +42 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node/LaunchOptions.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node/LaunchOptions.js +0 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node/Launcher.d.ts +16 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node/Launcher.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node/Launcher.js +469 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node/NodeWebSocketTransport.d.ts +29 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node/NodeWebSocketTransport.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node/NodeWebSocketTransport.js +34 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node/PipeTransport.d.ts +31 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node/PipeTransport.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node/PipeTransport.js +61 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node/Puppeteer.d.ts +156 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node/Puppeteer.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node/Puppeteer.js +183 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node/install.d.ts +18 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node/install.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node/install.js +151 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node-puppeteer-core.d.ts +18 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node-puppeteer-core.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node-puppeteer-core.js +23 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node.d.ts +18 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node.js +22 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/revisions.d.ts +22 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/revisions.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/revisions.js +19 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/web.d.ts +18 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/web.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/web.js +22 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/vendor/mitt/src/index.d.ts +22 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/vendor/mitt/src/index.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/vendor/mitt/src/index.js +53 -0
- package/static/devtools/third_party/puppeteer/puppeteer-tsconfig.json +58 -0
- package/static/devtools/third_party/puppeteer/puppeteer.js +1 -0
- package/static/devtools/third_party/wasmparser/package/dist/esm/WasmDis.js +1595 -0
- package/static/devtools/third_party/wasmparser/package/dist/esm/WasmParser.js +3120 -0
- package/static/devtools/third_party/wasmparser/wasmparser-tsconfig.json +9 -0
- package/static/devtools/timeline/timeline-legacy.js +1 -0
- package/static/devtools/timeline/timeline-meta.js +1 -0
- package/static/devtools/timeline/timeline.js +1 -0
- package/static/devtools/timeline/timeline_module.js +1 -0
- package/static/devtools/timeline_model/timeline_model-legacy.js +1 -0
- package/static/devtools/timeline_model/timeline_model.js +1 -0
- package/static/devtools/timeline_model/timeline_model_module.js +0 -0
- package/static/devtools/toolbox.html +20 -0
- package/static/devtools/toolbox.js +1 -0
- package/static/devtools/toolbox_bootstrap/toolbox_bootstrap.js +1 -0
- package/static/devtools/ui/components/components.js +378 -0
- package/static/devtools/ui/ui-legacy.js +1 -0
- package/static/devtools/ui/ui.js +3 -0
- package/static/devtools/ui/utils/utils.js +1 -0
- package/static/devtools/wasmparser_worker/wasmparser_worker-entrypoint.js +1 -0
- package/static/devtools/wasmparser_worker/wasmparser_worker.js +1 -0
- package/static/devtools/web_audio/graph_visualizer/graph_visualizer.js +1 -0
- package/static/devtools/web_audio/web_audio-legacy.js +1 -0
- package/static/devtools/web_audio/web_audio-meta.js +1 -0
- package/static/devtools/web_audio/web_audio.js +23 -0
- package/static/devtools/web_audio/web_audio_module.js +1 -0
- package/static/devtools/webauthn/webauthn-legacy.js +1 -0
- package/static/devtools/webauthn/webauthn-meta.js +1 -0
- package/static/devtools/webauthn/webauthn.js +6 -0
- package/static/devtools/webauthn/webauthn_module.js +1 -0
- package/static/devtools/worker_app.html +20 -0
- package/static/devtools/worker_app.js +1 -0
- package/static/devtools/worker_main/worker_main-legacy.js +1 -0
- package/static/devtools/worker_main/worker_main.js +1 -0
- package/static/devtools/worker_service/worker_service.js +1 -0
- package/static/devtools/workspace/workspace-legacy.js +1 -0
- package/static/devtools/workspace/workspace.js +1 -0
- package/static/devtools/workspace_diff/workspace_diff-legacy.js +1 -0
- package/static/devtools/workspace_diff/workspace_diff.js +1 -0
- package/static/devtools/workspace_diff/workspace_diff_module.js +0 -0
- package/static/docs/swagger.json +2337 -279
- package/static/function/client.js +1037 -992
- package/build/routes/chromium/http/json-new.js +0 -23
- package/build/routes/chromium/http/json-version-get.response.json +0 -37
- package/build/routes/chromium/utils/cdp.d.ts +0 -2
- package/build/routes/chromium/utils/cdp.js +0 -14
- package/build/routes/chromium/ws/cdp-chromium.js +0 -10
- package/src/routes/chromium/http/json-list.ts +0 -50
- package/src/routes/chromium/utils/cdp.ts +0 -19
- package/build/routes/{chromium/http/content-post.query.json → chrome/http/content.post.query.json} +0 -0
- package/build/routes/{chromium/http/content-post.response.json → chrome/http/content.post.response.json} +0 -0
- package/build/routes/{chromium/http/download-post.body.json → chrome/http/download.post.body.json} +0 -0
- package/build/routes/{chromium/http/download-post.query.json → chrome/http/download.post.query.json} +0 -0
- package/build/routes/{chromium/http/download-post.response.json → chrome/http/download.post.response.json} +0 -0
- package/build/routes/{chromium/http/function-post.body.json → chrome/http/function.post.body.json} +0 -0
- package/build/routes/{chromium/http/function-post.query.json → chrome/http/function.post.query.json} +0 -0
- package/build/routes/{chromium/http/function-post.response.json → chrome/http/function.post.response.json} +0 -0
- package/build/routes/{chromium/http/json-list.response.json → chrome/http/json-list.get.response.json} +0 -0
- package/build/routes/{chromium/http/json-new.response.json → chrome/http/json-new.put.response.json} +0 -0
- package/build/routes/{chromium/http/json-protocol-get.response.json → chrome/http/json-protocol.get.response.json} +0 -0
- package/build/routes/{chromium/http/pdf-post.query.json → chrome/http/pdf.post.query.json} +0 -0
- package/build/routes/{chromium/http/pdf-post.response.json → chrome/http/pdf.post.response.json} +0 -0
- package/build/routes/{chromium/http/performance.body.json → chrome/http/performance.post.body.json} +0 -0
- package/build/routes/{chromium/http/performance.query.json → chrome/http/performance.post.query.json} +0 -0
- package/build/routes/{chromium/http/performance.response.json → chrome/http/performance.post.response.json} +0 -0
- package/build/routes/{chromium/http/scrape-post.query.json → chrome/http/scrape.post.query.json} +0 -0
- package/build/routes/{chromium/http/scrape-post.response.json → chrome/http/scrape.post.response.json} +0 -0
- package/build/routes/{chromium/http/screenshot-post.query.json → chrome/http/screenshot.post.query.json} +0 -0
- package/build/routes/{chromium/http/screenshot-post.response.json → chrome/http/screenshot.post.response.json} +0 -0
- package/build/routes/{chromium/utils/performance/child.d.ts → chrome/tests/content.spec.d.ts} +0 -0
- package/build/routes/{chromium/utils/performance/types.js → chrome/tests/download.spec.d.ts} +0 -0
- package/build/routes/{chromium/ws/cdp-chromium.query.json → chrome/ws/browser.query.json} +0 -0
- package/build/routes/{chromium/ws/playwright-chromium.query.json → chrome/ws/playwright.query.json} +0 -0
- package/build/routes/{firefox/ws/playwright-firefox.query.json → chromium/ws/playwright.query.json} +0 -0
- package/build/routes/{webkit/ws/playwright-webkit.query.json → firefox/ws/playwright.query.json} +0 -0
- package/build/routes/management/http/{config-get.d.ts → config.get.d.ts} +0 -0
- package/build/routes/management/http/{config-get.js → config.get.js} +0 -0
- package/build/routes/management/http/{config-get.response.json → config.get.response.json} +0 -0
- package/build/routes/management/http/{metrics-total-get.d.ts → metrics-total.get.d.ts} +0 -0
- package/build/routes/management/http/{metrics-total-get.js → metrics-total.get.js} +0 -0
- package/build/routes/management/http/{metrics-total-get.response.json → metrics-total.get.response.json} +0 -0
- package/build/routes/management/http/{metrics-get.d.ts → metrics.get.d.ts} +0 -0
- package/build/routes/management/http/{metrics-get.js → metrics.get.js} +0 -0
- package/build/routes/management/http/{metrics-get.response.json → metrics.get.response.json} +0 -0
- package/build/routes/management/http/{sessions-get.d.ts → sessions.get.d.ts} +0 -0
- package/build/routes/management/http/{sessions-get.js → sessions.get.js} +0 -0
- package/build/routes/management/http/{static-get.d.ts → static.get.d.ts} +0 -0
- package/build/{routes/chromium/http/json-protocol-get.d.ts → shared/json-protocol.http.d.ts} +1 -1
- package/build/{routes/chromium/http/json-version-get.d.ts → shared/json-version.http.d.ts} +1 -1
- /package/build/{routes/chromium → shared}/utils/function/client.d.ts +0 -0
- /package/build/{routes/chromium → shared}/utils/function/client.js +0 -0
- /package/build/{routes/chromium → shared}/utils/function/handler.d.ts +0 -0
- /package/build/{routes/chromium → shared}/utils/function/handler.js +0 -0
- /package/build/{routes/chromium → shared}/utils/performance/child.js +0 -0
- /package/build/{routes/chromium → shared}/utils/performance/main.d.ts +0 -0
- /package/build/{routes/chromium → shared}/utils/performance/types.d.ts +0 -0
- /package/src/routes/management/http/{config-get.ts → config.get.ts} +0 -0
- /package/src/routes/management/http/{metrics-total-get.ts → metrics-total.get.ts} +0 -0
- /package/src/routes/management/http/{metrics-get.ts → metrics.get.ts} +0 -0
- /package/src/routes/management/http/{sessions-get.ts → sessions.get.ts} +0 -0
- /package/src/{routes/chromium → shared}/utils/function/client.ts +0 -0
- /package/src/{routes/chromium → shared}/utils/performance/child.ts +0 -0
- /package/src/{routes/chromium → shared}/utils/performance/types.ts +0 -0
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import{ObjectWrapper as e,EventTarget as t,ParsedURL as s,Settings as i,Linkifier as n}from"../common/common.js";import{i18n as r}from"../i18n/i18n.js";import{SDKModel as o,ServiceWorkerManager as a,RuntimeModel as l,ChildTargetManager as d,DOMModel as h,ResourceTreeModel as c,NetworkManager as u}from"../sdk/sdk.js";import{DeviceModeModel as p,EmulatedDevices as g,InspectedPagePlaceholder as m}from"../emulation/emulation.js";import{userMetrics as _,UserMetrics as f}from"../host/host.js";import{Runtime as b}from"../root/root.js";import{UIUtils as y,Tooltip as v,InspectorView as w,Toolbar as C,ARIAUtils as S,Fragment as T,Widget as x,XLink as L,Dialog as E,Utils as A,GlassPane as k,Geometry as P,Panel as R,DropTarget as M}from"../ui/ui.js";import{serviceManager as I}from"../services/services.js";import{Linkifier as D}from"../components/components.js";import{DateUtilities as O}from"../platform/platform.js";import{ThemeSupport as U}from"../theme_support/theme_support.js";import{TimelinePanel as N}from"../timeline/timeline.js";import{FileManager as B}from"../workspace/workspace.js";
|
|
2
|
+
/**
|
|
3
|
+
* @license
|
|
4
|
+
* Copyright 2017 The Lighthouse Authors. All Rights Reserved.
|
|
5
|
+
*
|
|
6
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
7
|
+
* you may not use this file except in compliance with the License.
|
|
8
|
+
* You may obtain a copy of the License at
|
|
9
|
+
*
|
|
10
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
+
*
|
|
12
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
13
|
+
* distributed under the License is distributed on an "AS-IS" BASIS,
|
|
14
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
15
|
+
* See the License for the specific language governing permissions and
|
|
16
|
+
* limitations under the License.
|
|
17
|
+
*/const F={label:"pass",minScore:.9},H={label:"average",minScore:.5},$={label:"fail"},j={label:"error"},G=["com","co","gov","edu","ac","org","go","gob","or","net","in","ne","nic","gouv","web","spb","blog","jus","kiev","mil","wi","qc","ca","bel","on"];class V{static get PASS_THRESHOLD(){return.9}static get MS_DISPLAY_VALUE(){return"%10d ms"}static prepareReportResult(e){const t=JSON.parse(JSON.stringify(e));t.configSettings.locale||(t.configSettings.locale="en");for(const e of Object.values(t.audits))if("not_applicable"!==e.scoreDisplayMode&&"not-applicable"!==e.scoreDisplayMode||(e.scoreDisplayMode="notApplicable"),e.details&&(void 0!==e.details.type&&"diagnostic"!==e.details.type||(e.details.type="debugdata"),"filmstrip"===e.details.type))for(const t of e.details.items)t.data.startsWith("data:image/jpeg;base64,")||(t.data="data:image/jpeg;base64,"+t.data);if("object"!=typeof t.categories)throw new Error("No categories provided.");for(const e of Object.values(t.categories))e.auditRefs.forEach((e=>{const s=t.audits[e.id];e.result=s,t.stackPacks&&t.stackPacks.forEach((t=>{t.descriptions[e.id]&&(e.stackPacks=e.stackPacks||[],e.stackPacks.push({title:t.title,iconDataURL:t.iconDataURL,description:t.descriptions[e.id]}))}))}));return t}static showAsPassed(e){switch(e.scoreDisplayMode){case"manual":case"notApplicable":return!0;case"error":case"informative":return!1;case"numeric":case"binary":default:return Number(e.score)>=F.minScore}}static calculateRating(e,t){if("manual"===t||"notApplicable"===t)return F.label;if("error"===t)return j.label;if(null===e)return $.label;let s=$.label;return e>=F.minScore?s=F.label:e>=H.minScore&&(s=H.label),s}static splitMarkdownCodeSpans(e){const t=[],s=e.split(/`(.*?)`/g);for(let e=0;e<s.length;e++){const i=s[e];if(!i)continue;const n=e%2!=0;t.push({isCode:n,text:i})}return t}static splitMarkdownLink(e){const t=[],s=e.split(/\[([^\]]+?)\]\((https?:\/\/.*?)\)/g);for(;s.length;){const[e,i,n]=s.splice(0,3);e&&t.push({isLink:!1,text:e}),i&&n&&t.push({isLink:!0,text:i,linkHref:n})}return t}static getURLDisplayName(e,t){const s=void 0!==(t=t||{numPathParts:void 0,preserveQuery:void 0,preserveHost:void 0}).numPathParts?t.numPathParts:2,i=void 0===t.preserveQuery||t.preserveQuery,n=t.preserveHost||!1;let r;if("about:"===e.protocol||"data:"===e.protocol)r=e.href;else{r=e.pathname;const t=r.split("/").filter((e=>e.length));s&&t.length>s&&(r="…"+t.slice(-1*s).join("/")),n&&(r=`${e.host}/${r.replace(/^\//,"")}`),i&&(r=`${r}${e.search}`)}if(r=r.replace(/([a-f0-9]{7})[a-f0-9]{13}[a-f0-9]*/g,"$1…"),r=r.replace(/([a-zA-Z0-9-_]{9})(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])[a-zA-Z0-9-_]{10,}/g,"$1…"),r=r.replace(/(\d{3})\d{6,}/g,"$1…"),r=r.replace(/\u2026+/g,"…"),r.length>64&&r.includes("?")&&(r=r.replace(/\?([^=]*)(=)?.*/,"?$1$2…"),r.length>64&&(r=r.replace(/\?.*/,"?…"))),r.length>64){const e=r.lastIndexOf(".");r=e>=0?r.slice(0,63-(r.length-e))+"…"+r.slice(e):r.slice(0,63)+"…"}return r}static parseURL(e){const t=new URL(e);return{file:V.getURLDisplayName(t),hostname:t.hostname,origin:t.origin}}static createOrReturnURL(e){return e instanceof URL?e:new URL(e)}static getTld(e){const t=e.split(".").slice(-2);return G.includes(t[0])?"."+t.join("."):"."+t[t.length-1]}static getRootDomain(e){const t=V.createOrReturnURL(e).hostname,s=V.getTld(t).split(".");return t.split(".").slice(-s.length).join(".")}static getEnvironmentDisplayValues(e){const t=V.getEmulationDescriptions(e);return[{name:V.i18n.strings.runtimeSettingsDevice,description:t.deviceEmulation},{name:V.i18n.strings.runtimeSettingsNetworkThrottling,description:t.networkThrottling},{name:V.i18n.strings.runtimeSettingsCPUThrottling,description:t.cpuThrottling}]}static getEmulationDescriptions(e){let t,s;const i=e.throttling;switch(e.throttlingMethod){case"provided":t=V.i18n.strings.throttlingProvided,s=V.i18n.strings.throttlingProvided;break;case"devtools":{const{cpuSlowdownMultiplier:e,requestLatencyMs:n}=i;t=V.i18n.formatNumber(e)+"x slowdown (DevTools)",s=V.i18n.formatNumber(n)+" ms HTTP RTT, "+V.i18n.formatNumber(i.downloadThroughputKbps)+" Kbps down, "+V.i18n.formatNumber(i.uploadThroughputKbps)+" Kbps up (DevTools)";break}case"simulate":{const{cpuSlowdownMultiplier:e,rttMs:n,throughputKbps:r}=i;t=V.i18n.formatNumber(e)+"x slowdown (Simulated)",s=V.i18n.formatNumber(n)+" ms TCP RTT, "+V.i18n.formatNumber(r)+" Kbps throughput (Simulated)";break}default:t=V.i18n.strings.runtimeUnknown,s=V.i18n.strings.runtimeUnknown}return{deviceEmulation:"mobile"===e.formFactor?V.i18n.strings.runtimeMobileEmulation:V.i18n.strings.runtimeDesktopEmulation,cpuThrottling:t,networkThrottling:s}}static filterRelevantLines(e,t,s){if(0===t.length)return e.slice(0,2*s+1);const i=new Set;return(t=t.sort(((e,t)=>(e.lineNumber||0)-(t.lineNumber||0)))).forEach((({lineNumber:e})=>{let t=e-s,n=e+s;for(;t<1;)t++,n++;i.has(t-3-1)&&(t-=3);for(let e=t;e<=n;e++){const t=e;i.add(t)}})),e.filter((e=>i.has(e.lineNumber)))}static isPluginCategory(e){return e.startsWith("lighthouse-plugin-")}}V.reportJson=null,V.getUniqueSuffix=(()=>{let e=0;return function(){return e++}})(),V.i18n=null,V.UIStrings={varianceDisclaimer:"Values are estimated and may vary. The [performance score is calculated](https://web.dev/performance-scoring/) directly from these metrics.",calculatorLink:"See calculator.",opportunityResourceColumnLabel:"Opportunity",opportunitySavingsColumnLabel:"Estimated Savings",errorMissingAuditInfo:"Report error: no audit information",errorLabel:"Error!",warningHeader:"Warnings: ",auditGroupExpandTooltip:"Show audits",warningAuditsGroupTitle:"Passed audits but with warnings",passedAuditsGroupTitle:"Passed audits",notApplicableAuditsGroupTitle:"Not applicable",manualAuditsGroupTitle:"Additional items to manually check",toplevelWarningsMessage:"There were issues affecting this run of Lighthouse:",crcInitialNavigation:"Initial Navigation",crcLongestDurationLabel:"Maximum critical path latency:",snippetExpandButtonLabel:"Expand snippet",snippetCollapseButtonLabel:"Collapse snippet",lsPerformanceCategoryDescription:"[Lighthouse](https://developers.google.com/web/tools/lighthouse/) analysis of the current page on an emulated mobile network. Values are estimated and may vary.",labDataTitle:"Lab Data",thirdPartyResourcesLabel:"Show 3rd-party resources",dropdownPrintSummary:"Print Summary",dropdownPrintExpanded:"Print Expanded",dropdownCopyJSON:"Copy JSON",dropdownSaveHTML:"Save as HTML",dropdownSaveJSON:"Save as JSON",dropdownViewer:"Open in Viewer",dropdownSaveGist:"Save as Gist",dropdownDarkTheme:"Toggle Dark Theme",runtimeSettingsTitle:"Runtime Settings",runtimeSettingsUrl:"URL",runtimeSettingsFetchTime:"Fetch Time",runtimeSettingsDevice:"Device",runtimeSettingsNetworkThrottling:"Network throttling",runtimeSettingsCPUThrottling:"CPU throttling",runtimeSettingsChannel:"Channel",runtimeSettingsUA:"User agent (host)",runtimeSettingsUANetwork:"User agent (network)",runtimeSettingsBenchmark:"CPU/Memory Power",runtimeSettingsAxeVersion:"Axe version",footerIssue:"File an issue",runtimeNoEmulation:"No emulation",runtimeMobileEmulation:"Emulated Moto G4",runtimeDesktopEmulation:"Emulated Desktop",runtimeUnknown:"Unknown",throttlingProvided:"Provided by environment"},"undefined"!=typeof module&&module.exports?module.exports=V:self.Util=V;class W{constructor(e){this._document=e,this._lighthouseChannel="unknown"}createElement(e,t,s={}){const i=this._document.createElement(e);return t&&(i.className=t),Object.keys(s).forEach((e=>{const t=s[e];void 0!==t&&i.setAttribute(e,t)})),i}createElementNS(e,t,s,i={}){const n=this._document.createElementNS(e,t);return s&&(n.className=s),Object.keys(i).forEach((e=>{const t=i[e];void 0!==t&&n.setAttribute(e,t)})),n}createFragment(){return this._document.createDocumentFragment()}createChildOf(e,t,s,i){const n=this.createElement(t,s,i);return e.appendChild(n),n}cloneTemplate(e,t){const s=t.querySelector(e);if(!s)throw new Error("Template not found: template"+e);const i=this._document.importNode(s.content,!0);return s.hasAttribute("data-stamped")&&this.findAll("style",i).forEach((e=>e.remove())),s.setAttribute("data-stamped","true"),i}resetTemplates(){this.findAll("template[data-stamped]",this._document).forEach((e=>{e.removeAttribute("data-stamped")}))}convertMarkdownLinkSnippets(e){const t=this.createElement("span");for(const s of V.splitMarkdownLink(e)){if(!s.isLink){t.appendChild(this._document.createTextNode(s.text));continue}const e=new URL(s.linkHref);["https://developers.google.com","https://web.dev"].includes(e.origin)&&(e.searchParams.set("utm_source","lighthouse"),e.searchParams.set("utm_medium",this._lighthouseChannel));const i=this.createElement("a");i.rel="noopener",i.target="_blank",i.textContent=s.text,i.href=e.href,t.appendChild(i)}return t}convertMarkdownCodeSnippets(e){const t=this.createElement("span");for(const s of V.splitMarkdownCodeSpans(e))if(s.isCode){const e=this.createElement("code");e.textContent=s.text,t.appendChild(e)}else t.appendChild(this._document.createTextNode(s.text));return t}setLighthouseChannel(e){this._lighthouseChannel=e}document(){return this._document}isDevTools(){return!!this._document.querySelector(".lh-devtools")}find(e,t){const s=t.querySelector(e);if(null===s)throw new Error(`query ${e} not found`);return s}findAll(e,t){return Array.from(t.querySelectorAll(e))}}"undefined"!=typeof module&&module.exports?module.exports=W:self.DOM=W,function(){var e,t,s,i,n=document.createElement("details"),r="undefined"!=typeof HTMLDetailsElement&&n instanceof HTMLDetailsElement,o="open"in n||r,a="ontoggle"in n,l='\ndetails, summary {\n display: block;\n}\ndetails:not([open]) > *:not(summary) {\n display: none;\n}\nsummary::before {\n content: "►";\n padding-right: 0.3rem;\n font-size: 0.6rem;\n cursor: default;\n}\n[open] > summary::before {\n content: "▼";\n}\n',d=[],h=d.forEach,c=d.slice;function u(e){(function(e,t){return(e.tagName==t?[e]:[]).concat("function"==typeof e.getElementsByTagName?c.call(e.getElementsByTagName(t)):[])})(e,"SUMMARY").forEach((function(e){var t=_(e,"DETAILS");e.setAttribute("aria-expanded",t.hasAttribute("open")),e.hasAttribute("tabindex")||e.setAttribute("tabindex","0"),e.hasAttribute("role")||e.setAttribute("role","button")}))}function p(e){return!(e.defaultPrevented||e.ctrlKey||e.metaKey||e.shiftKey||e.target.isContentEditable)}function g(e){addEventListener("click",(function(t){if(p(t)&&t.which<=1){var s=_(t.target,"SUMMARY");s&&s.parentNode&&"DETAILS"==s.parentNode.tagName&&e(s.parentNode)}}),!1),addEventListener("keydown",(function(t){if(p(t)&&(13==t.keyCode||32==t.keyCode)){var s=_(t.target,"SUMMARY");s&&s.parentNode&&"DETAILS"==s.parentNode.tagName&&(e(s.parentNode),t.preventDefault())}}),!1)}function m(e){var t=document.createEvent("Event");t.initEvent("toggle",!1,!1),e.dispatchEvent(t)}function _(e,t){if("function"==typeof e.closest)return e.closest(t);for(;e;){if(e.tagName==t)return e;e=e.parentNode}}o||(document.head.insertAdjacentHTML("afterbegin","<style>"+l+"</style>"),e=document.createElement("details").constructor.prototype,t=e.setAttribute,s=e.removeAttribute,i=Object.getOwnPropertyDescriptor(e,"open"),Object.defineProperties(e,{open:{get:function(){return"DETAILS"==this.tagName?this.hasAttribute("open"):i&&i.get?i.get.call(this):void 0},set:function(e){return"DETAILS"==this.tagName?e?this.setAttribute("open",""):this.removeAttribute("open"):i&&i.set?i.set.call(this,e):void 0}},setAttribute:{value:function(e,s){var i=this,n=function(){return t.call(i,e,s)};if("open"==e&&"DETAILS"==this.tagName){var r=this.hasAttribute("open"),o=n();if(!r){var a=this.querySelector("summary");a&&a.setAttribute("aria-expanded",!0),m(this)}return o}return n()}},removeAttribute:{value:function(e){var t=this,i=function(){return s.call(t,e)};if("open"==e&&"DETAILS"==this.tagName){var n=this.hasAttribute("open"),r=i();if(n){var o=this.querySelector("summary");o&&o.setAttribute("aria-expanded",!1),m(this)}return r}return i()}}}),g((function(e){e.hasAttribute("open")?e.removeAttribute("open"):e.setAttribute("open","")})),u(document),window.MutationObserver?new MutationObserver((function(e){h.call(e,(function(e){h.call(e.addedNodes,u)}))})).observe(document.documentElement,{subtree:!0,childList:!0}):document.addEventListener("DOMNodeInserted",(function(e){u(e.target)}))),o&&!a&&(window.MutationObserver?new MutationObserver((function(e){h.call(e,(function(e){var t=e.target,s=e.attributeName;"DETAILS"==t.tagName&&"open"==s&&m(t)}))})).observe(document.documentElement,{attributes:!0,subtree:!0}):g((function(e){var t=e.getAttribute("open");setTimeout((function(){var s=e.getAttribute("open");t!=s&&m(e)}),1)})))}();const q=["http://","https://","data:"];class z{constructor(e,t={}){this._dom=e,this._fullPageScreenshot=t.fullPageScreenshot,this._templateContext}setTemplateContext(e){this._templateContext=e}render(e){switch(e.type){case"filmstrip":return this._renderFilmstrip(e);case"list":return this._renderList(e);case"table":return this._renderTable(e);case"criticalrequestchain":return J.render(this._dom,this._templateContext,e,this);case"opportunity":return this._renderTable(e);case"screenshot":case"debugdata":case"full-page-screenshot":return null;default:return this._renderUnknown(e.type,e)}}_renderBytes(e){const t=V.i18n.formatBytesToKiB(e.value,e.granularity),s=this._renderText(t);return s.title=V.i18n.formatBytes(e.value),s}_renderMilliseconds(e){let t=V.i18n.formatMilliseconds(e.value,e.granularity);return"duration"===e.displayUnit&&(t=V.i18n.formatDuration(e.value)),this._renderText(t)}renderTextURL(e){const t=e;let s,i,n;try{const e=V.parseURL(t);s="/"===e.file?e.origin:e.file,i="/"===e.file||""===e.hostname?"":`(${e.hostname})`,n=t}catch(e){s=t}const r=this._dom.createElement("div","lh-text__url");if(r.appendChild(this._renderLink({text:s,url:t})),i){const e=this._renderText(i);e.classList.add("lh-text__url-host"),r.appendChild(e)}return n&&(r.title=t,r.dataset.url=t),r}_renderLink(e){let t;try{t=new URL(e.url)}catch(e){}if(!t||!["https:","http:"].includes(t.protocol)){const t=this._renderText(e.text);return t.classList.add("lh-link"),t}const s=this._dom.createElement("a");return s.rel="noopener",s.target="_blank",s.textContent=e.text,s.href=t.href,s.classList.add("lh-link"),s}_renderText(e){const t=this._dom.createElement("div","lh-text");return t.textContent=e,t}_renderNumeric(e){const t=V.i18n.formatNumber(e.value,e.granularity),s=this._dom.createElement("div","lh-numeric");return s.textContent=t,s}_renderThumbnail(e){const t=this._dom.createElement("img","lh-thumbnail"),s=e;return t.src=s,t.title=s,t.alt="",t}_renderUnknown(e,t){console.error("Unknown details type: "+e,t);const s=this._dom.createElement("details","lh-unknown");return this._dom.createChildOf(s,"summary").textContent=`We don't know how to render audit details of type \`${e}\`. The Lighthouse version that collected this data is likely newer than the Lighthouse version of the report renderer. Expand for the raw JSON.`,this._dom.createChildOf(s,"pre").textContent=JSON.stringify(t,null,2),s}_renderTableValue(e,t){if(null==e)return null;if("object"==typeof e)switch(e.type){case"code":return this._renderCode(e.value);case"link":return this._renderLink(e);case"node":return this.renderNode(e);case"numeric":return this._renderNumeric(e);case"source-location":return this.renderSourceLocation(e);case"url":return this.renderTextURL(e.value);default:return this._renderUnknown(e.type,e)}switch(t.valueType){case"bytes":{const s=Number(e);return this._renderBytes({value:s,granularity:t.granularity})}case"code":{const t=String(e);return this._renderCode(t)}case"ms":{const s={value:Number(e),granularity:t.granularity,displayUnit:t.displayUnit};return this._renderMilliseconds(s)}case"numeric":{const s=Number(e);return this._renderNumeric({value:s,granularity:t.granularity})}case"text":{const t=String(e);return this._renderText(t)}case"thumbnail":{const t=String(e);return this._renderThumbnail(t)}case"timespanMs":{const t=Number(e);return this._renderMilliseconds({value:t})}case"url":{const t=String(e);return q.some((e=>t.startsWith(e)))?this.renderTextURL(t):this._renderCode(t)}default:return this._renderUnknown(t.valueType,e)}}_getCanonicalizedHeadingsFromTable(e){return"opportunity"===e.type?e.headings:e.headings.map((e=>this._getCanonicalizedHeading(e)))}_getCanonicalizedHeading(e){let t;return e.subItemsHeading&&(t=this._getCanonicalizedsubItemsHeading(e.subItemsHeading,e)),{key:e.key,valueType:e.itemType,subItemsHeading:t,label:e.text,displayUnit:e.displayUnit,granularity:e.granularity}}_getCanonicalizedsubItemsHeading(e,t){return e.key||console.warn("key should not be null"),{key:e.key||"",valueType:e.itemType||t.itemType,granularity:e.granularity||t.granularity,displayUnit:e.displayUnit||t.displayUnit}}_getDerivedsubItemsHeading(e){return e.subItemsHeading?{key:e.subItemsHeading.key||"",valueType:e.subItemsHeading.valueType||e.valueType,granularity:e.subItemsHeading.granularity||e.granularity,displayUnit:e.subItemsHeading.displayUnit||e.displayUnit,label:""}:null}_renderTableRow(e,t){const s=this._dom.createElement("tr");for(const i of t){if(!i||!i.key){this._dom.createChildOf(s,"td","lh-table-column--empty");continue}const t=e[i.key];let n;if(null!=t&&(n=this._renderTableValue(t,i)),n){const e="lh-table-column--"+i.valueType;this._dom.createChildOf(s,"td",e).appendChild(n)}else this._dom.createChildOf(s,"td","lh-table-column--empty")}return s}_renderTableRowsFromItem(e,t){const s=this._dom.createFragment();if(s.append(this._renderTableRow(e,t)),!e.subItems)return s;const i=t.map(this._getDerivedsubItemsHeading);if(!i.some(Boolean))return s;for(const t of e.subItems.items){const e=this._renderTableRow(t,i);e.classList.add("lh-sub-item-row"),s.append(e)}return s}_renderTable(e){if(!e.items.length)return this._dom.createElement("span");const t=this._dom.createElement("table","lh-table"),s=this._dom.createChildOf(t,"thead"),i=this._dom.createChildOf(s,"tr"),n=this._getCanonicalizedHeadingsFromTable(e);for(const e of n){const t="lh-table-column--"+(e.valueType||"text"),s=this._dom.createElement("div","lh-text");s.textContent=e.label,this._dom.createChildOf(i,"th",t).appendChild(s)}const r=this._dom.createChildOf(t,"tbody");let o=!0;for(const t of e.items){const e=this._renderTableRowsFromItem(t,n);for(const t of this._dom.findAll("tr",e))t.classList.add(o?"lh-row--even":"lh-row--odd");o=!o,r.append(e)}return t}_renderList(e){const t=this._dom.createElement("div","lh-list");return e.items.forEach((e=>{const s=ae.render(this._dom,this._templateContext,e,this);t.appendChild(s)})),t}renderNode(e){const t=this._dom.createElement("span","lh-node");if(e.nodeLabel){const s=this._dom.createElement("div");s.textContent=e.nodeLabel,t.appendChild(s)}if(e.snippet){const s=this._dom.createElement("div");s.classList.add("lh-node__snippet"),s.textContent=e.snippet,t.appendChild(s)}if(e.selector&&(t.title=e.selector),e.path&&t.setAttribute("data-path",e.path),e.selector&&t.setAttribute("data-selector",e.selector),e.snippet&&t.setAttribute("data-snippet",e.snippet),!this._fullPageScreenshot)return t;const s=(e.lhId?this._fullPageScreenshot.nodes[e.lhId]:null)||e.boundingRect;if(!s)return t;const i=de.render(this._dom,this._templateContext,this._fullPageScreenshot.screenshot,s,{width:147,height:100});return i&&t.prepend(i),t}renderSourceLocation(e){if(!e.url)return null;const t=e.line+1,s=e.column;let i;return"network"===e.urlProvider?(i=this.renderTextURL(e.url),this._dom.find(".lh-link",i).textContent+=`:${t}:${s}`):i=this._renderText(`${e.url}:${t}:${s} (from sourceURL)`),i.classList.add("lh-source-location"),i.setAttribute("data-source-url",e.url),i.setAttribute("data-source-line",String(e.line)),i.setAttribute("data-source-column",String(e.column)),i}_renderFilmstrip(e){const t=this._dom.createElement("div","lh-filmstrip");for(const s of e.items){const e=this._dom.createChildOf(t,"div","lh-filmstrip__frame");this._dom.createChildOf(e,"img","lh-filmstrip__thumbnail",{src:s.data,alt:"Screenshot"})}return t}_renderCode(e){const t=this._dom.createElement("pre","lh-code");return t.textContent=e,t}}"undefined"!=typeof module&&module.exports?module.exports=z:self.DetailsRenderer=z;class J{static initTree(e){let t=0;const s=Object.keys(e);if(s.length>0){t=e[s[0]].request.startTime}return{tree:e,startTime:t,transferSize:0}}static createSegment(e,t,s,i,n,r){const o=e[t],a=Object.keys(e),l=a.indexOf(t)===a.length-1,d=!!o.children&&Object.keys(o.children).length>0,h=Array.isArray(n)?n.slice(0):[];return void 0!==r&&h.push(!r),{node:o,isLastChild:l,hasChildren:d,startTime:s,transferSize:i+o.request.transferSize,treeMarkers:h}}static createChainNode(e,t,s,i){const n=e.cloneTemplate("#tmpl-lh-crc__chains",t);e.find(".crc-node",n).setAttribute("title",s.node.request.url);const r=e.find(".crc-node__tree-marker",n);s.treeMarkers.forEach((t=>{t?(r.appendChild(e.createElement("span","tree-marker vert")),r.appendChild(e.createElement("span","tree-marker"))):(r.appendChild(e.createElement("span","tree-marker")),r.appendChild(e.createElement("span","tree-marker")))})),s.isLastChild?(r.appendChild(e.createElement("span","tree-marker up-right")),r.appendChild(e.createElement("span","tree-marker right"))):(r.appendChild(e.createElement("span","tree-marker vert-right")),r.appendChild(e.createElement("span","tree-marker right"))),s.hasChildren?r.appendChild(e.createElement("span","tree-marker horiz-down")):r.appendChild(e.createElement("span","tree-marker right"));const o=s.node.request.url,a=i.renderTextURL(o),l=e.find(".crc-node__tree-value",n);if(l.appendChild(a),!s.hasChildren){const{startTime:t,endTime:i,transferSize:n}=s.node.request,r=e.createElement("span","crc-node__chain-duration");r.textContent=" - "+V.i18n.formatMilliseconds(1e3*(i-t))+", ";const o=e.createElement("span","crc-node__chain-duration");o.textContent=V.i18n.formatBytesToKiB(n,.01),l.appendChild(r),l.appendChild(o)}return n}static buildTree(e,t,s,i,n,r){if(i.appendChild(K.createChainNode(e,t,s,r)),s.node.children)for(const o of Object.keys(s.node.children)){const a=K.createSegment(s.node.children,o,s.startTime,s.transferSize,s.treeMarkers,s.isLastChild);K.buildTree(e,t,a,i,n,r)}}static render(e,t,s,i){const n=e.cloneTemplate("#tmpl-lh-crc",t),r=e.find(".lh-crc",n);e.find(".crc-initial-nav",n).textContent=V.i18n.strings.crcInitialNavigation,e.find(".lh-crc__longest_duration_label",n).textContent=V.i18n.strings.crcLongestDurationLabel,e.find(".lh-crc__longest_duration",n).textContent=V.i18n.formatMilliseconds(s.longestChain.duration);const o=K.initTree(s.chains);for(const t of Object.keys(o.tree)){const a=K.createSegment(o.tree,t,o.startTime,o.transferSize);K.buildTree(e,n,a,r,s,i)}return e.find(".lh-crc-container",n)}}const K=J;"undefined"!=typeof module&&module.exports?module.exports=J:self.CriticalRequestChainRenderer=J;const Y=0,Q=1,Z=2,X=0,ee=1,te=2,se=3,ie={[X]:["lh-snippet__line--content"],[ee]:["lh-snippet__line--content","lh-snippet__line--content-highlighted"],[te]:["lh-snippet__line--placeholder"],[se]:["lh-snippet__line--message"]};function ne(e,t){return{line:e.find((e=>e.lineNumber===t)),previousLine:e.find((e=>e.lineNumber===t-1))}}function re(e,t){return e.filter((e=>e.lineNumber===t))}function oe(e){return V.filterRelevantLines(e.lines,e.lineMessages,2)}class ae{static renderHeader(e,t,s,i,n){const r=oe(s).length<s.lines.length,o=e.cloneTemplate("#tmpl-lh-snippet__header",t);e.find(".lh-snippet__title",o).textContent=s.title;const{snippetCollapseButtonLabel:a,snippetExpandButtonLabel:l}=V.i18n.strings;e.find(".lh-snippet__btn-label-collapse",o).textContent=a,e.find(".lh-snippet__btn-label-expand",o).textContent=l;const d=e.find(".lh-snippet__toggle-expand",o);if(r?d.addEventListener("click",(()=>n())):d.remove(),s.node&&e.isDevTools()){e.find(".lh-snippet__node",o).appendChild(i.renderNode(s.node))}return o}static renderSnippetLine(e,t,{content:s,lineNumber:i,truncated:n,contentType:r,visibility:o}){const a=e.cloneTemplate("#tmpl-lh-snippet__line",t),l=e.find(".lh-snippet__line",a),{classList:d}=l;ie[r].forEach((e=>d.add(e))),o===Q?d.add("lh-snippet__show-if-collapsed"):o===Z&&d.add("lh-snippet__show-if-expanded");const h=s+(n?"…":""),c=e.find(".lh-snippet__line code",l);return r===se?c.appendChild(e.convertMarkdownLinkSnippets(h)):c.textContent=h,e.find(".lh-snippet__line-number",l).textContent=i.toString(),l}static renderMessage(e,t,s){return ae.renderSnippetLine(e,t,{lineNumber:" ",content:s.message,contentType:se})}static renderOmittedLinesPlaceholder(e,t,s){return ae.renderSnippetLine(e,t,{lineNumber:"…",content:"",visibility:s,contentType:te})}static renderSnippetContent(e,t,s){const i=e.cloneTemplate("#tmpl-lh-snippet__content",t),n=e.find(".lh-snippet__snippet-inner",i);return s.generalMessages.forEach((s=>n.append(ae.renderMessage(e,t,s)))),n.append(ae.renderSnippetLines(e,t,s)),i}static renderSnippetLines(e,t,s){const{lineMessages:i,generalMessages:n,lineCount:r,lines:o}=s,a=oe(s),l=n.length>0&&0===i.length,d=e.createFragment();let h=!1;for(let s=1;s<=r;s++){const{line:n,previousLine:r}=ne(o,s),{line:c,previousLine:u}=ne(a,s),p=!!c;!!u&&!p&&(h=!0),p&&h&&(d.append(ae.renderOmittedLinesPlaceholder(e,t,Q)),h=!1);const g=!n&&1===s;if(!n&&!!r||g){const i=!a.some((e=>e.lineNumber>s))||1===s;d.append(ae.renderOmittedLinesPlaceholder(e,t,i?Z:Y)),h=!1}if(!n)continue;const m=re(i,s),_=m.length>0||l,f=Object.assign({},n,{contentType:_?ee:X,visibility:c?Y:Z});d.append(ae.renderSnippetLine(e,t,f)),m.forEach((s=>{d.append(ae.renderMessage(e,t,s))}))}return d}static render(e,t,s,i){const n=e.cloneTemplate("#tmpl-lh-snippet",t),r=e.find(".lh-snippet",n),o=ae.renderHeader(e,n,s,i,(()=>r.classList.toggle("lh-snippet--expanded"))),a=ae.renderSnippetContent(e,n,s);return r.append(o,a),r}}function le(e,t,s){return e<t?t:e>s?s:e}"undefined"!=typeof module&&module.exports?module.exports=ae:self.SnippetRenderer=ae;class de{static getScreenshotPositions(e,t,s){const i={x:(n=e).left+n.width/2,y:n.top+n.height/2};var n;const r=le(i.x-t.width/2,0,s.width-t.width),o=le(i.y-t.height/2,0,s.height-t.height);return{screenshot:{left:r,top:o},clip:{left:e.left-r,top:e.top-o}}}static renderClipPathInScreenshot(e,t,s,i,n){const r=e.find("clipPath",t),o="clip-"+V.getUniqueSuffix();r.id=o,t.style.clipPath=`url(#${o})`;const a=s.top/n.height,l=a+i.height/n.height,d=s.left/n.width,h=d+i.width/n.width,c=[`0,0 1,0 1,${a} 0,${a}`,`0,${l} 1,${l} 1,1 0,1`,`0,${a} ${d},${a} ${d},${l} 0,${l}`,`${h},${a} 1,${a} 1,${l} ${h},${l}`];for(const t of c)r.append(e.createElementNS("http://www.w3.org/2000/svg","polygon",void 0,{points:t}))}static createBackgroundImageStyle(e,t){const s=e.createElement("style");return s.id="full-page-screenshot-style",s.textContent=`\n .lh-element-screenshot__image {\n background-image: url(${t.data})\n }`,s}static installOverlayFeature(e,t,s){const i=e.find(".lh-root",e.document());if(!i)return void console.warn("No lh-root. Overlay install failed.");const n="lh-screenshot-overlay--enabled";i.classList.contains(n)||(i.classList.add(n),i.addEventListener("click",(n=>{const r=n.target;if(!r)return;const o=r.closest(".lh-node > .lh-element-screenshot");if(!o)return;const a=e.createElement("div","lh-element-screenshot__overlay");i.append(a);const l={width:.95*a.clientWidth,height:.8*a.clientHeight},d={width:Number(o.dataset.rectWidth),height:Number(o.dataset.rectHeight),left:Number(o.dataset.rectLeft),right:Number(o.dataset.rectLeft)+Number(o.dataset.rectWidth),top:Number(o.dataset.rectTop),bottom:Number(o.dataset.rectTop)+Number(o.dataset.rectHeight)},h=de.render(e,t,s.screenshot,d,l);h?(a.appendChild(h),a.addEventListener("click",(()=>a.remove()))):a.remove()})))}static _computeZoomFactor(e,t){const s={x:t.width/e.width,y:t.height/e.height},i=.75*Math.min(s.x,s.y);return Math.min(1,i)}static render(e,t,s,i,n){if(!function(e,t){return t.left<=e.width&&0<=t.right&&t.top<=e.height&&0<=t.bottom}(s,i))return null;const r=e.cloneTemplate("#tmpl-lh-element-screenshot",t),o=e.find(".lh-element-screenshot",r);o.dataset.rectWidth=i.width.toString(),o.dataset.rectHeight=i.height.toString(),o.dataset.rectLeft=i.left.toString(),o.dataset.rectTop=i.top.toString();const a=this._computeZoomFactor(i,n),l={width:n.width/a,height:n.height/a};l.width=Math.min(s.width,l.width);const d=l.width*a,h=l.height*a,c=de.getScreenshotPositions(i,l,{width:s.width,height:s.height});e.find(".lh-element-screenshot__content",o).style.top=`-${h}px`;const u=e.find(".lh-element-screenshot__image",o);u.style.width=d+"px",u.style.height=h+"px",u.style.backgroundPositionY=-c.screenshot.top*a+"px",u.style.backgroundPositionX=-c.screenshot.left*a+"px",u.style.backgroundSize=`${s.width*a}px ${s.height*a}px`;const p=e.find(".lh-element-screenshot__element-marker",o);p.style.width=i.width*a+"px",p.style.height=i.height*a+"px",p.style.left=c.clip.left*a+"px",p.style.top=c.clip.top*a+"px";const g=e.find(".lh-element-screenshot__mask",o);return g.style.width=d+"px",g.style.height=h+"px",de.renderClipPathInScreenshot(e,g,c.clip,i,l),o}}function he(e){const t=new URL(e.finalUrl).hostname,s=e.fetchTime&&new Date(e.fetchTime)||new Date,i=s.toLocaleTimeString("en-US",{hour12:!1}),n=s.toLocaleDateString("en-US",{year:"numeric",month:"2-digit",day:"2-digit"}).split("/");n.unshift(n.pop());return`${t}_${n.join("-")}_${i}`.replace(/[/?<>\\:*|"]/g,"-")}"undefined"!=typeof module&&module.exports?module.exports=de:self.ElementScreenshotRenderer=de,"undefined"!=typeof module&&module.exports&&(module.exports={getFilenamePrefix:he});class ce{constructor(e){this.el=e,this._id=void 0}log(e,t=!0){this._id&&clearTimeout(this._id),this.el.textContent=e,this.el.classList.add("show"),t&&(this._id=setTimeout((e=>{this.el.classList.remove("show")}),7e3))}warn(e){this.log("Warning: "+e)}error(e){this.log(e),setTimeout((t=>{throw new Error(e)}),0)}hide(){this._id&&clearTimeout(this._id),this.el.classList.remove("show")}}function ue(){const e=window.location.host.endsWith(".vercel.app"),t=new URLSearchParams(window.location.search).has("dev");return e?`https://${window.location.host}/gh-pages`:t?"http://localhost:8000":"https://googlechrome.github.io/lighthouse"}"undefined"!=typeof module&&module.exports&&(module.exports=ce);class pe{constructor(e){this.json,this._dom=e,this._document=this._dom.document(),this._templateContext=this._dom.document(),this._dropDown=new ge(this._dom),this._copyAttempt=!1,this.topbarEl,this.scoreScaleEl,this.stickyHeaderEl,this.highlightEl,this.onMediaQueryChange=this.onMediaQueryChange.bind(this),this.onCopy=this.onCopy.bind(this),this.onDropDownMenuClick=this.onDropDownMenuClick.bind(this),this.onKeyUp=this.onKeyUp.bind(this),this.collapseAllDetails=this.collapseAllDetails.bind(this),this.expandAllDetails=this.expandAllDetails.bind(this),this._toggleDarkTheme=this._toggleDarkTheme.bind(this),this._updateStickyHeaderOnScroll=this._updateStickyHeaderOnScroll.bind(this)}initFeatures(e){this.json=e,this._setupMediaQueryListeners(),this._dropDown.setup(this.onDropDownMenuClick),this._setupThirdPartyFilter(),this._setupElementScreenshotOverlay(),this._setUpCollapseDetailsAfterPrinting(),this._resetUIState(),this._document.addEventListener("keyup",this.onKeyUp),this._document.addEventListener("copy",this.onCopy);this._dom.find(".lh-topbar__logo",this._document).addEventListener("click",(()=>this._toggleDarkTheme()));let t=!1;!this._dom.isDevTools()&&window.matchMedia("(prefers-color-scheme: dark)").matches&&(t=!0);if(["performance","accessibility","best-practices","seo"].every((t=>{const s=e.categories[t];return s&&1===s.score}))&&(t=!0,this._enableFireworks()),t&&this._toggleDarkTheme(!0),Object.keys(this.json.categories).length>=2){this._setupStickyHeaderElements();const e=this._dom.find(".lh-container",this._document);if(this._getScrollParent(e).addEventListener("scroll",this._updateStickyHeaderOnScroll),this._dom.isDevTools()){new window.ResizeObserver(this._updateStickyHeaderOnScroll).observe(e)}else window.addEventListener("resize",this._updateStickyHeaderOnScroll)}if(e.categories.performance&&e.categories.performance.auditRefs.some((t=>Boolean("metrics"===t.group&&e.audits[t.id].errorMessage)))){this._dom.find(".lh-metrics-toggle__input",this._document).checked=!0}for(const e of this._dom.findAll("[data-i18n]",this._dom.document())){const t=e.getAttribute("data-i18n");e.textContent=V.i18n.strings[t]}}setTemplateContext(e){this._templateContext=e}_getScrollParent(e){const{overflowY:t}=window.getComputedStyle(e);return"visible"!==t&&"hidden"!==t?e:e.parentElement?this._getScrollParent(e.parentElement):document}_enableFireworks(){const e=this._dom.find(".lh-scores-container",this._document);e.classList.add("score100"),e.addEventListener("click",(t=>{e.classList.toggle("fireworks-paused")}))}_fireEventOn(e,t=this._document,s){const i=new CustomEvent(e,s?{detail:s}:void 0);t.dispatchEvent(i)}_setupMediaQueryListeners(){const e=self.matchMedia("(max-width: 500px)");e.addListener(this.onMediaQueryChange),this.onMediaQueryChange(e)}onMediaQueryChange(e){this._dom.find(".lh-root",this._document).classList.toggle("lh-narrow",e.matches)}_setupThirdPartyFilter(){const e=["uses-rel-preconnect","third-party-facades"],t=["legacy-javascript"];Array.from(this._document.querySelectorAll(".lh-table")).filter((e=>e.querySelector("td.lh-table-column--url, td.lh-table-column--source-location"))).filter((t=>{const s=t.closest(".lh-audit");if(!s)throw new Error(".lh-table not within audit");return!e.includes(s.id)})).forEach(((e,s)=>{const i=function(e){return Array.from(e.tBodies[0].rows)}(e),n=this._getThirdPartyRows(i,this.json.finalUrl),r=this._dom.cloneTemplate("#tmpl-lh-3p-filter",this._templateContext),o=this._dom.find("input",r),a="lh-3p-filter-label--"+s;o.id=a,o.addEventListener("change",(e=>{const t=e.target instanceof HTMLInputElement&&!e.target.checked;let s=!0,r=i[0];for(;r;){const e=t&&n.includes(r);do{r.classList.toggle("lh-row--hidden",e),r.classList.toggle("lh-row--even",!e&&s),r.classList.toggle("lh-row--odd",!e&&!s),r=r.nextElementSibling}while(r&&r.classList.contains("lh-sub-item-row"));e||(s=!s)}})),this._dom.find("label",r).setAttribute("for",a),this._dom.find(".lh-3p-filter-count",r).textContent=""+n.length,this._dom.find(".lh-3p-ui-string",r).textContent=V.i18n.strings.thirdPartyResourcesLabel;const l=n.length===i.length,d=!n.length;if((l||d)&&(o.disabled=!0,o.checked=l),!e.parentNode)return;e.parentNode.insertBefore(r,e);const h=e.closest(".lh-audit");if(!h)throw new Error(".lh-table not within audit");t.includes(h.id)&&!l&&o.click()}))}_setupElementScreenshotOverlay(){const e=this.json.audits["full-page-screenshot"]&&this.json.audits["full-page-screenshot"].details&&"full-page-screenshot"===this.json.audits["full-page-screenshot"].details.type&&this.json.audits["full-page-screenshot"].details;e&&de.installOverlayFeature(this._dom,this._templateContext,e)}_getThirdPartyRows(e,t){const s=[],i=V.getRootDomain(t);for(const t of e){if(t.classList.contains("lh-sub-item-row"))continue;const e=t.querySelector(".lh-text__url");if(!e)continue;const n=e.dataset.url;if(!n)continue;V.getRootDomain(n)!==i&&s.push(t)}return s}_getUrlItems(e){return this._dom.findAll(".lh-text__url",e)}_setupStickyHeaderElements(){this.topbarEl=this._dom.find(".lh-topbar",this._document),this.scoreScaleEl=this._dom.find(".lh-scorescale",this._document),this.stickyHeaderEl=this._dom.find(".lh-sticky-header",this._document),this.highlightEl=this._dom.createChildOf(this.stickyHeaderEl,"div","lh-highlighter")}onCopy(e){this._copyAttempt&&e.clipboardData&&(e.preventDefault(),e.clipboardData.setData("text/plain",JSON.stringify(this.json,null,2)),this._fireEventOn("lh-log",this._document,{cmd:"log",msg:"Report JSON copied to clipboard"})),this._copyAttempt=!1}onCopyButtonClick(){this._fireEventOn("lh-analytics",this._document,{cmd:"send",fields:{hitType:"event",eventCategory:"report",eventAction:"copy"}});try{this._document.queryCommandSupported("copy")&&(this._copyAttempt=!0,this._document.execCommand("copy")||(this._copyAttempt=!1,this._fireEventOn("lh-log",this._document,{cmd:"warn",msg:"Your browser does not support copy to clipboard."})))}catch(e){this._copyAttempt=!1,this._fireEventOn("lh-log",this._document,{cmd:"log",msg:e.message})}}_resetUIState(){this._dropDown.close(),this._dom.resetTemplates()}onDropDownMenuClick(e){e.preventDefault();const t=e.target;if(t&&t.hasAttribute("data-action")){switch(t.getAttribute("data-action")){case"copy":this.onCopyButtonClick();break;case"print-summary":this.collapseAllDetails(),this._print();break;case"print-expanded":this.expandAllDetails(),this._print();break;case"save-json":{const e=JSON.stringify(this.json,null,2);this._saveFile(new Blob([e],{type:"application/json"}));break}case"save-html":{const t=this.getReportHtml();try{this._saveFile(new Blob([t],{type:"text/html"}))}catch(e){this._fireEventOn("lh-log",this._document,{cmd:"error",msg:"Could not export as HTML. "+e.message})}break}case"open-viewer":pe.openTabAndSendJsonReportToViewer(this.json);break;case"save-gist":this.saveAsGist();break;case"toggle-dark":this._toggleDarkTheme()}this._dropDown.close()}}_print(){self.print()}onKeyUp(e){(e.ctrlKey||e.metaKey)&&80===e.keyCode&&this._dropDown.close()}static openTabAndSendJsonReportToViewer(e){const t=e.generatedTime,s=e.fetchTime||t,i=`${e.lighthouseVersion}-${e.requestedUrl}-${s}`,n=ue()+"/viewer/";pe.openTabAndSendData({lhr:e},n,i)}static openTreemap(e){if(!e.audits["script-treemap-data"].details)throw new Error("no script treemap data found");const t="treemap-"+e.requestedUrl,s={lhr:e},i=ue()+"/treemap/";pe.openTabAndSendData(s,i,t)}static openTabAndSendData(e,t,s){const i=new URL(t).origin;window.addEventListener("message",(function t(s){s.origin===i&&n&&s.data.opened&&(n.postMessage(e,i),window.removeEventListener("message",t))}));const n=window.open(t,s)}expandAllDetails(){this._dom.findAll(".lh-categories details",this._document).map((e=>e.open=!0))}collapseAllDetails(){this._dom.findAll(".lh-categories details",this._document).map((e=>e.open=!1))}_setUpCollapseDetailsAfterPrinting(){"onbeforeprint"in self?self.addEventListener("afterprint",this.collapseAllDetails):self.matchMedia("print").addListener((e=>{e.matches?this.expandAllDetails():this.collapseAllDetails()}))}getReportHtml(){return this._resetUIState(),this._document.documentElement.outerHTML}saveAsGist(){throw new Error("Cannot save as gist from base report")}_saveFile(e){const t=he({finalUrl:this.json.finalUrl,fetchTime:this.json.fetchTime}),s=e.type.match("json")?".json":".html",i=URL.createObjectURL(e),n=this._dom.createElement("a");n.download=`${t}${s}`,n.href=i,this._document.body.appendChild(n),n.click(),this._document.body.removeChild(n),setTimeout((e=>URL.revokeObjectURL(i)),500)}_toggleDarkTheme(e){const t=this._dom.find(".lh-vars",this._document);void 0===e?t.classList.toggle("dark"):t.classList.toggle("dark",e)}_updateStickyHeaderOnScroll(){const e=this.topbarEl.getBoundingClientRect().bottom>=this.scoreScaleEl.getBoundingClientRect().top,t=Array.from(this._document.querySelectorAll(".lh-category")).filter((e=>e.getBoundingClientRect().top-window.innerHeight/2<0)),s=t.length>0?t.length-1:0,i=this.stickyHeaderEl.querySelectorAll(".lh-gauge__wrapper"),n=i[s],r=i[0].getBoundingClientRect().left,o=n.getBoundingClientRect().left-r;this.highlightEl.style.transform=`translate(${o}px)`,this.stickyHeaderEl.classList.toggle("lh-sticky-header--visible",e)}}class ge{constructor(e){this._dom=e,this._toggleEl,this._menuEl,this.onDocumentKeyDown=this.onDocumentKeyDown.bind(this),this.onToggleClick=this.onToggleClick.bind(this),this.onToggleKeydown=this.onToggleKeydown.bind(this),this.onMenuFocusOut=this.onMenuFocusOut.bind(this),this.onMenuKeydown=this.onMenuKeydown.bind(this),this._getNextMenuItem=this._getNextMenuItem.bind(this),this._getNextSelectableNode=this._getNextSelectableNode.bind(this),this._getPreviousMenuItem=this._getPreviousMenuItem.bind(this)}setup(e){this._toggleEl=this._dom.find(".lh-tools__button",this._dom.document()),this._toggleEl.addEventListener("click",this.onToggleClick),this._toggleEl.addEventListener("keydown",this.onToggleKeydown),this._menuEl=this._dom.find(".lh-tools__dropdown",this._dom.document()),this._menuEl.addEventListener("keydown",this.onMenuKeydown),this._menuEl.addEventListener("click",e)}close(){this._toggleEl.classList.remove("active"),this._toggleEl.setAttribute("aria-expanded","false"),this._menuEl.contains(this._dom.document().activeElement)&&this._toggleEl.focus(),this._menuEl.removeEventListener("focusout",this.onMenuFocusOut),this._dom.document().removeEventListener("keydown",this.onDocumentKeyDown)}open(e){this._toggleEl.classList.contains("active")?e.focus():this._menuEl.addEventListener("transitionend",(()=>{e.focus()}),{once:!0}),this._toggleEl.classList.add("active"),this._toggleEl.setAttribute("aria-expanded","true"),this._menuEl.addEventListener("focusout",this.onMenuFocusOut),this._dom.document().addEventListener("keydown",this.onDocumentKeyDown)}onToggleClick(e){e.preventDefault(),e.stopImmediatePropagation(),this._toggleEl.classList.contains("active")?this.close():this.open(this._getNextMenuItem())}onToggleKeydown(e){switch(e.code){case"ArrowUp":e.preventDefault(),this.open(this._getPreviousMenuItem());break;case"ArrowDown":case"Enter":case" ":e.preventDefault(),this.open(this._getNextMenuItem())}}onMenuKeydown(e){const t=e.target;switch(e.code){case"ArrowUp":e.preventDefault(),this._getPreviousMenuItem(t).focus();break;case"ArrowDown":e.preventDefault(),this._getNextMenuItem(t).focus();break;case"Home":e.preventDefault(),this._getNextMenuItem().focus();break;case"End":e.preventDefault(),this._getPreviousMenuItem().focus()}}onDocumentKeyDown(e){27===e.keyCode&&this.close()}onMenuFocusOut(e){const t=e.relatedTarget;this._menuEl.contains(t)||this.close()}_getNextSelectableNode(e,t){const s=e.filter((e=>e instanceof HTMLElement&&(!e.hasAttribute("disabled")&&"none"!==window.getComputedStyle(e).display)));let i=t?s.indexOf(t)+1:0;return i>=s.length&&(i=0),s[i]}_getNextMenuItem(e){const t=Array.from(this._menuEl.childNodes);return this._getNextSelectableNode(t,e)}_getPreviousMenuItem(e){const t=Array.from(this._menuEl.childNodes).reverse();return this._getNextSelectableNode(t,e)}}"undefined"!=typeof module&&module.exports?module.exports=pe:self.ReportUIFeatures=pe;class me{constructor(e,t){this.dom=e,this.detailsRenderer=t,this.templateContext=this.dom.document(),this.detailsRenderer.setTemplateContext(this.templateContext)}get _clumpTitles(){return{warning:V.i18n.strings.warningAuditsGroupTitle,manual:V.i18n.strings.manualAuditsGroupTitle,passed:V.i18n.strings.passedAuditsGroupTitle,notApplicable:V.i18n.strings.notApplicableAuditsGroupTitle}}renderAudit(e){const t=this.dom.cloneTemplate("#tmpl-lh-audit",this.templateContext);return this.populateAuditValues(e,t)}populateAuditValues(e,t){const s=V.i18n.strings,i=this.dom.find(".lh-audit",t);i.id=e.result.id;const n=e.result.scoreDisplayMode;e.result.displayValue&&(this.dom.find(".lh-audit__display-text",i).textContent=e.result.displayValue);const r=this.dom.find(".lh-audit__title",i);r.appendChild(this.dom.convertMarkdownCodeSnippets(e.result.title)),this.dom.find(".lh-audit__description",i).appendChild(this.dom.convertMarkdownLinkSnippets(e.result.description)),e.stackPacks&&e.stackPacks.forEach((e=>{const t=this.dom.createElement("div");t.classList.add("lh-audit__stackpack");const s=this.dom.createElement("img");s.classList.add("lh-audit__stackpack__img"),s.src=e.iconDataURL,s.alt=e.title,t.appendChild(s),t.appendChild(this.dom.convertMarkdownLinkSnippets(e.description)),this.dom.find(".lh-audit__stackpacks",i).appendChild(t)}));const o=this.dom.find("details",i);if(e.result.details){const t=this.detailsRenderer.render(e.result.details);t&&(t.classList.add("lh-details"),o.appendChild(t))}if(this.dom.find(".lh-chevron-container",i).appendChild(this._createChevron()),this._setRatingClass(i,e.result.score,n),"error"===e.result.scoreDisplayMode){i.classList.add("lh-audit--error");const t=this.dom.find(".lh-audit__display-text",i);t.textContent=s.errorLabel,t.classList.add("tooltip-boundary");this.dom.createChildOf(t,"div","tooltip tooltip--error").textContent=e.result.errorMessage||s.errorMissingAuditInfo}else if(e.result.explanation){this.dom.createChildOf(r,"div","lh-audit-explanation").textContent=e.result.explanation}const a=e.result.warnings;if(!a||0===a.length)return i;const l=this.dom.find("summary",o),d=this.dom.createChildOf(l,"div","lh-warnings");if(this.dom.createChildOf(d,"span").textContent=s.warningHeader,1===a.length)d.appendChild(this.dom.document().createTextNode(a.join("")));else{const e=this.dom.createChildOf(d,"ul");for(const t of a){this.dom.createChildOf(e,"li").textContent=t}}return i}_createChevron(){const e=this.dom.cloneTemplate("#tmpl-lh-chevron",this.templateContext);return this.dom.find(".lh-chevron",e)}_setRatingClass(e,t,s){const i=V.calculateRating(t,s);return e.classList.add("lh-audit--"+s.toLowerCase()),"informative"!==s&&e.classList.add("lh-audit--"+i),e}renderCategoryHeader(e,t){const s=this.dom.cloneTemplate("#tmpl-lh-category-header",this.templateContext),i=this.dom.find(".lh-score__gauge",s),n=this.renderScoreGauge(e,t);if(i.appendChild(n),e.description){const t=this.dom.convertMarkdownLinkSnippets(e.description);this.dom.find(".lh-category-header__description",s).appendChild(t)}return s.firstElementChild}renderAuditGroup(e){const t=this.dom.createElement("div","lh-audit-group"),s=this.dom.createElement("div","lh-audit-group__header");if(this.dom.createChildOf(s,"span","lh-audit-group__title").textContent=e.title,e.description){const t=this.dom.convertMarkdownLinkSnippets(e.description);t.classList.add("lh-audit-group__description"),s.appendChild(t)}return t.appendChild(s),t}_renderGroupedAudits(e,t){const s=new Map,i="NotAGroup";s.set(i,[]);for(const t of e){const e=t.group||i,n=s.get(e)||[];n.push(t),s.set(e,n)}const n=[];for(const[e,r]of s){if(e===i){for(const e of r)n.push(this.renderAudit(e));continue}const s=t[e],o=this.renderAuditGroup(s);for(const e of r)o.appendChild(this.renderAudit(e));o.classList.add("lh-audit-group--"+e),n.push(o)}return n}renderUnexpandableClump(e,t){const s=this.dom.createElement("div");return this._renderGroupedAudits(e,t).forEach((e=>s.appendChild(e))),s}renderClump(e,{auditRefs:t,description:s}){const i=this.dom.cloneTemplate("#tmpl-lh-clump",this.templateContext),n=this.dom.find(".lh-clump",i);"warning"===e&&n.setAttribute("open","");this.dom.find(".lh-audit-group__summary",n).appendChild(this._createChevron()).title=V.i18n.strings.auditGroupExpandTooltip;const r=this.dom.find(".lh-audit-group__header",n),o=this._clumpTitles[e];if(this.dom.find(".lh-audit-group__title",r).textContent=o,s){const e=this.dom.convertMarkdownLinkSnippets(s);e.classList.add("lh-audit-group__description"),r.appendChild(e)}this.dom.find(".lh-audit-group__itemcount",n).textContent=`(${t.length})`;const a=t.map(this.renderAudit.bind(this));return n.append(...a),n.classList.add("lh-clump--"+e.toLowerCase()),n}setTemplateContext(e){this.templateContext=e,this.detailsRenderer.setTemplateContext(e)}renderScoreGauge(e,t){const s=this.dom.cloneTemplate("#tmpl-lh-gauge",this.templateContext),i=this.dom.find(".lh-gauge__wrapper",s);i.href="#"+e.id,V.isPluginCategory(e.id)&&i.classList.add("lh-gauge__wrapper--plugin");const n=Number(e.score),r=this.dom.find(".lh-gauge",s).querySelector(".lh-gauge-arc");r&&this._setGaugeArc(r,n);const o=Math.round(100*n),a=this.dom.find(".lh-gauge__percentage",s);return a.textContent=o.toString(),null===e.score&&(a.textContent="?",a.title=V.i18n.strings.errorLabel),0===e.auditRefs.length||this.hasApplicableAudits(e)?i.classList.add("lh-gauge__wrapper--"+V.calculateRating(e.score)):(i.classList.add("lh-gauge__wrapper--not-applicable"),a.textContent="-",a.title=V.i18n.strings.notApplicableAuditsGroupTitle),this.dom.find(".lh-gauge__label",s).textContent=e.title,s}hasApplicableAudits(e){return e.auditRefs.some((e=>"notApplicable"!==e.result.scoreDisplayMode))}_setGaugeArc(e,t){const s=2*Math.PI*Number(e.getAttribute("r")),i=Number(e.getAttribute("stroke-width")),n=.25*i/s;e.style.transform=`rotate(${360*n-90}deg)`;let r=t*s-i/2;0===t&&(e.style.opacity="0"),1===t&&(r=s),e.style.strokeDasharray=`${Math.max(r,0)} ${s}`}_auditHasWarning(e){return Boolean(e.result.warnings&&e.result.warnings.length)}_getClumpIdForAuditRef(e){const t=e.result.scoreDisplayMode;return"manual"===t||"notApplicable"===t?t:V.showAsPassed(e.result)?this._auditHasWarning(e)?"warning":"passed":"failed"}render(e,t={}){const s=this.dom.createElement("div","lh-category");this.createPermalinkSpan(s,e.id),s.appendChild(this.renderCategoryHeader(e,t));const i=new Map;i.set("failed",[]),i.set("warning",[]),i.set("manual",[]),i.set("passed",[]),i.set("notApplicable",[]);for(const t of e.auditRefs){const e=this._getClumpIdForAuditRef(t),s=i.get(e);s.push(t),i.set(e,s)}for(const[n,r]of i){if(0===r.length)continue;if("failed"===n){const e=this.renderUnexpandableClump(r,t);e.classList.add("lh-clump--failed"),s.appendChild(e);continue}const i="manual"===n?e.manualDescription:void 0,o=this.renderClump(n,{auditRefs:r,description:i});s.appendChild(o)}return s}createPermalinkSpan(e,t){this.dom.createChildOf(e,"span","lh-permalink").id=t}}"undefined"!=typeof module&&module.exports?module.exports=me:self.CategoryRenderer=me;class _e extends me{_renderMetric(e){const t=this.dom.cloneTemplate("#tmpl-lh-metric",this.templateContext),s=this.dom.find(".lh-metric",t);s.id=e.result.id;const i=V.calculateRating(e.result.score,e.result.scoreDisplayMode);s.classList.add("lh-metric--"+i);this.dom.find(".lh-metric__title",t).textContent=e.result.title;const n=this.dom.find(".lh-metric__value",t);n.textContent=e.result.displayValue||"";const r=this.dom.find(".lh-metric__description",t);if(r.appendChild(this.dom.convertMarkdownLinkSnippets(e.result.description)),"error"===e.result.scoreDisplayMode){r.textContent="",n.textContent="Error!";this.dom.createChildOf(r,"span").textContent=e.result.errorMessage||"Report error: no metric information"}return s}_renderOpportunity(e,t){const s=this.dom.cloneTemplate("#tmpl-lh-opportunity",this.templateContext),i=this.populateAuditValues(e,s);if(i.id=e.result.id,!e.result.details||"error"===e.result.scoreDisplayMode)return i;const n=e.result.details;if("opportunity"!==n.type)return i;const r=this.dom.find(".lh-audit__display-text",i),o=n.overallSavingsMs/t*100+"%";if(this.dom.find(".lh-sparkline__bar",i).style.width=o,r.textContent=V.i18n.formatSeconds(n.overallSavingsMs,.01),e.result.displayValue){const t=e.result.displayValue;this.dom.find(".lh-load-opportunity__sparkline",i).title=t,r.title=t}return i}_getWastedMs(e){if(e.result.details&&"opportunity"===e.result.details.type){const t=e.result.details;if("number"!=typeof t.overallSavingsMs)throw new Error("non-opportunity details passed to _getWastedMs");return t.overallSavingsMs}return Number.MIN_VALUE}_getScoringCalculatorHref(e){const t=e.filter((e=>"metrics"===e.group)),s=e.find((e=>"first-cpu-idle"===e.id)),i=e.find((e=>"first-meaningful-paint"===e.id));s&&t.push(s),i&&t.push(i);const n={"cumulative-layout-shift":"CLS","first-contentful-paint":"FCP","first-cpu-idle":"FCI","first-meaningful-paint":"FMP",interactive:"TTI","largest-contentful-paint":"LCP","speed-index":"SI","total-blocking-time":"TBT"},r=[...t.map((e=>{let t;var s;return"number"==typeof e.result.numericValue?(t="cumulative-layout-shift"===e.id?(s=e.result.numericValue,Math.round(100*s)/100):Math.round(e.result.numericValue),t=t.toString()):t="null",[n[e.id]||e.id,t]}))];V.reportJson&&(r.push(["device",V.reportJson.configSettings.formFactor]),r.push(["version",V.reportJson.lighthouseVersion]));const o=new URLSearchParams(r),a=new URL("https://googlechrome.github.io/lighthouse/scorecalc/");return a.hash=o.toString(),a.href}render(e,t,s){const i=V.i18n.strings,n=this.dom.createElement("div","lh-category");if("PSI"===s){const s=this.dom.createElement("div","lh-score__gauge");s.appendChild(this.renderScoreGauge(e,t)),n.appendChild(s)}else this.createPermalinkSpan(n,e.id),n.appendChild(this.renderCategoryHeader(e,t));const r=this.renderAuditGroup(t.metrics),o=this.dom.cloneTemplate("#tmpl-lh-metrics-toggle",this.templateContext),a=this.dom.find(".lh-metrics-toggle",o);r.append(...a.childNodes);const l=e.auditRefs.filter((e=>"metrics"===e.group)),d=this.dom.createChildOf(r,"div","lh-metrics-container");l.forEach((e=>{d.appendChild(this._renderMetric(e))}));const h=this.dom.createChildOf(r,"div","lh-metrics__disclaimer"),c=this.dom.convertMarkdownLinkSnippets(i.varianceDisclaimer);h.appendChild(c);const u=this.dom.createChildOf(h,"a","lh-calclink");u.target="_blank",u.textContent=i.calculatorLink,u.href=this._getScoringCalculatorHref(e.auditRefs),r.classList.add("lh-audit-group--metrics"),n.appendChild(r);const p=this.dom.createChildOf(n,"div","lh-filmstrip-container"),g=e.auditRefs.find((e=>"screenshot-thumbnails"===e.id)),m=g&&g.result;if(m&&m.details){p.id=m.id;const e=this.detailsRenderer.render(m.details);e&&p.appendChild(e)}const _=[];if(["performance-budget","timing-budget"].forEach((t=>{const s=e.auditRefs.find((e=>e.id===t));if(s&&s.result.details){const e=this.detailsRenderer.render(s.result.details);e&&(e.id=t,e.classList.add("lh-audit"),_.push(e))}})),_.length>0){const e=this.renderAuditGroup(t.budgets);_.forEach((t=>e.appendChild(t))),e.classList.add("lh-audit-group--budgets"),n.appendChild(e)}const f=e.auditRefs.filter((e=>"load-opportunities"===e.group&&!V.showAsPassed(e.result))).sort(((e,t)=>this._getWastedMs(t)-this._getWastedMs(e)));if(f.length){const e=2e3,s=f.map((e=>this._getWastedMs(e))),r=Math.max(...s),o=Math.max(1e3*Math.ceil(r/1e3),e),a=this.renderAuditGroup(t["load-opportunities"]),l=this.dom.cloneTemplate("#tmpl-lh-opportunity-header",this.templateContext);this.dom.find(".lh-load-opportunity__col--one",l).textContent=i.opportunityResourceColumnLabel,this.dom.find(".lh-load-opportunity__col--two",l).textContent=i.opportunitySavingsColumnLabel;const d=this.dom.find(".lh-load-opportunity__header",l);a.appendChild(d),f.forEach((e=>a.appendChild(this._renderOpportunity(e,o)))),a.classList.add("lh-audit-group--load-opportunities"),n.appendChild(a)}const b=e.auditRefs.filter((e=>"diagnostics"===e.group&&!V.showAsPassed(e.result))).sort(((e,t)=>("informative"===e.result.scoreDisplayMode?100:Number(e.result.score))-("informative"===t.result.scoreDisplayMode?100:Number(t.result.score))));if(b.length){const e=this.renderAuditGroup(t.diagnostics);b.forEach((t=>e.appendChild(this.renderAudit(t)))),e.classList.add("lh-audit-group--diagnostics"),n.appendChild(e)}const y=e.auditRefs.filter((e=>("load-opportunities"===e.group||"diagnostics"===e.group)&&V.showAsPassed(e.result)));if(!y.length)return n;const v={auditRefs:y,groupDefinitions:t},w=this.renderClump("passed",v);return n.appendChild(w),n}}"undefined"!=typeof module&&module.exports?module.exports=_e:self.PerformanceCategoryRenderer=_e;class fe extends me{render(e,t={}){const s=this.dom.createElement("div","lh-category");this.createPermalinkSpan(s,e.id),s.appendChild(this.renderCategoryHeader(e,t));const i=e.auditRefs,n=i.filter((e=>"manual"!==e.result.scoreDisplayMode)),r=this._renderAudits(n,t);s.appendChild(r);const o=i.filter((e=>"manual"===e.result.scoreDisplayMode)),a=this.renderClump("manual",{auditRefs:o,description:e.manualDescription});return s.appendChild(a),s}renderScoreGauge(e,t){if(null===e.score)return super.renderScoreGauge(e,t);const s=this.dom.cloneTemplate("#tmpl-lh-gauge--pwa",this.templateContext),i=this.dom.find(".lh-gauge--pwa__wrapper",s);i.href="#"+e.id;const n=s.querySelector("svg");if(!n)throw new Error("no SVG element found in PWA score gauge template");fe._makeSvgReferencesUnique(n);const r=this._getGroupIds(e.auditRefs),o=this._getPassingGroupIds(e.auditRefs);if(o.size===r.size)i.classList.add("lh-badged--all");else for(const e of o)i.classList.add("lh-badged--"+e);return this.dom.find(".lh-gauge__label",s).textContent=e.title,i.title=this._getGaugeTooltip(e.auditRefs,t),s}_getGroupIds(e){const t=e.map((e=>e.group)).filter((e=>!!e));return new Set(t)}_getPassingGroupIds(e){const t=this._getGroupIds(e);for(const s of e)!V.showAsPassed(s.result)&&s.group&&t.delete(s.group);return t}_getGaugeTooltip(e,t){const s=this._getGroupIds(e),i=[];for(const n of s){const s=e.filter((e=>e.group===n)),r=s.length,o=s.filter((e=>V.showAsPassed(e.result))).length,a=t[n].title;i.push(`${a}: ${o}/${r}`)}return i.join(", ")}_renderAudits(e,t){const s=this.renderUnexpandableClump(e,t),i=this._getPassingGroupIds(e);for(const e of i){this.dom.find(".lh-audit-group--"+e,s).classList.add("lh-badged")}return s}static _makeSvgReferencesUnique(e){const t=e.querySelector("defs");if(!t)return;const s=V.getUniqueSuffix(),i=t.querySelectorAll("[id]");for(const t of i){const i=t.id,n=`${i}-${s}`;t.id=n;const r=e.querySelectorAll(`use[href="#${i}"]`);for(const e of r)e.setAttribute("href","#"+n);const o=e.querySelectorAll(`[fill="url(#${i})"]`);for(const e of o)e.setAttribute("fill",`url(#${n})`)}}}"undefined"!=typeof module&&module.exports?module.exports=fe:self.PwaCategoryRenderer=fe;class be{constructor(e){this._dom=e,this._templateContext=this._dom.document()}renderReport(e,t){this._dom.setLighthouseChannel(e.configSettings.channel||"unknown");const s=V.prepareReportResult(e);return t.textContent="",t.appendChild(this._renderReport(s)),t}setTemplateContext(e){this._templateContext=e}_renderReportTopbar(e){const t=this._dom.cloneTemplate("#tmpl-lh-topbar",this._templateContext),s=this._dom.find(".lh-topbar__url",t);return s.href=s.textContent=e.finalUrl,s.title=e.finalUrl,t}_renderReportHeader(){const e=this._dom.cloneTemplate("#tmpl-lh-heading",this._templateContext),t=this._dom.cloneTemplate("#tmpl-lh-scores-wrapper",this._templateContext),s=this._dom.find(".lh-scores-wrapper-placeholder",e);return s.parentNode.replaceChild(t,s),e}_renderReportFooter(e){const t=this._dom.cloneTemplate("#tmpl-lh-footer",this._templateContext),s=this._dom.find(".lh-env__items",t);s.id="runtime-settings",this._dom.find(".lh-env__title",t).textContent=V.i18n.strings.runtimeSettingsTitle;const i=V.getEnvironmentDisplayValues(e.configSettings||{}),n=[{name:V.i18n.strings.runtimeSettingsUrl,description:e.finalUrl},{name:V.i18n.strings.runtimeSettingsFetchTime,description:V.i18n.formatDateTime(e.fetchTime)},...i,{name:V.i18n.strings.runtimeSettingsChannel,description:e.configSettings.channel},{name:V.i18n.strings.runtimeSettingsUA,description:e.userAgent},{name:V.i18n.strings.runtimeSettingsUANetwork,description:e.environment&&e.environment.networkUserAgent},{name:V.i18n.strings.runtimeSettingsBenchmark,description:e.environment&&e.environment.benchmarkIndex.toFixed(0)}];e.environment.credits&&e.environment.credits["axe-core"]&&n.push({name:V.i18n.strings.runtimeSettingsAxeVersion,description:e.environment.credits["axe-core"]});for(const e of n){if(!e.description)continue;const t=this._dom.cloneTemplate("#tmpl-lh-env__items",s);this._dom.find(".lh-env__name",t).textContent=e.name,this._dom.find(".lh-env__description",t).textContent=e.description,s.appendChild(t)}return this._dom.find(".lh-footer__version_issue",t).textContent=V.i18n.strings.footerIssue,this._dom.find(".lh-footer__version",t).textContent=e.lighthouseVersion,t}_renderReportWarnings(e){if(!e.runWarnings||0===e.runWarnings.length)return this._dom.createElement("div");const t=this._dom.cloneTemplate("#tmpl-lh-warnings--toplevel",this._templateContext);this._dom.find(".lh-warnings__msg",t).textContent=V.i18n.strings.toplevelWarningsMessage;const s=this._dom.find("ul",t);for(const t of e.runWarnings){s.appendChild(this._dom.createElement("li")).appendChild(this._dom.convertMarkdownLinkSnippets(t))}return t}_renderScoreGauges(e,t,s){const i=[],n=[],r=[];for(const o of Object.values(e.categories)){const a=s[o.id]||t,l=a.renderScoreGauge(o,e.categoryGroups||{});V.isPluginCategory(o.id)?r.push(l):a.renderScoreGauge===t.renderScoreGauge?i.push(l):n.push(l)}return[...i,...n,...r]}_renderReport(e){const t=new ye(e.configSettings.locale,{...V.UIStrings,...e.i18n.rendererFormattedStrings});V.i18n=t,V.reportJson=e;const s=e.audits["full-page-screenshot"]&&e.audits["full-page-screenshot"].details&&"full-page-screenshot"===e.audits["full-page-screenshot"].details.type?e.audits["full-page-screenshot"].details:void 0,i=new z(this._dom,{fullPageScreenshot:s}),n=s&&de.createBackgroundImageStyle(this._dom,s.screenshot),r=new me(this._dom,i);r.setTemplateContext(this._templateContext);const o={performance:new _e(this._dom,i),pwa:new fe(this._dom,i)};Object.values(o).forEach((e=>{e.setTemplateContext(this._templateContext)}));const a=this._dom.createElement("div");a.appendChild(this._renderReportHeader());const l=this._dom.createElement("div","lh-container"),d=this._dom.createElement("div","lh-report");let h;d.appendChild(this._renderReportWarnings(e));if(1===Object.keys(e.categories).length?a.classList.add("lh-header--solo-category"):h=this._dom.createElement("div","lh-scores-header"),h){const t=this._dom.cloneTemplate("#tmpl-lh-scorescale",this._templateContext),s=this._dom.find(".lh-scores-container",a);h.append(...this._renderScoreGauges(e,r,o)),s.appendChild(h),s.appendChild(t);const i=this._dom.createElement("div","lh-sticky-header");i.append(...this._renderScoreGauges(e,r,o)),l.appendChild(i)}const c=d.appendChild(this._dom.createElement("div","lh-categories"));for(const t of Object.values(e.categories)){const s=o[t.id]||r;s.dom.createChildOf(c,"div","lh-category-wrapper").appendChild(s.render(t,e.categoryGroups))}const u=this._dom.createFragment(),p=this._renderReportTopbar(e);return u.appendChild(p),u.appendChild(l),l.appendChild(a),l.appendChild(d),n&&l.appendChild(n),d.appendChild(this._renderReportFooter(e)),u}}"undefined"!=typeof module&&module.exports?module.exports=be:self.ReportRenderer=be;class ye{constructor(e,t){"en-XA"===e&&(e="de"),this._numberDateLocale=e,this._numberFormatter=new Intl.NumberFormat(e),this._strings=t||{}}get strings(){return this._strings}formatNumber(e,t=.1){const s=Math.round(e/t)*t;return this._numberFormatter.format(s)}formatBytesToKiB(e,t=.1){return this._byteFormatterForGranularity(t).format(Math.round(e/1024/t)*t)+" KiB"}formatBytes(e,t=1){return this._byteFormatterForGranularity(t).format(Math.round(e/t)*t)+" bytes"}_byteFormatterForGranularity(e){let t=0;return e<1&&(t=-Math.floor(Math.log10(e))),new Intl.NumberFormat(this._numberDateLocale,{...this._numberFormatter.resolvedOptions(),maximumFractionDigits:t,minimumFractionDigits:t})}formatMilliseconds(e,t=10){const s=Math.round(e/t)*t;return 0===s?this._numberFormatter.format(0)+" ms":this._numberFormatter.format(s)+" ms"}formatSeconds(e,t=.1){const s=Math.round(e/1e3/t)*t;return this._numberFormatter.format(s)+" s"}formatDateTime(e){const t={month:"short",day:"numeric",year:"numeric",hour:"numeric",minute:"numeric",timeZoneName:"short"};let s;try{s=new Intl.DateTimeFormat(this._numberDateLocale,t)}catch(e){t.timeZone="UTC",s=new Intl.DateTimeFormat(this._numberDateLocale,t)}return s.format(new Date(e))}formatDuration(e){let t=e/1e3;if(0===Math.round(t))return"None";const s=[],i={d:86400,h:3600,m:60,s:1};return Object.keys(i).forEach((e=>{const n=i[e],r=Math.floor(t/n);r>0&&(t-=r*n,s.push(`${r} ${e}`))})),s.join(" ")}}"undefined"!=typeof module&&module.exports?module.exports=ye:self.I18n=ye,function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var t;((t="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).Lighthouse||(t.Lighthouse={})).ReportGenerator=e()}}((function(){return function e(t,s,i){function n(o,a){if(!s[o]){if(!t[o]){var l="function"==typeof require&&require;if(!a&&l)return l(o,!0);if(r)return r(o,!0);var d=new Error("Cannot find module '"+o+"'");throw d.code="MODULE_NOT_FOUND",d}var h=s[o]={exports:{}};t[o][0].call(h.exports,(function(e){return n(t[o][1][e]||e)}),h,h.exports,e,t,s,i)}return s[o].exports}for(var r="function"==typeof require&&require,o=0;o<i.length;o++)n(i[o]);return n}({"./html/html-report-assets.js":[function(e,t,s){const i=globalThis.EXPORTED_CACHED_RESOURCES_ONLY_FOR_LIGHTHOUSE;t.exports={get REPORT_CSS(){return i.get("third_party/lighthouse/report-assets/report.css")},get REPORT_JAVASCRIPT(){return i.get("third_party/lighthouse/report-assets/report.js")},get REPORT_TEMPLATE(){return i.get("third_party/lighthouse/report-assets/template.html")},get REPORT_TEMPLATES(){return i.get("third_party/lighthouse/report-assets/templates.html")}}},{}],1:[function(e,t,s){const i=e("./html/html-report-assets.js");class n{static replaceStrings(e,t){if(0===t.length)return e;const s=t[0],i=t.slice(1);return e.split(s.search).map((e=>n.replaceStrings(e,i))).join(s.replacement)}static generateReportHtml(e){const t=JSON.stringify(e).replace(/</g,"\\u003c").replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029"),s=i.REPORT_JAVASCRIPT.replace(/<\//g,"\\u003c/");return n.replaceStrings(i.REPORT_TEMPLATE,[{search:"%%LIGHTHOUSE_JSON%%",replacement:t},{search:"%%LIGHTHOUSE_JAVASCRIPT%%",replacement:s},{search:"/*%%LIGHTHOUSE_CSS%%*/",replacement:i.REPORT_CSS},{search:"%%LIGHTHOUSE_TEMPLATES%%",replacement:i.REPORT_TEMPLATES}])}static generateReportCSV(e){const t=e=>`"${e.replace(/"/g,'""')}"`,s=e=>e.map((e=>e.toString())).map(t),i=Object.keys(e.categories).map((t=>{const i=[],n=e.categories[t],r=null===n.score?-1:n.score;return i.push(s([e.requestedUrl,e.finalUrl,n.title,t+"-score",`Overall ${n.title} Category Score`,"numeric",r])),i.concat(n.auditRefs.map((t=>{const i=e.audits[t.id],r=null===i.score?-1:i.score;return s([e.requestedUrl,e.finalUrl,n.title,i.id,i.title,i.scoreDisplayMode,r])})))}));return[["requestedUrl","finalUrl","category","name","title","type","score"]].concat(...i).map((e=>e.join(","))).join("\r\n")}static generateReport(e,t){const s=Array.isArray(t);"string"==typeof t&&(t=[t]);const i=t.map((t=>{if("html"===t)return n.generateReportHtml(e);if("csv"===t)return n.generateReportCSV(e);if("json"===t)return JSON.stringify(e,null,2);throw new Error("Invalid output mode: "+t)}));return s?i:i[0]}}t.exports=n},{"./html/html-report-assets.js":"./html/html-report-assets.js"}]},{},[1])(1)}));const ve={canOnlyAuditHttphttpsPagesAnd:"Can only audit HTTP/HTTPS pages and `Chrome` extensions. Navigate to a different page to start an audit.",thereMayBeStoredDataAffectingSingular:"There may be stored data affecting loading performance in this location: {PH1}. Audit this page in an incognito window to prevent those resources from affecting your scores.",thereMayBeStoredDataAffectingLoadingPlural:"There may be stored data affecting loading performance in these locations: {PH1}. Audit this page in an incognito window to prevent those resources from affecting your scores.",multipleTabsAreBeingControlledBy:"Multiple tabs are being controlled by the same `service worker`. Close your other tabs on the same origin to audit this page.",atLeastOneCategoryMustBeSelected:"At least one category must be selected.",localStorage:"Local Storage",indexeddb:"IndexedDB",webSql:"Web SQL",performance:"Performance",howLongDoesThisAppTakeToShow:"How long does this app take to show content and become usable",progressiveWebApp:"Progressive Web App",doesThisPageMeetTheStandardOfA:"Does this page meet the standard of a Progressive Web App",bestPractices:"Best practices",doesThisPageFollowBestPractices:"Does this page follow best practices for modern web development",accessibility:"Accessibility",isThisPageUsableByPeopleWith:"Is this page usable by people with disabilities or impairments",seo:"SEO",isThisPageOptimizedForSearch:"Is this page optimized for search engine results ranking",publisherAds:"Publisher Ads",isThisPageOptimizedForAdSpeedAnd:"Is this page optimized for ad speed and quality",applyMobileEmulation:"Apply mobile emulation",applyMobileEmulationDuring:"Apply mobile emulation during auditing",mobile:"Mobile",desktop:"Desktop",simulatedThrottling:"Simulated throttling",simulateASlowerPageLoadBasedOn:"Simulate a slower page load, based on data from an initial unthrottled load. If disabled, the page is actually slowed with applied throttling.",clearStorage:"Clear storage",resetStorageLocalstorage:"Reset storage (localStorage, IndexedDB, etc) before auditing. (Good for performance & PWA testing)"},we=r.registerUIStrings("lighthouse/LighthouseController.ts",ve),Ce=r.getLocalizedString.bind(void 0,we);class Se extends e.ObjectWrapper{constructor(e){super(),e.registerStatusCallback((e=>this.dispatchEventToListeners(Ee.AuditProgressChanged,{message:e})));for(const e of xe)e.setting.addChangeListener(this.recomputePageAuditability.bind(this));for(const e of Le)e.setting.addChangeListener(this.recomputePageAuditability.bind(this));o.TargetManager.instance().observeModels(a.ServiceWorkerManager,this),o.TargetManager.instance().addEventListener(o.Events.InspectedURLChanged,this.recomputePageAuditability,this)}modelAdded(e){this._manager||(this._manager=e,this._serviceWorkerListeners=[this._manager.addEventListener(a.Events.RegistrationUpdated,this.recomputePageAuditability,this),this._manager.addEventListener(a.Events.RegistrationDeleted,this.recomputePageAuditability,this)],this.recomputePageAuditability())}modelRemoved(e){this._manager===e&&(this._serviceWorkerListeners&&t.EventTarget.removeEventListeners(this._serviceWorkerListeners),this._manager=null,this.recomputePageAuditability())}_hasActiveServiceWorker(){if(!this._manager)return!1;const e=this._manager.target();if(!e)return!1;const t=s.ParsedURL.fromString(e.inspectedURL()),i=t&&t.securityOrigin();for(const e of this._manager.registrations().values())if(e.securityOrigin===i)for(const t of e.versions.values())if(t.controlledClients.length>1)return!0;return!1}_hasAtLeastOneCategory(){return xe.some((e=>e.setting.get()))}_unauditablePageMessage(){if(!this._manager)return null;const e=this._manager.target(),t=e&&e.inspectedURL();return t&&!/^(http|chrome-extension)/.test(t)?Ce(ve.canOnlyAuditHttphttpsPagesAnd):null}async _hasImportantResourcesNotCleared(){const e=Le.find((e=>"lighthouse.clear_storage"===e.setting.name));if(e&&!e.setting.get())return"";if(!this._manager)return"";const t=this._manager.target(),s=(await t.storageAgent().invoke_getUsageAndQuota({origin:t.inspectedURL()})).usageBreakdown.filter((e=>e.usage)).map((e=>Te.get(e.storageType))).filter(Boolean);return 1===s.length?Ce(ve.thereMayBeStoredDataAffectingSingular,{PH1:s[0]}):s.length>1?Ce(ve.thereMayBeStoredDataAffectingLoadingPlural,{PH1:s.join(", ")}):""}async _evaluateInspectedURL(){if(!this._manager)return"";const e=this._manager.target(),t=e.model(l.RuntimeModel),s=t&&t.defaultExecutionContext();let i=e.inspectedURL();if(!s)return i;try{const e=await s.evaluate({expression:"window.location.href",objectGroup:"lighthouse",includeCommandLineAPI:!1,silent:!1,returnByValue:!0,generatePreview:!1,allowUnsafeEvalBlockedByCSP:void 0,disableBreaks:void 0,replMode:void 0,throwOnSideEffect:void 0,timeout:void 0},!1,!1);"exceptionDetails"in e&&e.exceptionDetails||!("object"in e)||!e.object||(i=e.object.value,e.object.release())}catch(e){console.error(e)}return i}getFlags(){const e={internalDisableDeviceScreenEmulation:!0};for(const t of Le)t.setFlags(e,t.setting.get());return e}getCategoryIDs(){const e=[];for(const t of xe)t.setting.get()&&e.push(t.configID);return e}async getInspectedURL(e){return(e&&e.force||!this._inspectedURL)&&(this._inspectedURL=await this._evaluateInspectedURL()),this._inspectedURL}recomputePageAuditability(){const e=this._hasActiveServiceWorker(),t=this._hasAtLeastOneCategory(),s=this._unauditablePageMessage();let i="";e?i=Ce(ve.multipleTabsAreBeingControlledBy):t?s&&(i=s):i=Ce(ve.atLeastOneCategoryMustBeSelected),this.dispatchEventToListeners(Ee.PageAuditabilityChanged,{helpText:i}),this._hasImportantResourcesNotCleared().then((e=>{this.dispatchEventToListeners(Ee.PageWarningsChanged,{warning:e})}))}}const Te=new Map([[Protocol.Storage.StorageType.Local_storage,Ce(ve.localStorage)],[Protocol.Storage.StorageType.Indexeddb,Ce(ve.indexeddb)],[Protocol.Storage.StorageType.Websql,Ce(ve.webSql)]]),xe=[{setting:i.Settings.instance().createSetting("lighthouse.cat_perf",!0),configID:"performance",title:Ce(ve.performance),description:Ce(ve.howLongDoesThisAppTakeToShow),plugin:!1},{setting:i.Settings.instance().createSetting("lighthouse.cat_pwa",!0),configID:"pwa",title:Ce(ve.progressiveWebApp),description:Ce(ve.doesThisPageMeetTheStandardOfA),plugin:!1},{setting:i.Settings.instance().createSetting("lighthouse.cat_best_practices",!0),configID:"best-practices",title:Ce(ve.bestPractices),description:Ce(ve.doesThisPageFollowBestPractices),plugin:!1},{setting:i.Settings.instance().createSetting("lighthouse.cat_a11y",!0),configID:"accessibility",title:Ce(ve.accessibility),description:Ce(ve.isThisPageUsableByPeopleWith),plugin:!1},{setting:i.Settings.instance().createSetting("lighthouse.cat_seo",!0),configID:"seo",title:Ce(ve.seo),description:Ce(ve.isThisPageOptimizedForSearch),plugin:!1},{setting:i.Settings.instance().createSetting("lighthouse.cat_pubads",!1),plugin:!0,configID:"lighthouse-plugin-publisher-ads",title:Ce(ve.publisherAds),description:Ce(ve.isThisPageOptimizedForAdSpeedAnd)}],Le=[{setting:i.Settings.instance().createSetting("lighthouse.device_type","mobile"),title:Ce(ve.applyMobileEmulation),description:Ce(ve.applyMobileEmulationDuring),setFlags:(e,t)=>{e.emulatedFormFactor=t},options:[{label:Ce(ve.mobile),value:"mobile"},{label:Ce(ve.desktop),value:"desktop"}],learnMore:void 0},{setting:i.Settings.instance().createSetting("lighthouse.throttling",!0),title:Ce(ve.simulatedThrottling),learnMore:"https://github.com/GoogleChrome/lighthouse/blob/master/docs/throttling.md#devtools-lighthouse-panel-throttling",description:Ce(ve.simulateASlowerPageLoadBasedOn),setFlags:(e,t)=>{e.throttlingMethod=t?"simulate":"devtools"},options:void 0},{setting:i.Settings.instance().createSetting("lighthouse.clear_storage",!0),title:Ce(ve.clearStorage),description:Ce(ve.resetStorageLocalstorage),setFlags:(e,t)=>{e.disableStorageReset=!t},options:void 0,learnMore:void 0}],Ee={PageAuditabilityChanged:Symbol("PageAuditabilityChanged"),PageWarningsChanged:Symbol("PageWarningsChanged"),AuditProgressChanged:Symbol("AuditProgressChanged"),RequestLighthouseStart:Symbol("RequestLighthouseStart"),RequestLighthouseCancel:Symbol("RequestLighthouseCancel")};var Ae=Object.freeze({__proto__:null,UIStrings:ve,LighthouseController:Se,Presets:xe,RuntimeSettings:Le,Events:Ee});class ke extends e.ObjectWrapper{constructor(){super(),this._rawConnection=null,this._backend=null,this._backendPromise=null,this._status=null}async attach(){await o.TargetManager.instance().suspendAllTargets();const e=o.TargetManager.instance().mainTarget();if(!e)throw new Error("Unable to find main target required for LightHouse");const t=e.model(d.ChildTargetManager);if(!t)throw new Error("Unable to find child target manager required for LightHouse");this._rawConnection=await t.createParallelConnection((e=>{"string"==typeof e&&(e=JSON.parse(e)),this._dispatchProtocolMessage(e)}))}getLocales(){return navigator.languages}startLighthouse(e,t,s){const i=this.getLocales();return this._send("start",{url:e,categoryIDs:t,flags:s,locales:i})}async detach(){await this._send("stop"),this._backend&&(await this._backend.dispose(),this._backend=null),this._backendPromise=null,this._rawConnection&&await this._rawConnection.disconnect(),await o.TargetManager.instance().resumeAllTargets()}registerStatusCallback(e){this._status=e}_dispatchProtocolMessage(e){const t=e;(t.sessionId||t.method&&t.method.startsWith("Target"))&&this._send("dispatchProtocolMessage",{message:JSON.stringify(e)})}_initWorker(){const e=I.createAppService("lighthouse_worker","LighthouseService").then((e=>{this._backend||(this._backend=e,e&&(e.on("statusUpdate",(e=>{this._status&&e&&"message"in e&&this._status(e.message)})),e.on("sendProtocolMessage",(e=>{e&&"message"in e&&this._sendProtocolMessage(e.message)}))))}));return this._backendPromise=e,e}_sendProtocolMessage(e){this._rawConnection&&this._rawConnection.sendRawMessage(e)}async _send(e,t){let s=this._backendPromise;if(s||(s=this._initWorker()),await s,!this._backend)throw new Error("Backend is missing to send LightHouse message to");return this._backend.send(e,t)}}var Pe=Object.freeze({__proto__:null,ProtocolService:ke});const Re={viewOriginalTrace:"View Original Trace",viewTrace:"View Trace",thePerformanceMetricsAboveAre:'The performance metrics above are simulated and won\'t match the timings found in this trace. Disable simulated throttling in "Lighthouse Settings" if you want the timings to match.'},Me=r.registerUIStrings("lighthouse/LighthouseReportRenderer.ts",Re),Ie=r.getLocalizedString.bind(void 0,Me);class De extends self.ReportRenderer{constructor(e){super(e)}static addViewTraceButton(e,t){if(!t||!t.traces||!t.traces.defaultPass)return;const s="simulate"===t.settings.throttlingMethod,i=e.querySelector(".lh-audit-group");if(!i)return;const n=i.querySelector(".lh-metrics__disclaimer");if(!n)return;const r=t.traces.defaultPass,o=Ie(s?Re.viewOriginalTrace:Re.viewTrace),a=y.createTextButton(o,(async function(){_.actionTaken(f.Action.LighthouseViewTrace),await w.InspectorView.instance().showPanel("timeline"),N.TimelinePanel.instance().loadFromEvents(r.traceEvents)}),"view-trace");s&&v.Tooltip.install(a,Ie(Re.thePerformanceMetricsAboveAre)),i.insertBefore(a,n.nextSibling)}static async linkifyNodeDetails(e){const t=o.TargetManager.instance().mainTarget();if(!t)return;const s=t.model(h.DOMModel);if(s)for(const t of e.getElementsByClassName("lh-node")){const e=t,i=e.dataset;if(!i.path)continue;const r=await s.pushNodeByPathToFrontend(i.path);if(!r)continue;const o=s.nodeForId(r);if(!o)continue;const a=await n.Linkifier.linkify(o,{tooltip:i.snippet,preventKeyboardFocus:void 0});v.Tooltip.install(e,"");const l=e.querySelector(".lh-element-screenshot");e.textContent="",l&&e.append(l),e.appendChild(a)}}static async linkifySourceLocationDetails(e){for(const t of e.getElementsByClassName("lh-source-location")){const e=t,s=e.dataset;if(!s.sourceUrl||!s.sourceLine||!s.sourceColumn)continue;const i=s.sourceUrl,n=Number(s.sourceLine),r=Number(s.sourceColumn),o=await D.Linkifier.linkifyURL(i,{lineNumber:n,columnNumber:r,maxLength:40,bypassURLTrimming:void 0,className:void 0,preventClick:void 0,tabStop:void 0,text:void 0});v.Tooltip.install(e,""),e.textContent="",e.appendChild(o)}}static handleDarkMode(e){"dark"===U.instance().themeName()&&e.classList.add("dark")}}class Oe extends self.ReportUIFeatures{constructor(e){super(e),this._beforePrint=null,this._afterPrint=null}setBeforePrint(e){this._beforePrint=e}setAfterPrint(e){this._afterPrint=e}getReportHtml(){return this.resetUIState(),Lighthouse.ReportGenerator.generateReportHtml(this.json)}async _saveFile(e){const t=`${new s.ParsedURL(this.json.finalUrl).domain().replace(/[^a-z0-9.-]+/gi,"_")}-${O.toISO8601Compact(new Date(this.json.fetchTime))}${e.type.match("json")?".json":".html"}`,i=await e.text();B.FileManager.instance().save(t,i,!0)}async _print(){const e=this.getDocument().querySelector(".lh-root").cloneNode(!0),t=window.open("","_blank","channelmode=1,status=1,resizable=1");if(!t)return;const s=t.document.createElement("style");s.textContent=b.cachedResources.get("third_party/lighthouse/report-assets/report.css")||"",t.document.head.appendChild(s),t.document.body.replaceWith(e),await De.linkifyNodeDetails(e),this._beforePrint&&this._beforePrint(),t.focus(),t.print(),t.close(),this._afterPrint&&this._afterPrint()}getDocument(){return this._document}resetUIState(){this._resetUIState()}}var Ue=Object.freeze({__proto__:null,UIStrings:Re,LighthouseReportRenderer:De,LighthouseReportUIFeatures:Oe});const Ne={reports:"Reports",newReport:"(new report)"},Be=r.registerUIStrings("lighthouse/LighthouseReportSelector.ts",Ne),Fe=r.getLocalizedString.bind(void 0,Be);class He{constructor(e){this._renderNewLighthouseView=e,this._newLighthouseItem=document.createElement("option"),this._comboBox=new C.ToolbarComboBox(this._handleChange.bind(this),Fe(Ne.reports),"lighthouse-report"),this._comboBox.setMaxWidth(180),this._comboBox.setMinWidth(140),this._itemByOptionElement=new Map,this._setEmptyState()}_setEmptyState(){this._comboBox.selectElement().removeChildren(),this._comboBox.setEnabled(!1),this._newLighthouseItem=document.createElement("option"),this._newLighthouseItem.label=Fe(Ne.newReport),this._comboBox.selectElement().appendChild(this._newLighthouseItem),this._comboBox.select(this._newLighthouseItem)}_handleChange(e){const t=this._selectedItem();t?t.select():this._renderNewLighthouseView()}_selectedItem(){const e=this._comboBox.selectedOption();return this._itemByOptionElement.get(e)}hasCurrentSelection(){return Boolean(this._selectedItem())}hasItems(){return this._itemByOptionElement.size>0}comboBox(){return this._comboBox}prepend(e){const t=e.optionElement(),s=this._comboBox.selectElement();this._itemByOptionElement.set(t,e),s.insertBefore(t,s.firstElementChild),this._comboBox.setEnabled(!0),this._comboBox.select(t),e.select()}clearAll(){for(const e of this._comboBox.options())e!==this._newLighthouseItem&&(this._itemByOptionElement.get(e)?.delete(),this._itemByOptionElement.delete(e));this._setEmptyState()}selectNewReport(){this._comboBox.select(this._newLighthouseItem)}}class $e{constructor(e,t,i){this._lighthouseResult=e,this._renderReport=t,this._showLandingCallback=i;const n=new s.ParsedURL(e.finalUrl),r=e.fetchTime;this._element=document.createElement("option"),this._element.label=`${new Date(r).toLocaleTimeString()} - ${n.domain()}`}select(){this._renderReport()}optionElement(){return this._element}delete(){this._element&&this._element.remove(),this._showLandingCallback()}}var je=Object.freeze({__proto__:null,UIStrings:Ne,ReportSelector:He,Item:$e});class Ge{constructor(e,t,s){this._setting=t,this._options=e,this.element=document.createElement("div"),S.setDescription(this.element,s),S.markAsRadioGroup(this.element),this._radioElements=[];for(const e of this._options){const i=T.Fragment.build`
|
|
18
|
+
<label $="label" class="lighthouse-radio">
|
|
19
|
+
<input $="input" type="radio" value=${e.value} name=${t.name}>
|
|
20
|
+
<span $="span" class="lighthouse-radio-text">${e.label}</span>
|
|
21
|
+
</label>
|
|
22
|
+
`;this.element.appendChild(i.element()),s&&(v.Tooltip.install(i.$("input"),s),v.Tooltip.install(i.$("span"),s));const n=i.$("input");n.addEventListener("change",this._valueChanged.bind(this)),this._radioElements.push(n)}this._ignoreChangeEvents=!1,this._selectedIndex=-1,t.addChangeListener(this._settingChanged,this),this._settingChanged()}_updateUI(){this._ignoreChangeEvents=!0,this._radioElements[this._selectedIndex].checked=!0,this._ignoreChangeEvents=!1}_settingChanged(){const e=this._setting.get();this._selectedIndex=this._options.findIndex((t=>t.value===e)),this._updateUI()}_valueChanged(e){if(this._ignoreChangeEvents)return;const t=this._radioElements.find((e=>e.checked));t&&this._setting.set(t.value)}}var Ve=Object.freeze({__proto__:null,RadioSetting:Ge});const We={learnMore:"Learn more",device:"Device",categories:"Categories",communityPluginsBeta:"Community Plugins (beta)",generateReport:"Generate report",identifyAndFixCommonProblemsThat:"Identify and fix common problems that affect your site's performance, accessibility, and user experience."},qe=r.registerUIStrings("lighthouse/LighthouseStartView.ts",We),ze=r.getLocalizedString.bind(void 0,qe);class Je extends x.Widget{constructor(e){super(),this.registerRequiredCSS("lighthouse/lighthouseStartView.css",{enableLegacyPatching:!1}),this._controller=e,this._settingsToolbar=new C.Toolbar(""),this._render()}settingsToolbar(){return this._settingsToolbar}_populateRuntimeSettingAsRadio(e,t,s){const i=Le.find((t=>t.setting.name===e));if(!i||!i.options)throw new Error(e+" is not a setting with options");const n=new Ge(i.options,i.setting,i.description);s.appendChild(n.element),S.setAccessibleName(n.element,t)}_populateRuntimeSettingAsToolbarCheckbox(e,t){const s=Le.find((t=>t.setting.name===e));if(!s||!s.title)throw new Error(e+" is not a setting with a title");s.setting.setTitle(s.title);const i=new C.ToolbarSettingCheckbox(s.setting,s.description);if(t.appendToolbarItem(i),s.learnMore){const e=L.XLink.create(s.learnMore,ze(We.learnMore),"lighthouse-learn-more");e.style.padding="5px",i.element.appendChild(e)}}_populateFormControls(e){const t=e.$("device-type-form-elements");this._populateRuntimeSettingAsRadio("lighthouse.device_type",ze(We.device),t);const s=e.$("categories-form-elements"),i=e.$("plugins-form-elements");for(const e of xe){const t=e.plugin?i:s;e.setting.setTitle(e.title);const n=new C.ToolbarSettingCheckbox(e.setting,e.description);t.createChild("div","vbox lighthouse-launcher-row").appendChild(n.element)}S.markAsGroup(s),S.setAccessibleName(s,ze(We.categories)),S.markAsGroup(i),S.setAccessibleName(i,ze(We.communityPluginsBeta))}_render(){this._populateRuntimeSettingAsToolbarCheckbox("lighthouse.clear_storage",this._settingsToolbar),this._populateRuntimeSettingAsToolbarCheckbox("lighthouse.throttling",this._settingsToolbar),this._startButton=y.createTextButton(ze(We.generateReport),(()=>this._controller.dispatchEventToListeners(Ee.RequestLighthouseStart,this._startButton.matches(":focus-visible"))),"",!0),this.setDefaultFocusedElement(this._startButton);const e=ze(We.identifyAndFixCommonProblemsThat),t=T.Fragment.build`
|
|
23
|
+
<div class="vbox lighthouse-start-view">
|
|
24
|
+
<header>
|
|
25
|
+
<div class="lighthouse-logo"></div>
|
|
26
|
+
<div class="lighthouse-start-button-container hbox">
|
|
27
|
+
${this._startButton}
|
|
28
|
+
</div>
|
|
29
|
+
<div $="help-text" class="lighthouse-help-text hidden"></div>
|
|
30
|
+
<div class="lighthouse-start-view-text">
|
|
31
|
+
<span>${e}</span>
|
|
32
|
+
${L.XLink.create("https://developers.google.com/web/tools/lighthouse/",ze(We.learnMore))}
|
|
33
|
+
</div>
|
|
34
|
+
<div $="warning-text" class="lighthouse-warning-text hidden"></div>
|
|
35
|
+
</header>
|
|
36
|
+
<form>
|
|
37
|
+
<div class="lighthouse-form-categories">
|
|
38
|
+
<div class="lighthouse-form-section">
|
|
39
|
+
<div class="lighthouse-form-section-label">
|
|
40
|
+
${ze(We.categories)}
|
|
41
|
+
</div>
|
|
42
|
+
<div class="lighthouse-form-elements" $="categories-form-elements"></div>
|
|
43
|
+
</div>
|
|
44
|
+
<div class="lighthouse-form-section">
|
|
45
|
+
<div class="lighthouse-form-section-label">
|
|
46
|
+
<div class="lighthouse-icon-label">${ze(We.communityPluginsBeta)}</div>
|
|
47
|
+
</div>
|
|
48
|
+
<div class="lighthouse-form-elements" $="plugins-form-elements"></div>
|
|
49
|
+
</div>
|
|
50
|
+
</div>
|
|
51
|
+
<div class="lighthouse-form-section">
|
|
52
|
+
<div class="lighthouse-form-section-label">
|
|
53
|
+
${ze(We.device)}
|
|
54
|
+
</div>
|
|
55
|
+
<div class="lighthouse-form-elements" $="device-type-form-elements"></div>
|
|
56
|
+
</div>
|
|
57
|
+
</form>
|
|
58
|
+
</div>
|
|
59
|
+
`;this._helpText=t.$("help-text"),this._warningText=t.$("warning-text"),this._populateFormControls(t),this.contentElement.appendChild(t.element()),this.contentElement.style.overflow="auto"}onResize(){const e=this.contentElement.offsetWidth<560,t=this.contentElement.querySelector(".lighthouse-start-view");t&&(t.classList.toggle("hbox",!e),t.classList.toggle("vbox",e))}focusStartButton(){this._startButton.focus()}setStartButtonEnabled(e){this._helpText&&this._helpText.classList.toggle("hidden",e),this._startButton&&(this._startButton.disabled=!e)}setUnauditableExplanation(e){this._helpText&&(this._helpText.textContent=e)}setWarningText(e){this._warningText&&(this._warningText.textContent=e,this._warningText.classList.toggle("hidden",!e),this._shouldConfirm=Boolean(e))}}var Ke=Object.freeze({__proto__:null,UIStrings:We,StartView:Je});const Ye={cancel:"Cancel",loading:"Loading…",auditingS:"Auditing {PH1}",auditingYourWebPage:"Auditing your web page",cancelling:"Cancelling…",lighthouseIsWarmingUp:"`Lighthouse` is warming up…",lighthouseIsLoadingYourPage:"`Lighthouse` is loading your page",fastFactMessageWithPlaceholder:"💡 {PH1}",ahSorryWeRanIntoAnError:"Ah, sorry! We ran into an error.",tryToNavigateToTheUrlInAFresh:"Try to navigate to the URL in a fresh `Chrome` profile without any other tabs or extensions open and try again.",ifThisIssueIsReproduciblePlease:"If this issue is reproducible, please report it at the `Lighthouse` `GitHub` repo.",lighthouseIsLoadingThePage:"Lighthouse is loading the page.",lighthouseIsGatheringInformation:"`Lighthouse` is gathering information about the page to compute your score.",almostThereLighthouseIsNow:"Almost there! `Lighthouse` is now generating your report.",lighthouseIsLoadingYourPageWith:"`Lighthouse` is loading your page with throttling to measure performance on a mobile device on 3G.",lighthouseIsLoadingYourPageWithThrottling:"`Lighthouse` is loading your page with throttling to measure performance on a slow desktop on 3G.",lighthouseIsLoadingYourPageWithMobile:"`Lighthouse` is loading your page with mobile emulation.",mbTakesAMinimumOfSecondsTo:"1MB takes a minimum of 5 seconds to download on a typical 3G connection [Source: `WebPageTest` and `DevTools` 3G definition].",rebuildingPinterestPagesFor:"Rebuilding Pinterest pages for performance increased conversion rates by 15% [Source: `WPO Stats`]",byReducingTheResponseSizeOfJson:"By reducing the response size of JSON needed for displaying comments, Instagram saw increased impressions [Source: `WPO Stats`]",walmartSawAIncreaseInRevenueFor:"Walmart saw a 1% increase in revenue for every 100ms improvement in page load [Source: `WPO Stats`]",ifASiteTakesSecondToBecome:"If a site takes >1 second to become interactive, users lose attention, and their perception of completing the page task is broken [Source: `Google Developers Blog`]",OfGlobalMobileUsersInWereOnGOrG:"75% of global mobile users in 2016 were on 2G or 3G [Source: `GSMA Mobile`]",theAverageUserDeviceCostsLess:"The average user device costs less than 200 USD. [Source: `International Data Corporation`]",SecondsIsTheAverageTimeAMobile:"19 seconds is the average time a mobile web page takes to load on a 3G connection [Source: `Google DoubleClick blog`]",OfMobilePagesTakeNearlySeconds:"70% of mobile pages take nearly 7 seconds for the visual content above the fold to display on the screen. [Source: `Think with Google`]",asPageLoadTimeIncreasesFromOne:"As page load time increases from one second to seven seconds, the probability of a mobile site visitor bouncing increases 113%. [Source: `Think with Google`]",asTheNumberOfElementsOnAPage:"As the number of elements on a page increases from 400 to 6,000, the probability of conversion drops 95%. [Source: `Think with Google`]",lighthouseOnlySimulatesMobile:"`Lighthouse` only simulates mobile performance; to measure performance on a real device, try WebPageTest.org [Source: `Lighthouse` team]"},Qe=r.registerUIStrings("lighthouse/LighthouseStatusView.ts",Ye),Ze=r.getLocalizedString.bind(void 0,Qe);class Xe{constructor(e){this._controller=e,this._statusView=null,this._statusHeader=null,this._progressWrapper=null,this._progressBar=null,this._statusText=null,this._cancelButton=null,this._inspectedURL="",this._textChangedAt=0,this._fastFactsQueued=rt.slice(),this._currentPhase=null,this._scheduledTextChangeTimeout=null,this._scheduledFastFactTimeout=null,this._dialog=new E.Dialog,this._dialog.setDimmed(!0),this._dialog.setCloseOnEscape(!1),this._dialog.setOutsideClickCallback((e=>e.consume(!0))),this._render()}_render(){const e=A.createShadowRootWithCoreStyles(this._dialog.contentElement,{cssFile:"lighthouse/lighthouseDialog.css",enableLegacyPatching:!1,delegatesFocus:void 0}).createChild("div","lighthouse-view vbox"),t=y.createTextButton(Ze(Ye.cancel),this._cancel.bind(this)),s=T.Fragment.build`
|
|
60
|
+
<div class="lighthouse-view vbox">
|
|
61
|
+
<h2 $="status-header">Auditing your web page…</h2>
|
|
62
|
+
<div class="lighthouse-status vbox" $="status-view">
|
|
63
|
+
<div class="lighthouse-progress-wrapper" $="progress-wrapper">
|
|
64
|
+
<div class="lighthouse-progress-bar" $="progress-bar"></div>
|
|
65
|
+
</div>
|
|
66
|
+
<div class="lighthouse-status-text" $="status-text"></div>
|
|
67
|
+
</div>
|
|
68
|
+
${t}
|
|
69
|
+
</div>
|
|
70
|
+
`;e.appendChild(s.element()),this._statusView=s.$("status-view"),this._statusHeader=s.$("status-header"),this._progressWrapper=s.$("progress-wrapper"),this._progressBar=s.$("progress-bar"),this._statusText=s.$("status-text"),S.markAsProgressBar(this._progressBar,0,it.length-1),this._cancelButton=t,S.markAsStatus(this._statusText),this._dialog.setDefaultFocusedElement(t),this._dialog.setSizeBehavior(k.SizeBehavior.SetExactWidthMaxHeight),this._dialog.setMaxContentSize(new P.Size(500,400))}_reset(){this._resetProgressBarClasses(),clearTimeout(this._scheduledFastFactTimeout),this._textChangedAt=0,this._fastFactsQueued=rt.slice(),this._currentPhase=null,this._scheduledTextChangeTimeout=null,this._scheduledFastFactTimeout=null}show(e){this._reset(),this.updateStatus(Ze(Ye.loading));const t=s.ParsedURL.fromString(this._inspectedURL),i=t&&t.host,n=i?Ze(Ye.auditingS,{PH1:i}):Ze(Ye.auditingYourWebPage);this._renderStatusHeader(n),this._dialog.show(e)}_renderStatusHeader(e){this._statusHeader&&(this._statusHeader.textContent=e+"…")}hide(){this._dialog.isShowing()&&this._dialog.hide()}setInspectedURL(e=""){this._inspectedURL=e}updateStatus(e){if(!e||!this._statusText)return;if(e.startsWith("Cancel"))return this._commitTextChange(Ze(Ye.cancelling)),void clearTimeout(this._scheduledFastFactTimeout);const t=this._getPhaseForMessage(e),s=it.indexOf(t),i=it.indexOf(this._currentPhase);if(t||this._currentPhase){if(t&&(!this._currentPhase||i<s)){this._currentPhase=t;const e=this._getMessageForPhase(t);this._scheduleTextChange(e),this._scheduleFastFactCheck(),this._resetProgressBarClasses(),this._progressBar&&(this._progressBar.classList.add(t.progressBarClass),S.setProgressBarValue(this._progressBar,s,e))}}else this._commitTextChange(Ze(Ye.lighthouseIsWarmingUp)),clearTimeout(this._scheduledFastFactTimeout)}_cancel(){this._controller.dispatchEventToListeners(Ee.RequestLighthouseCancel)}_getMessageForPhase(e){if(e.message)return e.message;const t=Le.find((e=>"lighthouse.device_type"===e.setting.name)),s=Le.find((e=>"lighthouse.throttling"===e.setting.name)),i=t?t.setting.get():"",n=s?s.setting.get():"",r=nt.find((e=>e.deviceType===i&&e.throttling===n));return r?r.message:Ze(Ye.lighthouseIsLoadingYourPage)}_getPhaseForMessage(e){return it.find((t=>e.startsWith(t.statusMessagePrefix)))||null}_resetProgressBarClasses(){this._progressBar&&(this._progressBar.className="lighthouse-progress-bar")}_scheduleFastFactCheck(){this._currentPhase&&!this._scheduledFastFactTimeout&&(this._scheduledFastFactTimeout=window.setTimeout((()=>{this._updateFastFactIfNecessary(),this._scheduledFastFactTimeout=null,this._scheduleFastFactCheck()}),100))}_updateFastFactIfNecessary(){if(performance.now()-this._textChangedAt<et)return;if(!this._fastFactsQueued.length)return;const e=Math.floor(Math.random()*this._fastFactsQueued.length);this._scheduleTextChange(Ze(Ye.fastFactMessageWithPlaceholder,{PH1:this._fastFactsQueued[e]})),this._fastFactsQueued.splice(e,1)}_commitTextChange(e){this._statusText&&(this._textChangedAt=performance.now(),this._statusText.textContent=e)}_scheduleTextChange(e){this._scheduledTextChangeTimeout&&clearTimeout(this._scheduledTextChangeTimeout);const t=performance.now()-this._textChangedAt,s=tt-t;this._scheduledTextChangeTimeout=window.setTimeout((()=>{this._commitTextChange(e)}),Math.max(s,0))}renderBugReport(e){if(console.error(e),this._scheduledFastFactTimeout&&window.clearTimeout(this._scheduledFastFactTimeout),this._scheduledTextChangeTimeout&&window.clearTimeout(this._scheduledTextChangeTimeout),this._resetProgressBarClasses(),this._progressBar&&this._progressBar.classList.add("errored"),this._statusText)if(this._commitTextChange(""),y.createTextChild(this._statusText.createChild("p"),Ze(Ye.ahSorryWeRanIntoAnError)),st.some((t=>t.test(e.message)))){const e=Ze(Ye.tryToNavigateToTheUrlInAFresh);y.createTextChild(this._statusText.createChild("p"),e)}else this._renderBugReportBody(e,this._inspectedURL)}renderText(e,t){this._renderStatusHeader(e),this._commitTextChange(t)}toggleCancelButton(e){this._cancelButton&&(this._cancelButton.style.visibility=e?"visible":"hidden")}_renderBugReportBody(e,t){const s=navigator.userAgent.match(/Chrome\/(\S+)/)||["","Unknown"],i=`\n${e.friendlyMessage||e.message}\n\`\`\`\nChannel: DevTools\nInitial URL: ${t}\nChrome Version: ${s[1]}\nStack Trace: ${e.stack}\n\`\`\`\n`;this._statusText&&(y.createTextChild(this._statusText.createChild("p"),Ze(Ye.ifThisIssueIsReproduciblePlease)),y.createTextChild(this._statusText.createChild("code","monospace"),i.trim()))}}const et=6e3,tt=3e3,st=[/PARSING_PROBLEM/,/DOCUMENT_REQUEST/,/READ_FAILED/,/TRACING_ALREADY_STARTED/,/^You must provide a url to the runner/,/^You probably have multiple tabs open/],it=[{id:"loading",progressBarClass:"loading",message:Ze(Ye.lighthouseIsLoadingThePage),statusMessagePrefix:"Loading page"},{id:"gathering",progressBarClass:"gathering",message:Ze(Ye.lighthouseIsGatheringInformation),statusMessagePrefix:"Gathering"},{id:"auditing",progressBarClass:"auditing",message:Ze(Ye.almostThereLighthouseIsNow),statusMessagePrefix:"Auditing"}],nt=[{deviceType:"mobile",throttling:"on",message:Ze(Ye.lighthouseIsLoadingYourPageWith)},{deviceType:"desktop",throttling:"on",message:Ze(Ye.lighthouseIsLoadingYourPageWithThrottling)},{deviceType:"mobile",throttling:"off",message:Ze(Ye.lighthouseIsLoadingYourPageWithMobile)},{deviceType:"desktop",throttling:"off",message:Ze(Ye.lighthouseIsLoadingThePage)}],rt=[Ze(Ye.mbTakesAMinimumOfSecondsTo),Ze(Ye.rebuildingPinterestPagesFor),Ze(Ye.byReducingTheResponseSizeOfJson),Ze(Ye.walmartSawAIncreaseInRevenueFor),Ze(Ye.ifASiteTakesSecondToBecome),Ze(Ye.OfGlobalMobileUsersInWereOnGOrG),Ze(Ye.theAverageUserDeviceCostsLess),Ze(Ye.SecondsIsTheAverageTimeAMobile),Ze(Ye.OfMobilePagesTakeNearlySeconds),Ze(Ye.asPageLoadTimeIncreasesFromOne),Ze(Ye.asTheNumberOfElementsOnAPage),Ze(Ye.OfMobilePagesTakeNearlySeconds),Ze(Ye.lighthouseOnlySimulatesMobile)];var ot=Object.freeze({__proto__:null,UIStrings:Ye,StatusView:Xe,fastFactRotationInterval:et,minimumTextVisibilityDuration:tt,StatusPhases:it});const at={dropLighthouseJsonHere:"Drop `Lighthouse` JSON here",performAnAudit:"Perform an audit…",clearAll:"Clear all",lighthouseSettings:"`Lighthouse` settings",printing:"Printing",thePrintPopupWindowIsOpenPlease:"The print popup window is open. Please close it to continue.",cancelling:"Cancelling"},lt=r.registerUIStrings("lighthouse/LighthousePanel.ts",at),dt=r.getLocalizedString.bind(void 0,lt);let ht;class ct extends R.Panel{constructor(){super("lighthouse"),this.registerRequiredCSS("third_party/lighthouse/report-assets/report.css",{enableLegacyPatching:!1}),this.registerRequiredCSS("lighthouse/lighthousePanel.css",{enableLegacyPatching:!1}),this._protocolService=new ke,this._controller=new Se(this._protocolService),this._startView=new Je(this._controller),this._statusView=new Xe(this._controller),this._warningText=null,this._unauditableExplanation=null,this._cachedRenderedReports=new Map,this._dropTarget=new M.DropTarget(this.contentElement,[M.Type.File],dt(at.dropLighthouseJsonHere),this._handleDrop.bind(this)),this._controller.addEventListener(Ee.PageAuditabilityChanged,this._refreshStartAuditUI.bind(this)),this._controller.addEventListener(Ee.PageWarningsChanged,this._refreshWarningsUI.bind(this)),this._controller.addEventListener(Ee.AuditProgressChanged,this._refreshStatusUI.bind(this)),this._controller.addEventListener(Ee.RequestLighthouseStart,(e=>{this._startLighthouse(e)})),this._controller.addEventListener(Ee.RequestLighthouseCancel,(e=>{this._cancelLighthouse()})),this._renderToolbar(),this._auditResultsElement=this.contentElement.createChild("div","lighthouse-results-container"),this._renderStartView(),this._controller.recomputePageAuditability()}static instance(e={forceNew:null}){const{forceNew:t}=e;return ht&&!t||(ht=new ct),ht}static getEvents(){return Ee}_refreshWarningsUI(e){this._isLHAttached||(this._warningText=e.data.warning,this._startView.setWarningText(e.data.warning))}_refreshStartAuditUI(e){this._isLHAttached||(this._unauditableExplanation=e.data.helpText,this._startView.setUnauditableExplanation(e.data.helpText),this._startView.setStartButtonEnabled(!e.data.helpText))}_refreshStatusUI(e){this._statusView.updateStatus(e.data.message)}_refreshToolbarUI(){this._clearButton.setEnabled(this._reportSelector.hasItems())}_clearAll(){this._reportSelector.clearAll(),this._renderStartView(),this._refreshToolbarUI()}_renderToolbar(){const e=this.element.createChild("div","lighthouse-toolbar-container"),t=new C.Toolbar("",e);this._newButton=new C.ToolbarButton(dt(at.performAnAudit),"largeicon-add"),t.appendToolbarItem(this._newButton),this._newButton.addEventListener(C.ToolbarButton.Events.Click,this._renderStartView.bind(this)),t.appendSeparator(),this._reportSelector=new He((()=>this._renderStartView())),t.appendToolbarItem(this._reportSelector.comboBox()),this._clearButton=new C.ToolbarButton(dt(at.clearAll),"largeicon-clear"),t.appendToolbarItem(this._clearButton),this._clearButton.addEventListener(C.ToolbarButton.Events.Click,this._clearAll.bind(this)),this._settingsPane=new x.HBox,this._settingsPane.show(this.contentElement),this._settingsPane.element.classList.add("lighthouse-settings-pane"),this._settingsPane.element.appendChild(this._startView.settingsToolbar().element),this._showSettingsPaneSetting=i.Settings.instance().createSetting("lighthouseShowSettingsToolbar",!1),this._rightToolbar=new C.Toolbar("",e),this._rightToolbar.appendSeparator(),this._rightToolbar.appendToolbarItem(new C.ToolbarSettingToggle(this._showSettingsPaneSetting,"largeicon-settings-gear",dt(at.lighthouseSettings))),this._showSettingsPaneSetting.addChangeListener(this._updateSettingsPaneVisibility.bind(this)),this._updateSettingsPaneVisibility(),this._refreshToolbarUI()}_updateSettingsPaneVisibility(){this._settingsPane.element.classList.toggle("hidden",!this._showSettingsPaneSetting.get())}_toggleSettingsDisplay(e){this._rightToolbar.element.classList.toggle("hidden",!e),this._settingsPane.element.classList.toggle("hidden",!e),this._updateSettingsPaneVisibility()}_renderStartView(){this._auditResultsElement.removeChildren(),this._statusView.hide(),this._reportSelector.selectNewReport(),this.contentElement.classList.toggle("in-progress",!1),this._startView.show(this.contentElement),this._toggleSettingsDisplay(!0),this._startView.setUnauditableExplanation(this._unauditableExplanation),this._startView.setStartButtonEnabled(!this._unauditableExplanation),this._unauditableExplanation||this._startView.focusStartButton(),this._startView.setWarningText(this._warningText),this._newButton.setEnabled(!1),this._refreshToolbarUI(),this.setDefaultFocusedChild(this._startView)}_renderStatusView(e){this.contentElement.classList.toggle("in-progress",!0),this._statusView.setInspectedURL(e),this._statusView.show(this.contentElement)}_beforePrint(){this._statusView.show(this.contentElement),this._statusView.toggleCancelButton(!1),this._statusView.renderText(dt(at.printing),dt(at.thePrintPopupWindowIsOpenPlease))}_afterPrint(){this._statusView.hide(),this._statusView.toggleCancelButton(!0)}_renderReport(e,t){this._toggleSettingsDisplay(!1),this.contentElement.classList.toggle("in-progress",!1),this._startView.hideWidget(),this._statusView.hide(),this._auditResultsElement.removeChildren(),this._newButton.setEnabled(!0),this._refreshToolbarUI();const s=this._cachedRenderedReports.get(e);if(s)return void this._auditResultsElement.appendChild(s);const i=this._auditResultsElement.createChild("div","lh-vars lh-root lh-devtools"),n=new DOM(this._auditResultsElement.ownerDocument),r=new De(n),o=b.cachedResources.get("third_party/lighthouse/report-assets/templates.html");if(!o)return;const a=(new DOMParser).parseFromString(o,"text/html");if(!a)return;r.setTemplateContext(a);const l=r.renderReport(e,i);De.addViewTraceButton(l,t),this._waitForMainTargetLoad().then((()=>{De.linkifyNodeDetails(l),De.linkifySourceLocationDetails(l)})),De.handleDarkMode(l);const d=new Oe(n);d.setBeforePrint(this._beforePrint.bind(this)),d.setAfterPrint(this._afterPrint.bind(this)),d.setTemplateContext(a),d.initFeatures(e),this._cachedRenderedReports.set(e,i)}async _waitForMainTargetLoad(){const e=o.TargetManager.instance().mainTarget();if(!e)return;const t=e.model(c.ResourceTreeModel);return t?t.once(c.Events.Load):void 0}_buildReportUI(e,t){if(null===e)return;const s=new $e(e,(()=>this._renderReport(e,t)),this._renderStartView.bind(this));this._reportSelector.prepend(s),this._refreshToolbarUI(),this._renderReport(e)}_handleDrop(e){const t=e.items;if(!t.length)return;if("file"===t[0].kind){const e=t[0].webkitGetAsEntry();if(!e.isFile)return;e.file((e=>{const t=new FileReader;t.onload=()=>this._loadedFromFile(t.result),t.readAsText(e)}))}}_loadedFromFile(e){const t=JSON.parse(e);t.lighthouseVersion&&this._buildReportUI(t)}async _startLighthouse(e){_.actionTaken(f.Action.LighthouseStarted);try{const e=await this._controller.getInspectedURL({force:!0}),t=this._controller.getCategoryIDs(),s=this._controller.getFlags();await this._setupEmulationAndProtocolConnection(),this._renderStatusView(e);const i=await this._protocolService.startLighthouse(e,t,s);if(i&&i.fatal){const e=new Error(i.message);throw e.stack=i.stack,e}if(!i)throw new Error("Auditing failed to produce a result");_.actionTaken(f.Action.LighthouseFinished),await this._resetEmulationAndProtocolConnection(),this._buildReportUI(i.lhr,i.artifacts),this._newButton.element.focus()}catch(e){await this._resetEmulationAndProtocolConnection(),e instanceof Error&&this._statusView.renderBugReport(e)}}async _cancelLighthouse(){this._statusView.updateStatus(dt(at.cancelling)),await this._resetEmulationAndProtocolConnection(),this._renderStartView()}async _setupEmulationAndProtocolConnection(){const e=this._controller.getFlags(),t=p.DeviceModeModel.instance();if(this._stateBefore={emulation:{enabled:t.enabledSetting().get(),outlineEnabled:t.deviceOutlineSetting().get(),toolbarControlsEnabled:t.toolbarControlsEnabledSetting().get()},network:{conditions:u.MultitargetNetworkManager.instance().networkConditions()}},t.toolbarControlsEnabledSetting().set(!1),"emulatedFormFactor"in e&&"desktop"===e.emulatedFormFactor)t.enabledSetting().set(!1),t.emulate(p.Type.None,null,null);else if("mobile"===e.emulatedFormFactor){t.enabledSetting().set(!0),t.deviceOutlineSetting().set(!0);for(const e of g.EmulatedDevicesList.instance().standard())"Moto G4"===e.title&&t.emulate(p.Type.Device,e,e.modes[0],1)}await this._protocolService.attach(),this._isLHAttached=!0}async _resetEmulationAndProtocolConnection(){if(!this._isLHAttached)return;if(this._isLHAttached=!1,await this._protocolService.detach(),this._stateBefore){const e=p.DeviceModeModel.instance();e.enabledSetting().set(this._stateBefore.emulation.enabled),e.deviceOutlineSetting().set(this._stateBefore.emulation.outlineEnabled),e.toolbarControlsEnabledSetting().set(this._stateBefore.emulation.toolbarControlsEnabled),u.MultitargetNetworkManager.instance().setNetworkConditions(this._stateBefore.network.conditions),delete this._stateBefore}m.InspectedPagePlaceholder.instance().update(!0);const e=o.TargetManager.instance().mainTarget();if(!e)return;const t=e.model(c.ResourceTreeModel);if(!t)return;const s=await this._controller.getInspectedURL();await t.navigate(s)}}var ut=Object.freeze({__proto__:null,UIStrings:at,LighthousePanel:ct});var pt=Object.freeze({__proto__:null,ReportRenderer:class{constructor(e){}setTemplateContext(e){}},ReportUIFeatures:class{constructor(e){}setTemplateContext(e){}initFeatures(e){}_resetUIState(){}setBeforePrint(e){}setAfterPrint(e){}},CategoryRenderer:class{constructor(e,t){}},DetailsRenderer:class{constructor(e){}},LighthouseReportGenerator:class{generateReportHtml(e){return""}}});export{Ae as LighthouseController,ut as LighthousePanel,Pe as LighthouseProtocolService,Ue as LighthouseReportRenderer,je as LighthouseReportSelector,pt as LighthouseReporterTypes,Ke as LighthouseStartView,ot as LighthouseStatusView,Ve as RadioSetting};
|