From 42a009d6a52c5d7c6e90c88e95f6576d5170b490 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Mestres?= Date: Thu, 19 Oct 2023 15:31:44 +0200 Subject: [PATCH] implement visual test with percy --- .percy.js | 25 ++ README.md | 18 +- app/components/three-preview.hbs | 1 + app/models/text-maker-settings.ts | 4 +- app/modifiers/three-renderer.ts | 6 +- app/templates/app/generator.hbs | 2 +- app/templates/app/index.hbs | 4 +- package.json | 2 + tests/acceptance/_tests-settings.ts | 354 ++++++++++++++++++++++++++++ tests/acceptance/navigation-test.ts | 24 ++ tests/acceptance/visual-test.ts | 44 ++++ tests/fixtures/fonts/index.ts | 1 + tests/helpers/mock-font-manager.ts | 26 ++ yarn.lock | 329 ++++++++++++++++++-------- 14 files changed, 726 insertions(+), 114 deletions(-) create mode 100644 .percy.js create mode 100644 tests/acceptance/_tests-settings.ts create mode 100644 tests/acceptance/navigation-test.ts create mode 100644 tests/acceptance/visual-test.ts create mode 100644 tests/helpers/mock-font-manager.ts diff --git a/.percy.js b/.percy.js new file mode 100644 index 0000000..da8df7c --- /dev/null +++ b/.percy.js @@ -0,0 +1,25 @@ +module.exports = { + version: 2, + snapshot: { + widths: [ + 375, + 1280 + ], + + minHeight: 1024, + percyCSS: '', + disableShadowDOM: false + }, + + discovery: { + allowedHostnames: [], + disallowedHostnames: [], + networkIdleTimeout: 100 + }, + + upload: { + files: '**/*.{png,jpg,jpeg}', + ignore: '', + stripExtensions: false + } +} diff --git a/README.md b/README.md index 724bc54..c20ac38 100644 --- a/README.md +++ b/README.md @@ -56,23 +56,11 @@ Make use of the many generators for code, try `ember help generate` for more det * `ember test` * `ember test --server` -#### Mesh snapshots +**Update Percy snaphost** -The [text-maker](https://github.com/romgere/text2stl/blob/master/app/services/text-maker.ts) service's unit tests use mesh snapshot to test the service works as expected. +Run `yarn percy exec:start`, then run `ember test` or `ember test --server` & visit http://127.0.0.1:4200/tests?filter=Acceptance%20%7C%20visual. -If the service is updated (aka. when the generated mesh changes) the test will break. - -~~To fix the tests, new mesh snapshots has to be generated. To generate the new snapshot use the command :~~ - -~~`yarn generate:snapshot`~~ - -~~Warning: Don't run this command to fix tests if no modifications was made on `text-maker` service (or `three` deps update) or if you don't know why you run it (generating new snapshots will generate new UUID for mesh & create new useless file diffs)~~ - -**No longer work with node 14** - -Mesh snapshot need to be manualy updated, see console, when some mesh tests are failing... - -Easy way to re-generate snaptshot is to naviate to [127.0.0.1:4200/tests?filter=it generate mesh according to snapshots#download_fixture](127.0.0.1:4200/tests?filter=it generate mesh according to snapshots#download_fixture) & download all file in `tests/fixtures/meshs/`snapshots/ +Note: You'll need `PERCY_TOKEN` variable defined in your env. ### Linting diff --git a/app/components/three-preview.hbs b/app/components/three-preview.hbs index d257c2e..0c68f35 100644 --- a/app/components/three-preview.hbs +++ b/app/components/three-preview.hbs @@ -2,6 +2,7 @@ renderer=(component 'three-preview/renderer' mesh=@mesh parentSize=@parentSize + nearCamera=@nearCamera ) size=(component 'three-preview/size' mesh=@mesh diff --git a/app/models/text-maker-settings.ts b/app/models/text-maker-settings.ts index b5efcd8..9fbbead 100644 --- a/app/models/text-maker-settings.ts +++ b/app/models/text-maker-settings.ts @@ -20,6 +20,8 @@ interface TextMakerAdditionnalSettings { variantName: Variant; } +export type TextMakerSettingsParameters = TextMakerParameters & TextMakerAdditionnalSettings; + interface QPSerializable { serialize(): string; deserialize(json: string): void; @@ -123,7 +125,7 @@ export default class TextMakerSettings implements TextMakerParameters, QPSeriali @tracked supportPadding: SupportPaddingSettings; @tracked handleSettings: HandleSettings; - constructor(args: TextMakerParameters & TextMakerAdditionnalSettings) { + constructor(args: TextMakerSettingsParameters) { this.variantName = args.variantName; this.fontName = args.fontName; this.text = args.text ?? textMakerDefault.text; diff --git a/app/modifiers/three-renderer.ts b/app/modifiers/three-renderer.ts index c8572dd..d8ecacc 100644 --- a/app/modifiers/three-renderer.ts +++ b/app/modifiers/three-renderer.ts @@ -27,7 +27,7 @@ interface ThreeRendererModifierSignature { export default class ThreeRendererModifier extends Modifier { scene?: THREE.Scene; camera?: THREE.PerspectiveCamera; - renderer?: THREE.WebGLRenderer; + renderer?: THREE.WebGLRenderer | THREE.WebGL1Renderer; mesh?: THREE.Mesh; controls?: OrbitControls; @@ -64,8 +64,8 @@ export default class ThreeRendererModifier extends Modifier - +
diff --git a/app/templates/app/index.hbs b/app/templates/app/index.hbs index 3cba794..0bf8f5e 100644 --- a/app/templates/app/index.hbs +++ b/app/templates/app/index.hbs @@ -35,7 +35,7 @@ - + {{t "index_page.button"}} - \ No newline at end of file + diff --git a/package.json b/package.json index 6fe9893..e3a6dca 100644 --- a/package.json +++ b/package.json @@ -38,6 +38,8 @@ "@glimmer/component": "^1.1.2", "@glimmer/tracking": "^1.1.2", "@onehilltech/ember-cli-google-analytics": "^1.2.0", + "@percy/cli": "^1.27.3", + "@percy/ember": "^4.2.0", "@types/ember__application": "^~4.0", "@types/ember__array": "~4.0", "@types/ember__component": "~4.0", diff --git a/tests/acceptance/_tests-settings.ts b/tests/acceptance/_tests-settings.ts new file mode 100644 index 0000000..46b568b --- /dev/null +++ b/tests/acceptance/_tests-settings.ts @@ -0,0 +1,354 @@ +import config from 'text2stl/config/environment'; +import type { TextMakerSettingsParameters } from 'text2stl/models/text-maker-settings'; + +const { + APP: { textMakerDefault }, +} = config; + +const testsSettingsOverride: Array = [ + // "Basic" text only + { + text: '123', + size: 50, + height: 5, + spacing: 1, + }, + { + text: 'No default', + }, + { + text: 'this is a test', + size: 72, + height: 15, + spacing: 10, + }, + // "Basic" text with support + { + text: '123', + size: 50, + height: 5, + spacing: 1, + type: 2, + supportHeight: 20, + supportPadding: { top: 10, bottom: 10, left: 10, right: 10 }, + }, + { + text: 'No default', + type: 2, + }, + { + text: 'this is a test', + size: 72, + height: 15, + spacing: 10, + type: 2, + supportHeight: 10, + supportPadding: { top: 0, bottom: 0, left: 0, right: 0 }, + }, + // "Basic" negative text + { + text: '123', + size: 50, + height: 5, + spacing: 1, + type: 3, + supportHeight: 20, + supportPadding: { top: 10, bottom: 10, left: 10, right: 10 }, + }, + { + text: 'No default', + type: 3, + }, + { + text: 'this is a test', + size: 72, + height: 15, + spacing: 10, + type: 3, + supportHeight: 10, + supportPadding: { top: 0, bottom: 0, left: 0, right: 0 }, + }, + // "Basic" vertical text with support + { + text: '123', + size: 50, + height: 5, + spacing: 1, + type: 4, + supportHeight: 20, + supportPadding: { top: 10, bottom: 10, left: 10, right: 10 }, + }, + { + text: 'No default', + type: 4, + }, + { + text: 'this is a test', + size: 72, + height: 15, + spacing: 10, + type: 4, + supportHeight: 10, + supportPadding: { top: 0, bottom: 0, left: 0, right: 0 }, + }, + // Multi-line + { + text: 'multi\nline', + }, + { + text: 'multi\nline', + vSpacing: 25, + }, + // Alignment test + { + text: 'multi\nline', + align: 'left', + }, + { + text: 'multi\nline', + align: 'right', + }, + // Various supportPadding + { + text: '123', + type: 2, + supportPadding: { top: 50, bottom: 5, left: 100, right: 10 }, + }, + { + text: '123', + type: 3, + supportPadding: { top: 50, bottom: 5, left: 100, right: 10 }, + }, + { + text: '123', + type: 4, + supportPadding: { top: 50, bottom: 5, left: 100, right: 10 }, + }, + { + text: '123', + type: 2, + supportPadding: { top: 5, bottom: 50, left: 10, right: 100 }, + }, + { + text: '123', + type: 3, + supportPadding: { top: 5, bottom: 50, left: 10, right: 100 }, + }, + { + text: '123', + type: 4, + supportPadding: { top: 5, bottom: 50, left: 10, right: 100 }, + }, + // Without supportBorderRadius + { + text: 'No default', + type: 2, + supportBorderRadius: 0, + }, + { + text: 'No default', + type: 3, + supportBorderRadius: 0, + }, + { + text: 'No default', + type: 4, + supportBorderRadius: 0, + }, + // With supportBorderRadius > max possible radius + { + text: 'No default', + type: 2, + supportBorderRadius: 100, + }, + { + text: 'No default', + type: 3, + supportBorderRadius: 100, + }, + { + text: 'No default', + type: 4, + supportBorderRadius: 100, + }, + // With hole + { + text: 'No default', + type: 2, + handleSettings: { + type: 'hole', + position: 'top', + size: 10, + size2: 0, + offsetY: -20, + offsetX: 0, + }, + }, + { + text: 'No default', + type: 2, + handleSettings: { + type: 'hole', + position: 'left', + size: 10, + size2: 0, + offsetY: -20, + offsetX: 20, + }, + }, + { + text: 'No default', + type: 3, + handleSettings: { + type: 'hole', + position: 'bottom', + size: 10, + size2: 0, + offsetY: -10, + offsetX: 15, + }, + }, + { + text: 'No default', + type: 3, + handleSettings: { + type: 'hole', + position: 'left', + size: 10, + size2: 0, + offsetY: -20, + offsetX: 20, + }, + }, + { + text: 'No default', + type: 4, + handleSettings: { + type: 'hole', + position: 'top', + size: 10, + size2: 0, + offsetY: -20, + offsetX: 0, + }, + }, + { + text: 'No default', + type: 4, + handleSettings: { + type: 'hole', + position: 'left', + size: 10, + size2: 0, + offsetY: -20, + offsetX: 20, + }, + }, + // With handle + { + text: 'No default', + type: 2, + handleSettings: { + type: 'handle', + position: 'top', + size: 50, + size2: 2, + offsetY: -20, + offsetX: 0, + }, + }, + { + text: 'No default', + type: 2, + handleSettings: { + type: 'handle', + position: 'left', + size: 100, + size2: 5, + offsetY: -20, + offsetX: 20, + }, + }, + { + text: 'No default', + type: 3, + handleSettings: { + type: 'handle', + position: 'bottom', + size: 50, + size2: 2, + offsetY: -10, + offsetX: 15, + }, + }, + { + text: 'No default', + type: 3, + handleSettings: { + type: 'handle', + position: 'left', + size: 100, + size2: 5, + offsetY: -20, + offsetX: 20, + }, + }, + { + text: 'No default', + type: 4, + handleSettings: { + type: 'handle', + position: 'top', + size: 50, + size2: 2, + offsetY: -20, + offsetX: 0, + }, + }, + { + text: 'No default', + type: 4, + handleSettings: { + type: 'handle', + position: 'left', + size: 100, + size2: 5, + offsetY: -20, + offsetX: 20, + }, + }, + // vertical align test + { + vAlignment: 'top', + }, + { + vAlignment: 'bottom', + }, + { + text: 'multi\nline', + vAlignment: 'top', + }, + { + text: 'multi\nline', + vAlignment: 'bottom', + }, + // Various font + { + fontName: 'chango', + }, +].map((settings) => { + return { + ...textMakerDefault, + ...settings, + supportPadding: { + ...textMakerDefault.supportPadding, + ...(settings?.supportPadding ?? {}), + }, + handleSettings: { + ...textMakerDefault.handleSettings, + ...(settings?.handleSettings ?? {}), + }, + } as TextMakerSettingsParameters; +}); + +export default testsSettingsOverride; diff --git a/tests/acceptance/navigation-test.ts b/tests/acceptance/navigation-test.ts new file mode 100644 index 0000000..589c872 --- /dev/null +++ b/tests/acceptance/navigation-test.ts @@ -0,0 +1,24 @@ +import { module, test } from 'qunit'; +import { visit, currentURL, click } from '@ember/test-helpers'; +import { setupApplicationTest } from 'ember-qunit'; +import mockFontManager from 'text2stl/tests/helpers/mock-font-manager'; + +module('Acceptance | navigation', function (hooks) { + setupApplicationTest(hooks); + + hooks.beforeEach(function () { + mockFontManager(this.owner); + }); + + test('visiting /', async function (assert) { + await visit('/'); + assert.strictEqual(currentURL(), '/en-us', 'it redirect to "landing page"'); + + await click('[data-test-generator]'); + assert.strictEqual( + currentURL().split('?')[0], // get rid of QP + '/en-us/generator', + 'it redirect to generator page', + ); + }); +}); diff --git a/tests/acceptance/visual-test.ts b/tests/acceptance/visual-test.ts new file mode 100644 index 0000000..be5107d --- /dev/null +++ b/tests/acceptance/visual-test.ts @@ -0,0 +1,44 @@ +/* eslint-disable no-await-in-loop */ +import { module, test } from 'qunit'; +import { visit } from '@ember/test-helpers'; +import { setupApplicationTest } from 'ember-qunit'; +import testsSettings from './_tests-settings'; +import percySnapshot from '@percy/ember'; +import TextMakerSettings from 'text2stl/models/text-maker-settings'; +import mockFontManager from 'text2stl/tests/helpers/mock-font-manager'; +module('Acceptance | visual', function (hooks) { + setupApplicationTest(hooks); + + hooks.beforeEach(function () { + mockFontManager(this.owner); + }); + + // const testIdx = 38; + // test(`visual test #${testIdx + 1}`, async function (assert) { + // const settings = new TextMakerSettings(testsSettings[testIdx]); + // const settingsQP = settings.serialize(); + // // Load test settings through QP + // await visit(`/en-us/generator?modelSettings=${settingsQP}`); + + // await percySnapshot(`visual test #${testIdx + 1}`); + // assert.true(true); + // await new Promise(function (resolve) { + // setTimeout(resolve, 5000); + // }); + // }); + + for (let testIdx = 0; testIdx < testsSettings.length; testIdx++) { + test(`visual test #${testIdx + 1}`, async function (assert) { + const settings = new TextMakerSettings(testsSettings[testIdx]); + const settingsQP = settings.serialize(); + // Load test settings through QP + await visit(`/en-us/generator?modelSettings=${settingsQP}`); + + await new Promise(function (resolve) { + setTimeout(resolve, 100); + }); + await percySnapshot(`visual test #${testIdx + 1}`); + assert.true(true); + }); + } +}); diff --git a/tests/fixtures/fonts/index.ts b/tests/fixtures/fonts/index.ts index cca15fc..e5ec47b 100644 --- a/tests/fixtures/fonts/index.ts +++ b/tests/fixtures/fonts/index.ts @@ -5,4 +5,5 @@ import open_sans from './open_sans'; export default { chango, open_sans, + Roboto: open_sans, // Default, for test purpose } as Record; diff --git a/tests/helpers/mock-font-manager.ts b/tests/helpers/mock-font-manager.ts new file mode 100644 index 0000000..8b5bc08 --- /dev/null +++ b/tests/helpers/mock-font-manager.ts @@ -0,0 +1,26 @@ +import type Owner from '@ember/owner'; + +import Service from '@ember/service'; +import loadFont from 'text2stl/tests/helpers/load-font'; + +export default function (owner: Owner) { + owner.register( + 'service:font-manager', + class extends Service { + fontList = new Map(); + + availableFontCategories = ['mock']; + availableFontScript = ['mock']; + + constructor() { + super(); + this.fontList.set('mock', { family: 'mock', category: 'mock', variants: ['regular'] }); + } + async loadFont() {} + + async fetchFont(name: string) { + return loadFont(name); + } + }, + ); +} diff --git a/yarn.lock b/yarn.lock index d642562..a8ae3fb 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1075,18 +1075,6 @@ exec-sh "^0.3.2" minimist "^1.2.0" -"@cspotcode/source-map-consumer@0.8.0": - version "0.8.0" - resolved "https://registry.yarnpkg.com/@cspotcode/source-map-consumer/-/source-map-consumer-0.8.0.tgz#33bf4b7b39c178821606f669bbc447a6a629786b" - integrity sha512-41qniHzTU8yAGbCp04ohlmSrZf8bkf/iJsl3V0dRGsQN/5GFfx+LbCSsCpp2gqrqjTVg/K6O8ycoV35JIwAzAg== - -"@cspotcode/source-map-support@0.7.0": - version "0.7.0" - resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.7.0.tgz#4789840aa859e46d2f3173727ab707c66bf344f5" - integrity sha512-X4xqRHqN8ACt2aHVe51OxeA2HjbcL4MqFqXkrmQszJ1NOUuUu5u6Vqx/0lZSVNku7velL5FC/s5uEAj1lsBMhA== - dependencies: - "@cspotcode/source-map-consumer" "0.8.0" - "@csstools/css-parser-algorithms@^2.3.0": version "2.3.1" resolved "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.3.1.tgz#ec4fc764ba45d2bb7ee2774667e056aa95003f3a" @@ -1678,6 +1666,154 @@ ember-cli-babel "^7.17.2" ember-cli-htmlbars "^4.2.2" +"@percy/cli-app@1.27.3": + version "1.27.3" + resolved "https://registry.npmjs.org/@percy/cli-app/-/cli-app-1.27.3.tgz#c296e09ffac46c011e9f33ac779d6f0396e0b2b6" + integrity sha512-RUSzWTRkG4hjUy7dzu+zlKVlbXEcj3yoiFTpjrmUxoK5QMVQtZfDdkHfJNSI51w1ZRzuxmO5x5uqFRpgUKh8QQ== + dependencies: + "@percy/cli-command" "1.27.3" + "@percy/cli-exec" "1.27.3" + +"@percy/cli-build@1.27.3": + version "1.27.3" + resolved "https://registry.npmjs.org/@percy/cli-build/-/cli-build-1.27.3.tgz#7c193adf86beecd74541d94e32dad9d7f884c630" + integrity sha512-F7vWMmXipINDO9kvDyaPaIeUZlZLfIbg74oRaAJUOVH2nkf0FNSPy7Dy/MEsFWAiKNeW7/UwHjuYl+I/yMBZPw== + dependencies: + "@percy/cli-command" "1.27.3" + +"@percy/cli-command@1.27.3": + version "1.27.3" + resolved "https://registry.npmjs.org/@percy/cli-command/-/cli-command-1.27.3.tgz#fe0112987e25c28f25705c4e604c0f06a8484803" + integrity sha512-aU76lu2a2/N/BUSsXpLXRzeJeXzmAcA3s9EFDeMNDMZY/7dV6wlLX9r7n931UD3bIhdlkl1o7COXIIATtPymJQ== + dependencies: + "@percy/config" "1.27.3" + "@percy/core" "1.27.3" + "@percy/logger" "1.27.3" + +"@percy/cli-config@1.27.3": + version "1.27.3" + resolved "https://registry.npmjs.org/@percy/cli-config/-/cli-config-1.27.3.tgz#23fb52ed0916a466afcae229ea02e8583ae5b654" + integrity sha512-+gUZUlbpgllux0yJnCFYMuNn1kItfIP9F1AIYqdqFM9KLixodMCWAXDUQ4V4EVLDjOR7fD3NKmyoFUFJgwcIww== + dependencies: + "@percy/cli-command" "1.27.3" + +"@percy/cli-exec@1.27.3": + version "1.27.3" + resolved "https://registry.npmjs.org/@percy/cli-exec/-/cli-exec-1.27.3.tgz#82f8d610722d57a9a6d3a9050c7ece545dbada55" + integrity sha512-PuSxfZKWx9BoeCbt5U1Edc+fv5kb/mYr+9sgoBsoHmwe5iNIgYKx6D+wmNK7FHgc82mycNLaEguew2JwJXlPew== + dependencies: + "@percy/cli-command" "1.27.3" + cross-spawn "^7.0.3" + which "^2.0.2" + +"@percy/cli-snapshot@1.27.3": + version "1.27.3" + resolved "https://registry.npmjs.org/@percy/cli-snapshot/-/cli-snapshot-1.27.3.tgz#0fa75e42c4ab8c551c7b0e38e5a06391e4919700" + integrity sha512-HU7p5FLJ1W+QM3mbq8MFyqukthFnxPXrBAC7O0Dh4GfxXfdThV1HOdXqCEZ1pj1b3XkEM5SvvLKc7mClnc4D1Q== + dependencies: + "@percy/cli-command" "1.27.3" + yaml "^2.0.0" + +"@percy/cli-upload@1.27.3": + version "1.27.3" + resolved "https://registry.npmjs.org/@percy/cli-upload/-/cli-upload-1.27.3.tgz#a12ca27786aa2d1356f9c8f068a4aad21a4111fa" + integrity sha512-sqzOAMqFKXhpuXDGAK5zUf5Aw/xgBbAP4o4y43dRBi6gIgf8DiiLuc+avyfcKm+2lW5cUTG9SPETVCpu03WozQ== + dependencies: + "@percy/cli-command" "1.27.3" + fast-glob "^3.2.11" + image-size "^1.0.0" + +"@percy/cli@^1.27.3": + version "1.27.3" + resolved "https://registry.npmjs.org/@percy/cli/-/cli-1.27.3.tgz#186d5fea311bbad1db5f987ad40a0a77cf4bed9b" + integrity sha512-GyAIk9wm32cheYAeVyY6nOkDcGgSeG7wgLhZJWzi0gVhFE9W04sudWa++7akEqpGLMnTM2Q4OZv5P3cy1F9iPA== + dependencies: + "@percy/cli-app" "1.27.3" + "@percy/cli-build" "1.27.3" + "@percy/cli-command" "1.27.3" + "@percy/cli-config" "1.27.3" + "@percy/cli-exec" "1.27.3" + "@percy/cli-snapshot" "1.27.3" + "@percy/cli-upload" "1.27.3" + "@percy/client" "1.27.3" + "@percy/logger" "1.27.3" + +"@percy/client@1.27.3": + version "1.27.3" + resolved "https://registry.npmjs.org/@percy/client/-/client-1.27.3.tgz#79a2e9cb059892d820f90b4b5f95fede34ec0246" + integrity sha512-AuVpiuknK8OiDIN7BpkDRTYx6yAQVI4TjLFy/QmfZDK0PQMH+2dNIBi/pXooC5Ac64I7BYVqdaUk2IbdxEXbqQ== + dependencies: + "@percy/env" "1.27.3" + "@percy/logger" "1.27.3" + +"@percy/config@1.27.3": + version "1.27.3" + resolved "https://registry.npmjs.org/@percy/config/-/config-1.27.3.tgz#8b4cc77def10f4de52aad0682bfc7e13d2dbd429" + integrity sha512-hxp/zQz/3IQcyBbMkmvvnlkwMn9tgYFAOAFtZqECruqQ1M9XE10uYtWjvVwt9s4rlJEB4PWFvAV4c04/CT6ugQ== + dependencies: + "@percy/logger" "1.27.3" + ajv "^8.6.2" + cosmiconfig "^8.0.0" + yaml "^2.0.0" + +"@percy/core@1.27.3": + version "1.27.3" + resolved "https://registry.npmjs.org/@percy/core/-/core-1.27.3.tgz#f577fb49e046ca14da87557463b0b98d68414587" + integrity sha512-LK+7dVLRQdVEQUG6Qn61awLbdYmazLwXWYg2UHqEWrbRIygkhoe+n3pPTwzxjiJxJsYYlelx/gDzGwjYzvV4aA== + dependencies: + "@percy/client" "1.27.3" + "@percy/config" "1.27.3" + "@percy/dom" "1.27.3" + "@percy/logger" "1.27.3" + "@percy/webdriver-utils" "1.27.3" + 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" + +"@percy/dom@1.27.3": + version "1.27.3" + resolved "https://registry.npmjs.org/@percy/dom/-/dom-1.27.3.tgz#126f2389dfbb7f4ee3b81a5fcce65f5b02a9c33c" + integrity sha512-QVSmogZhlVjy5mzqSesWbS5hjV8+1gMtAXSLtfRjdkZGQ/h2rnDbRZUW4PoJQ9ZpxBZegU5/W9LFvEO3FMVelA== + +"@percy/ember@^4.2.0": + version "4.2.0" + resolved "https://registry.npmjs.org/@percy/ember/-/ember-4.2.0.tgz#b6fdeec46a88ae80da9d8a1c689b5bb67bf5992e" + integrity sha512-D/WckDD2tQetdn8uq46nQA1rOVgov8jsZG4uN7snAq6SrOpxNxacONg37QPwczmICBc7o/NlipCAUteukmtKzg== + dependencies: + "@percy/sdk-utils" "^1.18.0" + ember-cli-babel "^7.26.11" + +"@percy/env@1.27.3": + version "1.27.3" + resolved "https://registry.npmjs.org/@percy/env/-/env-1.27.3.tgz#0c3c1a991f2ffb53a819cf78f006c4cc93ff7d69" + integrity sha512-f9NwjAmcN6HEfJ2/32fmBwUJ3xjn/JXmGUKqmSvw0L3WZuvKaYRpYtaI+n0B6NsujZ4R+KUEGr0jczEoQ62UEg== + dependencies: + "@percy/logger" "1.27.3" + +"@percy/logger@1.27.3": + version "1.27.3" + resolved "https://registry.npmjs.org/@percy/logger/-/logger-1.27.3.tgz#7bc8d7666d50930e7be34e50ff09f23344efc1ee" + integrity sha512-Z/XoEakUHVBivZqmRwFTwiOWT6v5nJgQ6V9aNs2FzjcpyFlJAFZTmHv8+craDKehmnND3tp8FGdPe34Ty0JhEQ== + +"@percy/sdk-utils@1.27.3", "@percy/sdk-utils@^1.18.0": + version "1.27.3" + resolved "https://registry.npmjs.org/@percy/sdk-utils/-/sdk-utils-1.27.3.tgz#2ac9dcfd3d4f314f4f8715cb84297085c97a4259" + integrity sha512-IhNx5VaYsKiHaFYFbX6BsVb4bNWojNrKyDa9aRF1afAWAeVWHd1Jq/XeVfMDNCrYcsrA+pYDPSXfb+N5cpAeGQ== + +"@percy/webdriver-utils@1.27.3": + version "1.27.3" + resolved "https://registry.npmjs.org/@percy/webdriver-utils/-/webdriver-utils-1.27.3.tgz#4e008bffd8120cbb6b4babd50c6a6d69e1a99f44" + integrity sha512-yV+7nc8aUPQHP1KnWwTndVHqvgs4xzCA8ObzRFuAaKSTC/hBgpI5ceCDv3aSM03ZtXk4f06AWtsgpU5BYpoP1A== + dependencies: + "@percy/config" "1.27.3" + "@percy/sdk-utils" "1.27.3" + "@simple-dom/interface@^1.4.0": version "1.4.0" resolved "https://registry.yarnpkg.com/@simple-dom/interface/-/interface-1.4.0.tgz#e8feea579232017f89b0138e2726facda6fbb71f" @@ -1698,26 +1834,6 @@ resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82" integrity sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw== -"@tsconfig/node10@^1.0.7": - version "1.0.8" - resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.8.tgz#c1e4e80d6f964fbecb3359c43bd48b40f7cadad9" - integrity sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg== - -"@tsconfig/node12@^1.0.7": - version "1.0.9" - resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.9.tgz#62c1f6dee2ebd9aead80dc3afa56810e58e1a04c" - integrity sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw== - -"@tsconfig/node14@^1.0.0": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.1.tgz#95f2d167ffb9b8d2068b0b235302fafd4df711f2" - integrity sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg== - -"@tsconfig/node16@^1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.2.tgz#423c77877d0569db20e1fc80885ac4118314010e" - integrity sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA== - "@types/acorn@^4.0.3": version "4.0.6" resolved "https://registry.yarnpkg.com/@types/acorn/-/acorn-4.0.6.tgz#d61ca5480300ac41a7d973dd5b84d0a591154a22" @@ -2159,6 +2275,13 @@ resolved "https://registry.yarnpkg.com/@types/tough-cookie/-/tough-cookie-4.0.1.tgz#8f80dd965ad81f3e1bc26d6f5c727e132721ff40" integrity sha512-Y0K95ThC3esLEYD6ZuqNek29lNX2EM1qxV8y2FTLUB0ff5wWrk7az+mLrnNFUnaXcgKye22+sFBRXOgpPILZNg== +"@types/yauzl@^2.9.1": + version "2.10.1" + resolved "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.1.tgz#4e8f299f0934d60f36c74f59cb5a8483fd786691" + integrity sha512-CHzgNU3qYBnp/O4S3yv2tXPlvMTq0YWSTVg2/JYLqWZGHwwgJGAwd00poay/11asPq8wLFwHzubyInqHIFmmiw== + dependencies: + "@types/node" "*" + "@typescript-eslint/eslint-plugin@^6.3.0": version "6.3.0" resolved "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.3.0.tgz#e751e148aab7ccaf8a7bfd370f7ce9e6bdd1f3f4" @@ -2579,11 +2702,6 @@ acorn-walk@^7.1.1: resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc" integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA== -acorn-walk@^8.1.1: - version "8.2.0" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1" - integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== - acorn@^5.0.0, acorn@^5.5.3: version "5.7.4" resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.4.tgz#3e8d8a9947d0599a1796d10225d7432f4a4acf5e" @@ -2599,7 +2717,7 @@ acorn@^7.1.1: resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== -acorn@^8.2.4, acorn@^8.4.1, acorn@^8.7.1, acorn@^8.8.2, acorn@^8.9.0: +acorn@^8.2.4, acorn@^8.7.1, acorn@^8.8.2, acorn@^8.9.0: version "8.10.0" resolved "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz#8be5b3907a67221a81ab23c7889c4c5526b62ec5" integrity sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw== @@ -2645,7 +2763,7 @@ ajv@^6.1.0, ajv@^6.10.2, ajv@^6.12.4, ajv@^6.12.5: json-schema-traverse "^0.4.1" uri-js "^4.2.2" -ajv@^8.0.0, ajv@^8.0.1, ajv@^8.9.0: +ajv@^8.0.0, ajv@^8.0.1, ajv@^8.6.2, ajv@^8.9.0: version "8.12.0" resolved "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz#d1a0527323e22f53562c567c00991577dfbe19d1" integrity sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA== @@ -2778,11 +2896,6 @@ are-we-there-yet@^3.0.0: delegates "^1.0.0" readable-stream "^3.6.0" -arg@^4.1.0: - version "4.1.3" - resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" - integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== - argparse@^1.0.7: version "1.0.10" resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" @@ -4153,6 +4266,11 @@ bser@2.1.1: dependencies: node-int64 "^0.4.0" +buffer-crc32@~0.2.3: + version "0.2.13" + resolved "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" + integrity sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ== + buffer-from@^1.0.0: version "1.1.2" resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" @@ -4788,7 +4906,7 @@ constants-browserify@^1.0.0: resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" integrity sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U= -content-disposition@0.5.4: +content-disposition@0.5.4, content-disposition@^0.5.4: version "0.5.4" resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe" integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== @@ -4881,6 +4999,16 @@ cors@~2.8.5: object-assign "^4" vary "^1" +cosmiconfig@^8.0.0: + version "8.3.6" + resolved "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz#060a2b871d66dba6c8538ea1118ba1ac16f5fae3" + integrity sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA== + dependencies: + import-fresh "^3.3.0" + js-yaml "^4.1.0" + parse-json "^5.2.0" + path-type "^4.0.0" + cosmiconfig@^8.2.0: version "8.2.0" resolved "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.2.0.tgz#f7d17c56a590856cd1e7cee98734dca272b0d8fd" @@ -4922,11 +5050,6 @@ create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7: safe-buffer "^5.0.1" sha.js "^2.4.8" -create-require@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" - integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== - cross-spawn@^6.0.0: version "6.0.5" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" @@ -5216,11 +5339,6 @@ detect-newline@3.1.0: resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651" integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA== -diff@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" - integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== - diff@^5.1.0: version "5.1.0" resolved "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz#bc52d298c5ea8df9194800224445ed43ffc87e40" @@ -6545,7 +6663,7 @@ eslint@^8.37.0: strip-ansi "^6.0.1" text-table "^0.2.0" -esm@^3.2.25, esm@^3.2.4: +esm@^3.2.4: version "3.2.25" resolved "https://registry.yarnpkg.com/esm/-/esm-3.2.25.tgz#342c18c29d56157688ba5ce31f8431fbb795cc10" integrity sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA== @@ -6847,6 +6965,17 @@ extract-stack@^2.0.0: resolved "https://registry.yarnpkg.com/extract-stack/-/extract-stack-2.0.0.tgz#11367bc865bfcd9bc0db3123e5edb57786f11f9b" integrity sha512-AEo4zm+TenK7zQorGK1f9mJ8L14hnTDi2ZQPR+Mub1NX8zimka1mXpV5LpH8x9HoUmFSHZCfLHqWvp0Y4FxxzQ== +extract-zip@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz#663dca56fe46df890d5f131ef4a06d22bb8ba13a" + integrity sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg== + dependencies: + debug "^4.1.1" + get-stream "^5.1.0" + yauzl "^2.10.0" + optionalDependencies: + "@types/yauzl" "^2.9.1" + fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" @@ -6869,7 +6998,7 @@ fast-glob@^2.2.6: merge2 "^1.2.3" micromatch "^3.1.10" -fast-glob@^3.0.3, fast-glob@^3.2.9, fast-glob@^3.3.0: +fast-glob@^3.0.3, fast-glob@^3.2.11, fast-glob@^3.2.9, fast-glob@^3.3.0: version "3.3.1" resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz#784b4e897340f3dbbef17413b3f11acf03c874c4" integrity sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg== @@ -6956,6 +7085,13 @@ fb-watchman@^2.0.0, fb-watchman@^2.0.1: dependencies: bser "2.1.1" +fd-slicer@~1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e" + integrity sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g== + dependencies: + pend "~1.2.0" + figgy-pudding@^3.5.1: version "3.5.2" resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.2.tgz#b4eee8148abb01dcf1d1ac34367d59e12fa61d6e" @@ -7542,7 +7678,7 @@ get-stream@^4.0.0: dependencies: pump "^3.0.0" -get-stream@^5.0.0: +get-stream@^5.0.0, get-stream@^5.1.0: version "5.2.0" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== @@ -8166,12 +8302,19 @@ ignore@^5.1.1, ignore@^5.2.0, ignore@^5.2.4: resolved "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324" integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ== +image-size@^1.0.0: + version "1.0.2" + resolved "https://registry.npmjs.org/image-size/-/image-size-1.0.2.tgz#d778b6d0ab75b2737c1556dd631652eb963bc486" + integrity sha512-xfOoWjceHntRb3qFCrh5ZFORYH8XCdYpASltMhZ/Q0KZiOwjdE/Yl2QCiWdwD+lygV5bMCvauzgu5PxBX/Yerg== + dependencies: + queue "6.0.2" + immutable@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.0.0.tgz#b86f78de6adef3608395efb269a91462797e2c23" integrity sha512-zIE9hX70qew5qTUjSS7wi1iwj/l7+m54KWU247nhM3v806UdGj1yDndXj+IOYxxtW9zyLI+xqFNZjTuDaLUqFw== -import-fresh@^3.2.1: +import-fresh@^3.2.1, import-fresh@^3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== @@ -8854,11 +8997,6 @@ js-yaml@^4.1.0: dependencies: argparse "^2.0.1" -jsdom-global@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/jsdom-global/-/jsdom-global-3.0.2.tgz#6bd299c13b0c4626b2da2c0393cd4385d606acb9" - integrity sha1-a9KZwTsMRiay2iwDk81DhdYGrLk= - jsdom@^16.4.0: version "16.7.0" resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-16.7.0.tgz#918ae71965424b197c819f8183a754e18977b710" @@ -9488,11 +9626,6 @@ make-dir@^3.0.0, make-dir@^3.0.2, make-dir@^3.1.0: dependencies: semver "^6.0.0" -make-error@^1.1.1: - version "1.3.6" - resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" - integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== - makeerror@1.0.12: version "1.0.12" resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.12.tgz#3e5dd2079a82e812e983cc6610c4a2cb0eaa801a" @@ -9753,7 +9886,7 @@ mime-db@1.52.0, "mime-db@>= 1.43.0 < 2": resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== -mime-types@^2.1.12, mime-types@^2.1.18, mime-types@^2.1.26, mime-types@^2.1.27, mime-types@~2.1.24, mime-types@~2.1.34: +mime-types@^2.1.12, mime-types@^2.1.18, mime-types@^2.1.26, mime-types@^2.1.27, mime-types@^2.1.34, mime-types@~2.1.24, mime-types@~2.1.34: version "2.1.35" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== @@ -10641,6 +10774,11 @@ path-to-regexp@0.1.7: resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" integrity sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ== +path-to-regexp@^6.2.0: + version "6.2.1" + resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.2.1.tgz#d54934d6798eb9e5ef14e7af7962c945906918e5" + integrity sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw== + path-type@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" @@ -10657,6 +10795,11 @@ pbkdf2@^3.0.3: safe-buffer "^5.0.1" sha.js "^2.4.8" +pend@~1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" + integrity sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg== + picocolors@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" @@ -10990,6 +11133,13 @@ queue-microtask@^1.2.2: resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== +queue@6.0.2: + version "6.0.2" + resolved "https://registry.npmjs.org/queue/-/queue-6.0.2.tgz#b91525283e2315c7553d2efa18d83e76432fed65" + integrity sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA== + dependencies: + inherits "~2.0.3" + quick-lru@^5.1.1: version "5.1.1" resolved "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932" @@ -12875,24 +13025,6 @@ ts-api-utils@^1.0.1: resolved "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.0.1.tgz#8144e811d44c749cd65b2da305a032510774452d" integrity sha512-lC/RGlPmwdrIBFTX59wwNzqh7aR2otPNPR/5brHZm/XKFYKsfqxihXUe9pU3JI+3vGkl+vyCoNNnPhJn3aLK1A== -ts-node@^10.4.0: - version "10.4.0" - resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.4.0.tgz#680f88945885f4e6cf450e7f0d6223dd404895f7" - integrity sha512-g0FlPvvCXSIO1JDF6S232P5jPYqBkRL9qly81ZgAOSU7rwI0stphCgd2kLiCrU9DjQCrJMWEqcNSjQL02s6d8A== - dependencies: - "@cspotcode/source-map-support" "0.7.0" - "@tsconfig/node10" "^1.0.7" - "@tsconfig/node12" "^1.0.7" - "@tsconfig/node14" "^1.0.0" - "@tsconfig/node16" "^1.0.2" - acorn "^8.4.1" - acorn-walk "^8.1.1" - arg "^4.1.0" - create-require "^1.1.0" - diff "^4.0.1" - make-error "^1.1.1" - yn "3.1.1" - tslib@^1.9.0: version "1.14.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" @@ -13665,6 +13797,11 @@ ws@^7.4.6: resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.6.tgz#e59fc509fb15ddfb65487ee9765c5a51dec5fe7b" integrity sha512-6GLgCqo2cy2A2rjCNFlxQS6ZljG/coZfZXclldI8FB/1G3CCI36Zd8xy2HrFVACi8tfk5XrgLQEk+P0Tnz9UcA== +ws@^8.0.0: + version "8.14.2" + resolved "https://registry.npmjs.org/ws/-/ws-8.14.2.tgz#6c249a806eb2db7a20d26d51e7709eab7b2e6c7f" + integrity sha512-wEBG1ftX4jcglPxgFCMJmZ2PLtSbJ2Peg6TmpJFTbe9GZYOQCDPdMYu/Tm0/bGZkw8paZnJY45J4K2PZrLYq8g== + ws@~8.2.3: version "8.2.3" resolved "https://registry.yarnpkg.com/ws/-/ws-8.2.3.tgz#63a56456db1b04367d0b721a0b80cae6d8becbba" @@ -13718,6 +13855,11 @@ yam@^1.0.0: fs-extra "^4.0.2" lodash.merge "^4.6.0" +yaml@^2.0.0: + version "2.3.2" + resolved "https://registry.npmjs.org/yaml/-/yaml-2.3.2.tgz#f522db4313c671a0ca963a75670f1c12ea909144" + integrity sha512-N/lyzTPaJasoDmfV7YTrYCI0G/3ivm/9wdG0aHuheKowWQwGTsK0Eoiw6utmzAnI6pkJa0DUVygvp3spqqEKXg== + yargs-parser@^18.1.2: version "18.1.3" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" @@ -13766,10 +13908,13 @@ yargs@^17.7.2: y18n "^5.0.5" yargs-parser "^21.1.1" -yn@3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" - integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== +yauzl@^2.10.0: + version "2.10.0" + resolved "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9" + integrity sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g== + dependencies: + buffer-crc32 "~0.2.3" + fd-slicer "~1.1.0" yocto-queue@^0.1.0: version "0.1.0"