From 448750ca5926edbf5e2bb96d3e7d1b04a0862e2f Mon Sep 17 00:00:00 2001 From: John Hill Date: Mon, 24 Jun 2024 22:08:01 -0700 Subject: [PATCH] Fix some flaky percy behavior (#7756) * update imagery to be static * bump versions * doesn't do anything * does this do anything * undo only * update the hardcoded urls * add ignore CI logs push * downgrade to test * update the package lock * Add some more noise reduction * move to elements tab so that there is no time-based component * stability --- e2e/.percy.ci.yml | 13 +- e2e/.percy.nightly.yml | 14 +- e2e/package.json | 3 +- e2e/playwright-visual-a11y.config.js | 2 +- .../visual-a11y/displayLayout.visual.spec.js | 1 + e2e/tests/visual-a11y/imagery.visual.spec.js | 7 +- package-lock.json | 525 +++++++++--------- 7 files changed, 295 insertions(+), 270 deletions(-) diff --git a/e2e/.percy.ci.yml b/e2e/.percy.ci.yml index bccb093fc9..8ee51ec4e1 100644 --- a/e2e/.percy.ci.yml +++ b/e2e/.percy.ci.yml @@ -30,4 +30,15 @@ snapshot: .gl-plot-chart-area{ opacity: 0 !important; } - \ No newline at end of file + /* SWG Time values on plot */ + .gl-plot-x{ + opacity: 0 !important; + } + /* Notification Time in modal */ + .c-ne__time{ + opacity: 0 !important; + } + /* Snapshot name with embedded time */ + .l-browse-bar__snapshot-datetime{ + opacity: 0 !important; + } diff --git a/e2e/.percy.nightly.yml b/e2e/.percy.nightly.yml index b5b3d7ecfa..e713fce566 100644 --- a/e2e/.percy.nightly.yml +++ b/e2e/.percy.nightly.yml @@ -29,4 +29,16 @@ snapshot: /* Chart Area for Plots */ .gl-plot-chart-area{ opacity: 0 !important; - } \ No newline at end of file + } + /* SWG Time values on plot */ + .gl-plot-x{ + opacity: 0 !important; + } + /* Notification Time in modal */ + .c-ne__time{ + opacity: 0 !important; + } + /* Snapshot name with embedded time */ + .l-browse-bar__snapshot-datetime{ + opacity: 0 !important; + } diff --git a/e2e/package.json b/e2e/package.json index 1550d12229..30702dca77 100644 --- a/e2e/package.json +++ b/e2e/package.json @@ -10,7 +10,6 @@ } }, "scripts": { - "pretest:visual": "npm install", "test": "npx playwright test", "test:visual": "percy exec" }, @@ -24,4 +23,4 @@ }, "author": "NASA Ames Research Center", "license": "Apache-2.0" -} \ No newline at end of file +} diff --git a/e2e/playwright-visual-a11y.config.js b/e2e/playwright-visual-a11y.config.js index 594bdb11af..81e7fadef7 100644 --- a/e2e/playwright-visual-a11y.config.js +++ b/e2e/playwright-visual-a11y.config.js @@ -13,7 +13,7 @@ const config = { cwd: fileURLToPath(new URL('../', import.meta.url)), // Provide cwd for the root of the project url: 'http://localhost:8080/#', timeout: 200 * 1000, - reuseExistingServer: !process.env.CI + reuseExistingServer: true //This was originally disabled to prevent differences in local debugging vs. CI. However, it significantly speeds up local debugging. }, use: { baseURL: 'http://localhost:8080/', diff --git a/e2e/tests/visual-a11y/displayLayout.visual.spec.js b/e2e/tests/visual-a11y/displayLayout.visual.spec.js index f9cf123d4b..e937d7b7af 100644 --- a/e2e/tests/visual-a11y/displayLayout.visual.spec.js +++ b/e2e/tests/visual-a11y/displayLayout.visual.spec.js @@ -110,6 +110,7 @@ test.describe('Visual - Display Layout @clock', () => { }); await page.getByLabel('Expand Inspect Pane').click(); await page.getByLabel('Resize Inspect Pane').dragTo(page.getByLabel('X:')); + await page.getByRole('tab', { name: 'Elements' }).click(); await percySnapshot(page, `Toolbar does not overflow into inspector (theme: '${theme}')`); }); }); diff --git a/e2e/tests/visual-a11y/imagery.visual.spec.js b/e2e/tests/visual-a11y/imagery.visual.spec.js index d46df5435b..c09e4a0c3e 100644 --- a/e2e/tests/visual-a11y/imagery.visual.spec.js +++ b/e2e/tests/visual-a11y/imagery.visual.spec.js @@ -19,7 +19,6 @@ * this source code distribution or the Licensing information page available * at runtime from the About dialog for additional information. *****************************************************************************/ - import percySnapshot from '@percy/playwright'; import { createDomainObjectWithDefaults, setRealTimeMode } from '../../appActions.js'; @@ -45,17 +44,19 @@ test.describe('Visual - Example Imagery', () => { parent: parentLayout.uuid }); - // Modify Example Imagery to create a really stable Example Imagery + // Modify Example Imagery to create a really stable image which will never let us down await page.goto(exampleImagery.url, { waitUntil: 'domcontentloaded' }); await page.getByRole('button', { name: 'More actions' }).click(); await page.getByRole('menuitem', { name: 'Edit Properties...' }).click(); await page .locator('#imageLocation-textarea') .fill( - 'https://www.nasa.gov/wp-content/uploads/static/history/alsj/a16/AS16-117-18731.jpg,https://www.nasa.gov/wp-content/uploads/static/history/alsj/a16/AS16-117-18731.jpg,https://www.nasa.gov/wp-content/uploads/static/history/alsj/a16/AS16-117-18731.jpg,https://www.nasa.gov/wp-content/uploads/static/history/alsj/a16/AS16-117-18731.jpg,https://www.nasa.gov/wp-content/uploads/static/history/alsj/a16/AS16-117-18731.jpg,https://www.nasa.gov/wp-content/uploads/static/history/alsj/a16/AS16-117-18731.jpg,https://www.nasa.gov/wp-content/uploads/static/history/alsj/a16/AS16-117-18731.jpg,https://www.nasa.gov/wp-content/uploads/static/history/alsj/a16/AS16-117-18731.jpg,https://www.nasa.gov/wp-content/uploads/static/history/alsj/a16/AS16-117-18731.jpg,https://www.nasa.gov/wp-content/uploads/static/history/alsj/a16/AS16-117-18731.jpg,https://www.nasa.gov/wp-content/uploads/static/history/alsj/a16/AS16-117-18731.jpg,https://www.nasa.gov/wp-content/uploads/static/history/alsj/a16/AS16-117-18731.jpg,https://www.nasa.gov/wp-content/uploads/static/history/alsj/a16/AS16-117-18731.jpg,https://www.nasa.gov/wp-content/uploads/static/history/alsj/a16/AS16-117-18731.jpg,https://www.nasa.gov/wp-content/uploads/static/history/alsj/a16/AS16-117-18731.jpg,https://www.nasa.gov/wp-content/uploads/static/history/alsj/a16/AS16-117-18731.jpg,https://www.nasa.gov/wp-content/uploads/static/history/alsj/a16/AS16-117-18731.jpg' + 'https://raw.githubusercontent.com/nasa/openmct/554f77c42fec81cf0f63e62b278012cb08d82af9/e2e/test-data/rick.jpg,https://raw.githubusercontent.com/nasa/openmct/554f77c42fec81cf0f63e62b278012cb08d82af9/e2e/test-data/rick.jpg' ); await page.getByRole('button', { name: 'Save' }).click(); await page.reload({ waitUntil: 'domcontentloaded' }); + + //Hide the Browse and Inspect panes to make the image more stable await page.getByTitle('Collapse Browse Pane').click(); await page.getByTitle('Collapse Inspect Pane').click(); }); diff --git a/package-lock.json b/package-lock.json index a166a61580..80132f3adc 100644 --- a/package-lock.json +++ b/package-lock.json @@ -109,6 +109,242 @@ "sinon": "17.0.0" } }, + "e2e/node_modules/@percy/cli": { + "version": "1.27.4", + "resolved": "https://registry.npmjs.org/@percy/cli/-/cli-1.27.4.tgz", + "integrity": "sha512-eIM44ejCMFc/S2W7X0htV+lvvmf63x5CaBpsSoQ9LRc/W02zHVAwQYdFFUowZEK6G1EwJEPIUnDxuuEx9PLG5A==", + "dev": true, + "dependencies": { + "@percy/cli-app": "1.27.4", + "@percy/cli-build": "1.27.4", + "@percy/cli-command": "1.27.4", + "@percy/cli-config": "1.27.4", + "@percy/cli-exec": "1.27.4", + "@percy/cli-snapshot": "1.27.4", + "@percy/cli-upload": "1.27.4", + "@percy/client": "1.27.4", + "@percy/logger": "1.27.4" + }, + "bin": { + "percy": "bin/run.cjs" + }, + "engines": { + "node": ">=14" + } + }, + "e2e/node_modules/@percy/cli-app": { + "version": "1.27.4", + "resolved": "https://registry.npmjs.org/@percy/cli-app/-/cli-app-1.27.4.tgz", + "integrity": "sha512-av/s6K2QmQgq4SCQQ+3lmteNHeQtIpMeBjMfSgxs9zeBoPVOMx5hXrdsi6l7ChvOLXyYfzl/TbEuwrSDXiA8mw==", + "dev": true, + "dependencies": { + "@percy/cli-command": "1.27.4", + "@percy/cli-exec": "1.27.4" + }, + "engines": { + "node": ">=14" + } + }, + "e2e/node_modules/@percy/cli-build": { + "version": "1.27.4", + "resolved": "https://registry.npmjs.org/@percy/cli-build/-/cli-build-1.27.4.tgz", + "integrity": "sha512-tzCAcV0sAw608Gr/Q6NtPvVkA8dnIehMzvEXNIN3WP9DkprOgu7MYuexN0fZXf4vSroDWYXT87pHYP8YrrnDag==", + "dev": true, + "dependencies": { + "@percy/cli-command": "1.27.4" + }, + "engines": { + "node": ">=14" + } + }, + "e2e/node_modules/@percy/cli-command": { + "version": "1.27.4", + "resolved": "https://registry.npmjs.org/@percy/cli-command/-/cli-command-1.27.4.tgz", + "integrity": "sha512-YDKeeOr1MvksDOnc2ZKQ/XuERGrWwzuT/vWZ9it8L+0SyPj28UbklDu0e9zBgPsSDfxJlIvsWXRuHNGHsweKXg==", + "dev": true, + "dependencies": { + "@percy/config": "1.27.4", + "@percy/core": "1.27.4", + "@percy/logger": "1.27.4" + }, + "bin": { + "percy-cli-readme": "bin/readme.js" + }, + "engines": { + "node": ">=14" + } + }, + "e2e/node_modules/@percy/cli-config": { + "version": "1.27.4", + "resolved": "https://registry.npmjs.org/@percy/cli-config/-/cli-config-1.27.4.tgz", + "integrity": "sha512-wFtQwPw4LEqpcZ6ac6WtejyGrvrrzzLdyvXNvsCPQLE47qXnXVXJ+E99k9KGcjavtUuPxrbWtX996Fz9Fb5hoQ==", + "dev": true, + "dependencies": { + "@percy/cli-command": "1.27.4" + }, + "engines": { + "node": ">=14" + } + }, + "e2e/node_modules/@percy/cli-exec": { + "version": "1.27.4", + "resolved": "https://registry.npmjs.org/@percy/cli-exec/-/cli-exec-1.27.4.tgz", + "integrity": "sha512-aSDLvzXXdwJso+p5iI4iTOa7AYzgFdRoqY9ij/R5aAL9juNkvG5QatB1bkUNbJabKFe16t7iigt4eJnlS0R13A==", + "dev": true, + "dependencies": { + "@percy/cli-command": "1.27.4", + "cross-spawn": "^7.0.3", + "which": "^2.0.2" + }, + "engines": { + "node": ">=14" + } + }, + "e2e/node_modules/@percy/cli-snapshot": { + "version": "1.27.4", + "resolved": "https://registry.npmjs.org/@percy/cli-snapshot/-/cli-snapshot-1.27.4.tgz", + "integrity": "sha512-dDT2UpeP6X5NcMdj3AKLhHGmnobwzlXsHa52C+ne3kg3HSZgaXH9OsNY866Xe7onvcsZxvnRKDYHmWW6kC3cKQ==", + "dev": true, + "dependencies": { + "@percy/cli-command": "1.27.4", + "yaml": "^2.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "e2e/node_modules/@percy/cli-upload": { + "version": "1.27.4", + "resolved": "https://registry.npmjs.org/@percy/cli-upload/-/cli-upload-1.27.4.tgz", + "integrity": "sha512-+4mcEOUydFubyMWVzQjPV79sL1Jar95SR7Yr7Vp4FBoE0iq0CbaHoJtyOWDfwvHYYp4rRjVMxpY0ha3jnmF0mA==", + "dev": true, + "dependencies": { + "@percy/cli-command": "1.27.4", + "fast-glob": "^3.2.11", + "image-size": "^1.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "e2e/node_modules/@percy/client": { + "version": "1.27.4", + "resolved": "https://registry.npmjs.org/@percy/client/-/client-1.27.4.tgz", + "integrity": "sha512-1F8ulTJhfk4/Lgj1Cn0blaRd8vTRJDxahAGseTbfrnZ2PHsftPZ65/5nCHPtpdD/2CE8N5COBQscGTMQQO+hBA==", + "dev": true, + "dependencies": { + "@percy/env": "1.27.4", + "@percy/logger": "1.27.4" + }, + "engines": { + "node": ">=14" + } + }, + "e2e/node_modules/@percy/config": { + "version": "1.27.4", + "resolved": "https://registry.npmjs.org/@percy/config/-/config-1.27.4.tgz", + "integrity": "sha512-mlgiOdzdSfUSx9FskVIjmbT/iHbTif0Ow5evZQJTT1W0xgHOBWDCZyhINdsqulSBw+K1PNhHsu1J0h2ijxF4uA==", + "dev": true, + "dependencies": { + "@percy/logger": "1.27.4", + "ajv": "^8.6.2", + "cosmiconfig": "^8.0.0", + "yaml": "^2.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "e2e/node_modules/@percy/core": { + "version": "1.27.4", + "resolved": "https://registry.npmjs.org/@percy/core/-/core-1.27.4.tgz", + "integrity": "sha512-WdsA4zlPgXl9xj+a5WW2wA20iU6VTDmRq5sgsYNSuPzZfQB2I5Cecgvb55p86dhlUTbPJrC76daQKzDTGe0hfA==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "@percy/client": "1.27.4", + "@percy/config": "1.27.4", + "@percy/dom": "1.27.4", + "@percy/logger": "1.27.4", + "@percy/webdriver-utils": "1.27.4", + "content-disposition": "^0.5.4", + "cross-spawn": "^7.0.3", + "extract-zip": "^2.0.1", + "fast-glob": "^3.2.11", + "micromatch": "^4.0.4", + "mime-types": "^2.1.34", + "path-to-regexp": "^6.2.0", + "rimraf": "^3.0.2", + "ws": "^8.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "e2e/node_modules/@percy/dom": { + "version": "1.27.4", + "resolved": "https://registry.npmjs.org/@percy/dom/-/dom-1.27.4.tgz", + "integrity": "sha512-pwPDx3e9y7uRobVlEya8xu3BB3GeXbC74kQ6pPM/wFYDwi/Dg8DJywCsj5Nko/7QuhXP02rYgatkbREOIRxDnA==", + "dev": true + }, + "e2e/node_modules/@percy/env": { + "version": "1.27.4", + "resolved": "https://registry.npmjs.org/@percy/env/-/env-1.27.4.tgz", + "integrity": "sha512-Xl2VUpljOrlCvAp/+KfmN9NUcTGpRdXPa1U9zSIyBnV/oAksp3/CK5EPpKZX/f8xUUkTp78UPaG99sEMA8VvXQ==", + "dev": true, + "dependencies": { + "@percy/logger": "1.27.4" + }, + "engines": { + "node": ">=14" + } + }, + "e2e/node_modules/@percy/logger": { + "version": "1.27.4", + "resolved": "https://registry.npmjs.org/@percy/logger/-/logger-1.27.4.tgz", + "integrity": "sha512-AwXqYaDkHaq1TPkP+ByB8rjvH9ddvkAH9tFd2kmq8AeFFXZ0amAPSbm6u090OUtdHWjRmKQK9JjSouBxEh0aRw==", + "dev": true, + "engines": { + "node": ">=14" + } + }, + "e2e/node_modules/@percy/playwright": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@percy/playwright/-/playwright-1.0.4.tgz", + "integrity": "sha512-prXvaEyvM6M7vGx0YujdMmFf+rZqkQpDEK32ZOwXbMzKYhGXjyiYESa4Axhc+Pz/c0THhXZWH4/70IW0RcyCQA==", + "dev": true, + "dependencies": { + "@percy/sdk-utils": "^1.0.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "playwright-core": ">=1" + } + }, + "e2e/node_modules/@percy/sdk-utils": { + "version": "1.27.4", + "resolved": "https://registry.npmjs.org/@percy/sdk-utils/-/sdk-utils-1.27.4.tgz", + "integrity": "sha512-vhPcdtmJlvTYJ5VOqiVzo02ujdtBFNw1/Bj+2ybiZgn7PkCDPFcITfXoWWPea319EIibGC4ZHjWHctRBgtW/tQ==", + "dev": true, + "engines": { + "node": ">=14" + } + }, + "e2e/node_modules/@percy/webdriver-utils": { + "version": "1.27.4", + "resolved": "https://registry.npmjs.org/@percy/webdriver-utils/-/webdriver-utils-1.27.4.tgz", + "integrity": "sha512-pZOOYns8Fikh2qlbxO16DxFEnCrnFIoLpE7iz4M9jXxOfk16VZF1PWknMChSr5NqG2I9k2OMjizUE2j8zvtl2Q==", + "dev": true, + "dependencies": { + "@percy/config": "1.27.4", + "@percy/sdk-utils": "1.27.4" + }, + "engines": { + "node": ">=14" + } + }, "node_modules/@aashutoshrathi/word-wrap": { "version": "1.2.6", "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", @@ -1291,251 +1527,6 @@ "node": ">= 8" } }, - "node_modules/@percy/cli": { - "version": "1.27.4", - "resolved": "https://registry.npmjs.org/@percy/cli/-/cli-1.27.4.tgz", - "integrity": "sha512-eIM44ejCMFc/S2W7X0htV+lvvmf63x5CaBpsSoQ9LRc/W02zHVAwQYdFFUowZEK6G1EwJEPIUnDxuuEx9PLG5A==", - "dev": true, - "dependencies": { - "@percy/cli-app": "1.27.4", - "@percy/cli-build": "1.27.4", - "@percy/cli-command": "1.27.4", - "@percy/cli-config": "1.27.4", - "@percy/cli-exec": "1.27.4", - "@percy/cli-snapshot": "1.27.4", - "@percy/cli-upload": "1.27.4", - "@percy/client": "1.27.4", - "@percy/logger": "1.27.4" - }, - "bin": { - "percy": "bin/run.cjs" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@percy/cli-app": { - "version": "1.27.4", - "resolved": "https://registry.npmjs.org/@percy/cli-app/-/cli-app-1.27.4.tgz", - "integrity": "sha512-av/s6K2QmQgq4SCQQ+3lmteNHeQtIpMeBjMfSgxs9zeBoPVOMx5hXrdsi6l7ChvOLXyYfzl/TbEuwrSDXiA8mw==", - "dev": true, - "dependencies": { - "@percy/cli-command": "1.27.4", - "@percy/cli-exec": "1.27.4" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@percy/cli-build": { - "version": "1.27.4", - "resolved": "https://registry.npmjs.org/@percy/cli-build/-/cli-build-1.27.4.tgz", - "integrity": "sha512-tzCAcV0sAw608Gr/Q6NtPvVkA8dnIehMzvEXNIN3WP9DkprOgu7MYuexN0fZXf4vSroDWYXT87pHYP8YrrnDag==", - "dev": true, - "dependencies": { - "@percy/cli-command": "1.27.4" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@percy/cli-command": { - "version": "1.27.4", - "resolved": "https://registry.npmjs.org/@percy/cli-command/-/cli-command-1.27.4.tgz", - "integrity": "sha512-YDKeeOr1MvksDOnc2ZKQ/XuERGrWwzuT/vWZ9it8L+0SyPj28UbklDu0e9zBgPsSDfxJlIvsWXRuHNGHsweKXg==", - "dev": true, - "dependencies": { - "@percy/config": "1.27.4", - "@percy/core": "1.27.4", - "@percy/logger": "1.27.4" - }, - "bin": { - "percy-cli-readme": "bin/readme.js" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@percy/cli-config": { - "version": "1.27.4", - "resolved": "https://registry.npmjs.org/@percy/cli-config/-/cli-config-1.27.4.tgz", - "integrity": "sha512-wFtQwPw4LEqpcZ6ac6WtejyGrvrrzzLdyvXNvsCPQLE47qXnXVXJ+E99k9KGcjavtUuPxrbWtX996Fz9Fb5hoQ==", - "dev": true, - "dependencies": { - "@percy/cli-command": "1.27.4" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@percy/cli-exec": { - "version": "1.27.4", - "resolved": "https://registry.npmjs.org/@percy/cli-exec/-/cli-exec-1.27.4.tgz", - "integrity": "sha512-aSDLvzXXdwJso+p5iI4iTOa7AYzgFdRoqY9ij/R5aAL9juNkvG5QatB1bkUNbJabKFe16t7iigt4eJnlS0R13A==", - "dev": true, - "dependencies": { - "@percy/cli-command": "1.27.4", - "cross-spawn": "^7.0.3", - "which": "^2.0.2" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@percy/cli-snapshot": { - "version": "1.27.4", - "resolved": "https://registry.npmjs.org/@percy/cli-snapshot/-/cli-snapshot-1.27.4.tgz", - "integrity": "sha512-dDT2UpeP6X5NcMdj3AKLhHGmnobwzlXsHa52C+ne3kg3HSZgaXH9OsNY866Xe7onvcsZxvnRKDYHmWW6kC3cKQ==", - "dev": true, - "dependencies": { - "@percy/cli-command": "1.27.4", - "yaml": "^2.0.0" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@percy/cli-upload": { - "version": "1.27.4", - "resolved": "https://registry.npmjs.org/@percy/cli-upload/-/cli-upload-1.27.4.tgz", - "integrity": "sha512-+4mcEOUydFubyMWVzQjPV79sL1Jar95SR7Yr7Vp4FBoE0iq0CbaHoJtyOWDfwvHYYp4rRjVMxpY0ha3jnmF0mA==", - "dev": true, - "dependencies": { - "@percy/cli-command": "1.27.4", - "fast-glob": "^3.2.11", - "image-size": "^1.0.0" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@percy/client": { - "version": "1.27.4", - "resolved": "https://registry.npmjs.org/@percy/client/-/client-1.27.4.tgz", - "integrity": "sha512-1F8ulTJhfk4/Lgj1Cn0blaRd8vTRJDxahAGseTbfrnZ2PHsftPZ65/5nCHPtpdD/2CE8N5COBQscGTMQQO+hBA==", - "dev": true, - "dependencies": { - "@percy/env": "1.27.4", - "@percy/logger": "1.27.4" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@percy/config": { - "version": "1.27.4", - "resolved": "https://registry.npmjs.org/@percy/config/-/config-1.27.4.tgz", - "integrity": "sha512-mlgiOdzdSfUSx9FskVIjmbT/iHbTif0Ow5evZQJTT1W0xgHOBWDCZyhINdsqulSBw+K1PNhHsu1J0h2ijxF4uA==", - "dev": true, - "dependencies": { - "@percy/logger": "1.27.4", - "ajv": "^8.6.2", - "cosmiconfig": "^8.0.0", - "yaml": "^2.0.0" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@percy/core": { - "version": "1.27.4", - "resolved": "https://registry.npmjs.org/@percy/core/-/core-1.27.4.tgz", - "integrity": "sha512-WdsA4zlPgXl9xj+a5WW2wA20iU6VTDmRq5sgsYNSuPzZfQB2I5Cecgvb55p86dhlUTbPJrC76daQKzDTGe0hfA==", - "dev": true, - "hasInstallScript": true, - "dependencies": { - "@percy/client": "1.27.4", - "@percy/config": "1.27.4", - "@percy/dom": "1.27.4", - "@percy/logger": "1.27.4", - "@percy/webdriver-utils": "1.27.4", - "content-disposition": "^0.5.4", - "cross-spawn": "^7.0.3", - "extract-zip": "^2.0.1", - "fast-glob": "^3.2.11", - "micromatch": "^4.0.4", - "mime-types": "^2.1.34", - "path-to-regexp": "^6.2.0", - "rimraf": "^3.0.2", - "ws": "^8.0.0" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@percy/dom": { - "version": "1.27.4", - "resolved": "https://registry.npmjs.org/@percy/dom/-/dom-1.27.4.tgz", - "integrity": "sha512-pwPDx3e9y7uRobVlEya8xu3BB3GeXbC74kQ6pPM/wFYDwi/Dg8DJywCsj5Nko/7QuhXP02rYgatkbREOIRxDnA==", - "dev": true - }, - "node_modules/@percy/env": { - "version": "1.27.4", - "resolved": "https://registry.npmjs.org/@percy/env/-/env-1.27.4.tgz", - "integrity": "sha512-Xl2VUpljOrlCvAp/+KfmN9NUcTGpRdXPa1U9zSIyBnV/oAksp3/CK5EPpKZX/f8xUUkTp78UPaG99sEMA8VvXQ==", - "dev": true, - "dependencies": { - "@percy/logger": "1.27.4" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@percy/logger": { - "version": "1.27.4", - "resolved": "https://registry.npmjs.org/@percy/logger/-/logger-1.27.4.tgz", - "integrity": "sha512-AwXqYaDkHaq1TPkP+ByB8rjvH9ddvkAH9tFd2kmq8AeFFXZ0amAPSbm6u090OUtdHWjRmKQK9JjSouBxEh0aRw==", - "dev": true, - "engines": { - "node": ">=14" - } - }, - "node_modules/@percy/playwright": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@percy/playwright/-/playwright-1.0.4.tgz", - "integrity": "sha512-prXvaEyvM6M7vGx0YujdMmFf+rZqkQpDEK32ZOwXbMzKYhGXjyiYESa4Axhc+Pz/c0THhXZWH4/70IW0RcyCQA==", - "dev": true, - "dependencies": { - "@percy/sdk-utils": "^1.0.0" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "playwright-core": ">=1" - } - }, - "node_modules/@percy/sdk-utils": { - "version": "1.28.2", - "resolved": "https://registry.npmjs.org/@percy/sdk-utils/-/sdk-utils-1.28.2.tgz", - "integrity": "sha512-cMFz8AjZ2KunN0dVwzA+Wosk4B+6G9dUkh2YPhYvqs0KLcCyYs3s91IzOQmtBOYwAUVja/W/u6XmBHw0jaxg0A==", - "dev": true, - "engines": { - "node": ">=14" - } - }, - "node_modules/@percy/webdriver-utils": { - "version": "1.27.4", - "resolved": "https://registry.npmjs.org/@percy/webdriver-utils/-/webdriver-utils-1.27.4.tgz", - "integrity": "sha512-pZOOYns8Fikh2qlbxO16DxFEnCrnFIoLpE7iz4M9jXxOfk16VZF1PWknMChSr5NqG2I9k2OMjizUE2j8zvtl2Q==", - "dev": true, - "dependencies": { - "@percy/config": "1.27.4", - "@percy/sdk-utils": "1.27.4" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@percy/webdriver-utils/node_modules/@percy/sdk-utils": { - "version": "1.27.4", - "resolved": "https://registry.npmjs.org/@percy/sdk-utils/-/sdk-utils-1.27.4.tgz", - "integrity": "sha512-vhPcdtmJlvTYJ5VOqiVzo02ujdtBFNw1/Bj+2ybiZgn7PkCDPFcITfXoWWPea319EIibGC4ZHjWHctRBgtW/tQ==", - "dev": true, - "engines": { - "node": ">=14" - } - }, "node_modules/@pkgjs/parseargs": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", @@ -1939,6 +1930,16 @@ "@types/node": "*" } }, + "node_modules/@types/yauzl": { + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.3.tgz", + "integrity": "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==", + "dev": true, + "optional": true, + "dependencies": { + "@types/node": "*" + } + }, "node_modules/@ungap/structured-clone": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", @@ -2701,12 +2702,12 @@ } }, "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", "dev": true, "dependencies": { - "fill-range": "^7.0.1" + "fill-range": "^7.1.1" }, "engines": { "node": ">=8" @@ -5699,9 +5700,9 @@ "dev": true }, "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "dev": true, "dependencies": { "to-regex-range": "^5.0.1" @@ -7878,12 +7879,12 @@ } }, "node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.7.tgz", + "integrity": "sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==", "dev": true, "dependencies": { - "braces": "^3.0.2", + "braces": "^3.0.3", "picomatch": "^2.3.1" }, "engines": { @@ -12150,9 +12151,9 @@ } }, "node_modules/ws": { - "version": "8.16.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.16.0.tgz", - "integrity": "sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==", + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz", + "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==", "dev": true, "engines": { "node": ">=10.0.0" @@ -12216,9 +12217,9 @@ "dev": true }, "node_modules/yaml": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.4.1.tgz", - "integrity": "sha512-pIXzoImaqmfOrL7teGUBt/T7ZDnyeGBWyXQBvOVhLkWLN37GXv8NMLK406UY6dS51JfcQHsmcW5cJ441bHg6Lg==", + "version": "2.4.5", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.4.5.tgz", + "integrity": "sha512-aBx2bnqDzVOyNKfsysjA2ms5ZlnjSAW2eG3/L5G/CSujfjLJTJsEw1bGw8kCf04KodQWk1pxlGnZ56CRxiawmg==", "dev": true, "bin": { "yaml": "bin.mjs"