diff --git a/packages/calypso-e2e/src/lib/utils/index.ts b/packages/calypso-e2e/src/lib/utils/index.ts index d1ec73f4a7d70..2ca339945d71f 100644 --- a/packages/calypso-e2e/src/lib/utils/index.ts +++ b/packages/calypso-e2e/src/lib/utils/index.ts @@ -3,7 +3,6 @@ export * from './validate-translations'; export * from './get-test-account-by-feature'; export * from './translate'; export * from './social-connections-manager'; -export * from './metrics'; // Other items are exported for unit testing, we only care about the manager class. export { EditorTracksEventManager } from './editor-tracks-event-manager'; diff --git a/packages/calypso-e2e/src/lib/utils/metrics.ts b/packages/calypso-e2e/src/lib/utils/metrics.ts deleted file mode 100644 index 197444ec300b3..0000000000000 --- a/packages/calypso-e2e/src/lib/utils/metrics.ts +++ /dev/null @@ -1,234 +0,0 @@ -/** - * External dependencies - */ -import type { Page, Browser } from 'playwright'; - -type EventType = - | 'click' - | 'focus' - | 'focusin' - | 'keydown' - | 'keypress' - | 'keyup' - | 'mouseout' - | 'mouseover'; - -interface TraceEvent { - cat: string; - name: string; - dur?: number; - args: { - data?: { - type: EventType; - }; - }; -} - -interface Trace { - traceEvents: TraceEvent[]; -} - -interface WebVitalsMeasurements { - CLS?: number; - FCP?: number; - FID?: number; - INP?: number; - LCP?: number; - TTFB?: number; -} - -/** - * Metrics class to collect performance metrics. - */ -export class Metrics { - browser: Browser; - page: Page; - trace: Trace; - - webVitals: WebVitalsMeasurements = {}; - - /** - * @param page Playwright page object. - */ - constructor( page: Page ) { - this.page = page; - this.browser = page.context().browser()!; - this.trace = { traceEvents: [] }; - } - - /** - * Returns durations from the Server-Timing header. - * - * @param fields Optional fields to filter. - */ - async getServerTiming( fields: string[] = [] ) { - return this.page.evaluate< Record< string, number >, string[] >( - ( f: string[] ) => - ( - performance.getEntriesByType( 'navigation' ) as PerformanceNavigationTiming[] - )[ 0 ].serverTiming.reduce( - ( acc, entry ) => { - if ( f.length === 0 || f.includes( entry.name ) ) { - acc[ entry.name ] = entry.duration; - } - return acc; - }, - {} as Record< string, number > - ), - fields - ); - } - - /** - * Returns time to first byte (TTFB) using the Navigation Timing API. - * - * @see https://web.dev/ttfb/#measure-ttfb-in-javascript - * - * @returns TTFB value. - */ - async getTimeToFirstByte() { - return await this.page.evaluate< number >( () => { - const { responseStart, startTime } = ( - performance.getEntriesByType( 'navigation' ) as PerformanceNavigationTiming[] - )[ 0 ]; - return responseStart - startTime; - } ); - } - - /** - * Returns the Largest Contentful Paint (LCP) value using the dedicated API. - * - * @see https://w3c.github.io/largest-contentful-paint/ - * @see https://web.dev/lcp/#measure-lcp-in-javascript - * - * @returns LCP value. - */ - async getLargestContentfulPaint() { - return await this.page.evaluate< number >( - () => - new Promise( ( resolve ) => { - new PerformanceObserver( ( entryList ) => { - const entries = entryList.getEntries(); - // The last entry is the largest contentful paint. - const largestPaintEntry = entries.at( -1 ); - - resolve( largestPaintEntry?.startTime || 0 ); - } ).observe( { - type: 'largest-contentful-paint', - buffered: true, - } ); - } ) - ); - } - - /** - * Returns the loading durations using the Navigation Timing API. All the - * durations exclude the server response time. - * - * @returns Object with loading metrics durations. - */ - async getLoadingDurations() { - return await this.page.evaluate( () => { - const [ - { requestStart, responseStart, responseEnd, domContentLoadedEventEnd, loadEventEnd }, - ] = performance.getEntriesByType( 'navigation' ) as PerformanceNavigationTiming[]; - const paintTimings = performance.getEntriesByType( 'paint' ) as PerformancePaintTiming[]; - - const firstPaintStartTime = paintTimings.find( - ( { name } ) => name === 'first-paint' - )!.startTime; - - const firstContentfulPaintStartTime = paintTimings.find( - ( { name } ) => name === 'first-contentful-paint' - )!.startTime; - - return { - // Server side metric. - serverResponse: responseStart - requestStart, - // For client side metrics, consider the end of the response (the - // browser receives the HTML) as the start time (0). - firstPaint: firstPaintStartTime - responseEnd, - domContentLoaded: domContentLoadedEventEnd - responseEnd, - loaded: loadEventEnd - responseEnd, - firstContentfulPaint: firstContentfulPaintStartTime - responseEnd, - timeSinceResponseEnd: performance.now() - responseEnd, - }; - } ); - } - - /** - * Starts Chromium tracing with predefined options for performance testing. - * - * @param options Options to pass to `browser.startTracing()`. - */ - async startTracing( options = {} ) { - return await this.browser.startTracing( this.page, { - screenshots: false, - categories: [ 'devtools.timeline' ], - ...options, - } ); - } - - /** - * Stops Chromium tracing and saves the trace. - */ - async stopTracing() { - const traceBuffer = await this.browser.stopTracing(); - const traceJSON = JSON.parse( traceBuffer.toString() ); - - this.trace = traceJSON; - } - - /** - * @returns Durations of all traced `keydown`, `keypress`, and `keyup` - * events. - */ - getTypingEventDurations() { - return [ - this.getEventDurations( 'keydown' ), - this.getEventDurations( 'keypress' ), - this.getEventDurations( 'keyup' ), - ]; - } - - /** - * @returns Durations of all traced `focus` and `focusin` events. - */ - getSelectionEventDurations() { - return [ this.getEventDurations( 'focus' ), this.getEventDurations( 'focusin' ) ]; - } - - /** - * @returns Durations of all traced `click` events. - */ - getClickEventDurations() { - return [ this.getEventDurations( 'click' ) ]; - } - - /** - * @returns Durations of all traced `mouseover` and `mouseout` events. - */ - getHoverEventDurations() { - return [ this.getEventDurations( 'mouseover' ), this.getEventDurations( 'mouseout' ) ]; - } - - /** - * @param eventType Type of event to filter. - * @returns Durations of all events of a given type. - */ - getEventDurations( eventType: EventType ) { - if ( this.trace.traceEvents.length === 0 ) { - throw new Error( 'No trace events found. Did you forget to call stopTracing()?' ); - } - - return this.trace.traceEvents - .filter( - ( item: TraceEvent ): boolean => - item.cat === 'devtools.timeline' && - item.name === 'EventDispatch' && - item?.args?.data?.type === eventType && - !! item.dur - ) - .map( ( item ) => ( item.dur ? item.dur / 1000 : 0 ) ); - } -} diff --git a/test/e2e/metrics/editor.spec.ts b/test/e2e/metrics/editor.spec.ts index 30b36646de408..accde68c3c22b 100644 --- a/test/e2e/metrics/editor.spec.ts +++ b/test/e2e/metrics/editor.spec.ts @@ -8,8 +8,8 @@ import { getTestAccountByFeature, envToFeatureKey, PostsPage, - Metrics, } from '@automattic/calypso-e2e'; +import { Metrics } from '@wordpress/e2e-test-utils-playwright'; import { Browser, Page } from 'playwright'; declare const browser: Browser; @@ -41,7 +41,7 @@ describe( DataHelper.createSuiteTitle( 'Metrics: Editor' ), function () { it( 'Start and fill a test post', async function () { postsPage = new PostsPage( page ); - const metrics = new Metrics( page ); + const metrics = await new Metrics( { page } ); await postsPage.visit(); await postsPage.newPost(); editorPage = new EditorPage( page ); diff --git a/test/e2e/package.json b/test/e2e/package.json index fb1f5e740e56a..b80f59982d521 100644 --- a/test/e2e/package.json +++ b/test/e2e/package.json @@ -38,7 +38,9 @@ "@automattic/jest-circus-allure-reporter": "workspace:^", "@automattic/languages": "workspace:^", "@playwright/browser-chromium": "1.48.2", + "@playwright/test": "1.48.2", "@types/archiver": "^5.3.1", + "@wordpress/e2e-test-utils-playwright": "1.14.0", "archiver": "^5.3.0", "asana-phrase": "^0.0.8", "babel-jest": "^29.6.1", diff --git a/yarn.lock b/yarn.lock index 08e2790709915..e6ef38ed28955 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4486,6 +4486,57 @@ __metadata: languageName: node linkType: hard +"@formatjs/ecma402-abstract@npm:2.3.1": + version: 2.3.1 + resolution: "@formatjs/ecma402-abstract@npm:2.3.1" + dependencies: + "@formatjs/fast-memoize": "npm:2.2.5" + "@formatjs/intl-localematcher": "npm:0.5.9" + decimal.js: "npm:10" + tslib: "npm:2" + checksum: 8c3b78d9e6047246633e613c809b6147f7568c5a66399f6d8e4e1b3c4600ae72d1649942da392ca3483de85b93e2c8e4689c1c2fdb243ede877aa9f2aa8c5365 + languageName: node + linkType: hard + +"@formatjs/fast-memoize@npm:2.2.5": + version: 2.2.5 + resolution: "@formatjs/fast-memoize@npm:2.2.5" + dependencies: + tslib: "npm:2" + checksum: 3a2b930d8d866d9e8a008b974f859875b2c920a1a5c472090658bed132a1e1a3c9ba68ce460e87a7bc15caea95e514e84c75c0bc3735f9422ede2b1b5aef9e76 + languageName: node + linkType: hard + +"@formatjs/icu-messageformat-parser@npm:2.9.7": + version: 2.9.7 + resolution: "@formatjs/icu-messageformat-parser@npm:2.9.7" + dependencies: + "@formatjs/ecma402-abstract": "npm:2.3.1" + "@formatjs/icu-skeleton-parser": "npm:1.8.11" + tslib: "npm:2" + checksum: 2eb0109e72a6632667d465f8cd6669eaad8fac1a281f266447f231362ce6fa0294763d41a2dcbc5fd6d622addff955743ed36c66e2e6102cdd27dcfb2ad6f6c9 + languageName: node + linkType: hard + +"@formatjs/icu-skeleton-parser@npm:1.8.11": + version: 1.8.11 + resolution: "@formatjs/icu-skeleton-parser@npm:1.8.11" + dependencies: + "@formatjs/ecma402-abstract": "npm:2.3.1" + tslib: "npm:2" + checksum: 577975b4e7c2e207e5ee8ba06135e38b0dbc985cace3428847a4c0683e63b9be33151dae57cd939c02f0a910590a1c14c43efed74c2204430e6892cc3370fb91 + languageName: node + linkType: hard + +"@formatjs/intl-localematcher@npm:0.5.9": + version: 0.5.9 + resolution: "@formatjs/intl-localematcher@npm:0.5.9" + dependencies: + tslib: "npm:2" + checksum: 0b66aee81b9fd8fff9e737fd98e71edd20beb077713fa81b471bd6b1c6fe17f5d5bd6d1883cc0bf6f7ea5bfaedd3a2009aa3235bfacdfbc4950f2b4106d5ac76 + languageName: node + linkType: hard + "@fpjs-incubator/broyster@npm:^0.1.4": version: 0.1.8 resolution: "@fpjs-incubator/broyster@npm:0.1.8" @@ -5133,6 +5184,15 @@ __metadata: languageName: node linkType: hard +"@paulirish/trace_engine@npm:0.0.39": + version: 0.0.39 + resolution: "@paulirish/trace_engine@npm:0.0.39" + dependencies: + third-party-web: "npm:latest" + checksum: 6256d73772d5770abc424e3b670afb47897ebe7869e51ce0e0e2b6a6385adbf13f99e6d82690c8d9be63276260b289913361402a4294239879ac88e6196d0c28 + languageName: node + linkType: hard + "@paypal/paypal-js@npm:^8.1.2": version: 8.1.2 resolution: "@paypal/paypal-js@npm:8.1.2" @@ -5196,6 +5256,17 @@ __metadata: languageName: node linkType: hard +"@playwright/test@npm:1.48.2": + version: 1.48.2 + resolution: "@playwright/test@npm:1.48.2" + dependencies: + playwright: "npm:1.48.2" + bin: + playwright: cli.js + checksum: 68bab3bee8d716111e9a166785e6c3c406b6a184fc46d03b5468fcbb92b6242e5628f6a75f9d286e2491ec0e9e59af67542a1f114b6659d790b5a1f41e4d305b + languageName: node + linkType: hard + "@pmmmwh/react-refresh-webpack-plugin@npm:^0.5.11, @pmmmwh/react-refresh-webpack-plugin@npm:^0.5.15": version: 0.5.15 resolution: "@pmmmwh/react-refresh-webpack-plugin@npm:0.5.15" @@ -5265,6 +5336,24 @@ __metadata: languageName: node linkType: hard +"@puppeteer/browsers@npm:2.6.1": + version: 2.6.1 + resolution: "@puppeteer/browsers@npm:2.6.1" + dependencies: + debug: "npm:^4.4.0" + extract-zip: "npm:^2.0.1" + progress: "npm:^2.0.3" + proxy-agent: "npm:^6.5.0" + semver: "npm:^7.6.3" + tar-fs: "npm:^3.0.6" + unbzip2-stream: "npm:^1.4.3" + yargs: "npm:^17.7.2" + bin: + browsers: lib/cjs/main-cli.js + checksum: 31d4951eec40515769467be3878d3581fe0e50227f2a9fa865e9f872e4a003262996c412a1d48d9c800665b3aa91bb1c2d971eaa314ef10e536d08e63f2f40d3 + languageName: node + linkType: hard + "@radix-ui/number@npm:1.0.1": version: 1.0.1 resolution: "@radix-ui/number@npm:1.0.1" @@ -6361,6 +6450,17 @@ __metadata: languageName: node linkType: hard +"@sentry-internal/tracing@npm:7.120.2": + version: 7.120.2 + resolution: "@sentry-internal/tracing@npm:7.120.2" + dependencies: + "@sentry/core": "npm:7.120.2" + "@sentry/types": "npm:7.120.2" + "@sentry/utils": "npm:7.120.2" + checksum: 442c99b521fee745a79f1338d94bbdc736f2f68271192d910978843312cca73c7343b0bb4ed03b3344d1c5820b5b323295c2de3db31e0c2e3cee00928d8161b9 + languageName: node + linkType: hard + "@sentry-internal/tracing@npm:7.54.0": version: 7.54.0 resolution: "@sentry-internal/tracing@npm:7.54.0" @@ -6403,6 +6503,16 @@ __metadata: languageName: node linkType: hard +"@sentry/core@npm:7.120.2": + version: 7.120.2 + resolution: "@sentry/core@npm:7.120.2" + dependencies: + "@sentry/types": "npm:7.120.2" + "@sentry/utils": "npm:7.120.2" + checksum: 2146fa1fb21303ee955529b64d3a82a9e4f6869479be4e6eb88ef354fcf2bd3e281179d79e1cde477a87759ba9d35e98fc323961e449dc1f01cd26dba0f424b9 + languageName: node + linkType: hard + "@sentry/core@npm:7.54.0": version: 7.54.0 resolution: "@sentry/core@npm:7.54.0" @@ -6414,6 +6524,31 @@ __metadata: languageName: node linkType: hard +"@sentry/integrations@npm:7.120.2": + version: 7.120.2 + resolution: "@sentry/integrations@npm:7.120.2" + dependencies: + "@sentry/core": "npm:7.120.2" + "@sentry/types": "npm:7.120.2" + "@sentry/utils": "npm:7.120.2" + localforage: "npm:^1.8.1" + checksum: ef5ae36c0cd15492b69c62388775179f1d1274c99767b2870e001fdd05e67c2a92c01314f83c08b7ca47d791a619dccec2cf97ed3718ba51e56838772a1a04cc + languageName: node + linkType: hard + +"@sentry/node@npm:^7.0.0": + version: 7.120.2 + resolution: "@sentry/node@npm:7.120.2" + dependencies: + "@sentry-internal/tracing": "npm:7.120.2" + "@sentry/core": "npm:7.120.2" + "@sentry/integrations": "npm:7.120.2" + "@sentry/types": "npm:7.120.2" + "@sentry/utils": "npm:7.120.2" + checksum: 190e9226a47dd7074c3fc2ddec5b96c7fef801944c8f53c4ec6fefa3a39a47e449630d8c8f9adbc4d6650f0ed69f43dc19c1d23a679977f1ec2d8233121f4212 + languageName: node + linkType: hard + "@sentry/react@npm:^7.54.0": version: 7.54.0 resolution: "@sentry/react@npm:7.54.0" @@ -6440,6 +6575,13 @@ __metadata: languageName: node linkType: hard +"@sentry/types@npm:7.120.2": + version: 7.120.2 + resolution: "@sentry/types@npm:7.120.2" + checksum: 1077bdbdb1d7ea8207bcb8f187b16763cdf14e5e61d45ecce3b4fb1e468fa0b59fb6a52c64252ffaab17c263fe6ccaf6c1840344accbd98aeb7c9a5963561ab8 + languageName: node + linkType: hard + "@sentry/types@npm:7.54.0": version: 7.54.0 resolution: "@sentry/types@npm:7.54.0" @@ -6447,6 +6589,15 @@ __metadata: languageName: node linkType: hard +"@sentry/utils@npm:7.120.2": + version: 7.120.2 + resolution: "@sentry/utils@npm:7.120.2" + dependencies: + "@sentry/types": "npm:7.120.2" + checksum: 22138d83ccbaae3d0ac86a065e7be61eba9caa7b41ee97f3f2b95376cc4c6449ffa70be2d976d27ef28cfa0b47401ab7b8d70b5fcfe25b1bf6247553918f722c + languageName: node + linkType: hard + "@sentry/utils@npm:7.54.0": version: 7.54.0 resolution: "@sentry/utils@npm:7.54.0" @@ -7792,6 +7943,13 @@ __metadata: languageName: node linkType: hard +"@tootallnate/quickjs-emscripten@npm:^0.23.0": + version: 0.23.0 + resolution: "@tootallnate/quickjs-emscripten@npm:0.23.0" + checksum: 2a939b781826fb5fd3edd0f2ec3b321d259d760464cf20611c9877205aaca3ccc0b7304dea68416baa0d568e82cd86b17d29548d1e5139fa3155a4a86a2b4b49 + languageName: node + linkType: hard + "@trysound/sax@npm:0.2.0": version: 0.2.0 resolution: "@trysound/sax@npm:0.2.0" @@ -10071,6 +10229,22 @@ __metadata: languageName: node linkType: hard +"@wordpress/e2e-test-utils-playwright@npm:1.14.0": + version: 1.14.0 + resolution: "@wordpress/e2e-test-utils-playwright@npm:1.14.0" + dependencies: + change-case: "npm:^4.1.2" + form-data: "npm:^4.0.0" + get-port: "npm:^5.1.1" + lighthouse: "npm:^12.2.2" + mime: "npm:^3.0.0" + web-vitals: "npm:^4.2.1" + peerDependencies: + "@playwright/test": ">=1" + checksum: cc1ab58f3d2ec6aec1713efbc492bfcb1b651644587410df779179fe65289fd81311b9f33e706cecf4ac5bb946e71614282c2763d7365bf3be42f00cc20ec392 + languageName: node + linkType: hard + "@wordpress/edit-post@npm:8.8.3": version: 8.8.3 resolution: "@wordpress/edit-post@npm:8.8.3" @@ -11058,6 +11232,13 @@ __metadata: languageName: node linkType: hard +"agent-base@npm:^7.1.0, agent-base@npm:^7.1.2": + version: 7.1.3 + resolution: "agent-base@npm:7.1.3" + checksum: 6192b580c5b1d8fb399b9c62bf8343d76654c2dd62afcb9a52b2cf44a8b6ace1e3b704d3fe3547d91555c857d3df02603341ff2cb961b9cfe2b12f9f3c38ee11 + languageName: node + linkType: hard + "agentkeepalive@npm:^4.1.3": version: 4.5.0 resolution: "agentkeepalive@npm:4.5.0" @@ -11812,6 +11993,15 @@ __metadata: languageName: node linkType: hard +"ast-types@npm:^0.13.4": + version: 0.13.4 + resolution: "ast-types@npm:0.13.4" + dependencies: + tslib: "npm:^2.0.1" + checksum: 3a1a409764faa1471601a0ad01b3aa699292991aa9c8a30c7717002cabdf5d98008e7b53ae61f6e058f757fc6ba965e147967a93c13e62692c907d79cfb245f8 + languageName: node + linkType: hard + "ast-types@npm:^0.16.1": version: 0.16.1 resolution: "ast-types@npm:0.16.1" @@ -11957,10 +12147,10 @@ __metadata: languageName: node linkType: hard -"axe-core@npm:^4.2.0, axe-core@npm:^4.9.1": - version: 4.9.1 - resolution: "axe-core@npm:4.9.1" - checksum: ac9e5a0c6fa115a43ebffc32a1d2189e1ca6431b5a78e88cdcf94a72a25c5964185682edd94fe6bdb1cb4266c0d06301b022866e0e50dcdf6e3cefe556470110 +"axe-core@npm:^4.10.2, axe-core@npm:^4.2.0, axe-core@npm:^4.9.1": + version: 4.10.2 + resolution: "axe-core@npm:4.10.2" + checksum: 0e20169077de96946a547fce0df39d9aeebe0077f9d3eeff4896518b96fde857f80b98f0d4279274a7178791744dd5a54bb4f322de45b4f561ffa2586ff9a09d languageName: node linkType: hard @@ -11973,6 +12163,13 @@ __metadata: languageName: node linkType: hard +"b4a@npm:^1.6.4": + version: 1.6.7 + resolution: "b4a@npm:1.6.7" + checksum: ec2f004d1daae04be8c5a1f8aeb7fea213c34025e279db4958eb0b82c1729ee25f7c6e89f92a5f65c8a9cf2d017ce27e3dda912403341d1781bd74528a4849d4 + languageName: node + linkType: hard + "babel-core@npm:^7.0.0-bridge.0": version: 7.0.0-bridge.0 resolution: "babel-core@npm:7.0.0-bridge.0" @@ -12184,6 +12381,49 @@ __metadata: languageName: node linkType: hard +"bare-events@npm:^2.0.0, bare-events@npm:^2.2.0": + version: 2.5.0 + resolution: "bare-events@npm:2.5.0" + checksum: afbeec4e8be4d93fb4a3be65c3b4a891a2205aae30b5a38fafd42976cc76cf30dad348963fe330a0d70186e15dc507c11af42c89af5dddab2a54e5aff02e2896 + languageName: node + linkType: hard + +"bare-fs@npm:^2.1.1": + version: 2.3.5 + resolution: "bare-fs@npm:2.3.5" + dependencies: + bare-events: "npm:^2.0.0" + bare-path: "npm:^2.0.0" + bare-stream: "npm:^2.0.0" + checksum: ff18cc9be7c557c38e0342681ba3672ae4b01e5696b567d4035e5995255dc6bc7d4df88ed210fa4d3eb940eb29512e924ebb42814c87fc59a2bee8cf83b7c2f9 + languageName: node + linkType: hard + +"bare-os@npm:^2.1.0": + version: 2.4.4 + resolution: "bare-os@npm:2.4.4" + checksum: e7d1a7b2100c05da8d25b60d0d48cf850c6f57064577a3f2f51cf18d417fbcfd6967ed2d8314320914ed69e0f2ebcf54eb1b36092dd172d8e8f969cf8cccf041 + languageName: node + linkType: hard + +"bare-path@npm:^2.0.0, bare-path@npm:^2.1.0": + version: 2.1.3 + resolution: "bare-path@npm:2.1.3" + dependencies: + bare-os: "npm:^2.1.0" + checksum: 35587e177fc8fa5b13fb90bac8779b5ce49c99016d221ddaefe2232d02bd4295d79b941e14ae19fda75ec42a6fe5fb66c07d83ae7ec11462178e66b7be65ca74 + languageName: node + linkType: hard + +"bare-stream@npm:^2.0.0": + version: 2.6.1 + resolution: "bare-stream@npm:2.6.1" + dependencies: + streamx: "npm:^2.21.0" + checksum: f6fe238b4b067fc9ec99e6f9a218239413d1641dfd5bc4defa5fbd0e360ac09e7f454929f5fedd0ee1e7b84d780d32084afe3b60d369ed5f53512dd5fa8b9f8b + languageName: node + linkType: hard + "base64-arraybuffer-es6@npm:0.5.0": version: 0.5.0 resolution: "base64-arraybuffer-es6@npm:0.5.0" @@ -12222,6 +12462,13 @@ __metadata: languageName: node linkType: hard +"basic-ftp@npm:^5.0.2": + version: 5.0.5 + resolution: "basic-ftp@npm:5.0.5" + checksum: be983a3997749856da87b839ffce6b8ed6c7dbf91ea991d5c980d8add275f9f2926c19f80217ac3e7f353815be879371d636407ca72b038cea8cab30e53928a6 + languageName: node + linkType: hard + "batch@npm:0.6.1": version: 0.6.1 resolution: "batch@npm:0.6.1" @@ -12663,7 +12910,7 @@ __metadata: languageName: node linkType: hard -"buffer@npm:^5.1.0, buffer@npm:^5.4.3, buffer@npm:^5.5.0": +"buffer@npm:^5.1.0, buffer@npm:^5.2.1, buffer@npm:^5.4.3, buffer@npm:^5.5.0": version: 5.7.1 resolution: "buffer@npm:5.7.1" dependencies: @@ -13532,6 +13779,20 @@ __metadata: languageName: node linkType: hard +"chrome-launcher@npm:^1.1.2": + version: 1.1.2 + resolution: "chrome-launcher@npm:1.1.2" + dependencies: + "@types/node": "npm:*" + escape-string-regexp: "npm:^4.0.0" + is-wsl: "npm:^2.2.0" + lighthouse-logger: "npm:^2.0.1" + bin: + print-chrome-path: bin/print-chrome-path.js + checksum: 518a6cb846b7187a692c510cc9d3f4d2a87ad3e21cec5eaefb3dcb7ce72ac6ab8b5465cb90510480b9f0b077c8fc340f57e2e078e1d7719aff576595800470b2 + languageName: node + linkType: hard + "chrome-trace-event@npm:^1.0.2": version: 1.0.2 resolution: "chrome-trace-event@npm:1.0.2" @@ -13541,6 +13802,18 @@ __metadata: languageName: node linkType: hard +"chromium-bidi@npm:0.11.0": + version: 0.11.0 + resolution: "chromium-bidi@npm:0.11.0" + dependencies: + mitt: "npm:3.0.1" + zod: "npm:3.23.8" + peerDependencies: + devtools-protocol: "*" + checksum: 7155b1b78bc07371cc750f5a431fb7120fb96e412d24895e5107efe21056a2406f4d051c26be89d2a7355258d6322d203e6d1c4e82f4b30f9b02923de50ba6c9 + languageName: node + linkType: hard + "chromium-pickle-js@npm:^0.2.0": version: 0.2.0 resolution: "chromium-pickle-js@npm:0.2.0" @@ -14818,6 +15091,13 @@ __metadata: languageName: node linkType: hard +"csp_evaluator@npm:1.1.1": + version: 1.1.1 + resolution: "csp_evaluator@npm:1.1.1" + checksum: cc8abae2071af80a5148d04cf332a7af89ce1564e5da224b4badf5bfff46aeafd3b7a09ba87aae8517a29084de24586bf9cb5b8f580c68b1e41d7792e021416f + languageName: node + linkType: hard + "css-declaration-sorter@npm:^6.0.3": version: 6.1.3 resolution: "css-declaration-sorter@npm:6.1.3" @@ -15316,6 +15596,13 @@ __metadata: languageName: node linkType: hard +"data-uri-to-buffer@npm:^6.0.2": + version: 6.0.2 + resolution: "data-uri-to-buffer@npm:6.0.2" + checksum: f76922bf895b3d7d443059ff278c9cc5efc89d70b8b80cd9de0aa79b3adc6d7a17948eefb8692e30398c43635f70ece1673d6085cc9eba2878dbc6c6da5292ac + languageName: node + linkType: hard + "data-urls@npm:^3.0.2": version: 3.0.2 resolution: "data-urls@npm:3.0.2" @@ -15415,15 +15702,15 @@ __metadata: languageName: node linkType: hard -"debug@npm:4, debug@npm:^4.0.0, debug@npm:^4.0.1, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.3, debug@npm:^4.3.4, debug@npm:^4.3.6, debug@npm:~4.3.1, debug@npm:~4.3.2, debug@npm:~4.3.4": - version: 4.3.7 - resolution: "debug@npm:4.3.7" +"debug@npm:4, debug@npm:^4.0.0, debug@npm:^4.0.1, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.3, debug@npm:^4.3.4, debug@npm:^4.3.6, debug@npm:^4.4.0": + version: 4.4.0 + resolution: "debug@npm:4.4.0" dependencies: ms: "npm:^2.1.3" peerDependenciesMeta: supports-color: optional: true - checksum: 1471db19c3b06d485a622d62f65947a19a23fbd0dd73f7fd3eafb697eec5360cde447fb075919987899b1a2096e85d35d4eb5a4de09a57600ac9cf7e6c8e768b + checksum: db94f1a182bf886f57b4755f85b3a74c39b5114b9377b7ab375dc2cfa3454f09490cc6c30f829df3fc8042bc8b8995f6567ce5cd96f3bc3688bd24027197d9de languageName: node linkType: hard @@ -15436,6 +15723,18 @@ __metadata: languageName: node linkType: hard +"debug@npm:~4.3.1, debug@npm:~4.3.2, debug@npm:~4.3.4": + version: 4.3.7 + resolution: "debug@npm:4.3.7" + dependencies: + ms: "npm:^2.1.3" + peerDependenciesMeta: + supports-color: + optional: true + checksum: 1471db19c3b06d485a622d62f65947a19a23fbd0dd73f7fd3eafb697eec5360cde447fb075919987899b1a2096e85d35d4eb5a4de09a57600ac9cf7e6c8e768b + languageName: node + linkType: hard + "decamelize-keys@npm:^1.0.0, decamelize-keys@npm:^1.1.0": version: 1.1.0 resolution: "decamelize-keys@npm:1.1.0" @@ -15453,7 +15752,7 @@ __metadata: languageName: node linkType: hard -"decimal.js@npm:^10.4.2": +"decimal.js@npm:10, decimal.js@npm:^10.4.2": version: 10.4.3 resolution: "decimal.js@npm:10.4.3" checksum: 6d60206689ff0911f0ce968d40f163304a6c1bc739927758e6efc7921cfa630130388966f16bf6ef6b838cb33679fbe8e7a78a2f3c478afce841fd55ac8fb8ee @@ -15673,6 +15972,17 @@ __metadata: languageName: node linkType: hard +"degenerator@npm:^5.0.0": + version: 5.0.1 + resolution: "degenerator@npm:5.0.1" + dependencies: + ast-types: "npm:^0.13.4" + escodegen: "npm:^2.1.0" + esprima: "npm:^4.0.1" + checksum: e48d8a651edeb512a648711a09afec269aac6de97d442a4bb9cf121a66877e0eec11b9727100a10252335c0666ae1c84a8bc1e3a3f47788742c975064d2c7b1c + languageName: node + linkType: hard + "del@npm:^6.0.0": version: 6.1.1 resolution: "del@npm:6.1.1" @@ -15830,6 +16140,20 @@ __metadata: languageName: node linkType: hard +"devtools-protocol@npm:0.0.1312386": + version: 0.0.1312386 + resolution: "devtools-protocol@npm:0.0.1312386" + checksum: 1073b2edcee76db094fdce97fe8869f3469866513e864379e04311a429b439ba51e54809fdffb09b67bf0c37b5ac5bfd2b0536ae217b7ea2cbe2e571fbed7e8e + languageName: node + linkType: hard + +"devtools-protocol@npm:0.0.1367902": + version: 0.0.1367902 + resolution: "devtools-protocol@npm:0.0.1367902" + checksum: be4017f2bfd04474d718daca0e88e062f4afceb2f311662d717f4eae5bda3473da748a68ff1bf2326a67ce35c37af33932190fe8ef1d36c8ef22576befdc57c4 + languageName: node + linkType: hard + "dezalgo@npm:^1.0.4": version: 1.0.4 resolution: "dezalgo@npm:1.0.4" @@ -16639,12 +16963,13 @@ __metadata: languageName: node linkType: hard -"enquirer@npm:^2.3.5": - version: 2.3.6 - resolution: "enquirer@npm:2.3.6" +"enquirer@npm:^2.3.5, enquirer@npm:^2.3.6": + version: 2.4.1 + resolution: "enquirer@npm:2.4.1" dependencies: ansi-colors: "npm:^4.1.1" - checksum: 8e070e052c2c64326a2803db9084d21c8aaa8c688327f133bf65c4a712586beb126fd98c8a01cfb0433e82a4bd3b6262705c55a63e0f7fb91d06b9cedbde9a11 + strip-ansi: "npm:^6.0.1" + checksum: 43850479d7a51d36a9c924b518dcdc6373b5a8ae3401097d336b7b7e258324749d0ad37a1fcaa5706f04799baa05585cd7af19ebdf7667673e7694435fcea918 languageName: node linkType: hard @@ -18073,6 +18398,13 @@ __metadata: languageName: node linkType: hard +"fast-fifo@npm:^1.2.0, fast-fifo@npm:^1.3.2": + version: 1.3.2 + resolution: "fast-fifo@npm:1.3.2" + checksum: d53f6f786875e8b0529f784b59b4b05d4b5c31c651710496440006a398389a579c8dbcd2081311478b5bf77f4b0b21de69109c5a4eabea9d8e8783d1eb864e4c + languageName: node + linkType: hard + "fast-glob@npm:^3.0.3, fast-glob@npm:^3.2.11, fast-glob@npm:^3.2.7, fast-glob@npm:^3.2.9, fast-glob@npm:^3.3.2": version: 3.3.2 resolution: "fast-glob@npm:3.3.2" @@ -19052,6 +19384,17 @@ __metadata: languageName: node linkType: hard +"get-uri@npm:^6.0.1": + version: 6.0.4 + resolution: "get-uri@npm:6.0.4" + dependencies: + basic-ftp: "npm:^5.0.2" + data-uri-to-buffer: "npm:^6.0.2" + debug: "npm:^4.3.4" + checksum: 07c87abe1f97a4545fae329a37a45e276ec57e6ad48dad2a97780f87c96b00a82c2043ab49e1a991f99bb5cff8f8ed975e44e4f8b3c9600f35493a97f123499f + languageName: node + linkType: hard + "get-value@npm:^2.0.3, get-value@npm:^2.0.6": version: 2.0.6 resolution: "get-value@npm:2.0.6" @@ -20122,6 +20465,13 @@ __metadata: languageName: node linkType: hard +"http-link-header@npm:^1.1.1": + version: 1.1.3 + resolution: "http-link-header@npm:1.1.3" + checksum: 56698a9d3aee4d5319d1cdfe62ef5d7179f179ec1e6432d23c9e6a0c896be642ba47a4985a45419cff91008032aef920aca9df94ff9e763e646c83bf54b7243d + languageName: node + linkType: hard + "http-parser-js@npm:>=0.5.1": version: 0.5.8 resolution: "http-parser-js@npm:0.5.8" @@ -20151,6 +20501,16 @@ __metadata: languageName: node linkType: hard +"http-proxy-agent@npm:^7.0.0, http-proxy-agent@npm:^7.0.1": + version: 7.0.2 + resolution: "http-proxy-agent@npm:7.0.2" + dependencies: + agent-base: "npm:^7.1.0" + debug: "npm:^4.3.4" + checksum: 4207b06a4580fb85dd6dff521f0abf6db517489e70863dca1a0291daa7f2d3d2d6015a57bd702af068ea5cf9f1f6ff72314f5f5b4228d299c0904135d2aef921 + languageName: node + linkType: hard + "http-proxy-middleware@npm:^2.0.3": version: 2.0.7 resolution: "http-proxy-middleware@npm:2.0.7" @@ -20252,6 +20612,16 @@ __metadata: languageName: node linkType: hard +"https-proxy-agent@npm:^7.0.6": + version: 7.0.6 + resolution: "https-proxy-agent@npm:7.0.6" + dependencies: + agent-base: "npm:^7.1.2" + debug: "npm:4" + checksum: f729219bc735edb621fa30e6e84e60ee5d00802b8247aac0d7b79b0bd6d4b3294737a337b93b86a0bd9e68099d031858a39260c976dc14cdbba238ba1f8779ac + languageName: node + linkType: hard + "human-signals@npm:^1.1.1": version: 1.1.1 resolution: "human-signals@npm:1.1.1" @@ -20404,6 +20774,13 @@ __metadata: languageName: node linkType: hard +"image-ssim@npm:^0.2.0": + version: 0.2.0 + resolution: "image-ssim@npm:0.2.0" + checksum: 9c669c3e66f6bdff2e1c32e88c930db6b832bc2a62bc2c48ab4a11cae208f95b37a86794ddcf000a6fd72f3c51eb3ad6fc0d8b755c4c0574ae3a61304ddba4b1 + languageName: node + linkType: hard + "immediate@npm:~3.0.5": version: 3.0.6 resolution: "immediate@npm:3.0.6" @@ -20646,6 +21023,18 @@ __metadata: languageName: node linkType: hard +"intl-messageformat@npm:^10.5.3": + version: 10.7.10 + resolution: "intl-messageformat@npm:10.7.10" + dependencies: + "@formatjs/ecma402-abstract": "npm:2.3.1" + "@formatjs/fast-memoize": "npm:2.2.5" + "@formatjs/icu-messageformat-parser": "npm:2.9.7" + tslib: "npm:2" + checksum: caf26689bb5dab90b2b2accc25f7e18696a5dde5ec028ae06b86870f8de091928bdc2b76499f832f26ac9695346e3c110dcae785da0e3d267160661a6725f1d2 + languageName: node + linkType: hard + "invariant@npm:^2.2.4": version: 2.2.4 resolution: "invariant@npm:2.2.4" @@ -20662,10 +21051,13 @@ __metadata: languageName: node linkType: hard -"ip@npm:^2.0.0": - version: 2.0.1 - resolution: "ip@npm:2.0.1" - checksum: cab8eb3e88d0abe23e4724829621ec4c4c5cb41a7f936a2e626c947128c1be16ed543448d42af7cca95379f9892bfcacc1ccd8d09bc7e8bea0e86d492ce33616 +"ip-address@npm:^9.0.5": + version: 9.0.5 + resolution: "ip-address@npm:9.0.5" + dependencies: + jsbn: "npm:1.1.0" + sprintf-js: "npm:^1.1.3" + checksum: 331cd07fafcb3b24100613e4b53e1a2b4feab11e671e655d46dc09ee233da5011284d09ca40c4ecbdfe1d0004f462958675c224a804259f2f78d2465a87824bc languageName: node linkType: hard @@ -22263,6 +22655,13 @@ __metadata: languageName: node linkType: hard +"jpeg-js@npm:^0.4.1, jpeg-js@npm:^0.4.4": + version: 0.4.4 + resolution: "jpeg-js@npm:0.4.4" + checksum: 4d0d5097f8e55d8bbce6f1dc32ffaf3f43f321f6222e4e6490734fdc6d005322e3bd6fb992c2df7f5b587343b1441a1c333281dc3285bc9116e369fd2a2b43a7 + languageName: node + linkType: hard + "js-base64@npm:^2.6.1": version: 2.6.4 resolution: "js-base64@npm:2.6.4" @@ -22270,6 +22669,13 @@ __metadata: languageName: node linkType: hard +"js-library-detector@npm:^6.7.0": + version: 6.7.0 + resolution: "js-library-detector@npm:6.7.0" + checksum: 492264f9fb42976fc054b36416bbf4eb760586a4df39f465bc9185186928b16728ecb1ab256b81ebddd16a680fee38a94205f0fb023c816729c0bed2cea73624 + languageName: node + linkType: hard + "js-tokens@npm:^3.0.0 || ^4.0.0, js-tokens@npm:^4.0.0": version: 4.0.0 resolution: "js-tokens@npm:4.0.0" @@ -22300,6 +22706,13 @@ __metadata: languageName: node linkType: hard +"jsbn@npm:1.1.0": + version: 1.1.0 + resolution: "jsbn@npm:1.1.0" + checksum: 4f907fb78d7b712e11dea8c165fe0921f81a657d3443dde75359ed52eb2b5d33ce6773d97985a089f09a65edd80b11cb75c767b57ba47391fee4c969f7215c96 + languageName: node + linkType: hard + "jsbn@npm:~0.1.0": version: 0.1.1 resolution: "jsbn@npm:0.1.1" @@ -23015,6 +23428,15 @@ __metadata: languageName: node linkType: hard +"lie@npm:3.1.1": + version: 3.1.1 + resolution: "lie@npm:3.1.1" + dependencies: + immediate: "npm:~3.0.5" + checksum: d62685786590351b8e407814acdd89efe1cb136f05cb9236c5a97b2efdca1f631d2997310ad2d565c753db7596799870140e4777c9c9b8c44a0f6bf42d1804a1 + languageName: node + linkType: hard + "lie@npm:~3.3.0": version: 3.3.0 resolution: "lie@npm:3.3.0" @@ -23040,6 +23462,63 @@ __metadata: languageName: node linkType: hard +"lighthouse-logger@npm:^2.0.1": + version: 2.0.1 + resolution: "lighthouse-logger@npm:2.0.1" + dependencies: + debug: "npm:^2.6.9" + marky: "npm:^1.2.2" + checksum: 414743d9b1491ad127c78741edfe88bd1c2411b267274c973036b90f56a268c3b8c3e02498bce04b560083da34a149bc3f81d2c47b6c6ad592202354cf781c43 + languageName: node + linkType: hard + +"lighthouse-stack-packs@npm:1.12.2": + version: 1.12.2 + resolution: "lighthouse-stack-packs@npm:1.12.2" + checksum: 34fb78127792a2036f560f446b28ce2446712e4a18e8036971c80f30127150ef1a85b2cef1713110da52bbc8c526742b8165e517330755e3a94598c1a2bc3eba + languageName: node + linkType: hard + +"lighthouse@npm:^12.2.2": + version: 12.3.0 + resolution: "lighthouse@npm:12.3.0" + dependencies: + "@paulirish/trace_engine": "npm:0.0.39" + "@sentry/node": "npm:^7.0.0" + axe-core: "npm:^4.10.2" + chrome-launcher: "npm:^1.1.2" + configstore: "npm:^5.0.1" + csp_evaluator: "npm:1.1.1" + devtools-protocol: "npm:0.0.1312386" + enquirer: "npm:^2.3.6" + http-link-header: "npm:^1.1.1" + intl-messageformat: "npm:^10.5.3" + jpeg-js: "npm:^0.4.4" + js-library-detector: "npm:^6.7.0" + lighthouse-logger: "npm:^2.0.1" + lighthouse-stack-packs: "npm:1.12.2" + lodash-es: "npm:^4.17.21" + lookup-closest-locale: "npm:6.2.0" + metaviewport-parser: "npm:0.3.0" + open: "npm:^8.4.0" + parse-cache-control: "npm:1.0.1" + puppeteer-core: "npm:^23.10.4" + robots-parser: "npm:^3.0.1" + semver: "npm:^5.3.0" + speedline-core: "npm:^1.4.3" + third-party-web: "npm:^0.26.1" + tldts-icann: "npm:^6.1.16" + ws: "npm:^7.0.0" + yargs: "npm:^17.3.1" + yargs-parser: "npm:^21.0.0" + bin: + chrome-debug: core/scripts/manual-chrome-launcher.js + lighthouse: cli/index.js + smokehouse: cli/test/smokehouse/frontends/smokehouse-bin.js + checksum: a4e8bac599594f317a04a3f18b6e8d1eb8ca6536c325dbb6dd53613b7f707968b793454a337cbd7ea999c6746fea1a3842155c43c3e84c360f28bb5ea9a6a92d + languageName: node + linkType: hard + "lilconfig@npm:^2.0.3, lilconfig@npm:^2.1.0": version: 2.1.0 resolution: "lilconfig@npm:2.1.0" @@ -23104,6 +23583,15 @@ __metadata: languageName: node linkType: hard +"localforage@npm:^1.8.1": + version: 1.10.0 + resolution: "localforage@npm:1.10.0" + dependencies: + lie: "npm:3.1.1" + checksum: 00f19f1f97002e6721587ed5017f502d58faf80dae567d5065d4d1ee0caf0762f40d2e2dba7f0ef7d3f14ee6203242daae9ecad97359bfc10ecff36df11d85a3 + languageName: node + linkType: hard + "locate-path@npm:^2.0.0": version: 2.0.0 resolution: "locate-path@npm:2.0.0" @@ -23480,6 +23968,13 @@ __metadata: languageName: node linkType: hard +"lookup-closest-locale@npm:6.2.0": + version: 6.2.0 + resolution: "lookup-closest-locale@npm:6.2.0" + checksum: e9b48a011300a4e052b697453115fee0b551820afbf5cd4a71647d5be570e9f67a60a28be8afc6c2d6213d9c4bc154d42bf656f9ca1d7ba18e90a3706a3fdf26 + languageName: node + linkType: hard + "loose-envify@npm:^1.0.0, loose-envify@npm:^1.1.0, loose-envify@npm:^1.4.0": version: 1.4.0 resolution: "loose-envify@npm:1.4.0" @@ -23566,6 +24061,13 @@ __metadata: languageName: node linkType: hard +"lru-cache@npm:^7.14.1": + version: 7.18.3 + resolution: "lru-cache@npm:7.18.3" + checksum: b3a452b491433db885beed95041eb104c157ef7794b9c9b4d647be503be91769d11206bb573849a16b4cc0d03cbd15ffd22df7960997788b74c1d399ac7a4fed + languageName: node + linkType: hard + "lru-cache@npm:^9.1.1 || ^10.0.0": version: 10.0.1 resolution: "lru-cache@npm:10.0.1" @@ -23805,6 +24307,13 @@ __metadata: languageName: node linkType: hard +"marky@npm:^1.2.2": + version: 1.2.5 + resolution: "marky@npm:1.2.5" + checksum: ca8a011f287dab1ac3291df720fc32b366c4cd767347b63722966650405ce71ec6566f71d1e22e1768bf6461a7fd689b9038e7df0fcfb62eacf3a5a6dcac249e + languageName: node + linkType: hard + "matcher@npm:^3.0.0": version: 3.0.0 resolution: "matcher@npm:3.0.0" @@ -24180,6 +24689,13 @@ __metadata: languageName: node linkType: hard +"metaviewport-parser@npm:0.3.0": + version: 0.3.0 + resolution: "metaviewport-parser@npm:0.3.0" + checksum: c6bd79013449a4f3d6697c8b931f4c6655c140f42b56e761aff221a506ac6d3aac6b590e845f6a4101877b6b89ef57f08523b49d94236cadba7f9d5d97d27271 + languageName: node + linkType: hard + "methods@npm:^1.1.1, methods@npm:^1.1.2, methods@npm:~1.1.2": version: 1.1.2 resolution: "methods@npm:1.1.2" @@ -24736,6 +25252,15 @@ __metadata: languageName: node linkType: hard +"mime@npm:^3.0.0": + version: 3.0.0 + resolution: "mime@npm:3.0.0" + bin: + mime: cli.js + checksum: 402e792a8df1b2cc41cb77f0dcc46472b7944b7ec29cb5bbcd398624b6b97096728f1239766d3fdeb20551dd8d94738344c195a6ea10c4f906eb0356323b0531 + languageName: node + linkType: hard + "mimic-fn@npm:^2.0.0, mimic-fn@npm:^2.1.0": version: 2.1.0 resolution: "mimic-fn@npm:2.1.0" @@ -24946,6 +25471,13 @@ __metadata: languageName: node linkType: hard +"mitt@npm:3.0.1": + version: 3.0.1 + resolution: "mitt@npm:3.0.1" + checksum: 3ab4fdecf3be8c5255536faa07064d05caa3dd332bd318ff02e04621f7b3069ca1de9106cfe8e7ced675abfc2bec2ce4c4ef321c4a1bb1fb29df8ae090741913 + languageName: node + linkType: hard + "mixedindentlint@npm:^1.2.0": version: 1.2.0 resolution: "mixedindentlint@npm:1.2.0" @@ -25275,6 +25807,13 @@ __metadata: languageName: node linkType: hard +"netmask@npm:^2.0.2": + version: 2.0.2 + resolution: "netmask@npm:2.0.2" + checksum: cafd28388e698e1138ace947929f842944d0f1c0b87d3fa2601a61b38dc89397d33c0ce2c8e7b99e968584b91d15f6810b91bef3f3826adf71b1833b61d4bf4f + languageName: node + linkType: hard + "new-github-issue-url@npm:^0.2.1": version: 0.2.1 resolution: "new-github-issue-url@npm:0.2.1" @@ -26195,6 +26734,32 @@ __metadata: languageName: node linkType: hard +"pac-proxy-agent@npm:^7.1.0": + version: 7.1.0 + resolution: "pac-proxy-agent@npm:7.1.0" + dependencies: + "@tootallnate/quickjs-emscripten": "npm:^0.23.0" + agent-base: "npm:^7.1.2" + debug: "npm:^4.3.4" + get-uri: "npm:^6.0.1" + http-proxy-agent: "npm:^7.0.0" + https-proxy-agent: "npm:^7.0.6" + pac-resolver: "npm:^7.0.1" + socks-proxy-agent: "npm:^8.0.5" + checksum: 072528e3e7a0bb1187d5c09687a112ae230f6fa0d974e7460eaa0c1406666930ed53ffadfbfadfe8e1c7a8cc8d6ae26a4db96e27723d40a918c8454f0f1a012a + languageName: node + linkType: hard + +"pac-resolver@npm:^7.0.1": + version: 7.0.1 + resolution: "pac-resolver@npm:7.0.1" + dependencies: + degenerator: "npm:^5.0.0" + netmask: "npm:^2.0.2" + checksum: 5f3edd1dd10fded31e7d1f95776442c3ee51aa098c28b74ede4927d9677ebe7cebb2636750c24e945f5b84445e41ae39093d3a1014a994e5ceb9f0b1b88ebff5 + languageName: node + linkType: hard + "package-json@npm:^6.3.0": version: 6.5.0 resolution: "package-json@npm:6.5.0" @@ -26279,6 +26844,13 @@ __metadata: languageName: node linkType: hard +"parse-cache-control@npm:1.0.1": + version: 1.0.1 + resolution: "parse-cache-control@npm:1.0.1" + checksum: 330a0d9e3a22a7b0f6e8a973c0b9f51275642ee28544cd0d546420273946d555d20a5c7b49fca24d68d2e698bae0186f0f41f48d62133d3153c32454db05f2df + languageName: node + linkType: hard + "parse-css-font@npm:^4.0.0": version: 4.0.0 resolution: "parse-css-font@npm:4.0.0" @@ -27684,6 +28256,22 @@ __metadata: languageName: node linkType: hard +"proxy-agent@npm:^6.5.0": + version: 6.5.0 + resolution: "proxy-agent@npm:6.5.0" + dependencies: + agent-base: "npm:^7.1.2" + debug: "npm:^4.3.4" + http-proxy-agent: "npm:^7.0.1" + https-proxy-agent: "npm:^7.0.6" + lru-cache: "npm:^7.14.1" + pac-proxy-agent: "npm:^7.1.0" + proxy-from-env: "npm:^1.1.0" + socks-proxy-agent: "npm:^8.0.5" + checksum: 7fd4e6f36bf17098a686d4aee3b8394abfc0b0537c2174ce96b0a4223198b9fafb16576c90108a3fcfc2af0168bd7747152bfa1f58e8fee91d3780e79aab7fd8 + languageName: node + linkType: hard + "proxy-from-env@npm:^1.0.0, proxy-from-env@npm:^1.1.0": version: 1.1.0 resolution: "proxy-from-env@npm:1.1.0" @@ -27809,6 +28397,20 @@ __metadata: languageName: node linkType: hard +"puppeteer-core@npm:^23.10.4": + version: 23.11.1 + resolution: "puppeteer-core@npm:23.11.1" + dependencies: + "@puppeteer/browsers": "npm:2.6.1" + chromium-bidi: "npm:0.11.0" + debug: "npm:^4.4.0" + devtools-protocol: "npm:0.0.1367902" + typed-query-selector: "npm:^2.12.0" + ws: "npm:^8.18.0" + checksum: 6512a3dca8c7bea620219332b84c4442754fead6c5021c26ea395ddc2f84610a54accf185ba1450e02885cb063c2d12f96eb5f18e7e1b6795f3e32a4b8a2102e + languageName: node + linkType: hard + "pure-rand@npm:^6.0.0": version: 6.0.2 resolution: "pure-rand@npm:6.0.2" @@ -27869,6 +28471,13 @@ __metadata: languageName: node linkType: hard +"queue-tick@npm:^1.0.1": + version: 1.0.1 + resolution: "queue-tick@npm:1.0.1" + checksum: 0db998e2c9b15215317dbcf801e9b23e6bcde4044e115155dae34f8e7454b9a783f737c9a725528d677b7a66c775eb7a955cf144fe0b87f62b575ce5bfd515a9 + languageName: node + linkType: hard + "quick-lru@npm:^1.0.0": version: 1.1.0 resolution: "quick-lru@npm:1.1.0" @@ -30007,6 +30616,13 @@ __metadata: languageName: node linkType: hard +"robots-parser@npm:^3.0.1": + version: 3.0.1 + resolution: "robots-parser@npm:3.0.1" + checksum: 91443b15ab1b39f69ac998a2dae8859ad35c981504e5facbb34d494fd6163877e821ce7ed830d14e9efdd6ed28c347491c3d699738943501dec2b6bedfdd6a81 + languageName: node + linkType: hard + "rollup-plugin-dts@npm:^5.2.0": version: 5.3.1 resolution: "rollup-plugin-dts@npm:5.3.1" @@ -30379,12 +30995,12 @@ __metadata: languageName: node linkType: hard -"semver@npm:2 || 3 || 4 || 5, semver@npm:^5.4.1, semver@npm:^5.5.0, semver@npm:^5.6.0": - version: 5.7.1 - resolution: "semver@npm:5.7.1" +"semver@npm:2 || 3 || 4 || 5, semver@npm:^5.3.0, semver@npm:^5.4.1, semver@npm:^5.5.0, semver@npm:^5.6.0": + version: 5.7.2 + resolution: "semver@npm:5.7.2" bin: - semver: ./bin/semver - checksum: d4884f2aeca28bff35d0bd40ff0a9b2dfc4b36a883bf0ea5dc15d10d9a01bdc9041035b05f825d4b5ac8a56e490703dbf0d986d054de82cc5e9bad3f02ca6e00 + semver: bin/semver + checksum: e4cf10f86f168db772ae95d86ba65b3fd6c5967c94d97c708ccb463b778c2ee53b914cd7167620950fc07faf5a564e6efe903836639e512a1aa15fbc9667fa25 languageName: node linkType: hard @@ -30417,14 +31033,12 @@ __metadata: languageName: node linkType: hard -"semver@npm:^7.0.0, semver@npm:^7.3.2, semver@npm:^7.3.4, semver@npm:^7.3.5, semver@npm:^7.3.7, semver@npm:^7.3.8, semver@npm:^7.5.3, semver@npm:^7.5.4": - version: 7.5.4 - resolution: "semver@npm:7.5.4" - dependencies: - lru-cache: "npm:^6.0.0" +"semver@npm:^7.0.0, semver@npm:^7.3.2, semver@npm:^7.3.4, semver@npm:^7.3.5, semver@npm:^7.3.7, semver@npm:^7.3.8, semver@npm:^7.5.3, semver@npm:^7.5.4, semver@npm:^7.6.3": + version: 7.6.3 + resolution: "semver@npm:7.6.3" bin: semver: bin/semver.js - checksum: 5160b06975a38b11c1ab55950cb5b8a23db78df88275d3d8a42ccf1f29e55112ac995b3a26a522c36e3b5f76b0445f1eef70d696b8c7862a2b4303d7b0e7609e + checksum: 88f33e148b210c153873cb08cfe1e281d518aaa9a666d4d148add6560db5cd3c582f3a08ccb91f38d5f379ead256da9931234ed122057f40bb5766e65e58adaf languageName: node linkType: hard @@ -30936,13 +31550,24 @@ __metadata: languageName: node linkType: hard -"socks@npm:^2.3.3": - version: 2.7.1 - resolution: "socks@npm:2.7.1" +"socks-proxy-agent@npm:^8.0.5": + version: 8.0.5 + resolution: "socks-proxy-agent@npm:8.0.5" + dependencies: + agent-base: "npm:^7.1.2" + debug: "npm:^4.3.4" + socks: "npm:^2.8.3" + checksum: 5d2c6cecba6821389aabf18728325730504bf9bb1d9e342e7987a5d13badd7a98838cc9a55b8ed3cb866ad37cc23e1086f09c4d72d93105ce9dfe76330e9d2a6 + languageName: node + linkType: hard + +"socks@npm:^2.3.3, socks@npm:^2.8.3": + version: 2.8.3 + resolution: "socks@npm:2.8.3" dependencies: - ip: "npm:^2.0.0" + ip-address: "npm:^9.0.5" smart-buffer: "npm:^4.2.0" - checksum: 43f69dbc9f34fc8220bc51c6eea1c39715ab3cfdb115d6e3285f6c7d1a603c5c75655668a5bbc11e3c7e2c99d60321fb8d7ab6f38cda6a215fadd0d6d0b52130 + checksum: d54a52bf9325165770b674a67241143a3d8b4e4c8884560c4e0e078aace2a728dffc7f70150660f51b85797c4e1a3b82f9b7aa25e0a0ceae1a243365da5c51a7 languageName: node linkType: hard @@ -31153,6 +31778,17 @@ __metadata: languageName: node linkType: hard +"speedline-core@npm:^1.4.3": + version: 1.4.3 + resolution: "speedline-core@npm:1.4.3" + dependencies: + "@types/node": "npm:*" + image-ssim: "npm:^0.2.0" + jpeg-js: "npm:^0.4.1" + checksum: 4fa7bb838ddb83a0d9dbcbae79247b7357d7d00832541bbeca428a19a2530a91fb6487bd6bf67cd9b972156fafa3bd8ee7261092a9e8026695a7ab67e48fedff + languageName: node + linkType: hard + "split-string@npm:^3.0.1, split-string@npm:^3.0.2": version: 3.1.0 resolution: "split-string@npm:3.1.0" @@ -31171,10 +31807,10 @@ __metadata: languageName: node linkType: hard -"sprintf-js@npm:^1.1.1, sprintf-js@npm:^1.1.2": - version: 1.1.2 - resolution: "sprintf-js@npm:1.1.2" - checksum: 6cc8382f746348bd64b31bc5c99d8ebda7efff716025c41bf501e0e8be4f6744a9fa507e18513554753553d0bcb57fd5fc8dc8c42f94f8008127a52a2c544d21 +"sprintf-js@npm:^1.1.1, sprintf-js@npm:^1.1.2, sprintf-js@npm:^1.1.3": + version: 1.1.3 + resolution: "sprintf-js@npm:1.1.3" + checksum: 09270dc4f30d479e666aee820eacd9e464215cdff53848b443964202bf4051490538e5dd1b42e1a65cf7296916ca17640aebf63dae9812749c7542ee5f288dec languageName: node linkType: hard @@ -31365,6 +32001,21 @@ __metadata: languageName: node linkType: hard +"streamx@npm:^2.15.0, streamx@npm:^2.21.0": + version: 2.21.1 + resolution: "streamx@npm:2.21.1" + dependencies: + bare-events: "npm:^2.2.0" + fast-fifo: "npm:^1.3.2" + queue-tick: "npm:^1.0.1" + text-decoder: "npm:^1.1.0" + dependenciesMeta: + bare-events: + optional: true + checksum: 752297e877bdeba4a4c180335564c446636c3a33f1c8733b4773746dab6212266e97cd71be8cade9748bbb1b9e2fee61f81e46bcdaf1ff396b79c9cb9355f26e + languageName: node + linkType: hard + "strict-event-emitter@npm:^0.5.1": version: 0.5.1 resolution: "strict-event-emitter@npm:0.5.1" @@ -32098,6 +32749,23 @@ __metadata: languageName: node linkType: hard +"tar-fs@npm:^3.0.6": + version: 3.0.6 + resolution: "tar-fs@npm:3.0.6" + dependencies: + bare-fs: "npm:^2.1.1" + bare-path: "npm:^2.1.0" + pump: "npm:^3.0.0" + tar-stream: "npm:^3.1.5" + dependenciesMeta: + bare-fs: + optional: true + bare-path: + optional: true + checksum: 207b7c0f193495668bd9dbad09a0108ce4ffcfec5bce2133f90988cdda5c81fad83c99f963d01e47b565196594f7a17dbd063ae55b97b36268fcc843975278ee + languageName: node + linkType: hard + "tar-stream@npm:^2.1.0, tar-stream@npm:^2.1.4, tar-stream@npm:^2.2.0": version: 2.2.0 resolution: "tar-stream@npm:2.2.0" @@ -32111,6 +32779,17 @@ __metadata: languageName: node linkType: hard +"tar-stream@npm:^3.1.5": + version: 3.1.7 + resolution: "tar-stream@npm:3.1.7" + dependencies: + b4a: "npm:^1.6.4" + fast-fifo: "npm:^1.2.0" + streamx: "npm:^2.15.0" + checksum: a09199d21f8714bd729993ac49b6c8efcb808b544b89f23378ad6ffff6d1cb540878614ba9d4cfec11a64ef39e1a6f009a5398371491eb1fda606ffc7f70f718 + languageName: node + linkType: hard + "tar@npm:^6.0.2, tar@npm:^6.0.5, tar@npm:^6.1.13, tar@npm:^6.1.2": version: 6.2.1 resolution: "tar@npm:6.2.1" @@ -32229,6 +32908,15 @@ __metadata: languageName: node linkType: hard +"text-decoder@npm:^1.1.0": + version: 1.2.3 + resolution: "text-decoder@npm:1.2.3" + dependencies: + b4a: "npm:^1.6.4" + checksum: 569d776b9250158681c83656ef2c3e0a5d5c660c27ca69f87eedef921749a4fbf02095e5f9a0f862a25cf35258379b06e31dee9c125c9f72e273b7ca1a6d1977 + languageName: node + linkType: hard + "text-hex@npm:1.0.x": version: 1.0.0 resolution: "text-hex@npm:1.0.0" @@ -32268,6 +32956,13 @@ __metadata: languageName: node linkType: hard +"third-party-web@npm:^0.26.1, third-party-web@npm:latest": + version: 0.26.2 + resolution: "third-party-web@npm:0.26.2" + checksum: 1048de38f57d11a9fe74fffcef110ed03f67999fd651e6b647a4fc475fcd66a62b2dd74cc5b8644c9947fd670f5778b25ff3d7bd8d0124a0d90a5142ecc4af28 + languageName: node + linkType: hard + "thread-loader@npm:^3.0.4": version: 3.0.4 resolution: "thread-loader@npm:3.0.4" @@ -32293,7 +32988,7 @@ __metadata: languageName: node linkType: hard -"through@npm:2, through@npm:^2.3.6, through@npm:~2.3, through@npm:~2.3.1, through@npm:~2.3.6": +"through@npm:2, through@npm:^2.3.6, through@npm:^2.3.8, through@npm:~2.3, through@npm:~2.3.1, through@npm:~2.3.6": version: 2.3.8 resolution: "through@npm:2.3.8" checksum: 4b09f3774099de0d4df26d95c5821a62faee32c7e96fb1f4ebd54a2d7c11c57fe88b0a0d49cf375de5fee5ae6bf4eb56dbbf29d07366864e2ee805349970d3cc @@ -32360,6 +33055,22 @@ __metadata: languageName: node linkType: hard +"tldts-core@npm:^6.1.70": + version: 6.1.70 + resolution: "tldts-core@npm:6.1.70" + checksum: befad5eb9888e7b05db6cbe22d43750ec01615a9a26253b76400c367614429f860d0a49e752e257e9b2583f647413ac0599c27923f5b8d4d91af78bba0d6f984 + languageName: node + linkType: hard + +"tldts-icann@npm:^6.1.16": + version: 6.1.70 + resolution: "tldts-icann@npm:6.1.70" + dependencies: + tldts-core: "npm:^6.1.70" + checksum: b458aaa9cbca008abe7c3ac6a83ef504d14adb7458e0d7cc8fefef08c9cc50e27c2820c43704ad9f0018b4a31c184effc16838edc0080f786bec76e1e84c9818 + languageName: node + linkType: hard + "tmp-promise@npm:^3.0.2": version: 3.0.3 resolution: "tmp-promise@npm:3.0.3" @@ -32746,6 +33457,13 @@ __metadata: languageName: node linkType: hard +"tslib@npm:2, tslib@npm:>=2.3.0, tslib@npm:^2.0.0, tslib@npm:^2.0.1, tslib@npm:^2.0.3, tslib@npm:^2.1.0, tslib@npm:^2.3.0, tslib@npm:^2.4.0, tslib@npm:^2.4.1, tslib@npm:^2.5.0, tslib@npm:^2.6.2": + version: 2.8.1 + resolution: "tslib@npm:2.8.1" + checksum: 9c4759110a19c53f992d9aae23aac5ced636e99887b51b9e61def52611732872ff7668757d4e4c61f19691e36f4da981cd9485e869b4a7408d689f6bf1f14e62 + languageName: node + linkType: hard + "tslib@npm:2.0.1": version: 2.0.1 resolution: "tslib@npm:2.0.1" @@ -32753,13 +33471,6 @@ __metadata: languageName: node linkType: hard -"tslib@npm:>=2.3.0, tslib@npm:^2.0.0, tslib@npm:^2.0.1, tslib@npm:^2.0.3, tslib@npm:^2.1.0, tslib@npm:^2.3.0, tslib@npm:^2.4.0, tslib@npm:^2.4.1, tslib@npm:^2.5.0, tslib@npm:^2.6.2": - version: 2.6.3 - resolution: "tslib@npm:2.6.3" - checksum: 2598aef53d9dbe711af75522464b2104724d6467b26a60f2bdac8297d2b5f1f6b86a71f61717384aa8fd897240467aaa7bcc36a0700a0faf751293d1331db39a - languageName: node - linkType: hard - "tslib@npm:^1.13.0, tslib@npm:^1.8.1, tslib@npm:^1.9.0, tslib@npm:^1.9.3": version: 1.14.1 resolution: "tslib@npm:1.14.1" @@ -32992,6 +33703,13 @@ __metadata: languageName: node linkType: hard +"typed-query-selector@npm:^2.12.0": + version: 2.12.0 + resolution: "typed-query-selector@npm:2.12.0" + checksum: 069509887ecfff824a470f5f93d300cc9223cb059a36c47ac685f2812c4c9470340e07615893765e4264cef1678507532fa78f642fd52f276b589f7f5d791f79 + languageName: node + linkType: hard + "typedarray-to-buffer@npm:^3.1.5": version: 3.1.5 resolution: "typedarray-to-buffer@npm:3.1.5" @@ -33089,6 +33807,16 @@ __metadata: languageName: node linkType: hard +"unbzip2-stream@npm:^1.4.3": + version: 1.4.3 + resolution: "unbzip2-stream@npm:1.4.3" + dependencies: + buffer: "npm:^5.2.1" + through: "npm:^2.3.8" + checksum: 2ea2048f3c9db3499316ccc1d95ff757017ccb6f46c812d7c42466247e3b863fb178864267482f7f178254214247779daf68e85f50bd7736c3c97ba2d58b910a + languageName: node + linkType: hard + "unc-path-regex@npm:^0.1.2": version: 0.1.2 resolution: "unc-path-regex@npm:0.1.2" @@ -34051,6 +34779,13 @@ __metadata: languageName: node linkType: hard +"web-vitals@npm:^4.2.1": + version: 4.2.4 + resolution: "web-vitals@npm:4.2.4" + checksum: 383c9281d5b556bcd190fde3c823aeb005bb8cf82e62c75b47beb411014a4ed13fa5c5e0489ed0f1b8d501cd66b0bebcb8624c1a75750bd5df13e2a3b1b2d194 + languageName: node + linkType: hard + "webidl-conversions@npm:^3.0.0": version: 3.0.1 resolution: "webidl-conversions@npm:3.0.1" @@ -34795,7 +35530,9 @@ __metadata: "@automattic/languages": "workspace:^" "@babel/core": "npm:^7.16.0" "@playwright/browser-chromium": "npm:1.48.2" + "@playwright/test": "npm:1.48.2" "@types/archiver": "npm:^5.3.1" + "@wordpress/e2e-test-utils-playwright": "npm:1.14.0" archiver: "npm:^5.3.0" asana-phrase: "npm:^0.0.8" babel-jest: "npm:^29.6.1" @@ -35016,7 +35753,7 @@ __metadata: languageName: node linkType: hard -"ws@npm:^7.2.0, ws@npm:^7.3.1": +"ws@npm:^7.0.0, ws@npm:^7.2.0, ws@npm:^7.3.1": version: 7.5.10 resolution: "ws@npm:7.5.10" peerDependencies: @@ -35031,7 +35768,7 @@ __metadata: languageName: node linkType: hard -"ws@npm:^8.11.0, ws@npm:^8.13.0, ws@npm:^8.17.1, ws@npm:^8.2.3": +"ws@npm:^8.11.0, ws@npm:^8.13.0, ws@npm:^8.17.1, ws@npm:^8.18.0, ws@npm:^8.2.3": version: 8.18.0 resolution: "ws@npm:8.18.0" peerDependencies: @@ -35246,7 +35983,7 @@ __metadata: languageName: node linkType: hard -"yargs-parser@npm:^21.1.1": +"yargs-parser@npm:^21.0.0, yargs-parser@npm:^21.1.1": version: 21.1.1 resolution: "yargs-parser@npm:21.1.1" checksum: f84b5e48169479d2f402239c59f084cfd1c3acc197a05c59b98bab067452e6b3ea46d4dd8ba2985ba7b3d32a343d77df0debd6b343e5dae3da2aab2cdf5886b2 @@ -35412,6 +36149,13 @@ __metadata: languageName: node linkType: hard +"zod@npm:3.23.8": + version: 3.23.8 + resolution: "zod@npm:3.23.8" + checksum: 8f14c87d6b1b53c944c25ce7a28616896319d95bc46a9660fe441adc0ed0a81253b02b5abdaeffedbeb23bdd25a0bf1c29d2c12dd919aef6447652dd295e3e69 + languageName: node + linkType: hard + "zwitch@npm:^2.0.0": version: 2.0.4 resolution: "zwitch@npm:2.0.4"