From a6f5f38573fa6dd1d3e126dfcaf137c28accb9cf Mon Sep 17 00:00:00 2001 From: Gaurav Munjal Date: Tue, 23 Jul 2024 09:37:33 -0400 Subject: [PATCH 01/12] Use postmessage instead of storage event for embedded case --- addon/mixins/ui-service-mixin.js | 31 ++++++++++++++++++++++++++ public/redirect.html | 37 +++++++++++++++++++++++++++----- 2 files changed, 63 insertions(+), 5 deletions(-) diff --git a/addon/mixins/ui-service-mixin.js b/addon/mixins/ui-service-mixin.js index b58a7284..b098ff2e 100644 --- a/addon/mixins/ui-service-mixin.js +++ b/addon/mixins/ui-service-mixin.js @@ -38,6 +38,7 @@ var ServicesMixin = Mixin.create({ let service = this; let lastRemote = this.remote; let storageToriiEventHandler; + let messageToriiEventHandler; return new EmberPromise(function (resolve, reject) { if (lastRemote) { @@ -55,7 +56,36 @@ var ServicesMixin = Mixin.create({ }); } }; + + // Using postMessage as an alternative to localStorage/storageEvent + // for case of web site embedded in iframe + messageToriiEventHandler = function (messageEvent) { + if (messageEvent.source === service.remote) { + if (messageEvent.data === 'getPendingRequestKey') { + service.remote.postMessage( + JSON.stringify({ pendingRequestKey: service.pendingRequestKey }), + window.location.origin + ); + } else { + const msg = JSON.parse(messageEvent.data); + const key = Object.keys(msg)[0]; + var remoteIdFromEvent = PopupIdSerializer.deserialize( + decodeURIComponent(key) + ); + if (remoteId === remoteIdFromEvent) { + var data = parseMessage(msg[key], keys); + localStorage.removeItem(key); + run(function () { + resolve(data); + }); + } + } + } + }; + window.addEventListener('message', messageToriiEventHandler); + var pendingRequestKey = PopupIdSerializer.serialize(remoteId); + service.pendingRequestKey = pendingRequestKey; localStorage.setItem(CURRENT_REQUEST_KEY, pendingRequestKey); localStorage.removeItem(WARNING_KEY); @@ -115,6 +145,7 @@ var ServicesMixin = Mixin.create({ }).finally(function () { // didClose will reject this same promise, but it has already resolved. service.close(); + window.removeEventListener('message', messageToriiEventHandler); window.removeEventListener('storage', storageToriiEventHandler); }); }, diff --git a/public/redirect.html b/public/redirect.html index b58b7a26..0babb523 100644 --- a/public/redirect.html +++ b/public/redirect.html @@ -4,16 +4,43 @@ Torii OAuth Redirect From 66dacf195bfd7cd6eb6afc09505ef9017eeef4f7 Mon Sep 17 00:00:00 2001 From: Gaurav Munjal Date: Tue, 17 Sep 2024 10:10:20 -0400 Subject: [PATCH 02/12] fix for feature flag off case --- addon/mixins/ui-service-mixin.js | 36 +++++++++++++++----------------- public/redirect.html | 14 +++++++++---- 2 files changed, 27 insertions(+), 23 deletions(-) diff --git a/addon/mixins/ui-service-mixin.js b/addon/mixins/ui-service-mixin.js index b098ff2e..604dd12c 100644 --- a/addon/mixins/ui-service-mixin.js +++ b/addon/mixins/ui-service-mixin.js @@ -60,25 +60,23 @@ var ServicesMixin = Mixin.create({ // Using postMessage as an alternative to localStorage/storageEvent // for case of web site embedded in iframe messageToriiEventHandler = function (messageEvent) { - if (messageEvent.source === service.remote) { - if (messageEvent.data === 'getPendingRequestKey') { - service.remote.postMessage( - JSON.stringify({ pendingRequestKey: service.pendingRequestKey }), - window.location.origin - ); - } else { - const msg = JSON.parse(messageEvent.data); - const key = Object.keys(msg)[0]; - var remoteIdFromEvent = PopupIdSerializer.deserialize( - decodeURIComponent(key) - ); - if (remoteId === remoteIdFromEvent) { - var data = parseMessage(msg[key], keys); - localStorage.removeItem(key); - run(function () { - resolve(data); - }); - } + if (messageEvent.data === 'getPendingRequestKey') { + messageEvent.source.postMessage( + JSON.stringify({ pendingRequestKey: service.pendingRequestKey }), + window.location.origin + ); + } else { + const msg = JSON.parse(messageEvent.data); + const key = Object.keys(msg)[0]; + var remoteIdFromEvent = PopupIdSerializer.deserialize( + decodeURIComponent(key) + ); + if (remoteId === remoteIdFromEvent) { + var data = parseMessage(msg[key], keys); + localStorage.removeItem(key); + run(function () { + resolve(data); + }); } } }; diff --git a/public/redirect.html b/public/redirect.html index 0babb523..cda41a69 100644 --- a/public/redirect.html +++ b/public/redirect.html @@ -7,6 +7,12 @@ const CURRENT_REQUEST_KEY = '__torii_request'; let pendingRequestKey = window.localStorage.getItem(CURRENT_REQUEST_KEY); const origin = window.location.origin; + let opener = window.opener; + try { + if (opener && opener.parent && opener.parent.origin === origin) { + opener = opener.parent; + } + } catch {} if (pendingRequestKey) { window.localStorage.removeItem(CURRENT_REQUEST_KEY); @@ -14,7 +20,7 @@ window.localStorage.setItem(pendingRequestKey, url); const obj = {}; obj[pendingRequestKey] = url; - window.opener?.postMessage( + opener?.postMessage( JSON.stringify(obj), origin ); @@ -22,16 +28,16 @@ window.close(); } else { // localStorage not shared with opener due to browser restrictions - window.opener.postMessage('getPendingRequestKey', origin); + opener?.postMessage('getPendingRequestKey', origin); window.addEventListener('message', function(messageEvent) { - if (messageEvent.source === window.opener) { + if (messageEvent.source === opener) { const msg = JSON.parse(messageEvent.data); if (msg.pendingRequestKey) { pendingRequestKey = msg.pendingRequestKey; url = window.location.toString(); const obj = {}; obj[pendingRequestKey] = url; - window.opener.postMessage( + opener.postMessage( JSON.stringify(obj), origin ); From 16e40831053f4cb1e257c99ca8ff254810a5c510 Mon Sep 17 00:00:00 2001 From: Gaurav Munjal Date: Mon, 23 Sep 2024 11:03:07 -0400 Subject: [PATCH 03/12] add test for postmessage in ui-service-mixin --- tests/unit/mixins/ui-service-mixin-test.js | 129 +++++++++++++++++++++ 1 file changed, 129 insertions(+) create mode 100644 tests/unit/mixins/ui-service-mixin-test.js diff --git a/tests/unit/mixins/ui-service-mixin-test.js b/tests/unit/mixins/ui-service-mixin-test.js new file mode 100644 index 00000000..178f50ce --- /dev/null +++ b/tests/unit/mixins/ui-service-mixin-test.js @@ -0,0 +1,129 @@ +/* eslint-disable ember/no-mixins, ember/no-new-mixins, ember/no-classic-classes */ + +import EmberObject from '@ember/object'; +import Evented from '@ember/object/evented'; +import UiServiceMixin, { + CURRENT_REQUEST_KEY, +} from 'torii/mixins/ui-service-mixin'; +import PopupIdSerializer from 'torii/lib/popup-id-serializer'; +import { module, test } from 'qunit'; + +module('Unit | Mixin | ui-service-mixin', function (hooks) { + const originalWindowOpen = window.open; + + const popupId = '09123-asdf'; + const expectedUrl = 'http://authServer'; + const expectedRedirectUrl = 'http://localserver?code=fr'; + const expectedMessage = 'getPendingRequestKey'; + + const mockWindowListener = (event) => { + let msg; + try { + msg = JSON.parse(event.data); + } catch { + // allow + } + if (msg && Object.keys(msg)[0] === 'pendingRequestKey') { + const obj = {}; + const key = PopupIdSerializer.serialize(encodeURIComponent(popupId)); + obj[key] = `${expectedUrl}?redirect_url=${expectedRedirectUrl}`; + window.dispatchEvent( + new MessageEvent('message', { + data: JSON.stringify(obj), + source: window, + }) + ); + } + }; + + const buildMockWindow = function (windowName) { + windowName = windowName || ''; + window.addEventListener('message', mockWindowListener); + return { + name: windowName, + focus() {}, + close() {}, + open() { + this.postMessage(expectedMessage); + }, + postMessage(msg) { + window.dispatchEvent( + new MessageEvent('message', { data: msg, source: window }) + ); + }, + }; + }; + + const buildPopupIdGenerator = function (popupId) { + return { + generate() { + return popupId; + }, + }; + }; + + let Popup = EmberObject.extend(Evented, UiServiceMixin, { + // Open a popup window. + openRemote(_url, pendingRequestKey) { + this.remote = buildMockWindow(pendingRequestKey); + this.remote.open(); + }, + + closeRemote() { + this.remote.closed = true; + }, + + pollRemote() { + if (!this.remote) { + return; + } + }, + }); + + let popup; + + hooks.beforeEach(function () { + popup = Popup.create({ remoteIdGenerator: buildPopupIdGenerator(popupId) }); + localStorage.removeItem(CURRENT_REQUEST_KEY); + }); + + hooks.afterEach(async function () { + localStorage.removeItem(CURRENT_REQUEST_KEY); + window.open = originalWindowOpen; + window.removeEventListener('message', mockWindowListener); + popup.destroy(); + }); + + test('requests pending request key', function (assert) { + assert.expect(1); + + let resultMessage; + const resultMessageListener = (event) => { + resultMessage = event.data; + }; + try { + window.addEventListener('message', resultMessageListener); + + popup.openRemote(expectedUrl, CURRENT_REQUEST_KEY); + + assert.strictEqual( + resultMessage, + expectedMessage, + 'requests pendingRequestKey' + ); + } finally { + window.removeEventListener('message', resultMessageListener); + } + }); + + test('returns data after receiving key', async function (assert) { + const keys = ['redirect_url']; + const result = await popup.open(expectedUrl, keys); + + assert.strictEqual( + result.redirect_url, + expectedRedirectUrl, + 'returns data successfully' + ); + }); +}); From 75c23b9ba4d5e414cb4bfb4697806f7b5c46780f Mon Sep 17 00:00:00 2001 From: Gaurav Munjal Date: Wed, 14 Oct 2026 13:56:45 -0400 Subject: [PATCH 04/12] Fix audit vulnerabilities without major bumps Update vulnerable dependencies to patched versions allowed by existing semver ranges (lockfile only), including: - handlebars 4.7.10, proxy-addr 2.0.8, websocket-driver 0.7.5, shell-quote 1.12.0 (criticals) - lodash 4.18.1, minimatch 3.1.5 / 5.1.9 / 9.0.9 - webpack 5.111.1, @babel/core 7.29.7, postcss 8.5.30, fast-uri 3.1.8, brace-expansion, nanoid, browserslist, js-yaml, picomatch, engine.io, socket.io, and others - express 4.22.3 and socket.io-adapter 2.5.8 to pick up patched body-parser, path-to-regexp, qs and ws Also: - ember-auto-import resolves to 2.13.1; devDependencies range aligned to ^2.10.0 - ember-cli-babel range raised to ^7.26.11 (already resolved) - Remove isbinaryfile 5.0.0 resolution; minimum node is now 20, so it resolves to 5.0.7 Co-Authored-By: Claude Opus 5.5 --- package.json | 7 +- pnpm-lock.yaml | 2211 +++++++++++++++++++++++++++--------------------- 2 files changed, 1230 insertions(+), 988 deletions(-) diff --git a/package.json b/package.json index e11c0407..601c50d0 100644 --- a/package.json +++ b/package.json @@ -46,13 +46,10 @@ "test:ember": "ember test", "test:ember-compatibility": "ember try:each" }, - "resolutions": { - "isbinaryfile": "5.0.0" - }, "dependencies": { "@ember/string": "^4.0.1", "ember-auto-import": "^2.10.0", - "ember-cli-babel": "^7.26.10", + "ember-cli-babel": "^7.26.11", "ember-cli-htmlbars": "^5.7.2" }, "devDependencies": { @@ -64,7 +61,7 @@ "@glimmer/tracking": "^1.0.4", "babel-eslint": "^10.1.0", "broccoli-asset-rev": "^3.0.0", - "ember-auto-import": "^2.4.3", + "ember-auto-import": "^2.10.0", "ember-cli": "~4.8.1", "ember-cli-dependency-checker": "^3.3.1", "ember-cli-inject-live-reload": "^2.1.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 84137b1d..d686a6c8 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -4,24 +4,21 @@ settings: autoInstallPeers: true excludeLinksFromLockfile: false -overrides: - isbinaryfile: 5.0.0 - importers: .: dependencies: '@babel/core': specifier: ^7.13.0 - version: 7.28.0 + version: 7.29.7 '@ember/string': specifier: ^4.0.1 version: 4.0.1 ember-auto-import: specifier: ^2.10.0 - version: 2.10.0(webpack@5.101.0) + version: 2.13.1(webpack@5.111.1(postcss@8.5.30)) ember-cli-babel: - specifier: ^7.26.10 + specifier: ^7.26.11 version: 7.26.11 ember-cli-htmlbars: specifier: ^5.7.2 @@ -32,13 +29,13 @@ importers: version: 2.2.0 '@ember/test-helpers': specifier: ^2.6.0 - version: 2.9.6(@babel/core@7.28.0)(ember-source@4.8.6(@babel/core@7.28.0)(@glimmer/component@1.1.2(@babel/core@7.28.0))(webpack@5.101.0)) + version: 2.9.6(@babel/core@7.29.7)(ember-source@4.8.6(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(webpack@5.111.1(postcss@8.5.30))) '@embroider/test-setup': specifier: ^0.48.1 version: 0.48.1 '@glimmer/component': specifier: ^1.0.4 - version: 1.1.2(@babel/core@7.28.0) + version: 1.1.2(@babel/core@7.29.7) '@glimmer/tracking': specifier: ^1.0.4 version: 1.1.2 @@ -50,10 +47,10 @@ importers: version: 3.0.0 ember-cli: specifier: ~4.8.1 - version: 4.8.1(babel-core@6.26.3)(encoding@0.1.13)(handlebars@4.7.8)(underscore@1.13.7) + version: 4.8.1(babel-core@6.26.3)(encoding@0.1.13)(handlebars@4.7.10)(underscore@1.13.8) ember-cli-dependency-checker: specifier: ^3.3.1 - version: 3.3.3(ember-cli@4.8.1(babel-core@6.26.3)(encoding@0.1.13)(handlebars@4.7.8)(underscore@1.13.7)) + version: 3.3.3(ember-cli@4.8.1(babel-core@6.26.3)(encoding@0.1.13)(handlebars@4.7.10)(underscore@1.13.8)) ember-cli-inject-live-reload: specifier: ^2.1.0 version: 2.1.0 @@ -68,7 +65,7 @@ importers: version: 1.1.3 ember-load-initializers: specifier: ^2.1.2 - version: 2.1.2(@babel/core@7.28.0) + version: 2.1.2(@babel/core@7.29.7) ember-maybe-import-regenerator: specifier: ^1.0.0 version: 1.0.0 @@ -77,13 +74,13 @@ importers: version: 7.0.0 ember-qunit: specifier: ^5.1.5 - version: 5.1.5(@ember/test-helpers@2.9.6(@babel/core@7.28.0)(ember-source@4.8.6(@babel/core@7.28.0)(@glimmer/component@1.1.2(@babel/core@7.28.0))(webpack@5.101.0)))(qunit@2.24.1) + version: 5.1.5(@ember/test-helpers@2.9.6(@babel/core@7.29.7)(ember-source@4.8.6(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(webpack@5.111.1(postcss@8.5.30))))(qunit@2.24.1) ember-resolver: specifier: ^8.0.3 - version: 8.1.0(@babel/core@7.28.0) + version: 8.1.0(@babel/core@7.29.7) ember-source: specifier: ~4.8.0 - version: 4.8.6(@babel/core@7.28.0)(@glimmer/component@1.1.2(@babel/core@7.28.0))(webpack@5.101.0) + version: 4.8.6(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(webpack@5.111.1(postcss@8.5.30)) ember-source-channel-url: specifier: ^3.0.0 version: 3.0.0(encoding@0.1.13) @@ -140,14 +137,10 @@ importers: version: 0.16.0 webpack: specifier: ^5.74.0 - version: 5.101.0 + version: 5.111.1(postcss@8.5.30) packages: - '@ampproject/remapping@2.3.0': - resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} - engines: {node: '>=6.0.0'} - '@babel/code-frame@7.12.11': resolution: {integrity: sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==} @@ -155,18 +148,30 @@ packages: resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==} engines: {node: '>=6.9.0'} + '@babel/code-frame@7.29.7': + resolution: {integrity: sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw==} + engines: {node: '>=6.9.0'} + '@babel/compat-data@7.28.0': resolution: {integrity: sha512-60X7qkglvrap8mn1lh2ebxXdZYtUcpd7gsmy9kLaBJ4i/WdY8PqTSdxyA8qraikqKQK5C1KRBKXqznrVapyNaw==} engines: {node: '>=6.9.0'} - '@babel/core@7.28.0': - resolution: {integrity: sha512-UlLAnTPrFdNGoFtbSXwcGFQBtQZJCNjaN6hQNP3UPvuNXT1i82N26KL3dZeIpNalWywr9IuQuncaAfUaS1g6sQ==} + '@babel/compat-data@7.29.7': + resolution: {integrity: sha512-locTkQyKvwIEgBzVrn8693ebc97F2U8ZHjbXwDXJ5Fn2TCpNwTlKcaKLkdHop5c/icOFE7qt7Q9JC5hnKNa6Gg==} + engines: {node: '>=6.9.0'} + + '@babel/core@7.29.7': + resolution: {integrity: sha512-RgHBCvtjbOK2gXSNBNIkNoEc9qoVEtau3hj8gEqKQuL3HZAibKarWFEI3Lfm6EYKkLalOh8eSrj9b+ch9H/VBA==} engines: {node: '>=6.9.0'} '@babel/generator@7.28.0': resolution: {integrity: sha512-lJjzvrbEeWrhB4P3QBsH7tey117PjLZnDbLiQEKjQ/fNJTjuq4HSqgFA+UNSwZT8D7dxxbnuSBMsa1lrWzKlQg==} engines: {node: '>=6.9.0'} + '@babel/generator@7.29.8': + resolution: {integrity: sha512-gZbepsdh3WDtgZKWL+vTPh71LSBrm/Y4/QDZBVCcYfmeTEEuoOYwlSy+G1StfJg+/Zy550u/3TATbm7qDbbMtg==} + engines: {node: '>=6.9.0'} + '@babel/helper-annotate-as-pure@7.27.3': resolution: {integrity: sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==} engines: {node: '>=6.9.0'} @@ -175,6 +180,10 @@ packages: resolution: {integrity: sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==} engines: {node: '>=6.9.0'} + '@babel/helper-compilation-targets@7.29.7': + resolution: {integrity: sha512-wem6WaBj4NaVYVdNhLPPVacES6ZJ+KBBfSkTMD3YZxbP3rm3Di85tJU5ljaUNhaOynt+Aj0xruhYuzQBt8n71g==} + engines: {node: '>=6.9.0'} + '@babel/helper-create-class-features-plugin@7.27.1': resolution: {integrity: sha512-QwGAmuvM17btKU5VqXfb+Giw4JcN0hjuufz3DYnpeVDvZLAObloM77bhMXiqry3Iio+Ai4phVRDwl6WU10+r5A==} engines: {node: '>=6.9.0'} @@ -196,6 +205,10 @@ packages: resolution: {integrity: sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==} engines: {node: '>=6.9.0'} + '@babel/helper-globals@7.29.7': + resolution: {integrity: sha512-3nQVUAtvkKH9zahfWgw96Jc/uFOmjACE1kQz82E2lqWmHBgjzbNlsC22nuQTfahmWeQtTq5nQ/4Nnd2A1wj4zA==} + engines: {node: '>=6.9.0'} + '@babel/helper-member-expression-to-functions@7.27.1': resolution: {integrity: sha512-E5chM8eWjTp/aNoVpcbfM7mLxu9XGLWYise2eBKGQomAk/Mb4XoxyqXTZbuTohbsl8EKqdlMhnDI2CCLfcs9wA==} engines: {node: '>=6.9.0'} @@ -204,12 +217,22 @@ packages: resolution: {integrity: sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==} engines: {node: '>=6.9.0'} + '@babel/helper-module-imports@7.29.7': + resolution: {integrity: sha512-ejHwrQQYcm9xnTivShn2IDOlIzInN34AXskvq9QicvCtEzq1Vzclu/tKF8Jq1Cg8JG2GL6/EmjgsCT7lXepE3g==} + engines: {node: '>=6.9.0'} + '@babel/helper-module-transforms@7.27.3': resolution: {integrity: sha512-dSOvYwvyLsWBeIRyOeHXp5vPj5l1I011r52FM1+r1jCERv+aFXYk4whgQccYEGYxK2H3ZAIA8nuPkQ0HaUo3qg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 + '@babel/helper-module-transforms@7.29.7': + resolution: {integrity: sha512-UPUVSyXbOh627KiCIGQSgwWzGeBKLkaJ9PJEdrngIwMSzxLR4jS4+f1f1jb7VzBbg8nFLaYotvVPFCTqdrmTAg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + '@babel/helper-optimise-call-expression@7.27.1': resolution: {integrity: sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw==} engines: {node: '>=6.9.0'} @@ -218,6 +241,10 @@ packages: resolution: {integrity: sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==} engines: {node: '>=6.9.0'} + '@babel/helper-plugin-utils@7.29.7': + resolution: {integrity: sha512-G7sHYigPY17oO5SYWnfD/0MTBwVR781S/JI643e/JhUYgVgWE/61SoW3NH9KWUKyKq5LVh3npif99Wkt6j86Jw==} + engines: {node: '>=6.9.0'} + '@babel/helper-remap-async-to-generator@7.27.1': resolution: {integrity: sha512-7fiA521aVw8lSPeI4ZOD3vRFkoqkJcS+z4hFo82bFSH/2tNd6eJ5qCVMS5OzDmZh/kaHQeBaeyxK6wljcPtveA==} engines: {node: '>=6.9.0'} @@ -238,20 +265,32 @@ packages: resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==} engines: {node: '>=6.9.0'} + '@babel/helper-string-parser@7.29.7': + resolution: {integrity: sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==} + engines: {node: '>=6.9.0'} + '@babel/helper-validator-identifier@7.27.1': resolution: {integrity: sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==} engines: {node: '>=6.9.0'} + '@babel/helper-validator-identifier@7.29.7': + resolution: {integrity: sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==} + engines: {node: '>=6.9.0'} + '@babel/helper-validator-option@7.27.1': resolution: {integrity: sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==} engines: {node: '>=6.9.0'} + '@babel/helper-validator-option@7.29.7': + resolution: {integrity: sha512-N9ZErrD+yW5geCDtBqnOoxmR8+tNKiGuxKlDpuJxfsqpa2dFcexaziGAE/qoHLiDDreVNMupxGmSoNlyvsA3gw==} + engines: {node: '>=6.9.0'} + '@babel/helper-wrap-function@7.27.1': resolution: {integrity: sha512-NFJK2sHUvrjo8wAU/nQTWU890/zB2jj0qBcCbZbbf+005cAsv6tMjXz31fBign6M5ov1o0Bllu+9nbqkfsjjJQ==} engines: {node: '>=6.9.0'} - '@babel/helpers@7.28.2': - resolution: {integrity: sha512-/V9771t+EgXz62aCcyofnQhGM8DQACbRhvzKFsXKC9QM+5MadF8ZmIm0crDMaz3+o0h0zXfJnd4EhbYbxsrcFw==} + '@babel/helpers@7.29.10': + resolution: {integrity: sha512-EMCx3AGZ3WfAl6ht7AyQoPm2Lh+BGYEMdc4Q6Hf7uSCDOZFuLq44qNwL+iaim8VlyYhRAo4X43+weadK8ZB4Yg==} engines: {node: '>=6.9.0'} '@babel/highlight@7.25.9': @@ -263,6 +302,11 @@ packages: engines: {node: '>=6.0.0'} hasBin: true + '@babel/parser@7.29.9': + resolution: {integrity: sha512-CjXrNHTnvqBVqHgdBysY3vk2T8tpJHb5/RMeHJBTyVa9xgugCB0CJTx/3oO8RV2QRQP391RWpB7D6hLjm8V9uA==} + engines: {node: '>=6.0.0'} + hasBin: true + '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.27.1': resolution: {integrity: sha512-QPG3C9cCVRQLxAVwmefEmwdTanECuUBMQZ/ym5kiw3XKCGA7qkuQLcjWWHcrD/GKbn/WmJwaezfuuAOcyKlRPA==} engines: {node: '>=6.9.0'} @@ -512,8 +556,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-modules-systemjs@7.27.1': - resolution: {integrity: sha512-w5N1XzsRbc0PQStASMksmUeqECuzKuTJer7kFagK8AXgpCMkeDMO5S+aaFb7A51ZYDF7XI34qsTX+fkHiIm5yA==} + '@babel/plugin-transform-modules-systemjs@7.29.8': + resolution: {integrity: sha512-6iSnEK0zlkLKU4heofK/AdmRD4e2SHVpJMtrwnTCzhnaM98ria4rTrOXBBi45BTTYnJtO8txnPsX4fChYXkmeA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -708,22 +752,34 @@ packages: '@babel/runtime@7.12.18': resolution: {integrity: sha512-BogPQ7ciE6SYAUPtlm9tWbgI9+2AgqSam6QivMgXgAT+fKbgppaj4ZX15MHeLC1PVF5sNk70huBu20XxWOs8Cg==} - '@babel/runtime@7.28.2': - resolution: {integrity: sha512-KHp2IflsnGywDjBWDkR9iEqiWSpc8GIi0lgTT3mOElT0PP1tG26P4tmFI2YvAdzgq9RGyoHZQEIEdZy6Ec5xCA==} + '@babel/runtime@7.29.10': + resolution: {integrity: sha512-NpugTzbKgGrNe45Ui32cN8vCFFMxVtP/9rtfwv0nP5FRDAjvYBxJcLVpYA9mr1jxP6cnIT7x9LUzuDTbWYYNRA==} engines: {node: '>=6.9.0'} '@babel/template@7.27.2': resolution: {integrity: sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==} engines: {node: '>=6.9.0'} + '@babel/template@7.29.7': + resolution: {integrity: sha512-puq+Gf35oI24FeN11LkoUQFqv9uwNeWpxXZi/Ji3rRIoKAzKnxRaZ+Gkj0vKS9ZCiTESfng1N9LyOyXvo+m+Gg==} + engines: {node: '>=6.9.0'} + '@babel/traverse@7.28.0': resolution: {integrity: sha512-mGe7UK5wWyh0bKRfupsUchrQGqvDbZDbKJw+kcRGSmdHVYrv+ltd0pnpDTVpiTqnaBru9iEvA8pz8W46v0Amwg==} engines: {node: '>=6.9.0'} + '@babel/traverse@7.29.10': + resolution: {integrity: sha512-B3lYAs2nkKskbgQ1nfy8Ma9ao9Q1rntTAQHrzzyDuj+TSO+X3le6PfWwqDvodsb+OumE10eMFfuMCTQSQ5iuIQ==} + engines: {node: '>=6.9.0'} + '@babel/types@7.28.2': resolution: {integrity: sha512-ruv7Ae4J5dUYULmeXw1gmb7rYRz57OWCPM57pHojnLq/3Z1CK2lNSLTCVjxVk1F/TZHwOZZrOWi0ur95BbLxNQ==} engines: {node: '>=6.9.0'} + '@babel/types@7.29.8': + resolution: {integrity: sha512-Vj1jF3cPfxg7OAfoI7QnVKLoILlm2JF9pnVHrX8qx7AHMiYWT+NDAA7jChlNgRS4WTLc/fD1lXLmPixluj+3Gg==} + engines: {node: '>=6.9.0'} + '@cnakazawa/watch@1.0.4': resolution: {integrity: sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ==} engines: {node: '>=0.1.95'} @@ -765,6 +821,10 @@ packages: '@glint/template': optional: true + '@embroider/reverse-exports@0.2.0': + resolution: {integrity: sha512-WFsw8nQpHZiWGEDYpa/A79KEFfTisqteXbY+jg9eZiww1r1G+LZvsmdszDp86TkotUSCqrMbK/ewn0jR1CJmqg==} + engines: {node: 12.* || 14.* || >= 16} + '@embroider/shared-internals@1.8.3': resolution: {integrity: sha512-N5Gho6Qk8z5u+mxLCcMYAoQMbN4MmH+z2jXwQHVs859bxuZTxwF6kKtsybDAASCtd2YGxEmzcc1Ja/wM28824w==} engines: {node: 12.* || 14.* || >= 16} @@ -876,6 +936,12 @@ packages: '@jridgewell/gen-mapping@0.3.12': resolution: {integrity: sha512-OuLGC46TjB5BbN1dH8JULVVZY4WTdkF7tV9Ys6wLL1rubZnCMstOhNHueU5bLCrnRuDhKPDM4g6sw4Bel5Gzqg==} + '@jridgewell/gen-mapping@0.3.13': + resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==} + + '@jridgewell/remapping@2.3.5': + resolution: {integrity: sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==} + '@jridgewell/resolve-uri@3.1.2': resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} engines: {node: '>=6.0.0'} @@ -883,11 +949,17 @@ packages: '@jridgewell/source-map@0.3.10': resolution: {integrity: sha512-0pPkgz9dY+bijgistcTTJ5mR+ocqRXLuhXHYdzoMmmoJ2C9S46RCm2GMUbatPEUK9Yjy26IrAy8D/M00lLkv+Q==} + '@jridgewell/source-map@0.3.11': + resolution: {integrity: sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==} + '@jridgewell/sourcemap-codec@1.5.4': resolution: {integrity: sha512-VT2+G1VQs/9oz078bLrYbecdZKs912zQlkelYpuf+SXF+QvZDYJlbx/LSx+meSAwdDFnF8FVXW92AVjjkVmgFw==} - '@jridgewell/trace-mapping@0.3.29': - resolution: {integrity: sha512-uw6guiW/gcAGPDhLmd77/6lW8QLeiV5RUTsAX46Db6oLhGaVj4lhnPwb184s1bkc8kdVg/+h988dro8GRDpmYQ==} + '@jridgewell/sourcemap-codec@1.6.0': + resolution: {integrity: sha512-T7jf+5zgsZHwNJ4lvQ7/aezbyk0nNX+zJVWpmHA7VYsEx7a7qr5Rg5IbtJFqkgze5Y2sruq1RUY8Q837Od7iFw==} + + '@jridgewell/trace-mapping@0.3.31': + resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==} '@lint-todo/utils@13.1.1': resolution: {integrity: sha512-F5z53uvRIF4dYfFfJP3a2Cqg+4P1dgJchJsFnsZE0eZp0LK8X7g2J0CsJHRgns+skpXOlM7n5vFGwkWCWj8qJg==} @@ -1051,15 +1123,9 @@ packages: '@types/cors@2.8.19': resolution: {integrity: sha512-mFNylyeyqN93lfe/9CSxOGREz8cpzAhH+E93xJ4xWQf62V8sQ/24reV2nyzUWM6H6Xji+GGHpkbLe7pVoUEskg==} - '@types/eslint-scope@3.7.7': - resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==} - '@types/eslint@8.56.12': resolution: {integrity: sha512-03ruubjWyOHlmljCVoxSuNDdmfZDzsrrz0P2LeJsOXr+ZwFQ+0yQIwNCwt/GYhV7Z31fgtXJTAEs+FYlEL851g==} - '@types/eslint@9.6.1': - resolution: {integrity: sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==} - '@types/estree@1.0.8': resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} @@ -1101,8 +1167,8 @@ packages: resolution: {integrity: sha512-zmPitbQ8+6zNutpwgcQuLcsEpn/Cj54Kbn7L5pX0Os5kdWplB7xPgEh/g+SWOB/qmows2gpuCaPyduq8ZZRnxA==} deprecated: This is a stub types definition. minimatch provides its own type definitions, so you do not need this installed. - '@types/node@24.2.0': - resolution: {integrity: sha512-3xyG3pMCq3oYCNg7/ZP+E1ooTaGB4cG8JWRsqqOYQdbWNY4zbaV0Ennrd7stjiJEFZCaybcIgpTjJWHRfBSIDw==} + '@types/node@26.6.5': + resolution: {integrity: sha512-uMzsv9stDdofIZBx4UGh4Z9ZgXnGC9seRDscilBcTHAeOFk67MZg/k9bWVfO+bk4qZmG+l52hRnLwUiH2LnJTg==} '@types/qs@6.14.0': resolution: {integrity: sha512-eOunJqu0K1923aExK6y8p6fsihYEn/BYuQ4g0CxAAgFc4b/ZLN4CrsRZ55srTdqoiLzU2B2evC+apEIxprEzkQ==} @@ -1125,6 +1191,9 @@ packages: '@types/symlink-or-copy@1.2.2': resolution: {integrity: sha512-MQ1AnmTLOncwEf9IVU+B2e4Hchrku5N67NkgcAHW0p3sdzPe0FNMANxEm6OJUzPniEQGkeT3OROLlCwZJLWFZA==} + '@types/ws@8.18.2': + resolution: {integrity: sha512-67MQl+fpWKVTT1NYdnmo3U4sc/xPo/zQBncVnI74qmQa0z/b+1g6iYqNmGCPbxO+zz2aklb08a0oHfegiVd0/w==} + '@webassemblyjs/ast@1.14.1': resolution: {integrity: sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==} @@ -1224,8 +1293,8 @@ packages: '@webassemblyjs/wast-printer@1.9.0': resolution: {integrity: sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==} - '@xmldom/xmldom@0.8.10': - resolution: {integrity: sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==} + '@xmldom/xmldom@0.8.15': + resolution: {integrity: sha512-/5NV/vDALVFDXgLmfsy9TRCBlKwO2LNBFzpzvb9iIj+jR+eSc6DLYYvVOdivT/jm7MtU6TebYuRmzEOI7w40UA==} engines: {node: '>=10.0.0'} '@xtuc/ieee754@1.2.0': @@ -1241,12 +1310,6 @@ packages: resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} engines: {node: '>= 0.6'} - acorn-import-phases@1.0.4: - resolution: {integrity: sha512-wKmbr/DDiIXzEOiWrTTUcDm24kQ2vGfZQvM2fwg2vXqR5uW6aapr7ObPtj1th32b9u90/Pf4AItvdTh42fBmVQ==} - engines: {node: '>=10.13.0'} - peerDependencies: - acorn: ^8.14.0 - acorn-jsx@5.3.2: resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: @@ -1267,6 +1330,11 @@ packages: engines: {node: '>=0.4.0'} hasBin: true + acorn@8.19.0: + resolution: {integrity: sha512-oJlA3XiRm7Cyk6qFD2Jn8ak9B7jSy0qy00ADO3+8dpT0LSjFihQYv4C02LFCSYJV3Q37xYwwRy5m+IpIiUzqWw==} + engines: {node: '>=0.4.0'} + hasBin: true + agent-base@6.0.2: resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} engines: {node: '>= 6.0.0'} @@ -1284,8 +1352,8 @@ packages: peerDependencies: ajv: '>=5.0.0' - ajv-formats@2.1.1: - resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==} + ajv-formats@3.0.1: + resolution: {integrity: sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==} peerDependencies: ajv: ^8.0.0 peerDependenciesMeta: @@ -1302,11 +1370,11 @@ packages: peerDependencies: ajv: ^8.8.2 - ajv@6.12.6: - resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + ajv@6.15.0: + resolution: {integrity: sha512-fgFx7Hfoq60ytK2c7DhnF8jIvzYgOMxfugjLOSMHjLIPgenqa7S7oaagATUq99mV6IYvN2tRmC0wnTYX6iPbMw==} - ajv@8.17.1: - resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==} + ajv@8.20.0: + resolution: {integrity: sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA==} amd-name-resolver@1.3.1: resolution: {integrity: sha512-26qTEWqZQ+cxSYygZ4Cf8tsjDBLceJahhtewxtKZA3SRa4PluuqYCuheemDQD+7Mf5B7sr+zhTDWAHDh02a1Dw==} @@ -1639,14 +1707,15 @@ packages: base64-js@1.5.1: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} - base64id@2.0.0: - resolution: {integrity: sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==} - engines: {node: ^4.5.0 || >= 5.9} - base@0.11.2: resolution: {integrity: sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==} engines: {node: '>=0.10.0'} + baseline-browser-mapping@2.11.28: + resolution: {integrity: sha512-br0LOmjJqr6Rt4AEkadbcNf67Zpo7EPwKsWbjnRrJIa1QYFHQBqM4C7F2WTbV8ahTEcg1Eo+Y0aWjjORInYFyA==} + engines: {node: '>=6.0.0'} + hasBin: true + basic-auth@2.0.1: resolution: {integrity: sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==} engines: {node: '>= 0.8'} @@ -1685,14 +1754,14 @@ packages: bluebird@3.7.2: resolution: {integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==} - bn.js@4.12.2: - resolution: {integrity: sha512-n4DSx829VRTRByMRGdjQ9iqsN0Bh4OolPsFnaZBLcbi8iXcB+kJ9s7EnRt4wILZNV3kPLHkRVfOc/HvhC3ovDw==} + bn.js@4.12.5: + resolution: {integrity: sha512-3aRg6/JxfffFD+OlOjOFR3Vo79l39ooBTFucxx+MT3dhCtzn3EmiUPQo+6/OZuI2jbXi3YKgmiTFBgChQMwIRQ==} - bn.js@5.2.2: - resolution: {integrity: sha512-v2YAxEmKaBLahNwE1mjp4WON6huMNeuDvagFZW+ASCuA/ku0bXR9hSMw0XpiqMoA3+rmnyck/tPRSFQkoC9Cuw==} + bn.js@5.2.5: + resolution: {integrity: sha512-Vq886eXykuP5E6HcKSSStP3bJgrE6In5WKxVUvJ8XGpWWYs2xZHWqUwzCtGgEtBcxyd57KBFDPFoUfNzdaHCNg==} - body-parser@1.20.3: - resolution: {integrity: sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==} + body-parser@1.20.8: + resolution: {integrity: sha512-JNcyFQ64OiijEkPzUBTCe+hyPXUD/3LEldGQ6iF5LR1w00mx9o7xtDWHXBY2iItjdCFGoilOLNQbH943ut7pHA==} engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} body@5.1.0: @@ -1706,11 +1775,11 @@ packages: resolution: {integrity: sha512-YWZHhWkPdXtIfH3VRu3QIV95sa75O9vrQWBOHjexWCLBCTy5qJvRr36LXTqFwTchSXVlzy5piYJOjzHr7qhsNg==} engines: {node: '>=0.8.0'} - brace-expansion@1.1.12: - resolution: {integrity: sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==} + brace-expansion@1.1.21: + resolution: {integrity: sha512-9zeA+KLZNNzglF2TPKRQEDyx6Yby7daAkuy8MiPzpXPsYDWi/DRM8jmwUDxokQjYqBpv5DgPiwD4h4ZZSy1Ujw==} - brace-expansion@2.0.2: - resolution: {integrity: sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==} + brace-expansion@2.1.7: + resolution: {integrity: sha512-uZbew1NqdmPDTMJ8ah1y+b+9QEJrfkXFk3RcTQw3X0jW/xRUvFKsg1CfQdSYGdTbXZWExtU3J3ccxtnfw1Fi0g==} braces@2.3.2: resolution: {integrity: sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==} @@ -1885,8 +1954,8 @@ packages: browserify-zlib@0.2.0: resolution: {integrity: sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==} - browserslist@4.25.1: - resolution: {integrity: sha512-KGj0KoOMXLpSNkkEI6Z6mShmQy0bc1I+T7K9N81k4WWMrfz+6fQ6es80B/YLAeRoKvjYE1YSHHOW1qe9xIVzHw==} + browserslist@4.29.3: + resolution: {integrity: sha512-1R4kiYKXGViqEN0CnoDrXc1StD9niAwu+j2dukWzrD4bJgsD4lDmEp0CRbc6E/vYJIfTHwPmwyaKtVSudICdPA==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true @@ -1957,8 +2026,8 @@ packages: resolution: {integrity: sha512-RbsNrFyhwkx+6psk/0fK/Q9orOUr9VMxohGd8vTa4djf4TGLfblBgUfqZChrZuW0Q+mz2eBPFLusw9Jfukzmhg==} hasBin: true - caniuse-lite@1.0.30001731: - resolution: {integrity: sha512-lDdp2/wrOmTRWuoB5DpfNkC0rJDU8DqRa6nYL6HK6sytw70QMopt/NIc/9SM7ylItlBWfACXk0tEn37UWM/+mg==} + caniuse-lite@1.0.30001816: + resolution: {integrity: sha512-+8Yx7BXCoqk6IF8yTicjfUR6D/ldJzdlsodlEOiOSPmhK844WIgk67/zIQaGAOxNkZyyvBlrRFnLvqKIoqbAFw==} capture-exit@2.0.0: resolution: {integrity: sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g==} @@ -1989,6 +2058,7 @@ packages: charm@1.0.2: resolution: {integrity: sha512-wqW3VdPnlSWT4eRiYX+hcs+C6ViBPUWk1qTCd+37qw9kEm/a5n2qcyQDMBWvSYKN/ctqZzeXNQaeBjOetJJUkw==} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. chokidar@2.1.8: resolution: {integrity: sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==} @@ -2154,8 +2224,8 @@ packages: resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==} engines: {node: '>= 0.6'} - compression@1.8.1: - resolution: {integrity: sha512-9mAqGPHLakhCLeNyxPkK4xVo746zQ/czLH1Ky+vkitMnWfWZps8r0qXuwhwizagCRttsL4lfG4pIOvaWLpAP0w==} + compression@1.8.2: + resolution: {integrity: sha512-o8vI5RE5A6EVVOd9o41jKp41aJom+QTEO/Bx8MYNjexMo/Bv2WOjUfZr+aL0WnYSgymUy6zeguqLTsIhV0gMvQ==} engines: {node: '>= 0.8.0'} concat-map@0.0.1: @@ -2415,9 +2485,6 @@ packages: create-ecdh@4.0.4: resolution: {integrity: sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==} - create-hash@1.1.3: - resolution: {integrity: sha512-snRpch/kwQhcdlnZKYanNF1m0RDlrCdSKQaH87w1FCFPVPNCQ/Il9QJKAX2jVBZddRdaHBMC+zXa9Gw9tmkNUA==} - create-hash@1.2.0: resolution: {integrity: sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==} @@ -2493,8 +2560,8 @@ packages: supports-color: optional: true - debug@4.3.4: - resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} + debug@4.4.1: + resolution: {integrity: sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==} engines: {node: '>=6.0'} peerDependencies: supports-color: '*' @@ -2502,17 +2569,8 @@ packages: supports-color: optional: true - debug@4.3.7: - resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - - debug@4.4.1: - resolution: {integrity: sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==} + debug@4.4.3: + resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} engines: {node: '>=6.0'} peerDependencies: supports-color: '*' @@ -2595,8 +2653,8 @@ packages: resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==} engines: {node: '>=8'} - diff@5.2.0: - resolution: {integrity: sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==} + diff@5.2.2: + resolution: {integrity: sha512-vtcDfH3TOjP8UekytvnHH1o1P4FcUdt4eQ1Y+Abap1tk/OB2MWQvcwS2ClCd1zuIhc3JKOx6p3kod8Vfys3E+A==} engines: {node: '>=0.3.1'} diffie-hellman@5.0.3: @@ -2645,8 +2703,8 @@ packages: ee-first@1.1.1: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} - electron-to-chromium@1.5.198: - resolution: {integrity: sha512-G5COfnp3w+ydVu80yprgWSfmfQaYRh9DOxfhAxstLyetKaLyl55QrNjx8C38Pc/C+RaDmb1M0Lk8wPEMQ+bGgQ==} + electron-to-chromium@1.5.456: + resolution: {integrity: sha512-8hboqI6xesozteFb8aa7OGknvxUtTeRJLz0FoePysUEh/oWbddykIGdgpEJRbPRg/nIMfBf2DFos+H2MtvJl2A==} elliptic@6.6.1: resolution: {integrity: sha512-RaddvvMatK2LJHqFJ+YA4WysVN5Ita9E35botqIYspQ4TkRAlCicdzKOjlyv/1Za5RyTNn7di//eEV0uTAfe3g==} @@ -2655,8 +2713,8 @@ packages: resolution: {integrity: sha512-gLqML2k77AuUiXxWNon1FSzuG1DV7PEPpCLCU5aJvf6fdL6rmFfElsZRh+8ELEB/qP9dT+LHjNEunVzd2dYc8A==} engines: {node: '>= 10.*'} - ember-auto-import@2.10.0: - resolution: {integrity: sha512-bcBFDYVTFHyqyq8BNvsj6UO3pE6Uqou/cNmee0WaqBgZ+1nQqFz0UE26usrtnFAT+YaFZSkqF2H36QW84k0/cg==} + ember-auto-import@2.13.1: + resolution: {integrity: sha512-MjxJK2nfCJmmQI/rju2TrycmAa1AxmTarfvygbcrrgW0s4WeZHtbGXCO2z1lW9wfrShqeTo/o+3Mgk+9xcDTWg==} engines: {node: 12.* || 14.* || >= 16} ember-cli-babel-plugin-helpers@1.1.1: @@ -2850,16 +2908,16 @@ packages: resolution: {integrity: sha512-HqD3yTBfnBxIrbnM1DoD6Pcq8NECnh8d4As1Qgh0z5Gg3jRRIqijury0CL3ghu/edArpUYiYqQiDUQBIs4np3Q==} engines: {node: '>=10.0.0'} - engine.io@6.6.4: - resolution: {integrity: sha512-ZCkIjSYNDyGn0R6ewHDtXgns/Zre/NT6Agvq1/WobF7JXgFff4SeDroKiCO3fNJreU9YG429Sc81o4w5ok/W5g==} + engine.io@6.6.11: + resolution: {integrity: sha512-z34mGpLoY/82ZbkX1LqGMIaf3wjVMPL6gVC681QDqnmzJ26synI8qAE32P+a7UazmpJZ8UGrFIeAavgRfXzYrg==} engines: {node: '>=10.2.0'} enhanced-resolve@4.5.0: resolution: {integrity: sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg==} engines: {node: '>=6.9.0'} - enhanced-resolve@5.18.3: - resolution: {integrity: sha512-d4lC8xfavMeBjzGr2vECC3fsGXziXZQyJxD868h2M/mBI3PwAuODxAkLkq5HYuvrPYcUtiLzsTo8U3PgX3Ocww==} + enhanced-resolve@5.26.0: + resolution: {integrity: sha512-9vhedylFonb2YGogzUKX6+Ja72gOJbN1QHAqdrvqLwhdl/QWbKopzoUC9EbQNVsAns/bx/4uyqalrQAoy1IByw==} engines: {node: '>=10.13.0'} enquirer@2.4.1: @@ -2908,8 +2966,8 @@ packages: resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} engines: {node: '>= 0.4'} - es-module-lexer@1.7.0: - resolution: {integrity: sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==} + es-module-lexer@2.3.2: + resolution: {integrity: sha512-poHGpORABojJJucnV9KbOavETW8lBVnphkW77ER5/BQ5Fz7oXSoCNek7IH3vR5nRjdsEz926ibFYX8KtLQmdyw==} es-object-atoms@1.1.1: resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} @@ -3099,8 +3157,8 @@ packages: resolution: {integrity: sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==} engines: {node: '>=0.10.0'} - express@4.21.2: - resolution: {integrity: sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==} + express@4.22.3: + resolution: {integrity: sha512-Bdcs4+3qlpVlx2NRn6fgX2Ue2/gGRaPeawebgclM0ERSCqDpA+owF1fdPwjJUTAJWMTuAaxjDf+hzb0/4eKvvw==} engines: {node: '>= 0.10.0'} extend-shallow@2.0.1: @@ -3149,8 +3207,8 @@ packages: resolution: {integrity: sha512-7h9/x25c6AQwdU3mA8MZDUMR3UCy50f237egBrBkuwjnUZSmfu4ptCf91PZSKzON2Uh5VvIHozYKWcPPgcjxIw==} engines: {node: 10.* || >= 12.*} - fast-uri@3.0.6: - resolution: {integrity: sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==} + fast-uri@3.1.8: + resolution: {integrity: sha512-GZMtZUTNRpOVIECoXwLNZS5xUGE+mVNbTB8h/7Rwh2TFWcBQiPzTgyZi05BF9UMZKkLJv8XBRJTlU7zg8+ZfMg==} fastq@1.19.1: resolution: {integrity: sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==} @@ -3269,14 +3327,14 @@ packages: resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} engines: {node: ^10.12.0 || >=12.0.0} - flatted@3.3.3: - resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==} + flatted@3.4.4: + resolution: {integrity: sha512-5+ybhBZANEJxaH3X5evAFatUxLfEHSr7n6kYJ+1Qd0mUqr4eu9gIf6GDbWHf8RJijHrjjO8G+la14SlL2SeS1Q==} flush-write-stream@1.1.1: resolution: {integrity: sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==} - follow-redirects@1.15.11: - resolution: {integrity: sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==} + follow-redirects@1.16.1: + resolution: {integrity: sha512-FNvFGzoMLWmE6Yj9spb/zjd7yiNCHiAW9/Tg9CXrQ8wuu32HtlJOwWO11OJafl5FfY3DxTdQ0vj42zU1kvv5jg==} engines: {node: '>=4.0'} peerDependencies: debug: '*' @@ -3468,20 +3526,18 @@ packages: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} engines: {node: '>= 6'} - glob-to-regexp@0.4.1: - resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} - - glob@10.4.5: - resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} + glob@10.5.0: + resolution: {integrity: sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==} + deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me hasBin: true glob@5.0.15: resolution: {integrity: sha512-c9IPMazfRITpmAAKi22dK1VKxGDX9ehhqfABDriL/lzO92xcUKEJPQHrVA/2YHSNFB4iFlykVmWvwo48nr3OxA==} - deprecated: Glob versions prior to v9 are no longer supported + deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me glob@7.2.3: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} - deprecated: Glob versions prior to v9 are no longer supported + deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me global-modules@1.0.0: resolution: {integrity: sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==} @@ -3541,8 +3597,8 @@ packages: growly@1.3.0: resolution: {integrity: sha512-+xGQY0YyAWCnqy7Cd++hc2JqMYzlm0dG30Jd0beaA64sROr8C4nt8Yc9V5Ro3avlSUDTN0ulqP/VBKi1/lLygw==} - handlebars@4.7.8: - resolution: {integrity: sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==} + handlebars@4.7.10: + resolution: {integrity: sha512-P5VJMVM7qgBn6vjXMw8WG9uVI+ncf2pi72j4de4yz5ZULLj2RGqLYaKOYGsgyrViQ0tePOVlN1tDCCXXtFqXKg==} engines: {node: '>=0.4.7'} hasBin: true @@ -3600,13 +3656,14 @@ packages: resolution: {integrity: sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==} engines: {node: '>=0.10.0'} - hash-base@2.0.2: - resolution: {integrity: sha512-0TROgQ1/SxE6KmxWSvXHvRj90/Xo1JvZShofnYF+f6ZsGtR4eES7WfrQzPalmyagfKZCXpVnitiRebZulWsbiw==} - hash-base@3.0.5: resolution: {integrity: sha512-vXm0l45VbcHEVlTCzs8M+s0VeYsB2lnlAaThoLKGXr3bE/VWDOelNUnycUPEhKEaXARL2TEFjBOyUiM6+55KBg==} engines: {node: '>= 0.10'} + hash-base@3.1.2: + resolution: {integrity: sha512-Bb33KbowVTIj5s7Ked1OsqHUeCpz//tPwR+E2zJgJKo9Z5XolZ9b6bdUgjmYlwnWhoOQKoTd1TYToZGn5mAYOg==} + engines: {node: '>= 0.8'} + hash-for-dep@1.5.1: resolution: {integrity: sha512-/dQ/A2cl7FBPI2pO0CANkvuuVi/IFS5oTyJ0PsOb6jW6WbVW1js5qJXMJTNbWHXBIPdFTWFbabjB+mE0d+gelw==} @@ -3659,8 +3716,8 @@ packages: resolution: {integrity: sha512-Rw/B2DNQaPBICNXEm8balFz9a6WpZrkCGpcWFpy7nCj+NyhSdqXipmfvtmWt9xGfp0wZnBxB+iVpLmQMYt47Tw==} engines: {node: ^18.17.0 || >=20.5.0} - http-cache-semantics@4.2.0: - resolution: {integrity: sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ==} + http-cache-semantics@4.3.0: + resolution: {integrity: sha512-M5t5LlJpS1UHMjvwRQVdFHvPISGeLAxNcrWuJkeGh0KxsqCHZ1O3NXZU/8x7cD0BDcGW8kapxMKTvwlqrNkHkA==} http-errors@1.6.3: resolution: {integrity: sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==} @@ -3670,6 +3727,10 @@ packages: resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} engines: {node: '>= 0.8'} + http-errors@2.0.1: + resolution: {integrity: sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==} + engines: {node: '>= 0.8'} + http-parser-js@0.5.10: resolution: {integrity: sha512-Pysuw9XpUq5dVc/2SMHpuTY01RFl8fttgcyunjL7eEMhGM3cI4eOmiCycJDVCo/7O7ClfQD3SaI6ftDzqOXYMA==} @@ -4049,9 +4110,9 @@ packages: isarray@2.0.5: resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} - isbinaryfile@5.0.0: - resolution: {integrity: sha512-UDdnyGvMajJUWCkib7Cei/dvyJrrvo4FIrsvSFWdPpXSUorzXrDJ0S+X5Q4ZlasfPjca4yqCNNsjbCeiy8FFeg==} - engines: {node: '>= 14.0.0'} + isbinaryfile@5.0.7: + resolution: {integrity: sha512-gnWD14Jh3FzS3CPhF0AxNOJ8CxqeblPTADzI38r0wt8ZyQl5edpy75myt08EG2oKvpyiqSqsx+Wkz9vtkbTqYQ==} + engines: {node: '>= 18.0.0'} isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} @@ -4096,12 +4157,12 @@ packages: js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} - js-yaml@3.14.1: - resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} + js-yaml@3.15.2: + resolution: {integrity: sha512-6EuL879VkRA+1Cz578mKMiKvjPNEuk6+r1JaFzoSWejZmtf7xWbIyw1e3KkxlkzTIt9Taw6JBhEppG7utc1P+w==} hasBin: true - js-yaml@4.1.0: - resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + js-yaml@4.3.2: + resolution: {integrity: sha512-SFNOvSJ+Dgf/9An904Yx+CgSlIPCkIpao4qo51lpee25TIRejdH3rhR4EZMGoNx3/TP3O+wzWuiTFl4sqbltzA==} hasBin: true jsbn@1.1.0: @@ -4130,9 +4191,6 @@ packages: json-parse-better-errors@1.0.2: resolution: {integrity: sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==} - json-parse-even-better-errors@2.3.1: - resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} - json-parse-even-better-errors@4.0.0: resolution: {integrity: sha512-lR4MXjGNgkJc7tkQ97kb2nuEMnNCyU//XYVH0MKTGcXEiSudQ5MKGKen3C5QubYy0vmq+JGitUg92uuywGEwIA==} engines: {node: ^18.17.0 || >=20.5.0} @@ -4252,10 +4310,6 @@ packages: resolution: {integrity: sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==} engines: {node: '>=4.3.0 <5.0.0 || >=5.10'} - loader-runner@4.3.0: - resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==} - engines: {node: '>=6.11.5'} - loader-utils@1.4.2: resolution: {integrity: sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==} engines: {node: '>=4.0.0'} @@ -4351,8 +4405,8 @@ packages: lodash.restparam@3.6.1: resolution: {integrity: sha512-L4/arjjuq4noiUJpt3yS6KIKDtJwNe2fIYgMqyYYKoeIfV1iEqvPwhCx23o+R9dzouGihDAPN1dTIRWa7zk8tw==} - lodash.template@4.5.0: - resolution: {integrity: sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==} + lodash.template@4.18.1: + resolution: {integrity: sha512-5urZrLnV/VD6zHK5KsVtZgt7H19v51mIzoS0aBNH8yp3I8tbswrEjOABOPY8m8uB7NuibubLrMX+Y0PXsU9X+w==} deprecated: This package is deprecated. Use https://socket.dev/npm/package/eta instead. lodash.templatesettings@4.2.0: @@ -4364,8 +4418,8 @@ packages: lodash.uniq@4.5.0: resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==} - lodash@4.17.21: - resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + lodash@4.18.1: + resolution: {integrity: sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==} log-symbols@2.2.0: resolution: {integrity: sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==} @@ -4425,6 +4479,10 @@ packages: makeerror@1.0.12: resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==} + map-age-cleaner@0.1.3: + resolution: {integrity: sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==} + engines: {node: '>=6'} + map-cache@0.2.2: resolution: {integrity: sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==} engines: {node: '>=0.10.0'} @@ -4468,6 +4526,10 @@ packages: resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} engines: {node: '>= 0.6'} + mem@8.1.1: + resolution: {integrity: sha512-qFCFUDs7U3b8mBDPyz5EToEKoAkgCzqquIgi9nkkR9bixxOVOre+09lbuH7+9Kn2NFpm56M3GUWVbU2hQgdACA==} + engines: {node: '>=10'} + memory-fs@0.4.1: resolution: {integrity: sha512-cda4JKCxReDXFXRqOHPQscuIYg1PvxbE2S2GP45rnwfEK+vZaXC8C1OFvdHIbgw0DLzowXGVoxLaAmlgRy14GQ==} @@ -4536,6 +4598,10 @@ packages: resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} engines: {node: '>=6'} + mimic-fn@3.1.0: + resolution: {integrity: sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ==} + engines: {node: '>=8'} + mimic-response@1.0.1: resolution: {integrity: sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==} engines: {node: '>=4'} @@ -4552,15 +4618,15 @@ packages: minimalistic-crypto-utils@1.0.1: resolution: {integrity: sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==} - minimatch@3.1.2: - resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + minimatch@3.1.5: + resolution: {integrity: sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==} - minimatch@5.1.6: - resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} + minimatch@5.1.9: + resolution: {integrity: sha512-7o1wEA2RyMP7Iu7GNba9vc0RWWGACJOCZBJX2GJWip0ikV+wcOsgVuY9uE8CPiyQhkGFSlhuSkZPavN7u1c2Fw==} engines: {node: '>=10'} - minimatch@9.0.5: - resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} + minimatch@9.0.9: + resolution: {integrity: sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==} engines: {node: '>=16 || 14 >=14.17'} minimist@0.2.4: @@ -4569,6 +4635,61 @@ packages: minimist@1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + minimizer-webpack-plugin@5.13.0: + resolution: {integrity: sha512-OO1NF2zHj6sf4CNv2AsUWYcS8WEwkVKQDXxxKzlOxx1Xl+WlqYtVC+oNlGNwGkLAOnpj277BSHypWwRtd9w4JQ==} + engines: {node: '>= 10.13.0'} + peerDependencies: + '@minify-html/node': '*' + '@napi-rs/image': '*' + '@swc/core': '*' + '@swc/css': '*' + '@swc/html': '*' + clean-css: '*' + cssnano: '*' + csso: '*' + esbuild: '*' + html-minifier-terser: '*' + imagemin: '*' + lightningcss: '*' + postcss: '*' + sharp: '*' + svgo: '*' + uglify-js: '*' + webpack: ^5.1.0 + peerDependenciesMeta: + '@minify-html/node': + optional: true + '@napi-rs/image': + optional: true + '@swc/core': + optional: true + '@swc/css': + optional: true + '@swc/html': + optional: true + clean-css: + optional: true + cssnano: + optional: true + csso: + optional: true + esbuild: + optional: true + html-minifier-terser: + optional: true + imagemin: + optional: true + lightningcss: + optional: true + postcss: + optional: true + sharp: + optional: true + svgo: + optional: true + uglify-js: + optional: true + minipass-collect@1.0.2: resolution: {integrity: sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==} engines: {node: '>= 8'} @@ -4634,8 +4755,8 @@ packages: resolution: {integrity: sha512-IXnMcJ6ZyTuhRmJSjzvHSRhlVPiN9Jwc6e59V0bEJ0ba6OBeX2L0E+mRN1QseeOF4mM+F1Rit6Nh7o+rl2Yn/A==} engines: {node: '>0.9'} - morgan@1.10.1: - resolution: {integrity: sha512-223dMRJtI/l25dJKWpgij2cMtywuG/WiUKXdvwfbhGKBhy1puASqXwFzmWZ7+K73vUPoR7SS2Qz2cI/g9MKw0A==} + morgan@1.12.1: + resolution: {integrity: sha512-tljKC0ex20AjO58Ob/eZ53JloycbVswbVNCHx6V6VLGzqt/w8dIynVGL0G8qVjNKwiA7sYSogCrN6QtJ82IV+g==} engines: {node: '>= 0.8.0'} mout@1.2.4: @@ -4648,9 +4769,6 @@ packages: ms@2.0.0: resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} - ms@2.1.2: - resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} - ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} @@ -4670,8 +4788,8 @@ packages: nan@2.23.0: resolution: {integrity: sha512-1UxuyYGdoQHcGg87Lkqm3FzefucTa0NAiOcuRsDmysep3c1LVCRK2krrUDafMWtjSG04htvAmvg96+SDknOmgQ==} - nanoid@3.3.11: - resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} + nanoid@3.3.20: + resolution: {integrity: sha512-uKdg2G3GNCKQn9byYOpxbGqrT2fGO5KRt5J/8b3pok8rT6qxGWF6hxMyJiEYtAf+FVyYuD9hRaDqX5uPFYJ4ZQ==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true @@ -4720,8 +4838,9 @@ packages: node-notifier@10.0.1: resolution: {integrity: sha512-YX7TSyDukOZ0g+gmzjB6abKu+hTGvO8+8+gIFDsRCU2t8fLV/P2unmt+LGFaIa4y64aX98Qksa97rgz4vMNeLQ==} - node-releases@2.0.19: - resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==} + node-releases@2.0.58: + resolution: {integrity: sha512-BdiKAgbfRlvfMq/XzO/AF9NPmaA8a+YpLAyAFTVFBj3gARrAIfWvNq7Q7NE4se3KgFu0KkrvQMxTS0XVnsGzHg==} + engines: {node: '>=18'} node-watch@0.7.3: resolution: {integrity: sha512-3l4E8uMPY1HdMMryPRUAl+oIHtXtyiTlIiESNSVSNxcPfzAFzeTbXFQkZfAwBbo0B1qMSG8nUABx+Gd+YrbKrQ==} @@ -4882,6 +5001,10 @@ packages: resolution: {integrity: sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==} engines: {node: '>=6'} + p-defer@1.0.0: + resolution: {integrity: sha512-wB3wfAxZpk2AzOfUMJNL+d36xothRSyj8EXOa4f6GMqYDN9BJaaSISbsk+wS9abmnebVw95C2Kb5t85UmpCxuw==} + engines: {node: '>=4'} + p-defer@3.0.0: resolution: {integrity: sha512-ugZxsxmtTln604yeYd29EGrNhazN2lywetzpKhfmQjW/VJmhpDmWbiX+h0zL8V91R0UXkhb3KtPmyq9PZw3aYw==} engines: {node: '>=8'} @@ -5011,6 +5134,7 @@ packages: path-dirname@1.0.2: resolution: {integrity: sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q==} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. path-exists@3.0.0: resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==} @@ -5058,8 +5182,8 @@ packages: resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} engines: {node: '>=16 || 14 >=14.18'} - path-to-regexp@0.1.12: - resolution: {integrity: sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==} + path-to-regexp@0.1.13: + resolution: {integrity: sha512-A/AGNMFN3c8bOlvV9RreMdrv7jsmF9XIfDeCd87+I8RNg6s78BhJxMu69NEMHBSJFxKidViTEdruRwEk/WIKqA==} path-type@3.0.0: resolution: {integrity: sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==} @@ -5069,15 +5193,15 @@ packages: resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} engines: {node: '>=8'} - pbkdf2@3.1.3: - resolution: {integrity: sha512-wfRLBZ0feWRhCIkoMB6ete7czJcnNnqRpcoWQBLqatqXXmelSRqfdDK4F3u9T2s2cXas/hQJcryI/4lAL+XTlA==} - engines: {node: '>=0.12'} + pbkdf2@3.1.7: + resolution: {integrity: sha512-nS4mvFgVwUrecPTRdpdseM2fwpdfnX0/HibA8DgBRQtihUAzHQYJFU2l+OlEtiXtpqkrMvCPDwyXMUnASDt6Qw==} + engines: {node: '>= 0.10'} picocolors@1.1.1: resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} - picomatch@2.3.1: - resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + picomatch@2.3.2: + resolution: {integrity: sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==} engines: {node: '>=8.6'} pidtree@0.3.1: @@ -5156,15 +5280,15 @@ packages: peerDependencies: postcss: ^8.1.0 - postcss-selector-parser@7.1.0: - resolution: {integrity: sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==} + postcss-selector-parser@7.1.6: + resolution: {integrity: sha512-7qASPzhKF2l2KLboRZux8CCTRMdGiV08vWmyKzPz22qZ7ZjQBOeY7rNzNoCLSUiftJ7HUq0GERHmxw/t0dCdMw==} engines: {node: '>=4'} postcss-value-parser@4.2.0: resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} - postcss@8.5.6: - resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==} + postcss@8.5.30: + resolution: {integrity: sha512-zkd+e9S1AQHhmaBKye9zlFHWjOwVgqXl1q3ECYy8561K7qxR2cREf/STLskulBFd78k6AOFeA+ff1TtEzk9bAA==} engines: {node: ^10 || ^12 || >=14} prelude-ls@1.2.1: @@ -5247,8 +5371,8 @@ packages: proto-list@1.2.4: resolution: {integrity: sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==} - proxy-addr@2.0.7: - resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} + proxy-addr@2.0.8: + resolution: {integrity: sha512-5nnx0yGyVUcY6t9RnWcARWtwT9F1D8O9rt08htPvnd49W1IgZtmLkhu9WfMzQj1cFxjHIO6connUNVW5k7AVyQ==} engines: {node: '>= 0.10'} prr@1.0.1: @@ -5273,12 +5397,8 @@ packages: resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} - qs@6.13.0: - resolution: {integrity: sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==} - engines: {node: '>=0.6'} - - qs@6.14.0: - resolution: {integrity: sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==} + qs@6.16.0: + resolution: {integrity: sha512-h6fhOIaRrID2CbEY2fqs+7t+UXZo+MLAnU5gRIq85uFtdiUPCdsApMlHhXogKVM4HM2DVbIjGNTTYH2OcmP1vA==} engines: {node: '>=0.6'} querystring-es3@0.2.1: @@ -5313,9 +5433,10 @@ packages: raw-body@1.1.7: resolution: {integrity: sha512-WmJJU2e9Y6M5UzTOkHaM7xJGAPQD8PNzx3bAd2+uhZAim6wDk6dAZxPVYLF67XhbR4hmKGh33Lpmh4XWrCH5Mg==} engines: {node: '>= 0.8.0'} + deprecated: No longer maintained. Please upgrade to a stable version. - raw-body@2.5.2: - resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==} + raw-body@2.5.3: + resolution: {integrity: sha512-s4VSOf6yN0rvbRZGxs8Om5CWj6seneMwK3oDb4lWDH0UPhWcxwOWw5+qk24bxq87szX1ydrwylIOp2uG1ojUpA==} engines: {node: '>= 0.8'} rc@1.2.8: @@ -5536,12 +5657,13 @@ packages: deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true - ripemd160@2.0.1: - resolution: {integrity: sha512-J7f4wutN8mdbV08MJnXibYpCOPHR+yzy+iQ/AsjMv2j8cLavQ8VGagDFUwwTAdF8FmRKVeNpbTTEwNHCW1g94w==} - ripemd160@2.0.2: resolution: {integrity: sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==} + ripemd160@2.0.3: + resolution: {integrity: sha512-5Di9UC0+8h1L6ZD2d7awM7E/T4uA1fJRlx6zk/NvdCCVEoAnFqvHmCuNeIKoCeIixBX/q8uM+6ycDvF8woqosA==} + engines: {node: '>= 0.8'} + rsvp@3.2.1: resolution: {integrity: sha512-Rf4YVNYpKjZ6ASAmibcwTNciQ5Co5Ztq6iZPEykHpkoflnD/K5ryE/rHehFsTm4NJj8nKDhbi3eKBWGogmNnkg==} @@ -5621,8 +5743,8 @@ packages: resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==} engines: {node: '>= 10.13.0'} - schema-utils@4.3.2: - resolution: {integrity: sha512-Gn/JaSk/Mt9gYubxTtSn/QCV4em9mpAPiR1rqy/Ocu19u/G9J5WWdNoUT4SiV6mFC3y6cxyFcFwdzPM3FgxGAQ==} + schema-utils@4.5.0: + resolution: {integrity: sha512-zJlMCZ0cAR5p/Y4oVpRoqioDMJcGxaXRrQ/4rP4WyR84vc5z/DolXdbvXeDpTwbtocDFr2rhPqHPErDCUtz2kA==} engines: {node: '>= 10.13.0'} semver@5.7.2: @@ -5645,9 +5767,6 @@ packages: serialize-javascript@4.0.0: resolution: {integrity: sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==} - serialize-javascript@6.0.2: - resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} - serve-static@1.16.2: resolution: {integrity: sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==} engines: {node: '>= 0.8.0'} @@ -5701,8 +5820,8 @@ packages: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} - shell-quote@1.8.3: - resolution: {integrity: sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==} + shell-quote@1.12.0: + resolution: {integrity: sha512-PcByqNyT/38F2kDNi006HAMRJaULuBzq/FOsw3qdZvX/GA9W/jamDaRskgHjubHiftXK5sIFxLNkvrXUwcof6Q==} engines: {node: '>= 0.4'} shellwords@0.1.1: @@ -5712,6 +5831,10 @@ packages: resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==} engines: {node: '>= 0.4'} + side-channel-list@1.0.1: + resolution: {integrity: sha512-mjn/0bi/oUURjc5Xl7IaWi/OJJJumuoJFQJfDDyO46+hBWsfaVM65TBHq2eoZBhzl9EchxOijpkbRC8SVBQU0w==} + engines: {node: '>= 0.4'} + side-channel-map@1.0.1: resolution: {integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==} engines: {node: '>= 0.4'} @@ -5724,6 +5847,10 @@ packages: resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==} engines: {node: '>= 0.4'} + side-channel@1.1.1: + resolution: {integrity: sha512-6x6dK6zJdpTzF4sQeNYxwtvBzf6Eg4GtlesS94HOvTudUeyK2WXAaIfmDgsyslYrRBeFIlsi54AYsFGUuhmvrQ==} + engines: {node: '>= 0.4'} + signal-exit@3.0.7: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} @@ -5772,15 +5899,15 @@ packages: resolution: {integrity: sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==} engines: {node: '>=0.10.0'} - socket.io-adapter@2.5.5: - resolution: {integrity: sha512-eLDQas5dzPgOWCk9GuuJC2lBqItuhKI4uxGgo9aIV7MYbk2h9Q6uULEh8WBzThoI7l+qU9Ast9fVUmkqPP9wYg==} + socket.io-adapter@2.5.8: + resolution: {integrity: sha512-6Oy52pbg+kvdCVvjcN+FnY7BvxZ7cIHNScbvztT/It5d0vbwoJoVZmF2gjJmnV0/4WlXRfG15zc45ySk9Ah8bw==} - socket.io-parser@4.2.4: - resolution: {integrity: sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==} + socket.io-parser@4.2.7: + resolution: {integrity: sha512-IH/iSeO9T6gz1KkFleGDWkG9N3dl4jXVYUtMhIqH10Md0ttMer8nUNWiP1DKuNrybD2xBrixLJdCC9J6ECoYkg==} engines: {node: '>=10.0.0'} - socket.io@4.8.1: - resolution: {integrity: sha512-oZ7iUCxph8WYRHHcjBEc9unw3adt5CmSNlppj/5Q4k2RIrhl8Z5yY2Xr4j9zj0+wzVZ0bxmYoGSzKJnRl6A4yg==} + socket.io@4.8.4: + resolution: {integrity: sha512-9ZV9zg8vN8hO3Y25DhR7nUkJ1VDnBhq5O/JrXhFT9s6+F0gqytSASTHVfCFc2mJXaTfARroErplXlzFWwETZqQ==} engines: {node: '>=10.2.0'} socks-proxy-agent@6.2.1: @@ -5801,8 +5928,8 @@ packages: source-list-map@2.0.1: resolution: {integrity: sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==} - source-map-js@1.2.1: - resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} + source-map-js@1.2.2: + resolution: {integrity: sha512-KGj/8Y43x35aZVDtt+J4mK1hoLGHULMYfSkODJNQjNDC3oW1PqPoxMwo0pLUsWM/UEGzON/NxeHywEfNXNP3Vw==} engines: {node: '>=0.10.0'} source-map-resolve@0.5.3: @@ -5891,6 +6018,10 @@ packages: resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} engines: {node: '>= 0.8'} + statuses@2.0.2: + resolution: {integrity: sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==} + engines: {node: '>= 0.8'} + stop-iteration-iterator@1.1.0: resolution: {integrity: sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==} engines: {node: '>= 0.4'} @@ -6053,13 +6184,14 @@ packages: resolution: {integrity: sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==} engines: {node: '>=6'} - tapable@2.2.2: - resolution: {integrity: sha512-Re10+NauLTMCudc7T5WLFLAwDhQ0JWdrMK+9B2M8zR5hRExKmsRDCBA7/aV/pNJFltmBFO5BAMlQFi/vq3nKOg==} + tapable@2.3.3: + resolution: {integrity: sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A==} engines: {node: '>=6'} tar@6.2.1: resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==} engines: {node: '>=10'} + deprecated: Old versions of tar are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me temp@0.9.4: resolution: {integrity: sha512-yYrrsWnrXMcdsnu/7YMYAofM1ktpL5By7vZhf15CrXijWWrEYZks5AXBudalfSWJLlnen/QUJUB5aoB0kqZUGA==} @@ -6071,22 +6203,6 @@ packages: peerDependencies: webpack: ^4.0.0 - terser-webpack-plugin@5.3.14: - resolution: {integrity: sha512-vkZjpUjb6OMS7dhV+tILUW6BhpDR7P2L/aQSAv+Uwk+m8KATX9EccViHTJR2qDtACKPIYndLGCyl3FMo+r2LMw==} - engines: {node: '>= 10.13.0'} - peerDependencies: - '@swc/core': '*' - esbuild: '*' - uglify-js: '*' - webpack: ^5.1.0 - peerDependenciesMeta: - '@swc/core': - optional: true - esbuild: - optional: true - uglify-js: - optional: true - terser@4.8.1: resolution: {integrity: sha512-4GnLC0x667eJG0ewJTa6z/yXrbLGv80D9Ru6HIpCQmO+Q4PfEtBFi0ObSckqwL6VyQv/7ENJieXHo2ANmdQwgw==} engines: {node: '>=6.0.0'} @@ -6097,6 +6213,11 @@ packages: engines: {node: '>=10'} hasBin: true + terser@5.51.2: + resolution: {integrity: sha512-bWnjSNscmuI+GJze6ZupnHP8G/cTcsJF+bXCeQknk2SHQsgbNJnLrqiH9jZ2W4STPVXH2mDKKRX3iwPhc9Cn/Q==} + engines: {node: '>=10'} + hasBin: true + testem@3.16.0: resolution: {integrity: sha512-TKQ3CuG/u+vDa7IUQgRQHN753wjDlgYMWE45KF5WkXyWjTNxXHPrY0qPBmHWI+kDYWc3zsJqzbS7pdzt5sc33A==} engines: {node: '>= 7.*'} @@ -6147,8 +6268,8 @@ packages: resolution: {integrity: sha512-J7Z2K08jbGcdA1kkQpJSqLF6T0tdQqpR2pnSUXsIchbPdTI9v3e85cLW0d6WDhwuAleOV71j2xWs8qMPfK7nKw==} engines: {node: '>=6'} - tmp@0.2.4: - resolution: {integrity: sha512-UdiSoX6ypifLmrfQ/XfiawN6hkjSBpCjhKxxZcWlUUmoXLaCKQU0bx4HF/tdDK2uzRuchf1txGvrWBzYREssoQ==} + tmp@0.2.7: + resolution: {integrity: sha512-e0votIpp4Uo2AJYSzVHV6xCcawuiez3DzqDAbrTc3YxBkplN6e+dM13ZeIcZnDg/QpSuU2zfZ3rzwY8ukEnaXw==} engines: {node: '>=14.14'} tmpl@1.0.5: @@ -6161,6 +6282,10 @@ packages: resolution: {integrity: sha512-tB82LpAIWjhLYbqjx3X4zEeHN6M8CiuOEy2JY8SEQVdYRe3CCHOFaqrBW1doLDrfpWhplcW7BL+bO3/6S3pcDQ==} engines: {node: '>= 0.4'} + to-buffer@1.2.2: + resolution: {integrity: sha512-db0E3UJjcFhpDhAF4tLo03oli3pwl3dbnzXOUIlRKrp+ldk/VUxzpWYZENsw2SZiuBjHAk7DfB0VU7NKdpb6sw==} + engines: {node: '>= 0.4'} + to-fast-properties@1.0.3: resolution: {integrity: sha512-lxrWP8ejsq+7E3nNjwYmUBMAgjMTZoTI+sdBOpvNyijeDLa29LUn9QaoXAHv4+Z578hbmHHJKZknzxVtvo77og==} engines: {node: '>=0.10.0'} @@ -6276,11 +6401,11 @@ packages: underscore.string@3.3.6: resolution: {integrity: sha512-VoC83HWXmCrF6rgkyxS9GHv8W9Q5nhMKho+OadDJGzL2oDYbYEppBaCMH6pFlwLeqj2QS+hhkw2kpXkSdD1JxQ==} - underscore@1.13.7: - resolution: {integrity: sha512-GMXzWtsc57XAtguZgaQViUOzs0KTkk8ojr3/xAxXLITqf/3EMwxC0inyETfDFjH/Krbhuep0HNbbjI9i/q3F3g==} + underscore@1.13.8: + resolution: {integrity: sha512-DXtD3ZtEQzc7M8m4cXotyHR+FAS18C64asBYY5vqZexfYryNNnDc02W4hKg3rdQuqOYas1jkseX0+nZXjTXnvQ==} - undici-types@7.10.0: - resolution: {integrity: sha512-t5Fy/nfn+14LuOc2KNYg75vZqClpAiqscVvMygNnlsHBFpSXdJaYtXMcdNLpl/Qvc3P2cB3s6lOV51nqsFq4ag==} + undici-types@8.9.0: + resolution: {integrity: sha512-KTDyRTYX8sWmKXAikPHHSyc63CRPETMctyjKFupcC6OBLXT3xsN0e9aF7m+mIXutFWpUXuedtowG7iLOzp0kQg==} unicode-canonical-property-names-ecmascript@2.0.1: resolution: {integrity: sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==} @@ -6347,8 +6472,8 @@ packages: resolution: {integrity: sha512-1uEe95xksV1O0CYKXo8vQvN1JEbtJp7lb7C5U9HMsIp6IVwntkH/oNUzyVNQSd4S1sYk2FpSSW44FqMc8qee5w==} engines: {node: '>=4'} - update-browserslist-db@1.1.3: - resolution: {integrity: sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==} + update-browserslist-db@1.3.4: + resolution: {integrity: sha512-t8wonIOdQyOjtPd2VktlBu6QjTVTks6v8bSi7kd0r2Vll8TK1JYDZtRRdbmCHOAMphkZgrzK+L+vXK4pyZ8t4A==} hasBin: true peerDependencies: browserslist: '>= 4.21.0' @@ -6390,6 +6515,7 @@ packages: uuid@8.3.2: resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} + deprecated: uuid@10 and below is no longer supported. For ESM codebases, update to uuid@latest. For CommonJS codebases, use uuid@11 (but be aware this version will likely be deprecated in 2028). hasBin: true v8-compile-cache@2.4.0: @@ -6446,8 +6572,8 @@ packages: watchpack@1.7.5: resolution: {integrity: sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ==} - watchpack@2.4.4: - resolution: {integrity: sha512-c5EGNOiyxxV5qmTtAB7rbiXxi1ooX1pQKMLX/MIabJjRA0SJBQOjKF+KSVfHkr9U1cADPon0mRiVe/riyaiDUA==} + watchpack@2.6.1: + resolution: {integrity: sha512-8mk/LnXpQAiM2xKZhTkxikwly5GhL2Z+DWiLTkMa/E1Nfv9zURhHgiFyWvM4BWqW+LjIgL2AIS7JntEUx6v3vQ==} engines: {node: '>=10.13.0'} wcwidth@1.0.1: @@ -6459,8 +6585,8 @@ packages: webpack-sources@1.4.3: resolution: {integrity: sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==} - webpack-sources@3.3.3: - resolution: {integrity: sha512-yd1RBzSGanHkitROoPFd6qsrxt+oFhg/129YzheDGqeustzX0vTZJZsSsQjVQC4yzBQ56K55XU8gaNCtIzOnTg==} + webpack-sources@3.6.0: + resolution: {integrity: sha512-EIMmPVvNI0CYXyRPp34F2Qk7W37/BZVZIofS6LAUnrNjCVahS+hO4mxwFJDjQjODTGZDtVzLYoN2+1dYkhk9qA==} engines: {node: '>=10.13.0'} webpack@4.47.0: @@ -6476,8 +6602,8 @@ packages: webpack-command: optional: true - webpack@5.101.0: - resolution: {integrity: sha512-B4t+nJqytPeuZlHuIKTbalhljIFXeNRqrUGAQgTGlfOl2lXXKXw+yZu6bicycP+PUlM44CxBjCFD6aciKFT3LQ==} + webpack@5.111.1: + resolution: {integrity: sha512-cNypaz0RP+S4cvQVi1M/3bRUkvNP0xZpL0TjFx+c6jg64VbxD+2weWDgY9UnjRI6dhZgtaj8DU76GGFcJ79xPQ==} engines: {node: '>=10.13.0'} hasBin: true peerDependencies: @@ -6486,8 +6612,8 @@ packages: webpack-cli: optional: true - websocket-driver@0.7.4: - resolution: {integrity: sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==} + websocket-driver@0.7.5: + resolution: {integrity: sha512-ZL2+3c7kMBdIRCMz6l8jQMHyGVxj+UL+xVk74Ombiciboca8rHa15L86B19E5oh1pL9Ii/uj54gtsIrZGMo6zA==} engines: {node: '>=0.8.0'} websocket-extensions@0.1.4: @@ -6564,8 +6690,8 @@ packages: write-file-atomic@3.0.3: resolution: {integrity: sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==} - ws@8.17.1: - resolution: {integrity: sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==} + ws@8.21.3: + resolution: {integrity: sha512-201TZ/kPWxoPr/OKWjquZR1SWKXcvxdH+e1xrx89b3YbmzLMFCLfnaG1HFIgWzJOEWZ7MvpK++odZufgYR50Rw==} engines: {node: '>=10.0.0'} peerDependencies: bufferutil: ^4.0.1 @@ -6631,11 +6757,6 @@ packages: snapshots: - '@ampproject/remapping@2.3.0': - dependencies: - '@jridgewell/gen-mapping': 0.3.12 - '@jridgewell/trace-mapping': 0.3.29 - '@babel/code-frame@7.12.11': dependencies: '@babel/highlight': 7.25.9 @@ -6646,20 +6767,28 @@ snapshots: js-tokens: 4.0.0 picocolors: 1.1.1 + '@babel/code-frame@7.29.7': + dependencies: + '@babel/helper-validator-identifier': 7.29.7 + js-tokens: 4.0.0 + picocolors: 1.1.1 + '@babel/compat-data@7.28.0': {} - '@babel/core@7.28.0': + '@babel/compat-data@7.29.7': {} + + '@babel/core@7.29.7': dependencies: - '@ampproject/remapping': 2.3.0 - '@babel/code-frame': 7.27.1 - '@babel/generator': 7.28.0 - '@babel/helper-compilation-targets': 7.27.2 - '@babel/helper-module-transforms': 7.27.3(@babel/core@7.28.0) - '@babel/helpers': 7.28.2 - '@babel/parser': 7.28.0 - '@babel/template': 7.27.2 - '@babel/traverse': 7.28.0 - '@babel/types': 7.28.2 + '@babel/code-frame': 7.29.7 + '@babel/generator': 7.29.8 + '@babel/helper-compilation-targets': 7.29.7 + '@babel/helper-module-transforms': 7.29.7(@babel/core@7.29.7) + '@babel/helpers': 7.29.10 + '@babel/parser': 7.29.9 + '@babel/template': 7.29.7 + '@babel/traverse': 7.29.10 + '@babel/types': 7.29.8 + '@jridgewell/remapping': 2.3.5 convert-source-map: 2.0.0 debug: 4.4.1 gensync: 1.0.0-beta.2 @@ -6673,47 +6802,63 @@ snapshots: '@babel/parser': 7.28.0 '@babel/types': 7.28.2 '@jridgewell/gen-mapping': 0.3.12 - '@jridgewell/trace-mapping': 0.3.29 + '@jridgewell/trace-mapping': 0.3.31 + jsesc: 3.1.0 + + '@babel/generator@7.29.8': + dependencies: + '@babel/parser': 7.29.9 + '@babel/types': 7.29.8 + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 jsesc: 3.1.0 '@babel/helper-annotate-as-pure@7.27.3': dependencies: - '@babel/types': 7.28.2 + '@babel/types': 7.29.8 '@babel/helper-compilation-targets@7.27.2': dependencies: '@babel/compat-data': 7.28.0 '@babel/helper-validator-option': 7.27.1 - browserslist: 4.25.1 + browserslist: 4.29.3 + lru-cache: 5.1.1 + semver: 6.3.1 + + '@babel/helper-compilation-targets@7.29.7': + dependencies: + '@babel/compat-data': 7.29.7 + '@babel/helper-validator-option': 7.29.7 + browserslist: 4.29.3 lru-cache: 5.1.1 semver: 6.3.1 - '@babel/helper-create-class-features-plugin@7.27.1(@babel/core@7.28.0)': + '@babel/helper-create-class-features-plugin@7.27.1(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.29.7 '@babel/helper-annotate-as-pure': 7.27.3 '@babel/helper-member-expression-to-functions': 7.27.1 '@babel/helper-optimise-call-expression': 7.27.1 - '@babel/helper-replace-supers': 7.27.1(@babel/core@7.28.0) + '@babel/helper-replace-supers': 7.27.1(@babel/core@7.29.7) '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 - '@babel/traverse': 7.28.0 + '@babel/traverse': 7.29.10 semver: 6.3.1 transitivePeerDependencies: - supports-color - '@babel/helper-create-regexp-features-plugin@7.27.1(@babel/core@7.28.0)': + '@babel/helper-create-regexp-features-plugin@7.27.1(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.29.7 '@babel/helper-annotate-as-pure': 7.27.3 regexpu-core: 6.2.0 semver: 6.3.1 - '@babel/helper-define-polyfill-provider@0.6.5(@babel/core@7.28.0)': + '@babel/helper-define-polyfill-provider@0.6.5(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.29.7 '@babel/helper-compilation-targets': 7.27.2 '@babel/helper-plugin-utils': 7.27.1 - debug: 4.4.1 + debug: 4.4.3 lodash.debounce: 4.0.8 resolve: 1.22.10 transitivePeerDependencies: @@ -6721,10 +6866,12 @@ snapshots: '@babel/helper-globals@7.28.0': {} + '@babel/helper-globals@7.29.7': {} + '@babel/helper-member-expression-to-functions@7.27.1': dependencies: - '@babel/traverse': 7.28.0 - '@babel/types': 7.28.2 + '@babel/traverse': 7.29.10 + '@babel/types': 7.29.8 transitivePeerDependencies: - supports-color @@ -6735,68 +6882,92 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/helper-module-transforms@7.27.3(@babel/core@7.28.0)': + '@babel/helper-module-imports@7.29.7': + dependencies: + '@babel/traverse': 7.29.10 + '@babel/types': 7.29.8 + transitivePeerDependencies: + - supports-color + + '@babel/helper-module-transforms@7.27.3(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.29.7 '@babel/helper-module-imports': 7.27.1 '@babel/helper-validator-identifier': 7.27.1 - '@babel/traverse': 7.28.0 + '@babel/traverse': 7.29.10 + transitivePeerDependencies: + - supports-color + + '@babel/helper-module-transforms@7.29.7(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-module-imports': 7.29.7 + '@babel/helper-validator-identifier': 7.29.7 + '@babel/traverse': 7.29.10 transitivePeerDependencies: - supports-color '@babel/helper-optimise-call-expression@7.27.1': dependencies: - '@babel/types': 7.28.2 + '@babel/types': 7.29.8 '@babel/helper-plugin-utils@7.27.1': {} - '@babel/helper-remap-async-to-generator@7.27.1(@babel/core@7.28.0)': + '@babel/helper-plugin-utils@7.29.7': {} + + '@babel/helper-remap-async-to-generator@7.27.1(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.29.7 '@babel/helper-annotate-as-pure': 7.27.3 '@babel/helper-wrap-function': 7.27.1 - '@babel/traverse': 7.28.0 + '@babel/traverse': 7.29.10 transitivePeerDependencies: - supports-color - '@babel/helper-replace-supers@7.27.1(@babel/core@7.28.0)': + '@babel/helper-replace-supers@7.27.1(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.29.7 '@babel/helper-member-expression-to-functions': 7.27.1 '@babel/helper-optimise-call-expression': 7.27.1 - '@babel/traverse': 7.28.0 + '@babel/traverse': 7.29.10 transitivePeerDependencies: - supports-color '@babel/helper-skip-transparent-expression-wrappers@7.27.1': dependencies: - '@babel/traverse': 7.28.0 - '@babel/types': 7.28.2 + '@babel/traverse': 7.29.10 + '@babel/types': 7.29.8 transitivePeerDependencies: - supports-color '@babel/helper-string-parser@7.27.1': {} + '@babel/helper-string-parser@7.29.7': {} + '@babel/helper-validator-identifier@7.27.1': {} + '@babel/helper-validator-identifier@7.29.7': {} + '@babel/helper-validator-option@7.27.1': {} + '@babel/helper-validator-option@7.29.7': {} + '@babel/helper-wrap-function@7.27.1': dependencies: - '@babel/template': 7.27.2 - '@babel/traverse': 7.28.0 - '@babel/types': 7.28.2 + '@babel/template': 7.29.7 + '@babel/traverse': 7.29.10 + '@babel/types': 7.29.8 transitivePeerDependencies: - supports-color - '@babel/helpers@7.28.2': + '@babel/helpers@7.29.10': dependencies: - '@babel/template': 7.27.2 - '@babel/types': 7.28.2 + '@babel/template': 7.29.7 + '@babel/types': 7.29.8 '@babel/highlight@7.25.9': dependencies: - '@babel/helper-validator-identifier': 7.27.1 + '@babel/helper-validator-identifier': 7.29.7 chalk: 2.4.2 js-tokens: 4.0.0 picocolors: 1.1.1 @@ -6805,480 +6976,484 @@ snapshots: dependencies: '@babel/types': 7.28.2 - '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.27.1(@babel/core@7.28.0)': + '@babel/parser@7.29.9': + dependencies: + '@babel/types': 7.29.8 + + '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.27.1(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.29.7 '@babel/helper-plugin-utils': 7.27.1 - '@babel/traverse': 7.28.0 + '@babel/traverse': 7.29.10 transitivePeerDependencies: - supports-color - '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.27.1(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.29.7 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.27.1(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.29.7 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.27.1(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.29.7 '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 - '@babel/plugin-transform-optional-chaining': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-optional-chaining': 7.27.1(@babel/core@7.29.7) transitivePeerDependencies: - supports-color - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.27.1(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.29.7 '@babel/helper-plugin-utils': 7.27.1 - '@babel/traverse': 7.28.0 + '@babel/traverse': 7.29.10 transitivePeerDependencies: - supports-color - '@babel/plugin-proposal-class-properties@7.18.6(@babel/core@7.28.0)': + '@babel/plugin-proposal-class-properties@7.18.6(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.28.0 - '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.28.0) + '@babel/core': 7.29.7 + '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.29.7) '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-proposal-decorators@7.28.0(@babel/core@7.28.0)': + '@babel/plugin-proposal-decorators@7.28.0(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.28.0 - '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.28.0) + '@babel/core': 7.29.7 + '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.29.7) '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-decorators': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-syntax-decorators': 7.27.1(@babel/core@7.29.7) transitivePeerDependencies: - supports-color - '@babel/plugin-proposal-private-methods@7.18.6(@babel/core@7.28.0)': + '@babel/plugin-proposal-private-methods@7.18.6(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.28.0 - '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.28.0) + '@babel/core': 7.29.7 + '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.29.7) '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.28.0)': + '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.29.7 - '@babel/plugin-proposal-private-property-in-object@7.21.11(@babel/core@7.28.0)': + '@babel/plugin-proposal-private-property-in-object@7.21.11(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.29.7 '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.28.0) + '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.29.7) '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.28.0) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.29.7) transitivePeerDependencies: - supports-color - '@babel/plugin-syntax-decorators@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-syntax-decorators@7.27.1(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.29.7 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-import-assertions@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-syntax-import-assertions@7.27.1(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.29.7 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-import-attributes@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-syntax-import-attributes@7.27.1(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.29.7 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.28.0)': + '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.29.7 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-typescript@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-syntax-typescript@7.27.1(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.29.7 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.28.0)': + '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.28.0 - '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.0) + '@babel/core': 7.29.7 + '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.29.7) '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-arrow-functions@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-transform-arrow-functions@7.27.1(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.29.7 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-async-generator-functions@7.28.0(@babel/core@7.28.0)': + '@babel/plugin-transform-async-generator-functions@7.28.0(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.29.7 '@babel/helper-plugin-utils': 7.27.1 - '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.28.0) - '@babel/traverse': 7.28.0 + '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.29.7) + '@babel/traverse': 7.29.10 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-async-to-generator@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-transform-async-to-generator@7.27.1(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.29.7 '@babel/helper-module-imports': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 - '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.28.0) + '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.29.7) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-block-scoped-functions@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-transform-block-scoped-functions@7.27.1(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.29.7 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-block-scoping@7.28.0(@babel/core@7.28.0)': + '@babel/plugin-transform-block-scoping@7.28.0(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.29.7 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-class-properties@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-transform-class-properties@7.27.1(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.28.0 - '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.28.0) + '@babel/core': 7.29.7 + '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.29.7) '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-class-static-block@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-transform-class-static-block@7.27.1(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.28.0 - '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.28.0) - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.29.7 + '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.29.7) + '@babel/helper-plugin-utils': 7.29.7 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-classes@7.28.0(@babel/core@7.28.0)': + '@babel/plugin-transform-classes@7.28.0(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.29.7 '@babel/helper-annotate-as-pure': 7.27.3 '@babel/helper-compilation-targets': 7.27.2 '@babel/helper-globals': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 - '@babel/helper-replace-supers': 7.27.1(@babel/core@7.28.0) - '@babel/traverse': 7.28.0 + '@babel/helper-replace-supers': 7.27.1(@babel/core@7.29.7) + '@babel/traverse': 7.29.10 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-computed-properties@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-transform-computed-properties@7.27.1(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.29.7 '@babel/helper-plugin-utils': 7.27.1 - '@babel/template': 7.27.2 + '@babel/template': 7.29.7 - '@babel/plugin-transform-destructuring@7.28.0(@babel/core@7.28.0)': + '@babel/plugin-transform-destructuring@7.28.0(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.29.7 '@babel/helper-plugin-utils': 7.27.1 - '@babel/traverse': 7.28.0 + '@babel/traverse': 7.29.10 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-dotall-regex@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-transform-dotall-regex@7.27.1(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.28.0 - '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.0) + '@babel/core': 7.29.7 + '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.29.7) '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-duplicate-keys@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-transform-duplicate-keys@7.27.1(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.29.7 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.27.1(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.28.0 - '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.0) + '@babel/core': 7.29.7 + '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.29.7) '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-dynamic-import@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-transform-dynamic-import@7.27.1(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.29.7 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-explicit-resource-management@7.28.0(@babel/core@7.28.0)': + '@babel/plugin-transform-explicit-resource-management@7.28.0(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.29.7 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-destructuring': 7.28.0(@babel/core@7.28.0) + '@babel/plugin-transform-destructuring': 7.28.0(@babel/core@7.29.7) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-exponentiation-operator@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-transform-exponentiation-operator@7.27.1(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.29.7 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-export-namespace-from@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-transform-export-namespace-from@7.27.1(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.29.7 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-for-of@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-transform-for-of@7.27.1(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.29.7 '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-function-name@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-transform-function-name@7.27.1(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.29.7 '@babel/helper-compilation-targets': 7.27.2 '@babel/helper-plugin-utils': 7.27.1 - '@babel/traverse': 7.28.0 + '@babel/traverse': 7.29.10 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-json-strings@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-transform-json-strings@7.27.1(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.29.7 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-literals@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-transform-literals@7.27.1(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.29.7 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-logical-assignment-operators@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-transform-logical-assignment-operators@7.27.1(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.29.7 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-member-expression-literals@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-transform-member-expression-literals@7.27.1(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.29.7 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-modules-amd@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-transform-modules-amd@7.27.1(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.28.0 - '@babel/helper-module-transforms': 7.27.3(@babel/core@7.28.0) + '@babel/core': 7.29.7 + '@babel/helper-module-transforms': 7.27.3(@babel/core@7.29.7) '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-modules-commonjs@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-transform-modules-commonjs@7.27.1(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.28.0 - '@babel/helper-module-transforms': 7.27.3(@babel/core@7.28.0) + '@babel/core': 7.29.7 + '@babel/helper-module-transforms': 7.29.7(@babel/core@7.29.7) '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-modules-systemjs@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-transform-modules-systemjs@7.29.8(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.28.0 - '@babel/helper-module-transforms': 7.27.3(@babel/core@7.28.0) - '@babel/helper-plugin-utils': 7.27.1 - '@babel/helper-validator-identifier': 7.27.1 - '@babel/traverse': 7.28.0 + '@babel/core': 7.29.7 + '@babel/helper-module-transforms': 7.29.7(@babel/core@7.29.7) + '@babel/helper-plugin-utils': 7.29.7 + '@babel/helper-validator-identifier': 7.29.7 + '@babel/traverse': 7.29.10 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-modules-umd@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-transform-modules-umd@7.27.1(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.28.0 - '@babel/helper-module-transforms': 7.27.3(@babel/core@7.28.0) + '@babel/core': 7.29.7 + '@babel/helper-module-transforms': 7.29.7(@babel/core@7.29.7) '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-named-capturing-groups-regex@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-transform-named-capturing-groups-regex@7.27.1(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.28.0 - '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.0) + '@babel/core': 7.29.7 + '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.29.7) '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-new-target@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-transform-new-target@7.27.1(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.29.7 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-nullish-coalescing-operator@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-transform-nullish-coalescing-operator@7.27.1(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.29.7 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-numeric-separator@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-transform-numeric-separator@7.27.1(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.29.7 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-object-rest-spread@7.28.0(@babel/core@7.28.0)': + '@babel/plugin-transform-object-rest-spread@7.28.0(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.29.7 '@babel/helper-compilation-targets': 7.27.2 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-destructuring': 7.28.0(@babel/core@7.28.0) - '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.28.0) - '@babel/traverse': 7.28.0 + '@babel/plugin-transform-destructuring': 7.28.0(@babel/core@7.29.7) + '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.29.7) + '@babel/traverse': 7.29.10 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-object-super@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-transform-object-super@7.27.1(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.29.7 '@babel/helper-plugin-utils': 7.27.1 - '@babel/helper-replace-supers': 7.27.1(@babel/core@7.28.0) + '@babel/helper-replace-supers': 7.27.1(@babel/core@7.29.7) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-optional-catch-binding@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-transform-optional-catch-binding@7.27.1(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.29.7 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-optional-chaining@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-transform-optional-chaining@7.27.1(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.29.7 '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-parameters@7.27.7(@babel/core@7.28.0)': + '@babel/plugin-transform-parameters@7.27.7(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.29.7 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-private-methods@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-transform-private-methods@7.27.1(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.28.0 - '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.28.0) + '@babel/core': 7.29.7 + '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.29.7) '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-private-property-in-object@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-transform-private-property-in-object@7.27.1(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.29.7 '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.28.0) + '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.29.7) '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-property-literals@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-transform-property-literals@7.27.1(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.29.7 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-regenerator@7.28.1(@babel/core@7.28.0)': + '@babel/plugin-transform-regenerator@7.28.1(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.29.7 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-regexp-modifiers@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-transform-regexp-modifiers@7.27.1(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.28.0 - '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.0) + '@babel/core': 7.29.7 + '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.29.7) '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-reserved-words@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-transform-reserved-words@7.27.1(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.29.7 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-runtime@7.28.0(@babel/core@7.28.0)': + '@babel/plugin-transform-runtime@7.28.0(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.29.7 '@babel/helper-module-imports': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 - babel-plugin-polyfill-corejs2: 0.4.14(@babel/core@7.28.0) - babel-plugin-polyfill-corejs3: 0.13.0(@babel/core@7.28.0) - babel-plugin-polyfill-regenerator: 0.6.5(@babel/core@7.28.0) + babel-plugin-polyfill-corejs2: 0.4.14(@babel/core@7.29.7) + babel-plugin-polyfill-corejs3: 0.13.0(@babel/core@7.29.7) + babel-plugin-polyfill-regenerator: 0.6.5(@babel/core@7.29.7) semver: 6.3.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-shorthand-properties@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-transform-shorthand-properties@7.27.1(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.29.7 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-spread@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-transform-spread@7.27.1(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.29.7 '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-sticky-regex@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-transform-sticky-regex@7.27.1(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.29.7 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-template-literals@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-transform-template-literals@7.27.1(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.29.7 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-typeof-symbol@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-transform-typeof-symbol@7.27.1(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.29.7 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-typescript@7.28.0(@babel/core@7.28.0)': + '@babel/plugin-transform-typescript@7.28.0(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.29.7 '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.28.0) + '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.29.7) '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 - '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.29.7) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-typescript@7.4.5(@babel/core@7.28.0)': + '@babel/plugin-transform-typescript@7.4.5(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.29.7 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.29.7) - '@babel/plugin-transform-typescript@7.5.5(@babel/core@7.28.0)': + '@babel/plugin-transform-typescript@7.5.5(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.28.0 - '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.28.0) - '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.28.0) + '@babel/core': 7.29.7 + '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.29.7) + '@babel/helper-plugin-utils': 7.29.7 + '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.29.7) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-unicode-escapes@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-transform-unicode-escapes@7.27.1(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.29.7 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-unicode-property-regex@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-transform-unicode-property-regex@7.27.1(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.28.0 - '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.0) + '@babel/core': 7.29.7 + '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.29.7) '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-unicode-regex@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-transform-unicode-regex@7.27.1(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.28.0 - '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.0) + '@babel/core': 7.29.7 + '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.29.7) '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-unicode-sets-regex@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-transform-unicode-sets-regex@7.27.1(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.28.0 - '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.0) + '@babel/core': 7.29.7 + '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.29.7) '@babel/helper-plugin-utils': 7.27.1 '@babel/polyfill@7.12.1': @@ -7286,94 +7461,94 @@ snapshots: core-js: 2.6.12 regenerator-runtime: 0.13.11 - '@babel/preset-env@7.28.0(@babel/core@7.28.0)': + '@babel/preset-env@7.28.0(@babel/core@7.29.7)': dependencies: '@babel/compat-data': 7.28.0 - '@babel/core': 7.28.0 + '@babel/core': 7.29.7 '@babel/helper-compilation-targets': 7.27.2 '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-validator-option': 7.27.1 - '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-bugfix-safari-class-field-initializer-scope': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.28.0) - '@babel/plugin-syntax-import-assertions': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-syntax-import-attributes': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.28.0) - '@babel/plugin-transform-arrow-functions': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-async-generator-functions': 7.28.0(@babel/core@7.28.0) - '@babel/plugin-transform-async-to-generator': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-block-scoped-functions': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-block-scoping': 7.28.0(@babel/core@7.28.0) - '@babel/plugin-transform-class-properties': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-class-static-block': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-classes': 7.28.0(@babel/core@7.28.0) - '@babel/plugin-transform-computed-properties': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-destructuring': 7.28.0(@babel/core@7.28.0) - '@babel/plugin-transform-dotall-regex': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-duplicate-keys': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-duplicate-named-capturing-groups-regex': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-dynamic-import': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-explicit-resource-management': 7.28.0(@babel/core@7.28.0) - '@babel/plugin-transform-exponentiation-operator': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-export-namespace-from': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-for-of': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-function-name': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-json-strings': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-literals': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-logical-assignment-operators': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-member-expression-literals': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-modules-amd': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-modules-commonjs': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-modules-systemjs': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-modules-umd': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-named-capturing-groups-regex': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-new-target': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-nullish-coalescing-operator': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-numeric-separator': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-object-rest-spread': 7.28.0(@babel/core@7.28.0) - '@babel/plugin-transform-object-super': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-optional-catch-binding': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-optional-chaining': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.28.0) - '@babel/plugin-transform-private-methods': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-private-property-in-object': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-property-literals': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-regenerator': 7.28.1(@babel/core@7.28.0) - '@babel/plugin-transform-regexp-modifiers': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-reserved-words': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-shorthand-properties': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-spread': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-sticky-regex': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-template-literals': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-typeof-symbol': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-unicode-escapes': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-unicode-property-regex': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-unicode-regex': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-unicode-sets-regex': 7.27.1(@babel/core@7.28.0) - '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.28.0) - babel-plugin-polyfill-corejs2: 0.4.14(@babel/core@7.28.0) - babel-plugin-polyfill-corejs3: 0.13.0(@babel/core@7.28.0) - babel-plugin-polyfill-regenerator: 0.6.5(@babel/core@7.28.0) + '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.27.1(@babel/core@7.29.7) + '@babel/plugin-bugfix-safari-class-field-initializer-scope': 7.27.1(@babel/core@7.29.7) + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.27.1(@babel/core@7.29.7) + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.27.1(@babel/core@7.29.7) + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.27.1(@babel/core@7.29.7) + '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.29.7) + '@babel/plugin-syntax-import-assertions': 7.27.1(@babel/core@7.29.7) + '@babel/plugin-syntax-import-attributes': 7.27.1(@babel/core@7.29.7) + '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.29.7) + '@babel/plugin-transform-arrow-functions': 7.27.1(@babel/core@7.29.7) + '@babel/plugin-transform-async-generator-functions': 7.28.0(@babel/core@7.29.7) + '@babel/plugin-transform-async-to-generator': 7.27.1(@babel/core@7.29.7) + '@babel/plugin-transform-block-scoped-functions': 7.27.1(@babel/core@7.29.7) + '@babel/plugin-transform-block-scoping': 7.28.0(@babel/core@7.29.7) + '@babel/plugin-transform-class-properties': 7.27.1(@babel/core@7.29.7) + '@babel/plugin-transform-class-static-block': 7.27.1(@babel/core@7.29.7) + '@babel/plugin-transform-classes': 7.28.0(@babel/core@7.29.7) + '@babel/plugin-transform-computed-properties': 7.27.1(@babel/core@7.29.7) + '@babel/plugin-transform-destructuring': 7.28.0(@babel/core@7.29.7) + '@babel/plugin-transform-dotall-regex': 7.27.1(@babel/core@7.29.7) + '@babel/plugin-transform-duplicate-keys': 7.27.1(@babel/core@7.29.7) + '@babel/plugin-transform-duplicate-named-capturing-groups-regex': 7.27.1(@babel/core@7.29.7) + '@babel/plugin-transform-dynamic-import': 7.27.1(@babel/core@7.29.7) + '@babel/plugin-transform-explicit-resource-management': 7.28.0(@babel/core@7.29.7) + '@babel/plugin-transform-exponentiation-operator': 7.27.1(@babel/core@7.29.7) + '@babel/plugin-transform-export-namespace-from': 7.27.1(@babel/core@7.29.7) + '@babel/plugin-transform-for-of': 7.27.1(@babel/core@7.29.7) + '@babel/plugin-transform-function-name': 7.27.1(@babel/core@7.29.7) + '@babel/plugin-transform-json-strings': 7.27.1(@babel/core@7.29.7) + '@babel/plugin-transform-literals': 7.27.1(@babel/core@7.29.7) + '@babel/plugin-transform-logical-assignment-operators': 7.27.1(@babel/core@7.29.7) + '@babel/plugin-transform-member-expression-literals': 7.27.1(@babel/core@7.29.7) + '@babel/plugin-transform-modules-amd': 7.27.1(@babel/core@7.29.7) + '@babel/plugin-transform-modules-commonjs': 7.27.1(@babel/core@7.29.7) + '@babel/plugin-transform-modules-systemjs': 7.29.8(@babel/core@7.29.7) + '@babel/plugin-transform-modules-umd': 7.27.1(@babel/core@7.29.7) + '@babel/plugin-transform-named-capturing-groups-regex': 7.27.1(@babel/core@7.29.7) + '@babel/plugin-transform-new-target': 7.27.1(@babel/core@7.29.7) + '@babel/plugin-transform-nullish-coalescing-operator': 7.27.1(@babel/core@7.29.7) + '@babel/plugin-transform-numeric-separator': 7.27.1(@babel/core@7.29.7) + '@babel/plugin-transform-object-rest-spread': 7.28.0(@babel/core@7.29.7) + '@babel/plugin-transform-object-super': 7.27.1(@babel/core@7.29.7) + '@babel/plugin-transform-optional-catch-binding': 7.27.1(@babel/core@7.29.7) + '@babel/plugin-transform-optional-chaining': 7.27.1(@babel/core@7.29.7) + '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.29.7) + '@babel/plugin-transform-private-methods': 7.27.1(@babel/core@7.29.7) + '@babel/plugin-transform-private-property-in-object': 7.27.1(@babel/core@7.29.7) + '@babel/plugin-transform-property-literals': 7.27.1(@babel/core@7.29.7) + '@babel/plugin-transform-regenerator': 7.28.1(@babel/core@7.29.7) + '@babel/plugin-transform-regexp-modifiers': 7.27.1(@babel/core@7.29.7) + '@babel/plugin-transform-reserved-words': 7.27.1(@babel/core@7.29.7) + '@babel/plugin-transform-shorthand-properties': 7.27.1(@babel/core@7.29.7) + '@babel/plugin-transform-spread': 7.27.1(@babel/core@7.29.7) + '@babel/plugin-transform-sticky-regex': 7.27.1(@babel/core@7.29.7) + '@babel/plugin-transform-template-literals': 7.27.1(@babel/core@7.29.7) + '@babel/plugin-transform-typeof-symbol': 7.27.1(@babel/core@7.29.7) + '@babel/plugin-transform-unicode-escapes': 7.27.1(@babel/core@7.29.7) + '@babel/plugin-transform-unicode-property-regex': 7.27.1(@babel/core@7.29.7) + '@babel/plugin-transform-unicode-regex': 7.27.1(@babel/core@7.29.7) + '@babel/plugin-transform-unicode-sets-regex': 7.27.1(@babel/core@7.29.7) + '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.29.7) + babel-plugin-polyfill-corejs2: 0.4.14(@babel/core@7.29.7) + babel-plugin-polyfill-corejs3: 0.13.0(@babel/core@7.29.7) + babel-plugin-polyfill-regenerator: 0.6.5(@babel/core@7.29.7) core-js-compat: 3.45.0 semver: 6.3.1 transitivePeerDependencies: - supports-color - '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.28.0)': + '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.29.7 '@babel/helper-plugin-utils': 7.27.1 - '@babel/types': 7.28.2 + '@babel/types': 7.29.8 esutils: 2.0.3 '@babel/runtime@7.12.18': dependencies: regenerator-runtime: 0.13.11 - '@babel/runtime@7.28.2': {} + '@babel/runtime@7.29.10': {} '@babel/template@7.27.2': dependencies: @@ -7381,6 +7556,12 @@ snapshots: '@babel/parser': 7.28.0 '@babel/types': 7.28.2 + '@babel/template@7.29.7': + dependencies: + '@babel/code-frame': 7.29.7 + '@babel/parser': 7.29.9 + '@babel/types': 7.29.8 + '@babel/traverse@7.28.0': dependencies: '@babel/code-frame': 7.27.1 @@ -7393,11 +7574,28 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/traverse@7.29.10': + dependencies: + '@babel/code-frame': 7.29.7 + '@babel/generator': 7.29.8 + '@babel/helper-globals': 7.29.7 + '@babel/parser': 7.29.9 + '@babel/template': 7.29.7 + '@babel/types': 7.29.8 + debug: 4.4.1 + transitivePeerDependencies: + - supports-color + '@babel/types@7.28.2': dependencies: '@babel/helper-string-parser': 7.27.1 '@babel/helper-validator-identifier': 7.27.1 + '@babel/types@7.29.8': + dependencies: + '@babel/helper-string-parser': 7.29.7 + '@babel/helper-validator-identifier': 7.29.7 + '@cnakazawa/watch@1.0.4': dependencies: exec-sh: 0.3.6 @@ -7423,17 +7621,17 @@ snapshots: '@ember/string@4.0.1': {} - '@ember/test-helpers@2.9.6(@babel/core@7.28.0)(ember-source@4.8.6(@babel/core@7.28.0)(@glimmer/component@1.1.2(@babel/core@7.28.0))(webpack@5.101.0))': + '@ember/test-helpers@2.9.6(@babel/core@7.29.7)(ember-source@4.8.6(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(webpack@5.111.1(postcss@8.5.30)))': dependencies: '@ember/test-waiters': 3.1.0 '@embroider/macros': 1.18.1 - '@embroider/util': 1.13.4(ember-source@4.8.6(@babel/core@7.28.0)(@glimmer/component@1.1.2(@babel/core@7.28.0))(webpack@5.101.0)) + '@embroider/util': 1.13.4(ember-source@4.8.6(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(webpack@5.111.1(postcss@8.5.30))) broccoli-debug: 0.6.5 broccoli-funnel: 3.0.8 ember-cli-babel: 7.26.11 ember-cli-htmlbars: 6.3.0 - ember-destroyable-polyfill: 2.0.3(@babel/core@7.28.0) - ember-source: 4.8.6(@babel/core@7.28.0)(@glimmer/component@1.1.2(@babel/core@7.28.0))(webpack@5.101.0) + ember-destroyable-polyfill: 2.0.3(@babel/core@7.29.7) + ember-source: 4.8.6(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(webpack@5.111.1(postcss@8.5.30)) transitivePeerDependencies: - '@babel/core' - '@glint/environment-ember-loose' @@ -7456,19 +7654,24 @@ snapshots: babel-import-util: 3.0.1 ember-cli-babel: 7.26.11 find-up: 5.0.0 - lodash: 4.17.21 + lodash: 4.18.1 resolve: 1.22.10 semver: 7.7.2 transitivePeerDependencies: - supports-color + '@embroider/reverse-exports@0.2.0': + dependencies: + mem: 8.1.1 + resolve.exports: 2.0.3 + '@embroider/shared-internals@1.8.3': dependencies: babel-import-util: 1.4.1 ember-rfc176-data: 0.3.18 fs-extra: 9.1.0 js-string-escape: 1.0.1 - lodash: 4.17.21 + lodash: 4.18.1 resolve-package-path: 4.0.3 semver: 7.7.2 typescript-memoize: 1.1.1 @@ -7476,13 +7679,13 @@ snapshots: '@embroider/shared-internals@2.9.1': dependencies: babel-import-util: 2.1.1 - debug: 4.4.1 + debug: 4.4.3 ember-rfc176-data: 0.3.18 fs-extra: 9.1.0 is-subdir: 1.2.0 js-string-escape: 1.0.1 - lodash: 4.17.21 - minimatch: 3.1.2 + lodash: 4.18.1 + minimatch: 3.1.5 pkg-entry-points: 1.1.1 resolve-package-path: 4.0.3 semver: 7.7.2 @@ -7493,13 +7696,13 @@ snapshots: '@embroider/shared-internals@3.0.0': dependencies: babel-import-util: 3.0.1 - debug: 4.4.1 + debug: 4.4.3 ember-rfc176-data: 0.3.18 fs-extra: 9.1.0 is-subdir: 1.2.0 js-string-escape: 1.0.1 - lodash: 4.17.21 - minimatch: 3.1.2 + lodash: 4.18.1 + minimatch: 3.1.5 pkg-entry-points: 1.1.1 resolve-package-path: 4.0.3 resolve.exports: 2.0.3 @@ -7510,35 +7713,35 @@ snapshots: '@embroider/test-setup@0.48.1': dependencies: - lodash: 4.17.21 + lodash: 4.18.1 resolve: 1.22.10 - '@embroider/util@1.13.4(ember-source@4.8.6(@babel/core@7.28.0)(@glimmer/component@1.1.2(@babel/core@7.28.0))(webpack@5.101.0))': + '@embroider/util@1.13.4(ember-source@4.8.6(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(webpack@5.111.1(postcss@8.5.30)))': dependencies: '@embroider/macros': 1.18.1 broccoli-funnel: 3.0.8 ember-cli-babel: 7.26.11 - ember-source: 4.8.6(@babel/core@7.28.0)(@glimmer/component@1.1.2(@babel/core@7.28.0))(webpack@5.101.0) + ember-source: 4.8.6(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(webpack@5.111.1(postcss@8.5.30)) transitivePeerDependencies: - supports-color '@eslint/eslintrc@0.4.3': dependencies: - ajv: 6.12.6 + ajv: 6.15.0 debug: 4.4.1 espree: 7.3.1 globals: 13.24.0 ignore: 4.0.6 import-fresh: 3.3.1 - js-yaml: 3.14.1 - minimatch: 3.1.2 + js-yaml: 3.15.2 + minimatch: 3.1.5 strip-json-comments: 3.1.1 transitivePeerDependencies: - supports-color '@gar/promisify@1.1.3': {} - '@glimmer/component@1.1.2(@babel/core@7.28.0)': + '@glimmer/component@1.1.2(@babel/core@7.29.7)': dependencies: '@glimmer/di': 0.1.11 '@glimmer/env': 0.1.7 @@ -7551,9 +7754,9 @@ snapshots: ember-cli-normalize-entity-name: 1.0.0 ember-cli-path-utils: 1.0.0 ember-cli-string-utils: 1.1.0 - ember-cli-typescript: 3.0.0(@babel/core@7.28.0) + ember-cli-typescript: 3.0.0(@babel/core@7.29.7) ember-cli-version-checker: 3.1.3 - ember-compatibility-helpers: 1.2.7(@babel/core@7.28.0) + ember-compatibility-helpers: 1.2.7(@babel/core@7.29.7) transitivePeerDependencies: - '@babel/core' - supports-color @@ -7622,9 +7825,9 @@ snapshots: '@glimmer/env': 0.1.7 '@glimmer/global-context': 0.84.3 - '@glimmer/vm-babel-plugins@0.84.2(@babel/core@7.28.0)': + '@glimmer/vm-babel-plugins@0.84.2(@babel/core@7.29.7)': dependencies: - babel-plugin-debug-macros: 0.3.4(@babel/core@7.28.0) + babel-plugin-debug-macros: 0.3.4(@babel/core@7.29.7) transitivePeerDependencies: - '@babel/core' @@ -7640,7 +7843,7 @@ snapshots: dependencies: '@humanwhocodes/object-schema': 1.2.1 debug: 4.4.1 - minimatch: 3.1.2 + minimatch: 3.1.5 transitivePeerDependencies: - supports-color @@ -7658,21 +7861,38 @@ snapshots: '@jridgewell/gen-mapping@0.3.12': dependencies: '@jridgewell/sourcemap-codec': 1.5.4 - '@jridgewell/trace-mapping': 0.3.29 + '@jridgewell/trace-mapping': 0.3.31 + + '@jridgewell/gen-mapping@0.3.13': + dependencies: + '@jridgewell/sourcemap-codec': 1.6.0 + '@jridgewell/trace-mapping': 0.3.31 + + '@jridgewell/remapping@2.3.5': + dependencies: + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 '@jridgewell/resolve-uri@3.1.2': {} '@jridgewell/source-map@0.3.10': dependencies: - '@jridgewell/gen-mapping': 0.3.12 - '@jridgewell/trace-mapping': 0.3.29 + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 + + '@jridgewell/source-map@0.3.11': + dependencies: + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 '@jridgewell/sourcemap-codec@1.5.4': {} - '@jridgewell/trace-mapping@0.3.29': + '@jridgewell/sourcemap-codec@1.6.0': {} + + '@jridgewell/trace-mapping@0.3.31': dependencies: '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.5.4 + '@jridgewell/sourcemap-codec': 1.6.0 '@lint-todo/utils@13.1.1': dependencies: @@ -7697,7 +7917,7 @@ snapshots: dependencies: fast-glob: 3.3.3 jju: 1.4.0 - js-yaml: 4.1.0 + js-yaml: 4.3.2 '@nodelib/fs.scandir@2.1.5': dependencies: @@ -7735,7 +7955,7 @@ snapshots: '@npmcli/package-json@6.2.0': dependencies: '@npmcli/git': 6.0.3 - glob: 10.4.5 + glob: 10.5.0 hosted-git-info: 8.1.0 json-parse-even-better-errors: 4.0.0 proc-log: 5.0.0 @@ -7848,7 +8068,7 @@ snapshots: '@types/body-parser@1.19.6': dependencies: '@types/connect': 3.4.38 - '@types/node': 24.2.0 + '@types/node': 26.6.5 '@types/chai-as-promised@7.1.8': dependencies: @@ -7858,32 +8078,22 @@ snapshots: '@types/connect@3.4.38': dependencies: - '@types/node': 24.2.0 + '@types/node': 26.6.5 '@types/cors@2.8.19': dependencies: - '@types/node': 24.2.0 - - '@types/eslint-scope@3.7.7': - dependencies: - '@types/eslint': 9.6.1 - '@types/estree': 1.0.8 + '@types/node': 26.6.5 '@types/eslint@8.56.12': dependencies: '@types/estree': 1.0.8 '@types/json-schema': 7.0.15 - '@types/eslint@9.6.1': - dependencies: - '@types/estree': 1.0.8 - '@types/json-schema': 7.0.15 - '@types/estree@1.0.8': {} '@types/express-serve-static-core@4.19.6': dependencies: - '@types/node': 24.2.0 + '@types/node': 26.6.5 '@types/qs': 6.14.0 '@types/range-parser': 1.2.7 '@types/send': 0.17.5 @@ -7897,20 +8107,20 @@ snapshots: '@types/fs-extra@5.1.0': dependencies: - '@types/node': 24.2.0 + '@types/node': 26.6.5 '@types/fs-extra@8.1.5': dependencies: - '@types/node': 24.2.0 + '@types/node': 26.6.5 '@types/glob@7.2.0': dependencies: '@types/minimatch': 6.0.0 - '@types/node': 24.2.0 + '@types/node': 26.6.5 '@types/glob@9.0.0': dependencies: - glob: 7.2.3 + glob: 10.5.0 '@types/http-errors@2.0.5': {} @@ -7918,7 +8128,7 @@ snapshots: '@types/keyv@3.1.4': dependencies: - '@types/node': 24.2.0 + '@types/node': 26.6.5 '@types/mime@1.3.5': {} @@ -7926,11 +8136,11 @@ snapshots: '@types/minimatch@6.0.0': dependencies: - minimatch: 5.1.6 + minimatch: 9.0.9 - '@types/node@24.2.0': + '@types/node@26.6.5': dependencies: - undici-types: 7.10.0 + undici-types: 8.9.0 '@types/qs@6.14.0': {} @@ -7938,26 +8148,30 @@ snapshots: '@types/responselike@1.0.3': dependencies: - '@types/node': 24.2.0 + '@types/node': 26.6.5 '@types/rimraf@2.0.5': dependencies: '@types/glob': 9.0.0 - '@types/node': 24.2.0 + '@types/node': 26.6.5 '@types/send@0.17.5': dependencies: '@types/mime': 1.3.5 - '@types/node': 24.2.0 + '@types/node': 26.6.5 '@types/serve-static@1.15.8': dependencies: '@types/http-errors': 2.0.5 - '@types/node': 24.2.0 + '@types/node': 26.6.5 '@types/send': 0.17.5 '@types/symlink-or-copy@1.2.2': {} + '@types/ws@8.18.2': + dependencies: + '@types/node': 26.6.5 + '@webassemblyjs/ast@1.14.1': dependencies: '@webassemblyjs/helper-numbers': 1.13.2 @@ -8125,7 +8339,7 @@ snapshots: '@webassemblyjs/wast-parser': 1.9.0 '@xtuc/long': 4.2.2 - '@xmldom/xmldom@0.8.10': {} + '@xmldom/xmldom@0.8.15': {} '@xtuc/ieee754@1.2.0': {} @@ -8138,10 +8352,6 @@ snapshots: mime-types: 2.1.35 negotiator: 0.6.3 - acorn-import-phases@1.0.4(acorn@8.15.0): - dependencies: - acorn: 8.15.0 - acorn-jsx@5.3.2(acorn@7.4.1): dependencies: acorn: 7.4.1 @@ -8152,9 +8362,11 @@ snapshots: acorn@8.15.0: {} + acorn@8.19.0: {} + agent-base@6.0.2: dependencies: - debug: 4.3.4 + debug: 4.4.3 transitivePeerDependencies: - supports-color @@ -8167,34 +8379,34 @@ snapshots: clean-stack: 2.2.0 indent-string: 4.0.0 - ajv-errors@1.0.1(ajv@6.12.6): + ajv-errors@1.0.1(ajv@6.15.0): dependencies: - ajv: 6.12.6 + ajv: 6.15.0 - ajv-formats@2.1.1(ajv@8.17.1): + ajv-formats@3.0.1(ajv@8.20.0): optionalDependencies: - ajv: 8.17.1 + ajv: 8.20.0 - ajv-keywords@3.5.2(ajv@6.12.6): + ajv-keywords@3.5.2(ajv@6.15.0): dependencies: - ajv: 6.12.6 + ajv: 6.15.0 - ajv-keywords@5.1.0(ajv@8.17.1): + ajv-keywords@5.1.0(ajv@8.20.0): dependencies: - ajv: 8.17.1 + ajv: 8.20.0 fast-deep-equal: 3.1.3 - ajv@6.12.6: + ajv@6.15.0: dependencies: fast-deep-equal: 3.1.3 fast-json-stable-stringify: 2.1.0 json-schema-traverse: 0.4.1 uri-js: 4.4.1 - ajv@8.17.1: + ajv@8.20.0: dependencies: fast-deep-equal: 3.1.3 - fast-uri: 3.0.6 + fast-uri: 3.1.8 json-schema-traverse: 1.0.0 require-from-string: 2.0.2 @@ -8255,7 +8467,7 @@ snapshots: anymatch@3.1.3: dependencies: normalize-path: 3.0.0 - picomatch: 2.3.1 + picomatch: 2.3.2 aproba@1.2.0: {} @@ -8311,7 +8523,7 @@ snapshots: asn1.js@4.10.1: dependencies: - bn.js: 4.12.2 + bn.js: 4.12.5 inherits: 2.0.4 minimalistic-assert: 1.0.1 @@ -8368,7 +8580,7 @@ snapshots: async@2.6.4: dependencies: - lodash: 4.17.21 + lodash: 4.18.1 async@3.2.6: {} @@ -8401,8 +8613,8 @@ snapshots: convert-source-map: 1.9.0 debug: 2.6.9 json5: 0.5.1 - lodash: 4.17.21 - minimatch: 3.1.2 + lodash: 4.18.1 + minimatch: 3.1.5 path-is-absolute: 1.0.1 private: 0.1.8 slash: 1.0.0 @@ -8429,7 +8641,7 @@ snapshots: babel-types: 6.26.0 detect-indent: 4.0.0 jsesc: 1.3.0 - lodash: 4.17.21 + lodash: 4.18.1 source-map: 0.5.7 trim-right: 1.0.1 @@ -8448,36 +8660,36 @@ snapshots: babel-import-util@3.0.1: {} - babel-loader@8.4.1(@babel/core@7.28.0)(webpack@4.47.0): + babel-loader@8.4.1(@babel/core@7.29.7)(webpack@4.47.0): dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.29.7 find-cache-dir: 3.3.2 loader-utils: 2.0.4 make-dir: 3.1.0 schema-utils: 2.7.1 webpack: 4.47.0 - babel-loader@8.4.1(@babel/core@7.28.0)(webpack@5.101.0): + babel-loader@8.4.1(@babel/core@7.29.7)(webpack@5.111.1(postcss@8.5.30)): dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.29.7 find-cache-dir: 3.3.2 loader-utils: 2.0.4 make-dir: 3.1.0 schema-utils: 2.7.1 - webpack: 5.101.0 + webpack: 5.111.1(postcss@8.5.30) babel-messages@6.23.0: dependencies: babel-runtime: 6.26.0 - babel-plugin-debug-macros@0.2.0(@babel/core@7.28.0): + babel-plugin-debug-macros@0.2.0(@babel/core@7.29.7): dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.29.7 semver: 5.7.2 - babel-plugin-debug-macros@0.3.4(@babel/core@7.28.0): + babel-plugin-debug-macros@0.3.4(@babel/core@7.29.7): dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.29.7 semver: 5.7.2 babel-plugin-ember-data-packages-polyfill@0.1.2: @@ -8495,8 +8707,8 @@ snapshots: babel-plugin-filter-imports@4.0.0: dependencies: - '@babel/types': 7.28.2 - lodash: 4.17.21 + '@babel/types': 7.29.8 + lodash: 4.18.1 babel-plugin-htmlbars-inline-precompile@5.3.1: dependencies: @@ -8522,27 +8734,27 @@ snapshots: reselect: 4.1.8 resolve: 1.22.10 - babel-plugin-polyfill-corejs2@0.4.14(@babel/core@7.28.0): + babel-plugin-polyfill-corejs2@0.4.14(@babel/core@7.29.7): dependencies: '@babel/compat-data': 7.28.0 - '@babel/core': 7.28.0 - '@babel/helper-define-polyfill-provider': 0.6.5(@babel/core@7.28.0) + '@babel/core': 7.29.7 + '@babel/helper-define-polyfill-provider': 0.6.5(@babel/core@7.29.7) semver: 6.3.1 transitivePeerDependencies: - supports-color - babel-plugin-polyfill-corejs3@0.13.0(@babel/core@7.28.0): + babel-plugin-polyfill-corejs3@0.13.0(@babel/core@7.29.7): dependencies: - '@babel/core': 7.28.0 - '@babel/helper-define-polyfill-provider': 0.6.5(@babel/core@7.28.0) + '@babel/core': 7.29.7 + '@babel/helper-define-polyfill-provider': 0.6.5(@babel/core@7.29.7) core-js-compat: 3.45.0 transitivePeerDependencies: - supports-color - babel-plugin-polyfill-regenerator@0.6.5(@babel/core@7.28.0): + babel-plugin-polyfill-regenerator@0.6.5(@babel/core@7.29.7): dependencies: - '@babel/core': 7.28.0 - '@babel/helper-define-polyfill-provider': 0.6.5(@babel/core@7.28.0) + '@babel/core': 7.29.7 + '@babel/helper-define-polyfill-provider': 0.6.5(@babel/core@7.29.7) transitivePeerDependencies: - supports-color @@ -8554,7 +8766,7 @@ snapshots: babel-runtime: 6.26.0 core-js: 2.6.12 home-or-tmp: 2.0.0 - lodash: 4.17.21 + lodash: 4.18.1 mkdirp: 0.5.6 source-map-support: 0.4.18 transitivePeerDependencies: @@ -8571,7 +8783,7 @@ snapshots: babel-traverse: 6.26.0 babel-types: 6.26.0 babylon: 6.18.0 - lodash: 4.17.21 + lodash: 4.18.1 transitivePeerDependencies: - supports-color @@ -8585,7 +8797,7 @@ snapshots: debug: 2.6.9 globals: 9.18.0 invariant: 2.2.4 - lodash: 4.17.21 + lodash: 4.18.1 transitivePeerDependencies: - supports-color @@ -8593,21 +8805,19 @@ snapshots: dependencies: babel-runtime: 6.26.0 esutils: 2.0.3 - lodash: 4.17.21 + lodash: 4.18.1 to-fast-properties: 1.0.3 babylon@6.18.0: {} backbone@1.6.1: dependencies: - underscore: 1.13.7 + underscore: 1.13.8 balanced-match@1.0.2: {} base64-js@1.5.1: {} - base64id@2.0.0: {} - base@0.11.2: dependencies: cache-base: 1.0.1 @@ -8618,6 +8828,8 @@ snapshots: mixin-deep: 1.3.2 pascalcase: 0.1.1 + baseline-browser-mapping@2.11.28: {} + basic-auth@2.0.1: dependencies: safe-buffer: 5.1.2 @@ -8653,22 +8865,22 @@ snapshots: bluebird@3.7.2: {} - bn.js@4.12.2: {} + bn.js@4.12.5: {} - bn.js@5.2.2: {} + bn.js@5.2.5: {} - body-parser@1.20.3: + body-parser@1.20.8: dependencies: bytes: 3.1.2 content-type: 1.0.5 debug: 2.6.9 depd: 2.0.0 destroy: 1.2.0 - http-errors: 2.0.0 + http-errors: 2.0.1 iconv-lite: 0.4.24 on-finished: 2.4.1 - qs: 6.13.0 - raw-body: 2.5.2 + qs: 6.16.0 + raw-body: 2.5.3 type-is: 1.6.18 unpipe: 1.0.0 transitivePeerDependencies: @@ -8692,12 +8904,12 @@ snapshots: bower-endpoint-parser@0.2.2: {} - brace-expansion@1.1.12: + brace-expansion@1.1.21: dependencies: balanced-match: 1.0.2 concat-map: 0.0.1 - brace-expansion@2.0.2: + brace-expansion@2.1.7: dependencies: balanced-match: 1.0.2 @@ -8731,7 +8943,7 @@ snapshots: broccoli-filter: 1.3.0 broccoli-persistent-filter: 1.4.6 json-stable-stringify: 1.3.0 - minimatch: 3.1.2 + minimatch: 3.1.5 rsvp: 3.6.2 transitivePeerDependencies: - supports-color @@ -8744,7 +8956,7 @@ snapshots: broccoli-babel-transpiler@7.8.1: dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.29.7 '@babel/polyfill': 7.12.1 broccoli-funnel: 2.0.2 broccoli-merge-trees: 3.0.2 @@ -8874,7 +9086,7 @@ snapshots: fast-ordered-set: 1.0.3 fs-tree-diff: 0.5.9 heimdalljs: 0.2.6 - minimatch: 3.1.2 + minimatch: 3.1.5 mkdirp: 0.5.6 path-posix: 1.0.0 rimraf: 2.7.1 @@ -8890,7 +9102,7 @@ snapshots: debug: 4.4.1 fs-tree-diff: 2.0.1 heimdalljs: 0.2.6 - minimatch: 3.1.2 + minimatch: 3.1.5 walk-sync: 2.2.0 transitivePeerDependencies: - supports-color @@ -8922,7 +9134,7 @@ snapshots: broccoli-middleware@2.1.1: dependencies: ansi-html: 0.0.7 - handlebars: 4.7.8 + handlebars: 4.7.10 has-ansi: 3.0.0 mime-types: 2.1.35 @@ -9057,7 +9269,7 @@ snapshots: debug: 4.4.1 ensure-posix-path: 1.1.1 fs-extra: 8.1.0 - minimatch: 3.1.2 + minimatch: 3.1.5 resolve: 1.22.10 rsvp: 4.8.5 symlink-or-copy: 1.3.1 @@ -9094,7 +9306,7 @@ snapshots: console-ui: 3.1.2 esm: 3.2.25 findup-sync: 4.0.0 - handlebars: 4.7.8 + handlebars: 4.7.10 heimdalljs: 0.2.6 heimdalljs-logger: 0.1.10 https: 1.0.0 @@ -9135,13 +9347,13 @@ snapshots: browserify-rsa@4.1.1: dependencies: - bn.js: 5.2.2 + bn.js: 5.2.5 randombytes: 2.1.0 safe-buffer: 5.2.1 browserify-sign@4.2.3: dependencies: - bn.js: 5.2.2 + bn.js: 5.2.5 browserify-rsa: 4.1.1 create-hash: 1.2.0 create-hmac: 1.1.7 @@ -9156,12 +9368,13 @@ snapshots: dependencies: pako: 1.0.11 - browserslist@4.25.1: + browserslist@4.29.3: dependencies: - caniuse-lite: 1.0.30001731 - electron-to-chromium: 1.5.198 - node-releases: 2.0.19 - update-browserslist-db: 1.1.3(browserslist@4.25.1) + baseline-browser-mapping: 2.11.28 + caniuse-lite: 1.0.30001816 + electron-to-chromium: 1.5.456 + node-releases: 2.0.58 + update-browserslist-db: 1.3.4(browserslist@4.29.3) bser@2.1.1: dependencies: @@ -9249,7 +9462,7 @@ snapshots: dependencies: clone-response: 1.0.3 get-stream: 5.2.0 - http-cache-semantics: 4.2.0 + http-cache-semantics: 4.3.0 keyv: 3.1.0 lowercase-keys: 2.0.0 normalize-url: 4.5.1 @@ -9282,7 +9495,7 @@ snapshots: dependencies: tmp: 0.0.28 - caniuse-lite@1.0.30001731: {} + caniuse-lite@1.0.30001816: {} capture-exit@2.0.0: dependencies: @@ -9489,11 +9702,12 @@ snapshots: dependencies: mime-db: 1.54.0 - compression@1.8.1: + compression@1.8.2: dependencies: bytes: 3.1.2 compressible: 2.0.18 debug: 2.6.9 + destroy: 1.2.0 negotiator: 0.6.4 on-headers: 1.1.0 safe-buffer: 5.2.1 @@ -9545,15 +9759,15 @@ snapshots: ora: 3.4.0 through2: 3.0.2 - consolidate@0.16.0(babel-core@6.26.3)(handlebars@4.7.8)(lodash@4.17.21)(mustache@4.2.0)(underscore@1.13.7): + consolidate@0.16.0(babel-core@6.26.3)(handlebars@4.7.10)(lodash@4.18.1)(mustache@4.2.0)(underscore@1.13.8): dependencies: bluebird: 3.7.2 optionalDependencies: babel-core: 6.26.3 - handlebars: 4.7.8 - lodash: 4.17.21 + handlebars: 4.7.10 + lodash: 4.18.1 mustache: 4.2.0 - underscore: 1.13.7 + underscore: 1.13.8 constants-browserify@1.0.0: {} @@ -9590,7 +9804,7 @@ snapshots: core-js-compat@3.45.0: dependencies: - browserslist: 4.25.1 + browserslist: 4.29.3 core-js@2.6.12: {} @@ -9607,16 +9821,9 @@ snapshots: create-ecdh@4.0.4: dependencies: - bn.js: 4.12.2 + bn.js: 4.12.5 elliptic: 6.6.1 - create-hash@1.1.3: - dependencies: - cipher-base: 1.0.6 - inherits: 2.0.4 - ripemd160: 2.0.1 - sha.js: 2.4.12 - create-hash@1.2.0: dependencies: cipher-base: 1.0.6 @@ -9658,31 +9865,31 @@ snapshots: diffie-hellman: 5.0.3 hash-base: 3.0.5 inherits: 2.0.4 - pbkdf2: 3.1.3 + pbkdf2: 3.1.7 public-encrypt: 4.0.3 randombytes: 2.1.0 randomfill: 1.0.4 crypto-random-string@2.0.0: {} - css-loader@5.2.7(webpack@5.101.0): + css-loader@5.2.7(webpack@5.111.1(postcss@8.5.30)): dependencies: - icss-utils: 5.1.0(postcss@8.5.6) + icss-utils: 5.1.0(postcss@8.5.30) loader-utils: 2.0.4 - postcss: 8.5.6 - postcss-modules-extract-imports: 3.1.0(postcss@8.5.6) - postcss-modules-local-by-default: 4.2.0(postcss@8.5.6) - postcss-modules-scope: 3.2.1(postcss@8.5.6) - postcss-modules-values: 4.0.0(postcss@8.5.6) + postcss: 8.5.30 + postcss-modules-extract-imports: 3.1.0(postcss@8.5.30) + postcss-modules-local-by-default: 4.2.0(postcss@8.5.30) + postcss-modules-scope: 3.2.1(postcss@8.5.30) + postcss-modules-values: 4.0.0(postcss@8.5.30) postcss-value-parser: 4.2.0 schema-utils: 3.3.0 semver: 7.7.2 - webpack: 5.101.0 + webpack: 5.111.1(postcss@8.5.30) css-tree@2.3.1: dependencies: mdn-data: 2.0.30 - source-map-js: 1.2.1 + source-map-js: 1.2.2 cssesc@3.0.0: {} @@ -9710,7 +9917,7 @@ snapshots: date-fns@2.30.0: dependencies: - '@babel/runtime': 7.28.2 + '@babel/runtime': 7.29.10 debug@2.6.9: dependencies: @@ -9720,15 +9927,11 @@ snapshots: dependencies: ms: 2.1.3 - debug@4.3.4: - dependencies: - ms: 2.1.2 - - debug@4.3.7: + debug@4.4.1: dependencies: ms: 2.1.3 - debug@4.4.1: + debug@4.4.3: dependencies: ms: 2.1.3 @@ -9796,11 +9999,11 @@ snapshots: detect-newline@3.1.0: {} - diff@5.2.0: {} + diff@5.2.2: {} diffie-hellman@5.0.3: dependencies: - bn.js: 4.12.2 + bn.js: 4.12.5 miller-rabin: 4.0.1 randombytes: 2.1.0 @@ -9849,11 +10052,11 @@ snapshots: ee-first@1.1.1: {} - electron-to-chromium@1.5.198: {} + electron-to-chromium@1.5.456: {} elliptic@6.6.1: dependencies: - bn.js: 4.12.2 + bn.js: 4.12.5 brorand: 1.1.0 hash.js: 1.1.7 hmac-drbg: 1.0.1 @@ -9863,13 +10066,13 @@ snapshots: ember-auto-import@1.12.2: dependencies: - '@babel/core': 7.28.0 - '@babel/preset-env': 7.28.0(@babel/core@7.28.0) + '@babel/core': 7.29.7 + '@babel/preset-env': 7.28.0(@babel/core@7.29.7) '@babel/traverse': 7.28.0 '@babel/types': 7.28.2 '@embroider/shared-internals': 1.8.3 babel-core: 6.26.3 - babel-loader: 8.4.1(@babel/core@7.28.0)(webpack@4.47.0) + babel-loader: 8.4.1(@babel/core@7.29.7)(webpack@4.47.0) babel-plugin-syntax-dynamic-import: 6.18.0 babylon: 6.18.0 broccoli-debug: 0.6.5 @@ -9881,9 +10084,9 @@ snapshots: enhanced-resolve: 4.5.0 fs-extra: 6.0.1 fs-tree-diff: 2.0.1 - handlebars: 4.7.8 + handlebars: 4.7.10 js-string-escape: 1.0.1 - lodash: 4.17.21 + lodash: 4.18.1 mkdirp: 0.5.6 resolve-package-path: 3.1.0 rimraf: 2.7.1 @@ -9897,17 +10100,18 @@ snapshots: - webpack-cli - webpack-command - ember-auto-import@2.10.0(webpack@5.101.0): + ember-auto-import@2.13.1(webpack@5.111.1(postcss@8.5.30)): dependencies: - '@babel/core': 7.28.0 - '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.28.0) - '@babel/plugin-proposal-decorators': 7.28.0(@babel/core@7.28.0) - '@babel/plugin-proposal-private-methods': 7.18.6(@babel/core@7.28.0) - '@babel/plugin-transform-class-static-block': 7.27.1(@babel/core@7.28.0) - '@babel/preset-env': 7.28.0(@babel/core@7.28.0) + '@babel/core': 7.29.7 + '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.29.7) + '@babel/plugin-proposal-decorators': 7.28.0(@babel/core@7.29.7) + '@babel/plugin-proposal-private-methods': 7.18.6(@babel/core@7.29.7) + '@babel/plugin-transform-class-static-block': 7.27.1(@babel/core@7.29.7) + '@babel/preset-env': 7.28.0(@babel/core@7.29.7) '@embroider/macros': 1.18.1 + '@embroider/reverse-exports': 0.2.0 '@embroider/shared-internals': 2.9.1 - babel-loader: 8.4.1(@babel/core@7.28.0)(webpack@5.101.0) + babel-loader: 8.4.1(@babel/core@7.29.7)(webpack@5.111.1(postcss@8.5.30)) babel-plugin-ember-modules-api-polyfill: 3.5.0 babel-plugin-ember-template-compilation: 2.4.1 babel-plugin-htmlbars-inline-precompile: 5.3.1 @@ -9917,22 +10121,22 @@ snapshots: broccoli-merge-trees: 4.2.0 broccoli-plugin: 4.0.7 broccoli-source: 3.0.1 - css-loader: 5.2.7(webpack@5.101.0) - debug: 4.4.1 + css-loader: 5.2.7(webpack@5.111.1(postcss@8.5.30)) + debug: 4.4.3 fs-extra: 10.1.0 fs-tree-diff: 2.0.1 - handlebars: 4.7.8 + handlebars: 4.7.10 is-subdir: 1.2.0 js-string-escape: 1.0.1 - lodash: 4.17.21 - mini-css-extract-plugin: 2.9.3(webpack@5.101.0) - minimatch: 3.1.2 + lodash: 4.18.1 + mini-css-extract-plugin: 2.9.3(webpack@5.111.1(postcss@8.5.30)) + minimatch: 3.1.5 parse5: 6.0.1 pkg-entry-points: 1.1.1 resolve: 1.22.10 resolve-package-path: 4.0.3 semver: 7.7.2 - style-loader: 2.0.0(webpack@5.101.0) + style-loader: 2.0.0(webpack@5.111.1(postcss@8.5.30)) typescript-memoize: 1.1.1 walk-sync: 3.0.0 transitivePeerDependencies: @@ -9944,20 +10148,20 @@ snapshots: ember-cli-babel@7.26.11: dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.29.7 '@babel/helper-compilation-targets': 7.27.2 - '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.28.0) - '@babel/plugin-proposal-decorators': 7.28.0(@babel/core@7.28.0) - '@babel/plugin-proposal-private-methods': 7.18.6(@babel/core@7.28.0) - '@babel/plugin-proposal-private-property-in-object': 7.21.11(@babel/core@7.28.0) - '@babel/plugin-transform-modules-amd': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-runtime': 7.28.0(@babel/core@7.28.0) - '@babel/plugin-transform-typescript': 7.28.0(@babel/core@7.28.0) + '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.29.7) + '@babel/plugin-proposal-decorators': 7.28.0(@babel/core@7.29.7) + '@babel/plugin-proposal-private-methods': 7.18.6(@babel/core@7.29.7) + '@babel/plugin-proposal-private-property-in-object': 7.21.11(@babel/core@7.29.7) + '@babel/plugin-transform-modules-amd': 7.27.1(@babel/core@7.29.7) + '@babel/plugin-transform-runtime': 7.28.0(@babel/core@7.29.7) + '@babel/plugin-transform-typescript': 7.28.0(@babel/core@7.29.7) '@babel/polyfill': 7.12.1 - '@babel/preset-env': 7.28.0(@babel/core@7.28.0) + '@babel/preset-env': 7.28.0(@babel/core@7.29.7) '@babel/runtime': 7.12.18 amd-name-resolver: 1.3.1 - babel-plugin-debug-macros: 0.3.4(@babel/core@7.28.0) + babel-plugin-debug-macros: 0.3.4(@babel/core@7.29.7) babel-plugin-ember-data-packages-polyfill: 0.1.2 babel-plugin-ember-modules-api-polyfill: 3.5.0 babel-plugin-module-resolver: 3.2.0 @@ -9977,10 +10181,10 @@ snapshots: transitivePeerDependencies: - supports-color - ember-cli-dependency-checker@3.3.3(ember-cli@4.8.1(babel-core@6.26.3)(encoding@0.1.13)(handlebars@4.7.8)(underscore@1.13.7)): + ember-cli-dependency-checker@3.3.3(ember-cli@4.8.1(babel-core@6.26.3)(encoding@0.1.13)(handlebars@4.7.10)(underscore@1.13.8)): dependencies: chalk: 2.4.2 - ember-cli: 4.8.1(babel-core@6.26.3)(encoding@0.1.13)(handlebars@4.7.8)(underscore@1.13.7) + ember-cli: 4.8.1(babel-core@6.26.3)(encoding@0.1.13)(handlebars@4.7.10)(underscore@1.13.8) find-yarn-workspace-root: 2.0.0 is-git-url: 1.0.0 resolve: 1.22.10 @@ -10081,10 +10285,10 @@ snapshots: transitivePeerDependencies: - supports-color - ember-cli-typescript@2.0.2(@babel/core@7.28.0): + ember-cli-typescript@2.0.2(@babel/core@7.29.7): dependencies: - '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.28.0) - '@babel/plugin-transform-typescript': 7.4.5(@babel/core@7.28.0) + '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.29.7) + '@babel/plugin-transform-typescript': 7.4.5(@babel/core@7.29.7) ansi-to-html: 0.6.15 debug: 4.4.1 ember-cli-babel-plugin-helpers: 1.1.1 @@ -10099,11 +10303,11 @@ snapshots: - '@babel/core' - supports-color - ember-cli-typescript@3.0.0(@babel/core@7.28.0): + ember-cli-typescript@3.0.0(@babel/core@7.29.7): dependencies: - '@babel/plugin-transform-typescript': 7.5.5(@babel/core@7.28.0) + '@babel/plugin-transform-typescript': 7.5.5(@babel/core@7.29.7) ansi-to-html: 0.6.15 - debug: 4.4.1 + debug: 4.4.3 ember-cli-babel-plugin-helpers: 1.1.1 execa: 2.1.0 fs-extra: 8.1.0 @@ -10137,10 +10341,10 @@ snapshots: transitivePeerDependencies: - supports-color - ember-cli@4.8.1(babel-core@6.26.3)(encoding@0.1.13)(handlebars@4.7.8)(underscore@1.13.7): + ember-cli@4.8.1(babel-core@6.26.3)(encoding@0.1.13)(handlebars@4.7.10)(underscore@1.13.8): dependencies: - '@babel/core': 7.28.0 - '@babel/plugin-transform-modules-amd': 7.27.1(@babel/core@7.28.0) + '@babel/core': 7.29.7 + '@babel/plugin-transform-modules-amd': 7.27.1(@babel/core@7.29.7) amd-name-resolver: 1.3.1 babel-plugin-module-resolver: 4.1.0 bower-config: 1.4.3 @@ -10165,12 +10369,12 @@ snapshots: chalk: 4.1.2 ci-info: 3.9.0 clean-base-url: 1.0.0 - compression: 1.8.1 + compression: 1.8.2 configstore: 5.0.1 console-ui: 3.1.2 core-object: 3.1.5 dag-map: 2.0.2 - diff: 5.2.0 + diff: 5.2.2 ember-cli-is-package-missing: 1.0.0 ember-cli-lodash-subset: 2.0.1 ember-cli-normalize-entity-name: 1.0.0 @@ -10180,7 +10384,7 @@ snapshots: ensure-posix-path: 1.1.1 execa: 5.1.1 exit: 0.1.2 - express: 4.21.2 + express: 4.22.3 filesize: 9.0.11 find-up: 5.0.0 find-yarn-workspace-root: 2.0.0 @@ -10198,14 +10402,14 @@ snapshots: inflection: 1.13.4 is-git-url: 1.0.0 is-language-code: 3.1.0 - isbinaryfile: 5.0.0 - js-yaml: 4.1.0 + isbinaryfile: 5.0.7 + js-yaml: 4.3.2 leek: 0.0.24 - lodash.template: 4.5.0 + lodash.template: 4.18.1 markdown-it: 13.0.2 markdown-it-terminal: 0.2.1 - minimatch: 5.1.6 - morgan: 1.10.1 + minimatch: 5.1.9 + morgan: 1.12.1 nopt: 3.0.6 npm-package-arg: 9.1.2 p-defer: 3.0.0 @@ -10223,7 +10427,7 @@ snapshots: sort-package-json: 1.57.0 symlink-or-copy: 1.3.1 temp: 0.9.4 - testem: 3.16.0(babel-core@6.26.3)(handlebars@4.7.8)(underscore@1.13.7) + testem: 3.16.0(babel-core@6.26.3)(handlebars@4.7.10)(underscore@1.13.8) tiny-lr: 2.0.0 tree-sync: 2.1.0 uuid: 8.3.2 @@ -10289,9 +10493,9 @@ snapshots: - walrus - whiskers - ember-compatibility-helpers@1.2.7(@babel/core@7.28.0): + ember-compatibility-helpers@1.2.7(@babel/core@7.29.7): dependencies: - babel-plugin-debug-macros: 0.2.0(@babel/core@7.28.0) + babel-plugin-debug-macros: 0.2.0(@babel/core@7.29.7) ember-cli-version-checker: 5.1.2 find-up: 5.0.0 fs-extra: 9.1.0 @@ -10300,21 +10504,21 @@ snapshots: - '@babel/core' - supports-color - ember-destroyable-polyfill@2.0.3(@babel/core@7.28.0): + ember-destroyable-polyfill@2.0.3(@babel/core@7.29.7): dependencies: ember-cli-babel: 7.26.11 ember-cli-version-checker: 5.1.2 - ember-compatibility-helpers: 1.2.7(@babel/core@7.28.0) + ember-compatibility-helpers: 1.2.7(@babel/core@7.29.7) transitivePeerDependencies: - '@babel/core' - supports-color ember-disable-prototype-extensions@1.1.3: {} - ember-load-initializers@2.1.2(@babel/core@7.28.0): + ember-load-initializers@2.1.2(@babel/core@7.29.7): dependencies: ember-cli-babel: 7.26.11 - ember-cli-typescript: 2.0.2(@babel/core@7.28.0) + ember-cli-typescript: 2.0.2(@babel/core@7.29.7) transitivePeerDependencies: - '@babel/core' - supports-color @@ -10334,9 +10538,9 @@ snapshots: transitivePeerDependencies: - supports-color - ember-qunit@5.1.5(@ember/test-helpers@2.9.6(@babel/core@7.28.0)(ember-source@4.8.6(@babel/core@7.28.0)(@glimmer/component@1.1.2(@babel/core@7.28.0))(webpack@5.101.0)))(qunit@2.24.1): + ember-qunit@5.1.5(@ember/test-helpers@2.9.6(@babel/core@7.29.7)(ember-source@4.8.6(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(webpack@5.111.1(postcss@8.5.30))))(qunit@2.24.1): dependencies: - '@ember/test-helpers': 2.9.6(@babel/core@7.28.0)(ember-source@4.8.6(@babel/core@7.28.0)(@glimmer/component@1.1.2(@babel/core@7.28.0))(webpack@5.101.0)) + '@ember/test-helpers': 2.9.6(@babel/core@7.29.7)(ember-source@4.8.6(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(webpack@5.111.1(postcss@8.5.30))) broccoli-funnel: 3.0.8 broccoli-merge-trees: 3.0.2 common-tags: 1.8.2 @@ -10352,9 +10556,9 @@ snapshots: - webpack-cli - webpack-command - ember-resolver@8.1.0(@babel/core@7.28.0): + ember-resolver@8.1.0(@babel/core@7.29.7): dependencies: - babel-plugin-debug-macros: 0.3.4(@babel/core@7.28.0) + babel-plugin-debug-macros: 0.3.4(@babel/core@7.29.7) broccoli-funnel: 3.0.8 broccoli-merge-trees: 4.2.0 ember-cli-babel: 7.26.11 @@ -10368,8 +10572,8 @@ snapshots: ember-router-generator@2.0.0: dependencies: - '@babel/parser': 7.28.0 - '@babel/traverse': 7.28.0 + '@babel/parser': 7.29.9 + '@babel/traverse': 7.29.10 recast: 0.18.10 transitivePeerDependencies: - supports-color @@ -10380,14 +10584,14 @@ snapshots: transitivePeerDependencies: - encoding - ember-source@4.8.6(@babel/core@7.28.0)(@glimmer/component@1.1.2(@babel/core@7.28.0))(webpack@5.101.0): + ember-source@4.8.6(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(webpack@5.111.1(postcss@8.5.30)): dependencies: - '@babel/helper-module-imports': 7.27.1 - '@babel/plugin-transform-block-scoping': 7.28.0(@babel/core@7.28.0) + '@babel/helper-module-imports': 7.29.7 + '@babel/plugin-transform-block-scoping': 7.28.0(@babel/core@7.29.7) '@ember/edition-utils': 1.2.0 - '@glimmer/component': 1.1.2(@babel/core@7.28.0) - '@glimmer/vm-babel-plugins': 0.84.2(@babel/core@7.28.0) - babel-plugin-debug-macros: 0.3.4(@babel/core@7.28.0) + '@glimmer/component': 1.1.2(@babel/core@7.29.7) + '@glimmer/vm-babel-plugins': 0.84.2(@babel/core@7.29.7) + babel-plugin-debug-macros: 0.3.4(@babel/core@7.29.7) babel-plugin-filter-imports: 4.0.0 broccoli-concat: 4.2.5 broccoli-debug: 0.6.5 @@ -10395,7 +10599,7 @@ snapshots: broccoli-funnel: 3.0.8 broccoli-merge-trees: 4.2.0 chalk: 4.1.2 - ember-auto-import: 2.10.0(webpack@5.101.0) + ember-auto-import: 2.13.1(webpack@5.111.1(postcss@8.5.30)) ember-cli-babel: 7.26.11 ember-cli-get-component-path-option: 1.0.0 ember-cli-is-package-missing: 1.0.0 @@ -10462,7 +10666,7 @@ snapshots: globby: 11.1.0 ora: 5.4.1 slash: 3.0.0 - tmp: 0.2.4 + tmp: 0.2.7 workerpool: 6.5.1 transitivePeerDependencies: - supports-color @@ -10470,7 +10674,7 @@ snapshots: ember-try-config@4.0.0(encoding@0.1.13): dependencies: ember-source-channel-url: 3.0.0(encoding@0.1.13) - lodash: 4.17.21 + lodash: 4.18.1 package-json: 6.5.0 remote-git-tags: 3.0.0 semver: 7.7.2 @@ -10514,17 +10718,17 @@ snapshots: engine.io-parser@5.2.3: {} - engine.io@6.6.4: + engine.io@6.6.11: dependencies: '@types/cors': 2.8.19 - '@types/node': 24.2.0 + '@types/node': 26.6.5 + '@types/ws': 8.18.2 accepts: 1.3.8 - base64id: 2.0.0 cookie: 0.7.2 cors: 2.8.5 - debug: 4.3.7 + debug: 4.4.3 engine.io-parser: 5.2.3 - ws: 8.17.1 + ws: 8.21.3 transitivePeerDependencies: - bufferutil - supports-color @@ -10536,10 +10740,10 @@ snapshots: memory-fs: 0.5.0 tapable: 1.1.3 - enhanced-resolve@5.18.3: + enhanced-resolve@5.26.0: dependencies: graceful-fs: 4.2.11 - tapable: 2.2.2 + tapable: 2.3.3 enquirer@2.4.1: dependencies: @@ -10631,7 +10835,7 @@ snapshots: es-errors@1.3.0: {} - es-module-lexer@1.7.0: {} + es-module-lexer@2.3.2: {} es-object-atoms@1.1.1: dependencies: @@ -10693,7 +10897,7 @@ snapshots: eslint-plugin-es: 3.0.1(eslint@7.32.0) eslint-utils: 2.1.0 ignore: 5.3.2 - minimatch: 3.1.2 + minimatch: 3.1.5 resolve: 1.22.10 semver: 6.3.1 @@ -10740,7 +10944,7 @@ snapshots: '@babel/code-frame': 7.12.11 '@eslint/eslintrc': 0.4.3 '@humanwhocodes/config-array': 0.5.0 - ajv: 6.12.6 + ajv: 6.15.0 chalk: 4.1.2 cross-spawn: 7.0.6 debug: 4.4.1 @@ -10762,11 +10966,11 @@ snapshots: import-fresh: 3.3.1 imurmurhash: 0.1.4 is-glob: 4.0.3 - js-yaml: 3.14.1 + js-yaml: 3.15.2 json-stable-stringify-without-jsonify: 1.0.1 levn: 0.4.1 lodash.merge: 4.6.2 - minimatch: 3.1.2 + minimatch: 3.1.5 natural-compare: 1.4.0 optionator: 0.9.4 progress: 2.0.3 @@ -10900,11 +11104,11 @@ snapshots: dependencies: homedir-polyfill: 1.0.3 - express@4.21.2: + express@4.22.3: dependencies: accepts: 1.3.8 array-flatten: 1.1.1 - body-parser: 1.20.3 + body-parser: 1.20.8 content-disposition: 0.5.4 content-type: 1.0.5 cookie: 0.7.1 @@ -10921,9 +11125,9 @@ snapshots: methods: 1.1.2 on-finished: 2.4.1 parseurl: 1.3.3 - path-to-regexp: 0.1.12 - proxy-addr: 2.0.7 - qs: 6.13.0 + path-to-regexp: 0.1.13 + proxy-addr: 2.0.8 + qs: 6.16.0 range-parser: 1.2.1 safe-buffer: 5.2.1 send: 0.19.0 @@ -11000,7 +11204,7 @@ snapshots: transitivePeerDependencies: - supports-color - fast-uri@3.0.6: {} + fast-uri@3.1.8: {} fastq@1.19.1: dependencies: @@ -11008,7 +11212,7 @@ snapshots: faye-websocket@0.11.4: dependencies: - websocket-driver: 0.7.4 + websocket-driver: 0.7.5 fb-watchman@2.0.2: dependencies: @@ -11131,7 +11335,7 @@ snapshots: is-type: 0.0.1 lodash.debounce: 3.1.1 lodash.flatten: 3.0.2 - minimatch: 3.1.2 + minimatch: 3.1.5 fixturify-project@1.10.0: dependencies: @@ -11163,18 +11367,18 @@ snapshots: flat-cache@3.2.0: dependencies: - flatted: 3.3.3 + flatted: 3.4.4 keyv: 4.5.4 rimraf: 3.0.2 - flatted@3.3.3: {} + flatted@3.4.4: {} flush-write-stream@1.1.1: dependencies: inherits: 2.0.4 readable-stream: 2.3.8 - follow-redirects@1.15.11: {} + follow-redirects@1.16.1: {} for-each@0.3.5: dependencies: @@ -11423,13 +11627,11 @@ snapshots: dependencies: is-glob: 4.0.3 - glob-to-regexp@0.4.1: {} - - glob@10.4.5: + glob@10.5.0: dependencies: foreground-child: 3.3.1 jackspeak: 3.4.3 - minimatch: 9.0.5 + minimatch: 9.0.9 minipass: 7.1.2 package-json-from-dist: 1.0.1 path-scurry: 1.11.1 @@ -11438,7 +11640,7 @@ snapshots: dependencies: inflight: 1.0.6 inherits: 2.0.4 - minimatch: 3.1.2 + minimatch: 3.1.5 once: 1.4.0 path-is-absolute: 1.0.1 @@ -11447,7 +11649,7 @@ snapshots: fs.realpath: 1.0.0 inflight: 1.0.6 inherits: 2.0.4 - minimatch: 3.1.2 + minimatch: 3.1.5 once: 1.4.0 path-is-absolute: 1.0.1 @@ -11534,7 +11736,7 @@ snapshots: growly@1.3.0: {} - handlebars@4.7.8: + handlebars@4.7.10: dependencies: minimist: 1.2.8 neo-async: 2.6.2 @@ -11592,14 +11794,17 @@ snapshots: is-number: 3.0.0 kind-of: 4.0.0 - hash-base@2.0.2: + hash-base@3.0.5: dependencies: inherits: 2.0.4 + safe-buffer: 5.2.1 - hash-base@3.0.5: + hash-base@3.1.2: dependencies: inherits: 2.0.4 + readable-stream: 2.3.8 safe-buffer: 5.2.1 + to-buffer: 1.2.2 hash-for-dep@1.5.1: dependencies: @@ -11675,7 +11880,7 @@ snapshots: dependencies: lru-cache: 10.4.3 - http-cache-semantics@4.2.0: {} + http-cache-semantics@4.3.0: {} http-errors@1.6.3: dependencies: @@ -11692,20 +11897,28 @@ snapshots: statuses: 2.0.1 toidentifier: 1.0.1 + http-errors@2.0.1: + dependencies: + depd: 2.0.0 + inherits: 2.0.4 + setprototypeof: 1.2.0 + statuses: 2.0.2 + toidentifier: 1.0.1 + http-parser-js@0.5.10: {} http-proxy-agent@4.0.1: dependencies: '@tootallnate/once': 1.1.2 agent-base: 6.0.2 - debug: 4.3.4 + debug: 4.4.3 transitivePeerDependencies: - supports-color http-proxy@1.18.1: dependencies: eventemitter3: 4.0.7 - follow-redirects: 1.15.11 + follow-redirects: 1.16.1 requires-port: 1.0.0 transitivePeerDependencies: - debug @@ -11715,7 +11928,7 @@ snapshots: https-proxy-agent@5.0.1: dependencies: agent-base: 6.0.2 - debug: 4.3.4 + debug: 4.4.3 transitivePeerDependencies: - supports-color @@ -11740,9 +11953,9 @@ snapshots: safer-buffer: 2.1.2 optional: true - icss-utils@5.1.0(postcss@8.5.6): + icss-utils@5.1.0(postcss@8.5.30): dependencies: - postcss: 8.5.6 + postcss: 8.5.30 ieee754@1.2.1: {} @@ -11802,7 +12015,7 @@ snapshots: cli-width: 2.2.1 external-editor: 3.1.0 figures: 2.0.0 - lodash: 4.17.21 + lodash: 4.18.1 mute-stream: 0.0.7 run-async: 2.4.1 rxjs: 6.6.7 @@ -11818,7 +12031,7 @@ snapshots: cli-width: 3.0.0 external-editor: 3.1.0 figures: 3.2.0 - lodash: 4.17.21 + lodash: 4.18.1 mute-stream: 0.0.8 run-async: 2.4.1 rxjs: 6.6.7 @@ -11959,7 +12172,7 @@ snapshots: is-language-code@3.1.0: dependencies: - '@babel/runtime': 7.28.2 + '@babel/runtime': 7.29.10 is-map@2.0.3: {} @@ -12059,7 +12272,7 @@ snapshots: isarray@2.0.5: {} - isbinaryfile@5.0.0: {} + isbinaryfile@5.0.7: {} isexe@2.0.0: {} @@ -12091,7 +12304,7 @@ snapshots: jest-worker@27.5.1: dependencies: - '@types/node': 24.2.0 + '@types/node': 26.6.5 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -12103,12 +12316,12 @@ snapshots: js-tokens@4.0.0: {} - js-yaml@3.14.1: + js-yaml@3.15.2: dependencies: argparse: 1.0.10 esprima: 4.0.1 - js-yaml@4.1.0: + js-yaml@4.3.2: dependencies: argparse: 2.0.1 @@ -12126,8 +12339,6 @@ snapshots: json-parse-better-errors@1.0.2: {} - json-parse-even-better-errors@2.3.1: {} - json-parse-even-better-errors@4.0.0: {} json-schema-traverse@0.4.1: {} @@ -12258,8 +12469,6 @@ snapshots: loader-runner@2.4.0: {} - loader-runner@4.3.0: {} - loader-utils@1.4.2: dependencies: big.js: 5.2.2 @@ -12361,7 +12570,7 @@ snapshots: lodash.restparam@3.6.1: {} - lodash.template@4.5.0: + lodash.template@4.18.1: dependencies: lodash._reinterpolate: 3.0.0 lodash.templatesettings: 4.2.0 @@ -12374,7 +12583,7 @@ snapshots: lodash.uniq@4.5.0: {} - lodash@4.17.21: {} + lodash@4.18.1: {} log-symbols@2.2.0: dependencies: @@ -12415,7 +12624,7 @@ snapshots: magic-string@0.30.17: dependencies: - '@jridgewell/sourcemap-codec': 1.5.4 + '@jridgewell/sourcemap-codec': 1.6.0 make-dir@2.1.0: dependencies: @@ -12430,7 +12639,7 @@ snapshots: dependencies: agentkeepalive: 4.6.0 cacache: 15.3.0 - http-cache-semantics: 4.2.0 + http-cache-semantics: 4.3.0 http-proxy-agent: 4.0.1 https-proxy-agent: 5.0.1 is-lambda: 1.0.1 @@ -12452,6 +12661,10 @@ snapshots: dependencies: tmpl: 1.0.5 + map-age-cleaner@0.1.3: + dependencies: + p-defer: 1.0.0 + map-cache@0.2.2: {} map-visit@1.0.0: @@ -12484,12 +12697,12 @@ snapshots: matcher-collection@1.1.2: dependencies: - minimatch: 3.1.2 + minimatch: 3.1.5 matcher-collection@2.0.1: dependencies: '@types/minimatch': 3.0.5 - minimatch: 3.1.2 + minimatch: 3.1.5 math-intrinsics@1.1.0: {} @@ -12505,6 +12718,11 @@ snapshots: media-typer@0.3.0: {} + mem@8.1.1: + dependencies: + map-age-cleaner: 0.1.3 + mimic-fn: 3.1.0 + memory-fs@0.4.1: dependencies: errno: 0.1.8 @@ -12557,11 +12775,11 @@ snapshots: micromatch@4.0.8: dependencies: braces: 3.0.3 - picomatch: 2.3.1 + picomatch: 2.3.2 miller-rabin@4.0.1: dependencies: - bn.js: 4.12.2 + bn.js: 4.12.5 brorand: 1.1.0 mime-db@1.52.0: {} @@ -12578,34 +12796,46 @@ snapshots: mimic-fn@2.1.0: {} + mimic-fn@3.1.0: {} + mimic-response@1.0.1: {} - mini-css-extract-plugin@2.9.3(webpack@5.101.0): + mini-css-extract-plugin@2.9.3(webpack@5.111.1(postcss@8.5.30)): dependencies: - schema-utils: 4.3.2 - tapable: 2.2.2 - webpack: 5.101.0 + schema-utils: 4.5.0 + tapable: 2.3.3 + webpack: 5.111.1(postcss@8.5.30) minimalistic-assert@1.0.1: {} minimalistic-crypto-utils@1.0.1: {} - minimatch@3.1.2: + minimatch@3.1.5: dependencies: - brace-expansion: 1.1.12 + brace-expansion: 1.1.21 - minimatch@5.1.6: + minimatch@5.1.9: dependencies: - brace-expansion: 2.0.2 + brace-expansion: 2.1.7 - minimatch@9.0.5: + minimatch@9.0.9: dependencies: - brace-expansion: 2.0.2 + brace-expansion: 2.1.7 minimist@0.2.4: {} minimist@1.2.8: {} + minimizer-webpack-plugin@5.13.0(postcss@8.5.30)(webpack@5.111.1(postcss@8.5.30)): + dependencies: + '@jridgewell/trace-mapping': 0.3.31 + jest-worker: 27.5.1 + schema-utils: 4.5.0 + terser: 5.51.2 + webpack: 5.111.1(postcss@8.5.30) + optionalDependencies: + postcss: 8.5.30 + minipass-collect@1.0.2: dependencies: minipass: 3.3.6 @@ -12676,12 +12906,12 @@ snapshots: mktemp@0.4.0: {} - morgan@1.10.1: + morgan@1.12.1: dependencies: basic-auth: 2.0.1 debug: 2.6.9 depd: 2.0.0 - on-finished: 2.3.0 + on-finished: 2.4.1 on-headers: 1.1.0 transitivePeerDependencies: - supports-color @@ -12699,8 +12929,6 @@ snapshots: ms@2.0.0: {} - ms@2.1.2: {} - ms@2.1.3: {} mustache@4.2.0: {} @@ -12718,7 +12946,7 @@ snapshots: nan@2.23.0: optional: true - nanoid@3.3.11: {} + nanoid@3.3.20: {} nanomatch@1.2.13: dependencies: @@ -12796,7 +13024,7 @@ snapshots: uuid: 8.3.2 which: 2.0.2 - node-releases@2.0.19: {} + node-releases@2.0.58: {} node-watch@0.7.3: {} @@ -12852,10 +13080,10 @@ snapshots: chalk: 2.4.2 cross-spawn: 6.0.6 memorystream: 0.3.1 - minimatch: 3.1.2 + minimatch: 3.1.5 pidtree: 0.3.1 read-pkg: 3.0.0 - shell-quote: 1.8.3 + shell-quote: 1.12.0 string.prototype.padend: 3.1.6 npm-run-path@2.0.2: @@ -12984,6 +13212,8 @@ snapshots: p-cancelable@1.1.0: {} + p-defer@1.0.0: {} + p-defer@3.0.0: {} p-finally@1.0.0: {} @@ -13072,7 +13302,7 @@ snapshots: browserify-aes: 1.2.0 evp_bytestokey: 1.0.3 hash-base: 3.0.5 - pbkdf2: 3.1.3 + pbkdf2: 3.1.7 safe-buffer: 5.2.1 parse-github-repo-url@1.4.1: {} @@ -13134,7 +13364,7 @@ snapshots: lru-cache: 10.4.3 minipass: 7.1.2 - path-to-regexp@0.1.12: {} + path-to-regexp@0.1.13: {} path-type@3.0.0: dependencies: @@ -13142,18 +13372,18 @@ snapshots: path-type@4.0.0: {} - pbkdf2@3.1.3: + pbkdf2@3.1.7: dependencies: - create-hash: 1.1.3 + create-hash: 1.2.0 create-hmac: 1.1.7 - ripemd160: 2.0.1 + ripemd160: 2.0.3 safe-buffer: 5.2.1 sha.js: 2.4.12 - to-buffer: 1.2.1 + to-buffer: 1.2.2 picocolors@1.1.1: {} - picomatch@2.3.1: {} + picomatch@2.3.2: {} pidtree@0.3.1: {} @@ -13196,39 +13426,39 @@ snapshots: possible-typed-array-names@1.1.0: {} - postcss-modules-extract-imports@3.1.0(postcss@8.5.6): + postcss-modules-extract-imports@3.1.0(postcss@8.5.30): dependencies: - postcss: 8.5.6 + postcss: 8.5.30 - postcss-modules-local-by-default@4.2.0(postcss@8.5.6): + postcss-modules-local-by-default@4.2.0(postcss@8.5.30): dependencies: - icss-utils: 5.1.0(postcss@8.5.6) - postcss: 8.5.6 - postcss-selector-parser: 7.1.0 + icss-utils: 5.1.0(postcss@8.5.30) + postcss: 8.5.30 + postcss-selector-parser: 7.1.6 postcss-value-parser: 4.2.0 - postcss-modules-scope@3.2.1(postcss@8.5.6): + postcss-modules-scope@3.2.1(postcss@8.5.30): dependencies: - postcss: 8.5.6 - postcss-selector-parser: 7.1.0 + postcss: 8.5.30 + postcss-selector-parser: 7.1.6 - postcss-modules-values@4.0.0(postcss@8.5.6): + postcss-modules-values@4.0.0(postcss@8.5.30): dependencies: - icss-utils: 5.1.0(postcss@8.5.6) - postcss: 8.5.6 + icss-utils: 5.1.0(postcss@8.5.30) + postcss: 8.5.30 - postcss-selector-parser@7.1.0: + postcss-selector-parser@7.1.6: dependencies: cssesc: 3.0.0 util-deprecate: 1.0.2 postcss-value-parser@4.2.0: {} - postcss@8.5.6: + postcss@8.5.30: dependencies: - nanoid: 3.3.11 + nanoid: 3.3.20 picocolors: 1.1.1 - source-map-js: 1.2.1 + source-map-js: 1.2.2 prelude-ls@1.2.1: {} @@ -13287,7 +13517,7 @@ snapshots: proto-list@1.2.4: {} - proxy-addr@2.0.7: + proxy-addr@2.0.8: dependencies: forwarded: 0.2.0 ipaddr.js: 1.9.1 @@ -13296,7 +13526,7 @@ snapshots: public-encrypt@4.0.3: dependencies: - bn.js: 4.12.2 + bn.js: 4.12.5 browserify-rsa: 4.1.1 create-hash: 1.2.0 parse-asn1: 5.1.7 @@ -13323,13 +13553,10 @@ snapshots: punycode@2.3.1: {} - qs@6.13.0: - dependencies: - side-channel: 1.1.0 - - qs@6.14.0: + qs@6.16.0: dependencies: - side-channel: 1.1.0 + es-define-property: 1.0.1 + side-channel: 1.1.1 querystring-es3@0.2.1: {} @@ -13372,10 +13599,10 @@ snapshots: bytes: 1.0.0 string_decoder: 0.10.31 - raw-body@2.5.2: + raw-body@2.5.3: dependencies: bytes: 3.1.2 - http-errors: 2.0.0 + http-errors: 2.0.1 iconv-lite: 0.4.24 unpipe: 1.0.0 @@ -13426,7 +13653,7 @@ snapshots: readdirp@3.6.0: dependencies: - picomatch: 2.3.1 + picomatch: 2.3.2 optional: true recast@0.18.10: @@ -13519,7 +13746,7 @@ snapshots: execa: 9.6.0 fs-extra: 11.3.1 github-changelog: 2.1.1 - js-yaml: 4.1.0 + js-yaml: 4.3.2 latest-version: 9.0.0 parse-github-repo-url: 1.4.1 semver: 7.7.2 @@ -13534,9 +13761,9 @@ snapshots: remove-types@1.0.0: dependencies: - '@babel/core': 7.28.0 - '@babel/plugin-syntax-decorators': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-typescript': 7.28.0(@babel/core@7.28.0) + '@babel/core': 7.29.7 + '@babel/plugin-syntax-decorators': 7.27.1(@babel/core@7.29.7) + '@babel/plugin-transform-typescript': 7.28.0(@babel/core@7.29.7) prettier: 2.8.8 transitivePeerDependencies: - supports-color @@ -13636,14 +13863,14 @@ snapshots: dependencies: glob: 7.2.3 - ripemd160@2.0.1: + ripemd160@2.0.2: dependencies: - hash-base: 2.0.2 + hash-base: 3.0.5 inherits: 2.0.4 - ripemd160@2.0.2: + ripemd160@2.0.3: dependencies: - hash-base: 3.0.5 + hash-base: 3.1.2 inherits: 2.0.4 rsvp@3.2.1: {} @@ -13727,28 +13954,28 @@ snapshots: schema-utils@1.0.0: dependencies: - ajv: 6.12.6 - ajv-errors: 1.0.1(ajv@6.12.6) - ajv-keywords: 3.5.2(ajv@6.12.6) + ajv: 6.15.0 + ajv-errors: 1.0.1(ajv@6.15.0) + ajv-keywords: 3.5.2(ajv@6.15.0) schema-utils@2.7.1: dependencies: '@types/json-schema': 7.0.15 - ajv: 6.12.6 - ajv-keywords: 3.5.2(ajv@6.12.6) + ajv: 6.15.0 + ajv-keywords: 3.5.2(ajv@6.15.0) schema-utils@3.3.0: dependencies: '@types/json-schema': 7.0.15 - ajv: 6.12.6 - ajv-keywords: 3.5.2(ajv@6.12.6) + ajv: 6.15.0 + ajv-keywords: 3.5.2(ajv@6.15.0) - schema-utils@4.3.2: + schema-utils@4.5.0: dependencies: '@types/json-schema': 7.0.15 - ajv: 8.17.1 - ajv-formats: 2.1.1(ajv@8.17.1) - ajv-keywords: 5.1.0(ajv@8.17.1) + ajv: 8.20.0 + ajv-formats: 3.0.1(ajv@8.20.0) + ajv-keywords: 5.1.0(ajv@8.20.0) semver@5.7.2: {} @@ -13778,10 +14005,6 @@ snapshots: dependencies: randombytes: 2.1.0 - serialize-javascript@6.0.2: - dependencies: - randombytes: 2.1.0 - serve-static@1.16.2: dependencies: encodeurl: 2.0.0 @@ -13846,7 +14069,7 @@ snapshots: shebang-regex@3.0.0: {} - shell-quote@1.8.3: {} + shell-quote@1.12.0: {} shellwords@0.1.1: {} @@ -13855,6 +14078,11 @@ snapshots: es-errors: 1.3.0 object-inspect: 1.13.4 + side-channel-list@1.0.1: + dependencies: + es-errors: 1.3.0 + object-inspect: 1.13.4 + side-channel-map@1.0.1: dependencies: call-bound: 1.0.4 @@ -13878,6 +14106,14 @@ snapshots: side-channel-map: 1.0.1 side-channel-weakmap: 1.0.2 + side-channel@1.1.1: + dependencies: + es-errors: 1.3.0 + object-inspect: 1.13.4 + side-channel-list: 1.0.1 + side-channel-map: 1.0.1 + side-channel-weakmap: 1.0.2 + signal-exit@3.0.7: {} signal-exit@4.1.0: {} @@ -13932,31 +14168,30 @@ snapshots: transitivePeerDependencies: - supports-color - socket.io-adapter@2.5.5: + socket.io-adapter@2.5.8: dependencies: - debug: 4.3.7 - ws: 8.17.1 + debug: 4.4.3 + ws: 8.21.3 transitivePeerDependencies: - bufferutil - supports-color - utf-8-validate - socket.io-parser@4.2.4: + socket.io-parser@4.2.7: dependencies: '@socket.io/component-emitter': 3.1.2 - debug: 4.3.7 + debug: 4.4.3 transitivePeerDependencies: - supports-color - socket.io@4.8.1: + socket.io@4.8.4: dependencies: accepts: 1.3.8 - base64id: 2.0.0 cors: 2.8.5 - debug: 4.3.7 - engine.io: 6.6.4 - socket.io-adapter: 2.5.5 - socket.io-parser: 4.2.4 + debug: 4.4.3 + engine.io: 6.6.11 + socket.io-adapter: 2.5.8 + socket.io-parser: 4.2.7 transitivePeerDependencies: - bufferutil - supports-color @@ -13965,7 +14200,7 @@ snapshots: socks-proxy-agent@6.2.1: dependencies: agent-base: 6.0.2 - debug: 4.4.1 + debug: 4.4.3 socks: 2.8.6 transitivePeerDependencies: - supports-color @@ -13988,7 +14223,7 @@ snapshots: source-list-map@2.0.1: {} - source-map-js@1.2.1: {} + source-map-js@1.2.2: {} source-map-resolve@0.5.3: dependencies: @@ -14070,6 +14305,8 @@ snapshots: statuses@2.0.1: {} + statuses@2.0.2: {} + stop-iteration-iterator@1.1.0: dependencies: es-errors: 1.3.0 @@ -14204,11 +14441,11 @@ snapshots: strip-json-comments@3.1.1: {} - style-loader@2.0.0(webpack@5.101.0): + style-loader@2.0.0(webpack@5.111.1(postcss@8.5.30)): dependencies: loader-utils: 2.0.4 schema-utils: 3.3.0 - webpack: 5.101.0 + webpack: 5.111.1(postcss@8.5.30) styled_string@0.0.1: {} @@ -14256,7 +14493,7 @@ snapshots: table@6.9.0: dependencies: - ajv: 8.17.1 + ajv: 8.20.0 lodash.truncate: 4.4.2 slice-ansi: 4.0.0 string-width: 4.2.3 @@ -14265,12 +14502,12 @@ snapshots: tap-parser@7.0.0: dependencies: events-to-array: 1.1.2 - js-yaml: 3.14.1 + js-yaml: 3.15.2 minipass: 2.9.0 tapable@1.1.3: {} - tapable@2.2.2: {} + tapable@2.3.3: {} tar@6.2.1: dependencies: @@ -14299,18 +14536,9 @@ snapshots: webpack-sources: 1.4.3 worker-farm: 1.7.0 - terser-webpack-plugin@5.3.14(webpack@5.101.0): - dependencies: - '@jridgewell/trace-mapping': 0.3.29 - jest-worker: 27.5.1 - schema-utils: 4.3.2 - serialize-javascript: 6.0.2 - terser: 5.43.1 - webpack: 5.101.0 - terser@4.8.1: dependencies: - acorn: 8.15.0 + acorn: 8.19.0 commander: 2.20.3 source-map: 0.6.1 source-map-support: 0.5.21 @@ -14322,29 +14550,36 @@ snapshots: commander: 2.20.3 source-map-support: 0.5.21 - testem@3.16.0(babel-core@6.26.3)(handlebars@4.7.8)(underscore@1.13.7): + terser@5.51.2: dependencies: - '@xmldom/xmldom': 0.8.10 + '@jridgewell/source-map': 0.3.11 + acorn: 8.19.0 + commander: 2.20.3 + source-map-support: 0.5.21 + + testem@3.16.0(babel-core@6.26.3)(handlebars@4.7.10)(underscore@1.13.8): + dependencies: + '@xmldom/xmldom': 0.8.15 backbone: 1.6.1 bluebird: 3.7.2 charm: 1.0.2 commander: 2.20.3 - compression: 1.8.1 - consolidate: 0.16.0(babel-core@6.26.3)(handlebars@4.7.8)(lodash@4.17.21)(mustache@4.2.0)(underscore@1.13.7) + compression: 1.8.2 + consolidate: 0.16.0(babel-core@6.26.3)(handlebars@4.7.10)(lodash@4.18.1)(mustache@4.2.0)(underscore@1.13.8) execa: 1.0.0 - express: 4.21.2 + express: 4.22.3 fireworm: 0.7.2 glob: 7.2.3 http-proxy: 1.18.1 - js-yaml: 3.14.1 - lodash: 4.17.21 + js-yaml: 3.15.2 + lodash: 4.18.1 mkdirp: 3.0.1 mustache: 4.2.0 node-notifier: 10.0.1 npmlog: 6.0.2 printf: 0.6.1 rimraf: 3.0.2 - socket.io: 4.8.1 + socket.io: 4.8.4 spawn-args: 0.2.0 styled_string: 0.0.1 tap-parser: 7.0.0 @@ -14446,7 +14681,7 @@ snapshots: faye-websocket: 0.11.4 livereload-js: 3.4.1 object-assign: 4.1.1 - qs: 6.14.0 + qs: 6.16.0 transitivePeerDependencies: - supports-color @@ -14462,7 +14697,7 @@ snapshots: dependencies: rimraf: 2.7.1 - tmp@0.2.4: {} + tmp@0.2.7: {} tmpl@1.0.5: {} @@ -14474,6 +14709,12 @@ snapshots: safe-buffer: 5.2.1 typed-array-buffer: 1.0.3 + to-buffer@1.2.2: + dependencies: + isarray: 2.0.5 + safe-buffer: 5.2.1 + typed-array-buffer: 1.0.3 + to-fast-properties@1.0.3: {} to-object-path@0.3.0: @@ -14605,9 +14846,9 @@ snapshots: sprintf-js: 1.1.3 util-deprecate: 1.0.2 - underscore@1.13.7: {} + underscore@1.13.8: {} - undici-types@7.10.0: {} + undici-types@8.9.0: {} unicode-canonical-property-names-ecmascript@2.0.1: {} @@ -14663,9 +14904,9 @@ snapshots: upath@2.0.1: {} - update-browserslist-db@1.1.3(browserslist@4.25.1): + update-browserslist-db@1.3.4(browserslist@4.29.3): dependencies: - browserslist: 4.25.1 + browserslist: 4.29.3 escalade: 3.2.0 picocolors: 1.1.1 @@ -14682,7 +14923,7 @@ snapshots: url@0.11.4: dependencies: punycode: 1.4.1 - qs: 6.14.0 + qs: 6.16.0 use@3.1.1: {} @@ -14745,14 +14986,14 @@ snapshots: '@types/minimatch': 3.0.5 ensure-posix-path: 1.1.1 matcher-collection: 2.0.1 - minimatch: 3.1.2 + minimatch: 3.1.5 walk-sync@3.0.0: dependencies: '@types/minimatch': 3.0.5 ensure-posix-path: 1.1.1 matcher-collection: 2.0.1 - minimatch: 3.1.2 + minimatch: 3.1.5 walker@1.0.8: dependencies: @@ -14783,9 +15024,8 @@ snapshots: transitivePeerDependencies: - supports-color - watchpack@2.4.4: + watchpack@2.6.1: dependencies: - glob-to-regexp: 0.4.1 graceful-fs: 4.2.11 wcwidth@1.0.1: @@ -14799,7 +15039,7 @@ snapshots: source-list-map: 2.0.1 source-map: 0.6.1 - webpack-sources@3.3.3: {} + webpack-sources@3.6.0: {} webpack@4.47.0: dependencies: @@ -14808,8 +15048,8 @@ snapshots: '@webassemblyjs/wasm-edit': 1.9.0 '@webassemblyjs/wasm-parser': 1.9.0 acorn: 6.4.2 - ajv: 6.12.6 - ajv-keywords: 3.5.2(ajv@6.12.6) + ajv: 6.15.0 + ajv-keywords: 3.5.2(ajv@6.15.0) chrome-trace-event: 1.0.4 enhanced-resolve: 4.5.0 eslint-scope: 4.0.3 @@ -14829,39 +15069,44 @@ snapshots: transitivePeerDependencies: - supports-color - webpack@5.101.0: + webpack@5.111.1(postcss@8.5.30): dependencies: - '@types/eslint-scope': 3.7.7 '@types/estree': 1.0.8 '@types/json-schema': 7.0.15 '@webassemblyjs/ast': 1.14.1 '@webassemblyjs/wasm-edit': 1.14.1 '@webassemblyjs/wasm-parser': 1.14.1 - acorn: 8.15.0 - acorn-import-phases: 1.0.4(acorn@8.15.0) - browserslist: 4.25.1 + browserslist: 4.29.3 chrome-trace-event: 1.0.4 - enhanced-resolve: 5.18.3 - es-module-lexer: 1.7.0 - eslint-scope: 5.1.1 + enhanced-resolve: 5.26.0 + es-module-lexer: 2.3.2 events: 3.3.0 - glob-to-regexp: 0.4.1 graceful-fs: 4.2.11 - json-parse-even-better-errors: 2.3.1 - loader-runner: 4.3.0 - mime-types: 2.1.35 - neo-async: 2.6.2 - schema-utils: 4.3.2 - tapable: 2.2.2 - terser-webpack-plugin: 5.3.14(webpack@5.101.0) - watchpack: 2.4.4 - webpack-sources: 3.3.3 - transitivePeerDependencies: + mime-db: 1.54.0 + minimizer-webpack-plugin: 5.13.0(postcss@8.5.30)(webpack@5.111.1(postcss@8.5.30)) + schema-utils: 4.5.0 + tapable: 2.3.3 + watchpack: 2.6.1 + webpack-sources: 3.6.0 + transitivePeerDependencies: + - '@minify-html/node' + - '@napi-rs/image' - '@swc/core' + - '@swc/css' + - '@swc/html' + - clean-css + - cssnano + - csso - esbuild + - html-minifier-terser + - imagemin + - lightningcss + - postcss + - sharp + - svgo - uglify-js - websocket-driver@0.7.4: + websocket-driver@0.7.5: dependencies: http-parser-js: 0.5.10 safe-buffer: 5.2.1 @@ -14943,7 +15188,7 @@ snapshots: workerpool@3.1.2: dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.29.7 object-assign: 4.1.1 rsvp: 4.8.5 transitivePeerDependencies: @@ -14972,7 +15217,7 @@ snapshots: signal-exit: 3.0.7 typedarray-to-buffer: 3.1.5 - ws@8.17.1: {} + ws@8.21.3: {} xdg-basedir@4.0.0: {} From 5614ac7b00c16a104f2e95c8ff3d226a95b030d0 Mon Sep 17 00:00:00 2001 From: Gaurav Munjal Date: Wed, 14 Oct 2026 14:39:37 -0400 Subject: [PATCH 05/12] fix(ci): do not test against latest ember (v7) --- .github/workflows/ci.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6bc7df98..06f614ed 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -70,9 +70,9 @@ jobs: - ember-lts-5.4 - ember-lts-5.8 - ember-lts-5.12 - - ember-release - - ember-beta - - ember-canary + #- ember-release + #- ember-beta + #- ember-canary - ember-default-with-jquery - ember-classic - embroider-safe From 08fd322c4271d2647a64676536c4ba99aee15e51 Mon Sep 17 00:00:00 2001 From: Gaurav Munjal Date: Wed, 14 Oct 2026 15:42:44 -0400 Subject: [PATCH 06/12] fix(security): only accept torii postMessages from the opened popup The postMessage handoff accepted an OAuth result from any window and any origin. Any page loaded in the popup has a handle to the opener and can read the popup's window.name (the request key), so it could inject a token or code. - ui-service-mixin: ignore messages unless they come from our own origin and from the window we opened (new remoteWindow() hook; the iframe service returns its contentWindow). The window is remembered at open time because close() clears service.remote before late results arrive. - Parse result messages defensively so unrelated postMessages from other scripts no longer throw. - redirect.html: check the origin of the key reply, parse defensively, and declare `url` (it was an implicit global). - Lint inline scripts in public HTML with eslint-plugin-html. - Tests: unit tests for origin/source/malformed/late messages, and real-popup and iframe handoff tests (Chrome runs with --disable-popup-blocking). Co-Authored-By: Claude Opus 5.5 --- .eslintrc.js | 5 + addon/mixins/ui-service-mixin.js | 75 ++++++-- addon/services/iframe.js | 4 + package.json | 1 + pnpm-lock.yaml | 57 +++++++ public/redirect.html | 33 ++-- testem.js | 2 + .../public/torii-test/post-to-parent.html | 15 ++ tests/integration/popup-handoff-test.js | 116 +++++++++++++ tests/unit/mixins/ui-service-mixin-test.js | 161 +++++++++++++++++- 10 files changed, 436 insertions(+), 33 deletions(-) create mode 100644 tests/dummy/public/torii-test/post-to-parent.html create mode 100644 tests/integration/popup-handoff-test.js diff --git a/.eslintrc.js b/.eslintrc.js index 52bfb24e..67a87431 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -51,5 +51,10 @@ module.exports = { files: ['tests/**/*-test.{js,ts}'], extends: ['plugin:qunit/recommended'], }, + { + // inline scripts in static pages, such as public/redirect.html + files: ['public/**/*.html', 'tests/dummy/public/**/*.html'], + plugins: ['html'], + }, ], }; diff --git a/addon/mixins/ui-service-mixin.js b/addon/mixins/ui-service-mixin.js index 604dd12c..3b9b653f 100644 --- a/addon/mixins/ui-service-mixin.js +++ b/addon/mixins/ui-service-mixin.js @@ -17,6 +17,28 @@ function parseMessage(url, keys) { return data; } +// Parses a result message posted by redirect.html, which has the form +// '{"torii-popup:":""}'. Returns null for anything else, +// since other scripts on the page may also use postMessage. +function parseResultMessage(data) { + if (typeof data !== 'string') { + return null; + } + try { + const msg = JSON.parse(data); + if (!msg || typeof msg !== 'object' || Array.isArray(msg)) { + return null; + } + const keys = Object.keys(msg); + if (keys.length !== 1 || typeof msg[keys[0]] !== 'string') { + return null; + } + return { key: decodeURIComponent(keys[0]), url: msg[keys[0]] }; + } catch { + return null; + } +} + var ServicesMixin = Mixin.create({ init() { this._super(...arguments); @@ -32,13 +54,29 @@ var ServicesMixin = Mixin.create({ // // resolves with data.code, as from http://app.com?code=13124 // }); // - // Services that use this mixin should implement openRemote + // Services that use this mixin should implement openRemote, closeRemote + // and pollRemote, and override remoteWindow if this.remote is not the + // window that will post the result. // open(url, keys, options) { let service = this; let lastRemote = this.remote; let storageToriiEventHandler; let messageToriiEventHandler; + let trustedWindow; + + // Only messages from the window we opened, on our own origin, are + // trusted. The window is remembered because close() clears + // service.remote, possibly before the result message is handled. + function isFromRemote(messageEvent) { + if (messageEvent.origin !== window.location.origin) { + return false; + } + if (!trustedWindow) { + trustedWindow = service.remoteWindow(); + } + return !!messageEvent.source && messageEvent.source === trustedWindow; + } return new EmberPromise(function (resolve, reject) { if (lastRemote) { @@ -60,24 +98,27 @@ var ServicesMixin = Mixin.create({ // Using postMessage as an alternative to localStorage/storageEvent // for case of web site embedded in iframe messageToriiEventHandler = function (messageEvent) { + if (!isFromRemote(messageEvent)) { + return; + } if (messageEvent.data === 'getPendingRequestKey') { messageEvent.source.postMessage( JSON.stringify({ pendingRequestKey: service.pendingRequestKey }), window.location.origin ); - } else { - const msg = JSON.parse(messageEvent.data); - const key = Object.keys(msg)[0]; - var remoteIdFromEvent = PopupIdSerializer.deserialize( - decodeURIComponent(key) - ); - if (remoteId === remoteIdFromEvent) { - var data = parseMessage(msg[key], keys); - localStorage.removeItem(key); - run(function () { - resolve(data); - }); - } + return; + } + const result = parseResultMessage(messageEvent.data); + if (!result) { + return; + } + var remoteIdFromEvent = PopupIdSerializer.deserialize(result.key); + if (remoteId === remoteIdFromEvent) { + var data = parseMessage(result.url, keys); + localStorage.removeItem(result.key); + run(function () { + resolve(data); + }); } }; window.addEventListener('message', messageToriiEventHandler); @@ -88,6 +129,7 @@ var ServicesMixin = Mixin.create({ localStorage.removeItem(WARNING_KEY); service.openRemote(url, pendingRequestKey, options); + trustedWindow = service.remoteWindow(); service.schedulePolling(); var onbeforeunload = window.onbeforeunload; @@ -148,6 +190,11 @@ var ServicesMixin = Mixin.create({ }); }, + // The window expected to post the result message back to this one. + remoteWindow() { + return this.remote; + }, + close() { if (this.remote) { this.closeRemote(); diff --git a/addon/services/iframe.js b/addon/services/iframe.js index ec526001..ab53d94a 100644 --- a/addon/services/iframe.js +++ b/addon/services/iframe.js @@ -16,6 +16,10 @@ var Iframe = EmberObject.extend(Evented, UiServiceMixin, { this.remote.remove(); }, + remoteWindow() { + return this.remote && this.remote.contentWindow; + }, + pollRemote() { if (document.querySelector('#torii-iframe') === null) { this.trigger('didClose'); diff --git a/package.json b/package.json index 601c50d0..58af1d9b 100644 --- a/package.json +++ b/package.json @@ -80,6 +80,7 @@ "eslint": "^7.32.0", "eslint-config-prettier": "^8.5.0", "eslint-plugin-ember": "^11.1.0", + "eslint-plugin-html": "^7.1.0", "eslint-plugin-node": "^11.1.0", "eslint-plugin-prettier": "^4.2.1", "eslint-plugin-qunit": "^7.3.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d686a6c8..36ae4274 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -99,6 +99,9 @@ importers: eslint-plugin-ember: specifier: ^11.1.0 version: 11.12.0(eslint@7.32.0) + eslint-plugin-html: + specifier: ^7.1.0 + version: 7.1.0 eslint-plugin-node: specifier: ^11.1.0 version: 11.1.0(eslint@7.32.0) @@ -2668,10 +2671,23 @@ packages: resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} engines: {node: '>=6.0.0'} + dom-serializer@2.0.0: + resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} + domain-browser@1.2.0: resolution: {integrity: sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==} engines: {node: '>=0.4', npm: '>=1.2'} + domelementtype@2.3.0: + resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} + + domhandler@5.0.3: + resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} + engines: {node: '>= 4'} + + domutils@3.2.2: + resolution: {integrity: sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==} + dot-case@3.0.4: resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==} @@ -2937,6 +2953,10 @@ packages: resolution: {integrity: sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==} engines: {node: '>=0.12'} + entities@4.5.0: + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} + engines: {node: '>=0.12'} + err-code@2.0.3: resolution: {integrity: sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==} @@ -3014,6 +3034,9 @@ packages: peerDependencies: eslint: '>=4.19.1' + eslint-plugin-html@7.1.0: + resolution: {integrity: sha512-fNLRraV/e6j8e3XYOC9xgND4j+U7b1Rq+OygMlLcMg+wI/IpVbF+ubQa3R78EjKB9njT6TQOlcK5rFKBVVtdfg==} + eslint-plugin-node@11.1.0: resolution: {integrity: sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==} engines: {node: '>=8.10.0'} @@ -3716,6 +3739,9 @@ packages: resolution: {integrity: sha512-Rw/B2DNQaPBICNXEm8balFz9a6WpZrkCGpcWFpy7nCj+NyhSdqXipmfvtmWt9xGfp0wZnBxB+iVpLmQMYt47Tw==} engines: {node: ^18.17.0 || >=20.5.0} + htmlparser2@8.0.2: + resolution: {integrity: sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==} + http-cache-semantics@4.3.0: resolution: {integrity: sha512-M5t5LlJpS1UHMjvwRQVdFHvPISGeLAxNcrWuJkeGh0KxsqCHZ1O3NXZU/8x7cD0BDcGW8kapxMKTvwlqrNkHkA==} @@ -10015,8 +10041,26 @@ snapshots: dependencies: esutils: 2.0.3 + dom-serializer@2.0.0: + dependencies: + domelementtype: 2.3.0 + domhandler: 5.0.3 + entities: 4.5.0 + domain-browser@1.2.0: {} + domelementtype@2.3.0: {} + + domhandler@5.0.3: + dependencies: + domelementtype: 2.3.0 + + domutils@3.2.2: + dependencies: + dom-serializer: 2.0.0 + domelementtype: 2.3.0 + domhandler: 5.0.3 + dot-case@3.0.4: dependencies: no-case: 3.0.4 @@ -10758,6 +10802,8 @@ snapshots: entities@3.0.1: {} + entities@4.5.0: {} + err-code@2.0.3: {} errlop@2.2.0: {} @@ -10891,6 +10937,10 @@ snapshots: eslint-utils: 2.1.0 regexpp: 3.2.0 + eslint-plugin-html@7.1.0: + dependencies: + htmlparser2: 8.0.2 + eslint-plugin-node@11.1.0(eslint@7.32.0): dependencies: eslint: 7.32.0 @@ -11880,6 +11930,13 @@ snapshots: dependencies: lru-cache: 10.4.3 + htmlparser2@8.0.2: + dependencies: + domelementtype: 2.3.0 + domhandler: 5.0.3 + domutils: 3.2.2 + entities: 4.5.0 + http-cache-semantics@4.3.0: {} http-errors@1.6.3: diff --git a/public/redirect.html b/public/redirect.html index cda41a69..4aae2f1d 100644 --- a/public/redirect.html +++ b/public/redirect.html @@ -12,7 +12,9 @@ if (opener && opener.parent && opener.parent.origin === origin) { opener = opener.parent; } - } catch {} + } catch { + // opener.parent is cross-origin; keep posting to opener + } if (pendingRequestKey) { window.localStorage.removeItem(CURRENT_REQUEST_KEY); @@ -20,27 +22,30 @@ window.localStorage.setItem(pendingRequestKey, url); const obj = {}; obj[pendingRequestKey] = url; - opener?.postMessage( - JSON.stringify(obj), - origin - ); + opener?.postMessage(JSON.stringify(obj), origin); window.close(); } else { // localStorage not shared with opener due to browser restrictions opener?.postMessage('getPendingRequestKey', origin); - window.addEventListener('message', function(messageEvent) { - if (messageEvent.source === opener) { - const msg = JSON.parse(messageEvent.data); - if (msg.pendingRequestKey) { + window.addEventListener('message', function (messageEvent) { + if (messageEvent.source === opener && messageEvent.origin === origin) { + let msg; + try { + msg = JSON.parse(messageEvent.data); + } catch { + return; + } + if ( + msg && + typeof msg.pendingRequestKey === 'string' && + msg.pendingRequestKey.indexOf('torii-popup:') === 0 + ) { pendingRequestKey = msg.pendingRequestKey; - url = window.location.toString(); + const url = window.location.toString(); const obj = {}; obj[pendingRequestKey] = url; - opener.postMessage( - JSON.stringify(obj), - origin - ); + opener.postMessage(JSON.stringify(obj), origin); window.close(); } diff --git a/testem.js b/testem.js index ed2f3712..a2d0ab88 100644 --- a/testem.js +++ b/testem.js @@ -17,6 +17,8 @@ module.exports = { '--mute-audio', '--remote-debugging-port=0', '--window-size=1440,900', + // tests/integration/popup-handoff-test.js opens real popups + '--disable-popup-blocking', ].filter(Boolean), }, }, diff --git a/tests/dummy/public/torii-test/post-to-parent.html b/tests/dummy/public/torii-test/post-to-parent.html new file mode 100644 index 00000000..ca14448f --- /dev/null +++ b/tests/dummy/public/torii-test/post-to-parent.html @@ -0,0 +1,15 @@ + + + + + Torii test: post result to parent + + + diff --git a/tests/integration/popup-handoff-test.js b/tests/integration/popup-handoff-test.js new file mode 100644 index 00000000..8c2533a0 --- /dev/null +++ b/tests/integration/popup-handoff-test.js @@ -0,0 +1,116 @@ +/* eslint-disable ember/no-mixins */ +import { module, test } from 'qunit'; +import PopupService from 'torii/services/popup'; +import IframeService from 'torii/services/iframe'; +import { CURRENT_REQUEST_KEY } from 'torii/mixins/ui-service-mixin'; + +// These tests open real windows, so the browser itself sets the origin and +// source of every message. Chrome must run with --disable-popup-blocking +// (see testem.js). +module('Integration | popup handoff', function (hooks) { + const origin = window.location.origin; + const redirectUrl = `${origin}/torii/redirect.html?code=abc`; + let service; + let cleanup; + + hooks.beforeEach(function () { + cleanup = []; + localStorage.removeItem(CURRENT_REQUEST_KEY); + + // The popup service never closes popups itself, so close any still + // loading to keep them from posting into the next test. + const originalOpen = window.open; + const opened = []; + window.open = function () { + const popup = originalOpen.apply(window, arguments); + opened.push(popup); + return popup; + }; + cleanup.push(() => { + window.open = originalOpen; + opened.forEach((popup) => popup && popup.close()); + }); + }); + + hooks.afterEach(function () { + cleanup.forEach((fn) => fn()); + if (service) { + service.close(); + service.destroy(); + service = null; + } + localStorage.removeItem(CURRENT_REQUEST_KEY); + }); + + function appendFrame(attrs) { + const frame = document.createElement('iframe'); + Object.assign(frame, attrs); + document.body.appendChild(frame); + cleanup.push(() => frame.remove()); + return frame; + } + + // A same-origin window that is not the popup, able to post messages with + // itself as the source. + async function buildForger() { + const frame = appendFrame({ + srcdoc: ``, + }); + await new Promise((resolve) => frame.addEventListener('load', resolve)); + return frame.contentWindow; + } + + test('popup: resolves through the localStorage handoff', async function (assert) { + service = PopupService.create(); + + const result = await service.open(redirectUrl, ['code']); + + assert.strictEqual(result.code, 'abc'); + }); + + test('popup: resolves through the postMessage handoff', async function (assert) { + service = PopupService.create(); + + const promise = service.open(redirectUrl, ['code']); + // The popup has not loaded yet. Without the key in localStorage, + // redirect.html has to ask this window for it over postMessage. + localStorage.removeItem(CURRENT_REQUEST_KEY); + + const result = await promise; + assert.strictEqual(result.code, 'abc'); + }); + + test('popup: ignores a forged result from another same-origin window', async function (assert) { + const forger = await buildForger(); + service = PopupService.create(); + + const promise = service.open(redirectUrl, ['code']); + // The attacker knows the key; it is also the popup's window.name. + const key = localStorage.getItem(CURRENT_REQUEST_KEY); + forger.forge(key, `${origin}/torii/redirect.html?code=evil`); + + const result = await promise; + assert.strictEqual(result.code, 'abc', 'uses the real popup result'); + }); + + test('iframe: resolves through the postMessage handoff', async function (assert) { + const placeholder = document.createElement('div'); + placeholder.className = 'torii-iframe-placeholder'; + document.body.appendChild(placeholder); + cleanup.push(() => placeholder.remove()); + service = IframeService.create(); + + const result = await service.open( + `${origin}/torii-test/post-to-parent.html?code=xyz`, + ['code'] + ); + + assert.strictEqual(result.code, 'xyz'); + }); +}); diff --git a/tests/unit/mixins/ui-service-mixin-test.js b/tests/unit/mixins/ui-service-mixin-test.js index 178f50ce..ce478fcf 100644 --- a/tests/unit/mixins/ui-service-mixin-test.js +++ b/tests/unit/mixins/ui-service-mixin-test.js @@ -15,6 +15,7 @@ module('Unit | Mixin | ui-service-mixin', function (hooks) { const expectedUrl = 'http://authServer'; const expectedRedirectUrl = 'http://localserver?code=fr'; const expectedMessage = 'getPendingRequestKey'; + const origin = window.location.origin; const mockWindowListener = (event) => { let msg; @@ -30,25 +31,33 @@ module('Unit | Mixin | ui-service-mixin', function (hooks) { window.dispatchEvent( new MessageEvent('message', { data: JSON.stringify(obj), + origin, source: window, }) ); } }; - const buildMockWindow = function (windowName) { + // MessageEvent requires a real Window as its source, so the mock popup + // stands in for the window that posts messages with `windowProxy`. + const buildMockWindow = function (windowName, { respond = true } = {}) { windowName = windowName || ''; - window.addEventListener('message', mockWindowListener); + if (respond) { + window.addEventListener('message', mockWindowListener); + } return { name: windowName, + windowProxy: window, focus() {}, close() {}, open() { - this.postMessage(expectedMessage); + if (respond) { + this.postMessage(expectedMessage); + } }, postMessage(msg) { window.dispatchEvent( - new MessageEvent('message', { data: msg, source: window }) + new MessageEvent('message', { data: msg, origin, source: window }) ); }, }; @@ -62,10 +71,33 @@ module('Unit | Mixin | ui-service-mixin', function (hooks) { }; }; + const postResult = function (data, init = {}) { + window.dispatchEvent( + new MessageEvent('message', { + data: typeof data === 'string' ? data : JSON.stringify(data), + origin, + source: window, + ...init, + }) + ); + }; + + const resultFor = function (code) { + return { + [PopupIdSerializer.serialize(popupId)]: `${expectedUrl}?code=${code}`, + }; + }; + + const nextTick = () => new Promise((resolve) => setTimeout(resolve, 20)); + let Popup = EmberObject.extend(Evented, UiServiceMixin, { + respond: true, + // Open a popup window. openRemote(_url, pendingRequestKey) { - this.remote = buildMockWindow(pendingRequestKey); + this.remote = buildMockWindow(pendingRequestKey, { + respond: this.respond, + }); this.remote.open(); }, @@ -78,9 +110,14 @@ module('Unit | Mixin | ui-service-mixin', function (hooks) { return; } }, + + remoteWindow() { + return this.remote && this.remote.windowProxy; + }, }); let popup; + let otherFrame; hooks.beforeEach(function () { popup = Popup.create({ remoteIdGenerator: buildPopupIdGenerator(popupId) }); @@ -91,9 +128,20 @@ module('Unit | Mixin | ui-service-mixin', function (hooks) { localStorage.removeItem(CURRENT_REQUEST_KEY); window.open = originalWindowOpen; window.removeEventListener('message', mockWindowListener); + if (otherFrame) { + otherFrame.remove(); + otherFrame = null; + } popup.destroy(); }); + // A same-origin window that is not the popup. + function buildOtherWindow() { + otherFrame = document.createElement('iframe'); + document.body.appendChild(otherFrame); + return otherFrame.contentWindow; + } + test('requests pending request key', function (assert) { assert.expect(1); @@ -126,4 +174,107 @@ module('Unit | Mixin | ui-service-mixin', function (hooks) { 'returns data successfully' ); }); + + test('accepts the unencoded key that redirect.html posts', async function (assert) { + popup.respond = false; + const promise = popup.open(expectedUrl, ['code']); + + postResult({ + [`torii-popup:${popupId}`]: `${expectedUrl}?code=raw`, + }); + + const result = await promise; + assert.strictEqual(result.code, 'raw'); + }); + + test('ignores results from another origin', async function (assert) { + popup.respond = false; + const promise = popup.open(expectedUrl, ['code']); + + postResult(resultFor('evil'), { origin: 'https://evil.example' }); + postResult(resultFor('good')); + + const result = await promise; + assert.strictEqual(result.code, 'good', 'ignores the other origin'); + }); + + test('ignores results from a window other than the popup', async function (assert) { + popup.respond = false; + const promise = popup.open(expectedUrl, ['code']); + + postResult(resultFor('evil'), { source: buildOtherWindow() }); + postResult(resultFor('good')); + + const result = await promise; + assert.strictEqual(result.code, 'good', 'ignores the other window'); + }); + + test('does not send the pending request key to another origin or window', async function (assert) { + assert.expect(1); + popup.respond = false; + const promise = popup.open(expectedUrl, ['code']); + + const otherWindow = buildOtherWindow(); + const replies = []; + const recordReply = (event) => { + if (String(event.data).indexOf('pendingRequestKey') !== -1) { + replies.push(event.data); + } + }; + window.addEventListener('message', recordReply); + otherWindow.addEventListener('message', recordReply); + + try { + postResult(expectedMessage, { origin: 'https://evil.example' }); + postResult(expectedMessage, { source: otherWindow }); + await nextTick(); + + assert.deepEqual(replies, [], 'no reply was sent'); + } finally { + window.removeEventListener('message', recordReply); + otherWindow.removeEventListener('message', recordReply); + } + + postResult(resultFor('good')); + await promise; + }); + + test('ignores malformed messages without throwing', async function (assert) { + popup.respond = false; + const promise = popup.open(expectedUrl, ['code']); + const key = PopupIdSerializer.serialize(popupId); + + window.dispatchEvent( + new MessageEvent('message', { + data: { [key]: `${expectedUrl}?code=object` }, + origin, + source: window, + }) + ); + postResult('not json'); + postResult('null'); + postResult('[1]'); + postResult('"a string"'); + postResult({ [key]: `${expectedUrl}?code=multi`, other: 'x' }); + postResult({ [key]: 5 }); + postResult({ '%E0%A4%A': `${expectedUrl}?code=badescape` }); + postResult(resultFor('good')); + + const result = await promise; + assert.strictEqual(result.code, 'good', 'only the valid message is used'); + }); + + test('accepts a result that arrives after the popup was closed', async function (assert) { + popup.respond = false; + const promise = popup.open(expectedUrl, ['code']); + + // Polling noticed the popup closed: remote is cleared and the + // 100ms rejection timer starts, but the result is already in flight. + popup.close(); + assert.strictEqual(popup.remote, null, 'remote was cleared'); + postResult(resultFor('late')); + + const result = await promise; + assert.strictEqual(result.code, 'late'); + }); }); From 8204c1c2f1166cb516264a1929bda8e466641858 Mon Sep 17 00:00:00 2001 From: Gaurav Munjal Date: Wed, 14 Oct 2026 15:44:44 -0400 Subject: [PATCH 07/12] fix(security): use crypto randomness and a fresh OAuth state per attempt - uuid-generator: build the popup id (the pending request key) from crypto.getRandomValues instead of Date.now() and Math.random(). Not crypto.randomUUID(), which needs a secure context. - random-url-safe: generate the OAuth `state` from crypto.getRandomValues, rejecting bytes that would bias the distribution. - oauth2-code: add refreshState() and call it at the start of open() in oauth2-code, oauth2-bearer and google-oauth2-bearer-v2, so each login attempt sends and checks a new state. A configured state is kept. - Tests: v4 uuid format, no Math.random, and a URL-to-state round trip (state sent is the state checked; a state from an earlier attempt is rejected). Co-Authored-By: Claude Opus 5.5 --- addon/lib/random-url-safe.js | 12 +++- addon/lib/uuid-generator.js | 29 ++++++--- addon/providers/google-oauth2-bearer-v2.js | 1 + addon/providers/oauth2-bearer.js | 1 + addon/providers/oauth2-code.js | 12 ++++ tests/unit/lib/random-url-safe-test.js | 20 ++++++ tests/unit/lib/uuid-generator-test.js | 19 ++++++ tests/unit/providers/oauth2-code-test.js | 72 ++++++++++++++++++++++ 8 files changed, 154 insertions(+), 12 deletions(-) create mode 100644 tests/unit/lib/random-url-safe-test.js diff --git a/addon/lib/random-url-safe.js b/addon/lib/random-url-safe.js index daa6aed4..d2d46508 100644 --- a/addon/lib/random-url-safe.js +++ b/addon/lib/random-url-safe.js @@ -1,9 +1,17 @@ export default function randomUrlSafe(length) { var chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; + // Bytes at or above the largest multiple of chars.length are skipped so + // that every character is equally likely. + var limit = 256 - (256 % chars.length); var result = ''; - for (var i = 0; i < length; i++) { - result += chars.charAt(Math.floor(Math.random() * chars.length)); + while (result.length < length) { + var bytes = crypto.getRandomValues(new Uint8Array(length)); + for (var i = 0; i < bytes.length && result.length < length; i++) { + if (bytes[i] < limit) { + result += chars.charAt(bytes[i] % chars.length); + } + } } return result; diff --git a/addon/lib/uuid-generator.js b/addon/lib/uuid-generator.js index fbf49003..bb8631a1 100644 --- a/addon/lib/uuid-generator.js +++ b/addon/lib/uuid-generator.js @@ -1,15 +1,24 @@ +function toHex(bytes) { + return Array.from(bytes, function (b) { + return b.toString(16).padStart(2, '0'); + }).join(''); +} + var UUIDGenerator = { + // Returns a random (version 4) UUID. Uses crypto.getRandomValues rather + // than crypto.randomUUID, which is only available in secure contexts. generate() { - var d = new Date().getTime(); - var uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace( - /[xy]/g, - function (c) { - var r = (d + Math.random() * 16) % 16 | 0; - d = Math.floor(d / 16); - return (c === 'x' ? r : (r & 0x3) | 0x8).toString(16); - } - ); - return uuid; + var bytes = crypto.getRandomValues(new Uint8Array(16)); + bytes[6] = (bytes[6] & 0x0f) | 0x40; + bytes[8] = (bytes[8] & 0x3f) | 0x80; + var hex = toHex(bytes); + return [ + hex.slice(0, 8), + hex.slice(8, 12), + hex.slice(12, 16), + hex.slice(16, 20), + hex.slice(20), + ].join('-'); }, }; diff --git a/addon/providers/google-oauth2-bearer-v2.js b/addon/providers/google-oauth2-bearer-v2.js index f4b3d340..35ad02d8 100644 --- a/addon/providers/google-oauth2-bearer-v2.js +++ b/addon/providers/google-oauth2-bearer-v2.js @@ -44,6 +44,7 @@ var GoogleOauth2BearerV2 = OAuth2Code.extend({ * closed the popup window, the promise rejects. */ open(options) { + this.refreshState(); var name = this.get('name'), url = this.buildUrl(), redirectUri = this.get('redirectUri'), diff --git a/addon/providers/oauth2-bearer.js b/addon/providers/oauth2-bearer.js index f3a0fb25..41ed17aa 100644 --- a/addon/providers/oauth2-bearer.js +++ b/addon/providers/oauth2-bearer.js @@ -15,6 +15,7 @@ var Oauth2Bearer = Provider.extend({ * closed the popup window, the promise rejects. */ open(options) { + this.refreshState(); var name = this.get('name'), url = this.buildUrl(), redirectUri = this.get('redirectUri'), diff --git a/addon/providers/oauth2-code.js b/addon/providers/oauth2-code.js index c4c5d419..4d785714 100644 --- a/addon/providers/oauth2-code.js +++ b/addon/providers/oauth2-code.js @@ -97,6 +97,17 @@ var Oauth2 = Provider.extend({ return state; }), + /** + * Discards the generated state so the next login attempt uses a new one. + * A state set in the configuration is kept. + * + * @method refreshState + */ + refreshState() { + this.set('_randomState', null); + this.notifyPropertyChange('state'); + }, + /** * The oauth response type we expect from the third party provider. Hardcoded to 'code' for oauth2-code flows * @property {string} responseType @@ -148,6 +159,7 @@ var Oauth2 = Provider.extend({ * closed the popup window, the promise rejects. */ open(options) { + this.refreshState(); var name = this.get('name'), url = this.buildUrl(), redirectUri = this.get('redirectUri'), diff --git a/tests/unit/lib/random-url-safe-test.js b/tests/unit/lib/random-url-safe-test.js new file mode 100644 index 00000000..abb2990c --- /dev/null +++ b/tests/unit/lib/random-url-safe-test.js @@ -0,0 +1,20 @@ +import randomUrlSafe from 'torii/lib/random-url-safe'; +import { module, test } from 'qunit'; + +module('Unit | Lib | randomUrlSafe', function (/*hooks*/) { + test('returns url-safe characters of the requested length', function (assert) { + assert.ok(/^[A-Za-z0-9]{16}$/.test(randomUrlSafe(16))); + assert.ok(/^[A-Za-z0-9]{100}$/.test(randomUrlSafe(100))); + }); + + test('does not use Math.random', function (assert) { + assert.expect(1); + const originalRandom = Math.random; + Math.random = () => 0.5; + try { + assert.notEqual(randomUrlSafe(16), randomUrlSafe(16)); + } finally { + Math.random = originalRandom; + } + }); +}); diff --git a/tests/unit/lib/uuid-generator-test.js b/tests/unit/lib/uuid-generator-test.js index 60a008f1..5f751211 100644 --- a/tests/unit/lib/uuid-generator-test.js +++ b/tests/unit/lib/uuid-generator-test.js @@ -12,4 +12,23 @@ module('Unit | Lib | UUIDGenerator', function (/*hooks*/) { assert.notEqual(first, second); }); + + test('.generate returns a version 4 uuid', function (assert) { + assert.ok( + /^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/.test( + UUIDGenerator.generate() + ) + ); + }); + + test('.generate does not use Math.random', function (assert) { + assert.expect(1); + const originalRandom = Math.random; + Math.random = () => 0.5; + try { + assert.notEqual(UUIDGenerator.generate(), UUIDGenerator.generate()); + } finally { + Math.random = originalRandom; + } + }); }); diff --git a/tests/unit/providers/oauth2-code-test.js b/tests/unit/providers/oauth2-code-test.js index 2c0711b6..51d4885d 100644 --- a/tests/unit/providers/oauth2-code-test.js +++ b/tests/unit/providers/oauth2-code-test.js @@ -189,6 +189,78 @@ module( ); }); + // A popup that answers with the state from the URL it was asked to open, + // or with `replayState` when set. + function buildStatePopup(states) { + return { + replayState: null, + async open(url) { + const state = new URL(url).searchParams.get('state'); + states.push(state); + return { + code: 'abc', + authorization_code: 'abc', + state: this.replayState || state, + }; + }, + }; + } + + test('checks the state that was sent in the URL', async function (assert) { + configure({ providers: { 'mock-oauth2': { apiKey: 'dummyKey' } } }); + const states = []; + const provider = Provider.extend({ + popup: buildStatePopup(states), + }).create(); + + const result = await provider.open(); + + assert.strictEqual(result.authorizationCode, 'abc'); + assert.ok(/^[A-Za-z0-9]{16}$/.test(states[0]), 'state was sent'); + }); + + test('uses a new state for each login attempt', async function (assert) { + configure({ providers: { 'mock-oauth2': { apiKey: 'dummyKey' } } }); + const states = []; + const provider = Provider.extend({ + popup: buildStatePopup(states), + }).create(); + + await provider.open(); + await provider.open(); + + assert.notEqual(states[0], states[1]); + }); + + test('rejects a state from an earlier login attempt', async function (assert) { + configure({ providers: { 'mock-oauth2': { apiKey: 'dummyKey' } } }); + const states = []; + const popup = buildStatePopup(states); + const provider = Provider.extend({ popup }).create(); + + await provider.open(); + popup.replayState = states[0]; + + await assert.rejects(provider.open(), /incorrect session state param/); + }); + + test('keeps a configured state across login attempts', async function (assert) { + configure({ + providers: { + 'mock-oauth2': { apiKey: 'dummyKey', state: 'fixed-state' }, + }, + }); + const states = []; + const provider = Provider.extend({ + popup: buildStatePopup(states), + }).create(); + + await provider.open(); + await provider.open(); + + assert.deepEqual(states, ['fixed-state', 'fixed-state']); + }); + test('can override state property', function (assert) { assert.expect(1); From 41e2559ca6b08f8361ae3e285941b7940b2a3091 Mon Sep 17 00:00:00 2001 From: Gaurav Munjal Date: Wed, 14 Oct 2026 15:47:09 -0400 Subject: [PATCH 08/12] fix(security): verify state for bearer/token providers by default oauth2-bearer (and google-oauth2-bearer, which extends it) and google-oauth2-bearer-v2 sent `state` but never checked it, so any token delivered for the open popup was accepted. - Read `state` from the redirect and reject a missing or mismatched value, using the same error as oauth2-code (moved into assertState()). - New `verifyState` provider setting (default true) to opt out for providers that do not echo `state`. - The returned token only contains the provider's responseParams, so the shape of authorizationToken (and of sessions that store it) is unchanged. - Tests: state read, match, mismatch, missing, opt-out and token shape for oauth2-bearer; new google-oauth2-bearer-v2 tests. The Google bearer integration mocks now echo state, as Google does. Co-Authored-By: Claude Opus 5.5 --- addon/providers/-private/utils.js | 19 ++++ addon/providers/google-oauth2-bearer-v2.js | 29 +++++- addon/providers/oauth2-bearer.js | 30 ++++++- addon/providers/oauth2-code.js | 34 ++++--- .../providers/google-oauth2-bearer-test.js | 9 +- .../providers/google-oauth2-bearer-v2-test.js | 90 +++++++++++++++++++ tests/unit/providers/oauth2-bearer-test.js | 90 +++++++++++++++++++ 7 files changed, 279 insertions(+), 22 deletions(-) create mode 100644 tests/unit/providers/google-oauth2-bearer-v2-test.js diff --git a/addon/providers/-private/utils.js b/addon/providers/-private/utils.js index c260b3c6..9e019c42 100644 --- a/addon/providers/-private/utils.js +++ b/addon/providers/-private/utils.js @@ -8,6 +8,25 @@ export function resetLoadScript() { alternativeLoadScript = false; } +// The response params to read from the redirect, plus `state` so it can be +// verified. +export function withState(responseParams) { + return responseParams.indexOf('state') === -1 + ? responseParams.concat('state') + : responseParams; +} + +// A copy of `obj` with only the given keys. +export function pick(obj, keys) { + let result = {}; + keys.forEach(function (key) { + if (key in obj) { + result[key] = obj[key]; + } + }); + return result; +} + export function loadScript(src) { if (alternativeLoadScript) { return alternativeLoadScript(src); diff --git a/addon/providers/google-oauth2-bearer-v2.js b/addon/providers/google-oauth2-bearer-v2.js index 35ad02d8..fae3fa57 100644 --- a/addon/providers/google-oauth2-bearer-v2.js +++ b/addon/providers/google-oauth2-bearer-v2.js @@ -3,6 +3,7 @@ import { Promise as EmberPromise } from 'rsvp'; import { run } from '@ember/runloop'; import OAuth2Code from 'torii/providers/oauth2-code'; import { configurable } from 'torii/configuration'; +import { withState, pick } from './-private/utils'; /** * This class implements a provider allowing authentication against google's @@ -33,6 +34,14 @@ var GoogleOauth2BearerV2 = OAuth2Code.extend({ redirectUri: configurable('redirectUri'), + /** + * Whether to check that Google's response carries the `state` that was + * sent with the request. + * + * @property {boolean} verifyState + */ + verifyState: configurable('verifyState', true), + /** * @method open * @return {Promise} If the authorization attempt is a success, @@ -45,16 +54,24 @@ var GoogleOauth2BearerV2 = OAuth2Code.extend({ */ open(options) { this.refreshState(); - var name = this.get('name'), + var provider = this, + name = this.get('name'), url = this.buildUrl(), redirectUri = this.get('redirectUri'), responseParams = this.get('responseParams'), tokenValidationUrl = this.get('tokenValidationUrl'), - clientId = this.get('apiKey'); + clientId = this.get('apiKey'), + state = this.get('state'), + verifyState = this.get('verifyState'); return this.get('popup') - .open(url, responseParams, options) - .then(function (authData) { + .open( + url, + verifyState ? withState(responseParams) : responseParams, + options + ) + .then(function (rawAuthData) { + var authData = pick(rawAuthData, responseParams); var missingResponseParams = []; responseParams.forEach(function (param) { @@ -71,6 +88,10 @@ var GoogleOauth2BearerV2 = OAuth2Code.extend({ ); } + if (verifyState) { + provider.assertState(rawAuthData, state); + } + /* at this point 'authData' should look like: { access_token: '', diff --git a/addon/providers/oauth2-bearer.js b/addon/providers/oauth2-bearer.js index 41ed17aa..78856ce2 100644 --- a/addon/providers/oauth2-bearer.js +++ b/addon/providers/oauth2-bearer.js @@ -1,9 +1,20 @@ /* eslint-disable ember/no-get */ import Provider from 'torii/providers/oauth2-code'; +import { configurable } from 'torii/configuration'; +import { withState, pick } from './-private/utils'; var Oauth2Bearer = Provider.extend({ responseType: 'token', + /** + * Whether to check that the provider's response carries the `state` that + * was sent with the request. Turn off only for providers that do not + * return `state`. + * + * @property {boolean} verifyState + */ + verifyState: configurable('verifyState', true), + /** * @method open * @return {Promise} If the authorization attempt is a success, @@ -16,13 +27,20 @@ var Oauth2Bearer = Provider.extend({ */ open(options) { this.refreshState(); - var name = this.get('name'), + var provider = this, + name = this.get('name'), url = this.buildUrl(), redirectUri = this.get('redirectUri'), - responseParams = this.get('responseParams'); + responseParams = this.get('responseParams'), + state = this.get('state'), + verifyState = this.get('verifyState'); return this.get('popup') - .open(url, responseParams, options) + .open( + url, + verifyState ? withState(responseParams) : responseParams, + options + ) .then(function (authData) { var missingResponseParams = []; @@ -40,8 +58,12 @@ var Oauth2Bearer = Provider.extend({ ); } + if (verifyState) { + provider.assertState(authData, state); + } + return { - authorizationToken: authData, + authorizationToken: pick(authData, responseParams), provider: name, redirectUri: redirectUri, }; diff --git a/addon/providers/oauth2-code.js b/addon/providers/oauth2-code.js index 4d785714..1ce7e30f 100644 --- a/addon/providers/oauth2-code.js +++ b/addon/providers/oauth2-code.js @@ -160,7 +160,8 @@ var Oauth2 = Provider.extend({ */ open(options) { this.refreshState(); - var name = this.get('name'), + var provider = this, + name = this.get('name'), url = this.buildUrl(), redirectUri = this.get('redirectUri'), responseParams = this.get('responseParams'), @@ -187,16 +188,8 @@ var Oauth2 = Provider.extend({ ); } - if (shouldCheckState && authData.state !== state) { - throw new Error( - 'The response from the provider has an incorrect ' + - 'session state param: should be "' + - state + - '", ' + - 'but is "' + - authData.state + - '"' - ); + if (shouldCheckState) { + provider.assertState(authData, state); } return { @@ -206,6 +199,25 @@ var Oauth2 = Provider.extend({ }; }); }, + + /** + * Throws unless the provider's response carries the state that was sent. + * + * @method assertState + */ + assertState(authData, state) { + if (authData.state !== state) { + throw new Error( + 'The response from the provider has an incorrect ' + + 'session state param: should be "' + + state + + '", ' + + 'but is "' + + authData.state + + '"' + ); + } + }, }); export default Oauth2; diff --git a/tests/integration/providers/google-oauth2-bearer-test.js b/tests/integration/providers/google-oauth2-bearer-test.js index eb5a5d4d..f989e48d 100644 --- a/tests/integration/providers/google-oauth2-bearer-test.js +++ b/tests/integration/providers/google-oauth2-bearer-test.js @@ -6,6 +6,9 @@ import MockPopupService from '../../helpers/mock-popup-service'; const providerConfig = { apiKey: 'dummy' }; +// Google echoes the state it was sent. +const stateFrom = (url) => new URL(url).searchParams.get('state'); + module('Integration | Provider | Google Bearer', function (hooks) { setupTest(hooks); @@ -21,9 +24,9 @@ module('Integration | Provider | Google Bearer', function (hooks) { assert.expect(1); class GooglePopupService extends MockPopupService { - async open() { + async open(url) { super.open(...arguments); - return { access_token: 'test' }; + return { access_token: 'test', state: stateFrom(url) }; } } @@ -56,7 +59,7 @@ module('Integration | Provider | Google Bearer', function (hooks) { url.indexOf('request_visible_actions=http%3A%2F%2Fsome-url.com') > -1, 'request_visible_actions is present' ); - return { access_token: 'test' }; + return { access_token: 'test', state: stateFrom(url) }; } } diff --git a/tests/unit/providers/google-oauth2-bearer-v2-test.js b/tests/unit/providers/google-oauth2-bearer-v2-test.js new file mode 100644 index 00000000..9cb34e23 --- /dev/null +++ b/tests/unit/providers/google-oauth2-bearer-v2-test.js @@ -0,0 +1,90 @@ +import { module, test } from 'qunit'; +import { configure } from 'torii/configuration'; +import GoogleOauth2BearerV2 from 'torii/providers/google-oauth2-bearer-v2'; + +module('Unit | Provider | GoogleOAuth2BearerV2Provider', function (hooks) { + const clientId = 'client-id'; + const originalXHR = window.XMLHttpRequest; + let tokenInfo; + + // Answers the token validation request with `tokenInfo`. + class FakeXHR { + overrideMimeType() {} + open(method, url) { + this.url = url; + } + send() { + setTimeout(() => { + this.status = tokenInfo.status; + this.statusText = tokenInfo.statusText || ''; + this.responseText = tokenInfo.body; + this.onload(); + }); + } + } + + // Answers with the state from the URL it was asked to open, unless the + // test overrides it. + function buildPopup(response = {}) { + return { + async open(url) { + const state = new URL(url).searchParams.get('state'); + return Object.assign( + { + access_token: 'tok', + token_type: 'Bearer', + expires_in: '3600', + state, + }, + response + ); + }, + }; + } + + function buildProvider(response) { + return GoogleOauth2BearerV2.extend({ + popup: buildPopup(response), + }).create(); + } + + hooks.beforeEach(function () { + configure({ + providers: { + 'google-oauth2-bearer-v2': { + apiKey: clientId, + scope: 'email', + redirectUri: 'http://foo', + }, + }, + }); + tokenInfo = { status: 200, body: JSON.stringify({ audience: clientId }) }; + window.XMLHttpRequest = FakeXHR; + }); + + hooks.afterEach(function () { + window.XMLHttpRequest = originalXHR; + }); + + test('resolves when the state and audience match', async function (assert) { + const result = await buildProvider().open(); + + assert.strictEqual(result.access_token, 'tok'); + assert.strictEqual(result.provider, 'google-oauth2-bearer-v2'); + assert.false('state' in result, 'does not add state to the result'); + }); + + test('rejects a mismatched state', async function (assert) { + await assert.rejects( + buildProvider({ state: 'forged' }).open(), + /incorrect session state param/ + ); + }); + + test('rejects a missing state', async function (assert) { + await assert.rejects( + buildProvider({ state: undefined }).open(), + /incorrect session state param/ + ); + }); +}); diff --git a/tests/unit/providers/oauth2-bearer-test.js b/tests/unit/providers/oauth2-bearer-test.js index 9c020777..ee7bd61b 100644 --- a/tests/unit/providers/oauth2-bearer-test.js +++ b/tests/unit/providers/oauth2-bearer-test.js @@ -77,6 +77,96 @@ module( ); }); + // Answers with the state from the URL it was asked to open, unless the + // test overrides it, and records the keys it was asked to read. + function buildStatePopup(calls, response = {}) { + return { + async open(url, keys) { + const state = new URL(url).searchParams.get('state'); + calls.push({ state, keys }); + return Object.assign({ token: 'tok', state }, response); + }, + }; + } + + const TokenProvider = BaseProvider.extend({ + name: 'mock-bearer', + baseUrl: 'http://example.com', + redirectUri: 'http://foo', + responseParams: ['token'], + }); + + function configureBearer(settings = {}) { + configure({ + providers: { + 'mock-bearer': Object.assign({ apiKey: 'dummyKey' }, settings), + }, + }); + } + + test('Provider#open checks the state it sent by default', async function (assert) { + configureBearer(); + const calls = []; + const provider = TokenProvider.extend({ + popup: buildStatePopup(calls), + }).create(); + + const result = await provider.open(); + + assert.deepEqual(calls[0].keys, ['token', 'state'], 'reads state'); + assert.deepEqual( + result.authorizationToken, + { token: 'tok' }, + 'does not add state to the token' + ); + }); + + test('Provider#open rejects a mismatched state', async function (assert) { + configureBearer(); + const provider = TokenProvider.extend({ + popup: buildStatePopup([], { state: 'forged' }), + }).create(); + + await assert.rejects(provider.open(), /incorrect session state param/); + }); + + test('Provider#open rejects a missing state', async function (assert) { + configureBearer(); + const provider = TokenProvider.extend({ + popup: buildStatePopup([], { state: undefined }), + }).create(); + + await assert.rejects(provider.open(), /incorrect session state param/); + }); + + test('Provider#open skips the state check when verifyState is false', async function (assert) { + configureBearer({ verifyState: false }); + const calls = []; + const provider = TokenProvider.extend({ + popup: buildStatePopup(calls, { state: undefined }), + }).create(); + + const result = await provider.open(); + + assert.deepEqual(calls[0].keys, ['token'], 'does not read state'); + assert.deepEqual(result.authorizationToken, { token: 'tok' }); + }); + + test('Provider#open keeps state in the token when it is a response param', async function (assert) { + configureBearer(); + const provider = TokenProvider.extend({ + responseParams: ['token', 'state'], + popup: buildStatePopup([]), + }).create(); + + const result = await provider.open(); + + assert.deepEqual(Object.keys(result.authorizationToken), [ + 'token', + 'state', + ]); + }); + test('Provider#open assert.throws when any required response params are missing', function (assert) { assert.expect(3); From 47fc3d4196f64e24bd73bb6444a9918e96281a6c Mon Sep 17 00:00:00 2001 From: Gaurav Munjal Date: Wed, 14 Oct 2026 15:49:17 -0400 Subject: [PATCH 09/12] fix: harden google-v2 token validation and honor app-wide remoteServiceName - google-oauth2-bearer-v2: reject when the token validation request returns a non-2xx status or a body that is not JSON (or is null), instead of throwing inside onload and leaving the login pending. - providers/base and redirect-handler read the app-wide `remoteServiceName` through getConfiguration(). They read it from the module's default export, which is always an empty object, so the setting was ignored. The torii-callback initializer runs before the torii initializer, so it now calls configure() before the redirect handler runs. - Tests: google-v2 validation failures; base provider service selection; redirect handler does not close the window when using the iframe service. Co-Authored-By: Claude Opus 5.5 --- addon/providers/base.js | 5 +- addon/providers/google-oauth2-bearer-v2.js | 24 ++++++++- addon/redirect-handler.js | 4 +- app/initializers/initialize-torii-callback.js | 4 ++ tests/unit/providers/base-test.js | 52 +++++++++++++++++++ .../providers/google-oauth2-bearer-v2-test.js | 30 +++++++++++ tests/unit/redirect-handler-test.js | 31 +++++++++++ 7 files changed, 144 insertions(+), 6 deletions(-) create mode 100644 tests/unit/providers/base-test.js diff --git a/addon/providers/base.js b/addon/providers/base.js index ae0da9d8..853b7ac6 100644 --- a/addon/providers/base.js +++ b/addon/providers/base.js @@ -2,8 +2,7 @@ import EmberObject, { computed } from '@ember/object'; import requiredProperty from 'torii/lib/required-property'; import { getOwner } from 'torii/lib/container-utils'; -import { configurable } from 'torii/configuration'; -import configuration from 'torii/configuration'; +import { configurable, getConfiguration } from 'torii/configuration'; var DEFAULT_REMOTE_SERVICE_NAME = 'popup'; @@ -31,7 +30,7 @@ var Base = EmberObject.extend({ var owner = getOwner(this); var remoteServiceName = this.get('configuredRemoteServiceName') || - configuration.remoteServiceName || + getConfiguration().remoteServiceName || DEFAULT_REMOTE_SERVICE_NAME; return owner.lookup('torii-service:' + remoteServiceName); diff --git a/addon/providers/google-oauth2-bearer-v2.js b/addon/providers/google-oauth2-bearer-v2.js index fae3fa57..3f82f142 100644 --- a/addon/providers/google-oauth2-bearer-v2.js +++ b/addon/providers/google-oauth2-bearer-v2.js @@ -107,7 +107,29 @@ var GoogleOauth2BearerV2 = OAuth2Code.extend({ let xhr = new XMLHttpRequest(); xhr.overrideMimeType('application/json'); xhr.onload = function () { - var jsonResponse = JSON.parse(xhr.responseText); + if (xhr.status < 200 || xhr.status >= 300) { + run(() => + reject( + new Error( + `Token validation request failed with status '${xhr.status}' (server '${tokenValidationUrl}' '${xhr.responseText}').` + ) + ) + ); + return; + } + var jsonResponse; + try { + jsonResponse = JSON.parse(xhr.responseText) || {}; + } catch (e) { + run(() => + reject( + new Error( + `Token validation server returned invalid JSON (server '${tokenValidationUrl}').` + ) + ) + ); + return; + } /* the response is a JSON that looks like: { "audience":"8819981768.apps.googleusercontent.com", diff --git a/addon/redirect-handler.js b/addon/redirect-handler.js index 2cfbcec2..7f20b594 100644 --- a/addon/redirect-handler.js +++ b/addon/redirect-handler.js @@ -12,7 +12,7 @@ import { Promise as EmberPromise } from 'rsvp'; import EmberObject from '@ember/object'; import { CURRENT_REQUEST_KEY, WARNING_KEY } from './mixins/ui-service-mixin'; -import configuration from 'torii/configuration'; +import { getConfiguration } from 'torii/configuration'; export class ToriiRedirectError extends Error { constructor() { @@ -34,7 +34,7 @@ var RedirectHandler = EmberObject.extend({ windowObject.localStorage.setItem(WARNING_KEY, 'true'); windowObject.localStorage.setItem(pendingRequestKey, url); - var remoteServiceName = configuration.remoteServiceName || 'popup'; + var remoteServiceName = getConfiguration().remoteServiceName || 'popup'; if (remoteServiceName === 'popup') { // NOTE : If a single provider has been configured to use the 'iframe' // service, this next line will still be called. It will just fail silently. diff --git a/app/initializers/initialize-torii-callback.js b/app/initializers/initialize-torii-callback.js index d1f249ec..a689e7ae 100644 --- a/app/initializers/initialize-torii-callback.js +++ b/app/initializers/initialize-torii-callback.js @@ -1,5 +1,6 @@ import config from '../config/environment'; import RedirectHandler from 'torii/redirect-handler'; +import { configure } from 'torii/configuration'; export default { name: 'torii-callback', @@ -14,6 +15,9 @@ export default { return; } + // The torii initializer has not run yet; the handler needs the + // configuration to know whether it runs in a popup. + configure(config.torii || {}); application.deferReadiness(); RedirectHandler.handle(window).catch(function () { application.advanceReadiness(); diff --git a/tests/unit/providers/base-test.js b/tests/unit/providers/base-test.js new file mode 100644 index 00000000..8e68b29e --- /dev/null +++ b/tests/unit/providers/base-test.js @@ -0,0 +1,52 @@ +/* eslint-disable ember/no-get */ +import { module, test } from 'qunit'; +import { setupTest } from 'ember-qunit'; +import { configure } from 'torii/configuration'; +import BaseProvider from 'torii/providers/base'; + +module('Unit | Provider | Base', function (hooks) { + setupTest(hooks); + + const Provider = BaseProvider.extend({ name: 'mock-base' }); + + function buildProvider(owner) { + owner.register('torii-provider:mock-base', Provider); + return owner.lookup('torii-provider:mock-base'); + } + + test('uses the popup service by default', function (assert) { + configure({ providers: { 'mock-base': {} } }); + + const provider = buildProvider(this.owner); + + assert.strictEqual( + provider.get('popup'), + this.owner.lookup('torii-service:popup') + ); + }); + + test('honors an app-wide remoteServiceName', function (assert) { + configure({ remoteServiceName: 'iframe', providers: { 'mock-base': {} } }); + + const provider = buildProvider(this.owner); + + assert.strictEqual( + provider.get('popup'), + this.owner.lookup('torii-service:iframe') + ); + }); + + test('a provider remoteServiceName wins over the app-wide one', function (assert) { + configure({ + remoteServiceName: 'iframe', + providers: { 'mock-base': { remoteServiceName: 'popup' } }, + }); + + const provider = buildProvider(this.owner); + + assert.strictEqual( + provider.get('popup'), + this.owner.lookup('torii-service:popup') + ); + }); +}); diff --git a/tests/unit/providers/google-oauth2-bearer-v2-test.js b/tests/unit/providers/google-oauth2-bearer-v2-test.js index 9cb34e23..95d4c6b1 100644 --- a/tests/unit/providers/google-oauth2-bearer-v2-test.js +++ b/tests/unit/providers/google-oauth2-bearer-v2-test.js @@ -81,6 +81,36 @@ module('Unit | Provider | GoogleOAuth2BearerV2Provider', function (hooks) { ); }); + test('rejects when the token validation request fails', async function (assert) { + tokenInfo = { status: 400, body: '{"error":"invalid_token"}' }; + + await assert.rejects( + buildProvider().open(), + /Token validation request failed with status '400'/ + ); + }); + + test('rejects when token validation returns invalid JSON', async function (assert) { + tokenInfo = { status: 200, body: 'oops' }; + + await assert.rejects(buildProvider().open(), /returned invalid JSON/); + }); + + test('rejects when token validation returns null', async function (assert) { + tokenInfo = { status: 200, body: 'null' }; + + await assert.rejects(buildProvider().open(), /'audience' field/); + }); + + test('rejects a token issued to another client', async function (assert) { + tokenInfo = { + status: 200, + body: JSON.stringify({ audience: 'other-client' }), + }; + + await assert.rejects(buildProvider().open(), /confused deputy/); + }); + test('rejects a missing state', async function (assert) { await assert.rejects( buildProvider({ state: undefined }).open(), diff --git a/tests/unit/redirect-handler-test.js b/tests/unit/redirect-handler-test.js index 631dfb2a..24d53ddf 100644 --- a/tests/unit/redirect-handler-test.js +++ b/tests/unit/redirect-handler-test.js @@ -2,6 +2,7 @@ import { run } from '@ember/runloop'; import RedirectHandler from 'torii/redirect-handler'; import { CURRENT_REQUEST_KEY } from 'torii/mixins/ui-service-mixin'; +import { configure } from 'torii/configuration'; import { module, test } from 'qunit'; module('Unit | RedirectHandler', function (/*hooks*/) { @@ -111,6 +112,36 @@ module('Unit | RedirectHandler', function (/*hooks*/) { }); }); + test('does not close the window when torii is configured to use an iframe', function (assert) { + assert.expect(1); + + configure({ remoteServiceName: 'iframe' }); + const mockWindow = buildMockWindow( + 'torii-popup:abc123', + 'http://authServer?code=1234512345fw' + ); + mockWindow.localStorage.getItem = function (key) { + if (key === CURRENT_REQUEST_KEY) { + return 'some-key'; + } + }; + const handler = RedirectHandler.create({ windowObject: mockWindow }); + + let closed = false; + mockWindow.close = function () { + closed = true; + }; + + try { + run(function () { + handler.run(); + }); + assert.false(closed, 'window was not closed'); + } finally { + configure({}); + } + }); + test('does not close the window when a not torii popup', function (assert) { assert.expect(1); From f0aaf532412c17044fede4dc6945c672e2535246 Mon Sep 17 00:00:00 2001 From: Gaurav Munjal Date: Thu, 15 Oct 2026 11:33:29 -0400 Subject: [PATCH 10/12] fix(security): upgrade ember-qunit to 6 to drop babel-core 6 ember-qunit 5 depended on ember-auto-import 1, which pulled in babel-core 6 and with it babel-traverse 6 (CVE-2023-45133, no fixed release) and json5 0.5.1 (CVE-2022-46175). ember-qunit 6 uses ember-auto-import 2. testem 3.16 (via ember-cli 4.8) also kept babel-core 6 installed as an optional peer of consolidate 0.16. Pin testem to 3.19.1, which uses consolidate 1.x. It is the last release that still supports Node < 20.19; 3.20 and later require Node ^20.19 || ^22.12 || >=24. Co-Authored-By: Claude Opus 5.5 --- package.json | 7 +- pnpm-lock.yaml | 1943 ++++-------------------------------------------- 2 files changed, 140 insertions(+), 1810 deletions(-) diff --git a/package.json b/package.json index 58af1d9b..0919e328 100644 --- a/package.json +++ b/package.json @@ -71,7 +71,7 @@ "ember-load-initializers": "^2.1.2", "ember-maybe-import-regenerator": "^1.0.0", "ember-page-title": "^7.0.0", - "ember-qunit": "^5.1.5", + "ember-qunit": "^6.2.0", "ember-resolver": "^8.0.3", "ember-source": "~4.8.0", "ember-source-channel-url": "^3.0.0", @@ -111,5 +111,10 @@ "ember-addon": { "demoUrl": "http://adopted-ember-addons.github.io/torii/demo.html", "configPath": "tests/dummy/config" + }, + "pnpm": { + "overrides": { + "testem": "~3.19.1" + } } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 36ae4274..744c8cd4 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -4,6 +4,9 @@ settings: autoInstallPeers: true excludeLinksFromLockfile: false +overrides: + testem: ~3.19.1 + importers: .: @@ -47,10 +50,10 @@ importers: version: 3.0.0 ember-cli: specifier: ~4.8.1 - version: 4.8.1(babel-core@6.26.3)(encoding@0.1.13)(handlebars@4.7.10)(underscore@1.13.8) + version: 4.8.1(encoding@0.1.13)(handlebars@4.7.10)(underscore@1.13.8) ember-cli-dependency-checker: specifier: ^3.3.1 - version: 3.3.3(ember-cli@4.8.1(babel-core@6.26.3)(encoding@0.1.13)(handlebars@4.7.10)(underscore@1.13.8)) + version: 3.3.3(ember-cli@4.8.1(encoding@0.1.13)(handlebars@4.7.10)(underscore@1.13.8)) ember-cli-inject-live-reload: specifier: ^2.1.0 version: 2.1.0 @@ -73,8 +76,8 @@ importers: specifier: ^7.0.0 version: 7.0.0 ember-qunit: - specifier: ^5.1.5 - version: 5.1.5(@ember/test-helpers@2.9.6(@babel/core@7.29.7)(ember-source@4.8.6(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(webpack@5.111.1(postcss@8.5.30))))(qunit@2.24.1) + specifier: ^6.2.0 + version: 6.2.0(@ember/test-helpers@2.9.6(@babel/core@7.29.7)(ember-source@4.8.6(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(webpack@5.111.1(postcss@8.5.30))))(ember-source@4.8.6(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(webpack@5.111.1(postcss@8.5.30)))(qunit@2.24.1)(webpack@5.111.1(postcss@8.5.30)) ember-resolver: specifier: ^8.0.3 version: 8.1.0(@babel/core@7.29.7) @@ -828,10 +831,6 @@ packages: resolution: {integrity: sha512-WFsw8nQpHZiWGEDYpa/A79KEFfTisqteXbY+jg9eZiww1r1G+LZvsmdszDp86TkotUSCqrMbK/ewn0jR1CJmqg==} engines: {node: 12.* || 14.* || >= 16} - '@embroider/shared-internals@1.8.3': - resolution: {integrity: sha512-N5Gho6Qk8z5u+mxLCcMYAoQMbN4MmH+z2jXwQHVs859bxuZTxwF6kKtsybDAASCtd2YGxEmzcc1Ja/wM28824w==} - engines: {node: 12.* || 14.* || >= 16} - '@embroider/shared-internals@2.9.1': resolution: {integrity: sha512-8PJBsa37GD++SAfHf8rcJzlwDwuAQCBo0fr+eGxg9l8XhBXsTnE/7706dM4OqWew9XNqRXn39wfIGHZoBpjNMw==} engines: {node: 12.* || 14.* || >= 16} @@ -1200,102 +1199,48 @@ packages: '@webassemblyjs/ast@1.14.1': resolution: {integrity: sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==} - '@webassemblyjs/ast@1.9.0': - resolution: {integrity: sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==} - '@webassemblyjs/floating-point-hex-parser@1.13.2': resolution: {integrity: sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==} - '@webassemblyjs/floating-point-hex-parser@1.9.0': - resolution: {integrity: sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA==} - '@webassemblyjs/helper-api-error@1.13.2': resolution: {integrity: sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==} - '@webassemblyjs/helper-api-error@1.9.0': - resolution: {integrity: sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==} - '@webassemblyjs/helper-buffer@1.14.1': resolution: {integrity: sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==} - '@webassemblyjs/helper-buffer@1.9.0': - resolution: {integrity: sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA==} - - '@webassemblyjs/helper-code-frame@1.9.0': - resolution: {integrity: sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA==} - - '@webassemblyjs/helper-fsm@1.9.0': - resolution: {integrity: sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw==} - - '@webassemblyjs/helper-module-context@1.9.0': - resolution: {integrity: sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g==} - '@webassemblyjs/helper-numbers@1.13.2': resolution: {integrity: sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==} '@webassemblyjs/helper-wasm-bytecode@1.13.2': resolution: {integrity: sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==} - '@webassemblyjs/helper-wasm-bytecode@1.9.0': - resolution: {integrity: sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==} - '@webassemblyjs/helper-wasm-section@1.14.1': resolution: {integrity: sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==} - '@webassemblyjs/helper-wasm-section@1.9.0': - resolution: {integrity: sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw==} - '@webassemblyjs/ieee754@1.13.2': resolution: {integrity: sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==} - '@webassemblyjs/ieee754@1.9.0': - resolution: {integrity: sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==} - '@webassemblyjs/leb128@1.13.2': resolution: {integrity: sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==} - '@webassemblyjs/leb128@1.9.0': - resolution: {integrity: sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==} - '@webassemblyjs/utf8@1.13.2': resolution: {integrity: sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==} - '@webassemblyjs/utf8@1.9.0': - resolution: {integrity: sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==} - '@webassemblyjs/wasm-edit@1.14.1': resolution: {integrity: sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==} - '@webassemblyjs/wasm-edit@1.9.0': - resolution: {integrity: sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw==} - '@webassemblyjs/wasm-gen@1.14.1': resolution: {integrity: sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==} - '@webassemblyjs/wasm-gen@1.9.0': - resolution: {integrity: sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA==} - '@webassemblyjs/wasm-opt@1.14.1': resolution: {integrity: sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==} - '@webassemblyjs/wasm-opt@1.9.0': - resolution: {integrity: sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A==} - '@webassemblyjs/wasm-parser@1.14.1': resolution: {integrity: sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==} - '@webassemblyjs/wasm-parser@1.9.0': - resolution: {integrity: sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA==} - - '@webassemblyjs/wast-parser@1.9.0': - resolution: {integrity: sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw==} - '@webassemblyjs/wast-printer@1.14.1': resolution: {integrity: sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==} - '@webassemblyjs/wast-printer@1.9.0': - resolution: {integrity: sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==} - '@xmldom/xmldom@0.8.15': resolution: {integrity: sha512-/5NV/vDALVFDXgLmfsy9TRCBlKwO2LNBFzpzvb9iIj+jR+eSc6DLYYvVOdivT/jm7MtU6TebYuRmzEOI7w40UA==} engines: {node: '>=10.0.0'} @@ -1318,11 +1263,6 @@ packages: peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - acorn@6.4.2: - resolution: {integrity: sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==} - engines: {node: '>=0.4.0'} - hasBin: true - acorn@7.4.1: resolution: {integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==} engines: {node: '>=0.4.0'} @@ -1350,11 +1290,6 @@ packages: resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} engines: {node: '>=8'} - ajv-errors@1.0.1: - resolution: {integrity: sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==} - peerDependencies: - ajv: '>=5.0.0' - ajv-formats@3.0.1: resolution: {integrity: sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==} peerDependencies: @@ -1458,17 +1393,6 @@ packages: resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} engines: {node: '>= 8'} - aproba@1.2.0: - resolution: {integrity: sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==} - - aproba@2.1.0: - resolution: {integrity: sha512-tLIEcj5GuR2RSTnxNKdkK0dJ/GrC7P38sUkiDmDuHfsHmbagTFAxDVIBltoklXEVIQ/f14IL8IMJ5pn9Hez1Ew==} - - are-we-there-yet@3.0.1: - resolution: {integrity: sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - deprecated: This package is no longer supported. - argparse@1.0.10: resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} @@ -1519,15 +1443,9 @@ packages: resolution: {integrity: sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==} engines: {node: '>= 0.4'} - asn1.js@4.10.1: - resolution: {integrity: sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==} - assert-never@1.4.0: resolution: {integrity: sha512-5oJg84os6NMQNl27T9LnZkvvqzvAnHu03ShCnoj6bsJwS7L8AO4lf+C/XjK/nvzEqQB744moC6V128RucQd1jA==} - assert@1.5.1: - resolution: {integrity: sha512-zzw1uCAgLbsKwBfFc8CX78DDg+xZeBksSO3vwVIDDN5i94eOrPsSSyiVhmsSABFDM/OcpE2aagCat9dnWQLG1A==} - assign-symbols@1.0.0: resolution: {integrity: sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==} engines: {node: '>=0.10.0'} @@ -1547,9 +1465,6 @@ packages: resolution: {integrity: sha512-iH+boep2xivfD9wMaZWkywYIURSmsL96d6MoqrC94BnGSvXE4Quf8hnJiHGFYhw/nLeIa1XyRaf4vvcvkwAefg==} engines: {node: 8.* || >= 10.*} - async-each@1.0.6: - resolution: {integrity: sha512-c646jH1avxr+aVpndVMeAfYw7wAa6idufrlN3LPA4PmKS0QEGp6PIC9nwz0WQkkvBGAMEki3pFdtxaF39J9vvg==} - async-function@1.0.0: resolution: {integrity: sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==} engines: {node: '>= 0.4'} @@ -1579,12 +1494,6 @@ packages: resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} engines: {node: '>= 0.4'} - babel-code-frame@6.26.0: - resolution: {integrity: sha512-XqYMR2dfdGMW+hd0IUZ2PwK+fGeFkOxZJ0wY+JaQAHzt1Zx8LcvpiZD2NiGkEG8qx0CfkAOr5xt76d1e8vG90g==} - - babel-core@6.26.3: - resolution: {integrity: sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==} - babel-eslint@10.1.0: resolution: {integrity: sha512-ifWaTHQ0ce+448CYop8AdrQiBsGrnC+bMgfyKFdi6EsPLTAWG+QfyDeM6OH+FmWnKvEq5NnBMLvlBUPKQZoDSg==} engines: {node: '>=6'} @@ -1592,20 +1501,10 @@ packages: peerDependencies: eslint: '>= 4.12.1' - babel-generator@6.26.1: - resolution: {integrity: sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==} - - babel-helpers@6.24.1: - resolution: {integrity: sha512-n7pFrqQm44TCYvrCDb0MqabAF+JUBq+ijBvNMUxpkLjJaAu32faIexewMumrH5KLLJ1HDyT0PTEqRyAe/GwwuQ==} - babel-import-util@0.2.0: resolution: {integrity: sha512-CtWYYHU/MgK88rxMrLfkD356dApswtR/kWZ/c6JifG1m10e7tBBrs/366dFzWMAoqYmG5/JSh+94tUSpIwh+ag==} engines: {node: '>= 12.*'} - babel-import-util@1.4.1: - resolution: {integrity: sha512-TNdiTQdPhXlx02pzG//UyVPSKE7SNWjY0n4So/ZnjQpWwaM5LvWBLkWa1JKll5u06HNscHD91XZPuwrMg1kadQ==} - engines: {node: '>= 12.*'} - babel-import-util@2.1.1: resolution: {integrity: sha512-3qBQWRjzP9NreSH/YrOEU1Lj5F60+pWSLP0kIdCWxjFHH7pX2YPHIxQ67el4gnMNfYoDxSDGcT0zpVlZ+gVtQA==} engines: {node: '>= 12.*'} @@ -1621,9 +1520,6 @@ packages: '@babel/core': ^7.0.0 webpack: '>=2' - babel-messages@6.23.0: - resolution: {integrity: sha512-Bl3ZiA+LjqaMtNYopA9TYE9HP1tQ+E5dLxE0XrAzcIJeK2UqF0/EaqXwBn9esd4UmTfEab+P+UYQ1GnioFIb/w==} - babel-plugin-debug-macros@0.2.0: resolution: {integrity: sha512-Wpmw4TbhR3Eq2t3W51eBAQSdKlr+uAyF0GI4GtPfMCD12Y4cIdpKC9l0RjNTH/P9isFypSqqewMPm7//fnZlNA==} engines: {node: '>=4'} @@ -1682,31 +1578,16 @@ packages: babel-plugin-syntax-dynamic-import@6.18.0: resolution: {integrity: sha512-MioUE+LfjCEz65Wf7Z/Rm4XCP5k2c+TbMd2Z2JKc7U9uwjBhAfNPE48KC4GTGKhppMeYVepwDBNO/nGY6NYHBA==} - babel-register@6.26.0: - resolution: {integrity: sha512-veliHlHX06wjaeY8xNITbveXSiI+ASFnOqvne/LaIJIqOWi2Ogmj91KOugEz/hoh/fwMhXNBJPCv8Xaz5CyM4A==} - - babel-runtime@6.26.0: - resolution: {integrity: sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g==} - - babel-template@6.26.0: - resolution: {integrity: sha512-PCOcLFW7/eazGUKIoqH97sO9A2UYMahsn/yRQ7uOk37iutwjq7ODtcTNF+iFDSHNfkctqsLRjLP7URnOx0T1fg==} - - babel-traverse@6.26.0: - resolution: {integrity: sha512-iSxeXx7apsjCHe9c7n8VtRXGzI2Bk1rBSOJgCCjfyXb6v1aCqE1KSEpq/8SXuVN8Ka/Rh1WDTF0MDzkvTA4MIA==} - - babel-types@6.26.0: - resolution: {integrity: sha512-zhe3V/26rCWsEZK8kZN+HaQj5yQ1CilTObixFzKW1UWjqG7618Twz6YEsCnjfg5gBcJh02DrpCkS9h98ZqDY+g==} - - babylon@6.18.0: - resolution: {integrity: sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==} - hasBin: true - backbone@1.6.1: resolution: {integrity: sha512-YQzWxOrIgL6BoFnZjThVN99smKYhyEXXFyJJ2lsF1wJLyo4t+QjmkLrH8/fN22FZ4ykF70Xq7PgTugJVR4zS9Q==} balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + balanced-match@4.0.4: + resolution: {integrity: sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==} + engines: {node: 18 || 20 || >=22} + base64-js@1.5.1: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} @@ -1733,36 +1614,16 @@ packages: big.js@5.2.2: resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==} - binary-extensions@1.13.1: - resolution: {integrity: sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==} - engines: {node: '>=0.10.0'} - - binary-extensions@2.3.0: - resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} - engines: {node: '>=8'} - binaryextensions@2.3.0: resolution: {integrity: sha512-nAihlQsYGyc5Bwq6+EsubvANYGExeJKHDO3RjnvwU042fawQTQfM3Kxn7IHUXQOz4bzfwsGYYHGSvXyW4zOGLg==} engines: {node: '>=0.8'} - bindings@1.5.0: - resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==} - bl@4.1.0: resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} blank-object@1.0.2: resolution: {integrity: sha512-kXQ19Xhoghiyw66CUiGypnuRpWlbHAzY/+NyvqTEdTfhfQGH1/dbEMYiXju7fYKIFePpzp/y9dsu5Cu/PkmawQ==} - bluebird@3.7.2: - resolution: {integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==} - - bn.js@4.12.5: - resolution: {integrity: sha512-3aRg6/JxfffFD+OlOjOFR3Vo79l39ooBTFucxx+MT3dhCtzn3EmiUPQo+6/OZuI2jbXi3YKgmiTFBgChQMwIRQ==} - - bn.js@5.2.5: - resolution: {integrity: sha512-Vq886eXykuP5E6HcKSSStP3bJgrE6In5WKxVUvJ8XGpWWYs2xZHWqUwzCtGgEtBcxyd57KBFDPFoUfNzdaHCNg==} - body-parser@1.20.8: resolution: {integrity: sha512-JNcyFQ64OiijEkPzUBTCe+hyPXUD/3LEldGQ6iF5LR1w00mx9o7xtDWHXBY2iItjdCFGoilOLNQbH943ut7pHA==} engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} @@ -1784,6 +1645,10 @@ packages: brace-expansion@2.1.7: resolution: {integrity: sha512-uZbew1NqdmPDTMJ8ah1y+b+9QEJrfkXFk3RcTQw3X0jW/xRUvFKsg1CfQdSYGdTbXZWExtU3J3ccxtnfw1Fi0g==} + brace-expansion@5.0.12: + resolution: {integrity: sha512-YovQ3rzhaLMIrDjNDMkNS01tea93qhEhG5xy8f6+R0l+dw3Ki+5sCoIoI942iuLZTHWogWktgwVDhU09iNEimQ==} + engines: {node: 20 || >=22} + braces@2.3.2: resolution: {integrity: sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==} engines: {node: '>=0.10.0'} @@ -1934,29 +1799,6 @@ packages: resolution: {integrity: sha512-sWi3b3fTUSVPDsz5KsQ5eCQNVAtLgkIE/HYFkEZXR/07clqmd4E/gFiuwSaqa9b+QTXc1Uemfb7TVWbEIURWDg==} engines: {node: 8.* || >= 10.*} - brorand@1.1.0: - resolution: {integrity: sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==} - - browserify-aes@1.2.0: - resolution: {integrity: sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==} - - browserify-cipher@1.0.1: - resolution: {integrity: sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==} - - browserify-des@1.0.2: - resolution: {integrity: sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==} - - browserify-rsa@4.1.1: - resolution: {integrity: sha512-YBjSAiTqM04ZVei6sXighu679a3SqWORA3qZTEqZImnlkDIFtKc6pNutpjyZ8RJTjQtuYfeetkxM11GwoYXMIQ==} - engines: {node: '>= 0.10'} - - browserify-sign@4.2.3: - resolution: {integrity: sha512-JWCZW6SKhfhjJxO8Tyiiy+XYB7cqd2S5/+WeYHsKdNKFlCBhKbblba1A/HN/90YwtxKc8tCErjffZl++UNmGiw==} - engines: {node: '>= 0.12'} - - browserify-zlib@0.2.0: - resolution: {integrity: sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==} - browserslist@4.29.3: resolution: {integrity: sha512-1R4kiYKXGViqEN0CnoDrXc1StD9niAwu+j2dukWzrD4bJgsD4lDmEp0CRbc6E/vYJIfTHwPmwyaKtVSudICdPA==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} @@ -1968,18 +1810,9 @@ packages: buffer-from@1.1.2: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} - buffer-xor@1.0.3: - resolution: {integrity: sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==} - - buffer@4.9.2: - resolution: {integrity: sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==} - buffer@5.7.1: resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} - builtin-status-codes@3.0.0: - resolution: {integrity: sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==} - builtins@5.1.0: resolution: {integrity: sha512-SW9lzGTLvWTP1AY8xeAMZimqDrIaSdLQUcVr9DMef51niJ022Ri87SwRRKYm4A6iHfkPaiVUu/Duw2Wc4J7kKg==} @@ -1990,9 +1823,6 @@ packages: resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} engines: {node: '>= 0.8'} - cacache@12.0.4: - resolution: {integrity: sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==} - cacache@15.3.0: resolution: {integrity: sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==} engines: {node: '>= 10'} @@ -2063,16 +1893,6 @@ packages: resolution: {integrity: sha512-wqW3VdPnlSWT4eRiYX+hcs+C6ViBPUWk1qTCd+37qw9kEm/a5n2qcyQDMBWvSYKN/ctqZzeXNQaeBjOetJJUkw==} deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. - chokidar@2.1.8: - resolution: {integrity: sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==} - - chokidar@3.6.0: - resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} - engines: {node: '>= 8.10.0'} - - chownr@1.1.4: - resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} - chownr@2.0.0: resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} engines: {node: '>=10'} @@ -2085,10 +1905,6 @@ packages: resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} engines: {node: '>=8'} - cipher-base@1.0.6: - resolution: {integrity: sha512-3Ek9H3X6pj5TgenXYtNWdaBon1tgYCaebd+XPg0keyjEbEfkD4KkmAxkQ/i1vYvxdcT5nscLBfq9VJRmCBcFSw==} - engines: {node: '>= 0.10'} - class-utils@0.3.6: resolution: {integrity: sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==} engines: {node: '>=0.10.0'} @@ -2178,10 +1994,6 @@ packages: color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - color-support@1.1.3: - resolution: {integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==} - hasBin: true - colors@1.0.3: resolution: {integrity: sha512-pFGrxThWcWQ2MsAz6RtgeWe4NK2kUE1WfsrvvlctdII745EW9I0yflqhe7++M5LEc7bV2c/9/5zc8sFcpL0Drw==} engines: {node: '>=0.1.90'} @@ -2234,10 +2046,6 @@ packages: concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} - concat-stream@1.6.2: - resolution: {integrity: sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==} - engines: {'0': node >= 0.8} - config-chain@1.1.13: resolution: {integrity: sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==} @@ -2249,24 +2057,17 @@ packages: resolution: {integrity: sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==} engines: {node: '>= 0.10.0'} - console-browserify@1.2.0: - resolution: {integrity: sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==} - - console-control-strings@1.1.0: - resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==} - console-ui@3.1.2: resolution: {integrity: sha512-+5j3R4wZJcEYZeXk30whc4ZU/+fWW9JMTNntVuMYpjZJ9n26Cxr0tUBXco1NRjVZRpRVvZ4DDKKKIHNYeUG9Dw==} engines: {node: 6.* || 8.* || >= 10.*} - consolidate@0.16.0: - resolution: {integrity: sha512-Nhl1wzCslqXYTJVDyJCu3ODohy9OfBMB5uD2BiBTzd7w+QY0lBzafkR8y8755yMYHAaMD4NuzbAw03/xzfw+eQ==} - engines: {node: '>= 0.10.0'} - deprecated: Please upgrade to consolidate v1.0.0+ as it has been modernized with several long-awaited fixes implemented. Maintenance is supported by Forward Email at https://forwardemail.net ; follow/watch https://github.com/ladjs/consolidate for updates and release changelog + consolidate@1.0.4: + resolution: {integrity: sha512-RuZ3xnqEDsxiwaoIkqVeeK3gg9qxw7+YKYX2tKhLs1eukVKMgSr4VYI3iYFsRHi4TloHYDlugrz3kvkjs3nynA==} + engines: {node: '>=14'} peerDependencies: + '@babel/core': ^7.22.5 arc-templates: ^0.5.3 atpl: '>=0.7.6' - babel-core: ^6.26.3 bracket-template: ^1.1.5 coffee-script: ^1.12.7 dot: ^1.1.3 @@ -2282,14 +2083,12 @@ packages: handlebars: ^4.7.6 hogan.js: ^3.0.2 htmling: ^0.0.8 - jade: ^1.11.0 jazz: ^0.0.18 jqtpl: ~1.1.0 just: ^0.1.8 liquid-node: ^3.0.1 liquor: ^0.0.5 lodash: ^4.17.20 - marko: ^3.14.4 mote: ^0.2.0 mustache: ^4.0.1 nunjucks: ^3.2.2 @@ -2297,16 +2096,13 @@ packages: pug: ^3.0.0 qejs: ^3.0.5 ractive: ^1.3.12 - razor-tmpl: ^1.3.1 - react: ^16.13.1 - react-dom: ^16.13.1 + react: '>=16.13.1' + react-dom: '>=16.13.1' slm: ^2.0.0 - squirrelly: ^5.1.0 swig: ^1.4.2 swig-templates: ^2.0.3 teacup: ^2.0.0 templayed: '>=0.2.3' - then-jade: '*' then-pug: '*' tinyliquid: ^0.2.34 toffee: ^0.3.6 @@ -2318,12 +2114,12 @@ packages: walrus: ^0.10.1 whiskers: ^0.4.0 peerDependenciesMeta: + '@babel/core': + optional: true arc-templates: optional: true atpl: optional: true - babel-core: - optional: true bracket-template: optional: true coffee-script: @@ -2354,8 +2150,6 @@ packages: optional: true htmling: optional: true - jade: - optional: true jazz: optional: true jqtpl: @@ -2368,8 +2162,6 @@ packages: optional: true lodash: optional: true - marko: - optional: true mote: optional: true mustache: @@ -2384,16 +2176,12 @@ packages: optional: true ractive: optional: true - razor-tmpl: - optional: true react: optional: true react-dom: optional: true slm: optional: true - squirrelly: - optional: true swig: optional: true swig-templates: @@ -2402,8 +2190,6 @@ packages: optional: true templayed: optional: true - then-jade: - optional: true then-pug: optional: true tinyliquid: @@ -2425,9 +2211,6 @@ packages: whiskers: optional: true - constants-browserify@1.0.0: - resolution: {integrity: sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ==} - content-disposition@0.5.4: resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} engines: {node: '>= 0.6'} @@ -2439,9 +2222,6 @@ packages: continuable-cache@0.3.1: resolution: {integrity: sha512-TF30kpKhTH8AGCG3dut0rdd/19B7Z+qCnrMoBLpyQu/2drZdNrrpcjPEoJeSVsQM+8KmWG5O56oPDjSSUsuTyA==} - convert-source-map@1.9.0: - resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==} - convert-source-map@2.0.0: resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} @@ -2456,10 +2236,6 @@ packages: resolution: {integrity: sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==} engines: {node: '>= 0.6'} - copy-concurrently@1.0.5: - resolution: {integrity: sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==} - deprecated: This package is no longer supported. - copy-dereference@1.0.0: resolution: {integrity: sha512-40TSLuhhbiKeszZhK9LfNdazC67Ue4kq/gGwN5sdxEUWPXTIMmKmGmgD9mPfNKVAeecEW+NfEIpBaZoACCQLLw==} @@ -2485,15 +2261,6 @@ packages: resolution: {integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==} engines: {node: '>= 0.10'} - create-ecdh@4.0.4: - resolution: {integrity: sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==} - - create-hash@1.2.0: - resolution: {integrity: sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==} - - create-hmac@1.1.7: - resolution: {integrity: sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==} - cross-spawn@6.0.6: resolution: {integrity: sha512-VqCUuhcd1iB+dsv8gxPttb5iZh/D0iubSP21g36KXdEuf6I5JiioesUVjpCdHV9MZRUfVFlvwtIUyPfxo5trtw==} engines: {node: '>=4.8'} @@ -2502,10 +2269,6 @@ packages: resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} engines: {node: '>= 8'} - crypto-browserify@3.12.1: - resolution: {integrity: sha512-r4ESw/IlusD17lgQi1O20Fa3qNnsckR126TdUuBgAu7GBYSIPvdNyONd3Zrxh0xCwA4+6w/TDArBPsMvhur+KQ==} - engines: {node: '>= 0.10'} - crypto-random-string@2.0.0: resolution: {integrity: sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==} engines: {node: '>=8'} @@ -2525,9 +2288,6 @@ packages: engines: {node: '>=4'} hasBin: true - cyclist@1.0.2: - resolution: {integrity: sha512-0sVXIohTfLqVIW3kb/0n6IiWF3Ifj5nm2XaSrLq2DI6fKIGa2fYAZdk917rUneaeLVpYfFcyXE2ft0fe3remsA==} - dag-map@2.0.2: resolution: {integrity: sha512-xnsprIzYuDeiyu5zSKwilV/ajRHxnoMlAhEREfyfTgTSViMVY2fGP1ZcHJbtwup26oCkofySU/m6oKJ3HrkW7w==} @@ -2622,9 +2382,6 @@ packages: resolution: {integrity: sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==} engines: {node: '>=0.10.0'} - delegates@1.0.0: - resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==} - depd@1.1.2: resolution: {integrity: sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==} engines: {node: '>= 0.6'} @@ -2633,9 +2390,6 @@ packages: resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} engines: {node: '>= 0.8'} - des.js@1.1.0: - resolution: {integrity: sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg==} - destroy@1.2.0: resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} @@ -2644,10 +2398,6 @@ packages: resolution: {integrity: sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q==} engines: {node: '>=0.10.0'} - detect-indent@4.0.0: - resolution: {integrity: sha512-BDKtmHlOzwI7iRuEkhzsnPoi5ypEhWAJB5RvHWe1kMr06js3uK5B3734i3ui5Yd+wOJV1cpE4JnivPD283GU/A==} - engines: {node: '>=0.10.0'} - detect-indent@6.1.0: resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} engines: {node: '>=8'} @@ -2660,9 +2410,6 @@ packages: resolution: {integrity: sha512-vtcDfH3TOjP8UekytvnHH1o1P4FcUdt4eQ1Y+Abap1tk/OB2MWQvcwS2ClCd1zuIhc3JKOx6p3kod8Vfys3E+A==} engines: {node: '>=0.3.1'} - diffie-hellman@5.0.3: - resolution: {integrity: sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==} - dir-glob@3.0.1: resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} engines: {node: '>=8'} @@ -2674,10 +2421,6 @@ packages: dom-serializer@2.0.0: resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} - domain-browser@1.2.0: - resolution: {integrity: sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==} - engines: {node: '>=0.4', npm: '>=1.2'} - domelementtype@2.3.0: resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} @@ -2702,9 +2445,6 @@ packages: duplexer3@0.1.5: resolution: {integrity: sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==} - duplexify@3.7.1: - resolution: {integrity: sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==} - eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} @@ -2722,13 +2462,6 @@ packages: electron-to-chromium@1.5.456: resolution: {integrity: sha512-8hboqI6xesozteFb8aa7OGknvxUtTeRJLz0FoePysUEh/oWbddykIGdgpEJRbPRg/nIMfBf2DFos+H2MtvJl2A==} - elliptic@6.6.1: - resolution: {integrity: sha512-RaddvvMatK2LJHqFJ+YA4WysVN5Ita9E35botqIYspQ4TkRAlCicdzKOjlyv/1Za5RyTNn7di//eEV0uTAfe3g==} - - ember-auto-import@1.12.2: - resolution: {integrity: sha512-gLqML2k77AuUiXxWNon1FSzuG1DV7PEPpCLCU5aJvf6fdL6rmFfElsZRh+8ELEB/qP9dT+LHjNEunVzd2dYc8A==} - engines: {node: '>= 10.*'} - ember-auto-import@2.13.1: resolution: {integrity: sha512-MjxJK2nfCJmmQI/rju2TrycmAa1AxmTarfvygbcrrgW0s4WeZHtbGXCO2z1lW9wfrShqeTo/o+3Mgk+9xcDTWg==} engines: {node: 12.* || 14.* || >= 16} @@ -2845,11 +2578,12 @@ packages: resolution: {integrity: sha512-oq6+HYbeVD/BnxIO5AkP4gWlsatdgW2HFO10F8+XQiJZrwa7cC7Wm54JNGqQkavkDQTgNSiy1Fe2NILJ14MmAg==} engines: {node: 12.* || 14.* || >= 16} - ember-qunit@5.1.5: - resolution: {integrity: sha512-2cFA4oMygh43RtVcMaBrr086Tpdhgbn3fVZ2awLkzF/rnSN0D0PSRpd7hAD7OdBPerC/ZYRwzVyGXLoW/Zes4A==} - engines: {node: 10.* || 12.* || >= 14.*} + ember-qunit@6.2.0: + resolution: {integrity: sha512-mC+0bp8DwWzJLn8SW3GS8KDZIkl4yLsNYwMi5Dw6+aFllq7FM2crd/dfY4MuOIHK7GKdjtmWJTMGnjSpeSayaw==} + engines: {node: 14.* || 16.* || >= 18} peerDependencies: - '@ember/test-helpers': ^2.4.0 + '@ember/test-helpers': ^2.9.3 + ember-source: '>=3.28' qunit: ^2.13.0 ember-resolver@8.1.0: @@ -2928,10 +2662,6 @@ packages: resolution: {integrity: sha512-z34mGpLoY/82ZbkX1LqGMIaf3wjVMPL6gVC681QDqnmzJ26synI8qAE32P+a7UazmpJZ8UGrFIeAavgRfXzYrg==} engines: {node: '>=10.2.0'} - enhanced-resolve@4.5.0: - resolution: {integrity: sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg==} - engines: {node: '>=6.9.0'} - enhanced-resolve@5.26.0: resolution: {integrity: sha512-9vhedylFonb2YGogzUKX6+Ja72gOJbN1QHAqdrvqLwhdl/QWbKopzoUC9EbQNVsAns/bx/4uyqalrQAoy1IByw==} engines: {node: '>=10.13.0'} @@ -2964,10 +2694,6 @@ packages: resolution: {integrity: sha512-e64Qj9+4aZzjzzFpZC7p5kmm/ccCrbLhAJplhsDXQFs87XTsXwOpH4s1Io2s90Tau/8r2j9f4l/thhDevRjzxw==} engines: {node: '>=0.8'} - errno@0.1.8: - resolution: {integrity: sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==} - hasBin: true - error-ex@1.3.2: resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} @@ -3058,10 +2784,6 @@ packages: resolution: {integrity: sha512-EbDM0zJerH9zVdUswMJpcFF7wrrpvsGuYfNexUpa5hZkkdFhaFcX+yD+RSK4Nrauw4psMGlcqeWUMhaVo+Manw==} engines: {node: 12.x || 14.x || >=16.0.0} - eslint-scope@4.0.3: - resolution: {integrity: sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==} - engines: {node: '>=4.0.0'} - eslint-scope@5.1.1: resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} engines: {node: '>=8.0.0'} @@ -3142,9 +2864,6 @@ packages: resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} engines: {node: '>=0.8.x'} - evp_bytestokey@1.0.3: - resolution: {integrity: sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==} - exec-sh@0.3.6: resolution: {integrity: sha512-nQn+hI3yp+oD0huYhKwvYI32+JFeq+XkNcD1GAo3Y/MjxsfVGmrrzrnzjWiNY6f+pUCP440fThsFh5gZrRAU/w==} @@ -3168,6 +2887,10 @@ packages: resolution: {integrity: sha512-jpWzZ1ZhwUmeWRhS7Qv3mhpOhLfwI+uAX4e5fOcXqwMR7EcJ0pj2kV1CVzHVMX/LphnKWD3LObjZCoJ71lKpHw==} engines: {node: ^18.19.0 || >=20.5.0} + execa@9.6.1: + resolution: {integrity: sha512-9Be3ZoN4LmYR90tUoVu2te2BsbzHfhJyfEiAVfz7N5/zv+jduIfLrV2xdQXOHbaD6KgpGdO9PRPM1Y4Q9QkPkA==} + engines: {node: ^18.19.0 || >=20.5.0} + exit@0.1.2: resolution: {integrity: sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==} engines: {node: '>= 0.8.0'} @@ -3243,10 +2966,6 @@ packages: fb-watchman@2.0.2: resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==} - figgy-pudding@3.5.2: - resolution: {integrity: sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==} - deprecated: This module is no longer supported. - figures@2.0.0: resolution: {integrity: sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA==} engines: {node: '>=4'} @@ -3263,9 +2982,6 @@ packages: resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} engines: {node: ^10.12.0 || >=12.0.0} - file-uri-to-path@1.0.0: - resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==} - filesize@9.0.11: resolution: {integrity: sha512-gTAiTtI0STpKa5xesyTA9hA3LX4ga8sm2nWRcffEa1L/5vQwb4mj2MdzMkoHoGv4QzfDshQZuYscQSf8c4TKOA==} engines: {node: '>= 0.4.0'} @@ -3290,10 +3006,6 @@ packages: resolution: {integrity: sha512-oK59njMyw2y3yxto1BCfVK7MQp/OYf4FleHu0RgosH3riFJ1aOuo/7naLDLAObfrgn3ueFhw5sAT/cp0QuJI3Q==} engines: {node: '>=4.0.0'} - find-cache-dir@2.1.0: - resolution: {integrity: sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==} - engines: {node: '>=6'} - find-cache-dir@3.3.2: resolution: {integrity: sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==} engines: {node: '>=8'} @@ -3353,9 +3065,6 @@ packages: flatted@3.4.4: resolution: {integrity: sha512-5+ybhBZANEJxaH3X5evAFatUxLfEHSr7n6kYJ+1Qd0mUqr4eu9gIf6GDbWHf8RJijHrjjO8G+la14SlL2SeS1Q==} - flush-write-stream@1.1.1: - resolution: {integrity: sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==} - follow-redirects@1.16.1: resolution: {integrity: sha512-FNvFGzoMLWmE6Yj9spb/zjd7yiNCHiAW9/Tg9CXrQ8wuu32HtlJOwWO11OJafl5FfY3DxTdQ0vj42zU1kvv5jg==} engines: {node: '>=4.0'} @@ -3389,9 +3098,6 @@ packages: resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} engines: {node: '>= 0.6'} - from2@2.3.0: - resolution: {integrity: sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==} - fs-extra@0.24.0: resolution: {integrity: sha512-w1RvhdLZdU9V3vQdL+RooGlo6b9R9WVoBanOfoJvosWlqSKvrjFlci2oVhwvLwZXBtM7khyPvZ8r3fwsim3o0A==} @@ -3409,9 +3115,6 @@ packages: fs-extra@5.0.0: resolution: {integrity: sha512-66Pm4RYbjzdyeuqudYqhFiNBbCIuI9kgRqLPSHIlXHidW8NIQtVdkM1yeZ4lXwuhbTETv3EUGMNHAAw6hiundQ==} - fs-extra@6.0.1: - resolution: {integrity: sha512-GnyIkKhhzXZUWFCaJzvyDLEEgDkPfb4/TPvJCJVuS8MWZgoSsErf++QpiAlDnKFcqhRlm+tIOcencCjyJE6ZCA==} - fs-extra@7.0.1: resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==} engines: {node: '>=6 <7 || >=8'} @@ -3442,24 +3145,9 @@ packages: resolution: {integrity: sha512-0pJX4mJF/qLsNEwTct8CdnnRdagfb+LmjRPJ8sO+nCnAZLW0cTmz4rTgU25n+RvTuWSITiLKrGVJceJPBIPlKg==} engines: {node: '>=6.0.0'} - fs-write-stream-atomic@1.0.10: - resolution: {integrity: sha512-gehEzmPn2nAwr39eay+x3X34Ra+M2QlVUTLhkXPjWdeO8RF9kszk116avgBJM3ZyNHgHXBNx+VmPaFC36k0PzA==} - deprecated: This package is no longer supported. - fs.realpath@1.0.0: resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} - fsevents@1.2.13: - resolution: {integrity: sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==} - engines: {node: '>= 4.0'} - os: [darwin] - deprecated: Upgrade to fsevents v2 to mitigate potential security issues - - fsevents@2.3.3: - resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} - engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} - os: [darwin] - function-bind@1.1.2: resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} @@ -3477,11 +3165,6 @@ packages: resolution: {integrity: sha512-cJaJkxCCxC8qIIcPBF9yGxY0W/tVZS3uEISDxhYIdtk8OL93pe+6Zj7LjCqVV4dzbqcriOZ+kQ/NE4RXZHsIGA==} engines: {node: '>=10'} - gauge@4.0.4: - resolution: {integrity: sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - deprecated: This package is no longer supported. - gensync@1.0.0-beta.2: resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} engines: {node: '>=6.9.0'} @@ -3542,9 +3225,6 @@ packages: engines: {node: 18.* || 20.* || >= 22} hasBin: true - glob-parent@3.1.0: - resolution: {integrity: sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==} - glob-parent@5.1.2: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} engines: {node: '>= 6'} @@ -3554,6 +3234,10 @@ packages: deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me hasBin: true + glob@13.0.6: + resolution: {integrity: sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw==} + engines: {node: 18 || 20 || >=22} + glob@5.0.15: resolution: {integrity: sha512-c9IPMazfRITpmAAKi22dK1VKxGDX9ehhqfABDriL/lzO92xcUKEJPQHrVA/2YHSNFB4iFlykVmWvwo48nr3OxA==} deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me @@ -3574,10 +3258,6 @@ packages: resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} engines: {node: '>=8'} - globals@9.18.0: - resolution: {integrity: sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==} - engines: {node: '>=0.10.0'} - globalthis@1.0.4: resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} engines: {node: '>= 0.4'} @@ -3660,9 +3340,6 @@ packages: resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} engines: {node: '>= 0.4'} - has-unicode@2.0.1: - resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==} - has-value@0.3.1: resolution: {integrity: sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==} engines: {node: '>=0.10.0'} @@ -3679,20 +3356,9 @@ packages: resolution: {integrity: sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==} engines: {node: '>=0.10.0'} - hash-base@3.0.5: - resolution: {integrity: sha512-vXm0l45VbcHEVlTCzs8M+s0VeYsB2lnlAaThoLKGXr3bE/VWDOelNUnycUPEhKEaXARL2TEFjBOyUiM6+55KBg==} - engines: {node: '>= 0.10'} - - hash-base@3.1.2: - resolution: {integrity: sha512-Bb33KbowVTIj5s7Ked1OsqHUeCpz//tPwR+E2zJgJKo9Z5XolZ9b6bdUgjmYlwnWhoOQKoTd1TYToZGn5mAYOg==} - engines: {node: '>= 0.8'} - hash-for-dep@1.5.1: resolution: {integrity: sha512-/dQ/A2cl7FBPI2pO0CANkvuuVi/IFS5oTyJ0PsOb6jW6WbVW1js5qJXMJTNbWHXBIPdFTWFbabjB+mE0d+gelw==} - hash.js@1.1.7: - resolution: {integrity: sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==} - hasown@2.0.2: resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} engines: {node: '>= 0.4'} @@ -3713,13 +3379,6 @@ packages: highlight.js@10.7.3: resolution: {integrity: sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==} - hmac-drbg@1.0.1: - resolution: {integrity: sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==} - - home-or-tmp@2.0.0: - resolution: {integrity: sha512-ycURW7oUxE2sNiPVw1HVEFsW+ecOpJ5zaj7eC0RlwhibhRBod20muUN8qu/gzx956YrLolVvs1MTXwKgC2rVEg==} - engines: {node: '>=0.10.0'} - homedir-polyfill@1.0.3: resolution: {integrity: sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==} engines: {node: '>=0.10.0'} @@ -3768,9 +3427,6 @@ packages: resolution: {integrity: sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==} engines: {node: '>=8.0.0'} - https-browserify@1.0.0: - resolution: {integrity: sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg==} - https-proxy-agent@5.0.1: resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} engines: {node: '>= 6'} @@ -3810,9 +3466,6 @@ packages: ieee754@1.2.1: resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} - iferr@0.1.5: - resolution: {integrity: sha512-DUNFN5j7Tln0D+TxzloUjKB+CtVu6myn0JEFak6dG18mNt9YkQ6lzGCdafwofISZ1lLF3xRHJ98VKy9ynkcFaA==} - ignore@4.0.6: resolution: {integrity: sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==} engines: {node: '>= 4'} @@ -3881,9 +3534,6 @@ packages: resolution: {integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==} engines: {node: '>= 0.4'} - invariant@2.2.4: - resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==} - ip-address@9.0.5: resolution: {integrity: sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==} engines: {node: '>= 12'} @@ -3911,14 +3561,6 @@ packages: resolution: {integrity: sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==} engines: {node: '>= 0.4'} - is-binary-path@1.0.1: - resolution: {integrity: sha512-9fRVlXc0uCxEDj1nQzaWONSpbTfx0FmJfzHF7pwlI8DkWGoHBBea4Pg5Ky0ojwwxQmnSifgbKkI06Qv0Ljgj+Q==} - engines: {node: '>=0.10.0'} - - is-binary-path@2.1.0: - resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} - engines: {node: '>=8'} - is-boolean-object@1.2.2: resolution: {integrity: sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==} engines: {node: '>= 0.4'} @@ -3975,10 +3617,6 @@ packages: resolution: {integrity: sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==} engines: {node: '>= 0.4'} - is-finite@1.1.0: - resolution: {integrity: sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==} - engines: {node: '>=0.10.0'} - is-fullwidth-code-point@2.0.0: resolution: {integrity: sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==} engines: {node: '>=4'} @@ -3995,10 +3633,6 @@ packages: resolution: {integrity: sha512-UCFta9F9rWFSavp9H3zHEHrARUfZbdJvmHKeEpds4BK3v7W2LdXoNypMtXXi5w5YBDEBCTYmbI+vsSwI8LYJaQ==} engines: {node: '>=0.8'} - is-glob@3.1.0: - resolution: {integrity: sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==} - engines: {node: '>=0.10.0'} - is-glob@4.0.3: resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} engines: {node: '>=0.10.0'} @@ -4119,10 +3753,6 @@ packages: resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} engines: {node: '>=0.10.0'} - is-wsl@1.1.0: - resolution: {integrity: sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==} - engines: {node: '>=4'} - is-wsl@2.2.0: resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} engines: {node: '>=8'} @@ -4177,9 +3807,6 @@ packages: resolution: {integrity: sha512-Smw4xcfIQ5LVjAOuJCvN/zIodzA/BBSsluuoSykP+lUvScIi4U6RJLfwHet5cxFnCswUjISV8oAXaqaJDY3chg==} engines: {node: '>= 0.8'} - js-tokens@3.0.2: - resolution: {integrity: sha512-RjTcuD4xjtthQkaWH7dFlH85L+QaVtSoOyGdZ3g6HFhS9dFNDfLyqgm2NFe2X6cQpeFmt0452FJjFG5UameExg==} - js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} @@ -4194,10 +3821,6 @@ packages: jsbn@1.1.0: resolution: {integrity: sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==} - jsesc@1.3.0: - resolution: {integrity: sha512-Mke0DA0QjUWuJlhsE0ZPPhYiJkRap642SmI/4ztCFaUs6V2AiH1sfecc+57NgaryfAA2VR3v6O+CSjC1jZJKOA==} - hasBin: true - jsesc@3.0.2: resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==} engines: {node: '>=6'} @@ -4234,10 +3857,6 @@ packages: resolution: {integrity: sha512-qtYiSSFlwot9XHtF9bD9c7rwKjr+RecWT//ZnPvSmEjpV5mmPOCN4j8UjY5hbjNkOwZ/jQv3J6R1/pL7RwgMsg==} engines: {node: '>= 0.4'} - json5@0.5.1: - resolution: {integrity: sha512-4xrs1aW+6N5DalkqSVA8fxh458CXvR99WU8WLKmq4v8eWAL86Xo3BVqyd3SkA9wEVjCMqyvvRRkshAdOnBp5rw==} - hasBin: true - json5@1.0.2: resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} hasBin: true @@ -4332,14 +3951,6 @@ packages: resolution: {integrity: sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==} engines: {node: '>=4'} - loader-runner@2.4.0: - resolution: {integrity: sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==} - engines: {node: '>=4.3.0 <5.0.0 || >=5.10'} - - loader-utils@1.4.2: - resolution: {integrity: sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==} - engines: {node: '>=4.0.0'} - loader-utils@2.0.4: resolution: {integrity: sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==} engines: {node: '>=8.9.0'} @@ -4455,10 +4066,6 @@ packages: resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} engines: {node: '>=10'} - loose-envify@1.4.0: - resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} - hasBin: true - lower-case@2.0.2: resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} @@ -4473,6 +4080,10 @@ packages: lru-cache@10.4.3: resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} + lru-cache@11.5.3: + resolution: {integrity: sha512-U4N8FgzmWxc8k1VH8Kr6lQg18U7Fjvby6wXHVRX/ZZ7IwWbRMgrRbP0Wrb5q5NVinryp4SQampHKdvtecItxUg==} + engines: {node: 20 || >=22} + lru-cache@5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} @@ -4490,10 +4101,6 @@ packages: magic-string@0.30.17: resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==} - make-dir@2.1.0: - resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==} - engines: {node: '>=6'} - make-dir@3.1.0: resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} engines: {node: '>=8'} @@ -4539,9 +4146,6 @@ packages: resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} engines: {node: '>= 0.4'} - md5.js@1.3.5: - resolution: {integrity: sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==} - mdn-data@2.0.30: resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==} @@ -4556,13 +4160,6 @@ packages: resolution: {integrity: sha512-qFCFUDs7U3b8mBDPyz5EToEKoAkgCzqquIgi9nkkR9bixxOVOre+09lbuH7+9Kn2NFpm56M3GUWVbU2hQgdACA==} engines: {node: '>=10'} - memory-fs@0.4.1: - resolution: {integrity: sha512-cda4JKCxReDXFXRqOHPQscuIYg1PvxbE2S2GP45rnwfEK+vZaXC8C1OFvdHIbgw0DLzowXGVoxLaAmlgRy14GQ==} - - memory-fs@0.5.0: - resolution: {integrity: sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==} - engines: {node: '>=4.3.0 <5.0.0 || >=5.10'} - memory-streams@0.1.3: resolution: {integrity: sha512-qVQ/CjkMyMInPaaRMrwWNDvf6boRZXaT/DbQeMYcCWuXPEBf1v8qChOc9OlEVQp2uOvRXa1Qu30fLmKhY6NipA==} @@ -4595,10 +4192,6 @@ packages: resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} engines: {node: '>=8.6'} - miller-rabin@4.0.1: - resolution: {integrity: sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==} - hasBin: true - mime-db@1.52.0: resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} engines: {node: '>= 0.6'} @@ -4638,11 +4231,9 @@ packages: peerDependencies: webpack: ^5.0.0 - minimalistic-assert@1.0.1: - resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==} - - minimalistic-crypto-utils@1.0.1: - resolution: {integrity: sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==} + minimatch@10.2.6: + resolution: {integrity: sha512-vpLQEs+VLCr1nU0BXS07maYoFwlDAH0gngQuuttxIwutDFEMHq2blX+8vpgxDdK3J1PwjCJiep77OitTZ4Ll1A==} + engines: {node: 18 || 20 || >=22} minimatch@3.1.5: resolution: {integrity: sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==} @@ -4751,14 +4342,14 @@ packages: resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} engines: {node: '>=16 || 14 >=14.17'} + minipass@7.1.3: + resolution: {integrity: sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==} + engines: {node: '>=16 || 14 >=14.17'} + minizlib@2.1.2: resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} engines: {node: '>= 8'} - mississippi@3.0.0: - resolution: {integrity: sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==} - engines: {node: '>=4.0.0'} - mixin-deep@1.3.2: resolution: {integrity: sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==} engines: {node: '>=0.10.0'} @@ -4788,10 +4379,6 @@ packages: mout@1.2.4: resolution: {integrity: sha512-mZb9uOruMWgn/fw28DG4/yE3Kehfk1zKCLhuDU2O3vlKdnBBr4XaOCqVTflJ5aODavGUPqFHZgrFX3NJVuxGhQ==} - move-concurrently@1.0.1: - resolution: {integrity: sha512-hdrFxZOycD/g6A6SoI2bB5NA/5NEqD0569+S47WZhPvm46sD50ZHdYaFmnua5lndde9rCHGjmfK7Z8BuCt/PcQ==} - deprecated: This package is no longer supported. - ms@2.0.0: resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} @@ -4811,9 +4398,6 @@ packages: mz@2.7.0: resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} - nan@2.23.0: - resolution: {integrity: sha512-1UxuyYGdoQHcGg87Lkqm3FzefucTa0NAiOcuRsDmysep3c1LVCRK2krrUDafMWtjSG04htvAmvg96+SDknOmgQ==} - nanoid@3.3.20: resolution: {integrity: sha512-uKdg2G3GNCKQn9byYOpxbGqrT2fGO5KRt5J/8b3pok8rT6qxGWF6hxMyJiEYtAf+FVyYuD9hRaDqX5uPFYJ4ZQ==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} @@ -4855,9 +4439,6 @@ packages: node-int64@0.4.0: resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} - node-libs-browser@2.2.1: - resolution: {integrity: sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==} - node-modules-path@1.0.2: resolution: {integrity: sha512-6Gbjq+d7uhkO7epaKi5DNgUJn7H0gEyA4Jg0Mo1uQOi3Rk50G83LtmhhFyw0LxnAFhtlspkiiw52ISP13qzcBg==} @@ -4932,11 +4513,6 @@ packages: resolution: {integrity: sha512-9qny7Z9DsQU8Ou39ERsPU4OZQlSTP47ShQzuKZ6PRXpYLtIFgl/DEBYEXKlvcEa+9tHVcK8CF81Y2V72qaZhWA==} engines: {node: '>=18'} - npmlog@6.0.2: - resolution: {integrity: sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - deprecated: This package is no longer supported. - object-assign@4.1.1: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} engines: {node: '>=0.10.0'} @@ -5004,9 +4580,6 @@ packages: resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==} engines: {node: '>=10'} - os-browserify@0.3.0: - resolution: {integrity: sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==} - os-homedir@1.0.2: resolution: {integrity: sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ==} engines: {node: '>=0.10.0'} @@ -5106,20 +4679,10 @@ packages: resolution: {integrity: sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==} engines: {node: '>=8'} - pako@1.0.11: - resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==} - - parallel-transform@1.2.0: - resolution: {integrity: sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==} - parent-module@1.0.1: resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} engines: {node: '>=6'} - parse-asn1@5.1.7: - resolution: {integrity: sha512-CTM5kuWR3sx9IFamcl5ErfPl6ea/N8IYwiJ+vpeB2g+1iknv7zBl5uPwbMbRVznRVbrNY6lGuDoE5b30grmbqg==} - engines: {node: '>= 0.10'} - parse-github-repo-url@1.4.1: resolution: {integrity: sha512-bSWyzBKqcSL4RrncTpGsEKoJ7H8a4L3++ifTAbTFeMHyq2wRV+42DGmQcHIrJIvdcacjIOxEuKH/w4tthF17gg==} @@ -5155,13 +4718,6 @@ packages: resolution: {integrity: sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==} engines: {node: '>=0.10.0'} - path-browserify@0.0.1: - resolution: {integrity: sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==} - - path-dirname@1.0.2: - resolution: {integrity: sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q==} - deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. - path-exists@3.0.0: resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==} engines: {node: '>=4'} @@ -5208,6 +4764,10 @@ packages: resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} engines: {node: '>=16 || 14 >=14.18'} + path-scurry@2.0.2: + resolution: {integrity: sha512-3O/iVVsJAPsOnpwWIeD+d6z/7PmqApyQePUtCndjatj/9I5LylHvt5qluFaBT3I5h3r1ejfR056c+FCv+NnNXg==} + engines: {node: 18 || 20 || >=22} + path-to-regexp@0.1.13: resolution: {integrity: sha512-A/AGNMFN3c8bOlvV9RreMdrv7jsmF9XIfDeCd87+I8RNg6s78BhJxMu69NEMHBSJFxKidViTEdruRwEk/WIKqA==} @@ -5219,10 +4779,6 @@ packages: resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} engines: {node: '>=8'} - pbkdf2@3.1.7: - resolution: {integrity: sha512-nS4mvFgVwUrecPTRdpdseM2fwpdfnX0/HibA8DgBRQtihUAzHQYJFU2l+OlEtiXtpqkrMvCPDwyXMUnASDt6Qw==} - engines: {node: '>= 0.10'} - picocolors@1.1.1: resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} @@ -5239,10 +4795,6 @@ packages: resolution: {integrity: sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==} engines: {node: '>=4'} - pify@4.0.1: - resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} - engines: {node: '>=6'} - pinkie-promise@2.0.1: resolution: {integrity: sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==} engines: {node: '>=0.10.0'} @@ -5251,10 +4803,6 @@ packages: resolution: {integrity: sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==} engines: {node: '>=0.10.0'} - pkg-dir@3.0.0: - resolution: {integrity: sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==} - engines: {node: '>=6'} - pkg-dir@4.2.0: resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} engines: {node: '>=8'} @@ -5354,16 +4902,9 @@ packages: resolution: {integrity: sha512-Azwzvl90HaF0aCz1JrDdXQykFakSSNPaPoiZ9fm5qJIMHioDZEi7OAdRwSm6rSoPtY3Qutnm3L7ogmg3dc+wbQ==} engines: {node: ^18.17.0 || >=20.5.0} - process-nextick-args@2.0.1: - resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} - process-relative-require@1.0.0: resolution: {integrity: sha512-r8G5WJPozMJAiv8sDdVWKgJ4In/zBXqwJdMCGAXQt2Kd3HdbAuJVzWYM4JW150hWoaI9DjhtbjcsCCHIMxm8RA==} - process@0.11.10: - resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} - engines: {node: '>= 0.6.0'} - progress@2.0.3: resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==} engines: {node: '>=0.4.0'} @@ -5401,24 +4942,9 @@ packages: resolution: {integrity: sha512-5nnx0yGyVUcY6t9RnWcARWtwT9F1D8O9rt08htPvnd49W1IgZtmLkhu9WfMzQj1cFxjHIO6connUNVW5k7AVyQ==} engines: {node: '>= 0.10'} - prr@1.0.1: - resolution: {integrity: sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==} - - public-encrypt@4.0.3: - resolution: {integrity: sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==} - - pump@2.0.1: - resolution: {integrity: sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==} - pump@3.0.3: resolution: {integrity: sha512-todwxLMY7/heScKmntwQG8CXVkWUOdYxIvY2s0VWAAMh/nd8SoYiRaKjlr7+iCs984f2P8zvrfWcDDYVb73NfA==} - pumpify@1.5.1: - resolution: {integrity: sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==} - - punycode@1.4.1: - resolution: {integrity: sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==} - punycode@2.3.1: resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} @@ -5427,10 +4953,6 @@ packages: resolution: {integrity: sha512-h6fhOIaRrID2CbEY2fqs+7t+UXZo+MLAnU5gRIq85uFtdiUPCdsApMlHhXogKVM4HM2DVbIjGNTTYH2OcmP1vA==} engines: {node: '>=0.6'} - querystring-es3@0.2.1: - resolution: {integrity: sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA==} - engines: {node: '>=0.4.x'} - queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} @@ -5446,12 +4968,6 @@ packages: engines: {node: '>=10'} hasBin: true - randombytes@2.1.0: - resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} - - randomfill@1.0.4: - resolution: {integrity: sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==} - range-parser@1.2.1: resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} engines: {node: '>= 0.6'} @@ -5476,21 +4992,10 @@ packages: readable-stream@1.0.34: resolution: {integrity: sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==} - readable-stream@2.3.8: - resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} - readable-stream@3.6.2: resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} engines: {node: '>= 6'} - readdirp@2.2.1: - resolution: {integrity: sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==} - engines: {node: '>=0.10'} - - readdirp@3.6.0: - resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} - engines: {node: '>=8.10.0'} - recast@0.18.10: resolution: {integrity: sha512-XNvYvkfdAN9QewbrxeTOjgINkdY/odTgTS56ZNEWL9Ml0weT4T3sFtvnTuF+Gxyu46ANcRm1ntrF6F5LAJPAaQ==} engines: {node: '>= 4'} @@ -5509,9 +5014,6 @@ packages: regenerate@1.4.2: resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==} - regenerator-runtime@0.11.1: - resolution: {integrity: sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==} - regenerator-runtime@0.13.11: resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==} @@ -5576,10 +5078,6 @@ packages: resolution: {integrity: sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==} engines: {node: '>=0.10'} - repeating@2.0.1: - resolution: {integrity: sha512-ZqtSMuVybkISo2OWvqvm7iHSWngvdaW3IpsT9/uP8v4gMi591LY6h35wdOfvQdWCKFWZWm2Y1Opp4kV7vQKT6A==} - engines: {node: '>=0.10.0'} - require-directory@2.1.1: resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} engines: {node: '>=0.10.0'} @@ -5683,12 +5181,10 @@ packages: deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true - ripemd160@2.0.2: - resolution: {integrity: sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==} - - ripemd160@2.0.3: - resolution: {integrity: sha512-5Di9UC0+8h1L6ZD2d7awM7E/T4uA1fJRlx6zk/NvdCCVEoAnFqvHmCuNeIKoCeIixBX/q8uM+6ycDvF8woqosA==} - engines: {node: '>= 0.8'} + rimraf@6.1.3: + resolution: {integrity: sha512-LKg+Cr2ZF61fkcaK1UdkH2yEBBKnYjTyWzTJT6KNPcSPaiT7HSdhtMXQuN5wkTX0Xu72KQ1l8S42rlmexS2hSA==} + engines: {node: 20 || >=22} + hasBin: true rsvp@3.2.1: resolution: {integrity: sha512-Rf4YVNYpKjZ6ASAmibcwTNciQ5Co5Ztq6iZPEykHpkoflnD/K5ryE/rHehFsTm4NJj8nKDhbi3eKBWGogmNnkg==} @@ -5708,9 +5204,6 @@ packages: run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} - run-queue@1.0.3: - resolution: {integrity: sha512-ntymy489o0/QQplUDnpYAYUsO50K9SBrIVaKCWDOJzYJts0f9WH9RFJkyagebkw5+y1oi00R7ynNW/d12GBumg==} - rxjs@6.6.7: resolution: {integrity: sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==} engines: {npm: '>=2.0.0'} @@ -5757,10 +5250,6 @@ packages: engines: {node: 10.* || >= 12.*} hasBin: true - schema-utils@1.0.0: - resolution: {integrity: sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==} - engines: {node: '>= 4'} - schema-utils@2.7.1: resolution: {integrity: sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==} engines: {node: '>= 8.9.0'} @@ -5790,16 +5279,10 @@ packages: resolution: {integrity: sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==} engines: {node: '>= 0.8.0'} - serialize-javascript@4.0.0: - resolution: {integrity: sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==} - serve-static@1.16.2: resolution: {integrity: sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==} engines: {node: '>= 0.8.0'} - set-blocking@2.0.0: - resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} - set-function-length@1.2.2: resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} engines: {node: '>= 0.4'} @@ -5816,20 +5299,12 @@ packages: resolution: {integrity: sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==} engines: {node: '>=0.10.0'} - setimmediate@1.0.5: - resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==} - setprototypeof@1.1.0: resolution: {integrity: sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==} setprototypeof@1.2.0: resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} - sha.js@2.4.12: - resolution: {integrity: sha512-8LzC5+bvI45BjpfXU8V5fdU2mfeKiQe1D1gIMn7XUlF3OTUrpdJpPPH4EMAnF0DsHHdSZqCdSss5qCmJKuiO3w==} - engines: {node: '>= 0.10'} - hasBin: true - shebang-command@1.2.0: resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==} engines: {node: '>=0.10.0'} @@ -5890,10 +5365,6 @@ packages: simple-html-tokenizer@0.5.11: resolution: {integrity: sha512-C2WEK/Z3HoSFbYq8tI7ni3eOo/NneSPRoPpcM7WdLjFOArFuyXEjAoCdOC3DgMfRyziZQ1hCNR4mrNdWEvD0og==} - slash@1.0.0: - resolution: {integrity: sha512-3TYDR7xWt4dIqV2JauJr+EJeW356RXijHeUlO+8djJ+uBXPn8/2dpzBc8yQhh583sVvc9CvFAeQVgijsH+PNNg==} - engines: {node: '>=0.10.0'} - slash@3.0.0: resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} engines: {node: '>=8'} @@ -5951,9 +5422,6 @@ packages: resolution: {integrity: sha512-FYsjYn2dHTRb41wqnv+uEqCUvBpK3jZcTp9rbz2qDTmel7Pmdtf+i2rLaaPMRZeSVM60V3Se31GyWFpmKs4Q5Q==} hasBin: true - source-list-map@2.0.1: - resolution: {integrity: sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==} - source-map-js@1.2.2: resolution: {integrity: sha512-KGj/8Y43x35aZVDtt+J4mK1hoLGHULMYfSkODJNQjNDC3oW1PqPoxMwo0pLUsWM/UEGzON/NxeHywEfNXNP3Vw==} engines: {node: '>=0.10.0'} @@ -5962,9 +5430,6 @@ packages: resolution: {integrity: sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==} deprecated: See https://github.com/lydell/source-map-resolve#deprecated - source-map-support@0.4.18: - resolution: {integrity: sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==} - source-map-support@0.5.21: resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} @@ -6021,9 +5486,6 @@ packages: resolution: {integrity: sha512-DQIMWCAr/M7phwo+d3bEfXwSBEwuaJL+SJx9cuqt1Ty7K96ZFoHpYnSbhrQZEr0+0/GtmpKECP8X/R4RyeTAfw==} engines: {node: '>= 0.10.4'} - ssri@6.0.2: - resolution: {integrity: sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q==} - ssri@8.0.1: resolution: {integrity: sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==} engines: {node: '>= 8'} @@ -6052,18 +5514,6 @@ packages: resolution: {integrity: sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==} engines: {node: '>= 0.4'} - stream-browserify@2.0.2: - resolution: {integrity: sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==} - - stream-each@1.2.3: - resolution: {integrity: sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==} - - stream-http@2.8.3: - resolution: {integrity: sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==} - - stream-shift@1.0.3: - resolution: {integrity: sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==} - string-template@0.2.1: resolution: {integrity: sha512-Yptehjogou2xm4UJbxJ4CxgZx12HBfeystp0y3x7s4Dj32ltVVG1Gg8YhKjHZkHicuKpZX/ffilA8505VbUbpw==} @@ -6102,9 +5552,6 @@ packages: string_decoder@0.10.31: resolution: {integrity: sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==} - string_decoder@1.1.1: - resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} - string_decoder@1.3.0: resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} @@ -6206,10 +5653,6 @@ packages: resolution: {integrity: sha512-05G8/LrzqOOFvZhhAk32wsGiPZ1lfUrl+iV7+OkKgfofZxiceZWMHkKmow71YsyVQ8IvGBP2EjcIjE5gL4l5lA==} hasBin: true - tapable@1.1.3: - resolution: {integrity: sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==} - engines: {node: '>=6'} - tapable@2.3.3: resolution: {integrity: sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A==} engines: {node: '>=6'} @@ -6223,17 +5666,6 @@ packages: resolution: {integrity: sha512-yYrrsWnrXMcdsnu/7YMYAofM1ktpL5By7vZhf15CrXijWWrEYZks5AXBudalfSWJLlnen/QUJUB5aoB0kqZUGA==} engines: {node: '>=6.0.0'} - terser-webpack-plugin@1.4.6: - resolution: {integrity: sha512-2lBVf/VMVIddjSn3GqbT90GvIJ/eYXJkt8cTzU7NbjKqK8fwv18Ftr4PlbF46b/e88743iZFL5Dtr/rC4hjIeA==} - engines: {node: '>= 6.9.0'} - peerDependencies: - webpack: ^4.0.0 - - terser@4.8.1: - resolution: {integrity: sha512-4GnLC0x667eJG0ewJTa6z/yXrbLGv80D9Ru6HIpCQmO+Q4PfEtBFi0ObSckqwL6VyQv/7ENJieXHo2ANmdQwgw==} - engines: {node: '>=6.0.0'} - hasBin: true - terser@5.43.1: resolution: {integrity: sha512-+6erLbBm0+LROX2sPXlUYx/ux5PyE9K/a92Wrt6oA+WDAoFTdpHE5tCYCI5PNzq2y8df4rA+QgHLJuR4jNymsg==} engines: {node: '>=10'} @@ -6244,8 +5676,8 @@ packages: engines: {node: '>=10'} hasBin: true - testem@3.16.0: - resolution: {integrity: sha512-TKQ3CuG/u+vDa7IUQgRQHN753wjDlgYMWE45KF5WkXyWjTNxXHPrY0qPBmHWI+kDYWc3zsJqzbS7pdzt5sc33A==} + testem@3.19.1: + resolution: {integrity: sha512-h9LKg7pAF3B0aqp3V3Kx8vFlB/ocB1xXvRY1YxZyIKvV/3ZUXqYadi8OD2T15VoFjUZlRrm39s9e7N8A+gYBfA==} engines: {node: '>= 7.*'} hasBin: true @@ -6263,19 +5695,12 @@ packages: thenify@3.3.1: resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} - through2@2.0.5: - resolution: {integrity: sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==} - through2@3.0.2: resolution: {integrity: sha512-enaDQ4MUyP2W6ZyT6EsMzqBPZaM/avg8iuo+l2d3QCs0J+6RaqkHV/2/lOwDTueBHeJ/2LG9lrLW3d5rWPucuQ==} through@2.3.8: resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} - timers-browserify@2.0.12: - resolution: {integrity: sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==} - engines: {node: '>=0.6.0'} - tiny-glob@0.2.9: resolution: {integrity: sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==} @@ -6301,21 +5726,6 @@ packages: tmpl@1.0.5: resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==} - to-arraybuffer@1.0.1: - resolution: {integrity: sha512-okFlQcoGTi4LQBG/PgSYblw9VOyptsz2KJZqc6qtgGdes8VktzUQkj4BI2blit072iS8VODNcMA+tvnS9dnuMA==} - - to-buffer@1.2.1: - resolution: {integrity: sha512-tB82LpAIWjhLYbqjx3X4zEeHN6M8CiuOEy2JY8SEQVdYRe3CCHOFaqrBW1doLDrfpWhplcW7BL+bO3/6S3pcDQ==} - engines: {node: '>= 0.4'} - - to-buffer@1.2.2: - resolution: {integrity: sha512-db0E3UJjcFhpDhAF4tLo03oli3pwl3dbnzXOUIlRKrp+ldk/VUxzpWYZENsw2SZiuBjHAk7DfB0VU7NKdpb6sw==} - engines: {node: '>= 0.4'} - - to-fast-properties@1.0.3: - resolution: {integrity: sha512-lxrWP8ejsq+7E3nNjwYmUBMAgjMTZoTI+sdBOpvNyijeDLa29LUn9QaoXAHv4+Z578hbmHHJKZknzxVtvo77og==} - engines: {node: '>=0.10.0'} - to-object-path@0.3.0: resolution: {integrity: sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==} engines: {node: '>=0.10.0'} @@ -6350,19 +5760,12 @@ packages: resolution: {integrity: sha512-OLWW+Nd99NOM53aZ8ilT/YpEiOo6mXD3F4/wLbARqybSZ3Jb8IxHK5UGVbZaae0wtXAyQshVV+SeqVBik+Fbmw==} engines: {node: '>=8'} - trim-right@1.0.1: - resolution: {integrity: sha512-WZGXGstmCWgeevgTL54hrCuw1dyMQIzWy7ZfqRJfSmJZBwklI15egmQytFP6bPidmw3M8d5yEowl1niq4vmqZw==} - engines: {node: '>=0.10.0'} - tslib@1.14.1: resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} tslib@2.8.1: resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} - tty-browserify@0.0.0: - resolution: {integrity: sha512-JVa5ijo+j/sOoHGjw0sxw734b1LhBkQ3bvUGNdxnVXDCX81Yx7TFgnZygxrIIWn23hbfTaMYLwRmAxFyDuFmIw==} - type-check@0.4.0: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} engines: {node: '>= 0.8.0'} @@ -6406,9 +5809,6 @@ packages: typedarray-to-buffer@3.1.5: resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==} - typedarray@0.0.6: - resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==} - typescript-memoize@1.1.1: resolution: {integrity: sha512-GQ90TcKpIH4XxYTI2F98yEQYZgjNMOGPpOgdjIBhaLaWji5HPWlRnZ4AeA1hfBxtY7bCGDJsqDDHk/KaHOl5bA==} @@ -6490,10 +5890,6 @@ packages: resolution: {integrity: sha512-sJjbDp2GodvkB0FZZcn7k6afVisqX5BZD7Yq3xp4nN2O15BBK0cLm3Vwn2vQaF7UDS0UUsrQMkkplmDI5fskig==} engines: {node: '>=0.10.0'} - upath@1.2.0: - resolution: {integrity: sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==} - engines: {node: '>=4'} - upath@2.0.1: resolution: {integrity: sha512-1uEe95xksV1O0CYKXo8vQvN1JEbtJp7lb7C5U9HMsIp6IVwntkH/oNUzyVNQSd4S1sYk2FpSSW44FqMc8qee5w==} engines: {node: '>=4'} @@ -6515,10 +5911,6 @@ packages: resolution: {integrity: sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ==} engines: {node: '>=4'} - url@0.11.4: - resolution: {integrity: sha512-oCwdVC7mTuWiPyjLUz/COz5TLk6wgp0RCsN+wHZ2Ekneac9w8uuV0njcbbie2ME+Vs+d6duwmYuR3HgQXs1fOg==} - engines: {node: '>= 0.4'} - use@3.1.1: resolution: {integrity: sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==} engines: {node: '>=0.10.0'} @@ -6529,12 +5921,6 @@ packages: util-deprecate@1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} - util@0.10.4: - resolution: {integrity: sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==} - - util@0.11.1: - resolution: {integrity: sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==} - utils-merge@1.0.1: resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} engines: {node: '>= 0.4.0'} @@ -6561,13 +5947,14 @@ packages: validate-peer-dependencies@1.2.0: resolution: {integrity: sha512-nd2HUpKc6RWblPZQ2GDuI65sxJ2n/UqZwSBVtj64xlWjMx0m7ZB2m9b2JS3v1f+n9VWH/dd1CMhkHfP6pIdckA==} + validate-peer-dependencies@2.2.0: + resolution: {integrity: sha512-8X1OWlERjiUY6P6tdeU9E0EwO8RA3bahoOVG7ulOZT5MqgNDUO/BQoVjYiHPcNe+v8glsboZRIw9iToMAA2zAA==} + engines: {node: '>= 12'} + vary@1.1.2: resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} engines: {node: '>= 0.8'} - vm-browserify@1.1.2: - resolution: {integrity: sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==} - walk-sync@0.2.7: resolution: {integrity: sha512-OH8GdRMowEFr0XSHQeX5fGweO6zSVHo7bG/0yJQx6LAj9Oukz0C8heI3/FYectT66gY0IPGe89kOvU410/UNpg==} @@ -6592,12 +5979,6 @@ packages: resolution: {integrity: sha512-MrJK9z7kD5Gl3jHBnnBVHvr1saVGAfmkyyrvuNzV/oe0Gr1nwZTy5VSA0Gw2j2Or0Mu8HcjUa44qlBvC2Ofnpg==} engines: {node: '>= 8'} - watchpack-chokidar2@2.0.1: - resolution: {integrity: sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww==} - - watchpack@1.7.5: - resolution: {integrity: sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ==} - watchpack@2.6.1: resolution: {integrity: sha512-8mk/LnXpQAiM2xKZhTkxikwly5GhL2Z+DWiLTkMa/E1Nfv9zURhHgiFyWvM4BWqW+LjIgL2AIS7JntEUx6v3vQ==} engines: {node: '>=10.13.0'} @@ -6608,26 +5989,10 @@ packages: webidl-conversions@3.0.1: resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} - webpack-sources@1.4.3: - resolution: {integrity: sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==} - webpack-sources@3.6.0: resolution: {integrity: sha512-EIMmPVvNI0CYXyRPp34F2Qk7W37/BZVZIofS6LAUnrNjCVahS+hO4mxwFJDjQjODTGZDtVzLYoN2+1dYkhk9qA==} engines: {node: '>=10.13.0'} - webpack@4.47.0: - resolution: {integrity: sha512-td7fYwgLSrky3fI1EuU5cneU4+pbH6GgOfuKNS1tNPcfdGinGELAqsb/BP4nnvZyKSG2i/xFGU7+n2PvZA8HJQ==} - engines: {node: '>=6.11.5'} - hasBin: true - peerDependencies: - webpack-cli: '*' - webpack-command: '*' - peerDependenciesMeta: - webpack-cli: - optional: true - webpack-command: - optional: true - webpack@5.111.1: resolution: {integrity: sha512-cNypaz0RP+S4cvQVi1M/3bRUkvNP0xZpL0TjFx+c6jg64VbxD+2weWDgY9UnjRI6dhZgtaj8DU76GGFcJ79xPQ==} engines: {node: '>=10.13.0'} @@ -6679,9 +6044,6 @@ packages: engines: {node: ^18.17.0 || >=20.5.0} hasBin: true - wide-align@1.1.5: - resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==} - word-wrap@1.2.5: resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} engines: {node: '>=0.10.0'} @@ -6693,9 +6055,6 @@ packages: wordwrap@1.0.0: resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} - worker-farm@1.7.0: - resolution: {integrity: sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==} - workerpool@3.1.2: resolution: {integrity: sha512-WJFA0dGqIK7qj7xPTqciWBH5DlJQzoPjsANvc3Y4hNB0SScT+Emjvt0jPPkDBUjBNngX1q9hHgt1Gfwytu6pug==} @@ -6736,9 +6095,6 @@ packages: resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} engines: {node: '>=0.4'} - y18n@4.0.3: - resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==} - y18n@5.0.8: resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} engines: {node: '>=10'} @@ -7691,17 +7047,6 @@ snapshots: mem: 8.1.1 resolve.exports: 2.0.3 - '@embroider/shared-internals@1.8.3': - dependencies: - babel-import-util: 1.4.1 - ember-rfc176-data: 0.3.18 - fs-extra: 9.1.0 - js-string-escape: 1.0.1 - lodash: 4.18.1 - resolve-package-path: 4.0.3 - semver: 7.7.2 - typescript-memoize: 1.1.1 - '@embroider/shared-internals@2.9.1': dependencies: babel-import-util: 2.1.1 @@ -8203,34 +7548,12 @@ snapshots: '@webassemblyjs/helper-numbers': 1.13.2 '@webassemblyjs/helper-wasm-bytecode': 1.13.2 - '@webassemblyjs/ast@1.9.0': - dependencies: - '@webassemblyjs/helper-module-context': 1.9.0 - '@webassemblyjs/helper-wasm-bytecode': 1.9.0 - '@webassemblyjs/wast-parser': 1.9.0 - '@webassemblyjs/floating-point-hex-parser@1.13.2': {} - '@webassemblyjs/floating-point-hex-parser@1.9.0': {} - '@webassemblyjs/helper-api-error@1.13.2': {} - '@webassemblyjs/helper-api-error@1.9.0': {} - '@webassemblyjs/helper-buffer@1.14.1': {} - '@webassemblyjs/helper-buffer@1.9.0': {} - - '@webassemblyjs/helper-code-frame@1.9.0': - dependencies: - '@webassemblyjs/wast-printer': 1.9.0 - - '@webassemblyjs/helper-fsm@1.9.0': {} - - '@webassemblyjs/helper-module-context@1.9.0': - dependencies: - '@webassemblyjs/ast': 1.9.0 - '@webassemblyjs/helper-numbers@1.13.2': dependencies: '@webassemblyjs/floating-point-hex-parser': 1.13.2 @@ -8239,8 +7562,6 @@ snapshots: '@webassemblyjs/helper-wasm-bytecode@1.13.2': {} - '@webassemblyjs/helper-wasm-bytecode@1.9.0': {} - '@webassemblyjs/helper-wasm-section@1.14.1': dependencies: '@webassemblyjs/ast': 1.14.1 @@ -8248,33 +7569,16 @@ snapshots: '@webassemblyjs/helper-wasm-bytecode': 1.13.2 '@webassemblyjs/wasm-gen': 1.14.1 - '@webassemblyjs/helper-wasm-section@1.9.0': - dependencies: - '@webassemblyjs/ast': 1.9.0 - '@webassemblyjs/helper-buffer': 1.9.0 - '@webassemblyjs/helper-wasm-bytecode': 1.9.0 - '@webassemblyjs/wasm-gen': 1.9.0 - '@webassemblyjs/ieee754@1.13.2': dependencies: '@xtuc/ieee754': 1.2.0 - '@webassemblyjs/ieee754@1.9.0': - dependencies: - '@xtuc/ieee754': 1.2.0 - '@webassemblyjs/leb128@1.13.2': dependencies: '@xtuc/long': 4.2.2 - '@webassemblyjs/leb128@1.9.0': - dependencies: - '@xtuc/long': 4.2.2 - '@webassemblyjs/utf8@1.13.2': {} - '@webassemblyjs/utf8@1.9.0': {} - '@webassemblyjs/wasm-edit@1.14.1': dependencies: '@webassemblyjs/ast': 1.14.1 @@ -8286,17 +7590,6 @@ snapshots: '@webassemblyjs/wasm-parser': 1.14.1 '@webassemblyjs/wast-printer': 1.14.1 - '@webassemblyjs/wasm-edit@1.9.0': - dependencies: - '@webassemblyjs/ast': 1.9.0 - '@webassemblyjs/helper-buffer': 1.9.0 - '@webassemblyjs/helper-wasm-bytecode': 1.9.0 - '@webassemblyjs/helper-wasm-section': 1.9.0 - '@webassemblyjs/wasm-gen': 1.9.0 - '@webassemblyjs/wasm-opt': 1.9.0 - '@webassemblyjs/wasm-parser': 1.9.0 - '@webassemblyjs/wast-printer': 1.9.0 - '@webassemblyjs/wasm-gen@1.14.1': dependencies: '@webassemblyjs/ast': 1.14.1 @@ -8305,14 +7598,6 @@ snapshots: '@webassemblyjs/leb128': 1.13.2 '@webassemblyjs/utf8': 1.13.2 - '@webassemblyjs/wasm-gen@1.9.0': - dependencies: - '@webassemblyjs/ast': 1.9.0 - '@webassemblyjs/helper-wasm-bytecode': 1.9.0 - '@webassemblyjs/ieee754': 1.9.0 - '@webassemblyjs/leb128': 1.9.0 - '@webassemblyjs/utf8': 1.9.0 - '@webassemblyjs/wasm-opt@1.14.1': dependencies: '@webassemblyjs/ast': 1.14.1 @@ -8320,13 +7605,6 @@ snapshots: '@webassemblyjs/wasm-gen': 1.14.1 '@webassemblyjs/wasm-parser': 1.14.1 - '@webassemblyjs/wasm-opt@1.9.0': - dependencies: - '@webassemblyjs/ast': 1.9.0 - '@webassemblyjs/helper-buffer': 1.9.0 - '@webassemblyjs/wasm-gen': 1.9.0 - '@webassemblyjs/wasm-parser': 1.9.0 - '@webassemblyjs/wasm-parser@1.14.1': dependencies: '@webassemblyjs/ast': 1.14.1 @@ -8336,35 +7614,11 @@ snapshots: '@webassemblyjs/leb128': 1.13.2 '@webassemblyjs/utf8': 1.13.2 - '@webassemblyjs/wasm-parser@1.9.0': - dependencies: - '@webassemblyjs/ast': 1.9.0 - '@webassemblyjs/helper-api-error': 1.9.0 - '@webassemblyjs/helper-wasm-bytecode': 1.9.0 - '@webassemblyjs/ieee754': 1.9.0 - '@webassemblyjs/leb128': 1.9.0 - '@webassemblyjs/utf8': 1.9.0 - - '@webassemblyjs/wast-parser@1.9.0': - dependencies: - '@webassemblyjs/ast': 1.9.0 - '@webassemblyjs/floating-point-hex-parser': 1.9.0 - '@webassemblyjs/helper-api-error': 1.9.0 - '@webassemblyjs/helper-code-frame': 1.9.0 - '@webassemblyjs/helper-fsm': 1.9.0 - '@xtuc/long': 4.2.2 - '@webassemblyjs/wast-printer@1.14.1': dependencies: '@webassemblyjs/ast': 1.14.1 '@xtuc/long': 4.2.2 - '@webassemblyjs/wast-printer@1.9.0': - dependencies: - '@webassemblyjs/ast': 1.9.0 - '@webassemblyjs/wast-parser': 1.9.0 - '@xtuc/long': 4.2.2 - '@xmldom/xmldom@0.8.15': {} '@xtuc/ieee754@1.2.0': {} @@ -8382,8 +7636,6 @@ snapshots: dependencies: acorn: 7.4.1 - acorn@6.4.2: {} - acorn@7.4.1: {} acorn@8.15.0: {} @@ -8405,10 +7657,6 @@ snapshots: clean-stack: 2.2.0 indent-string: 4.0.0 - ajv-errors@1.0.1(ajv@6.15.0): - dependencies: - ajv: 6.15.0 - ajv-formats@3.0.1(ajv@8.20.0): optionalDependencies: ajv: 8.20.0 @@ -8495,15 +7743,6 @@ snapshots: normalize-path: 3.0.0 picomatch: 2.3.2 - aproba@1.2.0: {} - - aproba@2.1.0: {} - - are-we-there-yet@3.0.1: - dependencies: - delegates: 1.0.0 - readable-stream: 3.6.2 - argparse@1.0.10: dependencies: sprintf-js: 1.0.3 @@ -8547,19 +7786,8 @@ snapshots: get-intrinsic: 1.3.0 is-array-buffer: 3.0.5 - asn1.js@4.10.1: - dependencies: - bn.js: 4.12.5 - inherits: 2.0.4 - minimalistic-assert: 1.0.1 - assert-never@1.4.0: {} - assert@1.5.1: - dependencies: - object.assign: 4.1.7 - util: 0.10.4 - assign-symbols@1.0.0: {} ast-types@0.13.3: {} @@ -8580,7 +7808,7 @@ snapshots: async-disk-cache@2.1.0: dependencies: - debug: 4.4.1 + debug: 4.4.3 heimdalljs: 0.2.6 istextorbinary: 2.6.0 mkdirp: 0.5.6 @@ -8590,9 +7818,6 @@ snapshots: transitivePeerDependencies: - supports-color - async-each@1.0.6: - optional: true - async-function@1.0.0: {} async-promise-queue@1.0.5: @@ -8618,36 +7843,6 @@ snapshots: dependencies: possible-typed-array-names: 1.1.0 - babel-code-frame@6.26.0: - dependencies: - chalk: 1.1.3 - esutils: 2.0.3 - js-tokens: 3.0.2 - - babel-core@6.26.3: - dependencies: - babel-code-frame: 6.26.0 - babel-generator: 6.26.1 - babel-helpers: 6.24.1 - babel-messages: 6.23.0 - babel-register: 6.26.0 - babel-runtime: 6.26.0 - babel-template: 6.26.0 - babel-traverse: 6.26.0 - babel-types: 6.26.0 - babylon: 6.18.0 - convert-source-map: 1.9.0 - debug: 2.6.9 - json5: 0.5.1 - lodash: 4.18.1 - minimatch: 3.1.5 - path-is-absolute: 1.0.1 - private: 0.1.8 - slash: 1.0.0 - source-map: 0.5.7 - transitivePeerDependencies: - - supports-color - babel-eslint@10.1.0(eslint@7.32.0): dependencies: '@babel/code-frame': 7.27.1 @@ -8660,41 +7855,12 @@ snapshots: transitivePeerDependencies: - supports-color - babel-generator@6.26.1: - dependencies: - babel-messages: 6.23.0 - babel-runtime: 6.26.0 - babel-types: 6.26.0 - detect-indent: 4.0.0 - jsesc: 1.3.0 - lodash: 4.18.1 - source-map: 0.5.7 - trim-right: 1.0.1 - - babel-helpers@6.24.1: - dependencies: - babel-runtime: 6.26.0 - babel-template: 6.26.0 - transitivePeerDependencies: - - supports-color - babel-import-util@0.2.0: {} - babel-import-util@1.4.1: {} - babel-import-util@2.1.1: {} babel-import-util@3.0.1: {} - babel-loader@8.4.1(@babel/core@7.29.7)(webpack@4.47.0): - dependencies: - '@babel/core': 7.29.7 - find-cache-dir: 3.3.2 - loader-utils: 2.0.4 - make-dir: 3.1.0 - schema-utils: 2.7.1 - webpack: 4.47.0 - babel-loader@8.4.1(@babel/core@7.29.7)(webpack@5.111.1(postcss@8.5.30)): dependencies: '@babel/core': 7.29.7 @@ -8704,10 +7870,6 @@ snapshots: schema-utils: 2.7.1 webpack: 5.111.1(postcss@8.5.30) - babel-messages@6.23.0: - dependencies: - babel-runtime: 6.26.0 - babel-plugin-debug-macros@0.2.0(@babel/core@7.29.7): dependencies: '@babel/core': 7.29.7 @@ -8786,62 +7948,14 @@ snapshots: babel-plugin-syntax-dynamic-import@6.18.0: {} - babel-register@6.26.0: - dependencies: - babel-core: 6.26.3 - babel-runtime: 6.26.0 - core-js: 2.6.12 - home-or-tmp: 2.0.0 - lodash: 4.18.1 - mkdirp: 0.5.6 - source-map-support: 0.4.18 - transitivePeerDependencies: - - supports-color - - babel-runtime@6.26.0: - dependencies: - core-js: 2.6.12 - regenerator-runtime: 0.11.1 - - babel-template@6.26.0: - dependencies: - babel-runtime: 6.26.0 - babel-traverse: 6.26.0 - babel-types: 6.26.0 - babylon: 6.18.0 - lodash: 4.18.1 - transitivePeerDependencies: - - supports-color - - babel-traverse@6.26.0: - dependencies: - babel-code-frame: 6.26.0 - babel-messages: 6.23.0 - babel-runtime: 6.26.0 - babel-types: 6.26.0 - babylon: 6.18.0 - debug: 2.6.9 - globals: 9.18.0 - invariant: 2.2.4 - lodash: 4.18.1 - transitivePeerDependencies: - - supports-color - - babel-types@6.26.0: - dependencies: - babel-runtime: 6.26.0 - esutils: 2.0.3 - lodash: 4.18.1 - to-fast-properties: 1.0.3 - - babylon@6.18.0: {} - backbone@1.6.1: dependencies: underscore: 1.13.8 balanced-match@1.0.2: {} + balanced-match@4.0.4: {} + base64-js@1.5.1: {} base@0.11.2: @@ -8868,19 +7982,8 @@ snapshots: big.js@5.2.2: {} - binary-extensions@1.13.1: - optional: true - - binary-extensions@2.3.0: - optional: true - binaryextensions@2.3.0: {} - bindings@1.5.0: - dependencies: - file-uri-to-path: 1.0.0 - optional: true - bl@4.1.0: dependencies: buffer: 5.7.1 @@ -8889,12 +7992,6 @@ snapshots: blank-object@1.0.2: {} - bluebird@3.7.2: {} - - bn.js@4.12.5: {} - - bn.js@5.2.5: {} - body-parser@1.20.8: dependencies: bytes: 3.1.2 @@ -8939,6 +8036,10 @@ snapshots: dependencies: balanced-match: 1.0.2 + brace-expansion@5.0.12: + dependencies: + balanced-match: 4.0.4 + braces@2.3.2: dependencies: arr-flatten: 1.1.0 @@ -9347,53 +8448,6 @@ snapshots: transitivePeerDependencies: - supports-color - brorand@1.1.0: {} - - browserify-aes@1.2.0: - dependencies: - buffer-xor: 1.0.3 - cipher-base: 1.0.6 - create-hash: 1.2.0 - evp_bytestokey: 1.0.3 - inherits: 2.0.4 - safe-buffer: 5.2.1 - - browserify-cipher@1.0.1: - dependencies: - browserify-aes: 1.2.0 - browserify-des: 1.0.2 - evp_bytestokey: 1.0.3 - - browserify-des@1.0.2: - dependencies: - cipher-base: 1.0.6 - des.js: 1.1.0 - inherits: 2.0.4 - safe-buffer: 5.2.1 - - browserify-rsa@4.1.1: - dependencies: - bn.js: 5.2.5 - randombytes: 2.1.0 - safe-buffer: 5.2.1 - - browserify-sign@4.2.3: - dependencies: - bn.js: 5.2.5 - browserify-rsa: 4.1.1 - create-hash: 1.2.0 - create-hmac: 1.1.7 - elliptic: 6.6.1 - hash-base: 3.0.5 - inherits: 2.0.4 - parse-asn1: 5.1.7 - readable-stream: 2.3.8 - safe-buffer: 5.2.1 - - browserify-zlib@0.2.0: - dependencies: - pako: 1.0.11 - browserslist@4.29.3: dependencies: baseline-browser-mapping: 2.11.28 @@ -9408,21 +8462,11 @@ snapshots: buffer-from@1.1.2: {} - buffer-xor@1.0.3: {} - - buffer@4.9.2: - dependencies: - base64-js: 1.5.1 - ieee754: 1.2.1 - isarray: 1.0.0 - buffer@5.7.1: dependencies: base64-js: 1.5.1 ieee754: 1.2.1 - builtin-status-codes@3.0.0: {} - builtins@5.1.0: dependencies: semver: 7.7.2 @@ -9431,24 +8475,6 @@ snapshots: bytes@3.1.2: {} - cacache@12.0.4: - dependencies: - bluebird: 3.7.2 - chownr: 1.1.4 - figgy-pudding: 3.5.2 - glob: 7.2.3 - graceful-fs: 4.2.11 - infer-owner: 1.0.4 - lru-cache: 5.1.1 - mississippi: 3.0.0 - mkdirp: 0.5.6 - move-concurrently: 1.0.1 - promise-inflight: 1.0.1(bluebird@3.7.2) - rimraf: 2.7.1 - ssri: 6.0.2 - unique-filename: 1.1.1 - y18n: 4.0.3 - cacache@15.3.0: dependencies: '@npmcli/fs': 1.1.1 @@ -9464,7 +8490,7 @@ snapshots: minipass-pipeline: 1.2.4 mkdirp: 1.0.4 p-map: 4.0.0 - promise-inflight: 1.0.1(bluebird@3.7.2) + promise-inflight: 1.0.1 rimraf: 3.0.2 ssri: 8.0.1 tar: 6.2.1 @@ -9559,51 +8585,12 @@ snapshots: dependencies: inherits: 2.0.4 - chokidar@2.1.8: - dependencies: - anymatch: 2.0.0 - async-each: 1.0.6 - braces: 2.3.2 - glob-parent: 3.1.0 - inherits: 2.0.4 - is-binary-path: 1.0.1 - is-glob: 4.0.3 - normalize-path: 3.0.0 - path-is-absolute: 1.0.1 - readdirp: 2.2.1 - upath: 1.2.0 - optionalDependencies: - fsevents: 1.2.13 - transitivePeerDependencies: - - supports-color - optional: true - - chokidar@3.6.0: - dependencies: - anymatch: 3.1.3 - braces: 3.0.3 - glob-parent: 5.1.2 - is-binary-path: 2.1.0 - is-glob: 4.0.3 - normalize-path: 3.0.0 - readdirp: 3.6.0 - optionalDependencies: - fsevents: 2.3.3 - optional: true - - chownr@1.1.4: {} - chownr@2.0.0: {} chrome-trace-event@1.0.4: {} ci-info@3.9.0: {} - cipher-base@1.0.6: - dependencies: - inherits: 2.0.4 - safe-buffer: 5.2.1 - class-utils@0.3.6: dependencies: arr-union: 3.1.0 @@ -9698,8 +8685,6 @@ snapshots: color-name@1.1.4: {} - color-support@1.1.3: {} - colors@1.0.3: {} colors@1.4.0: {} @@ -9743,13 +8728,6 @@ snapshots: concat-map@0.0.1: {} - concat-stream@1.6.2: - dependencies: - buffer-from: 1.1.2 - inherits: 2.0.4 - readable-stream: 2.3.8 - typedarray: 0.0.6 - config-chain@1.1.13: dependencies: ini: 1.3.8 @@ -9773,10 +8751,6 @@ snapshots: transitivePeerDependencies: - supports-color - console-browserify@1.2.0: {} - - console-control-strings@1.1.0: {} - console-ui@3.1.2: dependencies: chalk: 2.4.2 @@ -9785,18 +8759,14 @@ snapshots: ora: 3.4.0 through2: 3.0.2 - consolidate@0.16.0(babel-core@6.26.3)(handlebars@4.7.10)(lodash@4.18.1)(mustache@4.2.0)(underscore@1.13.8): - dependencies: - bluebird: 3.7.2 + consolidate@1.0.4(@babel/core@7.29.7)(handlebars@4.7.10)(lodash@4.18.1)(mustache@4.2.0)(underscore@1.13.8): optionalDependencies: - babel-core: 6.26.3 + '@babel/core': 7.29.7 handlebars: 4.7.10 lodash: 4.18.1 mustache: 4.2.0 underscore: 1.13.8 - constants-browserify@1.0.0: {} - content-disposition@0.5.4: dependencies: safe-buffer: 5.2.1 @@ -9805,8 +8775,6 @@ snapshots: continuable-cache@0.3.1: {} - convert-source-map@1.9.0: {} - convert-source-map@2.0.0: {} cookie-signature@1.0.6: {} @@ -9815,15 +8783,6 @@ snapshots: cookie@0.7.2: {} - copy-concurrently@1.0.5: - dependencies: - aproba: 1.2.0 - fs-write-stream-atomic: 1.0.10 - iferr: 0.1.5 - mkdirp: 0.5.6 - rimraf: 2.7.1 - run-queue: 1.0.3 - copy-dereference@1.0.0: {} copy-descriptor@0.1.1: {} @@ -9845,28 +8804,6 @@ snapshots: object-assign: 4.1.1 vary: 1.1.2 - create-ecdh@4.0.4: - dependencies: - bn.js: 4.12.5 - elliptic: 6.6.1 - - create-hash@1.2.0: - dependencies: - cipher-base: 1.0.6 - inherits: 2.0.4 - md5.js: 1.3.5 - ripemd160: 2.0.2 - sha.js: 2.4.12 - - create-hmac@1.1.7: - dependencies: - cipher-base: 1.0.6 - create-hash: 1.2.0 - inherits: 2.0.4 - ripemd160: 2.0.2 - safe-buffer: 5.2.1 - sha.js: 2.4.12 - cross-spawn@6.0.6: dependencies: nice-try: 1.0.5 @@ -9881,21 +8818,6 @@ snapshots: shebang-command: 2.0.0 which: 2.0.2 - crypto-browserify@3.12.1: - dependencies: - browserify-cipher: 1.0.1 - browserify-sign: 4.2.3 - create-ecdh: 4.0.4 - create-hash: 1.2.0 - create-hmac: 1.1.7 - diffie-hellman: 5.0.3 - hash-base: 3.0.5 - inherits: 2.0.4 - pbkdf2: 3.1.7 - public-encrypt: 4.0.3 - randombytes: 2.1.0 - randomfill: 1.0.4 - crypto-random-string@2.0.0: {} css-loader@5.2.7(webpack@5.111.1(postcss@8.5.30)): @@ -9919,8 +8841,6 @@ snapshots: cssesc@3.0.0: {} - cyclist@1.0.2: {} - dag-map@2.0.2: {} data-view-buffer@1.0.2: @@ -10002,37 +8922,20 @@ snapshots: is-descriptor: 1.0.3 isobject: 3.0.1 - delegates@1.0.0: {} - depd@1.1.2: {} depd@2.0.0: {} - des.js@1.1.0: - dependencies: - inherits: 2.0.4 - minimalistic-assert: 1.0.1 - destroy@1.2.0: {} detect-file@1.0.0: {} - detect-indent@4.0.0: - dependencies: - repeating: 2.0.1 - detect-indent@6.1.0: {} detect-newline@3.1.0: {} diff@5.2.2: {} - diffie-hellman@5.0.3: - dependencies: - bn.js: 4.12.5 - miller-rabin: 4.0.1 - randombytes: 2.1.0 - dir-glob@3.0.1: dependencies: path-type: 4.0.0 @@ -10047,8 +8950,6 @@ snapshots: domhandler: 5.0.3 entities: 4.5.0 - domain-browser@1.2.0: {} - domelementtype@2.3.0: {} domhandler@5.0.3: @@ -10078,13 +8979,6 @@ snapshots: duplexer3@0.1.5: {} - duplexify@3.7.1: - dependencies: - end-of-stream: 1.4.5 - inherits: 2.0.4 - readable-stream: 2.3.8 - stream-shift: 1.0.3 - eastasianwidth@0.2.0: {} editions@1.3.4: {} @@ -10098,52 +8992,6 @@ snapshots: electron-to-chromium@1.5.456: {} - elliptic@6.6.1: - dependencies: - bn.js: 4.12.5 - brorand: 1.1.0 - hash.js: 1.1.7 - hmac-drbg: 1.0.1 - inherits: 2.0.4 - minimalistic-assert: 1.0.1 - minimalistic-crypto-utils: 1.0.1 - - ember-auto-import@1.12.2: - dependencies: - '@babel/core': 7.29.7 - '@babel/preset-env': 7.28.0(@babel/core@7.29.7) - '@babel/traverse': 7.28.0 - '@babel/types': 7.28.2 - '@embroider/shared-internals': 1.8.3 - babel-core: 6.26.3 - babel-loader: 8.4.1(@babel/core@7.29.7)(webpack@4.47.0) - babel-plugin-syntax-dynamic-import: 6.18.0 - babylon: 6.18.0 - broccoli-debug: 0.6.5 - broccoli-node-api: 1.7.0 - broccoli-plugin: 4.0.7 - broccoli-source: 3.0.1 - debug: 3.2.7 - ember-cli-babel: 7.26.11 - enhanced-resolve: 4.5.0 - fs-extra: 6.0.1 - fs-tree-diff: 2.0.1 - handlebars: 4.7.10 - js-string-escape: 1.0.1 - lodash: 4.18.1 - mkdirp: 0.5.6 - resolve-package-path: 3.1.0 - rimraf: 2.7.1 - semver: 7.7.2 - symlink-or-copy: 1.3.1 - typescript-memoize: 1.1.1 - walk-sync: 0.3.4 - webpack: 4.47.0 - transitivePeerDependencies: - - supports-color - - webpack-cli - - webpack-command - ember-auto-import@2.13.1(webpack@5.111.1(postcss@8.5.30)): dependencies: '@babel/core': 7.29.7 @@ -10225,10 +9073,10 @@ snapshots: transitivePeerDependencies: - supports-color - ember-cli-dependency-checker@3.3.3(ember-cli@4.8.1(babel-core@6.26.3)(encoding@0.1.13)(handlebars@4.7.10)(underscore@1.13.8)): + ember-cli-dependency-checker@3.3.3(ember-cli@4.8.1(encoding@0.1.13)(handlebars@4.7.10)(underscore@1.13.8)): dependencies: chalk: 2.4.2 - ember-cli: 4.8.1(babel-core@6.26.3)(encoding@0.1.13)(handlebars@4.7.10)(underscore@1.13.8) + ember-cli: 4.8.1(encoding@0.1.13)(handlebars@4.7.10)(underscore@1.13.8) find-yarn-workspace-root: 2.0.0 is-git-url: 1.0.0 resolve: 1.22.10 @@ -10385,7 +9233,7 @@ snapshots: transitivePeerDependencies: - supports-color - ember-cli@4.8.1(babel-core@6.26.3)(encoding@0.1.13)(handlebars@4.7.10)(underscore@1.13.8): + ember-cli@4.8.1(encoding@0.1.13)(handlebars@4.7.10)(underscore@1.13.8): dependencies: '@babel/core': 7.29.7 '@babel/plugin-transform-modules-amd': 7.27.1(@babel/core@7.29.7) @@ -10471,7 +9319,7 @@ snapshots: sort-package-json: 1.57.0 symlink-or-copy: 1.3.1 temp: 0.9.4 - testem: 3.16.0(babel-core@6.26.3)(handlebars@4.7.10)(underscore@1.13.8) + testem: 3.19.1(@babel/core@7.29.7)(handlebars@4.7.10)(underscore@1.13.8) tiny-lr: 2.0.0 tree-sync: 2.1.0 uuid: 8.3.2 @@ -10482,7 +9330,6 @@ snapshots: transitivePeerDependencies: - arc-templates - atpl - - babel-core - bracket-template - bufferutil - coffee-script @@ -10501,30 +9348,25 @@ snapshots: - handlebars - hogan.js - htmling - - jade - jazz - jqtpl - just - liquid-node - liquor - - marko - mote - nunjucks - plates - pug - qejs - ractive - - razor-tmpl - react - react-dom - slm - - squirrelly - supports-color - swig - swig-templates - teacup - templayed - - then-jade - then-pug - tinyliquid - toffee @@ -10582,23 +9424,24 @@ snapshots: transitivePeerDependencies: - supports-color - ember-qunit@5.1.5(@ember/test-helpers@2.9.6(@babel/core@7.29.7)(ember-source@4.8.6(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(webpack@5.111.1(postcss@8.5.30))))(qunit@2.24.1): + ember-qunit@6.2.0(@ember/test-helpers@2.9.6(@babel/core@7.29.7)(ember-source@4.8.6(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(webpack@5.111.1(postcss@8.5.30))))(ember-source@4.8.6(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(webpack@5.111.1(postcss@8.5.30)))(qunit@2.24.1)(webpack@5.111.1(postcss@8.5.30)): dependencies: '@ember/test-helpers': 2.9.6(@babel/core@7.29.7)(ember-source@4.8.6(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(webpack@5.111.1(postcss@8.5.30))) broccoli-funnel: 3.0.8 broccoli-merge-trees: 3.0.2 common-tags: 1.8.2 - ember-auto-import: 1.12.2 + ember-auto-import: 2.13.1(webpack@5.111.1(postcss@8.5.30)) ember-cli-babel: 7.26.11 ember-cli-test-loader: 3.1.0 + ember-source: 4.8.6(@babel/core@7.29.7)(@glimmer/component@1.1.2(@babel/core@7.29.7))(webpack@5.111.1(postcss@8.5.30)) qunit: 2.24.1 - resolve-package-path: 3.1.0 + resolve-package-path: 4.0.3 silent-error: 1.1.1 - validate-peer-dependencies: 1.2.0 + validate-peer-dependencies: 2.2.0 transitivePeerDependencies: + - '@glint/template' - supports-color - - webpack-cli - - webpack-command + - webpack ember-resolver@8.1.0(@babel/core@7.29.7): dependencies: @@ -10778,12 +9621,6 @@ snapshots: - supports-color - utf-8-validate - enhanced-resolve@4.5.0: - dependencies: - graceful-fs: 4.2.11 - memory-fs: 0.5.0 - tapable: 1.1.3 - enhanced-resolve@5.26.0: dependencies: graceful-fs: 4.2.11 @@ -10808,10 +9645,6 @@ snapshots: errlop@2.2.0: {} - errno@0.1.8: - dependencies: - prr: 1.0.1 - error-ex@1.3.2: dependencies: is-arrayish: 0.2.1 @@ -10966,11 +9799,6 @@ snapshots: transitivePeerDependencies: - eslint - eslint-scope@4.0.3: - dependencies: - esrecurse: 4.3.0 - estraverse: 4.3.0 - eslint-scope@5.1.1: dependencies: esrecurse: 4.3.0 @@ -11068,11 +9896,6 @@ snapshots: events@3.3.0: {} - evp_bytestokey@1.0.3: - dependencies: - md5.js: 1.3.5 - safe-buffer: 5.2.1 - exec-sh@0.3.6: {} execa@1.0.0: @@ -11136,6 +9959,21 @@ snapshots: strip-final-newline: 4.0.0 yoctocolors: 2.1.1 + execa@9.6.1: + dependencies: + '@sindresorhus/merge-streams': 4.0.0 + cross-spawn: 7.0.6 + figures: 6.1.0 + get-stream: 9.0.1 + human-signals: 8.0.1 + is-plain-obj: 4.1.0 + is-stream: 4.0.1 + npm-run-path: 6.0.0 + pretty-ms: 9.2.0 + signal-exit: 4.1.0 + strip-final-newline: 4.0.0 + yoctocolors: 2.1.1 + exit@0.1.2: {} expand-brackets@2.1.4: @@ -11268,8 +10106,6 @@ snapshots: dependencies: bser: 2.1.1 - figgy-pudding@3.5.2: {} - figures@2.0.0: dependencies: escape-string-regexp: 1.0.5 @@ -11286,9 +10122,6 @@ snapshots: dependencies: flat-cache: 3.2.0 - file-uri-to-path@1.0.0: - optional: true - filesize@9.0.11: {} fill-range@4.0.0: @@ -11331,12 +10164,6 @@ snapshots: json5: 1.0.2 path-exists: 3.0.0 - find-cache-dir@2.1.0: - dependencies: - commondir: 1.0.1 - make-dir: 2.1.0 - pkg-dir: 3.0.0 - find-cache-dir@3.3.2: dependencies: commondir: 1.0.1 @@ -11423,11 +10250,6 @@ snapshots: flatted@3.4.4: {} - flush-write-stream@1.1.1: - dependencies: - inherits: 2.0.4 - readable-stream: 2.3.8 - follow-redirects@1.16.1: {} for-each@0.3.5: @@ -11449,11 +10271,6 @@ snapshots: fresh@0.5.2: {} - from2@2.3.0: - dependencies: - inherits: 2.0.4 - readable-stream: 2.3.8 - fs-extra@0.24.0: dependencies: graceful-fs: 4.2.11 @@ -11485,12 +10302,6 @@ snapshots: jsonfile: 4.0.0 universalify: 0.1.2 - fs-extra@6.0.1: - dependencies: - graceful-fs: 4.2.11 - jsonfile: 4.0.0 - universalify: 0.1.2 - fs-extra@7.0.1: dependencies: graceful-fs: 4.2.11 @@ -11553,24 +10364,8 @@ snapshots: transitivePeerDependencies: - supports-color - fs-write-stream-atomic@1.0.10: - dependencies: - graceful-fs: 4.2.11 - iferr: 0.1.5 - imurmurhash: 0.1.4 - readable-stream: 2.3.8 - fs.realpath@1.0.0: {} - fsevents@1.2.13: - dependencies: - bindings: 1.5.0 - nan: 2.23.0 - optional: true - - fsevents@2.3.3: - optional: true - function-bind@1.1.2: {} function.prototype.name@1.1.8: @@ -11588,17 +10383,6 @@ snapshots: fuse.js@6.6.2: {} - gauge@4.0.4: - dependencies: - aproba: 2.1.0 - color-support: 1.1.3 - console-control-strings: 1.1.0 - has-unicode: 2.0.1 - signal-exit: 3.0.7 - string-width: 4.2.3 - strip-ansi: 6.0.1 - wide-align: 1.1.5 - gensync@1.0.0-beta.2: {} get-caller-file@2.0.5: {} @@ -11667,12 +10451,6 @@ snapshots: - bluebird - supports-color - glob-parent@3.1.0: - dependencies: - is-glob: 3.1.0 - path-dirname: 1.0.2 - optional: true - glob-parent@5.1.2: dependencies: is-glob: 4.0.3 @@ -11686,6 +10464,12 @@ snapshots: package-json-from-dist: 1.0.1 path-scurry: 1.11.1 + glob@13.0.6: + dependencies: + minimatch: 10.2.6 + minipass: 7.1.3 + path-scurry: 2.0.2 + glob@5.0.15: dependencies: inflight: 1.0.6 @@ -11721,8 +10505,6 @@ snapshots: dependencies: type-fest: 0.20.2 - globals@9.18.0: {} - globalthis@1.0.4: dependencies: define-properties: 1.2.1 @@ -11823,8 +10605,6 @@ snapshots: dependencies: has-symbols: 1.1.0 - has-unicode@2.0.1: {} - has-value@0.3.1: dependencies: get-value: 2.0.6 @@ -11844,18 +10624,6 @@ snapshots: is-number: 3.0.0 kind-of: 4.0.0 - hash-base@3.0.5: - dependencies: - inherits: 2.0.4 - safe-buffer: 5.2.1 - - hash-base@3.1.2: - dependencies: - inherits: 2.0.4 - readable-stream: 2.3.8 - safe-buffer: 5.2.1 - to-buffer: 1.2.2 - hash-for-dep@1.5.1: dependencies: broccoli-kitchen-sink-helpers: 0.3.1 @@ -11867,11 +10635,6 @@ snapshots: transitivePeerDependencies: - supports-color - hash.js@1.1.7: - dependencies: - inherits: 2.0.4 - minimalistic-assert: 1.0.1 - hasown@2.0.2: dependencies: function-bind: 1.1.2 @@ -11901,17 +10664,6 @@ snapshots: highlight.js@10.7.3: {} - hmac-drbg@1.0.1: - dependencies: - hash.js: 1.1.7 - minimalistic-assert: 1.0.1 - minimalistic-crypto-utils: 1.0.1 - - home-or-tmp@2.0.0: - dependencies: - os-homedir: 1.0.2 - os-tmpdir: 1.0.2 - homedir-polyfill@1.0.3: dependencies: parse-passwd: 1.0.0 @@ -11980,8 +10732,6 @@ snapshots: transitivePeerDependencies: - debug - https-browserify@1.0.0: {} - https-proxy-agent@5.0.1: dependencies: agent-base: 6.0.2 @@ -12016,8 +10766,6 @@ snapshots: ieee754@1.2.1: {} - iferr@0.1.5: {} - ignore@4.0.6: {} ignore@5.3.2: {} @@ -12102,10 +10850,6 @@ snapshots: hasown: 2.0.2 side-channel: 1.1.0 - invariant@2.2.4: - dependencies: - loose-envify: 1.4.0 - ip-address@9.0.5: dependencies: jsbn: 1.1.0 @@ -12137,16 +10881,6 @@ snapshots: dependencies: has-bigints: 1.1.0 - is-binary-path@1.0.1: - dependencies: - binary-extensions: 1.13.1 - optional: true - - is-binary-path@2.1.0: - dependencies: - binary-extensions: 2.3.0 - optional: true - is-boolean-object@1.2.2: dependencies: call-bound: 1.0.4 @@ -12199,8 +10933,6 @@ snapshots: dependencies: call-bound: 1.0.4 - is-finite@1.1.0: {} - is-fullwidth-code-point@2.0.0: {} is-fullwidth-code-point@3.0.0: {} @@ -12214,11 +10946,6 @@ snapshots: is-git-url@1.0.0: {} - is-glob@3.1.0: - dependencies: - is-extglob: 2.1.1 - optional: true - is-glob@4.0.3: dependencies: is-extglob: 2.1.1 @@ -12317,8 +11044,6 @@ snapshots: is-windows@1.0.2: {} - is-wsl@1.1.0: {} - is-wsl@2.2.0: dependencies: is-docker: 2.2.1 @@ -12369,8 +11094,6 @@ snapshots: js-string-escape@1.0.1: {} - js-tokens@3.0.2: {} - js-tokens@4.0.0: {} js-yaml@3.15.2: @@ -12384,8 +11107,6 @@ snapshots: jsbn@1.1.0: {} - jsesc@1.3.0: {} - jsesc@3.0.2: {} jsesc@3.1.0: {} @@ -12412,8 +11133,6 @@ snapshots: jsonify: 0.0.1 object-keys: 1.1.1 - json5@0.5.1: {} - json5@1.0.2: dependencies: minimist: 1.2.8 @@ -12524,14 +11243,6 @@ snapshots: pify: 3.0.0 strip-bom: 3.0.0 - loader-runner@2.4.0: {} - - loader-utils@1.4.2: - dependencies: - big.js: 5.2.2 - emojis-list: 3.0.0 - json5: 1.0.2 - loader-utils@2.0.4: dependencies: big.js: 5.2.2 @@ -12651,10 +11362,6 @@ snapshots: chalk: 4.1.2 is-unicode-supported: 0.1.0 - loose-envify@1.4.0: - dependencies: - js-tokens: 4.0.0 - lower-case@2.0.2: dependencies: tslib: 2.8.1 @@ -12665,6 +11372,8 @@ snapshots: lru-cache@10.4.3: {} + lru-cache@11.5.3: {} + lru-cache@5.1.1: dependencies: yallist: 3.1.1 @@ -12683,11 +11392,6 @@ snapshots: dependencies: '@jridgewell/sourcemap-codec': 1.6.0 - make-dir@2.1.0: - dependencies: - pify: 4.0.1 - semver: 5.7.2 - make-dir@3.1.0: dependencies: semver: 6.3.1 @@ -12763,12 +11467,6 @@ snapshots: math-intrinsics@1.1.0: {} - md5.js@1.3.5: - dependencies: - hash-base: 3.0.5 - inherits: 2.0.4 - safe-buffer: 5.2.1 - mdn-data@2.0.30: {} mdurl@1.0.1: {} @@ -12780,16 +11478,6 @@ snapshots: map-age-cleaner: 0.1.3 mimic-fn: 3.1.0 - memory-fs@0.4.1: - dependencies: - errno: 0.1.8 - readable-stream: 2.3.8 - - memory-fs@0.5.0: - dependencies: - errno: 0.1.8 - readable-stream: 2.3.8 - memory-streams@0.1.3: dependencies: readable-stream: 1.0.34 @@ -12834,11 +11522,6 @@ snapshots: braces: 3.0.3 picomatch: 2.3.2 - miller-rabin@4.0.1: - dependencies: - bn.js: 4.12.5 - brorand: 1.1.0 - mime-db@1.52.0: {} mime-db@1.54.0: {} @@ -12863,9 +11546,9 @@ snapshots: tapable: 2.3.3 webpack: 5.111.1(postcss@8.5.30) - minimalistic-assert@1.0.1: {} - - minimalistic-crypto-utils@1.0.1: {} + minimatch@10.2.6: + dependencies: + brace-expansion: 5.0.12 minimatch@3.1.5: dependencies: @@ -12930,24 +11613,13 @@ snapshots: minipass@7.1.2: {} + minipass@7.1.3: {} + minizlib@2.1.2: dependencies: minipass: 3.3.6 yallist: 4.0.0 - mississippi@3.0.0: - dependencies: - concat-stream: 1.6.2 - duplexify: 3.7.1 - end-of-stream: 1.4.5 - flush-write-stream: 1.1.1 - from2: 2.3.0 - parallel-transform: 1.2.0 - pump: 3.0.3 - pumpify: 1.5.1 - stream-each: 1.2.3 - through2: 2.0.5 - mixin-deep@1.3.2: dependencies: for-in: 1.0.2 @@ -12975,15 +11647,6 @@ snapshots: mout@1.2.4: {} - move-concurrently@1.0.1: - dependencies: - aproba: 1.2.0 - copy-concurrently: 1.0.5 - fs-write-stream-atomic: 1.0.10 - mkdirp: 0.5.6 - rimraf: 2.7.1 - run-queue: 1.0.3 - ms@2.0.0: {} ms@2.1.3: {} @@ -13000,9 +11663,6 @@ snapshots: object-assign: 4.1.1 thenify-all: 1.6.0 - nan@2.23.0: - optional: true - nanoid@3.3.20: {} nanomatch@1.2.13: @@ -13044,32 +11704,6 @@ snapshots: node-int64@0.4.0: {} - node-libs-browser@2.2.1: - dependencies: - assert: 1.5.1 - browserify-zlib: 0.2.0 - buffer: 4.9.2 - console-browserify: 1.2.0 - constants-browserify: 1.0.0 - crypto-browserify: 3.12.1 - domain-browser: 1.2.0 - events: 3.3.0 - https-browserify: 1.0.0 - os-browserify: 0.3.0 - path-browserify: 0.0.1 - process: 0.11.10 - punycode: 1.4.1 - querystring-es3: 0.2.1 - readable-stream: 2.3.8 - stream-browserify: 2.0.2 - stream-http: 2.8.3 - string_decoder: 1.3.0 - timers-browserify: 2.0.12 - tty-browserify: 0.0.0 - url: 0.11.4 - util: 0.11.1 - vm-browserify: 1.1.2 - node-modules-path@1.0.2: {} node-notifier@10.0.1: @@ -13160,13 +11794,6 @@ snapshots: path-key: 4.0.0 unicorn-magic: 0.3.0 - npmlog@6.0.2: - dependencies: - are-we-there-yet: 3.0.1 - console-control-strings: 1.1.0 - gauge: 4.0.4 - set-blocking: 2.0.0 - object-assign@4.1.1: {} object-copy@0.1.0: @@ -13250,8 +11877,6 @@ snapshots: strip-ansi: 6.0.1 wcwidth: 1.0.1 - os-browserify@0.3.0: {} - os-homedir@1.0.2: {} os-tmpdir@1.0.2: {} @@ -13341,27 +11966,10 @@ snapshots: registry-url: 5.1.0 semver: 6.3.1 - pako@1.0.11: {} - - parallel-transform@1.2.0: - dependencies: - cyclist: 1.0.2 - inherits: 2.0.4 - readable-stream: 2.3.8 - parent-module@1.0.1: dependencies: callsites: 3.1.0 - parse-asn1@5.1.7: - dependencies: - asn1.js: 4.10.1 - browserify-aes: 1.2.0 - evp_bytestokey: 1.0.3 - hash-base: 3.0.5 - pbkdf2: 3.1.7 - safe-buffer: 5.2.1 - parse-github-repo-url@1.4.1: {} parse-json@4.0.0: @@ -13387,11 +11995,6 @@ snapshots: pascalcase@0.1.1: {} - path-browserify@0.0.1: {} - - path-dirname@1.0.2: - optional: true - path-exists@3.0.0: {} path-exists@4.0.0: {} @@ -13421,6 +12024,11 @@ snapshots: lru-cache: 10.4.3 minipass: 7.1.2 + path-scurry@2.0.2: + dependencies: + lru-cache: 11.5.3 + minipass: 7.1.3 + path-to-regexp@0.1.13: {} path-type@3.0.0: @@ -13429,15 +12037,6 @@ snapshots: path-type@4.0.0: {} - pbkdf2@3.1.7: - dependencies: - create-hash: 1.2.0 - create-hmac: 1.1.7 - ripemd160: 2.0.3 - safe-buffer: 5.2.1 - sha.js: 2.4.12 - to-buffer: 1.2.2 - picocolors@1.1.1: {} picomatch@2.3.2: {} @@ -13446,18 +12045,12 @@ snapshots: pify@3.0.0: {} - pify@4.0.1: {} - pinkie-promise@2.0.1: dependencies: pinkie: 2.0.4 pinkie@2.0.4: {} - pkg-dir@3.0.0: - dependencies: - find-up: 3.0.0 - pkg-dir@4.2.0: dependencies: find-up: 4.1.0 @@ -13539,19 +12132,13 @@ snapshots: proc-log@5.0.0: {} - process-nextick-args@2.0.1: {} - process-relative-require@1.0.0: dependencies: node-modules-path: 1.0.2 - process@0.11.10: {} - progress@2.0.3: {} - promise-inflight@1.0.1(bluebird@3.7.2): - optionalDependencies: - bluebird: 3.7.2 + promise-inflight@1.0.1: {} promise-map-series@0.2.3: dependencies: @@ -13579,35 +12166,11 @@ snapshots: forwarded: 0.2.0 ipaddr.js: 1.9.1 - prr@1.0.1: {} - - public-encrypt@4.0.3: - dependencies: - bn.js: 4.12.5 - browserify-rsa: 4.1.1 - create-hash: 1.2.0 - parse-asn1: 5.1.7 - randombytes: 2.1.0 - safe-buffer: 5.2.1 - - pump@2.0.1: - dependencies: - end-of-stream: 1.4.5 - once: 1.4.0 - pump@3.0.3: dependencies: end-of-stream: 1.4.5 once: 1.4.0 - pumpify@1.5.1: - dependencies: - duplexify: 3.7.1 - inherits: 2.0.4 - pump: 2.0.1 - - punycode@1.4.1: {} - punycode@2.3.1: {} qs@6.16.0: @@ -13615,8 +12178,6 @@ snapshots: es-define-property: 1.0.1 side-channel: 1.1.1 - querystring-es3@0.2.1: {} - queue-microtask@1.2.3: {} quick-temp@0.1.8: @@ -13640,15 +12201,6 @@ snapshots: node-watch: 0.7.3 tiny-glob: 0.2.9 - randombytes@2.1.0: - dependencies: - safe-buffer: 5.2.1 - - randomfill@1.0.4: - dependencies: - randombytes: 2.1.0 - safe-buffer: 5.2.1 - range-parser@1.2.1: {} raw-body@1.1.7: @@ -13683,36 +12235,12 @@ snapshots: isarray: 0.0.1 string_decoder: 0.10.31 - readable-stream@2.3.8: - dependencies: - core-util-is: 1.0.3 - inherits: 2.0.4 - isarray: 1.0.0 - process-nextick-args: 2.0.1 - safe-buffer: 5.1.2 - string_decoder: 1.1.1 - util-deprecate: 1.0.2 - readable-stream@3.6.2: dependencies: inherits: 2.0.4 string_decoder: 1.3.0 util-deprecate: 1.0.2 - readdirp@2.2.1: - dependencies: - graceful-fs: 4.2.11 - micromatch: 3.1.10 - readable-stream: 2.3.8 - transitivePeerDependencies: - - supports-color - optional: true - - readdirp@3.6.0: - dependencies: - picomatch: 2.3.2 - optional: true - recast@0.18.10: dependencies: ast-types: 0.13.3 @@ -13741,8 +12269,6 @@ snapshots: regenerate@1.4.2: {} - regenerator-runtime@0.11.1: {} - regenerator-runtime@0.13.11: {} regex-not@1.0.2: @@ -13829,10 +12355,6 @@ snapshots: repeat-string@1.6.1: {} - repeating@2.0.1: - dependencies: - is-finite: 1.1.0 - require-directory@2.1.1: {} require-from-string@2.0.2: {} @@ -13920,15 +12442,10 @@ snapshots: dependencies: glob: 7.2.3 - ripemd160@2.0.2: - dependencies: - hash-base: 3.0.5 - inherits: 2.0.4 - - ripemd160@2.0.3: + rimraf@6.1.3: dependencies: - hash-base: 3.1.2 - inherits: 2.0.4 + glob: 13.0.6 + package-json-from-dist: 1.0.1 rsvp@3.2.1: {} @@ -13942,10 +12459,6 @@ snapshots: dependencies: queue-microtask: 1.2.3 - run-queue@1.0.3: - dependencies: - aproba: 1.2.0 - rxjs@6.6.7: dependencies: tslib: 1.14.1 @@ -14009,12 +12522,6 @@ snapshots: minimist: 1.2.8 walker: 1.0.8 - schema-utils@1.0.0: - dependencies: - ajv: 6.15.0 - ajv-errors: 1.0.1(ajv@6.15.0) - ajv-keywords: 3.5.2(ajv@6.15.0) - schema-utils@2.7.1: dependencies: '@types/json-schema': 7.0.15 @@ -14058,10 +12565,6 @@ snapshots: transitivePeerDependencies: - supports-color - serialize-javascript@4.0.0: - dependencies: - randombytes: 2.1.0 - serve-static@1.16.2: dependencies: encodeurl: 2.0.0 @@ -14071,8 +12574,6 @@ snapshots: transitivePeerDependencies: - supports-color - set-blocking@2.0.0: {} - set-function-length@1.2.2: dependencies: define-data-property: 1.1.4 @@ -14102,18 +12603,10 @@ snapshots: is-plain-object: 2.0.4 split-string: 3.1.0 - setimmediate@1.0.5: {} - setprototypeof@1.1.0: {} setprototypeof@1.2.0: {} - sha.js@2.4.12: - dependencies: - inherits: 2.0.4 - safe-buffer: 5.2.1 - to-buffer: 1.2.1 - shebang-command@1.2.0: dependencies: shebang-regex: 1.0.0 @@ -14183,8 +12676,6 @@ snapshots: simple-html-tokenizer@0.5.11: {} - slash@1.0.0: {} - slash@3.0.0: {} slash@4.0.0: {} @@ -14278,8 +12769,6 @@ snapshots: is-plain-obj: 2.1.0 sort-object-keys: 1.1.3 - source-list-map@2.0.1: {} - source-map-js@1.2.2: {} source-map-resolve@0.5.3: @@ -14290,10 +12779,6 @@ snapshots: source-map-url: 0.4.1 urix: 0.1.0 - source-map-support@0.4.18: - dependencies: - source-map: 0.5.7 - source-map-support@0.5.21: dependencies: buffer-from: 1.1.2 @@ -14339,17 +12824,13 @@ snapshots: sri-toolbox@0.2.0: {} - ssri@6.0.2: - dependencies: - figgy-pudding: 3.5.2 - ssri@8.0.1: dependencies: minipass: 3.3.6 stagehand@1.0.1: dependencies: - debug: 4.4.1 + debug: 4.4.3 transitivePeerDependencies: - supports-color @@ -14369,26 +12850,6 @@ snapshots: es-errors: 1.3.0 internal-slot: 1.1.0 - stream-browserify@2.0.2: - dependencies: - inherits: 2.0.4 - readable-stream: 2.3.8 - - stream-each@1.2.3: - dependencies: - end-of-stream: 1.4.5 - stream-shift: 1.0.3 - - stream-http@2.8.3: - dependencies: - builtin-status-codes: 3.0.0 - inherits: 2.0.4 - readable-stream: 2.3.8 - to-arraybuffer: 1.0.1 - xtend: 4.0.2 - - stream-shift@1.0.3: {} - string-template@0.2.1: {} string-width@2.1.1: @@ -14456,10 +12917,6 @@ snapshots: string_decoder@0.10.31: {} - string_decoder@1.1.1: - dependencies: - safe-buffer: 5.1.2 - string_decoder@1.3.0: dependencies: safe-buffer: 5.2.1 @@ -14540,7 +12997,7 @@ snapshots: sync-disk-cache@2.1.0: dependencies: - debug: 4.4.1 + debug: 4.4.3 heimdalljs: 0.2.6 mkdirp: 0.5.6 rimraf: 3.0.2 @@ -14562,8 +13019,6 @@ snapshots: js-yaml: 3.15.2 minipass: 2.9.0 - tapable@1.1.3: {} - tapable@2.3.3: {} tar@6.2.1: @@ -14580,26 +13035,6 @@ snapshots: mkdirp: 0.5.6 rimraf: 2.6.3 - terser-webpack-plugin@1.4.6(webpack@4.47.0): - dependencies: - cacache: 12.0.4 - find-cache-dir: 2.1.0 - is-wsl: 1.1.0 - schema-utils: 1.0.0 - serialize-javascript: 4.0.0 - source-map: 0.6.1 - terser: 4.8.1 - webpack: 4.47.0 - webpack-sources: 1.4.3 - worker-farm: 1.7.0 - - terser@4.8.1: - dependencies: - acorn: 8.19.0 - commander: 2.20.3 - source-map: 0.6.1 - source-map-support: 0.5.21 - terser@5.43.1: dependencies: '@jridgewell/source-map': 0.3.10 @@ -14614,37 +13049,36 @@ snapshots: commander: 2.20.3 source-map-support: 0.5.21 - testem@3.16.0(babel-core@6.26.3)(handlebars@4.7.10)(underscore@1.13.8): + testem@3.19.1(@babel/core@7.29.7)(handlebars@4.7.10)(underscore@1.13.8): dependencies: '@xmldom/xmldom': 0.8.15 backbone: 1.6.1 - bluebird: 3.7.2 charm: 1.0.2 commander: 2.20.3 compression: 1.8.2 - consolidate: 0.16.0(babel-core@6.26.3)(handlebars@4.7.10)(lodash@4.18.1)(mustache@4.2.0)(underscore@1.13.8) - execa: 1.0.0 + consolidate: 1.0.4(@babel/core@7.29.7)(handlebars@4.7.10)(lodash@4.18.1)(mustache@4.2.0)(underscore@1.13.8) + execa: 9.6.1 express: 4.22.3 fireworm: 0.7.2 - glob: 7.2.3 + glob: 13.0.6 http-proxy: 1.18.1 js-yaml: 3.15.2 lodash: 4.18.1 mkdirp: 3.0.1 mustache: 4.2.0 node-notifier: 10.0.1 - npmlog: 6.0.2 printf: 0.6.1 - rimraf: 3.0.2 + proc-log: 5.0.0 + rimraf: 6.1.3 socket.io: 4.8.4 spawn-args: 0.2.0 styled_string: 0.0.1 tap-parser: 7.0.0 - tmp: 0.0.33 + tmp: 0.2.7 transitivePeerDependencies: + - '@babel/core' - arc-templates - atpl - - babel-core - bracket-template - bufferutil - coffee-script @@ -14662,30 +13096,25 @@ snapshots: - handlebars - hogan.js - htmling - - jade - jazz - jqtpl - just - liquid-node - liquor - - marko - mote - nunjucks - plates - pug - qejs - ractive - - razor-tmpl - react - react-dom - slm - - squirrelly - supports-color - swig - swig-templates - teacup - templayed - - then-jade - then-pug - tinyliquid - toffee @@ -14710,11 +13139,6 @@ snapshots: dependencies: any-promise: 1.3.0 - through2@2.0.5: - dependencies: - readable-stream: 2.3.8 - xtend: 4.0.2 - through2@3.0.2: dependencies: inherits: 2.0.4 @@ -14722,10 +13146,6 @@ snapshots: through@2.3.8: {} - timers-browserify@2.0.12: - dependencies: - setimmediate: 1.0.5 - tiny-glob@0.2.9: dependencies: globalyzer: 0.1.0 @@ -14758,22 +13178,6 @@ snapshots: tmpl@1.0.5: {} - to-arraybuffer@1.0.1: {} - - to-buffer@1.2.1: - dependencies: - isarray: 2.0.5 - safe-buffer: 5.2.1 - typed-array-buffer: 1.0.3 - - to-buffer@1.2.2: - dependencies: - isarray: 2.0.5 - safe-buffer: 5.2.1 - typed-array-buffer: 1.0.3 - - to-fast-properties@1.0.3: {} - to-object-path@0.3.0: dependencies: kind-of: 3.2.2 @@ -14820,14 +13224,10 @@ snapshots: transitivePeerDependencies: - supports-color - trim-right@1.0.1: {} - tslib@1.14.1: {} tslib@2.8.1: {} - tty-browserify@0.0.0: {} - type-check@0.4.0: dependencies: prelude-ls: 1.2.1 @@ -14882,8 +13282,6 @@ snapshots: dependencies: is-typedarray: 1.0.0 - typedarray@0.0.6: {} - typescript-memoize@1.1.1: {} uc.micro@1.0.6: {} @@ -14956,9 +13354,6 @@ snapshots: dependencies: os-homedir: 1.0.2 - upath@1.2.0: - optional: true - upath@2.0.1: {} update-browserslist-db@1.3.4(browserslist@4.29.3): @@ -14977,25 +13372,12 @@ snapshots: dependencies: prepend-http: 2.0.0 - url@0.11.4: - dependencies: - punycode: 1.4.1 - qs: 6.16.0 - use@3.1.1: {} username-sync@1.0.3: {} util-deprecate@1.0.2: {} - util@0.10.4: - dependencies: - inherits: 2.0.3 - - util@0.11.1: - dependencies: - inherits: 2.0.3 - utils-merge@1.0.1: {} uuid@8.3.2: {} @@ -15018,9 +13400,12 @@ snapshots: resolve-package-path: 3.1.0 semver: 7.7.2 - vary@1.1.2: {} + validate-peer-dependencies@2.2.0: + dependencies: + resolve-package-path: 4.0.3 + semver: 7.7.2 - vm-browserify@1.1.2: {} + vary@1.1.2: {} walk-sync@0.2.7: dependencies: @@ -15064,23 +13449,6 @@ snapshots: transitivePeerDependencies: - supports-color - watchpack-chokidar2@2.0.1: - dependencies: - chokidar: 2.1.8 - transitivePeerDependencies: - - supports-color - optional: true - - watchpack@1.7.5: - dependencies: - graceful-fs: 4.2.11 - neo-async: 2.6.2 - optionalDependencies: - chokidar: 3.6.0 - watchpack-chokidar2: 2.0.1 - transitivePeerDependencies: - - supports-color - watchpack@2.6.1: dependencies: graceful-fs: 4.2.11 @@ -15091,41 +13459,8 @@ snapshots: webidl-conversions@3.0.1: {} - webpack-sources@1.4.3: - dependencies: - source-list-map: 2.0.1 - source-map: 0.6.1 - webpack-sources@3.6.0: {} - webpack@4.47.0: - dependencies: - '@webassemblyjs/ast': 1.9.0 - '@webassemblyjs/helper-module-context': 1.9.0 - '@webassemblyjs/wasm-edit': 1.9.0 - '@webassemblyjs/wasm-parser': 1.9.0 - acorn: 6.4.2 - ajv: 6.15.0 - ajv-keywords: 3.5.2(ajv@6.15.0) - chrome-trace-event: 1.0.4 - enhanced-resolve: 4.5.0 - eslint-scope: 4.0.3 - json-parse-better-errors: 1.0.2 - loader-runner: 2.4.0 - loader-utils: 1.4.2 - memory-fs: 0.4.1 - micromatch: 3.1.10 - mkdirp: 0.5.6 - neo-async: 2.6.2 - node-libs-browser: 2.2.1 - schema-utils: 1.0.0 - tapable: 1.1.3 - terser-webpack-plugin: 1.4.6(webpack@4.47.0) - watchpack: 1.7.5 - webpack-sources: 1.4.3 - transitivePeerDependencies: - - supports-color - webpack@5.111.1(postcss@8.5.30): dependencies: '@types/estree': 1.0.8 @@ -15229,20 +13564,12 @@ snapshots: dependencies: isexe: 3.1.1 - wide-align@1.1.5: - dependencies: - string-width: 4.2.3 - word-wrap@1.2.5: {} wordwrap@0.0.3: {} wordwrap@1.0.0: {} - worker-farm@1.7.0: - dependencies: - errno: 0.1.8 - workerpool@3.1.2: dependencies: '@babel/core': 7.29.7 @@ -15280,8 +13607,6 @@ snapshots: xtend@4.0.2: {} - y18n@4.0.3: {} - y18n@5.0.8: {} yallist@3.1.1: {} From a42e6458a14be22ef9a190fb51058e34926c136c Mon Sep 17 00:00:00 2001 From: Gaurav Munjal Date: Thu, 15 Oct 2026 11:39:20 -0400 Subject: [PATCH 11/12] fix(security): force tmp to ^0.2.7 can-symlink, fixturify-project and external-editor pin tmp 0.0.x (CVE-2025-54798, CVE-2026-44705) and have no release that updates it. They only use tmpNameSync, dirSync, fileSync and setGracefulCleanup, which tmp 0.2.x still provides, so override it for the whole tree. Co-Authored-By: Claude Sonnet 5.5 --- package.json | 3 ++- pnpm-lock.yaml | 37 +++++++------------------------------ 2 files changed, 9 insertions(+), 31 deletions(-) diff --git a/package.json b/package.json index 0919e328..718a4b85 100644 --- a/package.json +++ b/package.json @@ -114,7 +114,8 @@ }, "pnpm": { "overrides": { - "testem": "~3.19.1" + "testem": "~3.19.1", + "tmp": "^0.2.7" } } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 744c8cd4..73943685 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -6,6 +6,7 @@ settings: overrides: testem: ~3.19.1 + tmp: ^0.2.7 importers: @@ -5707,18 +5708,6 @@ packages: tiny-lr@2.0.0: resolution: {integrity: sha512-f6nh0VMRvhGx4KCeK1lQ/jaL0Zdb5WdR+Jk8q9OSUQnaSDxAEGH1fgqLZ+cMl5EW3F2MGnCsalBO1IsnnogW1Q==} - tmp@0.0.28: - resolution: {integrity: sha512-c2mmfiBmND6SOVxzogm1oda0OJ1HZVIk/5n26N59dDTh80MUeavpiCls4PGAdkX1PFkKokLpcf7prSjCeXLsJg==} - engines: {node: '>=0.4.0'} - - tmp@0.0.33: - resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} - engines: {node: '>=0.6.0'} - - tmp@0.1.0: - resolution: {integrity: sha512-J7Z2K08jbGcdA1kkQpJSqLF6T0tdQqpR2pnSUXsIchbPdTI9v3e85cLW0d6WDhwuAleOV71j2xWs8qMPfK7nKw==} - engines: {node: '>=6'} - tmp@0.2.7: resolution: {integrity: sha512-e0votIpp4Uo2AJYSzVHV6xCcawuiez3DzqDAbrTc3YxBkplN6e+dM13ZeIcZnDg/QpSuU2zfZ3rzwY8ukEnaXw==} engines: {node: '>=14.14'} @@ -8441,7 +8430,7 @@ snapshots: resolve-path: 1.4.0 rimraf: 3.0.2 sane: 4.1.0 - tmp: 0.0.33 + tmp: 0.2.7 tree-sync: 2.1.0 underscore.string: 3.3.6 watch-detector: 1.0.2 @@ -8545,7 +8534,7 @@ snapshots: can-symlink@1.0.0: dependencies: - tmp: 0.0.28 + tmp: 0.2.7 caniuse-lite@1.0.30001816: {} @@ -10041,7 +10030,7 @@ snapshots: dependencies: chardet: 0.7.0 iconv-lite: 0.4.24 - tmp: 0.0.33 + tmp: 0.2.7 extglob@2.0.4: dependencies: @@ -10217,12 +10206,12 @@ snapshots: fixturify-project@1.10.0: dependencies: fixturify: 1.3.0 - tmp: 0.0.33 + tmp: 0.2.7 fixturify-project@2.1.1: dependencies: fixturify: 2.1.1 - tmp: 0.0.33 + tmp: 0.2.7 type-fest: 0.11.0 fixturify@1.3.0: @@ -13162,18 +13151,6 @@ snapshots: transitivePeerDependencies: - supports-color - tmp@0.0.28: - dependencies: - os-tmpdir: 1.0.2 - - tmp@0.0.33: - dependencies: - os-tmpdir: 1.0.2 - - tmp@0.1.0: - dependencies: - rimraf: 2.7.1 - tmp@0.2.7: {} tmpl@1.0.5: {} @@ -13445,7 +13422,7 @@ snapshots: dependencies: heimdalljs-logger: 0.1.10 silent-error: 1.1.1 - tmp: 0.1.0 + tmp: 0.2.7 transitivePeerDependencies: - supports-color From b0a4b0743b83be4bd067062238f5fbeeba20a4c3 Mon Sep 17 00:00:00 2001 From: Gaurav Munjal Date: Fri, 16 Oct 2026 10:27:47 -0400 Subject: [PATCH 12/12] fix(security): override ansi-html, decode-uri-component and @babel/runtime Patch-level/minor-in-0.x overrides for dev-toolchain advisories that don't require a major bump. Test-environment build verified. Co-Authored-By: Claude Sonnet 5.5 --- package.json | 3 +++ pnpm-lock.yaml | 32 ++++++++++++++------------------ 2 files changed, 17 insertions(+), 18 deletions(-) diff --git a/package.json b/package.json index 718a4b85..748d989c 100644 --- a/package.json +++ b/package.json @@ -114,6 +114,9 @@ }, "pnpm": { "overrides": { + "@babel/runtime": "^7.26.10", + "ansi-html": "0.0.9", + "decode-uri-component": "0.5.0", "testem": "~3.19.1", "tmp": "^0.2.7" } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 73943685..872606fa 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -5,6 +5,9 @@ settings: excludeLinksFromLockfile: false overrides: + '@babel/runtime': ^7.26.10 + ansi-html: 0.0.9 + decode-uri-component: 0.5.0 testem: ~3.19.1 tmp: ^0.2.7 @@ -756,9 +759,6 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0 - '@babel/runtime@7.12.18': - resolution: {integrity: sha512-BogPQ7ciE6SYAUPtlm9tWbgI9+2AgqSam6QivMgXgAT+fKbgppaj4ZX15MHeLC1PVF5sNk70huBu20XxWOs8Cg==} - '@babel/runtime@7.29.10': resolution: {integrity: sha512-NpugTzbKgGrNe45Ui32cN8vCFFMxVtP/9rtfwv0nP5FRDAjvYBxJcLVpYA9mr1jxP6cnIT7x9LUzuDTbWYYNRA==} engines: {node: '>=6.9.0'} @@ -1335,8 +1335,8 @@ packages: resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} engines: {node: '>=8'} - ansi-html@0.0.7: - resolution: {integrity: sha512-JoAxEa1DfP9m2xfB/y2r/aKcwXNlltr4+0QSBC4TrLfcxyvepX2Pv0t/xpgGV5bGsDzCYV8SzjWgyCW0T9yYbA==} + ansi-html@0.0.9: + resolution: {integrity: sha512-ozbS3LuenHVxNRh/wdnN16QapUHzauqSomAl1jwwJRRsGwFwtj644lIhxfWu0Fy0acCij2+AEgHvjscq3dlVXg==} engines: {'0': node >= 0.8.0} hasBin: true @@ -2342,9 +2342,9 @@ packages: supports-color: optional: true - decode-uri-component@0.2.2: - resolution: {integrity: sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==} - engines: {node: '>=0.10'} + decode-uri-component@0.5.0: + resolution: {integrity: sha512-1BiQVoK8C9gUbQU6NzAtO/tkz2qOFpEObMWpcFvhx4fYnj4Oc5yzaJN/LD36ihkVUdXyh5ZekzX+yM+ty/SrPg==} + engines: {node: '>=14.16'} decompress-response@3.3.0: resolution: {integrity: sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==} @@ -6915,10 +6915,6 @@ snapshots: '@babel/types': 7.29.8 esutils: 2.0.3 - '@babel/runtime@7.12.18': - dependencies: - regenerator-runtime: 0.13.11 - '@babel/runtime@7.29.10': {} '@babel/template@7.27.2': @@ -7688,7 +7684,7 @@ snapshots: dependencies: type-fest: 0.21.3 - ansi-html@0.0.7: {} + ansi-html@0.0.9: {} ansi-regex@2.1.1: {} @@ -8249,7 +8245,7 @@ snapshots: broccoli-middleware@2.1.1: dependencies: - ansi-html: 0.0.7 + ansi-html: 0.0.9 handlebars: 4.7.10 has-ansi: 3.0.0 mime-types: 2.1.35 @@ -8413,7 +8409,7 @@ snapshots: '@types/chai': 4.3.20 '@types/chai-as-promised': 7.1.8 '@types/express': 4.17.23 - ansi-html: 0.0.7 + ansi-html: 0.0.9 broccoli-node-info: 2.2.0 broccoli-slow-trees: 3.1.0 broccoli-source: 3.0.1 @@ -8870,7 +8866,7 @@ snapshots: dependencies: ms: 2.1.3 - decode-uri-component@0.2.2: {} + decode-uri-component@0.5.0: {} decompress-response@3.3.0: dependencies: @@ -9040,7 +9036,7 @@ snapshots: '@babel/plugin-transform-typescript': 7.28.0(@babel/core@7.29.7) '@babel/polyfill': 7.12.1 '@babel/preset-env': 7.28.0(@babel/core@7.29.7) - '@babel/runtime': 7.12.18 + '@babel/runtime': 7.29.10 amd-name-resolver: 1.3.1 babel-plugin-debug-macros: 0.3.4(@babel/core@7.29.7) babel-plugin-ember-data-packages-polyfill: 0.1.2 @@ -12763,7 +12759,7 @@ snapshots: source-map-resolve@0.5.3: dependencies: atob: 2.1.2 - decode-uri-component: 0.2.2 + decode-uri-component: 0.5.0 resolve-url: 0.2.1 source-map-url: 0.4.1 urix: 0.1.0