diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0780efd..9a77e89 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -83,6 +83,34 @@ jobs: - name: Run Tests run: pnpm test + smoke-tests: + name: ${{ matrix.dir }} + runs-on: ubuntu-latest + needs: "test" + timeout-minutes: 10 + strategy: + fail-fast: false + matrix: + dir: + - "vite-with-strict-app" + - "v2-addon" + + steps: + - uses: actions/checkout@v4 + - uses: pnpm/action-setup@v4 + - uses: actions/setup-node@v4 + with: + node-version: 22 + cache: pnpm + + - name: Install Dependencies + run: pnpm install --no-lockfile + - name: Build Library + run: pnpm build + - name: Run Tests + working-directory: test-apps/${{ matrix.dir }} + run: pnpm test + try-scenarios: name: ${{ matrix.name }} runs-on: ubuntu-latest diff --git a/.prettierignore b/.prettierignore index b5f539b..459a565 100644 --- a/.prettierignore +++ b/.prettierignore @@ -14,3 +14,4 @@ config/ember-cli-update.json *.yml *.md *.html +/test-apps/ diff --git a/README.md b/README.md index 6236488..64c33a9 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # ember-strict-application-resolver -A polyfill implementation of the upcoming default strict resolver built in to Ember. +A polyfill implementation of [RFC #1132](https://rfcs.emberjs.com/id/1132-default-strict-resolver) -- the upcoming default strict resolver built in to Ember. ## Installation @@ -29,6 +29,7 @@ In your app.js or app.ts, or wherever you configure your application + './router': { default: Router }, + './services/manual': { default: SomeService }, + './services/manual-shorthand': SomeOtherService, ++ './config/environment': { /* config here */ }, + + // now import.meta.glob just works + ...import.meta.glob('./services/**/*', { eager: true }), @@ -88,6 +89,42 @@ export default buildRegistry({ }); ``` +### `compatToRFC1132` + +In V2 Addons, where you likely don't have a `config/enviroment.js` (which is responsible for providing the `modulePrefix`, you may want to re-add the behavior of full apps, which is to auto-discover and convert files and folders into the module format described by [RFC #1132](https://rfcs.emberjs.com/id/1132-default-strict-resolver) -- which can be done with the combination of `@embroider/virtual/compat-modules` and this `compatToRFC1132` utility. + +In your app.js or app.ts, or wherever you configure your application +```diff +- import config from '/config/environment'; +- import EmberApp from '@ember/application'; +- import EmberResolver from 'ember-resolver'; + import compatModules from '@embroider/virtual/compat-modules'; ++ import EmberApp from 'ember-strict-application-resolver'; ++ import { compatToRFC1132 } from 'ember-strict-application-resolver/convert'; + + class YouApp extends EmberApp { +- modulePrefix = config.modulePrefix; +- podModulePrefix = config.podModulePrefix; +- Resolver = EmberResolver.withModules({ +- ...compatModules, +- [`${config.modulePrefix}/router`]: { default: Router }, +- [`${config.modulePrefix}/services/manual`]: { default: Manual }, +- }); + ++ modules = { ++ // Includes services (and other things in the app-tree merging) from libraries ++ ...compatToRFC1132(compatModules), ++ ++ ...import.meta.glob('./services/**/*', { eager: true }), ++ ...import.meta.glob('./routes/*', { eager: true }), ++ ...import.meta.glob('./templates/**/*', { eager: true }), ++ }; + } +``` + +> [!IMPORTANT] +> `compatModules` finds files via the `exports` in package.json, which means to use this in a library, the library must first be built. + ## Contributing See the [Contributing](CONTRIBUTING.md) guide for details. diff --git a/eslint.config.mjs b/eslint.config.mjs index 8535783..c918985 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -3,6 +3,9 @@ import { configs } from '@nullvoxpopuli/eslint-configs'; // accommodates: JS, TS, App, Addon, and V2 Addon export default [ ...configs.ember(import.meta.dirname), + { + ignores: ['node_modules', 'dist', 'dist-test', 'test-apps'], + }, { files: ['**/*.ts'], rules: { diff --git a/package.json b/package.json index 855a13f..5881ca1 100644 --- a/package.json +++ b/package.json @@ -78,6 +78,7 @@ "@types/qunit": "^2.19.12", "babel-plugin-ember-template-compilation": "^2.2.5", "concurrently": "^9.0.1", + "ember-page-title": "^9.0.3", "ember-qunit": "^9.0.2", "ember-resolver": "^13.1.0", "ember-source": "^6.3.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 8b517e8..d8be079 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -38,7 +38,7 @@ importers: version: 8.1.0(@glint/template@1.6.1)(rollup@4.46.0) '@embroider/compat': specifier: ^4.1.0 - version: 4.1.1(@embroider/core@4.1.3(@glint/template@1.6.1))(@glimmer/component@2.0.0)(@glint/template@1.6.1)(rsvp@4.8.5)(webpack@5.100.2) + version: 4.1.1(@embroider/core@4.1.3(@glint/template@1.6.1))(@glimmer/component@2.0.0)(@glint/template@1.6.1)(rsvp@4.8.5) '@embroider/core': specifier: ^4.1.0 version: 4.1.3(@glint/template@1.6.1) @@ -62,7 +62,7 @@ importers: version: 2.0.3 '@nullvoxpopuli/eslint-configs': specifier: ^5.3.0 - version: 5.3.0(@babel/core@7.28.0)(@babel/eslint-parser@7.28.0(@babel/core@7.28.0)(eslint@9.32.0(jiti@2.4.2)))(eslint@9.32.0(jiti@2.4.2))(prettier@3.6.2)(typescript@5.8.3) + version: 5.3.0(@babel/core@7.28.0)(@babel/eslint-parser@7.28.5(@babel/core@7.28.0)(eslint@9.32.0(jiti@2.4.2)))(eslint@9.32.0(jiti@2.4.2))(prettier@3.6.2)(typescript@5.8.3) '@rollup/plugin-babel': specifier: ^6.0.4 version: 6.0.4(@babel/core@7.28.0)(rollup@4.46.0) @@ -75,6 +75,9 @@ importers: concurrently: specifier: ^9.0.1 version: 9.2.0 + ember-page-title: + specifier: ^9.0.3 + version: 9.0.3 ember-qunit: specifier: ^9.0.2 version: 9.0.3(@ember/test-helpers@5.2.2(@babel/core@7.28.0)(@glint/template@1.6.1))(@glint/template@1.6.1)(qunit@2.24.1) @@ -121,6 +124,272 @@ importers: specifier: ^6.2.4 version: 6.3.5(@types/node@24.1.0)(jiti@2.4.2)(terser@5.43.1) + test-apps/v2-addon: + dependencies: + '@embroider/addon-shim': + specifier: ^1.8.9 + version: 1.10.0 + decorator-transforms: + specifier: ^2.2.2 + version: 2.3.0(@babel/core@7.28.5) + devDependencies: + '@babel/core': + specifier: ^7.25.2 + version: 7.28.5 + '@babel/eslint-parser': + specifier: ^7.25.1 + version: 7.28.5(@babel/core@7.28.5)(eslint@9.38.0(jiti@2.4.2)) + '@babel/runtime': + specifier: ^7.25.6 + version: 7.28.4 + '@ember/app-tsconfig': + specifier: ^1.0.0 + version: 1.0.3 + '@ember/library-tsconfig': + specifier: ^1.0.0 + version: 1.1.3 + '@ember/test-helpers': + specifier: ^5.2.1 + version: 5.4.0(@babel/core@7.28.5)(@glint/template@1.6.1) + '@ember/test-waiters': + specifier: ^4.1.1 + version: 4.1.1(@glint/template@1.6.1) + '@embroider/addon-dev': + specifier: ^8.1.0 + version: 8.1.0(@glint/template@1.6.1)(rollup@4.46.0) + '@embroider/compat': + specifier: ^4.1.0 + version: 4.1.8(@embroider/core@4.2.5(@glint/template@1.6.1))(@glint/template@1.6.1) + '@embroider/core': + specifier: ^4.1.0 + version: 4.2.5(@glint/template@1.6.1) + '@embroider/macros': + specifier: ^1.18.0 + version: 1.19.2(@glint/template@1.6.1) + '@embroider/vite': + specifier: ^1.1.5 + version: 1.3.6(@embroider/core@4.2.5(@glint/template@1.6.1))(@glint/template@1.6.1)(rollup@4.46.0)(vite@7.1.12(@types/node@24.1.0)(jiti@2.4.2)(terser@5.43.1)) + '@eslint/js': + specifier: ^9.17.0 + version: 9.38.0 + '@glimmer/component': + specifier: ^2.0.0 + version: 2.0.0 + '@rollup/plugin-babel': + specifier: ^6.0.4 + version: 6.0.4(@babel/core@7.28.5)(rollup@4.46.0) + babel-plugin-ember-template-compilation: + specifier: ^2.2.5 + version: 2.4.1 + concurrently: + specifier: ^9.0.1 + version: 9.2.1 + ember-page-title: + specifier: ^8.2.4 + version: 8.2.4(ember-source@6.8.0(@glimmer/component@2.0.0)(rsvp@4.8.5)) + ember-qunit: + specifier: ^9.0.2 + version: 9.0.4(@ember/test-helpers@5.4.0(@babel/core@7.28.5)(@glint/template@1.6.1))(@glint/template@1.6.1)(qunit@2.24.2) + ember-source: + specifier: ^6.7.0 + version: 6.8.0(@glimmer/component@2.0.0)(rsvp@4.8.5) + ember-strict-application-resolver: + specifier: workspace:* + version: link:../.. + ember-template-lint: + specifier: ^7.9.0 + version: 7.9.3 + eslint: + specifier: ^9.17.0 + version: 9.38.0(jiti@2.4.2) + eslint-config-prettier: + specifier: ^10.1.5 + version: 10.1.8(eslint@9.38.0(jiti@2.4.2)) + eslint-plugin-ember: + specifier: ^12.3.3 + version: 12.7.4(@babel/core@7.28.5)(@typescript-eslint/parser@8.38.0(eslint@9.38.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.38.0(jiti@2.4.2)) + eslint-plugin-import: + specifier: ^2.31.0 + version: 2.32.0(@typescript-eslint/parser@8.38.0(eslint@9.38.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.38.0(jiti@2.4.2)) + eslint-plugin-n: + specifier: ^17.15.1 + version: 17.23.1(eslint@9.38.0(jiti@2.4.2))(typescript@5.8.3) + globals: + specifier: ^16.1.0 + version: 16.4.0 + prettier: + specifier: ^3.4.2 + version: 3.6.2 + prettier-plugin-ember-template-tag: + specifier: ^2.0.4 + version: 2.1.0(prettier@3.6.2) + qunit: + specifier: ^2.24.1 + version: 2.24.2 + qunit-dom: + specifier: ^3.4.0 + version: 3.5.0 + rollup: + specifier: ^4.22.5 + version: 4.46.0 + testem: + specifier: ^3.15.1 + version: 3.16.0(handlebars@4.7.8)(underscore@1.13.7) + vite: + specifier: ^7.1.9 + version: 7.1.12(@types/node@24.1.0)(jiti@2.4.2)(terser@5.43.1) + + test-apps/vite-with-strict-app: + dependencies: + ember-strict-application-resolver: + specifier: workspace:* + version: link:../.. + devDependencies: + '@babel/core': + specifier: ^7.28.4 + version: 7.28.5 + '@babel/eslint-parser': + specifier: ^7.28.4 + version: 7.28.5(@babel/core@7.28.5)(eslint@9.38.0(jiti@2.4.2)) + '@babel/plugin-transform-runtime': + specifier: ^7.28.3 + version: 7.28.5(@babel/core@7.28.5) + '@babel/runtime': + specifier: ^7.28.4 + version: 7.28.4 + '@ember/optional-features': + specifier: ^2.2.0 + version: 2.2.0 + '@ember/string': + specifier: ^4.0.1 + version: 4.0.1 + '@ember/test-helpers': + specifier: ^5.3.0 + version: 5.4.0(@babel/core@7.28.5)(@glint/template@1.6.1) + '@ember/test-waiters': + specifier: ^4.1.1 + version: 4.1.1(@glint/template@1.6.1) + '@embroider/compat': + specifier: ^4.1.7 + version: 4.1.8(@embroider/core@4.2.5(@glint/template@1.6.1))(@glint/template@1.6.1) + '@embroider/config-meta-loader': + specifier: ^1.0.0 + version: 1.0.0 + '@embroider/core': + specifier: ^4.2.4 + version: 4.2.5(@glint/template@1.6.1) + '@embroider/legacy-inspector-support': + specifier: ^0.1.3 + version: 0.1.3 + '@embroider/macros': + specifier: ^1.19.1 + version: 1.19.2(@glint/template@1.6.1) + '@embroider/router': + specifier: ^3.0.4 + version: 3.0.4(@embroider/core@4.2.5(@glint/template@1.6.1))(@glint/template@1.6.1) + '@embroider/vite': + specifier: ^1.3.2 + version: 1.3.6(@embroider/core@4.2.5(@glint/template@1.6.1))(@glint/template@1.6.1)(rollup@4.46.0)(vite@7.1.12(@types/node@24.1.0)(jiti@2.4.2)(terser@5.43.1)) + '@eslint/js': + specifier: ^9.37.0 + version: 9.38.0 + '@glimmer/component': + specifier: ^2.0.0 + version: 2.0.0 + '@rollup/plugin-babel': + specifier: ^6.0.4 + version: 6.0.4(@babel/core@7.28.5)(rollup@4.46.0) + babel-plugin-ember-template-compilation: + specifier: ^2.4.1 + version: 2.4.1 + concurrently: + specifier: ^9.2.1 + version: 9.2.1 + decorator-transforms: + specifier: ^2.3.0 + version: 2.3.0(@babel/core@7.28.5) + ember-auto-import: + specifier: ^2.11.1 + version: 2.11.1(@glint/template@1.6.1)(webpack@5.100.2) + ember-cli: + specifier: ~6.8.0 + version: 6.8.0(@types/node@24.1.0)(handlebars@4.7.8)(underscore@1.13.7) + ember-cli-babel: + specifier: ^8.2.0 + version: 8.2.0(@babel/core@7.28.5) + ember-cli-deprecation-workflow: + specifier: ^3.4.0 + version: 3.4.0(ember-source@6.8.0(@glimmer/component@2.0.0)(rsvp@4.8.5)) + ember-load-initializers: + specifier: ^3.0.1 + version: 3.0.1(ember-source@6.8.0(@glimmer/component@2.0.0)(rsvp@4.8.5)) + ember-modifier: + specifier: ^4.2.2 + version: 4.2.2(@babel/core@7.28.5) + ember-page-title: + specifier: ^9.0.3 + version: 9.0.3 + ember-qunit: + specifier: ^9.0.4 + version: 9.0.4(@ember/test-helpers@5.4.0(@babel/core@7.28.5)(@glint/template@1.6.1))(@glint/template@1.6.1)(qunit@2.24.2) + ember-resolver: + specifier: ^13.1.1 + version: 13.1.1 + ember-source: + specifier: ~6.8.0 + version: 6.8.0(@glimmer/component@2.0.0)(rsvp@4.8.5) + ember-template-lint: + specifier: ^7.9.3 + version: 7.9.3 + ember-welcome-page: + specifier: ^7.0.2 + version: 7.0.2 + eslint: + specifier: ^9.37.0 + version: 9.38.0(jiti@2.4.2) + eslint-config-prettier: + specifier: ^10.1.8 + version: 10.1.8(eslint@9.38.0(jiti@2.4.2)) + eslint-plugin-ember: + specifier: ^12.7.4 + version: 12.7.4(@babel/core@7.28.5)(@typescript-eslint/parser@8.38.0(eslint@9.38.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.38.0(jiti@2.4.2)) + eslint-plugin-n: + specifier: ^17.23.1 + version: 17.23.1(eslint@9.38.0(jiti@2.4.2))(typescript@5.8.3) + eslint-plugin-qunit: + specifier: ^8.2.5 + version: 8.2.5(eslint@9.38.0(jiti@2.4.2)) + globals: + specifier: ^16.4.0 + version: 16.4.0 + prettier: + specifier: ^3.6.2 + version: 3.6.2 + prettier-plugin-ember-template-tag: + specifier: ^2.1.0 + version: 2.1.0(prettier@3.6.2) + qunit: + specifier: ^2.24.2 + version: 2.24.2 + qunit-dom: + specifier: ^3.5.0 + version: 3.5.0 + stylelint: + specifier: ^16.25.0 + version: 16.25.0(typescript@5.8.3) + stylelint-config-standard: + specifier: ^38.0.0 + version: 38.0.0(stylelint@16.25.0(typescript@5.8.3)) + testem: + specifier: ^3.16.0 + version: 3.16.0(handlebars@4.7.8)(underscore@1.13.7) + tracked-built-ins: + specifier: ^4.0.0 + version: 4.0.0(@babel/core@7.28.5) + vite: + specifier: ^7.1.9 + version: 7.1.12(@types/node@24.1.0)(jiti@2.4.2)(terser@5.43.1) + packages: '@ampproject/remapping@2.3.0': @@ -142,8 +411,12 @@ packages: resolution: {integrity: sha512-UlLAnTPrFdNGoFtbSXwcGFQBtQZJCNjaN6hQNP3UPvuNXT1i82N26KL3dZeIpNalWywr9IuQuncaAfUaS1g6sQ==} engines: {node: '>=6.9.0'} - '@babel/eslint-parser@7.28.0': - resolution: {integrity: sha512-N4ntErOlKvcbTt01rr5wj3y55xnIdx1ymrfIr8C2WnM1Y9glFgWaGDEULJIazOX3XM9NRzhfJ6zZnQ1sBNWU+w==} + '@babel/core@7.28.5': + resolution: {integrity: sha512-e7jT4DxYvIDLk1ZHmU/m/mB19rex9sv0c2ftBtjSBv+kVM/902eh0fINUzD7UwLLNR+jU585GxUJ8/EBfAM5fw==} + engines: {node: '>=6.9.0'} + + '@babel/eslint-parser@7.28.5': + resolution: {integrity: sha512-fcdRcWahONYo+JRnJg1/AekOacGvKx12Gu0qXJXFi2WBqQA1i7+O5PaxRB7kxE/Op94dExnCiiar6T09pvdHpA==} engines: {node: ^10.13.0 || ^12.13.0 || >=14.0.0} peerDependencies: '@babel/core': ^7.11.0 @@ -153,6 +426,10 @@ packages: resolution: {integrity: sha512-lJjzvrbEeWrhB4P3QBsH7tey117PjLZnDbLiQEKjQ/fNJTjuq4HSqgFA+UNSwZT8D7dxxbnuSBMsa1lrWzKlQg==} engines: {node: '>=6.9.0'} + '@babel/generator@7.28.5': + resolution: {integrity: sha512-3EwLFhZ38J4VyIP6WNtt2kUdW9dokXA9Cr4IVIFHuCpZ3H8/YFOl5JjZHisrn1fATPBmKKqXzDFvh9fUwHz6CQ==} + 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'} @@ -196,6 +473,12 @@ packages: peerDependencies: '@babel/core': ^7.0.0 + '@babel/helper-module-transforms@7.28.3': + resolution: {integrity: sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==} + 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'} @@ -228,6 +511,10 @@ packages: resolution: {integrity: sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==} engines: {node: '>=6.9.0'} + '@babel/helper-validator-identifier@7.28.5': + resolution: {integrity: sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==} + engines: {node: '>=6.9.0'} + '@babel/helper-validator-option@7.27.1': resolution: {integrity: sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==} engines: {node: '>=6.9.0'} @@ -240,11 +527,20 @@ packages: resolution: {integrity: sha512-/V9771t+EgXz62aCcyofnQhGM8DQACbRhvzKFsXKC9QM+5MadF8ZmIm0crDMaz3+o0h0zXfJnd4EhbYbxsrcFw==} engines: {node: '>=6.9.0'} + '@babel/helpers@7.28.4': + resolution: {integrity: sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w==} + engines: {node: '>=6.9.0'} + '@babel/parser@7.28.0': resolution: {integrity: sha512-jVZGvOxOuNSsuQuLRTh13nU0AogFlw32w/MT+LV6D3sP5WdbW61E77RnkbaO2dUvmPAYrBDJXGn5gGS6tH4j8g==} engines: {node: '>=6.0.0'} hasBin: true + '@babel/parser@7.28.5': + resolution: {integrity: sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ==} + 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'} @@ -607,6 +903,12 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-runtime@7.28.5': + resolution: {integrity: sha512-20NUVgOrinudkIBzQ2bNxP08YpKprUkRTiRSd2/Z5GOdPImJGkoN4Z7IQe1T5AdyKI1i5L6RBmluqdSzvaq9/w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-shorthand-properties@7.27.1': resolution: {integrity: sha512-N/wH1vcn4oYawbJ13Y/FxcQrWk63jhfNa7jef0ih7PHSIHX2LB7GWE1rkPrOnka9kwMxb6hMl19p7lidA+EHmQ==} engines: {node: '>=6.9.0'} @@ -689,6 +991,10 @@ packages: resolution: {integrity: sha512-KHp2IflsnGywDjBWDkR9iEqiWSpc8GIi0lgTT3mOElT0PP1tG26P4tmFI2YvAdzgq9RGyoHZQEIEdZy6Ec5xCA==} engines: {node: '>=6.9.0'} + '@babel/runtime@7.28.4': + resolution: {integrity: sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ==} + engines: {node: '>=6.9.0'} + '@babel/template@7.27.2': resolution: {integrity: sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==} engines: {node: '>=6.9.0'} @@ -697,10 +1003,27 @@ packages: resolution: {integrity: sha512-mGe7UK5wWyh0bKRfupsUchrQGqvDbZDbKJw+kcRGSmdHVYrv+ltd0pnpDTVpiTqnaBru9iEvA8pz8W46v0Amwg==} engines: {node: '>=6.9.0'} + '@babel/traverse@7.28.5': + resolution: {integrity: sha512-TCCj4t55U90khlYkVV/0TfkJkAkUg3jZFA3Neb7unZT8CPok7iiRfaX0F+WnqWqt7OxhOn0uBKXCw4lbL8W0aQ==} + engines: {node: '>=6.9.0'} + '@babel/types@7.28.2': resolution: {integrity: sha512-ruv7Ae4J5dUYULmeXw1gmb7rYRz57OWCPM57pHojnLq/3Z1CK2lNSLTCVjxVk1F/TZHwOZZrOWi0ur95BbLxNQ==} engines: {node: '>=6.9.0'} + '@babel/types@7.28.5': + resolution: {integrity: sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA==} + engines: {node: '>=6.9.0'} + + '@cacheable/memoize@2.0.3': + resolution: {integrity: sha512-hl9wfQgpiydhQEIv7fkjEzTGE+tcosCXLKFDO707wYJ/78FVOlowb36djex5GdbSyeHnG62pomYLMuV/OT8Pbw==} + + '@cacheable/memory@2.0.3': + resolution: {integrity: sha512-R3UKy/CKOyb1LZG/VRCTMcpiMDyLH7SH3JrraRdK6kf3GweWCOU3sgvE13W3TiDRbxnDKylzKJvhUAvWl9LQOA==} + + '@cacheable/utils@2.1.0': + resolution: {integrity: sha512-ZdxfOiaarMqMj+H7qwlt5EBKWaeGihSYVHdQv5lUsbn8MJJOTW82OIwirQ39U5tMZkNvy3bQE+ryzC+xTAb9/g==} + '@cnakazawa/watch@1.0.4': resolution: {integrity: sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ==} engines: {node: '>=0.1.95'} @@ -734,9 +1057,40 @@ packages: resolution: {integrity: sha512-Vd/9EVDiu6PPJt9yAh6roZP6El1xHrdvIVGjyBsHR0RYwNHgL7FJPyIIW4fANJNG6FtyZfvlRPpFI4ZM/lubvw==} engines: {node: '>=18'} + '@csstools/media-query-list-parser@4.0.3': + resolution: {integrity: sha512-HAYH7d3TLRHDOUQK4mZKf9k9Ph/m8Akstg66ywKR4SFAigjs3yBiUeZtFxywiTm5moZMAp/5W/ZuFnNXXYLuuQ==} + engines: {node: '>=18'} + peerDependencies: + '@csstools/css-parser-algorithms': ^3.0.5 + '@csstools/css-tokenizer': ^3.0.4 + + '@csstools/selector-specificity@5.0.0': + resolution: {integrity: sha512-PCqQV3c4CoVm3kdPhyeZ07VmBRdH2EpMFA/pd9OASpOEC3aXNGoqPDAZ80D0cLpMBxnmk0+yNhGsEx31hq7Gtw==} + engines: {node: '>=18'} + peerDependencies: + postcss-selector-parser: ^7.0.0 + + '@dual-bundle/import-meta-resolve@4.2.1': + resolution: {integrity: sha512-id+7YRUgoUX6CgV0DtuhirQWodeeA7Lf4i2x71JS/vtA5pRb/hIGWlw+G6MeXvsM+MXrz0VAydTGElX1rAfgPg==} + '@ember-data/rfc395-data@0.0.4': resolution: {integrity: sha512-tGRdvgC9/QMQSuSuJV45xoyhI0Pzjm7A9o/MVVA3HakXIImJbbzx/k/6dO9CUEQXIyS2y0fW6C1XaYOG7rY0FQ==} + '@ember-tooling/blueprint-blueprint@0.2.1': + resolution: {integrity: sha512-eZ5qicL3gfFFbmzLaSiEWPSmoRUJGnqg+dQmU0R81vv+0Ni7W/cS7MXx1l4HpN9B7Yg4M9GgdQTkeJnb6abQug==} + + '@ember-tooling/blueprint-model@0.4.1': + resolution: {integrity: sha512-3jBNTGecTuRPOLjOY3AH/SpnLvJULyhwnR39I77uWj7ZFGwHuoV38uLYZMDjUN6So2uokkS333YavHdVqyn1kQ==} + + '@ember-tooling/classic-build-addon-blueprint@6.8.0': + resolution: {integrity: sha512-qB9c7/vzhMRjOLDisupE+CMqZmycl4PagEZABwwt7EauQsYnUJBcrqvsfEM6Zm+eFjdtPNgLh2QBWffeByscCg==} + + '@ember-tooling/classic-build-app-blueprint@6.8.0': + resolution: {integrity: sha512-BQjfklQyY3gENJ2hJUPy2Dm7a9MuT2eQg41EiOkQI+3WoiKPCMBdOXtWDziAsDzozGaHHHs6fhK1+P/hnTedYw==} + + '@ember/app-blueprint@6.8.2': + resolution: {integrity: sha512-m3XDEWnN9ibg3jBCUjF0rrC02QxoTqoRb2KvE4614XQ2iHF1pwcIvlGJOXH2UiV5oD2dEBZjDQV7kknvp/sGBQ==} + '@ember/app-tsconfig@1.0.3': resolution: {integrity: sha512-dw+/F68xvBw8JYLpyFmAcnF5d/vZqlP6GkEde+XIuPPPn6PIakrh0jtP0/tPxBw8tVuc6eD+H+8CWSsSFrGuiA==} @@ -746,9 +1100,19 @@ packages: '@ember/library-tsconfig@1.1.3': resolution: {integrity: sha512-4cKJ38VEcm4mYmontK9BCpQgm5GPLgAeXqd6PqTHD8eKN0GTeegxdX4SsSUN/8emmULq/9H/Oh6fp3vM2mFqkA==} + '@ember/optional-features@2.2.0': + resolution: {integrity: sha512-a1OQ+w9vDvMXd9BNA9r779yr8MAPguGaMGbIeTMPWACeWBdD6bACBB5iKE3gNyrJAYKMq2wab6BKmRFS3Qw3hw==} + engines: {node: 10.* || 12.* || >= 14} + + '@ember/string@4.0.1': + resolution: {integrity: sha512-VWeng8BSWrIsdPfffOQt/bKwNKJL7+37gPFh/6iZZ9bke+S83kKqkS30poo4bTGfRcMnvAE0ie7txom+iDu81Q==} + '@ember/test-helpers@5.2.2': resolution: {integrity: sha512-Cclqeh0j6RnYvoaElAVC3Nd1fsSUkc3oUTwTsLlNiC3riyPq8lNYxh96VM59/yji2ntrd/cJQ7qhhSZWd6hsEw==} + '@ember/test-helpers@5.4.0': + resolution: {integrity: sha512-+dJ27A+w2/S8yYNnVEgHBrQFY9AM4A8KCSzLlO1nSvLsl1WYIz4GMlHOATaeDXuy+AMe7QTYspCsHqZ+5//GMg==} + '@ember/test-waiters@4.1.1': resolution: {integrity: sha512-HbK70JYCDJcGI0CrwcbjeL2QHAn0HLwa3oGep7mr6l/yO95U7JYA8VN+/9VTsWJTmKueLtWayUqEmGS3a3mVOg==} @@ -772,10 +1136,27 @@ packages: peerDependencies: '@embroider/core': ^4.1.2 + '@embroider/compat@4.1.8': + resolution: {integrity: sha512-YNPMTYViccpQafTpmZ1NknqcB8X+lPgEEF0r4F7//JZTNl9P+4PvJYqfGQeSvw5KWE7kn0ju/vdL4WrneA9Flw==} + engines: {node: 12.* || 14.* || >= 16} + peerDependencies: + '@embroider/core': ^4.2.5 + + '@embroider/config-meta-loader@1.0.0': + resolution: {integrity: sha512-qznkdjgEGPe6NM94hZNXvOm/WhrJwBh8FtSQZ+nGjh9TOjY42tOiTEevFuM0onNXUn6bpdGzmjwKo2xY2jxQxQ==} + engines: {node: 12.* || 14.* || >= 16} + '@embroider/core@4.1.3': resolution: {integrity: sha512-8gdwI71EUOg6CzbUFI/Q6VOWBqyo5Qv1kDz/0Nj9C7JOjgfLYc7NCZwZNKG93yc0qwUGEBxf4TJ3WZDnJD/4Sw==} engines: {node: 12.* || 14.* || >= 16} + '@embroider/core@4.2.5': + resolution: {integrity: sha512-e51BLGoG0YFEZSnEMeYqlQryi3lDCIrW4mHhti3lrnKEyIO30nPkrlCe6Z4zcBkMJPi4rJo1cecQc8UuJU5f+w==} + engines: {node: 12.* || 14.* || >= 16} + + '@embroider/legacy-inspector-support@0.1.3': + resolution: {integrity: sha512-0VzD1xExkT78a1CUiW8wZ5VZDL4bVyMSc3t8E/RiAW1X6TlyKIA/m6zoQgsQtQIiiTPPxH0/1Tdd0F7b5//etw==} + '@embroider/macros@1.18.1': resolution: {integrity: sha512-hOQyzFBT1Rd6RdY4AbRSSGSeXyUzUrU9o6GWGD/kxg7cggKQax4R486KE10ZVSPRNqhRiNUcqe2VWc/+e8Z0MQ==} engines: {node: 12.* || 14.* || >= 16} @@ -785,9 +1166,26 @@ packages: '@glint/template': optional: true + '@embroider/macros@1.19.2': + resolution: {integrity: sha512-lCG8Y58ZGz9kFvvEJjs3c8VDKDtLYV6iszEuQDyBgOtf1F+zizuZJFchLHSP4Vw5ND3Q4iF5I7tFQLGh0wODDg==} + engines: {node: 12.* || 14.* || >= 16} + peerDependencies: + '@glint/template': ^1.0.0 + peerDependenciesMeta: + '@glint/template': + optional: true + '@embroider/reverse-exports@0.1.2': resolution: {integrity: sha512-TgjQalfB42RnwdRVApjcvHSVjBe+7MJfCZV0Cs1jv2QgnFGr/6f5X19PKvmF4FU4xbBf7yOsIWrVvYvidWnXlw==} + '@embroider/router@3.0.4': + resolution: {integrity: sha512-kSygi43vpyqaX7gOaIPFY6WkqHm0NlvMSFJBG98Z2DNxjalGFI3+vzVEmguzQd5fgiMiZcXVAug4yjn1CKdXTA==} + peerDependencies: + '@embroider/core': ^2.0.0||^3.0.0||^4.0.0-alpha.0 + peerDependenciesMeta: + '@embroider/core': + optional: true + '@embroider/shared-internals@2.9.1': resolution: {integrity: sha512-8PJBsa37GD++SAfHf8rcJzlwDwuAQCBo0fr+eGxg9l8XhBXsTnE/7706dM4OqWew9XNqRXn39wfIGHZoBpjNMw==} engines: {node: 12.* || 14.* || >= 16} @@ -796,12 +1194,22 @@ packages: resolution: {integrity: sha512-5J5ipUMCAinQS38WW7wedruq5Z4VnHvNo+ZgOduw0PtI9w0CQWx7/HE+98PBDW8jclikeF+aHwF317vc1hwuzg==} engines: {node: 12.* || 14.* || >= 16} + '@embroider/shared-internals@3.0.1': + resolution: {integrity: sha512-d7RQwDwqqHo7YvjE9t1rtIrCCYtbSoO0uRq2ikVhRh4hGS5OojZNu2ZtS0Wqrg+V72CRtMFr/hibTvHNsRM2Lg==} + engines: {node: 12.* || 14.* || >= 16} + '@embroider/vite@1.1.6': resolution: {integrity: sha512-yq5ZLO82FT2ruhsFWDTxZTVoEQfY8qh6II/Mj9phArHLD5xTitIB5vRXL8MpzstJxeBtSB1ebDifnD/rJ74p5w==} peerDependencies: '@embroider/core': ^4.1.2 vite: '>= 5.2.0' + '@embroider/vite@1.3.6': + resolution: {integrity: sha512-9zg1yyEbHZyCs2kR/ONudSqmFdUYcEMD82GY0TGxovWsU3zKFy4JSK8BBbL7Hub1VCPc54PU6SlVdrgQaZgPIQ==} + peerDependencies: + '@embroider/core': ^4.2.5 + vite: '>= 5.2.0' + '@emnapi/core@1.4.5': resolution: {integrity: sha512-XsLw1dEOpkSX/WucdqUhPWP7hDxSvZiY+fsUC14h+FtQ2Ifni4znbBt8punRX+Uj2JG/uDb8nEHVKvrVlvdZ5Q==} @@ -973,6 +1381,12 @@ packages: peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + '@eslint-community/eslint-utils@4.9.0': + resolution: {integrity: sha512-ayVFHdtZ+hsq1t2Dy24wCmGXGe4q9Gu3smhLYALJrr473ZH27MsnSL+LKUlimp4BWJqMDMLmPpx/Q9R3OAlL4g==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + '@eslint-community/regexpp@4.12.1': resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} @@ -981,14 +1395,26 @@ packages: resolution: {integrity: sha512-ENIdc4iLu0d93HeYirvKmrzshzofPw6VkZRKQGe9Nv46ZnWUzcF1xV01dcvEg/1wXUR61OmmlSfyeyO7EvjLxQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/config-array@0.21.1': + resolution: {integrity: sha512-aw1gNayWpdI/jSYVgzN5pL0cfzU02GT3NBpeT/DXbx1/1x7ZKxFPd9bwrzygx/qiwIQiJ1sw/zD8qY/kRvlGHA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/config-helpers@0.3.0': resolution: {integrity: sha512-ViuymvFmcJi04qdZeDc2whTHryouGcDlaxPqarTD0ZE10ISpxGUVZGZDx4w01upyIynL3iu6IXH2bS1NhclQMw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/config-helpers@0.4.1': + resolution: {integrity: sha512-csZAzkNhsgwb0I/UAV6/RGFTbiakPCf0ZrGmrIxQpYvGZ00PhTkSnyKNolphgIvmnJeGw6rcGVEXfTzUnFuEvw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/core@0.15.1': resolution: {integrity: sha512-bkOp+iumZCCbt1K1CmWf0R9pM5yKpDv+ZXtvSyQpudrI9kuFLp+bM2WOPXImuD/ceQuaa8f5pj93Y7zyECIGNA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/core@0.16.0': + resolution: {integrity: sha512-nmC8/totwobIiFcGkDza3GIKfAw1+hLiYVrh3I1nIomQ8PEr5cxg34jnkmGawul/ep52wGRAcyeDCNtWKSOj4Q==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/eslintrc@3.3.1': resolution: {integrity: sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -997,14 +1423,26 @@ packages: resolution: {integrity: sha512-BBpRFZK3eX6uMLKz8WxFOBIFFcGFJ/g8XuwjTHCqHROSIsopI+ddn/d5Cfh36+7+e5edVS8dbSHnBNhrLEX0zg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/js@9.38.0': + resolution: {integrity: sha512-UZ1VpFvXf9J06YG9xQBdnzU+kthors6KjhMAl6f4gH4usHyh31rUf2DLGInT8RFYIReYXNSydgPY0V2LuWgl7A==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/object-schema@2.1.6': resolution: {integrity: sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/object-schema@2.1.7': + resolution: {integrity: sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/plugin-kit@0.3.4': resolution: {integrity: sha512-Ul5l+lHEcw3L5+k8POx6r74mxEYKG5kOb6Xpy2gCRW6zweT6TEhAf8vhxGgjhqrd/VO/Dirhsb+1hNpD1ue9hw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/plugin-kit@0.4.0': + resolution: {integrity: sha512-sB5uyeq+dwCWyPi31B2gQlVlo+j5brPlWx4yZBrEaRo/nhdDE8Xke1gsGgtiBdaBTxuTkceLVuVt/pclrasb0A==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@gar/promisify@1.1.3': resolution: {integrity: sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==} @@ -1016,6 +1454,10 @@ packages: resolution: {integrity: sha512-SrWiaKM3AND2FQ732wtjAKol7XhCnRqit3tJShG4X0mT27Jb3zuhTI2dkfYVVMTJ23pjT/+0y+s/uGaBSirnBg==} engines: {node: '>= 18.0.0'} + '@glimmer/compiler@0.94.11': + resolution: {integrity: sha512-t9eyLZIFsiwAib8Zyfu67yBep5Vn2bd5DScIE2hharPE/OKKI7cpQYi6BzQhSGYEBVU82ITd/2TLvJ1K8eIahA==} + engines: {node: '>= 18.0.0'} + '@glimmer/component@2.0.0': resolution: {integrity: sha512-eATSzBOUm0MZ9+YfJx7Y5p3gbwnaeMzLSSsCDn1ihDtUOIm5YYEV0ee0G7tXt/uKxowt8tXYn/EMbI9OlRF0CA==} engines: {node: '>= 18'} @@ -1053,18 +1495,27 @@ packages: '@glimmer/manager@0.92.4': resolution: {integrity: sha512-YMoarZT/+Ft2YSd+Wuu5McVsdP9y6jeAdVQGYFpno3NlL3TXYbl7ELtK7OGxFLjzQE01BdiUZZRvcY+a/s9+CQ==} + '@glimmer/manager@0.94.10': + resolution: {integrity: sha512-Hqi92t6vtVg4nSRGWTvCJ+0Vg3iF1tiTG9RLzuUtZac7DIAzuQAxjhGbtu82miT+liCqU+MFmB3nkfNH0Zz74g==} + '@glimmer/manager@0.94.9': resolution: {integrity: sha512-AQT90eSRbgx6O4VnyRgR+y3SqKChPrpZs5stENa0UnqOSbt7dF6XdqAmllfznKFpLlKmJSV7JaVpCarVTR/JQQ==} '@glimmer/node@0.92.4': resolution: {integrity: sha512-a5GME7HQJZFJPQDdSetQI6jjKXXQi0Vdr3WuUrYwhienVTV5LG0uClbFE2yYWC7TX97YDHpRrNk1CC258rujkQ==} + '@glimmer/node@0.94.10': + resolution: {integrity: sha512-8kw6K+RoKhjfprMO059M7x5yRZRK7WGLzD2056/G+65wV7gnJVDuh4qQirekaagjtskz6OdRBVWrSmrbICWtzQ==} + '@glimmer/node@0.94.9': resolution: {integrity: sha512-X90Xyru/TNi/ocq27ttT4zlMGK931J+pGL0eDYEkUX2fJYHd9Wm1idAB7MLJYIJarv/kuoxteiGThGIYkeNVaQ==} '@glimmer/opcode-compiler@0.92.4': resolution: {integrity: sha512-WnZSBwxNqW/PPD/zfxEg6BVR5tHwTm8fp76piix8BNCQ6CuzVn6HUJ5SlvBsOwyoRCmzt/pkKmBJn+I675KG4w==} + '@glimmer/opcode-compiler@0.94.10': + resolution: {integrity: sha512-KYsaODjkgtpUzMR1chyI0IRcvo4ewnjW8Dy+5833+OIG7rx6INl7HvKtooLzjHv+uJOZ74fd/s/0XfaY6eNEww==} + '@glimmer/opcode-compiler@0.94.9': resolution: {integrity: sha512-LlBniSmtBoIlkxzPKHyOw4Nj946Cczelo8RAnqoG/egkHuk4hoO/7ycSgNpPvV3G14BA4Fpy5ExBffx6iuRxQQ==} @@ -1077,6 +1528,9 @@ packages: '@glimmer/program@0.92.4': resolution: {integrity: sha512-fkquujQ11lsGCWl/+XpZW2E7bjHj/g6/Ht292A7pSoANBD8Bz/gPYiPM+XuMwes9MApEsTEMjV4EXlyk2/Cirg==} + '@glimmer/program@0.94.10': + resolution: {integrity: sha512-a5rpsvBwrcAn0boV4ONy+dHr8tWSTvLAPTR1T1KxF0OBHRVciCAfBPRFemVO6Q3H117At9ifn3uoevtQ6H0M+Q==} + '@glimmer/program@0.94.9': resolution: {integrity: sha512-KA3TXYL2iDdR92pPnB/sw1tgIC7B40l2P60iD1sqkYbyxAbrUPHSToA1ycmK4DwmxDOT3Hz9dvpceoCMbh0xjA==} @@ -1086,12 +1540,18 @@ packages: '@glimmer/reference@0.94.8': resolution: {integrity: sha512-FPoXBRMXJupO9nAq/Vw3EY/FCY3xbd+VALqZupyu6ds9vjNiKAkD9+ujIjYa1f+d/ez2ONhy8QjEFoBsyW2flA==} + '@glimmer/reference@0.94.9': + resolution: {integrity: sha512-qlgTYxgEOpgxuyb13u2qwqhibpfktlk08F+nfwuNxtuhodsItBi3YxjFMPrVP0zOjTnhUObR8OYtMsD5WFOddA==} + '@glimmer/runtime@0.92.4': resolution: {integrity: sha512-ISqM/8hVh+fY/gnLAAPKfts4CvnJBOyCYAXgGccIlzzQrSVLaz0NoRiWTLGj5B/3xyPbqLwYPDvlTsOjYtvPoA==} '@glimmer/runtime@0.94.10': resolution: {integrity: sha512-eRe9TmP02ESVXJn2ZOOEm/Hm/Ro7X0kRvZsU8OVtXOqWU8JxeKMwjCEiLbJBQKbYfycRy1u8jZ2wuH0qM/d3EQ==} + '@glimmer/runtime@0.94.11': + resolution: {integrity: sha512-96PqfxnkEW8k8dMydDmaXgijD7yvtIfjMkHoJ7ljUmE1icZ7jj6f+UIZ0LThpXMzkKaBe1xEapjr91Ldsvmqbg==} + '@glimmer/syntax@0.92.3': resolution: {integrity: sha512-7wPKQmULyXCYf0KvbPmfrs/skPISH2QGR9atCnmDWnHyLv5SSZVLm1P0Ctrpta6+Ci3uGQb7hGk0IjsLEavcYQ==} @@ -1113,6 +1573,9 @@ packages: '@glimmer/validator@0.94.8': resolution: {integrity: sha512-vTP6hAcrxE5/0dG2w+tHSteXxgWmkBwMzu5ZTxMg+EkqthWl8B5r5skLiviQ6SdKAOBJGhzf6tF4ltHo5y83hQ==} + '@glimmer/validator@0.95.0': + resolution: {integrity: sha512-xF3K5voKeRqhONztfMHDd2wHDYD6UUI9pFPd+RMGtW6DXYv31G0zUm2pGsOwQ9dyNeE6khaXy7e3FtNjDrSmvQ==} + '@glimmer/vm-babel-plugins@0.92.3': resolution: {integrity: sha512-VpkKsHc3oiq9ruiwT7sN4RuOIc5n10PCeWX7tYSNZ85S1bETcAFn0XbyNjI+G3uFshQGEK0T8Fn3+/8VTNIQIg==} engines: {node: '>=16'} @@ -1121,6 +1584,10 @@ packages: resolution: {integrity: sha512-+MjT+U/MsP7O32rXTYlvcmuiKtwI/PflokpVIW0M9wrkfFrsqgdhLQKvA+tNNxFW9LQ55zbhOtJweFNblHOvxg==} engines: {node: '>=18.18.0'} + '@glimmer/vm-babel-plugins@0.93.5': + resolution: {integrity: sha512-xwVRgDjuadOB9qV1jyTKBrUgE/cpmixD/wIYnFf4+hNJRD39urteKRPw98xJSAt7Bw/6y5B8zsgwFS18Nknlrg==} + engines: {node: '>=18.18.0'} + '@glimmer/vm@0.92.3': resolution: {integrity: sha512-DNMQz7nn2zRwKO1irVZ4alg1lH+VInwR3vkWVgobUs0yh7OoHVGXKMd5uxzIksqJEUw1XOX9Qgu/GYZB1PiH3w==} @@ -1181,6 +1648,19 @@ packages: resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==} engines: {node: '>=18.18'} + '@inquirer/external-editor@1.0.2': + resolution: {integrity: sha512-yy9cOoBnx58TlsPrIxauKIFQTiyH+0MK4e97y4sV9ERbI+zDxw7i2hxHLCIEGIE/8PPvDxGhgzIOTSOWcs6/MQ==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + + '@inquirer/figures@1.0.14': + resolution: {integrity: sha512-DbFgdt+9/OZYFM+19dbpXOSeAstPy884FPy1KjDu4anWwymZeOYhMY1mdFri172htv6mvc/uvIAAi7b7tvjJBQ==} + engines: {node: '>=18'} + '@isaacs/balanced-match@4.0.1': resolution: {integrity: sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==} engines: {node: 20 || >=22} @@ -1196,6 +1676,9 @@ packages: '@jridgewell/gen-mapping@0.3.12': resolution: {integrity: sha512-OuLGC46TjB5BbN1dH8JULVVZY4WTdkF7tV9Ys6wLL1rubZnCMstOhNHueU5bLCrnRuDhKPDM4g6sw4Bel5Gzqg==} + '@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'} @@ -1209,6 +1692,15 @@ packages: '@jridgewell/trace-mapping@0.3.29': resolution: {integrity: sha512-uw6guiW/gcAGPDhLmd77/6lW8QLeiV5RUTsAX46Db6oLhGaVj4lhnPwb184s1bkc8kdVg/+h988dro8GRDpmYQ==} + '@keyv/bigmap@1.1.0': + resolution: {integrity: sha512-MX7XIUNwVRK+hjZcAbNJ0Z8DREo+Weu9vinBOjGU1thEi9F6vPhICzBbk4CCf3eEefKRz7n6TfZXwUFZTSgj8Q==} + engines: {node: '>= 18'} + peerDependencies: + keyv: ^5.5.3 + + '@keyv/serialize@1.1.1': + resolution: {integrity: sha512-dXn3FZhPv0US+7dtJsIi2R+c7qWYiReoEh5zUntWCf4oSpMNib8FDhSoed6m3QyZdx5hK7iLFkYk3rNxwt8vTA==} + '@lint-todo/utils@13.1.1': resolution: {integrity: sha512-F5z53uvRIF4dYfFfJP3a2Cqg+4P1dgJchJsFnsZE0eZp0LK8X7g2J0CsJHRgns+skpXOlM7n5vFGwkWCWj8qJg==} engines: {node: 12.* || >= 14} @@ -1355,6 +1847,18 @@ packages: resolution: {integrity: sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==} engines: {node: '>=12.22.0'} + '@pnpm/constants@1001.3.1': + resolution: {integrity: sha512-2hf0s4pVrVEH8RvdJJ7YRKjQdiG8m0iAT26TTqXnCbK30kKwJW69VLmP5tED5zstmDRXcOeH5eRcrpkdwczQ9g==} + engines: {node: '>=18.12'} + + '@pnpm/error@1000.0.5': + resolution: {integrity: sha512-GjH0TPjbVNrPnl/BAGoFuBLJ2sFfXNKbS33lll/Ehe9yw0fyc8Kdw7kO9if37yQqn6vaa4dAHKkPllum7f/IPQ==} + engines: {node: '>=18.12'} + + '@pnpm/find-workspace-dir@1000.1.3': + resolution: {integrity: sha512-4rdu8GPY9TeQwsYp5D2My74dC3dSVS3tghAvisG80ybK4lqa0gvlrglaSTBxogJbxqHRw/NjI/liEtb3+SD+Bw==} + engines: {node: '>=18.12'} + '@pnpm/network.ca-file@1.0.2': resolution: {integrity: sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA==} engines: {node: '>=12.22.0'} @@ -1550,6 +2054,9 @@ packages: '@types/fs-extra@5.1.0': resolution: {integrity: sha512-AInn5+UBFIK9FK5xc9yP5e3TQSPNNgjHByqYcj9g5elVBnDQcQL7PlO1CIRy2gWlbwK7UPYqi7vRvFA44dCmYQ==} + '@types/fs-extra@8.1.5': + resolution: {integrity: sha512-0dzKcwO+S8s2kuF5Z9oUWatQJj5Uq/iqphEtE3GQJVRRYm/tD1LglU2UnXi2A8jLq5umkGouOXOR9y0n613ZwQ==} + '@types/glob@9.0.0': resolution: {integrity: sha512-00UxlRaIUvYm4R4W9WYkN8/J+kV8fmOQ7okeH6YFtGWFMt3odD45tpG5yA5wnL7HE6lLgjaTW5n14ju2hl2NNA==} deprecated: This is a stub types definition. glob provides its own type definitions, so you do not need this installed. @@ -1828,6 +2335,9 @@ packages: '@xtuc/long@4.2.2': resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==} + abbrev@1.1.1: + resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==} + accepts@1.3.8: resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} engines: {node: '>= 0.6'} @@ -1900,6 +2410,10 @@ packages: resolution: {integrity: sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==} engines: {node: '>=4'} + ansi-escapes@4.3.2: + resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} + engines: {node: '>=8'} + ansi-html@0.0.7: resolution: {integrity: sha512-JoAxEa1DfP9m2xfB/y2r/aKcwXNlltr4+0QSBC4TrLfcxyvepX2Pv0t/xpgGV5bGsDzCYV8SzjWgyCW0T9yYbA==} engines: {'0': node >= 0.8.0} @@ -1933,12 +2447,19 @@ packages: resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} engines: {node: '>=12'} + ansicolors@0.2.1: + resolution: {integrity: sha512-tOIuy1/SK/dr94ZA0ckDohKXNeBNqZ4us6PjMVLs5h1w2GBB6uPtOknp2+VF4F/zcy9LI70W+Z+pE2Soajky1w==} + any-promise@1.3.0: resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} anymatch@2.0.0: resolution: {integrity: sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==} + anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} + aproba@2.1.0: resolution: {integrity: sha512-tLIEcj5GuR2RSTnxNKdkK0dJ/GrC7P38sUkiDmDuHfsHmbagTFAxDVIBltoklXEVIQ/f14IL8IMJ5pn9Hez1Ew==} @@ -1979,6 +2500,10 @@ packages: resolution: {integrity: sha512-FmeCCAenzH0KH381SPT5FZmiA/TmpndpcaShhfgEN9eCVjnFBqq3l1xrI42y8+PPLI6hypzou4GXw00WHmPBLQ==} engines: {node: '>= 0.4'} + array-union@2.1.0: + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} + engines: {node: '>=8'} + array-unique@0.3.2: resolution: {integrity: sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==} engines: {node: '>=0.10.0'} @@ -2010,6 +2535,10 @@ packages: resolution: {integrity: sha512-XTZ7xGML849LkQP86sWdQzfhwbt3YwIO6MqbX9mUNYY98VKaaVZP7YNNm70IpwecbkkxmfC5IYAzOQ/2p29zRA==} engines: {node: '>=4'} + astral-regex@2.0.0: + resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} + engines: {node: '>=8'} + async-disk-cache@1.3.5: resolution: {integrity: sha512-VZpqfR0R7CEOJZ/0FOTgWq70lCrZyS1rkI8PXugDUkTKyyAUgZ2zQ09gLhMkEn+wN8LYeUTPxZdXtlX/kmbXKQ==} @@ -2030,6 +2559,9 @@ packages: async@2.6.4: resolution: {integrity: sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==} + async@3.2.6: + resolution: {integrity: sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==} + asynckit@0.4.0: resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} @@ -2073,6 +2605,12 @@ packages: peerDependencies: '@babel/core': ^7.0.0 + babel-plugin-debug-macros@2.0.0: + resolution: {integrity: sha512-7ZaLtXIY01PAPhLyjV3OACePnl+X5iQO7F4O/sOJHTfMf/36zyu14uVUxNiZmOUntYBsyT/VVplf1LrH6NcwvQ==} + engines: {node: '>=16'} + peerDependencies: + '@babel/core': ^7.0.0 + babel-plugin-ember-data-packages-polyfill@0.1.2: resolution: {integrity: sha512-kTHnOwoOXfPXi00Z8yAgyD64+jdSXk3pknnS7NlqnCKAU6YDkXZ4Y7irl66kaZjZn0FBBt0P4YOZFZk85jYOww==} engines: {node: 6.* || 8.* || 10.* || >= 12.*} @@ -2118,6 +2656,9 @@ packages: babel-plugin-syntax-dynamic-import@6.18.0: resolution: {integrity: sha512-MioUE+LfjCEz65Wf7Z/Rm4XCP5k2c+TbMd2Z2JKc7U9uwjBhAfNPE48KC4GTGKhppMeYVepwDBNO/nGY6NYHBA==} + babel-remove-types@1.0.2: + resolution: {integrity: sha512-X2lmGht7sGkDgpBIaTmr8b/0aXKkMeHeJ5W0HgOdMp1KHyE3PHySHYfbYrfkVoISQsHppNv9yA+pDwhWqaxBSA==} + babylon@6.18.0: resolution: {integrity: sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==} hasBin: true @@ -2131,6 +2672,12 @@ packages: balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + balanced-match@2.0.0: + resolution: {integrity: sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==} + + 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} @@ -2139,6 +2686,10 @@ packages: resolution: {integrity: sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==} engines: {node: '>=0.10.0'} + basic-auth@2.0.1: + resolution: {integrity: sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==} + engines: {node: '>= 0.8'} + before-after-hook@3.0.2: resolution: {integrity: sha512-Nik3Sc0ncrMK4UUdXQmAnRtzmNQTAAXmXIopizwZ1W1t8QmfJj+zL4OA2I7XPTPW5z5TDqv4hRo/JzouDJnX3A==} @@ -2156,6 +2707,9 @@ packages: bind-decorator@1.0.11: resolution: {integrity: sha512-yzkH0uog6Vv/vQ9+rhSKxecnqGUZHYncg7qS7voz3Q76+TAi1SGiOKk2mlOvusQnFz9Dc4BC/NMkeXu11YgjJg==} + bl@4.1.0: + resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} + blank-object@1.0.2: resolution: {integrity: sha512-kXQ19Xhoghiyw66CUiGypnuRpWlbHAzY/+NyvqTEdTfhfQGH1/dbEMYiXju7fYKIFePpzp/y9dsu5Cu/PkmawQ==} @@ -2166,6 +2720,9 @@ packages: resolution: {integrity: sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==} engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + body@5.1.0: + resolution: {integrity: sha512-chUsBxGRtuElD6fmw1gHLpvnKdVLK302peeFa9ZqAEk8TyzZ3fygLyUEDDPTJvL9+Bor0dIwn6ePOsRM2y0zQQ==} + brace-expansion@1.1.12: resolution: {integrity: sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==} @@ -2190,10 +2747,19 @@ packages: peerDependencies: '@babel/core': ^7.17.9 + broccoli-caching-writer@3.0.3: + resolution: {integrity: sha512-g644Kb5uBPsy+6e2DvO3sOc+/cXZQQNgQt64QQzjA9TSdP0dl5qvetpoNIx4sy/XIjrPYG1smEidq9Z9r61INw==} + broccoli-concat@4.2.5: resolution: {integrity: sha512-dFB5ATPwOyV8S2I7a07HxCoutoq23oY//LhM6Mou86cWUTB174rND5aQLR7Fu8FjFFLxoTbkk7y0VPITJ1IQrw==} engines: {node: 10.* || >= 12.*} + broccoli-config-loader@1.0.1: + resolution: {integrity: sha512-MDKYQ50rxhn+g17DYdfzfEM9DjTuSGu42Db37A8TQHQe8geYEcUZ4SQqZRgzdAI3aRQNlA1yBHJfOeGmOjhLIg==} + + broccoli-config-replace@1.1.2: + resolution: {integrity: sha512-qLlEY3V7p3ZWJNRPdPgwIM77iau1qR03S9BupMMFngjzBr7S6RSzcg96HbCYXmW9gfTbjRm9FC4CQT81SBusZg==} + broccoli-debug@0.6.5: resolution: {integrity: sha512-RIVjHvNar9EMCLDW/FggxFRXqpjhncM/3qq87bn/y+/zR9tqEkHvTqbyOc4QnB97NO2m6342w4wGkemkaeOuWg==} @@ -2201,6 +2767,9 @@ packages: resolution: {integrity: sha512-YpjOExWr92C5vhnK0kmD81kM7U09kdIRZk9w4ZDCDHuHXW+VE/x6AGEOQQW3loBQQ6Jk+k+TSm8dESy4uZsnjw==} engines: {node: ^4.5 || 6.* || >= 7.*} + broccoli-funnel-reducer@1.0.0: + resolution: {integrity: sha512-SaOCEdh+wnt2jFUV2Qb32m7LXyElvFwW3NKNaEJyi5PGQNwxfqpkc0KI6AbQANKgdj/40U2UC0WuGThFwuEUaA==} + broccoli-funnel@2.0.2: resolution: {integrity: sha512-/vDTqtv7ipjEZQOVqO4vGDVAOZyuYzQ/EgGoyewfOgh1M7IQAToBKZI0oAQPgMBeFPPlIbfMuAngk+ohPBuaHQ==} engines: {node: ^4.5 || 6.* || >= 7.*} @@ -2220,7 +2789,11 @@ packages: resolution: {integrity: sha512-nTrQe5AQtCrW4enLRvbD/vTLHqyW2tz+vsLXQe4IEaUhepuMGVKJJr+I8n34Vu6fPjmPLwTjzNC8izMIDMtHPw==} engines: {node: 10.* || >= 12.*} - broccoli-node-api@1.7.0: + broccoli-middleware@2.1.1: + resolution: {integrity: sha512-BK8aPhQpOLsHWiftrqXQr84XsvzUqeaN4PlCQOYg5yM0M+WKAHtX2WFXmicSQZOVgKDyh5aeoNTFkHjBAEBzwQ==} + engines: {node: 6.* || 8.* || >= 10.*} + + broccoli-node-api@1.7.0: resolution: {integrity: sha512-QIqLSVJWJUVOhclmkmypJJH9u9s/aWH4+FH6Q6Ju5l+Io4dtwqdPUNmDfw40o6sxhbZHhqGujDJuHTML1wG8Yw==} broccoli-node-info@2.2.0: @@ -2242,6 +2815,10 @@ packages: broccoli-plugin@1.3.1: resolution: {integrity: sha512-DW8XASZkmorp+q7J4EeDEZz+LoyKLAd2XZULXyD9l4m9/hAKV3vjHmB1kiUshcWAYMgTP1m2i4NnqCE/23h6AQ==} + broccoli-plugin@2.1.0: + resolution: {integrity: sha512-ElE4caljW4slapyEhSD9jU9Uayc8SoSABWdmY9SqbV8DHNxU6xg1jJsPcMm+cXOvggR3+G+OXAYQeFjWVnznaw==} + engines: {node: 6.* || 8.* || >= 10.*} + broccoli-plugin@4.0.7: resolution: {integrity: sha512-a4zUsWtA1uns1K7p9rExYVYG99rdKeGRymW0qOCNkvDPHQxVi3yVyJHhQbM3EZwdt2E0mnhr5e0c/bPpJ7p3Wg==} engines: {node: 10.* || >= 12.*} @@ -2257,6 +2834,10 @@ packages: resolution: {integrity: sha512-ZbGVQjivWi0k220fEeIUioN6Y68xjMy0xiLAc0LdieHI99gw+tafU8w0CggBDYVNsJMKUr006AZaM7gNEwCxEg==} engines: {node: 8.* || 10.* || >= 12.*} + broccoli-stew@3.0.0: + resolution: {integrity: sha512-NXfi+Vas24n3Ivo21GvENTI55qxKu7OwKRnCLWXld8MiLiQKQlWIq28eoARaFj0lTUFwUa4jKZeA7fW9PiWQeg==} + engines: {node: 8.* || >= 10.*} + broccoli@3.5.2: resolution: {integrity: sha512-sWi3b3fTUSVPDsz5KsQ5eCQNVAtLgkIE/HYFkEZXR/07clqmd4E/gFiuwSaqa9b+QTXc1Uemfb7TVWbEIURWDg==} engines: {node: 8.* || >= 10.*} @@ -2279,6 +2860,12 @@ packages: buffer-from@1.1.2: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + buffer@5.7.1: + resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} + + bytes@1.0.0: + resolution: {integrity: sha512-/x68VkHLeTl3/Ll8IvxdwzhrT+IyKc52e/oyHhA2RwqPqswSnjVbSddfPRwAsJtbilMAPSRWwAlpxdYsSWOTKQ==} + bytes@3.1.2: resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} engines: {node: '>= 0.8'} @@ -2291,6 +2878,9 @@ packages: resolution: {integrity: sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==} engines: {node: '>=0.10.0'} + cacheable@2.1.1: + resolution: {integrity: sha512-LmF4AXiSNdiRbI2UjH8pAp9NIXxeQsTotpEaegPiDcnN0YPygDJDV3l/Urc0mL72JWdATEorKqIHEx55nDlONg==} + calculate-cache-key-for-tree@2.0.0: resolution: {integrity: sha512-Quw8a6y8CPmRd6eU+mwypktYCwUcf8yVFIRbNZ6tPQEckX9yd+EBVEPC/GSZZrMWH9e7Vz4pT7XhpmyApRByLQ==} engines: {node: 6.* || 8.* || >= 10.*} @@ -2322,6 +2912,10 @@ packages: resolution: {integrity: sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g==} engines: {node: 6.* || 8.* || >= 10.*} + cardinal@1.0.0: + resolution: {integrity: sha512-INsuF4GyiFLk8C91FPokbKTc/rwHqV4JnfatVZ6GPhguP1qmkRWX2dp5tepYboYdPpGWisLVLI+KsXoXFPRSMg==} + hasBin: true + chalk@2.4.2: resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} engines: {node: '>=4'} @@ -2334,9 +2928,16 @@ packages: resolution: {integrity: sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==} engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + chalk@5.6.2: + resolution: {integrity: sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==} + engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + chardet@0.7.0: resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} + chardet@2.1.0: + resolution: {integrity: sha512-bNFETTG/pM5ryzQ9Ad0lJOTa6HWD/YsScAR3EnCPZRPlQh77JocYktSHOUHelyhm8IARL+o4c4F1bP5KVOjiRA==} + charm@1.0.2: resolution: {integrity: sha512-wqW3VdPnlSWT4eRiYX+hcs+C6ViBPUWk1qTCd+37qw9kEm/a5n2qcyQDMBWvSYKN/ctqZzeXNQaeBjOetJJUkw==} @@ -2348,10 +2949,17 @@ packages: resolution: {integrity: sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==} engines: {node: '>=6.0'} + ci-info@4.3.1: + resolution: {integrity: sha512-Wdy2Igu8OcBpI2pZePZ5oWjPC38tmDVx5WKUXKwlLYkA0ozo85sLsLvkBbBn/sZaSCMFOGZJ14fvW9t5/d7kdA==} + engines: {node: '>=8'} + class-utils@0.3.6: resolution: {integrity: sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==} engines: {node: '>=0.10.0'} + clean-base-url@1.0.0: + resolution: {integrity: sha512-9q6ZvUAhbKOSRFY7A/irCQ/rF0KIpa3uXpx6izm8+fp7b2H4hLeUJ+F1YYk9+gDQ/X8Q0MEyYs+tG3cht//HTg==} + clean-stack@2.2.0: resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} engines: {node: '>=6'} @@ -2363,6 +2971,10 @@ packages: resolution: {integrity: sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==} engines: {node: '>=4'} + cli-cursor@3.1.0: + resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} + engines: {node: '>=8'} + cli-highlight@2.1.11: resolution: {integrity: sha512-9KDcoEVwyUXrjcJNvHD0NFc/hiwe/WPVYIleQh2O1N2Zro5gWJZ/K+3DGn8w8P/F6FxOgzyC5bxDyHIgCSPhGg==} engines: {node: '>=8.0.0', npm: '>=5.0.0'} @@ -2372,9 +2984,21 @@ packages: resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==} engines: {node: '>=6'} + cli-table@0.3.11: + resolution: {integrity: sha512-IqLQi4lO0nIB4tcdTpN4LCB9FI3uqrJZK7RC515EnhZ6qBaglkIgICb1wjeAqpdoOabm1+SuQtkXIPdYC93jhQ==} + engines: {node: '>= 0.2.0'} + cli-width@2.2.1: resolution: {integrity: sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==} + cli-width@3.0.0: + resolution: {integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==} + engines: {node: '>= 10'} + + cli-width@4.1.0: + resolution: {integrity: sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==} + engines: {node: '>= 12'} + cliui@7.0.4: resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} @@ -2411,6 +3035,13 @@ packages: resolution: {integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==} hasBin: true + colord@2.9.3: + resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==} + + colors@1.0.3: + resolution: {integrity: sha512-pFGrxThWcWQ2MsAz6RtgeWe4NK2kUE1WfsrvvlctdII745EW9I0yflqhe7++M5LEc7bV2c/9/5zc8sFcpL0Drw==} + engines: {node: '>=0.1.90'} + combined-stream@1.0.8: resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} engines: {node: '>= 0.8'} @@ -2429,6 +3060,10 @@ packages: common-ancestor-path@1.0.1: resolution: {integrity: sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w==} + common-tags@1.8.2: + resolution: {integrity: sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==} + engines: {node: '>=4.0.0'} + commondir@1.0.1: resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} @@ -2454,9 +3089,18 @@ packages: engines: {node: '>=18'} hasBin: true + concurrently@9.2.1: + resolution: {integrity: sha512-fsfrO0MxV64Znoy8/l1vVIjjHa29SZyyqPgQBwhiDcaW8wJc2W3XWVOGx4M3oJBnv/zdUZIIp1gDeS98GzP8Ng==} + engines: {node: '>=18'} + hasBin: true + config-chain@1.1.13: resolution: {integrity: sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==} + configstore@5.0.1: + resolution: {integrity: sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==} + engines: {node: '>=8'} + connect@3.7.0: resolution: {integrity: sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==} engines: {node: '>= 0.10.0'} @@ -2651,6 +3295,9 @@ packages: resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} engines: {node: '>= 0.6'} + continuable-cache@0.3.1: + resolution: {integrity: sha512-TF30kpKhTH8AGCG3dut0rdd/19B7Z+qCnrMoBLpyQu/2drZdNrrpcjPEoJeSVsQM+8KmWG5O56oPDjSSUsuTyA==} + convert-source-map@2.0.0: resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} @@ -2676,6 +3323,10 @@ packages: resolution: {integrity: sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==} deprecated: core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js. + core-object@3.1.5: + resolution: {integrity: sha512-sA2/4+/PZ/KV6CKgjrVrrUVBKCkdDO02CUlQ0YKTQoYUwPYNOtOAcWlbYhd5v/1JqYaA6oZ4sDlOU4ppVw6Wbg==} + engines: {node: '>= 4'} + core-util-is@1.0.3: resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} @@ -2700,6 +3351,14 @@ packages: resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} engines: {node: '>= 8'} + crypto-random-string@2.0.0: + resolution: {integrity: sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==} + engines: {node: '>=8'} + + css-functions-list@3.2.3: + resolution: {integrity: sha512-IQOkD3hbR5KrN93MtcYuad6YPuTSUhntLHDuLEbFWE+ff2/XSZNdZG+LcbbIW5AXKg/WFIfYItIzVoHngHXZzA==} + engines: {node: '>=12 || >=16'} + css-loader@5.2.7: resolution: {integrity: sha512-Q7mOvpBNBG7YrVGMxRxcBJZFL75o+cH2abNASdibkj/fffYD8qWbInZrD0S9ccI6vZclF3DsHE7njGlLtaHbhg==} engines: {node: '>= 10.13.0'} @@ -2719,6 +3378,9 @@ packages: resolution: {integrity: sha512-2z+rWdzbbSZv6/rhtvzvqeZQHrBaqgogqt85sqFNbabZOuFbCVFb8kPeEtZjiKkbrm395irpNKiYeFeLiQnFPg==} engines: {node: '>=18'} + dag-map@2.0.2: + resolution: {integrity: sha512-xnsprIzYuDeiyu5zSKwilV/ajRHxnoMlAhEREfyfTgTSViMVY2fGP1ZcHJbtwup26oCkofySU/m6oKJ3HrkW7w==} + data-urls@5.0.0: resolution: {integrity: sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==} engines: {node: '>=18'} @@ -2769,6 +3431,15 @@ packages: supports-color: optional: true + debug@4.4.3: + resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + decimal.js@10.6.0: resolution: {integrity: sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==} @@ -2832,6 +3503,22 @@ packages: resolution: {integrity: sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q==} engines: {node: '>=0.10.0'} + detect-indent@7.0.2: + resolution: {integrity: sha512-y+8xyqdGLL+6sh0tVeHcfP/QDd8gUgbasolJJpY7NgeQGSZ739bDtSiaiDgtoicy+mtYB81dKLxO9xRhCyIB3A==} + engines: {node: '>=12.20'} + + detect-newline@4.0.1: + resolution: {integrity: sha512-qE3Veg1YXzGHQhlA6jzebZN2qVf6NX+A7m7qlhCGG30dJixrAQhYOsJjsnBjJkCSmuOPpCk30145fr8FV0bzog==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + diff@7.0.0: + resolution: {integrity: sha512-PJWHUb1RFevKCwaFA9RlG5tCd+FO5iRh9A8HEtkmBH2Li03iJriB6m6JIN4rGz3K3JLawI7/veA1xzRKP6ISBw==} + engines: {node: '>=0.3.1'} + + dir-glob@3.0.1: + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} + engines: {node: '>=8'} + doctrine@2.1.0: resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} engines: {node: '>=0.10.0'} @@ -2842,6 +3529,10 @@ packages: dot-case@3.0.4: resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==} + dot-prop@5.3.0: + resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==} + engines: {node: '>=8'} + dunder-proto@1.0.1: resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} engines: {node: '>= 0.4'} @@ -2863,8 +3554,8 @@ packages: electron-to-chromium@1.5.191: resolution: {integrity: sha512-xcwe9ELcuxYLUFqZZxL19Z6HVKcvNkIwhbHUz7L3us6u12yR+7uY89dSl570f/IqNthx8dAw3tojG7i4Ni4tDA==} - ember-auto-import@2.10.0: - resolution: {integrity: sha512-bcBFDYVTFHyqyq8BNvsj6UO3pE6Uqou/cNmee0WaqBgZ+1nQqFz0UE26usrtnFAT+YaFZSkqF2H36QW84k0/cg==} + ember-auto-import@2.11.1: + resolution: {integrity: sha512-teiDrL6J5nUbwQ6AZ29qKRibdkDYrdY8YNXhJNwnnso3mgqZjvWW5TA0W2HdB0gTSz1BcTg9kWJi45zn04b+IA==} engines: {node: 12.* || 14.* || >= 16} ember-cli-babel-plugin-helpers@1.1.1: @@ -2881,9 +3572,19 @@ packages: peerDependencies: '@babel/core': ^7.12.0 + ember-cli-deprecation-workflow@3.4.0: + resolution: {integrity: sha512-Ksrmib4mjD4xa0dqFgxJLBwkSp9EVYH6jSqe2NpODlBKEAZhsVzQj5wKPnC1dXfK3Erq/r1Fh3q4g46FZiCUiw==} + engines: {node: '>= 18'} + peerDependencies: + ember-source: '>= 3.28.0' + ember-cli-get-component-path-option@1.0.0: resolution: {integrity: sha512-k47TDwcJ2zPideBCZE8sCiShSxQSpebY2BHcX2DdipMmBox5gsfyVrbKJWIHeSTTKyEUgmBIvQkqTOozEziCZA==} + ember-cli-htmlbars@5.7.2: + resolution: {integrity: sha512-Uj6R+3TtBV5RZoJY14oZn/sNPnc+UgmC8nb5rI4P3fR/gYoyTFIZSXiIM7zl++IpMoIrocxOrgt+mhonKphgGg==} + engines: {node: 10.* || >= 12.*} + ember-cli-is-package-missing@1.0.0: resolution: {integrity: sha512-9hEoZj6Au5onlSDdcoBqYEPT8ehlYntZPxH8pBKV0GO7LNel88otSAQsCfXvbi2eKE+MaSeLG/gNaCI5UdWm9g==} @@ -2893,6 +3594,10 @@ packages: ember-cli-path-utils@1.0.0: resolution: {integrity: sha512-Qq0vvquzf4cFHoDZavzkOy3Izc893r/5spspWgyzLCPTaG78fM3HsrjZm7UWEltbXUqwHHYrqZd/R0jS08NqSA==} + ember-cli-preprocess-registry@5.0.1: + resolution: {integrity: sha512-Jb2zbE5Kfe56Nf4IpdaQ10zZ72p/RyLdgE5j5/lKG3I94QHlq+7AkAd18nPpb5OUeRUT13yQTAYpU+MbjpKTtg==} + engines: {node: 16.* || >= 18} + ember-cli-string-utils@1.1.0: resolution: {integrity: sha512-PlJt4fUDyBrC/0X+4cOpaGCiMawaaB//qD85AXmDRikxhxVzfVdpuoec02HSiTGTTB85qCIzWBIh8lDOiMyyFg==} @@ -2907,6 +3612,11 @@ packages: resolution: {integrity: sha512-rk7GY+FmLn/2e22HsZs0Ycrz8HQ1W3Fv+2TFOuEFW9optnDXDgkntPBIl6gact/LHsfBM5RKbM3dHsIIeLgl0Q==} engines: {node: 10.* || >= 12.*} + ember-cli@6.8.0: + resolution: {integrity: sha512-qUMfPDvyMUWjK+na34YHv/8AQGn5WJTcCL5qaMwa5MLi2hnKBzvCBwd99nORJdLG9GpCxYzxFQ+txyEkfmvk7g==} + engines: {node: '>= 20.11'} + hasBin: true + ember-eslint-parser@0.5.10: resolution: {integrity: sha512-QOmqeY53LIMc3/FgMnvt/KY/JhtyOZchda+VLJe994muhsS76EQ1lJaqv6lntq9Pc2R8coqiBKVfqlD0DeqnGg==} engines: {node: '>=16.0.0'} @@ -2920,12 +3630,37 @@ packages: ember-eslint@0.4.0: resolution: {integrity: sha512-OYTgNrNPqehvZunp7Lc9pcV+jVpTpS7lY0ZNLh0XZa6rVVVoyu6aJEVkp1fyd3ZdfPlFNrKGwVIjHSxlsPhS9Q==} + ember-load-initializers@3.0.1: + resolution: {integrity: sha512-qV3vxJKw5+7TVDdtdLPy8PhVsh58MlK8jwzqh5xeOwJPNP7o0+BlhvwoIlLYTPzGaHdfjEIFCgVSyMRGd74E1g==} + engines: {node: '>= 18.*'} + peerDependencies: + ember-source: '>= 5' + + ember-modifier@4.2.2: + resolution: {integrity: sha512-pPYBAGyczX0hedGWQFQOEiL9s45KS9efKxJxUQkMLjQyh+1Uef1mcmAGsdw2KmvNupITkE/nXxmVO1kZ9tt3ag==} + + ember-page-title@8.2.4: + resolution: {integrity: sha512-ZZ912IRItIEfD5+35w65DT9TmqppK+suXJeaJenD5OSuvujUnYl6KxBpyAbfjw4mYtURwJO/TmSe+4GGJbsJ0w==} + engines: {node: 16.* || >= 18} + peerDependencies: + ember-source: '>= 3.28.0' + + ember-page-title@9.0.3: + resolution: {integrity: sha512-fedRHUsvq8tIZgOii8jTrfAyeq+la/9H5eAzhNNwEyzo7nDMmqK2SxsyBUGXprd8fOacsPabLlzlucMi/4mUpA==} + engines: {node: 16.* || >= 18} + ember-qunit@9.0.3: resolution: {integrity: sha512-t+FD5/EWAR3WvGVj1etblFJJ6CaJqddDxusNcYYFZmW7zrQpCnQ9ziwpXM5/sw1sWabkhJZgYPXCn8bDRRhOfg==} peerDependencies: '@ember/test-helpers': '>=3.0.3' qunit: ^2.13.0 + ember-qunit@9.0.4: + resolution: {integrity: sha512-rv6gKvrdXdPBTdSZC5co82eIcDWWVR7RjafU/c+5TTz290oXhIHPoVuZbcO2F5RiAqkTW0jKzwkCP8y+2tCjFw==} + peerDependencies: + '@ember/test-helpers': '>=3.0.3' + qunit: ^2.13.0 + ember-resolver@13.1.1: resolution: {integrity: sha512-rA4RDuTm/F9AzYX2+g7EY3QWU48kyF9+Ck8IE8VQipnlwv2Q42kdRWiw7hfeQbRxx6XoSZCak6nzAG9ePd/+Ug==} engines: {node: 14.* || 16.* || >= 18} @@ -2949,11 +3684,30 @@ packages: peerDependencies: '@glimmer/component': '>= 1.1.2' + ember-source@6.8.0: + resolution: {integrity: sha512-abDPPq9gHB5u5kOY125QBUlm5D1oc+n9Pm2zRciFpxwRV9WXfqiAHMmEhcIWD0uV1E3jhBgqXoHP8CCGBcI2WA==} + engines: {node: '>= 18.*'} + peerDependencies: + '@glimmer/component': '>= 1.1.2' + ember-template-lint@7.9.1: resolution: {integrity: sha512-uh5WU2sJKkQgDgIQovwv1D0fw2/RJnmyAHqIhaTYk68CfKQ/O5v31c1iXNu71qv3xeONi3QPl/rBW0EMdIFXWA==} engines: {node: ^18.18.0 || >= 20.9.0} hasBin: true + ember-template-lint@7.9.3: + resolution: {integrity: sha512-iqC4rv/oVlXViGuf7hlOA/bC550ZqacZKAc8WvQV0ueeCtIYPkYYK+Tc7FwpM8qGx3jiwu/ZsTuNfPInI5pL7Q==} + engines: {node: ^18.18.0 || >= 20.9.0} + hasBin: true + + ember-tracked-storage-polyfill@1.0.0: + resolution: {integrity: sha512-eL7lZat68E6P/D7b9UoTB5bB5Oh/0aju0Z7PCMi3aTwhaydRaxloE7TGrTRYU+NdJuyNVZXeGyxFxn2frvd3TA==} + engines: {node: 12.* || >= 14} + + ember-welcome-page@7.0.2: + resolution: {integrity: sha512-TyaKxFIRXhODW5BTbqD/by0Gu8Z9B9AA1ki3Bzzm6fOj2b30Qlprtt+XUG52kS0zVNmxYj/WWoT0TsKiU61VOw==} + engines: {node: 14.* || 16.* || >= 18} + emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} @@ -2993,6 +3747,10 @@ packages: ensure-posix-path@1.1.1: resolution: {integrity: sha512-VWU0/zXzVbeJNXvME/5EmLuEj2TauvoaTz6aFYK1Z92JCBlDlZ3Gu0tuGR42kpW1754ywTs+QB0g5TP0oj9Zaw==} + entities@4.5.0: + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} + engines: {node: '>=0.12'} + entities@6.0.1: resolution: {integrity: sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==} engines: {node: '>=0.12'} @@ -3011,6 +3769,9 @@ packages: error-ex@1.3.2: resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} + error@7.2.1: + resolution: {integrity: sha512-fo9HBvWnx3NGUKMvMwB/CBCMMrfEJgbDTVDEkPygA3Bdd3lM1OyCd+rbQ8BwnpF6GdVeOLDNmyL4N5Bg80ZvdA==} + es-abstract@1.24.0: resolution: {integrity: sha512-WSzPgsdLtTcQwm4CROfS5ju2Wa1QQcVeT37jFjYzdFz1r9ahadC8B8/a4qxJxM+09F18iumCdRmlr96ZYkQvEg==} engines: {node: '>= 0.4'} @@ -3130,8 +3891,8 @@ packages: '@babel/eslint-parser': optional: true - eslint-plugin-ember@12.7.0: - resolution: {integrity: sha512-QkKzUzmWjSjscJLNYlkPv1ug5B5/Ec/7/MEEjDZxthzHO9VhnyMZ0shwvCztLTvB5D7LO67E7Zmpwb4YyBoFMA==} + eslint-plugin-ember@12.7.4: + resolution: {integrity: sha512-0q6C9VEnHe9hbgs6TgFWHVyEZRrPwOdkqkiLFh7HkxQH0Y/RhCLCLiU695sfTacIk8ofzLcQSp9Fhd1WIZY9eA==} engines: {node: 18.* || 20.* || >= 21} peerDependencies: '@typescript-eslint/parser': '*' @@ -3166,6 +3927,12 @@ packages: peerDependencies: eslint: '>=8.23.0' + eslint-plugin-n@17.23.1: + resolution: {integrity: sha512-68PealUpYoHOBh332JLLD9Sj7OQUDkFpmcfqt8R9sySfFSeuGJjMTJQvCRRB96zO3A/PELRLkPrzsHmzEFQQ5A==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: '>=8.23.0' + eslint-plugin-qunit@8.2.5: resolution: {integrity: sha512-qr7RJCYImKQjB+39q4q46i1l7p1V3joHzBE5CAYfxn5tfVFjrnjn/tw7q/kDyweU9kAIcLul0Dx/KWVUCb3BgA==} engines: {node: ^16.0.0 || ^18.0.0 || >=20.0.0} @@ -3215,6 +3982,16 @@ packages: jiti: optional: true + eslint@9.38.0: + resolution: {integrity: sha512-t5aPOpmtJcZcz5UJyY2GbvpDlsK5E8JqRqoKtfiKE3cNh437KIqfJr3A3AKf5k64NPx6d0G3dno6XDY05PqPtw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + hasBin: true + peerDependencies: + jiti: '*' + peerDependenciesMeta: + jiti: + optional: true + esm@3.2.25: resolution: {integrity: sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==} engines: {node: '>=6'} @@ -3223,6 +4000,11 @@ packages: resolution: {integrity: sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + esprima@3.0.0: + resolution: {integrity: sha512-xoBq/MIShSydNZOkjkoCEjqod963yHNXTLC40ypBhop6yPqflPz/vTinmCfSrGcywVLnSftRf6a0kJLdFdzemw==} + engines: {node: '>=0.10.0'} + hasBin: true + esprima@4.0.1: resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} engines: {node: '>=4'} @@ -3272,6 +4054,10 @@ packages: resolution: {integrity: sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==} engines: {node: '>=6'} + execa@4.1.0: + resolution: {integrity: sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==} + engines: {node: '>=10'} + execa@5.1.1: resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} engines: {node: '>=10'} @@ -3280,6 +4066,10 @@ packages: resolution: {integrity: sha512-jpWzZ1ZhwUmeWRhS7Qv3mhpOhLfwI+uAX4e5fOcXqwMR7EcJ0pj2kV1CVzHVMX/LphnKWD3LObjZCoJ71lKpHw==} engines: {node: ^18.19.0 || >=20.5.0} + exit@0.1.2: + resolution: {integrity: sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==} + engines: {node: '>= 0.8.0'} + expand-brackets@2.1.4: resolution: {integrity: sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==} engines: {node: '>=0.10.0'} @@ -3308,6 +4098,10 @@ packages: resolution: {integrity: sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==} engines: {node: '>=0.10.0'} + extract-stack@2.0.0: + resolution: {integrity: sha512-AEo4zm+TenK7zQorGK1f9mJ8L14hnTDi2ZQPR+Mub1NX8zimka1mXpV5LpH8x9HoUmFSHZCfLHqWvp0Y4FxxzQ==} + engines: {node: '>=8'} + fast-content-type-parse@2.0.1: resolution: {integrity: sha512-nGqtvLrj5w0naR6tDPfB4cUmYCqouzyQiz6C5y/LtcDllJdrcc6WaWW6iXyIIOErTa/XRybj28aasdn4LkVk6Q==} @@ -3334,9 +4128,17 @@ packages: fast-uri@3.0.6: resolution: {integrity: sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==} + fastest-levenshtein@1.0.16: + resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==} + engines: {node: '>= 4.9.1'} + fastq@1.19.1: resolution: {integrity: sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==} + faye-websocket@0.11.4: + resolution: {integrity: sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==} + engines: {node: '>=0.8.0'} + fb-watchman@2.0.2: resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==} @@ -3348,18 +4150,38 @@ packages: picomatch: optional: true + fdir@6.5.0: + resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} + engines: {node: '>=12.0.0'} + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true + figures@2.0.0: resolution: {integrity: sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA==} engines: {node: '>=4'} + figures@3.2.0: + resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} + engines: {node: '>=8'} + figures@6.1.0: resolution: {integrity: sha512-d+l3qxjSesT4V7v2fh+QnmFnUWv9lSpjarhShNTgBOfA0ttejbQUAlHLitbjkoRiDulW0OPoQPYIGhIC8ohejg==} engines: {node: '>=18'} + file-entry-cache@10.1.4: + resolution: {integrity: sha512-5XRUFc0WTtUbjfGzEwXc42tiGxQHBmtbUG1h9L2apu4SulCGN3Hqm//9D6FAolf8MYNL7f/YlJl9vy08pj5JuA==} + file-entry-cache@8.0.0: resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} engines: {node: '>=16.0.0'} + filesize@10.1.6: + resolution: {integrity: sha512-sJslQKU2uM33qH5nqewAwVB2QgR6w1aMNsYUp3aN5rMRyXEwJGmZvaWzeJFNTOXWlHQyBFCWrdj3fV/fsTOX8w==} + engines: {node: '>= 10.4.0'} + fill-range@4.0.0: resolution: {integrity: sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==} engines: {node: '>=0.10.0'} @@ -3406,6 +4228,9 @@ packages: resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} engines: {node: '>=10'} + find-yarn-workspace-root@2.0.0: + resolution: {integrity: sha512-1IMnbjt4KzsQfnhnzNd8wUEgXZ44IzZaZmnLYx7D5FZlaHt2gW20Cri8Q+E/t5tIj4+epTBub+2Zxu/vNILzqQ==} + findup-sync@4.0.0: resolution: {integrity: sha512-6jvvn/12IC4quLBL1KNokxC7wWTvYncaVUYSoxWw7YykPLuRrnv4qdHcSOywOI5RpkOVGeQRtWM8/q+G6W6qfQ==} engines: {node: '>= 8'} @@ -3416,14 +4241,25 @@ packages: fixturify-project@1.10.0: resolution: {integrity: sha512-L1k9uiBQuN0Yr8tA9Noy2VSQ0dfg0B8qMdvT7Wb5WQKc7f3dn3bzCbSrqlb+etLW+KDV4cBC7R1OvcMg3kcxmA==} + fixturify-project@2.1.1: + resolution: {integrity: sha512-sP0gGMTr4iQ8Kdq5Ez0CVJOZOGWqzP5dv/veOTdFNywioKjkNWCHBi1q65DMpcNGUGeoOUWehyji274Q2wRgxA==} + engines: {node: 10.* || >= 12.*} + fixturify@1.3.0: resolution: {integrity: sha512-tL0svlOy56pIMMUQ4bU1xRe6NZbFSa/ABTWMxW2mH38lFGc9TrNAKWcMBQ7eIjo3wqSS8f2ICabFaatFyFmrVQ==} engines: {node: 6.* || 8.* || >= 10.*} + fixturify@2.1.1: + resolution: {integrity: sha512-SRgwIMXlxkb6AUgaVjIX+jCEqdhyXu9hah7mcK+lWynjKtX73Ux1TDv71B7XyaQ+LJxkYRHl5yCL8IycAvQRUw==} + engines: {node: 10.* || >= 12.*} + flat-cache@4.0.1: resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} engines: {node: '>=16'} + flat-cache@6.1.18: + resolution: {integrity: sha512-JUPnFgHMuAVmLmoH9/zoZ6RHOt5n9NlUw/sDXsTbROJ2SFoS2DS4s+swAV6UTeTbGH/CAsZIE6M8TaG/3jVxgQ==} + flatted@3.3.3: resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==} @@ -3464,6 +4300,9 @@ packages: resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} engines: {node: '>= 0.6'} + fs-extra@0.24.0: + resolution: {integrity: sha512-w1RvhdLZdU9V3vQdL+RooGlo6b9R9WVoBanOfoJvosWlqSKvrjFlci2oVhwvLwZXBtM7khyPvZ8r3fwsim3o0A==} + fs-extra@10.1.0: resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} engines: {node: '>=12'} @@ -3472,6 +4311,9 @@ packages: resolution: {integrity: sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew==} engines: {node: '>=14.14'} + fs-extra@4.0.3: + resolution: {integrity: sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==} + fs-extra@5.0.0: resolution: {integrity: sha512-66Pm4RYbjzdyeuqudYqhFiNBbCIuI9kgRqLPSHIlXHidW8NIQtVdkM1yeZ4lXwuhbTETv3EUGMNHAAw6hiundQ==} @@ -3544,10 +4386,18 @@ packages: resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} engines: {node: '>= 0.4'} + get-stdin@9.0.0: + resolution: {integrity: sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA==} + engines: {node: '>=12'} + get-stream@4.1.0: resolution: {integrity: sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==} engines: {node: '>=6'} + get-stream@5.2.0: + resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} + engines: {node: '>=8'} + get-stream@6.0.1: resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} engines: {node: '>=10'} @@ -3567,6 +4417,13 @@ packages: resolution: {integrity: sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==} engines: {node: '>=0.10.0'} + git-hooks-list@3.2.0: + resolution: {integrity: sha512-ZHG9a1gEhUMX1TvGrLdyWb9kDopCBbTnI8z4JgRMYxsijWipgjSEYoPWqBuIB0DnRnvqlQSEeVmzpeuPm7NdFQ==} + + git-repo-info@2.1.1: + resolution: {integrity: sha512-8aCohiDo4jwjOwma4FmYFd3i97urZulL8XL24nIPxuE+GZnfsAyy/g2Shqx6OjUiFKUXZM+Yy+KHnOmmA3FVcg==} + engines: {node: '>= 4.0'} + github-changelog@2.0.0: resolution: {integrity: sha512-JdAwddNCvHkZY/pTMqpoaLEfksaWiTc+beDjBkPEnr7iVlKfu8SeyCT8Sef+KsonRgIj6pl3SiWDPSefWmeicw==} engines: {node: 18.* || 20.* || >= 22} @@ -3600,6 +4457,11 @@ packages: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} deprecated: Glob versions prior to v9 are no longer supported + glob@8.1.0: + resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} + engines: {node: '>=12'} + deprecated: Glob versions prior to v9 are no longer supported + glob@9.3.5: resolution: {integrity: sha512-e1LleDykUz2Iu+MTYdkSsuWX8lvAjAcs0Xef0lNIu0S2wOAzuTxCJtcd9S3cijlwYF18EsU3rzb8jPVobxDh9Q==} engines: {node: '>=16 || 14 >=14.17'} @@ -3608,10 +4470,18 @@ packages: resolution: {integrity: sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==} engines: {node: '>=0.10.0'} + global-modules@2.0.0: + resolution: {integrity: sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==} + engines: {node: '>=6'} + global-prefix@1.0.2: resolution: {integrity: sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg==} engines: {node: '>=0.10.0'} + global-prefix@3.0.0: + resolution: {integrity: sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==} + engines: {node: '>=6'} + globals@14.0.0: resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} engines: {node: '>=18'} @@ -3624,6 +4494,10 @@ packages: resolution: {integrity: sha512-bqWEnJ1Nt3neqx2q5SFfGS8r/ahumIakg3HcwtNlrVlwXIeNumWn/c7Pn/wKzGhf6SaW6H6uWXLqC30STCMchQ==} engines: {node: '>=18'} + globals@16.4.0: + resolution: {integrity: sha512-ob/2LcVVaVGCYN+r14cnwnoDPUufjiYgSqRhiFD0Q1iI4Odora5RE8Iv1D24hAz5oMophRGkGz+yuvQmmUMnMw==} + engines: {node: '>=18'} + globalthis@1.0.4: resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} engines: {node: '>= 0.4'} @@ -3631,6 +4505,13 @@ packages: globalyzer@0.1.0: resolution: {integrity: sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==} + globby@11.1.0: + resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} + engines: {node: '>=10'} + + globjoin@0.1.4: + resolution: {integrity: sha512-xYfnw62CKG8nLkZBfWbhWwDw02CHty86jfPcc2cr3ZfeuK9ysoVPPEUxf21bAD/rWAgk52SuBrLJlefNy8mvFg==} + globrex@0.1.2: resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==} @@ -3655,6 +4536,10 @@ packages: engines: {node: '>=0.4.7'} hasBin: true + has-ansi@3.0.0: + resolution: {integrity: sha512-5JRDTvNq6mVkaMHQVXrGnaCXHD6JfqxwCy8LA/DQSqLLqePR9uaJVm2u3Ek/UziJFQz+d1ul99RtfIhE2aorkQ==} + engines: {node: '>=4'} + has-bigints@1.1.0: resolution: {integrity: sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==} engines: {node: '>= 0.4'} @@ -3708,6 +4593,13 @@ packages: resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} engines: {node: '>= 0.4'} + heimdalljs-fs-monitor@1.1.2: + resolution: {integrity: sha512-M7OPf3Tu+ybhAXdiC07O1vUYFyhCgfew4L3vaG2nn4Be05xzNvtBcU6IKMTfHJ9AxWFa3w9rrmiJovkxHhpopw==} + + heimdalljs-graph@1.0.0: + resolution: {integrity: sha512-v2AsTERBss0ukm/Qv4BmXrkwsT5x6M1V5Om6E8NcDQ/ruGkERsfsuLi5T8jx8qWzKMGYlwzAd7c/idymxRaPzA==} + engines: {node: 8.* || >= 10.*} + heimdalljs-logger@0.1.10: resolution: {integrity: sha512-pO++cJbhIufVI/fmB/u2Yty3KJD0TqNPecehFae0/eps0hkZ3b4Zc/PezUMOpYuHFQbA7FxHZxa305EhmjLj4g==} @@ -3721,6 +4613,9 @@ packages: resolution: {integrity: sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==} engines: {node: '>=0.10.0'} + hookified@1.12.2: + resolution: {integrity: sha512-aokUX1VdTpI0DUsndvW+OiwmBpKCu/NgRsSSkuSY0zq8PY6Q6a+lmOfAFDXAAOtBqJELvcWY9L1EVtzjbQcMdg==} + hosted-git-info@4.1.0: resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==} engines: {node: '>=10'} @@ -3748,6 +4643,9 @@ packages: resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} engines: {node: '>= 0.8'} + http-parser-js@0.5.10: + resolution: {integrity: sha512-Pysuw9XpUq5dVc/2SMHpuTY01RFl8fttgcyunjL7eEMhGM3cI4eOmiCycJDVCo/7O7ClfQD3SaI6ftDzqOXYMA==} + http-proxy-agent@4.0.1: resolution: {integrity: sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==} engines: {node: '>= 6'} @@ -3771,6 +4669,10 @@ packages: https@1.0.0: resolution: {integrity: sha512-4EC57ddXrkaF0x83Oj8sM6SLQHAWXw90Skqu2M4AEWENZ3F02dFJE/GARA8igO79tcgYqGrD7ae4f5L3um2lgg==} + human-signals@1.1.1: + resolution: {integrity: sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==} + engines: {node: '>=8.12.0'} + human-signals@2.1.0: resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} engines: {node: '>=10.17.0'} @@ -3790,12 +4692,19 @@ packages: resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} engines: {node: '>=0.10.0'} + iconv-lite@0.7.0: + resolution: {integrity: sha512-cf6L2Ds3h57VVmkZe+Pn+5APsT7FpqJtEhhieDCvrE2MK5Qk9MyffgQyuxQTm6BChfeZNtcOLHp9IcWRVcIcBQ==} + engines: {node: '>=0.10.0'} + icss-utils@5.1.0: resolution: {integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==} engines: {node: ^10 || ^12 || >= 14} peerDependencies: postcss: ^8.1.0 + ieee754@1.2.1: + resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} + ignore@5.3.2: resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} engines: {node: '>= 4'} @@ -3847,10 +4756,22 @@ packages: resolution: {integrity: sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==} engines: {node: '>=6.0.0'} + inquirer@7.3.3: + resolution: {integrity: sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==} + engines: {node: '>=8.0.0'} + + inquirer@9.3.8: + resolution: {integrity: sha512-pFGGdaHrmRKMh4WoDDSowddgjT1Vkl90atobmTeSmcPGdYiwikch/m/Ef5wRaiamHejtw0cUUMMerzDUXCci2w==} + engines: {node: '>=18'} + internal-slot@1.1.0: resolution: {integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==} engines: {node: '>= 0.4'} + invert-kv@3.0.1: + resolution: {integrity: sha512-CYdFeFexxhv/Bcny+Q0BfOV+ltRlJcd4BBZBYFX/O0u4npJrgZtIcjokegtiSMAvlMTJ+Koq0GBCc//3bueQxw==} + engines: {node: '>=8'} + ip-address@9.0.5: resolution: {integrity: sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==} engines: {node: '>= 12'} @@ -3949,13 +4870,24 @@ packages: resolution: {integrity: sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==} engines: {node: '>= 0.4'} + is-git-url@1.0.0: + resolution: {integrity: sha512-UCFta9F9rWFSavp9H3zHEHrARUfZbdJvmHKeEpds4BK3v7W2LdXoNypMtXXi5w5YBDEBCTYmbI+vsSwI8LYJaQ==} + engines: {node: '>=0.8'} + is-glob@4.0.3: resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} engines: {node: '>=0.10.0'} + is-interactive@1.0.0: + resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==} + engines: {node: '>=8'} + is-lambda@1.0.1: resolution: {integrity: sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==} + is-language-code@3.1.0: + resolution: {integrity: sha512-zJdQ3QTeLye+iphMeK3wks+vXSRFKh68/Pnlw7aOfApFSEIOhYa8P9vwwa6QrImNNBMJTiL1PpYF0f4BxDuEgA==} + is-map@2.0.3: resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} engines: {node: '>= 0.4'} @@ -3976,6 +4908,10 @@ packages: resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} engines: {node: '>=0.12.0'} + is-obj@2.0.0: + resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==} + engines: {node: '>=8'} + is-plain-obj@4.1.0: resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} engines: {node: '>=12'} @@ -3984,6 +4920,10 @@ packages: resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==} engines: {node: '>=0.10.0'} + is-plain-object@5.0.0: + resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==} + engines: {node: '>=0.10.0'} + is-potential-custom-element-name@1.0.1: resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} @@ -4030,6 +4970,13 @@ packages: resolution: {integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==} engines: {node: '>= 0.4'} + is-typedarray@1.0.0: + resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==} + + is-unicode-supported@0.1.0: + resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} + engines: {node: '>=10'} + is-unicode-supported@2.1.0: resolution: {integrity: sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==} engines: {node: '>=18'} @@ -4063,6 +5010,10 @@ packages: isarray@2.0.5: resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} + isbinaryfile@5.0.6: + resolution: {integrity: sha512-I+NmIfBHUl+r2wcDd6JwE9yWje/PIVY/R5/CmV8dXLZd5K+L9X2klAOwfAHNnondLXkbHyTAleQAWonpTJBTtw==} + engines: {node: '>= 18.0.0'} + isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} @@ -4131,6 +5082,15 @@ packages: canvas: optional: true + jsdom@26.1.0: + resolution: {integrity: sha512-Cvc9WUhxSMEo4McES3P7oK3QaXldCfNWp7pl2NNeiIFlCoLr3kfq9kb1fxftiwk1FLV7CvpvDfonxtzUDeSOPg==} + engines: {node: '>=18'} + peerDependencies: + canvas: ^3.0.0 + peerDependenciesMeta: + canvas: + optional: true + jsesc@3.0.2: resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==} engines: {node: '>=6'} @@ -4176,6 +5136,9 @@ packages: jsonc-parser@3.3.1: resolution: {integrity: sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==} + jsonfile@2.4.0: + resolution: {integrity: sha512-PKllAqbgLgxHaj8TElYymKCAgrASebJrWpTnEkOaTowt23VKXXN0sUeriJ+eh7y6ufb/CC5ap11pz71/cM0hUw==} + jsonfile@4.0.0: resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} @@ -4188,6 +5151,9 @@ packages: keyv@4.5.4: resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + keyv@5.5.3: + resolution: {integrity: sha512-h0Un1ieD+HUrzBH6dJXhod3ifSghk5Hw/2Y4/KHBziPlZecrFyE9YOTPU6eOs0V9pYl8gOs86fkr/KN8lUX39A==} + kind-of@3.2.2: resolution: {integrity: sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==} engines: {node: '>=0.10.0'} @@ -4200,6 +5166,9 @@ packages: resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} engines: {node: '>=0.10.0'} + known-css-properties@0.37.0: + resolution: {integrity: sha512-JCDrsP4Z1Sb9JwG0aJ8Eo2r7k4Ou5MwmThS/6lcIe1ICyb7UBJKGRIUUdqc2ASdE/42lgz6zFUnzAIhtXnBVrQ==} + ky@1.8.2: resolution: {integrity: sha512-XybQJ3d4Ea1kI27DoelE5ZCT3bSJlibYTtQuMsyzKox3TMyayw1asgQdl54WroAm+fIA3ZCr8zXW2RpR7qWVpA==} engines: {node: '>=18'} @@ -4208,6 +5177,10 @@ packages: resolution: {integrity: sha512-7W0vV3rqv5tokqkBAFV1LbR7HPOWzXQDpDgEuib/aJ1jsZZx6x3c2mBI+TJhJzOhkGeaLbCKEHXEXLfirtG2JA==} engines: {node: '>=18'} + lcid@3.1.1: + resolution: {integrity: sha512-M6T051+5QCGLBQb8id3hdvIW8+zeFV2FyBGFS9IEK5H9Wt4MueD4bW1eWikpHgZp+5xR3l5c8pZUkQsIA0BFZg==} + engines: {node: '>=8'} + levn@0.4.1: resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} engines: {node: '>= 0.8.0'} @@ -4218,6 +5191,12 @@ packages: lines-and-columns@1.2.4: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + linkify-it@5.0.0: + resolution: {integrity: sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==} + + livereload-js@3.4.1: + resolution: {integrity: sha512-5MP0uUeVCec89ZbNOT/i97Mc+q3SxXmiUGhRFOTmhrGPn//uWVQdCvcLJDy64MSBR5MidFdOR7B9viumoavy6g==} + loader-runner@4.3.0: resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==} engines: {node: '>=6.11.5'} @@ -4279,6 +5258,9 @@ packages: resolution: {integrity: sha512-XeqSp49hNGmlkj2EJlfrQFIzQ6lXdNro9sddtQzcJY8QaoC2GO0DT7xaIokHeyM+mIT0mPMlPvkYzg2xCuHdZg==} deprecated: This package is deprecated. Use destructuring assignment syntax instead. + lodash.truncate@4.4.2: + resolution: {integrity: sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==} + lodash.uniq@4.5.0: resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==} @@ -4289,6 +5271,10 @@ packages: resolution: {integrity: sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==} engines: {node: '>=4'} + log-symbols@4.1.0: + resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} + engines: {node: '>=10'} + lower-case@2.0.2: resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} @@ -4332,6 +5318,15 @@ packages: resolution: {integrity: sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==} engines: {node: '>=0.10.0'} + markdown-it-terminal@0.4.0: + resolution: {integrity: sha512-NeXtgpIK6jBciHTm9UhiPnyHDdqyVIdRPJ+KdQtZaf/wR74gvhCNbw5li4TYsxRp5u3ZoHEF4DwpECeZqyCw+w==} + peerDependencies: + markdown-it: '>= 13.0.0' + + markdown-it@14.1.0: + resolution: {integrity: sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==} + hasBin: true + matcher-collection@1.1.2: resolution: {integrity: sha512-YQ/teqaOIIfUHedRam08PB3NK7Mjct6BvzRnJmpGDm8uFXpNr1sbY4yuflI5JcEs6COpYA0FpRQhSDBf1tT95g==} @@ -4349,10 +5344,17 @@ packages: mdn-data@2.12.2: resolution: {integrity: sha512-IEn+pegP1aManZuckezWCO+XZQDplx1366JoVhTpMpBB1sPey/SbveZQUosKiKiGYjg1wH4pMlNgXbCiYgihQA==} + mdurl@2.0.0: + resolution: {integrity: sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==} + media-typer@0.3.0: resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} engines: {node: '>= 0.6'} + mem@5.1.1: + resolution: {integrity: sha512-qvwipnozMohxLXG1pOqoLiZKNkC4r4qqRucSoDwXowsNGDSULiqFTRUF05vcZWnwJSG22qTsynQhxbaMtnX9gw==} + engines: {node: '>=8'} + mem@8.1.1: resolution: {integrity: sha512-qFCFUDs7U3b8mBDPyz5EToEKoAkgCzqquIgi9nkkR9bixxOVOre+09lbuH7+9Kn2NFpm56M3GUWVbU2hQgdACA==} engines: {node: '>=10'} @@ -4431,6 +5433,14 @@ packages: minimatch@3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + minimatch@5.1.6: + resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} + engines: {node: '>=10'} + + minimatch@7.4.6: + resolution: {integrity: sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==} + engines: {node: '>=10'} + minimatch@8.0.4: resolution: {integrity: sha512-W0Wvr9HyFXZRGIDgCicunpQ299OKXs9RgZfaukz4qAW/pJhcpUfupc9c+OObPOFueNy8VSrZgEmDtk6Kh4WzDA==} engines: {node: '>=16 || 14 >=14.17'} @@ -4507,6 +5517,10 @@ 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==} + engines: {node: '>= 0.8.0'} + ms@2.0.0: resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} @@ -4520,6 +5534,13 @@ packages: mute-stream@0.0.7: resolution: {integrity: sha512-r65nCZhrbXXb6dXOACihYApHw2Q6pV0M3V0PSxd74N0+D8nzAdEAITq2oAjA1jVnKI+tGvEBUpqiMh0+rW6zDQ==} + mute-stream@0.0.8: + resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==} + + mute-stream@1.0.0: + resolution: {integrity: sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + mz@2.7.0: resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} @@ -4570,10 +5591,18 @@ packages: resolution: {integrity: sha512-3l4E8uMPY1HdMMryPRUAl+oIHtXtyiTlIiESNSVSNxcPfzAFzeTbXFQkZfAwBbo0B1qMSG8nUABx+Gd+YrbKrQ==} engines: {node: '>=6'} + nopt@3.0.6: + resolution: {integrity: sha512-4GUt3kSEYmk4ITxzB/b9vaIDfUVWN/Ml1Fwl11IlnIG2iaJ9O6WXZ9SrYM9NLI8OCBieN2Y8SWC2oJV0RQ7qYg==} + hasBin: true + normalize-path@2.1.1: resolution: {integrity: sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==} engines: {node: '>=0.10.0'} + normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + npm-install-checks@7.1.1: resolution: {integrity: sha512-u6DCwbow5ynAX5BdiHQ9qvexme4U3qHW3MWe5NqH+NeBm0LbiH6zvGjNNew1fY+AZZUtVHbOPF3j7mJxbUzpXg==} engines: {node: ^18.17.0 || >=20.5.0} @@ -4685,6 +5714,14 @@ packages: resolution: {integrity: sha512-eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg==} engines: {node: '>=6'} + ora@5.4.1: + resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==} + engines: {node: '>=10'} + + os-locale@5.0.0: + resolution: {integrity: sha512-tqZcNEDAIZKBEPnHPlVDvKrp7NzgLi7jRmhKiUoa2NUmhl13FtkAGLUVR+ZsYvApBQdBfYm43A4tXXQ4IrYLBA==} + engines: {node: '>=10'} + os-tmpdir@1.0.2: resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} engines: {node: '>=0.10.0'} @@ -4697,10 +5734,18 @@ packages: resolution: {integrity: sha512-wB3wfAxZpk2AzOfUMJNL+d36xothRSyj8EXOa4f6GMqYDN9BJaaSISbsk+wS9abmnebVw95C2Kb5t85UmpCxuw==} engines: {node: '>=4'} + p-defer@3.0.0: + resolution: {integrity: sha512-ugZxsxmtTln604yeYd29EGrNhazN2lywetzpKhfmQjW/VJmhpDmWbiX+h0zL8V91R0UXkhb3KtPmyq9PZw3aYw==} + engines: {node: '>=8'} + p-finally@1.0.0: resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==} engines: {node: '>=4'} + p-is-promise@2.1.0: + resolution: {integrity: sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==} + engines: {node: '>=6'} + p-limit@1.3.0: resolution: {integrity: sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==} engines: {node: '>=4'} @@ -4846,6 +5891,10 @@ packages: path-to-regexp@0.1.12: resolution: {integrity: sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==} + path-type@4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} + picocolors@1.1.1: resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} @@ -4872,6 +5921,10 @@ packages: resolution: {integrity: sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==} engines: {node: '>=8'} + portfinder@1.0.38: + resolution: {integrity: sha512-rEwq/ZHlJIKw++XtLAO8PPuOQA/zaPJOZJ37BVuN97nLpMJeuDVLVGRwbFoBgLudgdTMP2hdRJP++H+8QOA3vg==} + engines: {node: '>= 10.12'} + posix-character-classes@0.1.1: resolution: {integrity: sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==} engines: {node: '>=0.10.0'} @@ -4904,6 +5957,15 @@ packages: peerDependencies: postcss: ^8.1.0 + postcss-resolve-nested-selector@0.1.6: + resolution: {integrity: sha512-0sglIs9Wmkzbr8lQwEyIzlDOOC9bGmfVKcJTaxv3vMmd3uo4o4DerC3En0bnmgceeql9BfC8hRkp7cg0fjdVqw==} + + postcss-safe-parser@7.0.1: + resolution: {integrity: sha512-0AioNCJZ2DPYz5ABT6bddIqlhgwhpHZ/l65YAYo0BCIn0xiDpsnTHz0gnoTGk0OXZW0JRs+cDwL8u/teRdz+8A==} + engines: {node: '>=18.0'} + peerDependencies: + postcss: ^8.4.31 + postcss-selector-parser@7.1.0: resolution: {integrity: sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==} engines: {node: '>=4'} @@ -4974,6 +6036,10 @@ packages: resolution: {integrity: sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==} engines: {node: '>=10'} + promise.hash.helper@1.0.8: + resolution: {integrity: sha512-KYcnXctWUWyVD3W3Ye0ZDuA1N8Szrh85cVCxpG6xYrOk/0CttRtYCmU30nWsUch0NuExQQ63QXvzRE6FLimZmg==} + engines: {node: 10.* || >= 12.*} + proper-lockfile@4.1.2: resolution: {integrity: sha512-TjNPblN4BwAWMXU8s9AEz4JmQxnD1NNL7bNOY/AKUzyamc379FWASUhc/K1pL2noVb+XmZKLL68cjzLsiOAMaA==} @@ -4987,10 +6053,18 @@ packages: pump@3.0.3: resolution: {integrity: sha512-todwxLMY7/heScKmntwQG8CXVkWUOdYxIvY2s0VWAAMh/nd8SoYiRaKjlr7+iCs984f2P8zvrfWcDDYVb73NfA==} + punycode.js@2.3.1: + resolution: {integrity: sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==} + engines: {node: '>=6'} + punycode@2.3.1: resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} + qified@0.5.1: + resolution: {integrity: sha512-+BtFN3dCP+IaFA6IYNOu/f/uK1B8xD2QWyOeCse0rjtAebBmkzgd2d1OAXi3ikAzJMIBSdzZDNZ3wZKEUDQs5w==} + engines: {node: '>=20'} + qs@6.13.0: resolution: {integrity: sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==} engines: {node: '>=0.6'} @@ -5004,6 +6078,9 @@ packages: qunit-dom@3.4.0: resolution: {integrity: sha512-N5PYbJ20RD3JZN4whINdl7dDfxScUy7eNuO8IwUtBWC7d6SH+BqtBqVZdRn9evxLQVzuask6OGvMy4gdpiCceg==} + qunit-dom@3.5.0: + resolution: {integrity: sha512-eemLM5bflWafzmBnwlYbjf9NrjEkV2j7NO7mTvsMzQBJbEaq2zFvUFDtHV9JaK0TT5mgRZt034LCUewYGmjjjQ==} + qunit-theme-ember@1.0.0: resolution: {integrity: sha512-vdMVVo6ecdCkWttMTKeyq1ZTLGHcA6zdze2zhguNuc3ritlJMhOXY5RDseqazOwqZVfCg3rtlmL3fMUyIzUyFQ==} @@ -5012,6 +6089,11 @@ packages: engines: {node: '>=10'} hasBin: true + qunit@2.24.2: + resolution: {integrity: sha512-dWlYs+Q9AIDT3eHKgkpEpWrSjHjqTJNCAJr1tUo5bQuDMzlZvaqCz1bNZhqzNu41ibkIQ7b50S9y6IMlrrUfNQ==} + engines: {node: '>=10'} + hasBin: true + randombytes@2.1.0: resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} @@ -5019,6 +6101,10 @@ packages: resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} engines: {node: '>= 0.6'} + raw-body@1.1.7: + resolution: {integrity: sha512-WmJJU2e9Y6M5UzTOkHaM7xJGAPQD8PNzx3bAd2+uhZAim6wDk6dAZxPVYLF67XhbR4hmKGh33Lpmh4XWrCH5Mg==} + engines: {node: '>= 0.8.0'} + raw-body@2.5.2: resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==} engines: {node: '>= 0.8'} @@ -5038,6 +6124,9 @@ packages: resolution: {integrity: sha512-XNvYvkfdAN9QewbrxeTOjgINkdY/odTgTS56ZNEWL9Ml0weT4T3sFtvnTuF+Gxyu46ANcRm1ntrF6F5LAJPAaQ==} engines: {node: '>= 4'} + redeyed@1.0.1: + resolution: {integrity: sha512-8eEWsNCkV2rvwKLS1Cvp5agNjMhwRe2um+y32B2+3LqOzg4C9BBPs6vzAfV16Ivb8B9HPNKIqd8OrdBws8kNlQ==} + reflect.getprototypeof@1.0.10: resolution: {integrity: sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==} engines: {node: '>= 0.4'} @@ -5129,6 +6218,10 @@ packages: resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} engines: {node: '>=4'} + resolve-from@5.0.0: + resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} + engines: {node: '>=8'} + resolve-package-path@1.2.7: resolution: {integrity: sha512-fVEKHGeK85bGbVFuwO9o1aU0n3vqQGrezPc51JGu9UTXpFQfWq5qCeKxyaRUSvephs+06c5j5rPq/dzHGEo8+Q==} @@ -5168,6 +6261,10 @@ packages: resolution: {integrity: sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==} engines: {node: '>=4'} + restore-cursor@3.1.0: + resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} + engines: {node: '>=8'} + ret@0.1.15: resolution: {integrity: sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==} engines: {node: '>=0.12'} @@ -5180,6 +6277,11 @@ packages: resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + rimraf@2.6.3: + resolution: {integrity: sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==} + deprecated: Rimraf versions prior to v4 are no longer supported + hasBin: true + rimraf@2.7.1: resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==} deprecated: Rimraf versions prior to v4 are no longer supported @@ -5231,6 +6333,10 @@ packages: resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==} engines: {node: '>=0.12.0'} + run-async@3.0.0: + resolution: {integrity: sha512-540WwVDOMxA6dN6We19EcT9sc3hkXPw5mzRNGM3FkdN/vtE9NFvj5lFAPNwUDmJjXidm3v7TC1cTE7t17Ulm1Q==} + engines: {node: '>=0.12.0'} + run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} @@ -5245,9 +6351,15 @@ packages: resolution: {integrity: sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==} engines: {node: '>=0.4'} + safe-buffer@5.1.2: + resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} + safe-buffer@5.2.1: resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + safe-json-parse@1.0.1: + resolution: {integrity: sha512-o0JmTu17WGUaUOHa1l0FPGXKBfijbxK6qoHzlkihsDXxzBHvJcA7zgviKR92Xs841rX9pK16unfphLq0/KqX7A==} + safe-push-apply@1.0.0: resolution: {integrity: sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==} engines: {node: '>= 0.4'} @@ -5259,6 +6371,10 @@ packages: safe-regex@1.1.0: resolution: {integrity: sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==} + safe-stable-stringify@2.5.0: + resolution: {integrity: sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==} + engines: {node: '>=10'} + safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} @@ -5268,6 +6384,11 @@ packages: deprecated: some dependency vulnerabilities fixed, support for node < 10 dropped, and newer ECMAScript syntax/features added hasBin: true + sane@5.0.1: + resolution: {integrity: sha512-9/0CYoRz0MKKf04OMCO3Qk3RQl1PAwWAhPSQSym4ULiLpTZnrY1JoZU0IEikHu8kdk2HvKT/VwQMq/xFZ8kh1Q==} + engines: {node: 10.* || >= 12.*} + hasBin: true + saxes@6.0.0: resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==} engines: {node: '>=v12.22.7'} @@ -5393,6 +6514,10 @@ packages: resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} engines: {node: '>=8'} + slice-ansi@4.0.0: + resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==} + engines: {node: '>=10'} + smart-buffer@4.2.0: resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} @@ -5431,6 +6556,13 @@ packages: resolution: {integrity: sha512-pe4Y2yzru68lXCb38aAqRf5gvN8YdjP1lok5o0J7BOHljkyCGKVz7H3vpVIXKD27rj2giOJ7DwVyk/GWrPHDWA==} engines: {node: '>= 10.0.0', npm: '>= 3.0.0'} + sort-object-keys@1.1.3: + resolution: {integrity: sha512-855pvK+VkU7PaKYPc+Jjnmt4EzejQHyhhF33q31qG8x7maDzkeFhAAThdCYay11CISO+qAMwjOBP+fPZe0IPyg==} + + sort-package-json@2.15.1: + resolution: {integrity: sha512-9x9+o8krTT2saA9liI4BljNjwAbvUnWf11Wq+i/iZt8nl2UGYnf3TH5uBydE7VALmP7AGwlfszuEeL8BDyb0YA==} + hasBin: true + source-map-js@1.2.1: resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} engines: {node: '>=0.10.0'} @@ -5515,6 +6647,9 @@ packages: resolution: {integrity: sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==} engines: {node: '>= 0.4'} + string-template@0.2.1: + resolution: {integrity: sha512-Yptehjogou2xm4UJbxJ4CxgZx12HBfeystp0y3x7s4Dj32ltVVG1Gg8YhKjHZkHicuKpZX/ffilA8505VbUbpw==} + string-width@2.1.1: resolution: {integrity: sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==} engines: {node: '>=4'} @@ -5569,6 +6704,10 @@ packages: resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} engines: {node: '>=4'} + strip-bom@4.0.0: + resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==} + engines: {node: '>=8'} + strip-eof@1.0.0: resolution: {integrity: sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==} engines: {node: '>=0.10.0'} @@ -5598,6 +6737,23 @@ packages: styled_string@0.0.1: resolution: {integrity: sha512-DU2KZiB6VbPkO2tGSqQ9n96ZstUPjW7X4sGO6V2m1myIQluX0p1Ol8BrA/l6/EesqhMqXOIXs3cJNOy1UuU2BA==} + stylelint-config-recommended@16.0.0: + resolution: {integrity: sha512-4RSmPjQegF34wNcK1e1O3Uz91HN8P1aFdFzio90wNK9mjgAI19u5vsU868cVZboKzCaa5XbpvtTzAAGQAxpcXA==} + engines: {node: '>=18.12.0'} + peerDependencies: + stylelint: ^16.16.0 + + stylelint-config-standard@38.0.0: + resolution: {integrity: sha512-uj3JIX+dpFseqd/DJx8Gy3PcRAJhlEZ2IrlFOc4LUxBX/PNMEQ198x7LCOE2Q5oT9Vw8nyc4CIL78xSqPr6iag==} + engines: {node: '>=18.12.0'} + peerDependencies: + stylelint: ^16.18.0 + + stylelint@16.25.0: + resolution: {integrity: sha512-Li0avYWV4nfv1zPbdnxLYBGq4z8DVZxbRgx4Kn6V+Uftz1rMoF1qiEI3oL4kgWqyYgCgs7gT5maHNZ82Gk03vQ==} + engines: {node: '>=18.12.0'} + hasBin: true + supports-color@5.5.0: resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} engines: {node: '>=4'} @@ -5610,6 +6766,10 @@ packages: resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} engines: {node: '>=10'} + supports-hyperlinks@3.2.0: + resolution: {integrity: sha512-zFObLMyZeEwzAoKCyu1B91U79K2t7ApXuQfo8OuxwXLDgcKxuwM+YvcbIhm6QWqz7mHUH1TVytR1PwVVjEuMig==} + engines: {node: '>=14.18'} + supports-preserve-symlinks-flag@1.0.0: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} @@ -5630,6 +6790,10 @@ packages: resolution: {integrity: sha512-vngT2JmkSapgq0z7uIoYtB9kWOOzMihAAYq/D3Pjm/ODOGMgS4r++B+OZ09U4hWR6EaOdy9eqQ7/8ygbH3wehA==} engines: {node: 8.* || >= 10.*} + table@6.9.0: + resolution: {integrity: sha512-9kY+CygyYM6j02t5YFHbNz2FN5QmYGv9zAjVp4lCDjlCw7amdckXlEt/bjMhUIfj4ThGRE4gCUH5+yGnNuPo5A==} + engines: {node: '>=10.0.0'} + tap-parser@7.0.0: resolution: {integrity: sha512-05G8/LrzqOOFvZhhAk32wsGiPZ1lfUrl+iV7+OkKgfofZxiceZWMHkKmow71YsyVQ8IvGBP2EjcIjE5gL4l5lA==} hasBin: true @@ -5642,6 +6806,10 @@ packages: resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==} engines: {node: '>=10'} + temp@0.9.4: + resolution: {integrity: sha512-yYrrsWnrXMcdsnu/7YMYAofM1ktpL5By7vZhf15CrXijWWrEYZks5AXBudalfSWJLlnen/QUJUB5aoB0kqZUGA==} + engines: {node: '>=6.0.0'} + terser-webpack-plugin@5.3.14: resolution: {integrity: sha512-vkZjpUjb6OMS7dhV+tILUW6BhpDR7P2L/aQSAv+Uwk+m8KATX9EccViHTJR2qDtACKPIYndLGCyl3FMo+r2LMw==} engines: {node: '>= 10.13.0'} @@ -5688,10 +6856,17 @@ packages: tiny-glob@0.2.9: resolution: {integrity: sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==} + tiny-lr@2.0.0: + resolution: {integrity: sha512-f6nh0VMRvhGx4KCeK1lQ/jaL0Zdb5WdR+Jk8q9OSUQnaSDxAEGH1fgqLZ+cMl5EW3F2MGnCsalBO1IsnnogW1Q==} + tinyglobby@0.2.14: resolution: {integrity: sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==} engines: {node: '>=12.0.0'} + tinyglobby@0.2.15: + resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==} + engines: {node: '>=12.0.0'} + tldts-core@6.1.86: resolution: {integrity: sha512-Je6p7pkk+KMzMv2XXKmAE3McmolOQFdxkKw0R8EYNr7sELW46JqnNeTX8ybPiQgvg1ymCoF8LXs5fzFaZvJPTA==} @@ -5742,6 +6917,9 @@ packages: resolution: {integrity: sha512-hdF5ZgjTqgAntKkklYw0R03MG2x/bSzTtkxmIRw/sTNV8YXsCJ1tfLAX23lhxhHJlEf3CRCOCGGWw3vI3GaSPw==} engines: {node: '>=18'} + tracked-built-ins@4.0.0: + resolution: {integrity: sha512-0Jl43A1SDZd+yYCJvXfgDSn4Wk/zcawkyFTBPqOETU5UJRngnVEnQ8oOjawqPRg6qja3sKjIQ8z6X9xJzcUTUA==} + tree-kill@1.2.2: resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} hasBin: true @@ -5777,6 +6955,14 @@ packages: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} engines: {node: '>= 0.8.0'} + type-fest@0.11.0: + resolution: {integrity: sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==} + engines: {node: '>=8'} + + type-fest@0.21.3: + resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} + engines: {node: '>=10'} + type-fest@4.41.0: resolution: {integrity: sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==} engines: {node: '>=16'} @@ -5801,6 +6987,9 @@ packages: resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==} engines: {node: '>= 0.4'} + typedarray-to-buffer@3.1.5: + resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==} + typesafe-path@0.2.2: resolution: {integrity: sha512-OJabfkAg1WLZSqJAJ0Z6Sdt3utnbzr/jh+NAHoyWHJe8CMSy79Gm085094M9nvTPy22KzTVn5Zq5mbapCI/hPA==} @@ -5822,6 +7011,9 @@ packages: engines: {node: '>=14.17'} hasBin: true + uc.micro@2.1.0: + resolution: {integrity: sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==} + uglify-js@3.19.3: resolution: {integrity: sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==} engines: {node: '>=0.8.0'} @@ -5870,6 +7062,10 @@ packages: unique-slug@2.0.2: resolution: {integrity: sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==} + unique-string@2.0.0: + resolution: {integrity: sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==} + engines: {node: '>=8'} + universal-user-agent@7.0.3: resolution: {integrity: sha512-TmnEAEAsBJVZM/AADELsK76llnwcf9vMKuPz8JflO1frO8Lchitr0fNaN9d+Ap0BjKtqWqd/J17qeDnXh8CL2A==} @@ -5978,6 +7174,46 @@ packages: yaml: optional: true + vite@7.1.12: + resolution: {integrity: sha512-ZWyE8YXEXqJrrSLvYgrRP7p62OziLW7xI5HYGWFzOvupfAlrLvURSzv/FyGyy0eidogEM3ujU+kUG1zuHgb6Ug==} + engines: {node: ^20.19.0 || >=22.12.0} + hasBin: true + peerDependencies: + '@types/node': ^20.19.0 || >=22.12.0 + jiti: '>=1.21.0' + less: ^4.0.0 + lightningcss: ^1.21.0 + sass: ^1.70.0 + sass-embedded: ^1.70.0 + stylus: '>=0.54.8' + sugarss: ^5.0.0 + terser: ^5.16.0 + tsx: ^4.8.1 + yaml: ^2.4.2 + peerDependenciesMeta: + '@types/node': + optional: true + jiti: + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + sass-embedded: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + tsx: + optional: true + yaml: + optional: true + volar-service-html@0.0.64: resolution: {integrity: sha512-5xknMYKmZBFzp2399RlsnGce25PfNu9ViXa1s63Q8NP6xeXcF3lInFsV+1o2DWBoXZdnXcuRvWOA+K+JIZLEcA==} peerDependencies: @@ -6073,6 +7309,14 @@ packages: webpack-cli: optional: true + websocket-driver@0.7.4: + resolution: {integrity: sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==} + engines: {node: '>=0.8.0'} + + websocket-extensions@0.1.4: + resolution: {integrity: sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==} + engines: {node: '>=0.8.0'} + whatwg-encoding@3.1.1: resolution: {integrity: sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==} engines: {node: '>=18'} @@ -6131,6 +7375,13 @@ packages: workerpool@6.5.1: resolution: {integrity: sha512-Fs4dNYcsdpYSAfVxhnl1L5zTksjvOJxtC5hzMNl+1t9B8hTJTdKDyZ5ju7ztgPy+ft9tBFXoOlDNiOT9WUXZlA==} + workerpool@9.3.4: + resolution: {integrity: sha512-TmPRQYYSAnnDiEB0P/Ytip7bFGvqnSU6I2BcuSw7Hx+JSg/DsUi5ebYfc8GYaSdpuvOcEs6dXxPurOYpe9QFwg==} + + wrap-ansi@6.2.0: + resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} + engines: {node: '>=8'} + wrap-ansi@7.0.0: resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} engines: {node: '>=10'} @@ -6142,6 +7393,13 @@ packages: wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + write-file-atomic@3.0.3: + resolution: {integrity: sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==} + + write-file-atomic@5.0.1: + resolution: {integrity: sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + ws@8.17.1: resolution: {integrity: sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==} engines: {node: '>=10.0.0'} @@ -6166,6 +7424,10 @@ packages: utf-8-validate: optional: true + xdg-basedir@4.0.0: + resolution: {integrity: sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==} + engines: {node: '>=8'} + xml-name-validator@5.0.0: resolution: {integrity: sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==} engines: {node: '>=18'} @@ -6183,6 +7445,10 @@ packages: yallist@4.0.0: resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + yam@1.0.0: + resolution: {integrity: sha512-Hv9xxHtsJ9228wNhk03xnlDReUuWVvHwM4rIbjdAXYvHLs17xjuyF50N6XXFMN6N0omBaqgOok/MCK3At9fTAg==} + engines: {node: ^4.5 || 6.* || >= 7.*} + yargs-parser@20.2.9: resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} engines: {node: '>=10'} @@ -6203,6 +7469,10 @@ packages: resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} engines: {node: '>=10'} + yoctocolors-cjs@2.1.3: + resolution: {integrity: sha512-U/PBtDf35ff0D8X8D0jfdzHYEPFxAI7jJlxZXwCSez5M3190m+QobIfh+sWDWSHMCWWJN2AWamkegn6vr6YBTw==} + engines: {node: '>=18'} + yoctocolors@2.1.1: resolution: {integrity: sha512-GQHQqAopRhwU8Kt1DDM8NjibDXHC8eoh1erhGAJPEyveY9qqVeXvVikNKrDz69sHowPMorbPUrH/mx8c50eiBQ==} engines: {node: '>=18'} @@ -6250,7 +7520,27 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/eslint-parser@7.28.0(@babel/core@7.28.0)(eslint@9.32.0(jiti@2.4.2))': + '@babel/core@7.28.5': + dependencies: + '@babel/code-frame': 7.27.1 + '@babel/generator': 7.28.5 + '@babel/helper-compilation-targets': 7.27.2 + '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.5) + '@babel/helpers': 7.28.4 + '@babel/parser': 7.28.5 + '@babel/template': 7.27.2 + '@babel/traverse': 7.28.5 + '@babel/types': 7.28.5 + '@jridgewell/remapping': 2.3.5 + convert-source-map: 2.0.0 + debug: 4.4.1 + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + '@babel/eslint-parser@7.28.5(@babel/core@7.28.0)(eslint@9.32.0(jiti@2.4.2))': dependencies: '@babel/core': 7.28.0 '@nicolo-ribaudo/eslint-scope-5-internals': 5.1.1-v1 @@ -6258,6 +7548,14 @@ snapshots: eslint-visitor-keys: 2.1.0 semver: 6.3.1 + '@babel/eslint-parser@7.28.5(@babel/core@7.28.5)(eslint@9.38.0(jiti@2.4.2))': + dependencies: + '@babel/core': 7.28.5 + '@nicolo-ribaudo/eslint-scope-5-internals': 5.1.1-v1 + eslint: 9.38.0(jiti@2.4.2) + eslint-visitor-keys: 2.1.0 + semver: 6.3.1 + '@babel/generator@7.28.0': dependencies: '@babel/parser': 7.28.0 @@ -6266,6 +7564,14 @@ snapshots: '@jridgewell/trace-mapping': 0.3.29 jsesc: 3.1.0 + '@babel/generator@7.28.5': + dependencies: + '@babel/parser': 7.28.5 + '@babel/types': 7.28.5 + '@jridgewell/gen-mapping': 0.3.12 + '@jridgewell/trace-mapping': 0.3.29 + jsesc: 3.1.0 + '@babel/helper-annotate-as-pure@7.27.3': dependencies: '@babel/types': 7.28.2 @@ -6291,6 +7597,19 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/helper-create-class-features-plugin@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@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.5) + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 + '@babel/traverse': 7.28.0 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + '@babel/helper-create-regexp-features-plugin@7.27.1(@babel/core@7.28.0)': dependencies: '@babel/core': 7.28.0 @@ -6298,12 +7617,30 @@ snapshots: regexpu-core: 6.2.0 semver: 6.3.1 + '@babel/helper-create-regexp-features-plugin@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@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)': dependencies: '@babel/core': 7.28.0 '@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: + - supports-color + + '@babel/helper-define-polyfill-provider@0.6.5(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-compilation-targets': 7.27.2 + '@babel/helper-plugin-utils': 7.27.1 + debug: 4.4.3 lodash.debounce: 4.0.8 resolve: 1.22.10 transitivePeerDependencies: @@ -6334,6 +7671,24 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/helper-module-transforms@7.27.3(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-module-imports': 7.27.1 + '@babel/helper-validator-identifier': 7.27.1 + '@babel/traverse': 7.28.0 + transitivePeerDependencies: + - supports-color + + '@babel/helper-module-transforms@7.28.3(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-module-imports': 7.27.1 + '@babel/helper-validator-identifier': 7.27.1 + '@babel/traverse': 7.28.5 + transitivePeerDependencies: + - supports-color + '@babel/helper-optimise-call-expression@7.27.1': dependencies: '@babel/types': 7.28.2 @@ -6349,6 +7704,15 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/helper-remap-async-to-generator@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-annotate-as-pure': 7.27.3 + '@babel/helper-wrap-function': 7.27.1 + '@babel/traverse': 7.28.0 + transitivePeerDependencies: + - supports-color + '@babel/helper-replace-supers@7.27.1(@babel/core@7.28.0)': dependencies: '@babel/core': 7.28.0 @@ -6358,6 +7722,15 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/helper-replace-supers@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-member-expression-to-functions': 7.27.1 + '@babel/helper-optimise-call-expression': 7.27.1 + '@babel/traverse': 7.28.0 + transitivePeerDependencies: + - supports-color + '@babel/helper-skip-transparent-expression-wrappers@7.27.1': dependencies: '@babel/traverse': 7.28.0 @@ -6369,6 +7742,8 @@ snapshots: '@babel/helper-validator-identifier@7.27.1': {} + '@babel/helper-validator-identifier@7.28.5': {} + '@babel/helper-validator-option@7.27.1': {} '@babel/helper-wrap-function@7.27.1': @@ -6384,10 +7759,19 @@ snapshots: '@babel/template': 7.27.2 '@babel/types': 7.28.2 + '@babel/helpers@7.28.4': + dependencies: + '@babel/template': 7.27.2 + '@babel/types': 7.28.5 + '@babel/parser@7.28.0': dependencies: '@babel/types': 7.28.2 + '@babel/parser@7.28.5': + dependencies: + '@babel/types': 7.28.5 + '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.27.1(@babel/core@7.28.0)': dependencies: '@babel/core': 7.28.0 @@ -6396,16 +7780,34 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/traverse': 7.28.0 + transitivePeerDependencies: + - supports-color + '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.27.1(@babel/core@7.28.0)': dependencies: '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@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)': dependencies: '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.27.1(@babel/core@7.28.0)': dependencies: '@babel/core': 7.28.0 @@ -6415,6 +7817,15 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@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.5) + transitivePeerDependencies: + - supports-color + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.27.1(@babel/core@7.28.0)': dependencies: '@babel/core': 7.28.0 @@ -6423,6 +7834,14 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/traverse': 7.28.0 + transitivePeerDependencies: + - supports-color + '@babel/plugin-proposal-class-properties@7.18.6(@babel/core@7.28.0)': dependencies: '@babel/core': 7.28.0 @@ -6431,6 +7850,14 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-proposal-class-properties@7.18.6(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.28.5) + '@babel/helper-plugin-utils': 7.27.1 + transitivePeerDependencies: + - supports-color + '@babel/plugin-proposal-decorators@7.28.0(@babel/core@7.28.0)': dependencies: '@babel/core': 7.28.0 @@ -6440,6 +7867,15 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-proposal-decorators@7.28.0(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.28.5) + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-decorators': 7.27.1(@babel/core@7.28.5) + transitivePeerDependencies: + - supports-color + '@babel/plugin-proposal-private-methods@7.18.6(@babel/core@7.28.0)': dependencies: '@babel/core': 7.28.0 @@ -6448,10 +7884,22 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-proposal-private-methods@7.18.6(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.28.5) + '@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)': dependencies: '@babel/core': 7.28.0 + '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/plugin-proposal-private-property-in-object@7.21.11(@babel/core@7.28.0)': dependencies: '@babel/core': 7.28.0 @@ -6462,47 +7910,98 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-proposal-private-property-in-object@7.21.11(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-annotate-as-pure': 7.27.3 + '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.28.5) + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.28.5) + transitivePeerDependencies: + - supports-color + '@babel/plugin-syntax-decorators@7.27.1(@babel/core@7.28.0)': dependencies: '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-decorators@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.28.0)': dependencies: '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-import-assertions@7.27.1(@babel/core@7.28.0)': dependencies: '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-import-assertions@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-import-attributes@7.27.1(@babel/core@7.28.0)': dependencies: '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-import-attributes@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.28.0)': dependencies: '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-typescript@7.27.1(@babel/core@7.28.0)': dependencies: '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-typescript@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.28.0)': dependencies: '@babel/core': 7.28.0 '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.0) '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.5) + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-arrow-functions@7.27.1(@babel/core@7.28.0)': dependencies: '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-arrow-functions@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-async-generator-functions@7.28.0(@babel/core@7.28.0)': dependencies: '@babel/core': 7.28.0 @@ -6512,6 +8011,15 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-async-generator-functions@7.28.0(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.28.5) + '@babel/traverse': 7.28.0 + transitivePeerDependencies: + - supports-color + '@babel/plugin-transform-async-to-generator@7.27.1(@babel/core@7.28.0)': dependencies: '@babel/core': 7.28.0 @@ -6521,16 +8029,35 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-async-to-generator@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@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.5) + transitivePeerDependencies: + - supports-color + '@babel/plugin-transform-block-scoped-functions@7.27.1(@babel/core@7.28.0)': dependencies: '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-block-scoped-functions@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-block-scoping@7.28.0(@babel/core@7.28.0)': dependencies: '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-block-scoping@7.28.0(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-class-properties@7.27.1(@babel/core@7.28.0)': dependencies: '@babel/core': 7.28.0 @@ -6539,6 +8066,14 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-class-properties@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.28.5) + '@babel/helper-plugin-utils': 7.27.1 + transitivePeerDependencies: + - supports-color + '@babel/plugin-transform-class-static-block@7.27.1(@babel/core@7.28.0)': dependencies: '@babel/core': 7.28.0 @@ -6547,7 +8082,15 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/plugin-transform-classes@7.28.0(@babel/core@7.28.0)': + '@babel/plugin-transform-class-static-block@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.28.5) + '@babel/helper-plugin-utils': 7.27.1 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-classes@7.28.0(@babel/core@7.28.0)': dependencies: '@babel/core': 7.28.0 '@babel/helper-annotate-as-pure': 7.27.3 @@ -6559,12 +8102,30 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-classes@7.28.0(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@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.5) + '@babel/traverse': 7.28.0 + transitivePeerDependencies: + - supports-color + '@babel/plugin-transform-computed-properties@7.27.1(@babel/core@7.28.0)': dependencies: '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 '@babel/template': 7.27.2 + '@babel/plugin-transform-computed-properties@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/template': 7.27.2 + '@babel/plugin-transform-destructuring@7.28.0(@babel/core@7.28.0)': dependencies: '@babel/core': 7.28.0 @@ -6573,28 +8134,58 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-destructuring@7.28.0(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/traverse': 7.28.0 + transitivePeerDependencies: + - supports-color + '@babel/plugin-transform-dotall-regex@7.27.1(@babel/core@7.28.0)': dependencies: '@babel/core': 7.28.0 '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.0) '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-dotall-regex@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.5) + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-duplicate-keys@7.27.1(@babel/core@7.28.0)': dependencies: '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-duplicate-keys@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.27.1(@babel/core@7.28.0)': dependencies: '@babel/core': 7.28.0 '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.0) '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.5) + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-dynamic-import@7.27.1(@babel/core@7.28.0)': dependencies: '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-dynamic-import@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-explicit-resource-management@7.28.0(@babel/core@7.28.0)': dependencies: '@babel/core': 7.28.0 @@ -6603,16 +8194,34 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-explicit-resource-management@7.28.0(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-destructuring': 7.28.0(@babel/core@7.28.5) + transitivePeerDependencies: + - supports-color + '@babel/plugin-transform-exponentiation-operator@7.27.1(@babel/core@7.28.0)': dependencies: '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-exponentiation-operator@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-export-namespace-from@7.27.1(@babel/core@7.28.0)': dependencies: '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-export-namespace-from@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-for-of@7.27.1(@babel/core@7.28.0)': dependencies: '@babel/core': 7.28.0 @@ -6621,6 +8230,14 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-for-of@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@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)': dependencies: '@babel/core': 7.28.0 @@ -6630,26 +8247,55 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-function-name@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-compilation-targets': 7.27.2 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/traverse': 7.28.0 + transitivePeerDependencies: + - supports-color + '@babel/plugin-transform-json-strings@7.27.1(@babel/core@7.28.0)': dependencies: '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-json-strings@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-literals@7.27.1(@babel/core@7.28.0)': dependencies: '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-literals@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-logical-assignment-operators@7.27.1(@babel/core@7.28.0)': dependencies: '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-logical-assignment-operators@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-member-expression-literals@7.27.1(@babel/core@7.28.0)': dependencies: '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-member-expression-literals@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-modules-amd@7.27.1(@babel/core@7.28.0)': dependencies: '@babel/core': 7.28.0 @@ -6658,6 +8304,14 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-modules-amd@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-module-transforms': 7.27.3(@babel/core@7.28.5) + '@babel/helper-plugin-utils': 7.27.1 + transitivePeerDependencies: + - supports-color + '@babel/plugin-transform-modules-commonjs@7.27.1(@babel/core@7.28.0)': dependencies: '@babel/core': 7.28.0 @@ -6666,6 +8320,14 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-modules-commonjs@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-module-transforms': 7.27.3(@babel/core@7.28.5) + '@babel/helper-plugin-utils': 7.27.1 + transitivePeerDependencies: + - supports-color + '@babel/plugin-transform-modules-systemjs@7.27.1(@babel/core@7.28.0)': dependencies: '@babel/core': 7.28.0 @@ -6676,6 +8338,16 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-modules-systemjs@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-module-transforms': 7.27.3(@babel/core@7.28.5) + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-validator-identifier': 7.27.1 + '@babel/traverse': 7.28.0 + transitivePeerDependencies: + - supports-color + '@babel/plugin-transform-modules-umd@7.27.1(@babel/core@7.28.0)': dependencies: '@babel/core': 7.28.0 @@ -6684,27 +8356,56 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-modules-umd@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-module-transforms': 7.27.3(@babel/core@7.28.5) + '@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)': dependencies: '@babel/core': 7.28.0 '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.0) '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-named-capturing-groups-regex@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.5) + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-new-target@7.27.1(@babel/core@7.28.0)': dependencies: '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-new-target@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-nullish-coalescing-operator@7.27.1(@babel/core@7.28.0)': dependencies: '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-nullish-coalescing-operator@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-numeric-separator@7.27.1(@babel/core@7.28.0)': dependencies: '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-numeric-separator@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-object-rest-spread@7.28.0(@babel/core@7.28.0)': dependencies: '@babel/core': 7.28.0 @@ -6716,6 +8417,17 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-object-rest-spread@7.28.0(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@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.5) + '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.28.5) + '@babel/traverse': 7.28.0 + transitivePeerDependencies: + - supports-color + '@babel/plugin-transform-object-super@7.27.1(@babel/core@7.28.0)': dependencies: '@babel/core': 7.28.0 @@ -6724,11 +8436,24 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-object-super@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-replace-supers': 7.27.1(@babel/core@7.28.5) + transitivePeerDependencies: + - supports-color + '@babel/plugin-transform-optional-catch-binding@7.27.1(@babel/core@7.28.0)': dependencies: '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-optional-catch-binding@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-optional-chaining@7.27.1(@babel/core@7.28.0)': dependencies: '@babel/core': 7.28.0 @@ -6737,11 +8462,24 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-optional-chaining@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@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)': dependencies: '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-parameters@7.27.7(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-private-methods@7.27.1(@babel/core@7.28.0)': dependencies: '@babel/core': 7.28.0 @@ -6750,6 +8488,14 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-private-methods@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.28.5) + '@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)': dependencies: '@babel/core': 7.28.0 @@ -6759,27 +8505,57 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-private-property-in-object@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-annotate-as-pure': 7.27.3 + '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.28.5) + '@babel/helper-plugin-utils': 7.27.1 + transitivePeerDependencies: + - supports-color + '@babel/plugin-transform-property-literals@7.27.1(@babel/core@7.28.0)': dependencies: '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-property-literals@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-regenerator@7.28.1(@babel/core@7.28.0)': dependencies: '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-regenerator@7.28.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-regexp-modifiers@7.27.1(@babel/core@7.28.0)': dependencies: '@babel/core': 7.28.0 '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.0) '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-regexp-modifiers@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.5) + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-reserved-words@7.27.1(@babel/core@7.28.0)': dependencies: '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-reserved-words@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-runtime@7.28.0(@babel/core@7.28.0)': dependencies: '@babel/core': 7.28.0 @@ -6792,11 +8568,40 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-runtime@7.28.5(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@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) + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-runtime@7.28.5(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@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.5) + babel-plugin-polyfill-corejs3: 0.13.0(@babel/core@7.28.5) + babel-plugin-polyfill-regenerator: 0.6.5(@babel/core@7.28.5) + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + '@babel/plugin-transform-shorthand-properties@7.27.1(@babel/core@7.28.0)': dependencies: '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-shorthand-properties@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-spread@7.27.1(@babel/core@7.28.0)': dependencies: '@babel/core': 7.28.0 @@ -6805,21 +8610,44 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-spread@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@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)': dependencies: '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-sticky-regex@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-template-literals@7.27.1(@babel/core@7.28.0)': dependencies: '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-template-literals@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-typeof-symbol@7.27.1(@babel/core@7.28.0)': dependencies: '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-typeof-symbol@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-typescript@7.28.0(@babel/core@7.28.0)': dependencies: '@babel/core': 7.28.0 @@ -6831,29 +8659,63 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-typescript@7.28.0(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-annotate-as-pure': 7.27.3 + '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.28.5) + '@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.5) + transitivePeerDependencies: + - supports-color + '@babel/plugin-transform-unicode-escapes@7.27.1(@babel/core@7.28.0)': dependencies: '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-unicode-escapes@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-unicode-property-regex@7.27.1(@babel/core@7.28.0)': dependencies: '@babel/core': 7.28.0 '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.0) '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-unicode-property-regex@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.5) + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-unicode-regex@7.27.1(@babel/core@7.28.0)': dependencies: '@babel/core': 7.28.0 '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.0) '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-unicode-regex@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.5) + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-unicode-sets-regex@7.27.1(@babel/core@7.28.0)': dependencies: '@babel/core': 7.28.0 '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.0) '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-unicode-sets-regex@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.5) + '@babel/helper-plugin-utils': 7.27.1 + '@babel/polyfill@7.12.1': dependencies: core-js: 2.6.12 @@ -6935,6 +8797,82 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/preset-env@7.28.0(@babel/core@7.28.5)': + dependencies: + '@babel/compat-data': 7.28.0 + '@babel/core': 7.28.5 + '@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.5) + '@babel/plugin-bugfix-safari-class-field-initializer-scope': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.28.5) + '@babel/plugin-syntax-import-assertions': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-syntax-import-attributes': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.28.5) + '@babel/plugin-transform-arrow-functions': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-async-generator-functions': 7.28.0(@babel/core@7.28.5) + '@babel/plugin-transform-async-to-generator': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-block-scoped-functions': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-block-scoping': 7.28.0(@babel/core@7.28.5) + '@babel/plugin-transform-class-properties': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-class-static-block': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-classes': 7.28.0(@babel/core@7.28.5) + '@babel/plugin-transform-computed-properties': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-destructuring': 7.28.0(@babel/core@7.28.5) + '@babel/plugin-transform-dotall-regex': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-duplicate-keys': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-duplicate-named-capturing-groups-regex': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-dynamic-import': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-explicit-resource-management': 7.28.0(@babel/core@7.28.5) + '@babel/plugin-transform-exponentiation-operator': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-export-namespace-from': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-for-of': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-function-name': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-json-strings': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-literals': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-logical-assignment-operators': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-member-expression-literals': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-modules-amd': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-modules-commonjs': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-modules-systemjs': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-modules-umd': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-named-capturing-groups-regex': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-new-target': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-nullish-coalescing-operator': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-numeric-separator': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-object-rest-spread': 7.28.0(@babel/core@7.28.5) + '@babel/plugin-transform-object-super': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-optional-catch-binding': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-optional-chaining': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.28.5) + '@babel/plugin-transform-private-methods': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-private-property-in-object': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-property-literals': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-regenerator': 7.28.1(@babel/core@7.28.5) + '@babel/plugin-transform-regexp-modifiers': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-reserved-words': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-shorthand-properties': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-spread': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-sticky-regex': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-template-literals': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-typeof-symbol': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-unicode-escapes': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-unicode-property-regex': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-unicode-regex': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-unicode-sets-regex': 7.27.1(@babel/core@7.28.5) + '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.28.5) + babel-plugin-polyfill-corejs2: 0.4.14(@babel/core@7.28.5) + babel-plugin-polyfill-corejs3: 0.13.0(@babel/core@7.28.5) + babel-plugin-polyfill-regenerator: 0.6.5(@babel/core@7.28.5) + core-js-compat: 3.44.0 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.28.0)': dependencies: '@babel/core': 7.28.0 @@ -6942,12 +8880,21 @@ snapshots: '@babel/types': 7.28.2 esutils: 2.0.3 + '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/types': 7.28.2 + esutils: 2.0.3 + '@babel/runtime@7.12.18': dependencies: regenerator-runtime: 0.13.11 '@babel/runtime@7.28.2': {} + '@babel/runtime@7.28.4': {} + '@babel/template@7.27.2': dependencies: '@babel/code-frame': 7.27.1 @@ -6966,11 +8913,44 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/traverse@7.28.5': + dependencies: + '@babel/code-frame': 7.27.1 + '@babel/generator': 7.28.5 + '@babel/helper-globals': 7.28.0 + '@babel/parser': 7.28.5 + '@babel/template': 7.27.2 + '@babel/types': 7.28.5 + 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.28.5': + dependencies: + '@babel/helper-string-parser': 7.27.1 + '@babel/helper-validator-identifier': 7.28.5 + + '@cacheable/memoize@2.0.3': + dependencies: + '@cacheable/utils': 2.1.0 + + '@cacheable/memory@2.0.3': + dependencies: + '@cacheable/memoize': 2.0.3 + '@cacheable/utils': 2.1.0 + '@keyv/bigmap': 1.1.0(keyv@5.5.3) + hookified: 1.12.2 + keyv: 5.5.3 + + '@cacheable/utils@2.1.0': + dependencies: + keyv: 5.5.3 + '@cnakazawa/watch@1.0.4': dependencies: exec-sh: 0.3.6 @@ -6996,18 +8976,85 @@ snapshots: '@csstools/css-tokenizer@3.0.4': {} - '@ember-data/rfc395-data@0.0.4': {} + '@csstools/media-query-list-parser@4.0.3(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)': + dependencies: + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) + '@csstools/css-tokenizer': 3.0.4 - '@ember/app-tsconfig@1.0.3': {} + '@csstools/selector-specificity@5.0.0(postcss-selector-parser@7.1.0)': + dependencies: + postcss-selector-parser: 7.1.0 - '@ember/edition-utils@1.2.0': {} + '@dual-bundle/import-meta-resolve@4.2.1': {} - '@ember/library-tsconfig@1.1.3': {} + '@ember-data/rfc395-data@0.0.4': {} - '@ember/test-helpers@5.2.2(@babel/core@7.28.0)(@glint/template@1.6.1)': + '@ember-tooling/blueprint-blueprint@0.2.1': {} + + '@ember-tooling/blueprint-model@0.4.1': dependencies: - '@ember/test-waiters': 4.1.1(@glint/template@1.6.1) - '@embroider/addon-shim': 1.10.0 + chalk: 4.1.2 + diff: 7.0.0 + isbinaryfile: 5.0.6 + lodash: 4.17.21 + promise.hash.helper: 1.0.8 + quick-temp: 0.1.8 + silent-error: 1.1.1 + transitivePeerDependencies: + - supports-color + + '@ember-tooling/classic-build-addon-blueprint@6.8.0': + dependencies: + '@ember-tooling/blueprint-model': 0.4.1 + chalk: 4.1.2 + ember-cli-normalize-entity-name: 1.0.0 + ember-cli-string-utils: 1.1.0 + fs-extra: 11.3.0 + lodash: 4.17.21 + silent-error: 1.1.1 + sort-package-json: 2.15.1 + walk-sync: 3.0.0 + transitivePeerDependencies: + - supports-color + + '@ember-tooling/classic-build-app-blueprint@6.8.0': + dependencies: + '@ember-tooling/blueprint-model': 0.4.1 + chalk: 4.1.2 + ember-cli-string-utils: 1.1.0 + transitivePeerDependencies: + - supports-color + + '@ember/app-blueprint@6.8.2': + dependencies: + chalk: 4.1.2 + ember-cli-string-utils: 1.1.0 + lodash: 4.17.21 + walk-sync: 3.0.0 + + '@ember/app-tsconfig@1.0.3': {} + + '@ember/edition-utils@1.2.0': {} + + '@ember/library-tsconfig@1.1.3': {} + + '@ember/optional-features@2.2.0': + dependencies: + chalk: 4.1.2 + ember-cli-version-checker: 5.1.2 + glob: 7.2.3 + inquirer: 7.3.3 + mkdirp: 1.0.4 + silent-error: 1.1.1 + transitivePeerDependencies: + - supports-color + + '@ember/string@4.0.1': {} + + '@ember/test-helpers@5.2.2(@babel/core@7.28.0)(@glint/template@1.6.1)': + dependencies: + '@ember/test-waiters': 4.1.1(@glint/template@1.6.1) + '@embroider/addon-shim': 1.10.0 '@embroider/macros': 1.18.1(@glint/template@1.6.1) '@simple-dom/interface': 1.4.0 decorator-transforms: 2.3.0(@babel/core@7.28.0) @@ -7017,10 +9064,23 @@ snapshots: - '@glint/template' - supports-color + '@ember/test-helpers@5.4.0(@babel/core@7.28.5)(@glint/template@1.6.1)': + dependencies: + '@ember/test-waiters': 4.1.1(@glint/template@1.6.1) + '@embroider/addon-shim': 1.10.0 + '@embroider/macros': 1.19.2(@glint/template@1.6.1) + '@simple-dom/interface': 1.4.0 + decorator-transforms: 2.3.0(@babel/core@7.28.5) + dom-element-descriptors: 0.5.1 + transitivePeerDependencies: + - '@babel/core' + - '@glint/template' + - supports-color + '@ember/test-waiters@4.1.1(@glint/template@1.6.1)': dependencies: '@embroider/addon-shim': 1.10.0 - '@embroider/macros': 1.18.1(@glint/template@1.6.1) + '@embroider/macros': 1.19.2(@glint/template@1.6.1) transitivePeerDependencies: - '@glint/template' - supports-color @@ -7054,7 +9114,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@embroider/compat@4.1.1(@embroider/core@4.1.3(@glint/template@1.6.1))(@glimmer/component@2.0.0)(@glint/template@1.6.1)(rsvp@4.8.5)(webpack@5.100.2)': + '@embroider/compat@4.1.1(@embroider/core@4.1.3(@glint/template@1.6.1))(@glimmer/component@2.0.0)(@glint/template@1.6.1)(rsvp@4.8.5)': dependencies: '@babel/code-frame': 7.27.1 '@babel/core': 7.28.0 @@ -7086,7 +9146,7 @@ snapshots: broccoli-source: 3.0.1 chalk: 4.1.2 debug: 4.4.1 - ember-source: 6.1.0-beta.1(@glimmer/component@2.0.0)(@glint/template@1.6.1)(rsvp@4.8.5)(webpack@5.100.2) + ember-source: 6.1.0-beta.1(@glimmer/component@2.0.0)(@glint/template@1.6.1)(rsvp@4.8.5) fast-sourcemap-concat: 2.1.1 fs-extra: 9.1.0 fs-tree-diff: 2.0.1 @@ -7111,6 +9171,61 @@ snapshots: - utf-8-validate - webpack + '@embroider/compat@4.1.8(@embroider/core@4.2.5(@glint/template@1.6.1))(@glint/template@1.6.1)': + dependencies: + '@babel/code-frame': 7.27.1 + '@babel/core': 7.28.5 + '@babel/plugin-syntax-decorators': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.28.5) + '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-runtime': 7.28.5(@babel/core@7.28.5) + '@babel/preset-env': 7.28.0(@babel/core@7.28.5) + '@babel/runtime': 7.28.4 + '@babel/traverse': 7.28.0 + '@embroider/core': 4.2.5(@glint/template@1.6.1) + '@embroider/macros': 1.19.2(@glint/template@1.6.1) + '@types/babel__code-frame': 7.0.6 + assert-never: 1.4.0 + babel-import-util: 3.0.1 + babel-plugin-debug-macros: 2.0.0(@babel/core@7.28.5) + babel-plugin-ember-template-compilation: 3.0.0 + babel-plugin-ember-template-compilation-2: babel-plugin-ember-template-compilation@2.4.1 + babel-plugin-syntax-dynamic-import: 6.18.0 + babylon: 6.18.0 + bind-decorator: 1.0.11 + broccoli: 3.5.2 + broccoli-concat: 4.2.5 + broccoli-file-creator: 2.1.1 + broccoli-funnel: 3.0.8 + broccoli-merge-trees: 4.2.0 + broccoli-persistent-filter: 3.1.3 + broccoli-plugin: 4.0.7 + broccoli-source: 3.0.1 + chalk: 4.1.2 + debug: 4.4.1 + fast-sourcemap-concat: 2.1.1 + fs-extra: 9.1.0 + fs-tree-diff: 2.0.1 + jsdom: 26.1.0 + lodash: 4.17.21 + pkg-up: 3.1.0 + resolve: 1.22.10 + resolve-package-path: 4.0.3 + resolve.exports: 2.0.3 + semver: 7.7.2 + symlink-or-copy: 1.3.1 + tree-sync: 2.1.0 + typescript-memoize: 1.1.1 + walk-sync: 3.0.0 + transitivePeerDependencies: + - '@glint/template' + - bufferutil + - canvas + - supports-color + - utf-8-validate + + '@embroider/config-meta-loader@1.0.0': {} + '@embroider/core@4.1.3(@glint/template@1.6.1)': dependencies: '@babel/core': 7.28.0 @@ -7147,6 +9262,48 @@ snapshots: - supports-color - utf-8-validate + '@embroider/core@4.2.5(@glint/template@1.6.1)': + dependencies: + '@babel/core': 7.28.5 + '@babel/parser': 7.28.0 + '@babel/traverse': 7.28.0 + '@embroider/macros': 1.19.2(@glint/template@1.6.1) + '@embroider/reverse-exports': 0.1.2 + '@embroider/shared-internals': 3.0.1 + assert-never: 1.4.0 + babel-plugin-ember-template-compilation: 3.0.0 + broccoli-node-api: 1.7.0 + broccoli-persistent-filter: 3.1.3 + broccoli-plugin: 4.0.7 + broccoli-source: 3.0.1 + debug: 4.4.1 + escape-string-regexp: 4.0.0 + fast-sourcemap-concat: 2.1.1 + fs-extra: 9.1.0 + fs-tree-diff: 2.0.1 + handlebars: 4.7.8 + js-string-escape: 1.0.1 + jsdom: 25.0.1 + lodash: 4.17.21 + resolve: 1.22.10 + resolve-package-path: 4.0.3 + resolve.exports: 2.0.3 + semver: 7.7.2 + typescript-memoize: 1.1.1 + walk-sync: 3.0.0 + transitivePeerDependencies: + - '@glint/template' + - bufferutil + - canvas + - supports-color + - utf-8-validate + + '@embroider/legacy-inspector-support@0.1.3': + dependencies: + '@embroider/addon-shim': 1.10.0 + transitivePeerDependencies: + - supports-color + '@embroider/macros@1.18.1(@glint/template@1.6.1)': dependencies: '@embroider/shared-internals': 3.0.0 @@ -7162,11 +9319,36 @@ snapshots: transitivePeerDependencies: - supports-color + '@embroider/macros@1.19.2(@glint/template@1.6.1)': + dependencies: + '@embroider/shared-internals': 3.0.1 + assert-never: 1.4.0 + babel-import-util: 3.0.1 + ember-cli-babel: 7.26.11 + find-up: 5.0.0 + lodash: 4.17.21 + resolve: 1.22.10 + semver: 7.7.2 + optionalDependencies: + '@glint/template': 1.6.1 + transitivePeerDependencies: + - supports-color + '@embroider/reverse-exports@0.1.2': dependencies: mem: 8.1.1 resolve.exports: 2.0.3 + '@embroider/router@3.0.4(@embroider/core@4.2.5(@glint/template@1.6.1))(@glint/template@1.6.1)': + dependencies: + '@ember/test-waiters': 4.1.1(@glint/template@1.6.1) + '@embroider/addon-shim': 1.10.0 + optionalDependencies: + '@embroider/core': 4.2.5(@glint/template@1.6.1) + transitivePeerDependencies: + - '@glint/template' + - supports-color + '@embroider/shared-internals@2.9.1': dependencies: babel-import-util: 2.1.1 @@ -7202,6 +9384,24 @@ snapshots: transitivePeerDependencies: - supports-color + '@embroider/shared-internals@3.0.1': + dependencies: + babel-import-util: 3.0.1 + debug: 4.4.1 + 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 + pkg-entry-points: 1.1.1 + resolve-package-path: 4.0.3 + resolve.exports: 2.0.3 + semver: 7.7.2 + typescript-memoize: 1.1.1 + transitivePeerDependencies: + - supports-color + '@embroider/vite@1.1.6(@embroider/core@4.1.3(@glint/template@1.6.1))(@glint/template@1.6.1)(rollup@4.46.0)(vite@6.3.5(@types/node@24.1.0)(jiti@2.4.2)(terser@5.43.1))': dependencies: '@babel/core': 7.28.0 @@ -7229,6 +9429,34 @@ snapshots: - supports-color - utf-8-validate + '@embroider/vite@1.3.6(@embroider/core@4.2.5(@glint/template@1.6.1))(@glint/template@1.6.1)(rollup@4.46.0)(vite@7.1.12(@types/node@24.1.0)(jiti@2.4.2)(terser@5.43.1))': + dependencies: + '@babel/core': 7.28.5 + '@embroider/core': 4.2.5(@glint/template@1.6.1) + '@embroider/macros': 1.19.2(@glint/template@1.6.1) + '@embroider/reverse-exports': 0.1.2 + '@rollup/pluginutils': 5.2.0(rollup@4.46.0) + assert-never: 1.4.0 + browserslist: 4.25.1 + browserslist-to-esbuild: 2.1.1(browserslist@4.25.1) + chalk: 5.6.2 + content-tag: 3.1.3 + debug: 4.4.1 + fast-glob: 3.3.3 + fs-extra: 10.1.0 + jsdom: 25.0.1 + send: 0.18.0 + source-map-url: 0.4.1 + terser: 5.43.1 + vite: 7.1.12(@types/node@24.1.0)(jiti@2.4.2)(terser@5.43.1) + transitivePeerDependencies: + - '@glint/template' + - bufferutil + - canvas + - rollup + - supports-color + - utf-8-validate + '@emnapi/core@1.4.5': dependencies: '@emnapi/wasi-threads': 1.0.4 @@ -7328,6 +9556,16 @@ snapshots: eslint: 9.32.0(jiti@2.4.2) eslint-visitor-keys: 3.4.3 + '@eslint-community/eslint-utils@4.7.0(eslint@9.38.0(jiti@2.4.2))': + dependencies: + eslint: 9.38.0(jiti@2.4.2) + eslint-visitor-keys: 3.4.3 + + '@eslint-community/eslint-utils@4.9.0(eslint@9.38.0(jiti@2.4.2))': + dependencies: + eslint: 9.38.0(jiti@2.4.2) + eslint-visitor-keys: 3.4.3 + '@eslint-community/regexpp@4.12.1': {} '@eslint/config-array@0.21.0': @@ -7338,12 +9576,28 @@ snapshots: transitivePeerDependencies: - supports-color + '@eslint/config-array@0.21.1': + dependencies: + '@eslint/object-schema': 2.1.7 + debug: 4.4.1 + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + '@eslint/config-helpers@0.3.0': {} + '@eslint/config-helpers@0.4.1': + dependencies: + '@eslint/core': 0.16.0 + '@eslint/core@0.15.1': dependencies: '@types/json-schema': 7.0.15 + '@eslint/core@0.16.0': + dependencies: + '@types/json-schema': 7.0.15 + '@eslint/eslintrc@3.3.1': dependencies: ajv: 6.12.6 @@ -7360,13 +9614,22 @@ snapshots: '@eslint/js@9.32.0': {} + '@eslint/js@9.38.0': {} + '@eslint/object-schema@2.1.6': {} + '@eslint/object-schema@2.1.7': {} + '@eslint/plugin-kit@0.3.4': dependencies: '@eslint/core': 0.15.1 levn: 0.4.1 + '@eslint/plugin-kit@0.4.0': + dependencies: + '@eslint/core': 0.16.0 + levn: 0.4.1 + '@gar/promisify@1.1.3': {} '@glimmer/compiler@0.92.4': @@ -7384,6 +9647,13 @@ snapshots: '@glimmer/util': 0.94.8 '@glimmer/wire-format': 0.94.8 + '@glimmer/compiler@0.94.11': + dependencies: + '@glimmer/interfaces': 0.94.6 + '@glimmer/syntax': 0.95.0 + '@glimmer/util': 0.94.8 + '@glimmer/wire-format': 0.94.8 + '@glimmer/component@2.0.0': dependencies: '@embroider/addon-shim': 1.10.0 @@ -7446,6 +9716,16 @@ snapshots: '@glimmer/validator': 0.92.3 '@glimmer/vm': 0.92.3 + '@glimmer/manager@0.94.10': + dependencies: + '@glimmer/destroyable': 0.94.8 + '@glimmer/global-context': 0.93.4 + '@glimmer/interfaces': 0.94.6 + '@glimmer/reference': 0.94.9 + '@glimmer/util': 0.94.8 + '@glimmer/validator': 0.95.0 + '@glimmer/vm': 0.94.8 + '@glimmer/manager@0.94.9': dependencies: '@glimmer/destroyable': 0.94.8 @@ -7463,6 +9743,13 @@ snapshots: '@glimmer/util': 0.92.3 '@simple-dom/document': 1.4.0 + '@glimmer/node@0.94.10': + dependencies: + '@glimmer/interfaces': 0.94.6 + '@glimmer/runtime': 0.94.11 + '@glimmer/util': 0.94.8 + '@simple-dom/document': 1.4.0 + '@glimmer/node@0.94.9': dependencies: '@glimmer/interfaces': 0.94.6 @@ -7483,6 +9770,15 @@ snapshots: '@glimmer/vm': 0.92.3 '@glimmer/wire-format': 0.92.3 + '@glimmer/opcode-compiler@0.94.10': + dependencies: + '@glimmer/encoder': 0.93.8 + '@glimmer/interfaces': 0.94.6 + '@glimmer/manager': 0.94.10 + '@glimmer/util': 0.94.8 + '@glimmer/vm': 0.94.8 + '@glimmer/wire-format': 0.94.8 + '@glimmer/opcode-compiler@0.94.9': dependencies: '@glimmer/encoder': 0.93.8 @@ -7509,6 +9805,15 @@ snapshots: '@glimmer/vm': 0.92.3 '@glimmer/wire-format': 0.92.3 + '@glimmer/program@0.94.10': + dependencies: + '@glimmer/interfaces': 0.94.6 + '@glimmer/manager': 0.94.10 + '@glimmer/opcode-compiler': 0.94.10 + '@glimmer/util': 0.94.8 + '@glimmer/vm': 0.94.8 + '@glimmer/wire-format': 0.94.8 + '@glimmer/program@0.94.9': dependencies: '@glimmer/interfaces': 0.94.6 @@ -7533,10 +9838,17 @@ snapshots: '@glimmer/util': 0.94.8 '@glimmer/validator': 0.94.8 - '@glimmer/runtime@0.92.4': + '@glimmer/reference@0.94.9': dependencies: - '@glimmer/destroyable': 0.92.3 - '@glimmer/env': 0.1.7 + '@glimmer/global-context': 0.93.4 + '@glimmer/interfaces': 0.94.6 + '@glimmer/util': 0.94.8 + '@glimmer/validator': 0.95.0 + + '@glimmer/runtime@0.92.4': + dependencies: + '@glimmer/destroyable': 0.92.3 + '@glimmer/env': 0.1.7 '@glimmer/global-context': 0.92.3 '@glimmer/interfaces': 0.92.3 '@glimmer/manager': 0.92.4 @@ -7561,6 +9873,19 @@ snapshots: '@glimmer/validator': 0.94.8 '@glimmer/vm': 0.94.8 + '@glimmer/runtime@0.94.11': + dependencies: + '@glimmer/destroyable': 0.94.8 + '@glimmer/global-context': 0.93.4 + '@glimmer/interfaces': 0.94.6 + '@glimmer/manager': 0.94.10 + '@glimmer/owner': 0.93.4 + '@glimmer/program': 0.94.10 + '@glimmer/reference': 0.94.9 + '@glimmer/util': 0.94.8 + '@glimmer/validator': 0.95.0 + '@glimmer/vm': 0.94.8 + '@glimmer/syntax@0.92.3': dependencies: '@glimmer/interfaces': 0.92.3 @@ -7606,9 +9931,14 @@ snapshots: '@glimmer/global-context': 0.93.4 '@glimmer/interfaces': 0.94.6 - '@glimmer/vm-babel-plugins@0.92.3(@babel/core@7.28.0)': + '@glimmer/validator@0.95.0': dependencies: - babel-plugin-debug-macros: 0.3.4(@babel/core@7.28.0) + '@glimmer/global-context': 0.93.4 + '@glimmer/interfaces': 0.94.6 + + '@glimmer/vm-babel-plugins@0.92.3(@babel/core@7.28.5)': + dependencies: + babel-plugin-debug-macros: 0.3.4(@babel/core@7.28.5) transitivePeerDependencies: - '@babel/core' @@ -7618,6 +9948,12 @@ snapshots: transitivePeerDependencies: - '@babel/core' + '@glimmer/vm-babel-plugins@0.93.5(@babel/core@7.28.5)': + dependencies: + babel-plugin-debug-macros: 0.3.4(@babel/core@7.28.5) + transitivePeerDependencies: + - '@babel/core' + '@glimmer/vm@0.92.3': dependencies: '@glimmer/interfaces': 0.92.3 @@ -7721,6 +10057,15 @@ snapshots: '@humanwhocodes/retry@0.4.3': {} + '@inquirer/external-editor@1.0.2(@types/node@24.1.0)': + dependencies: + chardet: 2.1.0 + iconv-lite: 0.7.0 + optionalDependencies: + '@types/node': 24.1.0 + + '@inquirer/figures@1.0.14': {} + '@isaacs/balanced-match@4.0.1': {} '@isaacs/brace-expansion@5.0.0': @@ -7741,6 +10086,11 @@ snapshots: '@jridgewell/sourcemap-codec': 1.5.4 '@jridgewell/trace-mapping': 0.3.29 + '@jridgewell/remapping@2.3.5': + dependencies: + '@jridgewell/gen-mapping': 0.3.12 + '@jridgewell/trace-mapping': 0.3.29 + '@jridgewell/resolve-uri@3.1.2': {} '@jridgewell/source-map@0.3.10': @@ -7755,6 +10105,13 @@ snapshots: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.4 + '@keyv/bigmap@1.1.0(keyv@5.5.3)': + dependencies: + hookified: 1.12.2 + keyv: 5.5.3 + + '@keyv/serialize@1.1.1': {} + '@lint-todo/utils@13.1.1': dependencies: '@types/eslint': 8.56.12 @@ -7838,7 +10195,7 @@ snapshots: dependencies: which: 5.0.0 - '@nullvoxpopuli/eslint-configs@5.3.0(@babel/core@7.28.0)(@babel/eslint-parser@7.28.0(@babel/core@7.28.0)(eslint@9.32.0(jiti@2.4.2)))(eslint@9.32.0(jiti@2.4.2))(prettier@3.6.2)(typescript@5.8.3)': + '@nullvoxpopuli/eslint-configs@5.3.0(@babel/core@7.28.0)(@babel/eslint-parser@7.28.5(@babel/core@7.28.0)(eslint@9.32.0(jiti@2.4.2)))(eslint@9.32.0(jiti@2.4.2))(prettier@3.6.2)(typescript@5.8.3)': dependencies: '@babel/core': 7.28.0 '@eslint/js': 9.32.0 @@ -7847,7 +10204,7 @@ snapshots: ember-eslint: 0.4.0(@babel/core@7.28.0)(@typescript-eslint/parser@8.38.0(eslint@9.32.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.32.0(jiti@2.4.2))(typescript@5.8.3) eslint: 9.32.0(jiti@2.4.2) eslint-import-resolver-typescript: 4.4.4(eslint-plugin-import@2.32.0)(eslint@9.32.0(jiti@2.4.2)) - eslint-plugin-decorator-position: 6.0.0(@babel/eslint-parser@7.28.0(@babel/core@7.28.0)(eslint@9.32.0(jiti@2.4.2)))(eslint@9.32.0(jiti@2.4.2)) + eslint-plugin-decorator-position: 6.0.0(@babel/eslint-parser@7.28.5(@babel/core@7.28.0)(eslint@9.32.0(jiti@2.4.2)))(eslint@9.32.0(jiti@2.4.2)) eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.38.0(eslint@9.32.0(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-typescript@4.4.4)(eslint@9.32.0(jiti@2.4.2)) eslint-plugin-json: 4.0.1 eslint-plugin-n: 17.21.2(eslint@9.32.0(jiti@2.4.2))(typescript@5.8.3) @@ -7855,7 +10212,7 @@ snapshots: globals: 16.3.0 prettier-plugin-ember-template-tag: 2.1.0(prettier@3.6.2) optionalDependencies: - '@babel/eslint-parser': 7.28.0(@babel/core@7.28.0)(eslint@9.32.0(jiti@2.4.2)) + '@babel/eslint-parser': 7.28.5(@babel/core@7.28.0)(eslint@9.32.0(jiti@2.4.2)) prettier: 3.6.2 transitivePeerDependencies: - eslint-import-resolver-webpack @@ -7936,6 +10293,17 @@ snapshots: '@pnpm/config.env-replace@1.1.0': {} + '@pnpm/constants@1001.3.1': {} + + '@pnpm/error@1000.0.5': + dependencies: + '@pnpm/constants': 1001.3.1 + + '@pnpm/find-workspace-dir@1000.1.3': + dependencies: + '@pnpm/error': 1000.0.5 + find-up: 5.0.0 + '@pnpm/network.ca-file@1.0.2': dependencies: graceful-fs: 4.2.10 @@ -7956,6 +10324,16 @@ snapshots: transitivePeerDependencies: - supports-color + '@rollup/plugin-babel@6.0.4(@babel/core@7.28.5)(rollup@4.46.0)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-module-imports': 7.27.1 + '@rollup/pluginutils': 5.2.0(rollup@4.46.0) + optionalDependencies: + rollup: 4.46.0 + transitivePeerDependencies: + - supports-color + '@rollup/pluginutils@5.2.0(rollup@4.46.0)': dependencies: '@types/estree': 1.0.8 @@ -8101,6 +10479,10 @@ snapshots: dependencies: '@types/node': 24.1.0 + '@types/fs-extra@8.1.5': + dependencies: + '@types/node': 24.1.0 + '@types/glob@9.0.0': dependencies: glob: 11.0.3 @@ -8172,11 +10554,24 @@ snapshots: transitivePeerDependencies: - supports-color + '@typescript-eslint/parser@8.38.0(eslint@9.38.0(jiti@2.4.2))(typescript@5.8.3)': + dependencies: + '@typescript-eslint/scope-manager': 8.38.0 + '@typescript-eslint/types': 8.38.0 + '@typescript-eslint/typescript-estree': 8.38.0(typescript@5.8.3) + '@typescript-eslint/visitor-keys': 8.38.0 + debug: 4.4.1 + eslint: 9.38.0(jiti@2.4.2) + typescript: 5.8.3 + transitivePeerDependencies: + - supports-color + optional: true + '@typescript-eslint/project-service@8.38.0(typescript@5.8.3)': dependencies: '@typescript-eslint/tsconfig-utils': 8.38.0(typescript@5.8.3) '@typescript-eslint/types': 8.38.0 - debug: 4.4.1 + debug: 4.4.3 typescript: 5.8.3 transitivePeerDependencies: - supports-color @@ -8195,7 +10590,7 @@ snapshots: '@typescript-eslint/types': 8.38.0 '@typescript-eslint/typescript-estree': 8.38.0(typescript@5.8.3) '@typescript-eslint/utils': 8.38.0(eslint@9.32.0(jiti@2.4.2))(typescript@5.8.3) - debug: 4.4.1 + debug: 4.4.3 eslint: 9.32.0(jiti@2.4.2) ts-api-utils: 2.1.0(typescript@5.8.3) typescript: 5.8.3 @@ -8210,7 +10605,7 @@ snapshots: '@typescript-eslint/tsconfig-utils': 8.38.0(typescript@5.8.3) '@typescript-eslint/types': 8.38.0 '@typescript-eslint/visitor-keys': 8.38.0 - debug: 4.4.1 + debug: 4.4.3 fast-glob: 3.3.3 is-glob: 4.0.3 minimatch: 9.0.5 @@ -8426,6 +10821,8 @@ snapshots: '@xtuc/long@4.2.2': {} + abbrev@1.1.1: {} + accepts@1.3.8: dependencies: mime-types: 2.1.35 @@ -8443,7 +10840,7 @@ snapshots: agent-base@6.0.2: dependencies: - debug: 4.4.1 + debug: 4.4.3 transitivePeerDependencies: - supports-color @@ -8494,6 +10891,10 @@ snapshots: ansi-escapes@3.2.0: {} + ansi-escapes@4.3.2: + dependencies: + type-fest: 0.21.3 + ansi-html@0.0.7: {} ansi-regex@3.0.1: {} @@ -8514,6 +10915,8 @@ snapshots: ansi-styles@6.2.1: {} + ansicolors@0.2.1: {} + any-promise@1.3.0: {} anymatch@2.0.0: @@ -8523,6 +10926,11 @@ snapshots: transitivePeerDependencies: - supports-color + anymatch@3.1.3: + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.1 + aproba@2.1.0: {} are-we-there-yet@3.0.1: @@ -8562,6 +10970,8 @@ snapshots: is-string: 1.1.1 math-intrinsics: 1.1.0 + array-union@2.1.0: {} + array-unique@0.3.2: {} array.prototype.findlastindex@1.2.6: @@ -8604,6 +11014,8 @@ snapshots: ast-types@0.13.3: {} + astral-regex@2.0.0: {} + async-disk-cache@1.3.5: dependencies: debug: 2.6.9 @@ -8618,7 +11030,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 @@ -8643,6 +11055,8 @@ snapshots: dependencies: lodash: 4.17.21 + async@3.2.6: {} + asynckit@0.4.0: {} at-least-node@1.0.0: {} @@ -8657,9 +11071,9 @@ snapshots: babel-import-util@3.0.1: {} - babel-loader@8.4.1(@babel/core@7.28.0)(webpack@5.100.2): + babel-loader@8.4.1(@babel/core@7.28.5)(webpack@5.100.2): dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.5 find-cache-dir: 3.3.2 loader-utils: 2.0.4 make-dir: 3.1.0 @@ -8671,12 +11085,23 @@ snapshots: '@babel/core': 7.28.0 semver: 5.7.2 + babel-plugin-debug-macros@0.3.4(@babel/core@7.28.5): + dependencies: + '@babel/core': 7.28.5 + semver: 5.7.2 + babel-plugin-debug-macros@1.0.2(@babel/core@7.28.0): dependencies: '@babel/core': 7.28.0 babel-import-util: 2.1.1 semver: 7.7.2 + babel-plugin-debug-macros@2.0.0(@babel/core@7.28.5): + dependencies: + '@babel/core': 7.28.5 + babel-import-util: 2.1.1 + semver: 7.7.2 + babel-plugin-ember-data-packages-polyfill@0.1.2: dependencies: '@ember-data/rfc395-data': 0.0.4 @@ -8729,6 +11154,15 @@ snapshots: transitivePeerDependencies: - supports-color + babel-plugin-polyfill-corejs2@0.4.14(@babel/core@7.28.5): + dependencies: + '@babel/compat-data': 7.28.0 + '@babel/core': 7.28.5 + '@babel/helper-define-polyfill-provider': 0.6.5(@babel/core@7.28.5) + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + babel-plugin-polyfill-corejs3@0.13.0(@babel/core@7.28.0): dependencies: '@babel/core': 7.28.0 @@ -8737,6 +11171,14 @@ snapshots: transitivePeerDependencies: - supports-color + babel-plugin-polyfill-corejs3@0.13.0(@babel/core@7.28.5): + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-define-polyfill-provider': 0.6.5(@babel/core@7.28.5) + core-js-compat: 3.44.0 + transitivePeerDependencies: + - supports-color + babel-plugin-polyfill-regenerator@0.6.5(@babel/core@7.28.0): dependencies: '@babel/core': 7.28.0 @@ -8744,8 +11186,24 @@ snapshots: transitivePeerDependencies: - supports-color + babel-plugin-polyfill-regenerator@0.6.5(@babel/core@7.28.5): + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-define-polyfill-provider': 0.6.5(@babel/core@7.28.5) + transitivePeerDependencies: + - supports-color + babel-plugin-syntax-dynamic-import@6.18.0: {} + babel-remove-types@1.0.2: + dependencies: + '@babel/core': 7.28.5 + '@babel/plugin-syntax-decorators': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-typescript': 7.28.0(@babel/core@7.28.5) + prettier: 2.8.8 + transitivePeerDependencies: + - supports-color + babylon@6.18.0: {} backbone@1.6.1: @@ -8756,6 +11214,10 @@ snapshots: balanced-match@1.0.2: {} + balanced-match@2.0.0: {} + + base64-js@1.5.1: {} + base64id@2.0.0: {} base@0.11.2: @@ -8768,6 +11230,10 @@ snapshots: mixin-deep: 1.3.2 pascalcase: 0.1.1 + basic-auth@2.0.1: + dependencies: + safe-buffer: 5.1.2 + before-after-hook@3.0.2: {} better-path-resolve@1.0.0: @@ -8780,6 +11246,12 @@ snapshots: bind-decorator@1.0.11: {} + bl@4.1.0: + dependencies: + buffer: 5.7.1 + inherits: 2.0.4 + readable-stream: 3.6.2 + blank-object@1.0.2: {} bluebird@3.7.2: {} @@ -8801,6 +11273,13 @@ snapshots: transitivePeerDependencies: - supports-color + body@5.1.0: + dependencies: + continuable-cache: 0.3.1 + error: 7.2.1 + raw-body: 1.1.7 + safe-json-parse: 1.0.1 + brace-expansion@1.1.12: dependencies: balanced-match: 1.0.2 @@ -8831,7 +11310,7 @@ snapshots: broccoli-babel-transpiler@7.8.1: dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.5 '@babel/polyfill': 7.12.1 broccoli-funnel: 2.0.2 broccoli-merge-trees: 3.0.2 @@ -8860,6 +11339,31 @@ snapshots: transitivePeerDependencies: - supports-color + broccoli-babel-transpiler@8.0.2(@babel/core@7.28.5): + dependencies: + '@babel/core': 7.28.5 + broccoli-persistent-filter: 3.1.3 + clone: 2.1.2 + hash-for-dep: 1.5.1 + heimdalljs: 0.2.6 + heimdalljs-logger: 0.1.10 + json-stable-stringify: 1.3.0 + rsvp: 4.8.5 + workerpool: 6.5.1 + transitivePeerDependencies: + - supports-color + + broccoli-caching-writer@3.0.3: + dependencies: + broccoli-kitchen-sink-helpers: 0.3.1 + broccoli-plugin: 1.3.1 + debug: 2.6.9 + rimraf: 2.7.1 + rsvp: 3.6.2 + walk-sync: 0.3.4 + transitivePeerDependencies: + - supports-color + broccoli-concat@4.2.5: dependencies: broccoli-debug: 0.6.5 @@ -8876,6 +11380,21 @@ snapshots: transitivePeerDependencies: - supports-color + broccoli-config-loader@1.0.1: + dependencies: + broccoli-caching-writer: 3.0.3 + transitivePeerDependencies: + - supports-color + + broccoli-config-replace@1.1.2: + dependencies: + broccoli-kitchen-sink-helpers: 0.3.1 + broccoli-plugin: 1.3.1 + debug: 2.6.9 + fs-extra: 0.24.0 + transitivePeerDependencies: + - supports-color + broccoli-debug@0.6.5: dependencies: broccoli-plugin: 1.3.1 @@ -8892,6 +11411,8 @@ snapshots: broccoli-plugin: 1.3.1 mkdirp: 0.5.6 + broccoli-funnel-reducer@1.0.0: {} + broccoli-funnel@2.0.2: dependencies: array-equal: 1.0.2 @@ -8941,6 +11462,13 @@ snapshots: transitivePeerDependencies: - supports-color + broccoli-middleware@2.1.1: + dependencies: + ansi-html: 0.0.7 + handlebars: 4.7.8 + has-ansi: 3.0.0 + mime-types: 2.1.35 + broccoli-node-api@1.7.0: {} broccoli-node-info@2.2.0: {} @@ -8995,6 +11523,13 @@ snapshots: rimraf: 2.7.1 symlink-or-copy: 1.3.1 + broccoli-plugin@2.1.0: + dependencies: + promise-map-series: 0.2.3 + quick-temp: 0.1.8 + rimraf: 2.7.1 + symlink-or-copy: 1.3.1 + broccoli-plugin@4.0.7: dependencies: broccoli-node-api: 1.7.0 @@ -9017,6 +11552,25 @@ snapshots: dependencies: broccoli-node-api: 1.7.0 + broccoli-stew@3.0.0: + dependencies: + broccoli-debug: 0.6.5 + broccoli-funnel: 2.0.2 + broccoli-merge-trees: 3.0.2 + broccoli-persistent-filter: 2.3.1 + broccoli-plugin: 2.1.0 + chalk: 2.4.2 + debug: 4.4.1 + ensure-posix-path: 1.1.1 + fs-extra: 8.1.0 + minimatch: 3.1.2 + resolve: 1.22.10 + rsvp: 4.8.5 + symlink-or-copy: 1.3.1 + walk-sync: 1.1.4 + transitivePeerDependencies: + - supports-color + broccoli@3.5.2: dependencies: '@types/chai': 4.3.20 @@ -9064,6 +11618,13 @@ snapshots: buffer-from@1.1.2: {} + buffer@5.7.1: + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + + bytes@1.0.0: {} + bytes@3.1.2: {} cacache@15.3.0: @@ -9101,6 +11662,15 @@ snapshots: union-value: 1.0.1 unset-value: 1.0.0 + cacheable@2.1.1: + dependencies: + '@cacheable/memoize': 2.0.3 + '@cacheable/memory': 2.0.3 + '@cacheable/utils': 2.1.0 + hookified: 1.12.2 + keyv: 5.5.3 + qified: 0.5.1 + calculate-cache-key-for-tree@2.0.0: dependencies: json-stable-stringify: 1.3.0 @@ -9134,6 +11704,11 @@ snapshots: dependencies: rsvp: 4.8.5 + cardinal@1.0.0: + dependencies: + ansicolors: 0.2.1 + redeyed: 1.0.1 + chalk@2.4.2: dependencies: ansi-styles: 3.2.1 @@ -9147,8 +11722,12 @@ snapshots: chalk@5.4.1: {} + chalk@5.6.2: {} + chardet@0.7.0: {} + chardet@2.1.0: {} + charm@1.0.2: dependencies: inherits: 2.0.4 @@ -9157,6 +11736,8 @@ snapshots: chrome-trace-event@1.0.4: {} + ci-info@4.3.1: {} + class-utils@0.3.6: dependencies: arr-union: 3.1.0 @@ -9164,6 +11745,8 @@ snapshots: isobject: 3.0.1 static-extend: 0.1.2 + clean-base-url@1.0.0: {} + clean-stack@2.2.0: {} clean-up-path@1.0.0: {} @@ -9172,6 +11755,10 @@ snapshots: dependencies: restore-cursor: 2.0.0 + cli-cursor@3.1.0: + dependencies: + restore-cursor: 3.1.0 + cli-highlight@2.1.11: dependencies: chalk: 4.1.2 @@ -9183,8 +11770,16 @@ snapshots: cli-spinners@2.9.2: {} + cli-table@0.3.11: + dependencies: + colors: 1.0.3 + cli-width@2.2.1: {} + cli-width@3.0.0: {} + + cli-width@4.1.0: {} + cliui@7.0.4: dependencies: string-width: 4.2.3 @@ -9220,6 +11815,10 @@ snapshots: color-support@1.1.3: {} + colord@2.9.3: {} + + colors@1.0.3: {} + combined-stream@1.0.8: dependencies: delayed-stream: 1.0.0 @@ -9232,6 +11831,8 @@ snapshots: common-ancestor-path@1.0.1: {} + common-tags@1.8.2: {} + commondir@1.0.1: {} component-emitter@1.3.1: {} @@ -9266,11 +11867,29 @@ snapshots: tree-kill: 1.2.2 yargs: 17.7.2 + concurrently@9.2.1: + dependencies: + chalk: 4.1.2 + rxjs: 7.8.2 + shell-quote: 1.8.3 + supports-color: 8.1.1 + tree-kill: 1.2.2 + yargs: 17.7.2 + config-chain@1.1.13: dependencies: ini: 1.3.8 proto-list: 1.2.4 + configstore@5.0.1: + dependencies: + dot-prop: 5.3.0 + graceful-fs: 4.2.11 + make-dir: 3.1.0 + unique-string: 2.0.0 + write-file-atomic: 3.0.3 + xdg-basedir: 4.0.0 + connect@3.7.0: dependencies: debug: 2.6.9 @@ -9311,6 +11930,8 @@ snapshots: content-type@1.0.5: {} + continuable-cache@0.3.1: {} + convert-source-map@2.0.0: {} cookie-signature@1.0.6: {} @@ -9327,6 +11948,10 @@ snapshots: core-js@2.6.12: {} + core-object@3.1.5: + dependencies: + chalk: 2.4.2 + core-util-is@1.0.3: {} cors@2.8.5: @@ -9357,6 +11982,10 @@ snapshots: shebang-command: 2.0.0 which: 2.0.2 + crypto-random-string@2.0.0: {} + + css-functions-list@3.2.3: {} + css-loader@5.2.7(webpack@5.100.2): dependencies: icss-utils: 5.1.0(postcss@8.5.6) @@ -9383,6 +12012,8 @@ snapshots: '@asamuzakjp/css-color': 3.2.0 rrweb-cssom: 0.8.0 + dag-map@2.0.2: {} + data-urls@5.0.0: dependencies: whatwg-mimetype: 4.0.0 @@ -9422,6 +12053,10 @@ snapshots: dependencies: ms: 2.1.3 + debug@4.4.3: + dependencies: + ms: 2.1.3 + decimal.js@10.6.0: {} decode-uri-component@0.2.2: {} @@ -9433,6 +12068,13 @@ snapshots: transitivePeerDependencies: - '@babel/core' + decorator-transforms@2.3.0(@babel/core@7.28.5): + dependencies: + '@babel/plugin-syntax-decorators': 7.27.1(@babel/core@7.28.5) + babel-import-util: 3.0.1 + transitivePeerDependencies: + - '@babel/core' + deep-extend@0.6.0: {} deep-is@0.1.4: {} @@ -9478,6 +12120,16 @@ snapshots: detect-file@1.0.0: {} + detect-indent@7.0.2: {} + + detect-newline@4.0.1: {} + + diff@7.0.0: {} + + dir-glob@3.0.1: + dependencies: + path-type: 4.0.0 + doctrine@2.1.0: dependencies: esutils: 2.0.3 @@ -9489,6 +12141,10 @@ snapshots: no-case: 3.0.4 tslib: 2.8.1 + dot-prop@5.3.0: + dependencies: + is-obj: 2.0.0 + dunder-proto@1.0.1: dependencies: call-bind-apply-helpers: 1.0.2 @@ -9508,17 +12164,17 @@ snapshots: electron-to-chromium@1.5.191: {} - ember-auto-import@2.10.0(@glint/template@1.6.1)(webpack@5.100.2): + ember-auto-import@2.11.1(@glint/template@1.6.1)(webpack@5.100.2): 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) - '@embroider/macros': 1.18.1(@glint/template@1.6.1) + '@babel/core': 7.28.5 + '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.28.5) + '@babel/plugin-proposal-decorators': 7.28.0(@babel/core@7.28.5) + '@babel/plugin-proposal-private-methods': 7.18.6(@babel/core@7.28.5) + '@babel/plugin-transform-class-static-block': 7.27.1(@babel/core@7.28.5) + '@babel/preset-env': 7.28.0(@babel/core@7.28.5) + '@embroider/macros': 1.19.2(@glint/template@1.6.1) '@embroider/shared-internals': 2.9.1 - babel-loader: 8.4.1(@babel/core@7.28.0)(webpack@5.100.2) + babel-loader: 8.4.1(@babel/core@7.28.5)(webpack@5.100.2) 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 @@ -9555,20 +12211,20 @@ snapshots: ember-cli-babel@7.26.11: dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.5 '@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.28.5) + '@babel/plugin-proposal-decorators': 7.28.0(@babel/core@7.28.5) + '@babel/plugin-proposal-private-methods': 7.18.6(@babel/core@7.28.5) + '@babel/plugin-proposal-private-property-in-object': 7.21.11(@babel/core@7.28.5) + '@babel/plugin-transform-modules-amd': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-runtime': 7.28.5(@babel/core@7.28.5) + '@babel/plugin-transform-typescript': 7.28.0(@babel/core@7.28.5) '@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.28.5) '@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.28.5) 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 @@ -9598,7 +12254,7 @@ snapshots: '@babel/plugin-proposal-private-property-in-object': 7.21.11(@babel/core@7.28.0) '@babel/plugin-transform-class-static-block': 7.27.1(@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-runtime': 7.28.5(@babel/core@7.28.0) '@babel/plugin-transform-typescript': 7.28.0(@babel/core@7.28.0) '@babel/preset-env': 7.28.0(@babel/core@7.28.0) '@babel/runtime': 7.12.18 @@ -9621,8 +12277,70 @@ snapshots: transitivePeerDependencies: - supports-color + ember-cli-babel@8.2.0(@babel/core@7.28.5): + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-compilation-targets': 7.27.2 + '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.28.5) + '@babel/plugin-proposal-decorators': 7.28.0(@babel/core@7.28.5) + '@babel/plugin-proposal-private-methods': 7.18.6(@babel/core@7.28.5) + '@babel/plugin-proposal-private-property-in-object': 7.21.11(@babel/core@7.28.5) + '@babel/plugin-transform-class-static-block': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-modules-amd': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-runtime': 7.28.5(@babel/core@7.28.5) + '@babel/plugin-transform-typescript': 7.28.0(@babel/core@7.28.5) + '@babel/preset-env': 7.28.0(@babel/core@7.28.5) + '@babel/runtime': 7.12.18 + amd-name-resolver: 1.3.1 + babel-plugin-debug-macros: 0.3.4(@babel/core@7.28.5) + babel-plugin-ember-data-packages-polyfill: 0.1.2 + babel-plugin-ember-modules-api-polyfill: 3.5.0 + babel-plugin-module-resolver: 5.0.2 + broccoli-babel-transpiler: 8.0.2(@babel/core@7.28.5) + broccoli-debug: 0.6.5 + broccoli-funnel: 3.0.8 + broccoli-source: 3.0.1 + calculate-cache-key-for-tree: 2.0.0 + clone: 2.1.2 + ember-cli-babel-plugin-helpers: 1.1.1 + ember-cli-version-checker: 5.1.2 + ensure-posix-path: 1.1.1 + resolve-package-path: 4.0.3 + semver: 7.7.2 + transitivePeerDependencies: + - supports-color + + ember-cli-deprecation-workflow@3.4.0(ember-source@6.8.0(@glimmer/component@2.0.0)(rsvp@4.8.5)): + dependencies: + '@babel/core': 7.28.5 + ember-cli-babel: 8.2.0(@babel/core@7.28.5) + ember-source: 6.8.0(@glimmer/component@2.0.0)(rsvp@4.8.5) + transitivePeerDependencies: + - supports-color + ember-cli-get-component-path-option@1.0.0: {} + ember-cli-htmlbars@5.7.2: + dependencies: + '@ember/edition-utils': 1.2.0 + babel-plugin-htmlbars-inline-precompile: 5.3.1 + broccoli-debug: 0.6.5 + broccoli-persistent-filter: 3.1.3 + broccoli-plugin: 4.0.7 + common-tags: 1.8.2 + ember-cli-babel-plugin-helpers: 1.1.1 + ember-cli-version-checker: 5.1.2 + fs-tree-diff: 2.0.1 + hash-for-dep: 1.5.1 + heimdalljs-logger: 0.1.10 + json-stable-stringify: 1.3.0 + semver: 7.7.2 + silent-error: 1.1.1 + strip-bom: 4.0.0 + walk-sync: 2.2.0 + transitivePeerDependencies: + - supports-color + ember-cli-is-package-missing@1.0.0: {} ember-cli-normalize-entity-name@1.0.0: @@ -9633,6 +12351,13 @@ snapshots: ember-cli-path-utils@1.0.0: {} + ember-cli-preprocess-registry@5.0.1: + dependencies: + broccoli-funnel: 3.0.8 + debug: 4.4.1 + transitivePeerDependencies: + - supports-color + ember-cli-string-utils@1.1.0: {} ember-cli-typescript-blueprint-polyfill@0.1.0: @@ -9658,11 +12383,158 @@ snapshots: transitivePeerDependencies: - supports-color + ember-cli@6.8.0(@types/node@24.1.0)(handlebars@4.7.8)(underscore@1.13.7): + dependencies: + '@ember-tooling/blueprint-blueprint': 0.2.1 + '@ember-tooling/blueprint-model': 0.4.1 + '@ember-tooling/classic-build-addon-blueprint': 6.8.0 + '@ember-tooling/classic-build-app-blueprint': 6.8.0 + '@ember/app-blueprint': 6.8.2 + '@pnpm/find-workspace-dir': 1000.1.3 + babel-remove-types: 1.0.2 + broccoli: 3.5.2 + broccoli-concat: 4.2.5 + broccoli-config-loader: 1.0.1 + broccoli-config-replace: 1.1.2 + broccoli-debug: 0.6.5 + broccoli-funnel: 3.0.8 + broccoli-funnel-reducer: 1.0.0 + broccoli-merge-trees: 4.2.0 + broccoli-middleware: 2.1.1 + broccoli-slow-trees: 3.1.0 + broccoli-source: 3.0.1 + broccoli-stew: 3.0.0 + calculate-cache-key-for-tree: 2.0.0 + capture-exit: 2.0.0 + chalk: 4.1.2 + ci-info: 4.3.1 + clean-base-url: 1.0.0 + compression: 1.8.1 + configstore: 5.0.1 + console-ui: 3.1.2 + content-tag: 3.1.3 + core-object: 3.1.5 + dag-map: 2.0.2 + diff: 7.0.0 + ember-cli-is-package-missing: 1.0.0 + ember-cli-normalize-entity-name: 1.0.0 + ember-cli-preprocess-registry: 5.0.1 + ember-cli-string-utils: 1.1.0 + ensure-posix-path: 1.1.1 + execa: 5.1.1 + exit: 0.1.2 + express: 4.21.2 + filesize: 10.1.6 + find-up: 5.0.0 + find-yarn-workspace-root: 2.0.0 + fixturify-project: 2.1.1 + fs-extra: 11.3.0 + fs-tree-diff: 2.0.1 + get-caller-file: 2.0.5 + git-repo-info: 2.1.1 + glob: 8.1.0 + heimdalljs: 0.2.6 + heimdalljs-fs-monitor: 1.1.2 + heimdalljs-graph: 1.0.0 + heimdalljs-logger: 0.1.10 + http-proxy: 1.18.1 + inflection: 2.0.1 + inquirer: 9.3.8(@types/node@24.1.0) + is-git-url: 1.0.0 + is-language-code: 3.1.0 + isbinaryfile: 5.0.6 + lodash: 4.17.21 + markdown-it: 14.1.0 + markdown-it-terminal: 0.4.0(markdown-it@14.1.0) + minimatch: 7.4.6 + morgan: 1.10.1 + nopt: 3.0.6 + npm-package-arg: 12.0.2 + os-locale: 5.0.0 + p-defer: 3.0.0 + portfinder: 1.0.38 + promise-map-series: 0.3.0 + promise.hash.helper: 1.0.8 + quick-temp: 0.1.8 + resolve: 1.22.10 + resolve-package-path: 4.0.3 + safe-stable-stringify: 2.5.0 + sane: 5.0.1 + semver: 7.7.2 + silent-error: 1.1.1 + sort-package-json: 2.15.1 + symlink-or-copy: 1.3.1 + temp: 0.9.4 + testem: 3.16.0(handlebars@4.7.8)(underscore@1.13.7) + tiny-lr: 2.0.0 + tree-sync: 2.1.0 + walk-sync: 3.0.0 + watch-detector: 1.0.2 + workerpool: 9.3.4 + yam: 1.0.0 + transitivePeerDependencies: + - '@types/node' + - arc-templates + - atpl + - babel-core + - bracket-template + - bufferutil + - coffee-script + - debug + - dot + - dust + - dustjs-helpers + - dustjs-linkedin + - eco + - ect + - ejs + - haml-coffee + - hamlet + - hamljs + - 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 + - twig + - twing + - underscore + - utf-8-validate + - vash + - velocityjs + - walrus + - whiskers + ember-eslint-parser@0.5.10(@babel/core@7.28.0)(@typescript-eslint/parser@8.38.0(eslint@9.32.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.32.0(jiti@2.4.2)): dependencies: '@babel/core': 7.28.0 - '@babel/eslint-parser': 7.28.0(@babel/core@7.28.0)(eslint@9.32.0(jiti@2.4.2)) - '@glimmer/syntax': 0.94.9 + '@babel/eslint-parser': 7.28.5(@babel/core@7.28.0)(eslint@9.32.0(jiti@2.4.2)) + '@glimmer/syntax': 0.95.0 content-tag: 2.0.3 eslint-scope: 7.2.2 html-tags: 3.3.1 @@ -9673,15 +12545,30 @@ snapshots: transitivePeerDependencies: - eslint + ember-eslint-parser@0.5.10(@babel/core@7.28.5)(@typescript-eslint/parser@8.38.0(eslint@9.38.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.38.0(jiti@2.4.2)): + dependencies: + '@babel/core': 7.28.5 + '@babel/eslint-parser': 7.28.5(@babel/core@7.28.5)(eslint@9.38.0(jiti@2.4.2)) + '@glimmer/syntax': 0.95.0 + content-tag: 2.0.3 + eslint-scope: 7.2.2 + html-tags: 3.3.1 + mathml-tag-names: 2.1.3 + svg-tags: 1.0.0 + optionalDependencies: + '@typescript-eslint/parser': 8.38.0(eslint@9.38.0(jiti@2.4.2))(typescript@5.8.3) + transitivePeerDependencies: + - eslint + ember-eslint@0.4.0(@babel/core@7.28.0)(@typescript-eslint/parser@8.38.0(eslint@9.32.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.32.0(jiti@2.4.2))(typescript@5.8.3): dependencies: - '@babel/eslint-parser': 7.28.0(@babel/core@7.28.0)(eslint@9.32.0(jiti@2.4.2)) - '@eslint/js': 9.32.0 + '@babel/eslint-parser': 7.28.5(@babel/core@7.28.0)(eslint@9.32.0(jiti@2.4.2)) + '@eslint/js': 9.38.0 eslint-config-prettier: 10.1.8(eslint@9.32.0(jiti@2.4.2)) - eslint-plugin-ember: 12.7.0(@babel/core@7.28.0)(@typescript-eslint/parser@8.38.0(eslint@9.32.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.32.0(jiti@2.4.2)) - eslint-plugin-n: 17.21.2(eslint@9.32.0(jiti@2.4.2))(typescript@5.8.3) + eslint-plugin-ember: 12.7.4(@babel/core@7.28.0)(@typescript-eslint/parser@8.38.0(eslint@9.32.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.32.0(jiti@2.4.2)) + eslint-plugin-n: 17.23.1(eslint@9.32.0(jiti@2.4.2))(typescript@5.8.3) eslint-plugin-qunit: 8.2.5(eslint@9.32.0(jiti@2.4.2)) - globals: 16.3.0 + globals: 16.4.0 typescript-eslint: 8.38.0(eslint@9.32.0(jiti@2.4.2))(typescript@5.8.3) transitivePeerDependencies: - '@babel/core' @@ -9690,6 +12577,35 @@ snapshots: - supports-color - typescript + ember-load-initializers@3.0.1(ember-source@6.8.0(@glimmer/component@2.0.0)(rsvp@4.8.5)): + dependencies: + ember-source: 6.8.0(@glimmer/component@2.0.0)(rsvp@4.8.5) + + ember-modifier@4.2.2(@babel/core@7.28.5): + dependencies: + '@embroider/addon-shim': 1.10.0 + decorator-transforms: 2.3.0(@babel/core@7.28.5) + ember-cli-normalize-entity-name: 1.0.0 + ember-cli-string-utils: 1.1.0 + transitivePeerDependencies: + - '@babel/core' + - supports-color + + ember-page-title@8.2.4(ember-source@6.8.0(@glimmer/component@2.0.0)(rsvp@4.8.5)): + dependencies: + '@embroider/addon-shim': 1.10.0 + '@simple-dom/document': 1.4.0 + ember-source: 6.8.0(@glimmer/component@2.0.0)(rsvp@4.8.5) + transitivePeerDependencies: + - supports-color + + ember-page-title@9.0.3: + dependencies: + '@embroider/addon-shim': 1.10.0 + '@simple-dom/document': 1.4.0 + transitivePeerDependencies: + - supports-color + ember-qunit@9.0.3(@ember/test-helpers@5.2.2(@babel/core@7.28.0)(@glint/template@1.6.1))(@glint/template@1.6.1)(qunit@2.24.1): dependencies: '@ember/test-helpers': 5.2.2(@babel/core@7.28.0)(@glint/template@1.6.1) @@ -9701,6 +12617,17 @@ snapshots: - '@glint/template' - supports-color + ember-qunit@9.0.4(@ember/test-helpers@5.4.0(@babel/core@7.28.5)(@glint/template@1.6.1))(@glint/template@1.6.1)(qunit@2.24.2): + dependencies: + '@ember/test-helpers': 5.4.0(@babel/core@7.28.5)(@glint/template@1.6.1) + '@embroider/addon-shim': 1.10.0 + '@embroider/macros': 1.19.2(@glint/template@1.6.1) + qunit: 2.24.2 + qunit-theme-ember: 1.0.0 + transitivePeerDependencies: + - '@glint/template' + - supports-color + ember-resolver@13.1.1: dependencies: ember-cli-babel: 7.26.11 @@ -9717,9 +12644,9 @@ snapshots: transitivePeerDependencies: - supports-color - ember-source@6.1.0-beta.1(@glimmer/component@2.0.0)(@glint/template@1.6.1)(rsvp@4.8.5)(webpack@5.100.2): + ember-source@6.1.0-beta.1(@glimmer/component@2.0.0)(@glint/template@1.6.1)(rsvp@4.8.5): dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.5 '@ember/edition-utils': 1.2.0 '@embroider/addon-shim': 1.10.0 '@glimmer/compiler': 0.92.4 @@ -9739,15 +12666,15 @@ snapshots: '@glimmer/util': 0.92.3 '@glimmer/validator': 0.92.3 '@glimmer/vm': 0.92.3 - '@glimmer/vm-babel-plugins': 0.92.3(@babel/core@7.28.0) + '@glimmer/vm-babel-plugins': 0.92.3(@babel/core@7.28.5) '@simple-dom/interface': 1.4.0 backburner.js: 2.8.0 broccoli-file-creator: 2.1.1 broccoli-funnel: 3.0.8 broccoli-merge-trees: 4.2.0 chalk: 4.1.2 - ember-auto-import: 2.10.0(@glint/template@1.6.1)(webpack@5.100.2) - ember-cli-babel: 8.2.0(@babel/core@7.28.0) + ember-auto-import: 2.11.1(@glint/template@1.6.1)(webpack@5.100.2) + ember-cli-babel: 8.2.0(@babel/core@7.28.5) ember-cli-get-component-path-option: 1.0.0 ember-cli-is-package-missing: 1.0.0 ember-cli-normalize-entity-name: 1.0.0 @@ -9787,16 +12714,63 @@ snapshots: '@glimmer/runtime': 0.94.10 '@glimmer/syntax': 0.94.9 '@glimmer/util': 0.94.8 - '@glimmer/validator': 0.94.8 + '@glimmer/validator': 0.94.8 + '@glimmer/vm': 0.94.8 + '@glimmer/vm-babel-plugins': 0.93.4(@babel/core@7.28.0) + '@simple-dom/interface': 1.4.0 + backburner.js: 2.8.0 + broccoli-file-creator: 2.1.1 + broccoli-funnel: 3.0.8 + broccoli-merge-trees: 4.2.0 + chalk: 4.1.2 + ember-cli-babel: 8.2.0(@babel/core@7.28.0) + ember-cli-get-component-path-option: 1.0.0 + ember-cli-is-package-missing: 1.0.0 + 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-blueprint-polyfill: 0.1.0 + ember-cli-version-checker: 5.1.2 + ember-router-generator: 2.0.0 + inflection: 2.0.1 + route-recognizer: 0.3.4 + router_js: 8.0.6(route-recognizer@0.3.4)(rsvp@4.8.5) + semver: 7.7.2 + silent-error: 1.1.1 + simple-html-tokenizer: 0.5.11 + transitivePeerDependencies: + - rsvp + - supports-color + + ember-source@6.8.0(@glimmer/component@2.0.0)(rsvp@4.8.5): + dependencies: + '@babel/core': 7.28.5 + '@ember/edition-utils': 1.2.0 + '@embroider/addon-shim': 1.10.0 + '@glimmer/compiler': 0.94.11 + '@glimmer/component': 2.0.0 + '@glimmer/destroyable': 0.94.8 + '@glimmer/global-context': 0.93.4 + '@glimmer/interfaces': 0.94.6 + '@glimmer/manager': 0.94.10 + '@glimmer/node': 0.94.10 + '@glimmer/opcode-compiler': 0.94.10 + '@glimmer/owner': 0.93.4 + '@glimmer/program': 0.94.10 + '@glimmer/reference': 0.94.9 + '@glimmer/runtime': 0.94.11 + '@glimmer/syntax': 0.95.0 + '@glimmer/util': 0.94.8 + '@glimmer/validator': 0.95.0 '@glimmer/vm': 0.94.8 - '@glimmer/vm-babel-plugins': 0.93.4(@babel/core@7.28.0) + '@glimmer/vm-babel-plugins': 0.93.5(@babel/core@7.28.5) '@simple-dom/interface': 1.4.0 backburner.js: 2.8.0 broccoli-file-creator: 2.1.1 broccoli-funnel: 3.0.8 broccoli-merge-trees: 4.2.0 chalk: 4.1.2 - ember-cli-babel: 8.2.0(@babel/core@7.28.0) + ember-cli-babel: 8.2.0(@babel/core@7.28.5) ember-cli-get-component-path-option: 1.0.0 ember-cli-is-package-missing: 1.0.0 ember-cli-normalize-entity-name: 1.0.0 @@ -9820,6 +12794,24 @@ snapshots: '@lint-todo/utils': 13.1.1 content-tag: 3.1.3 + ember-template-lint@7.9.3: + dependencies: + '@lint-todo/utils': 13.1.1 + content-tag: 3.1.3 + + ember-tracked-storage-polyfill@1.0.0: + dependencies: + ember-cli-babel: 7.26.11 + ember-cli-htmlbars: 5.7.2 + transitivePeerDependencies: + - supports-color + + ember-welcome-page@7.0.2: + dependencies: + '@embroider/addon-shim': 1.10.0 + transitivePeerDependencies: + - supports-color + emoji-regex@8.0.0: {} emoji-regex@9.2.2: {} @@ -9864,6 +12856,8 @@ snapshots: ensure-posix-path@1.1.1: {} + entities@4.5.0: {} + entities@6.0.1: {} env-paths@2.2.1: {} @@ -9876,6 +12870,10 @@ snapshots: dependencies: is-arrayish: 0.2.1 + error@7.2.1: + dependencies: + string-template: 0.2.1 + es-abstract@1.24.0: dependencies: array-buffer-byte-length: 1.0.2 @@ -10002,10 +13000,19 @@ snapshots: eslint: 9.32.0(jiti@2.4.2) semver: 7.7.2 + eslint-compat-utils@0.5.1(eslint@9.38.0(jiti@2.4.2)): + dependencies: + eslint: 9.38.0(jiti@2.4.2) + semver: 7.7.2 + eslint-config-prettier@10.1.8(eslint@9.32.0(jiti@2.4.2)): dependencies: eslint: 9.32.0(jiti@2.4.2) + eslint-config-prettier@10.1.8(eslint@9.38.0(jiti@2.4.2)): + dependencies: + eslint: 9.38.0(jiti@2.4.2) + eslint-import-context@0.1.9(unrs-resolver@1.11.1): dependencies: get-tsconfig: 4.10.1 @@ -10047,20 +13054,30 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-plugin-decorator-position@6.0.0(@babel/eslint-parser@7.28.0(@babel/core@7.28.0)(eslint@9.32.0(jiti@2.4.2)))(eslint@9.32.0(jiti@2.4.2)): + eslint-module-utils@2.12.1(@typescript-eslint/parser@8.38.0(eslint@9.38.0(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint@9.38.0(jiti@2.4.2)): dependencies: - '@babel/core': 7.28.0 - '@babel/plugin-proposal-decorators': 7.28.0(@babel/core@7.28.0) + debug: 3.2.7 + optionalDependencies: + '@typescript-eslint/parser': 8.38.0(eslint@9.38.0(jiti@2.4.2))(typescript@5.8.3) + eslint: 9.38.0(jiti@2.4.2) + eslint-import-resolver-node: 0.3.9 + transitivePeerDependencies: + - supports-color + + eslint-plugin-decorator-position@6.0.0(@babel/eslint-parser@7.28.5(@babel/core@7.28.0)(eslint@9.32.0(jiti@2.4.2)))(eslint@9.32.0(jiti@2.4.2)): + dependencies: + '@babel/core': 7.28.5 + '@babel/plugin-proposal-decorators': 7.28.0(@babel/core@7.28.5) '@ember-data/rfc395-data': 0.0.4 ember-rfc176-data: 0.3.18 eslint: 9.32.0(jiti@2.4.2) snake-case: 3.0.4 optionalDependencies: - '@babel/eslint-parser': 7.28.0(@babel/core@7.28.0)(eslint@9.32.0(jiti@2.4.2)) + '@babel/eslint-parser': 7.28.5(@babel/core@7.28.0)(eslint@9.32.0(jiti@2.4.2)) transitivePeerDependencies: - supports-color - eslint-plugin-ember@12.7.0(@babel/core@7.28.0)(@typescript-eslint/parser@8.38.0(eslint@9.32.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.32.0(jiti@2.4.2)): + eslint-plugin-ember@12.7.4(@babel/core@7.28.0)(@typescript-eslint/parser@8.38.0(eslint@9.32.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.32.0(jiti@2.4.2)): dependencies: '@ember-data/rfc395-data': 0.0.4 css-tree: 3.1.0 @@ -10078,6 +13095,24 @@ snapshots: transitivePeerDependencies: - '@babel/core' + eslint-plugin-ember@12.7.4(@babel/core@7.28.5)(@typescript-eslint/parser@8.38.0(eslint@9.38.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.38.0(jiti@2.4.2)): + dependencies: + '@ember-data/rfc395-data': 0.0.4 + css-tree: 3.1.0 + ember-eslint-parser: 0.5.10(@babel/core@7.28.5)(@typescript-eslint/parser@8.38.0(eslint@9.38.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.38.0(jiti@2.4.2)) + ember-rfc176-data: 0.3.18 + eslint: 9.38.0(jiti@2.4.2) + eslint-utils: 3.0.0(eslint@9.38.0(jiti@2.4.2)) + estraverse: 5.3.0 + lodash.camelcase: 4.3.0 + lodash.kebabcase: 4.1.1 + requireindex: 1.2.0 + snake-case: 3.0.4 + optionalDependencies: + '@typescript-eslint/parser': 8.38.0(eslint@9.38.0(jiti@2.4.2))(typescript@5.8.3) + transitivePeerDependencies: + - '@babel/core' + eslint-plugin-es-x@7.8.0(eslint@9.32.0(jiti@2.4.2)): dependencies: '@eslint-community/eslint-utils': 4.7.0(eslint@9.32.0(jiti@2.4.2)) @@ -10085,6 +13120,13 @@ snapshots: eslint: 9.32.0(jiti@2.4.2) eslint-compat-utils: 0.5.1(eslint@9.32.0(jiti@2.4.2)) + eslint-plugin-es-x@7.8.0(eslint@9.38.0(jiti@2.4.2)): + dependencies: + '@eslint-community/eslint-utils': 4.7.0(eslint@9.38.0(jiti@2.4.2)) + '@eslint-community/regexpp': 4.12.1 + eslint: 9.38.0(jiti@2.4.2) + eslint-compat-utils: 0.5.1(eslint@9.38.0(jiti@2.4.2)) + eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.38.0(eslint@9.32.0(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-typescript@4.4.4)(eslint@9.32.0(jiti@2.4.2)): dependencies: '@rtsao/scc': 1.1.0 @@ -10114,6 +13156,35 @@ snapshots: - eslint-import-resolver-webpack - supports-color + eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.38.0(eslint@9.38.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.38.0(jiti@2.4.2)): + dependencies: + '@rtsao/scc': 1.1.0 + array-includes: 3.1.9 + array.prototype.findlastindex: 1.2.6 + array.prototype.flat: 1.3.3 + array.prototype.flatmap: 1.3.3 + debug: 3.2.7 + doctrine: 2.1.0 + eslint: 9.38.0(jiti@2.4.2) + eslint-import-resolver-node: 0.3.9 + eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.38.0(eslint@9.38.0(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint@9.38.0(jiti@2.4.2)) + hasown: 2.0.2 + is-core-module: 2.16.1 + is-glob: 4.0.3 + minimatch: 3.1.2 + object.fromentries: 2.0.8 + object.groupby: 1.0.3 + object.values: 1.2.1 + semver: 6.3.1 + string.prototype.trimend: 1.0.9 + tsconfig-paths: 3.15.0 + optionalDependencies: + '@typescript-eslint/parser': 8.38.0(eslint@9.38.0(jiti@2.4.2))(typescript@5.8.3) + transitivePeerDependencies: + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack + - supports-color + eslint-plugin-json@4.0.1: dependencies: lodash: 4.17.21 @@ -10134,6 +13205,36 @@ snapshots: transitivePeerDependencies: - typescript + eslint-plugin-n@17.23.1(eslint@9.32.0(jiti@2.4.2))(typescript@5.8.3): + dependencies: + '@eslint-community/eslint-utils': 4.7.0(eslint@9.32.0(jiti@2.4.2)) + enhanced-resolve: 5.18.2 + eslint: 9.32.0(jiti@2.4.2) + eslint-plugin-es-x: 7.8.0(eslint@9.32.0(jiti@2.4.2)) + get-tsconfig: 4.10.1 + globals: 15.15.0 + globrex: 0.1.2 + ignore: 5.3.2 + semver: 7.7.2 + ts-declaration-location: 1.0.7(typescript@5.8.3) + transitivePeerDependencies: + - typescript + + eslint-plugin-n@17.23.1(eslint@9.38.0(jiti@2.4.2))(typescript@5.8.3): + dependencies: + '@eslint-community/eslint-utils': 4.7.0(eslint@9.38.0(jiti@2.4.2)) + enhanced-resolve: 5.18.2 + eslint: 9.38.0(jiti@2.4.2) + eslint-plugin-es-x: 7.8.0(eslint@9.38.0(jiti@2.4.2)) + get-tsconfig: 4.10.1 + globals: 15.15.0 + globrex: 0.1.2 + ignore: 5.3.2 + semver: 7.7.2 + ts-declaration-location: 1.0.7(typescript@5.8.3) + transitivePeerDependencies: + - typescript + eslint-plugin-qunit@8.2.5(eslint@9.32.0(jiti@2.4.2)): dependencies: eslint-utils: 3.0.0(eslint@9.32.0(jiti@2.4.2)) @@ -10141,6 +13242,13 @@ snapshots: transitivePeerDependencies: - eslint + eslint-plugin-qunit@8.2.5(eslint@9.38.0(jiti@2.4.2)): + dependencies: + eslint-utils: 3.0.0(eslint@9.38.0(jiti@2.4.2)) + requireindex: 1.2.0 + transitivePeerDependencies: + - eslint + eslint-plugin-simple-import-sort@12.1.1(eslint@9.32.0(jiti@2.4.2)): dependencies: eslint: 9.32.0(jiti@2.4.2) @@ -10165,6 +13273,11 @@ snapshots: eslint: 9.32.0(jiti@2.4.2) eslint-visitor-keys: 2.1.0 + eslint-utils@3.0.0(eslint@9.38.0(jiti@2.4.2)): + dependencies: + eslint: 9.38.0(jiti@2.4.2) + eslint-visitor-keys: 2.1.0 + eslint-visitor-keys@2.1.0: {} eslint-visitor-keys@3.4.3: {} @@ -10213,6 +13326,47 @@ snapshots: transitivePeerDependencies: - supports-color + eslint@9.38.0(jiti@2.4.2): + dependencies: + '@eslint-community/eslint-utils': 4.9.0(eslint@9.38.0(jiti@2.4.2)) + '@eslint-community/regexpp': 4.12.1 + '@eslint/config-array': 0.21.1 + '@eslint/config-helpers': 0.4.1 + '@eslint/core': 0.16.0 + '@eslint/eslintrc': 3.3.1 + '@eslint/js': 9.38.0 + '@eslint/plugin-kit': 0.4.0 + '@humanfs/node': 0.16.6 + '@humanwhocodes/module-importer': 1.0.1 + '@humanwhocodes/retry': 0.4.3 + '@types/estree': 1.0.8 + ajv: 6.12.6 + chalk: 4.1.2 + cross-spawn: 7.0.6 + debug: 4.4.1 + escape-string-regexp: 4.0.0 + eslint-scope: 8.4.0 + eslint-visitor-keys: 4.2.1 + espree: 10.4.0 + esquery: 1.6.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 8.0.0 + find-up: 5.0.0 + glob-parent: 6.0.2 + ignore: 5.3.2 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + json-stable-stringify-without-jsonify: 1.0.1 + lodash.merge: 4.6.2 + minimatch: 3.1.2 + natural-compare: 1.4.0 + optionator: 0.9.4 + optionalDependencies: + jiti: 2.4.2 + transitivePeerDependencies: + - supports-color + esm@3.2.25: {} espree@10.4.0: @@ -10221,6 +13375,8 @@ snapshots: acorn-jsx: 5.3.2(acorn@8.15.0) eslint-visitor-keys: 4.2.1 + esprima@3.0.0: {} + esprima@4.0.1: {} esquery@1.6.0: @@ -10259,6 +13415,18 @@ snapshots: signal-exit: 3.0.7 strip-eof: 1.0.0 + execa@4.1.0: + dependencies: + cross-spawn: 7.0.6 + get-stream: 5.2.0 + human-signals: 1.1.1 + is-stream: 2.0.1 + merge-stream: 2.0.0 + npm-run-path: 4.0.1 + onetime: 5.1.2 + signal-exit: 3.0.7 + strip-final-newline: 2.0.0 + execa@5.1.1: dependencies: cross-spawn: 7.0.6 @@ -10286,6 +13454,8 @@ snapshots: strip-final-newline: 4.0.0 yoctocolors: 2.1.1 + exit@0.1.2: {} + expand-brackets@2.1.4: dependencies: debug: 2.6.9 @@ -10366,6 +13536,8 @@ snapshots: transitivePeerDependencies: - supports-color + extract-stack@2.0.0: {} + fast-content-type-parse@2.0.1: {} fast-deep-equal@3.1.3: {} @@ -10400,10 +13572,16 @@ snapshots: fast-uri@3.0.6: {} + fastest-levenshtein@1.0.16: {} + fastq@1.19.1: dependencies: reusify: 1.1.0 + faye-websocket@0.11.4: + dependencies: + websocket-driver: 0.7.4 + fb-watchman@2.0.2: dependencies: bser: 2.1.1 @@ -10412,18 +13590,32 @@ snapshots: optionalDependencies: picomatch: 4.0.3 + fdir@6.5.0(picomatch@4.0.3): + optionalDependencies: + picomatch: 4.0.3 + figures@2.0.0: dependencies: escape-string-regexp: 1.0.5 + figures@3.2.0: + dependencies: + escape-string-regexp: 1.0.5 + figures@6.1.0: dependencies: is-unicode-supported: 2.1.0 + file-entry-cache@10.1.4: + dependencies: + flat-cache: 6.1.18 + file-entry-cache@8.0.0: dependencies: flat-cache: 4.0.1 + filesize@10.1.6: {} + fill-range@4.0.0: dependencies: extend-shallow: 2.0.1 @@ -10494,6 +13686,10 @@ snapshots: locate-path: 6.0.0 path-exists: 4.0.0 + find-yarn-workspace-root@2.0.0: + dependencies: + micromatch: 4.0.8 + findup-sync@4.0.0: dependencies: detect-file: 1.0.0 @@ -10514,6 +13710,12 @@ snapshots: fixturify: 1.3.0 tmp: 0.0.33 + fixturify-project@2.1.1: + dependencies: + fixturify: 2.1.1 + tmp: 0.0.33 + type-fest: 0.11.0 + fixturify@1.3.0: dependencies: '@types/fs-extra': 5.1.0 @@ -10522,11 +13724,26 @@ snapshots: fs-extra: 7.0.1 matcher-collection: 2.0.1 + fixturify@2.1.1: + dependencies: + '@types/fs-extra': 8.1.5 + '@types/minimatch': 3.0.5 + '@types/rimraf': 2.0.5 + fs-extra: 8.1.0 + matcher-collection: 2.0.1 + walk-sync: 2.2.0 + flat-cache@4.0.1: dependencies: flatted: 3.3.3 keyv: 4.5.4 + flat-cache@6.1.18: + dependencies: + cacheable: 2.1.1 + flatted: 3.3.3 + hookified: 1.12.2 + flatted@3.3.3: {} follow-redirects@1.15.9: {} @@ -10558,6 +13775,13 @@ snapshots: fresh@0.5.2: {} + fs-extra@0.24.0: + dependencies: + graceful-fs: 4.2.11 + jsonfile: 2.4.0 + path-is-absolute: 1.0.1 + rimraf: 2.7.1 + fs-extra@10.1.0: dependencies: graceful-fs: 4.2.11 @@ -10570,6 +13794,12 @@ snapshots: jsonfile: 6.1.0 universalify: 2.0.1 + fs-extra@4.0.3: + dependencies: + graceful-fs: 4.2.11 + jsonfile: 4.0.0 + universalify: 0.1.2 + fs-extra@5.0.0: dependencies: graceful-fs: 4.2.11 @@ -10689,10 +13919,16 @@ snapshots: dunder-proto: 1.0.1 es-object-atoms: 1.1.1 + get-stdin@9.0.0: {} + get-stream@4.1.0: dependencies: pump: 3.0.3 + get-stream@5.2.0: + dependencies: + pump: 3.0.3 + get-stream@6.0.1: {} get-stream@9.0.1: @@ -10712,6 +13948,10 @@ snapshots: get-value@2.0.6: {} + git-hooks-list@3.2.0: {} + + git-repo-info@2.1.1: {} + github-changelog@2.0.0: dependencies: '@manypkg/get-packages': 2.2.2 @@ -10772,6 +14012,14 @@ snapshots: once: 1.4.0 path-is-absolute: 1.0.1 + glob@8.1.0: + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 5.1.6 + once: 1.4.0 + glob@9.3.5: dependencies: fs.realpath: 1.0.0 @@ -10785,6 +14033,10 @@ snapshots: is-windows: 1.0.2 resolve-dir: 1.0.1 + global-modules@2.0.0: + dependencies: + global-prefix: 3.0.0 + global-prefix@1.0.2: dependencies: expand-tilde: 2.0.2 @@ -10793,12 +14045,20 @@ snapshots: is-windows: 1.0.2 which: 1.3.1 + global-prefix@3.0.0: + dependencies: + ini: 1.3.8 + kind-of: 6.0.3 + which: 1.3.1 + globals@14.0.0: {} globals@15.15.0: {} globals@16.3.0: {} + globals@16.4.0: {} + globalthis@1.0.4: dependencies: define-properties: 1.2.1 @@ -10806,6 +14066,17 @@ snapshots: globalyzer@0.1.0: {} + globby@11.1.0: + dependencies: + array-union: 2.1.0 + dir-glob: 3.0.1 + fast-glob: 3.3.3 + ignore: 5.3.2 + merge2: 1.4.1 + slash: 3.0.0 + + globjoin@0.1.4: {} + globrex@0.1.2: {} gopd@1.2.0: {} @@ -10827,6 +14098,10 @@ snapshots: optionalDependencies: uglify-js: 3.19.3 + has-ansi@3.0.0: + dependencies: + ansi-regex: 3.0.1 + has-bigints@1.1.0: {} has-flag@3.0.0: {} @@ -10883,6 +14158,18 @@ snapshots: dependencies: function-bind: 1.1.2 + heimdalljs-fs-monitor@1.1.2: + dependencies: + callsites: 3.1.0 + clean-stack: 2.2.0 + extract-stack: 2.0.0 + heimdalljs: 0.2.6 + heimdalljs-logger: 0.1.10 + transitivePeerDependencies: + - supports-color + + heimdalljs-graph@1.0.0: {} + heimdalljs-logger@0.1.10: dependencies: debug: 2.6.9 @@ -10900,6 +14187,8 @@ snapshots: dependencies: parse-passwd: 1.0.0 + hookified@1.12.2: {} + hosted-git-info@4.1.0: dependencies: lru-cache: 6.0.0 @@ -10931,18 +14220,20 @@ snapshots: statuses: 2.0.1 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.4.1 + debug: 4.4.3 transitivePeerDependencies: - supports-color http-proxy-agent@7.0.2: dependencies: agent-base: 7.1.4 - debug: 4.4.1 + debug: 4.4.3 transitivePeerDependencies: - supports-color @@ -10957,19 +14248,21 @@ snapshots: https-proxy-agent@5.0.1: dependencies: agent-base: 6.0.2 - debug: 4.4.1 + debug: 4.4.3 transitivePeerDependencies: - supports-color https-proxy-agent@7.0.6: dependencies: agent-base: 7.1.4 - debug: 4.4.1 + debug: 4.4.3 transitivePeerDependencies: - supports-color https@1.0.0: {} + human-signals@1.1.1: {} + human-signals@2.1.0: {} human-signals@8.0.1: {} @@ -10986,10 +14279,16 @@ snapshots: dependencies: safer-buffer: 2.1.2 + iconv-lite@0.7.0: + dependencies: + safer-buffer: 2.1.2 + icss-utils@5.1.0(postcss@8.5.6): dependencies: postcss: 8.5.6 + ieee754@1.2.1: {} + ignore@5.3.2: {} ignore@7.0.5: {} @@ -11038,12 +14337,47 @@ snapshots: strip-ansi: 5.2.0 through: 2.3.8 + inquirer@7.3.3: + dependencies: + ansi-escapes: 4.3.2 + chalk: 4.1.2 + cli-cursor: 3.1.0 + cli-width: 3.0.0 + external-editor: 3.1.0 + figures: 3.2.0 + lodash: 4.17.21 + mute-stream: 0.0.8 + run-async: 2.4.1 + rxjs: 6.6.7 + string-width: 4.2.3 + strip-ansi: 6.0.1 + through: 2.3.8 + + inquirer@9.3.8(@types/node@24.1.0): + dependencies: + '@inquirer/external-editor': 1.0.2(@types/node@24.1.0) + '@inquirer/figures': 1.0.14 + ansi-escapes: 4.3.2 + cli-width: 4.1.0 + mute-stream: 1.0.0 + ora: 5.4.1 + run-async: 3.0.0 + rxjs: 7.8.2 + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 6.2.0 + yoctocolors-cjs: 2.1.3 + transitivePeerDependencies: + - '@types/node' + internal-slot@1.1.0: dependencies: es-errors: 1.3.0 hasown: 2.0.2 side-channel: 1.1.0 + invert-kv@3.0.1: {} + ip-address@9.0.5: dependencies: jsbn: 1.1.0 @@ -11142,12 +14476,20 @@ snapshots: has-tostringtag: 1.0.2 safe-regex-test: 1.1.0 + is-git-url@1.0.0: {} + is-glob@4.0.3: dependencies: is-extglob: 2.1.1 + is-interactive@1.0.0: {} + is-lambda@1.0.1: {} + is-language-code@3.1.0: + dependencies: + '@babel/runtime': 7.28.4 + is-map@2.0.3: {} is-negative-zero@2.0.3: {} @@ -11163,12 +14505,16 @@ snapshots: is-number@7.0.0: {} + is-obj@2.0.0: {} + is-plain-obj@4.1.0: {} is-plain-object@2.0.4: dependencies: isobject: 3.0.1 + is-plain-object@5.0.0: {} + is-potential-custom-element-name@1.0.1: {} is-regex@1.2.1: @@ -11213,6 +14559,10 @@ snapshots: dependencies: which-typed-array: 1.1.19 + is-typedarray@1.0.0: {} + + is-unicode-supported@0.1.0: {} + is-unicode-supported@2.1.0: {} is-weakmap@2.0.2: {} @@ -11238,6 +14588,8 @@ snapshots: isarray@2.0.5: {} + isbinaryfile@5.0.6: {} + isexe@2.0.0: {} isexe@3.1.1: {} @@ -11323,6 +14675,33 @@ snapshots: - supports-color - utf-8-validate + jsdom@26.1.0: + dependencies: + cssstyle: 4.6.0 + data-urls: 5.0.0 + decimal.js: 10.6.0 + html-encoding-sniffer: 4.0.0 + http-proxy-agent: 7.0.2 + https-proxy-agent: 7.0.6 + is-potential-custom-element-name: 1.0.1 + nwsapi: 2.2.21 + parse5: 7.3.0 + rrweb-cssom: 0.8.0 + saxes: 6.0.0 + symbol-tree: 3.2.4 + tough-cookie: 5.1.2 + w3c-xmlserializer: 5.0.0 + webidl-conversions: 7.0.0 + whatwg-encoding: 3.1.1 + whatwg-mimetype: 4.0.0 + whatwg-url: 14.2.0 + ws: 8.18.3 + xml-name-validator: 5.0.0 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + jsesc@3.0.2: {} jsesc@3.1.0: {} @@ -11355,6 +14734,10 @@ snapshots: jsonc-parser@3.3.1: {} + jsonfile@2.4.0: + optionalDependencies: + graceful-fs: 4.2.11 + jsonfile@4.0.0: optionalDependencies: graceful-fs: 4.2.11 @@ -11371,6 +14754,10 @@ snapshots: dependencies: json-buffer: 3.0.1 + keyv@5.5.3: + dependencies: + '@keyv/serialize': 1.1.1 + kind-of@3.2.2: dependencies: is-buffer: 1.1.6 @@ -11381,12 +14768,18 @@ snapshots: kind-of@6.0.3: {} + known-css-properties@0.37.0: {} + ky@1.8.2: {} latest-version@9.0.0: dependencies: package-json: 10.0.1 + lcid@3.1.1: + dependencies: + invert-kv: 3.0.1 + levn@0.4.1: dependencies: prelude-ls: 1.2.1 @@ -11399,6 +14792,12 @@ snapshots: lines-and-columns@1.2.4: {} + linkify-it@5.0.0: + dependencies: + uc.micro: 2.1.0 + + livereload-js@3.4.1: {} + loader-runner@4.3.0: {} loader-utils@2.0.4: @@ -11457,6 +14856,8 @@ snapshots: lodash.omit@4.5.0: {} + lodash.truncate@4.4.2: {} + lodash.uniq@4.5.0: {} lodash@4.17.21: {} @@ -11465,6 +14866,11 @@ snapshots: dependencies: chalk: 2.4.2 + log-symbols@4.1.0: + dependencies: + chalk: 4.1.2 + is-unicode-supported: 0.1.0 + lower-case@2.0.2: dependencies: tslib: 2.8.1 @@ -11525,6 +14931,23 @@ snapshots: dependencies: object-visit: 1.0.1 + markdown-it-terminal@0.4.0(markdown-it@14.1.0): + dependencies: + ansi-styles: 3.2.1 + cardinal: 1.0.0 + cli-table: 0.3.11 + lodash.merge: 4.6.2 + markdown-it: 14.1.0 + + markdown-it@14.1.0: + dependencies: + argparse: 2.0.1 + entities: 4.5.0 + linkify-it: 5.0.0 + mdurl: 2.0.0 + punycode.js: 2.3.1 + uc.micro: 2.1.0 + matcher-collection@1.1.2: dependencies: minimatch: 3.1.2 @@ -11540,8 +14963,16 @@ snapshots: mdn-data@2.12.2: {} + mdurl@2.0.0: {} + media-typer@0.3.0: {} + mem@5.1.1: + dependencies: + map-age-cleaner: 0.1.3 + mimic-fn: 2.1.0 + p-is-promise: 2.1.0 + mem@8.1.1: dependencies: map-age-cleaner: 0.1.3 @@ -11621,6 +15052,14 @@ snapshots: dependencies: brace-expansion: 1.1.12 + minimatch@5.1.6: + dependencies: + brace-expansion: 2.0.2 + + minimatch@7.4.6: + dependencies: + brace-expansion: 2.0.2 + minimatch@8.0.4: dependencies: brace-expansion: 2.0.2 @@ -11690,6 +15129,16 @@ snapshots: mktemp@0.4.0: {} + morgan@1.10.1: + dependencies: + basic-auth: 2.0.1 + debug: 2.6.9 + depd: 2.0.0 + on-finished: 2.3.0 + on-headers: 1.1.0 + transitivePeerDependencies: + - supports-color + ms@2.0.0: {} ms@2.1.3: {} @@ -11698,6 +15147,10 @@ snapshots: mute-stream@0.0.7: {} + mute-stream@0.0.8: {} + + mute-stream@1.0.0: {} + mz@2.7.0: dependencies: any-promise: 1.3.0 @@ -11754,10 +15207,16 @@ snapshots: node-watch@0.7.3: {} + nopt@3.0.6: + dependencies: + abbrev: 1.1.1 + normalize-path@2.1.1: dependencies: remove-trailing-separator: 1.1.0 + normalize-path@3.0.0: {} + npm-install-checks@7.1.1: dependencies: semver: 7.7.2 @@ -11891,6 +15350,24 @@ snapshots: strip-ansi: 5.2.0 wcwidth: 1.0.1 + ora@5.4.1: + dependencies: + bl: 4.1.0 + chalk: 4.1.2 + cli-cursor: 3.1.0 + cli-spinners: 2.9.2 + is-interactive: 1.0.0 + is-unicode-supported: 0.1.0 + log-symbols: 4.1.0 + strip-ansi: 6.0.1 + wcwidth: 1.0.1 + + os-locale@5.0.0: + dependencies: + execa: 4.1.0 + lcid: 3.1.1 + mem: 5.1.1 + os-tmpdir@1.0.2: {} own-keys@1.0.1: @@ -11901,8 +15378,12 @@ snapshots: p-defer@1.0.0: {} + p-defer@3.0.0: {} + p-finally@1.0.0: {} + p-is-promise@2.1.0: {} + p-limit@1.3.0: dependencies: p-try: 1.0.0 @@ -12023,6 +15504,8 @@ snapshots: path-to-regexp@0.1.12: {} + path-type@4.0.0: {} + picocolors@1.1.1: {} picomatch@2.3.1: {} @@ -12043,6 +15526,13 @@ snapshots: dependencies: find-up: 3.0.0 + portfinder@1.0.38: + dependencies: + async: 3.2.6 + debug: 4.4.1 + transitivePeerDependencies: + - supports-color + posix-character-classes@0.1.1: {} possible-typed-array-names@1.1.0: {} @@ -12068,6 +15558,12 @@ snapshots: icss-utils: 5.1.0(postcss@8.5.6) postcss: 8.5.6 + postcss-resolve-nested-selector@0.1.6: {} + + postcss-safe-parser@7.0.1(postcss@8.5.6): + dependencies: + postcss: 8.5.6 + postcss-selector-parser@7.1.0: dependencies: cssesc: 3.0.0 @@ -12120,6 +15616,8 @@ snapshots: err-code: 2.0.3 retry: 0.12.0 + promise.hash.helper@1.0.8: {} + proper-lockfile@4.1.2: dependencies: graceful-fs: 4.2.11 @@ -12138,8 +15636,14 @@ snapshots: end-of-stream: 1.4.5 once: 1.4.0 + punycode.js@2.3.1: {} + punycode@2.3.1: {} + qified@0.5.1: + dependencies: + hookified: 1.12.2 + qs@6.13.0: dependencies: side-channel: 1.1.0 @@ -12156,6 +15660,10 @@ snapshots: dependencies: dom-element-descriptors: 0.5.1 + qunit-dom@3.5.0: + dependencies: + dom-element-descriptors: 0.5.1 + qunit-theme-ember@1.0.0: {} qunit@2.24.1: @@ -12164,12 +15672,23 @@ snapshots: node-watch: 0.7.3 tiny-glob: 0.2.9 + qunit@2.24.2: + dependencies: + commander: 7.2.0 + node-watch: 0.7.3 + tiny-glob: 0.2.9 + randombytes@2.1.0: dependencies: safe-buffer: 5.2.1 range-parser@1.2.1: {} + raw-body@1.1.7: + dependencies: + bytes: 1.0.0 + string_decoder: 0.10.31 + raw-body@2.5.2: dependencies: bytes: 3.1.2 @@ -12204,6 +15723,10 @@ snapshots: private: 0.1.8 source-map: 0.6.1 + redeyed@1.0.1: + dependencies: + esprima: 3.0.0 + reflect.getprototypeof@1.0.10: dependencies: call-bind: 1.0.8 @@ -12284,9 +15807,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.28.5 + '@babel/plugin-syntax-decorators': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-typescript': 7.28.0(@babel/core@7.28.5) prettier: 2.8.8 transitivePeerDependencies: - supports-color @@ -12316,6 +15839,8 @@ snapshots: resolve-from@4.0.0: {} + resolve-from@5.0.0: {} + resolve-package-path@1.2.7: dependencies: path-root: 0.1.1 @@ -12357,12 +15882,21 @@ snapshots: onetime: 2.0.1 signal-exit: 3.0.7 + restore-cursor@3.1.0: + dependencies: + onetime: 5.1.2 + signal-exit: 3.0.7 + ret@0.1.15: {} retry@0.12.0: {} reusify@1.1.0: {} + rimraf@2.6.3: + dependencies: + glob: 7.2.3 + rimraf@2.7.1: dependencies: glob: 7.2.3 @@ -12422,6 +15956,8 @@ snapshots: run-async@2.4.1: {} + run-async@3.0.0: {} + run-parallel@1.2.0: dependencies: queue-microtask: 1.2.3 @@ -12442,8 +15978,12 @@ snapshots: has-symbols: 1.1.0 isarray: 2.0.5 + safe-buffer@5.1.2: {} + safe-buffer@5.2.1: {} + safe-json-parse@1.0.1: {} + safe-push-apply@1.0.0: dependencies: es-errors: 1.3.0 @@ -12459,6 +15999,8 @@ snapshots: dependencies: ret: 0.1.15 + safe-stable-stringify@2.5.0: {} + safer-buffer@2.1.2: {} sane@4.1.0: @@ -12475,6 +16017,18 @@ snapshots: transitivePeerDependencies: - supports-color + sane@5.0.1: + dependencies: + '@cnakazawa/watch': 1.0.4 + anymatch: 3.1.3 + capture-exit: 2.0.0 + exec-sh: 0.3.6 + execa: 4.1.0 + fb-watchman: 2.0.2 + micromatch: 4.0.8 + minimist: 1.2.8 + walker: 1.0.8 + saxes@6.0.0: dependencies: xmlchars: 2.2.0 @@ -12646,6 +16200,12 @@ snapshots: slash@3.0.0: {} + slice-ansi@4.0.0: + dependencies: + ansi-styles: 4.3.0 + astral-regex: 2.0.0 + is-fullwidth-code-point: 3.0.0 + smart-buffer@4.2.0: {} snake-case@3.0.4: @@ -12709,7 +16269,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 @@ -12719,6 +16279,19 @@ snapshots: ip-address: 9.0.5 smart-buffer: 4.2.0 + sort-object-keys@1.1.3: {} + + sort-package-json@2.15.1: + dependencies: + detect-indent: 7.0.2 + detect-newline: 4.0.1 + get-stdin: 9.0.0 + git-hooks-list: 3.2.0 + is-plain-obj: 4.1.0 + semver: 7.7.2 + sort-object-keys: 1.1.3 + tinyglobby: 0.2.14 + source-map-js@1.2.1: {} source-map-resolve@0.5.3: @@ -12792,6 +16365,8 @@ snapshots: es-errors: 1.3.0 internal-slot: 1.1.0 + string-template@0.2.1: {} + string-width@2.1.1: dependencies: is-fullwidth-code-point: 2.0.0 @@ -12872,6 +16447,8 @@ snapshots: strip-bom@3.0.0: {} + strip-bom@4.0.0: {} + strip-eof@1.0.0: {} strip-final-newline@2.0.0: {} @@ -12890,6 +16467,59 @@ snapshots: styled_string@0.0.1: {} + stylelint-config-recommended@16.0.0(stylelint@16.25.0(typescript@5.8.3)): + dependencies: + stylelint: 16.25.0(typescript@5.8.3) + + stylelint-config-standard@38.0.0(stylelint@16.25.0(typescript@5.8.3)): + dependencies: + stylelint: 16.25.0(typescript@5.8.3) + stylelint-config-recommended: 16.0.0(stylelint@16.25.0(typescript@5.8.3)) + + stylelint@16.25.0(typescript@5.8.3): + dependencies: + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) + '@csstools/css-tokenizer': 3.0.4 + '@csstools/media-query-list-parser': 4.0.3(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) + '@csstools/selector-specificity': 5.0.0(postcss-selector-parser@7.1.0) + '@dual-bundle/import-meta-resolve': 4.2.1 + balanced-match: 2.0.0 + colord: 2.9.3 + cosmiconfig: 9.0.0(typescript@5.8.3) + css-functions-list: 3.2.3 + css-tree: 3.1.0 + debug: 4.4.3 + fast-glob: 3.3.3 + fastest-levenshtein: 1.0.16 + file-entry-cache: 10.1.4 + global-modules: 2.0.0 + globby: 11.1.0 + globjoin: 0.1.4 + html-tags: 3.3.1 + ignore: 7.0.5 + imurmurhash: 0.1.4 + is-plain-object: 5.0.0 + known-css-properties: 0.37.0 + mathml-tag-names: 2.1.3 + meow: 13.2.0 + micromatch: 4.0.8 + normalize-path: 3.0.0 + picocolors: 1.1.1 + postcss: 8.5.6 + postcss-resolve-nested-selector: 0.1.6 + postcss-safe-parser: 7.0.1(postcss@8.5.6) + postcss-selector-parser: 7.1.0 + postcss-value-parser: 4.2.0 + resolve-from: 5.0.0 + string-width: 4.2.3 + supports-hyperlinks: 3.2.0 + svg-tags: 1.0.0 + table: 6.9.0 + write-file-atomic: 5.0.1 + transitivePeerDependencies: + - supports-color + - typescript + supports-color@5.5.0: dependencies: has-flag: 3.0.0 @@ -12902,6 +16532,11 @@ snapshots: dependencies: has-flag: 4.0.0 + supports-hyperlinks@3.2.0: + dependencies: + has-flag: 4.0.0 + supports-color: 7.2.0 + supports-preserve-symlinks-flag@1.0.0: {} svg-tags@1.0.0: {} @@ -12922,7 +16557,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 @@ -12930,6 +16565,14 @@ snapshots: transitivePeerDependencies: - supports-color + table@6.9.0: + dependencies: + ajv: 8.17.1 + lodash.truncate: 4.4.2 + slice-ansi: 4.0.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + tap-parser@7.0.0: dependencies: events-to-array: 1.1.2 @@ -12947,6 +16590,11 @@ snapshots: mkdirp: 1.0.4 yallist: 4.0.0 + temp@0.9.4: + dependencies: + mkdirp: 0.5.6 + rimraf: 2.6.3 + terser-webpack-plugin@5.3.14(webpack@5.100.2): dependencies: '@jridgewell/trace-mapping': 0.3.29 @@ -13069,11 +16717,27 @@ snapshots: globalyzer: 0.1.0 globrex: 0.1.2 + tiny-lr@2.0.0: + dependencies: + body: 5.1.0 + debug: 3.2.7 + faye-websocket: 0.11.4 + livereload-js: 3.4.1 + object-assign: 4.1.1 + qs: 6.13.0 + transitivePeerDependencies: + - supports-color + tinyglobby@0.2.14: dependencies: fdir: 6.4.6(picomatch@4.0.3) picomatch: 4.0.3 + tinyglobby@0.2.15: + dependencies: + fdir: 6.5.0(picomatch@4.0.3) + picomatch: 4.0.3 + tldts-core@6.1.86: {} tldts@6.1.86: @@ -13124,6 +16788,15 @@ snapshots: dependencies: punycode: 2.3.1 + tracked-built-ins@4.0.0(@babel/core@7.28.5): + dependencies: + '@embroider/addon-shim': 1.10.0 + decorator-transforms: 2.3.0(@babel/core@7.28.5) + ember-tracked-storage-polyfill: 1.0.0 + transitivePeerDependencies: + - '@babel/core' + - supports-color + tree-kill@1.2.2: {} tree-sync@1.4.0: @@ -13170,6 +16843,10 @@ snapshots: dependencies: prelude-ls: 1.2.1 + type-fest@0.11.0: {} + + type-fest@0.21.3: {} + type-fest@4.41.0: {} type-is@1.6.18: @@ -13210,6 +16887,10 @@ snapshots: possible-typed-array-names: 1.1.0 reflect.getprototypeof: 1.0.10 + typedarray-to-buffer@3.1.5: + dependencies: + is-typedarray: 1.0.0 + typesafe-path@0.2.2: {} typescript-auto-import-cache@0.3.6: @@ -13231,6 +16912,8 @@ snapshots: typescript@5.8.3: {} + uc.micro@2.1.0: {} + uglify-js@3.19.3: optional: true @@ -13278,6 +16961,10 @@ snapshots: dependencies: imurmurhash: 0.1.4 + unique-string@2.0.0: + dependencies: + crypto-random-string: 2.0.0 + universal-user-agent@7.0.3: {} universalify@0.1.2: {} @@ -13362,6 +17049,20 @@ snapshots: jiti: 2.4.2 terser: 5.43.1 + vite@7.1.12(@types/node@24.1.0)(jiti@2.4.2)(terser@5.43.1): + dependencies: + esbuild: 0.25.8 + fdir: 6.5.0(picomatch@4.0.3) + picomatch: 4.0.3 + postcss: 8.5.6 + rollup: 4.46.0 + tinyglobby: 0.2.15 + optionalDependencies: + '@types/node': 24.1.0 + fsevents: 2.3.3 + jiti: 2.4.2 + terser: 5.43.1 + volar-service-html@0.0.64(@volar/language-service@2.4.23): dependencies: vscode-html-languageservice: 5.5.1 @@ -13501,6 +17202,14 @@ snapshots: - esbuild - uglify-js + websocket-driver@0.7.4: + dependencies: + http-parser-js: 0.5.10 + safe-buffer: 5.2.1 + websocket-extensions: 0.1.4 + + websocket-extensions@0.1.4: {} + whatwg-encoding@3.1.1: dependencies: iconv-lite: 0.6.3 @@ -13575,7 +17284,7 @@ snapshots: workerpool@3.1.2: dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.5 object-assign: 4.1.1 rsvp: 4.8.5 transitivePeerDependencies: @@ -13583,6 +17292,14 @@ snapshots: workerpool@6.5.1: {} + workerpool@9.3.4: {} + + wrap-ansi@6.2.0: + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi@7.0.0: dependencies: ansi-styles: 4.3.0 @@ -13597,10 +17314,24 @@ snapshots: wrappy@1.0.2: {} + write-file-atomic@3.0.3: + dependencies: + imurmurhash: 0.1.4 + is-typedarray: 1.0.0 + signal-exit: 3.0.7 + typedarray-to-buffer: 3.1.5 + + write-file-atomic@5.0.1: + dependencies: + imurmurhash: 0.1.4 + signal-exit: 4.1.0 + ws@8.17.1: {} ws@8.18.3: {} + xdg-basedir@4.0.0: {} + xml-name-validator@5.0.0: {} xmlchars@2.2.0: {} @@ -13611,6 +17342,11 @@ snapshots: yallist@4.0.0: {} + yam@1.0.0: + dependencies: + fs-extra: 4.0.3 + lodash.merge: 4.6.2 + yargs-parser@20.2.9: {} yargs-parser@21.1.1: {} @@ -13637,4 +17373,6 @@ snapshots: yocto-queue@0.1.0: {} + yoctocolors-cjs@2.1.3: {} + yoctocolors@2.1.1: {} diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml new file mode 100644 index 0000000..3f839ac --- /dev/null +++ b/pnpm-workspace.yaml @@ -0,0 +1,3 @@ +packages: + - "." + - "./test-apps/*" diff --git a/src/convert.ts b/src/convert.ts new file mode 100644 index 0000000..5dfd0d0 --- /dev/null +++ b/src/convert.ts @@ -0,0 +1,39 @@ +import { assert } from '@ember/debug'; +import type { ModuleEntries } from './types.ts'; + +/** + * Adapts the old module format which requires a modulePrefix to the + * new moduleFormat specified it RFC 1132. + */ +export function compatToRFC1132(modulePrefix: string, modules: ModuleEntries) { + const result: ModuleEntries = {}; + + let madeReplacements = false; + for (const [key, module] of Object.entries(modules)) { + const newKey = key.replace(new RegExp(`^${modulePrefix}/`), './'); + + if (!madeReplacements) { + if (key !== newKey) { + madeReplacements = true; + } + } + + result[newKey] = module; + } + + assert( + `No replacements were made. Is the ${modulePrefix} correct? These candidates exist: ${[ + ...new Set( + /** + * 'full-name/foo' => 'full-name' + */ + Object.keys(modules).map( + (full) => full.split('/')[0] ?? '', + ), + ).values(), + ].join(', ')}`, + madeReplacements, + ); + + return result; +} diff --git a/src/types.ts b/src/types.ts new file mode 100644 index 0000000..a6d7903 --- /dev/null +++ b/src/types.ts @@ -0,0 +1,5 @@ +export interface ModuleEntries { + [modulePath: string]: { + [exportName: string]: unknown; + }; +} diff --git a/test-apps/v2-addon/.editorconfig b/test-apps/v2-addon/.editorconfig new file mode 100644 index 0000000..c35a002 --- /dev/null +++ b/test-apps/v2-addon/.editorconfig @@ -0,0 +1,19 @@ +# EditorConfig helps developers define and maintain consistent +# coding styles between different editors and IDEs +# editorconfig.org + +root = true + +[*] +end_of_line = lf +charset = utf-8 +trim_trailing_whitespace = true +insert_final_newline = true +indent_style = space +indent_size = 2 + +[*.hbs] +insert_final_newline = false + +[*.{diff,md}] +trim_trailing_whitespace = false diff --git a/test-apps/v2-addon/.env.development b/test-apps/v2-addon/.env.development new file mode 100644 index 0000000..8380c3a --- /dev/null +++ b/test-apps/v2-addon/.env.development @@ -0,0 +1,8 @@ +# This file is committed to git and should not contain any secrets. +# +# Vite recommends using .env.local or .env.[mode].local if you need to manage secrets +# SEE: https://vite.dev/guide/env-and-mode.html#env-files for more information. + + +# Default NODE_ENV with vite build --mode=test is production +NODE_ENV=development diff --git a/test-apps/v2-addon/.github/workflows/ci.yml b/test-apps/v2-addon/.github/workflows/ci.yml new file mode 100644 index 0000000..1961de9 --- /dev/null +++ b/test-apps/v2-addon/.github/workflows/ci.yml @@ -0,0 +1,99 @@ +name: CI + +on: + push: + branches: + - main + - master + pull_request: {} + +concurrency: + group: ci-${{ github.head_ref || github.ref }} + cancel-in-progress: true + +jobs: + lint: + name: "Lints" + runs-on: ubuntu-latest + timeout-minutes: 10 + + steps: + - uses: actions/checkout@v4 + - uses: pnpm/action-setup@v4 + - uses: actions/setup-node@v4 + with: + node-version: 22 + cache: pnpm + - name: Install Dependencies + run: pnpm install --frozen-lockfile + - name: Lint + run: pnpm lint + + test: + name: "Tests" + runs-on: ubuntu-latest + timeout-minutes: 10 + outputs: + matrix: ${{ steps.set-matrix.outputs.matrix }} + + steps: + - uses: actions/checkout@v4 + - uses: pnpm/action-setup@v4 + - uses: actions/setup-node@v4 + with: + node-version: 22 + cache: pnpm + - name: Install Dependencies + run: pnpm install --frozen-lockfile + - name: Run Tests + run: pnpm test + # For the Try Scenarios + - id: set-matrix + run: | + echo "matrix=$(pnpm -s dlx @embroider/try list)" >> $GITHUB_OUTPUT + + + floating: + name: "Floating Dependencies" + runs-on: ubuntu-latest + timeout-minutes: 10 + + steps: + - uses: actions/checkout@v4 + - uses: pnpm/action-setup@v4 + - uses: actions/setup-node@v4 + with: + node-version: 22 + cache: pnpm + - name: Install Dependencies + run: pnpm install --no-lockfile + - name: Run Tests + run: pnpm test + + try-scenarios: + name: ${{ matrix.name }} + runs-on: ubuntu-latest + needs: "test" + timeout-minutes: 10 + strategy: + fail-fast: false + matrix: ${{fromJson(needs.test.outputs.matrix)}} + + steps: + - uses: actions/checkout@v4 + - uses: pnpm/action-setup@v4 + - uses: actions/setup-node@v4 + with: + node-version: 22 + cache: pnpm + - name: Apply Scenario + run: | + pnpm dlx @embroider/try apply ${{ matrix.name }} + + - name: Install Dependencies + run: pnpm install --no-lockfile + - name: Run Tests + run: | + pnpm test + + env: ${{ matrix.env }} diff --git a/test-apps/v2-addon/.github/workflows/push-dist.yml b/test-apps/v2-addon/.github/workflows/push-dist.yml new file mode 100644 index 0000000..bdfa5b5 --- /dev/null +++ b/test-apps/v2-addon/.github/workflows/push-dist.yml @@ -0,0 +1,34 @@ +# Because this library needs to be built, +# we can't easily point package.json files at the git repo for easy cross-repo testing. +# +# This workflow brings back that capability by placing the compiled assets on a "dist" branch +# (configurable via the "branch" option below) +name: Push dist + +on: + push: + branches: + - main + - master + +jobs: + push-dist: + name: Push dist + permissions: + contents: write + runs-on: ubuntu-latest + timeout-minutes: 10 + + steps: + - uses: actions/checkout@v4 + - uses: pnpm/action-setup@v4 + - uses: actions/setup-node@v4 + with: + node-version: 22 + cache: pnpm + - name: Install Dependencies + run: pnpm install --frozen-lockfile + - uses: kategengler/put-built-npm-package-contents-on-branch@v2.0.0 + with: + branch: dist + token: ${{ secrets.GITHUB_TOKEN }} diff --git a/test-apps/v2-addon/.gitignore b/test-apps/v2-addon/.gitignore new file mode 100644 index 0000000..f3c2b8d --- /dev/null +++ b/test-apps/v2-addon/.gitignore @@ -0,0 +1,17 @@ +# compiled output +dist/ +dist-tests/ +declarations/ + +# from scenarios +tmp/ +config/optional-features.json +ember-cli-build.js + +# npm/pnpm/yarn pack output +*.tgz + +# deps & caches +node_modules/ +.eslintcache +.prettiercache diff --git a/test-apps/v2-addon/.prettierignore b/test-apps/v2-addon/.prettierignore new file mode 100644 index 0000000..b5f539b --- /dev/null +++ b/test-apps/v2-addon/.prettierignore @@ -0,0 +1,16 @@ +# unconventional js +/blueprints/*/files/ + +# compiled output +/dist/ +/dist-*/ +/declarations/ + +# misc +/coverage/ +pnpm-lock.yaml +config/ember-cli-update.json +*.yaml +*.yml +*.md +*.html diff --git a/test-apps/v2-addon/.prettierrc.cjs b/test-apps/v2-addon/.prettierrc.cjs new file mode 100644 index 0000000..8e62a45 --- /dev/null +++ b/test-apps/v2-addon/.prettierrc.cjs @@ -0,0 +1,14 @@ +'use strict'; + +module.exports = { + plugins: ['prettier-plugin-ember-template-tag'], + overrides: [ + { + files: '*.{js,gjs,ts,gts,mjs,mts,cjs,cts}', + options: { + singleQuote: true, + templateSingleQuote: false, + }, + }, + ], +}; diff --git a/test-apps/v2-addon/.template-lintrc.cjs b/test-apps/v2-addon/.template-lintrc.cjs new file mode 100644 index 0000000..2fedce2 --- /dev/null +++ b/test-apps/v2-addon/.template-lintrc.cjs @@ -0,0 +1,6 @@ +'use strict'; + +module.exports = { + extends: 'recommended', + checkHbsTemplateLiterals: false, +}; diff --git a/test-apps/v2-addon/.try.mjs b/test-apps/v2-addon/.try.mjs new file mode 100644 index 0000000..0a9630d --- /dev/null +++ b/test-apps/v2-addon/.try.mjs @@ -0,0 +1,87 @@ +// When building your addon for older Ember versions you need to have the required files +const compatFiles = { + 'ember-cli-build.js': `const EmberApp = require('ember-cli/lib/broccoli/ember-app'); +const { compatBuild } = require('@embroider/compat'); +module.exports = async function (defaults) { + const { buildOnce } = await import('@embroider/vite'); + let app = new EmberApp(defaults); + return compatBuild(app, buildOnce); +};`, + 'config/optional-features.json': JSON.stringify({ + 'application-template-wrapper': false, + 'default-async-observers': true, + 'jquery-integration': false, + 'template-only-glimmer-components': true, + 'no-implicit-route-model': true, + }), +}; + +const compatDeps = { + '@embroider/compat': '^4.0.3', + 'ember-cli': '^5.12.0', + 'ember-auto-import': '^2.10.0', + '@ember/optional-features': '^2.2.0', +}; + +export default { + scenarios: [ + { + name: 'ember-lts-5.8', + npm: { + devDependencies: { + 'ember-source': '~5.8.0', + ...compatDeps, + }, + }, + env: { + ENABLE_COMPAT_BUILD: true, + }, + files: compatFiles, + }, + { + name: 'ember-lts-5.12', + npm: { + devDependencies: { + 'ember-source': '~5.12.0', + ...compatDeps, + }, + }, + env: { + ENABLE_COMPAT_BUILD: true, + }, + files: compatFiles, + }, + { + name: 'ember-lts-6.4', + npm: { + devDependencies: { + 'ember-source': 'npm:ember-source@~6.4.0', + }, + }, + }, + { + name: 'ember-latest', + npm: { + devDependencies: { + 'ember-source': 'npm:ember-source@latest', + }, + }, + }, + { + name: 'ember-beta', + npm: { + devDependencies: { + 'ember-source': 'npm:ember-source@beta', + }, + }, + }, + { + name: 'ember-alpha', + npm: { + devDependencies: { + 'ember-source': 'npm:ember-source@alpha', + }, + }, + }, + ], +}; diff --git a/test-apps/v2-addon/CONTRIBUTING.md b/test-apps/v2-addon/CONTRIBUTING.md new file mode 100644 index 0000000..3de3741 --- /dev/null +++ b/test-apps/v2-addon/CONTRIBUTING.md @@ -0,0 +1,28 @@ +# How To Contribute + +## Installation + +- `git clone ` +- `cd v2-addon` +- `pnpm install` + +## Linting + +- `pnpm lint` +- `pnpm lint:fix` + +## Building the addon + +- `pnpm build` + +## Running tests + +- `pnpm test` – Runs the test suite on the current Ember version +- `pnpm test:watch` – Runs the test suite in "watch mode" + +## Running the test application + +- `pnpm start` +- Visit the test application at [http://localhost:4200](http://localhost:4200). + +For more information on using ember-cli, visit [https://cli.emberjs.com/release/](https://cli.emberjs.com/release/). diff --git a/test-apps/v2-addon/LICENSE.md b/test-apps/v2-addon/LICENSE.md new file mode 100644 index 0000000..8ba573f --- /dev/null +++ b/test-apps/v2-addon/LICENSE.md @@ -0,0 +1,9 @@ +The MIT License (MIT) + +Copyright (c) 2025 + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/test-apps/v2-addon/README.md b/test-apps/v2-addon/README.md new file mode 100644 index 0000000..f1427c5 --- /dev/null +++ b/test-apps/v2-addon/README.md @@ -0,0 +1,26 @@ +# v2-addon + +[Short description of the addon.] + +## Compatibility + +- Ember.js v5.8 or above +- Embroider or ember-auto-import v2 + +## Installation + +``` +ember install v2-addon +``` + +## Usage + +[Longer description of how to use the addon in apps.] + +## Contributing + +See the [Contributing](CONTRIBUTING.md) guide for details. + +## License + +This project is licensed under the [MIT License](LICENSE.md). diff --git a/test-apps/v2-addon/addon-main.cjs b/test-apps/v2-addon/addon-main.cjs new file mode 100644 index 0000000..f868d6b --- /dev/null +++ b/test-apps/v2-addon/addon-main.cjs @@ -0,0 +1,4 @@ +'use strict'; + +const { addonV1Shim } = require('@embroider/addon-shim'); +module.exports = addonV1Shim(__dirname); diff --git a/test-apps/v2-addon/babel.config.cjs b/test-apps/v2-addon/babel.config.cjs new file mode 100644 index 0000000..da25628 --- /dev/null +++ b/test-apps/v2-addon/babel.config.cjs @@ -0,0 +1,42 @@ +/** + * This babel.config is not used for publishing. + * It's only for the local editing experience + * (and linting) + */ +const { buildMacros } = require('@embroider/macros/babel'); + +const { + babelCompatSupport, + templateCompatSupport, +} = require('@embroider/compat/babel'); + +const macros = buildMacros(); + +// For scenario testing +const isCompat = Boolean(process.env.ENABLE_COMPAT_BUILD); + +module.exports = { + plugins: [ + [ + 'babel-plugin-ember-template-compilation', + { + transforms: [ + ...(isCompat ? templateCompatSupport() : macros.templateMacros), + ], + }, + ], + [ + 'module:decorator-transforms', + { + runtime: { + import: require.resolve('decorator-transforms/runtime-esm'), + }, + }, + ], + ...(isCompat ? babelCompatSupport() : macros.babelMacros), + ], + + generatorOpts: { + compact: false, + }, +}; diff --git a/test-apps/v2-addon/babel.publish.config.cjs b/test-apps/v2-addon/babel.publish.config.cjs new file mode 100644 index 0000000..ec0a2a1 --- /dev/null +++ b/test-apps/v2-addon/babel.publish.config.cjs @@ -0,0 +1,28 @@ +/** + * This babel.config is only used for publishing. + * + * For local dev experience, see the babel.config + */ +module.exports = { + plugins: [ + [ + 'babel-plugin-ember-template-compilation', + { + targetFormat: 'hbs', + transforms: [], + }, + ], + [ + 'module:decorator-transforms', + { + runtime: { + import: 'decorator-transforms/runtime-esm', + }, + }, + ], + ], + + generatorOpts: { + compact: false, + }, +}; diff --git a/test-apps/v2-addon/config/ember-cli-update.json b/test-apps/v2-addon/config/ember-cli-update.json new file mode 100644 index 0000000..c48b84b --- /dev/null +++ b/test-apps/v2-addon/config/ember-cli-update.json @@ -0,0 +1,20 @@ +{ + "schemaVersion": "1.0.0", + "projectName": "v2-addon", + "packages": [ + { + "name": "@ember/addon-blueprint", + "version": "0.14.1", + "blueprints": [ + { + "name": "@ember/addon-blueprint", + "isBaseBlueprint": true, + "options": [ + "--ci-provider=github", + "--pnpm" + ] + } + ] + } + ] +} diff --git a/test-apps/v2-addon/demo-app/app.gts b/test-apps/v2-addon/demo-app/app.gts new file mode 100644 index 0000000..d7f1916 --- /dev/null +++ b/test-apps/v2-addon/demo-app/app.gts @@ -0,0 +1,38 @@ +import EmberApp from 'ember-strict-application-resolver'; +import EmberRouter from '@ember/routing/router'; +import PageTitleService from 'ember-page-title/services/page-title'; + +class Router extends EmberRouter { + location = 'history'; + rootURL = '/'; +} + +export class App extends EmberApp { + /** + * Any services or anything from the addon that needs to be in the app-tree registry + * will need to be manually specified here. + * + * Techniques to avoid needing this: + * - private services + * - require the consuming app import and configure themselves + * (which is what we're emulating here) + */ + modules = { + './router': Router, + './services/page-title': PageTitleService, + /** + * NOTE: this glob will import everything matching the glob, + * and includes non-services in the services directory. + */ + ...import.meta.glob('./services/**/*', { eager: true }), + /** + * These imports are not magic, but we do require that all entries in the + * modules object match a ./[type]/[name] pattern. + * + * See: https://rfcs.emberjs.com/id/1132-default-strict-resolver + */ + ...import.meta.glob('./templates/**/*', { eager: true }), + }; +} + +Router.map(function () {}); diff --git a/test-apps/v2-addon/demo-app/styles.css b/test-apps/v2-addon/demo-app/styles.css new file mode 100644 index 0000000..fe5e87f --- /dev/null +++ b/test-apps/v2-addon/demo-app/styles.css @@ -0,0 +1,6 @@ +/** +* See: https://vite.dev/guide/features.html#css +* for features beyond normal CSS that are available to you. +* +* This CSS is meant for the demo-app only, and will not be included in the published assets for this library. +*/ diff --git a/test-apps/v2-addon/demo-app/templates/application.gts b/test-apps/v2-addon/demo-app/templates/application.gts new file mode 100644 index 0000000..3e5c50b --- /dev/null +++ b/test-apps/v2-addon/demo-app/templates/application.gts @@ -0,0 +1,11 @@ +import { pageTitle } from 'ember-page-title'; + +const greeting = 'hello'; + + diff --git a/test-apps/v2-addon/eslint.config.mjs b/test-apps/v2-addon/eslint.config.mjs new file mode 100644 index 0000000..fe1f61e --- /dev/null +++ b/test-apps/v2-addon/eslint.config.mjs @@ -0,0 +1,122 @@ +/** + * Debugging: + * https://eslint.org/docs/latest/use/configure/debug + * ---------------------------------------------------- + * + * Print a file's calculated configuration + * + * npx eslint --print-config path/to/file.js + * + * Inspecting the config + * + * npx eslint --inspect-config + * + */ +import babelParser from '@babel/eslint-parser'; +import js from '@eslint/js'; +import prettier from 'eslint-config-prettier'; +import ember from 'eslint-plugin-ember/recommended'; +import importPlugin from 'eslint-plugin-import'; +import n from 'eslint-plugin-n'; +import globals from 'globals'; + +const esmParserOptions = { + ecmaFeatures: { modules: true }, + ecmaVersion: 'latest', +}; + +const config = [ + js.configs.recommended, + prettier, + ember.configs.base, + ember.configs.gjs, + /** + * Ignores must be in their own object + * https://eslint.org/docs/latest/use/configure/ignore + */ + { + ignores: [ + 'dist/', + 'dist-*/', + 'declarations/', + 'node_modules/', + 'coverage/', + '!**/.*', + ], + }, + /** + * https://eslint.org/docs/latest/use/configure/configuration-files#configuring-linter-options + */ + { + linterOptions: { + reportUnusedDisableDirectives: 'error', + }, + }, + { + files: ['**/*.js'], + languageOptions: { + parser: babelParser, + }, + }, + { + files: ['**/*.{js,gjs}'], + languageOptions: { + parserOptions: esmParserOptions, + globals: { + ...globals.browser, + }, + }, + }, + { + files: ['src/**/*'], + plugins: { + import: importPlugin, + }, + rules: { + // require relative imports use full extensions + 'import/extensions': ['error', 'always', { ignorePackages: true }], + }, + }, + /** + * CJS node files + */ + { + files: [ + '**/*.cjs', + '.prettierrc.cjs', + '.template-lintrc.cjs', + 'addon-main.cjs', + ], + plugins: { + n, + }, + + languageOptions: { + sourceType: 'script', + ecmaVersion: 'latest', + globals: { + ...globals.node, + }, + }, + }, + /** + * ESM node files + */ + { + files: ['**/*.mjs'], + plugins: { + n, + }, + + languageOptions: { + sourceType: 'module', + ecmaVersion: 'latest', + parserOptions: esmParserOptions, + globals: { + ...globals.node, + }, + }, + }, +]; + +export default config; diff --git a/test-apps/v2-addon/index.html b/test-apps/v2-addon/index.html new file mode 100644 index 0000000..d48c7ff --- /dev/null +++ b/test-apps/v2-addon/index.html @@ -0,0 +1,24 @@ + + + + + + + Demo App + + + + + + + + + + + + + diff --git a/test-apps/v2-addon/package.json b/test-apps/v2-addon/package.json new file mode 100644 index 0000000..356e84f --- /dev/null +++ b/test-apps/v2-addon/package.json @@ -0,0 +1,97 @@ +{ + "name": "v2-addon", + "version": "0.0.0", + "description": "The default blueprint for Embroider v2 addons.", + "keywords": [ + "ember-addon" + ], + "repository": "", + "license": "MIT", + "author": "", + "imports": { + "#src/*": "./src/*" + }, + "exports": { + "./*": "./src/*.js" + }, + "publishConfig": { + "exports": { + ".": { + "default": "./dist/index.js" + }, + "./addon-main.js": "./addon-main.cjs", + "./*.css": "./dist/*.css", + "./*": { + "default": "./dist/*.js" + } + } + }, + "files": [ + "addon-main.cjs", + "declarations", + "dist" + ], + "scripts": { + "build": "rollup --config", + "format": "prettier . --cache --write", + "lint": "concurrently \"pnpm:lint:*(!fix)\" --names \"lint:\" --prefixColors auto", + "lint:fix": "concurrently \"pnpm:lint:*:fix\" --names \"fix:\" --prefixColors auto && pnpm run format", + "lint:format": "prettier . --cache --check", + "lint:hbs": "ember-template-lint . --no-error-on-unmatched-pattern", + "lint:hbs:fix": "ember-template-lint . --fix --no-error-on-unmatched-pattern", + "lint:js": "eslint . --cache", + "lint:js:fix": "eslint . --fix", + "prepack": "rollup --config", + "start": "vite dev", + "test": "vite build --mode=development --out-dir dist-tests && testem --file testem.cjs ci --port 0" + }, + "dependencies": { + "@embroider/addon-shim": "^1.8.9", + "decorator-transforms": "^2.2.2" + }, + "devDependencies": { + "@babel/core": "^7.25.2", + "@babel/eslint-parser": "^7.25.1", + "@babel/runtime": "^7.25.6", + "@ember/app-tsconfig": "^1.0.0", + "@ember/library-tsconfig": "^1.0.0", + "@ember/test-helpers": "^5.2.1", + "@ember/test-waiters": "^4.1.1", + "@embroider/addon-dev": "^8.1.0", + "@embroider/compat": "^4.1.0", + "@embroider/core": "^4.1.0", + "@embroider/macros": "^1.18.0", + "@embroider/vite": "^1.1.5", + "@eslint/js": "^9.17.0", + "@glimmer/component": "^2.0.0", + "@rollup/plugin-babel": "^6.0.4", + "babel-plugin-ember-template-compilation": "^2.2.5", + "concurrently": "^9.0.1", + "ember-page-title": "^8.2.4", + "ember-qunit": "^9.0.2", + "ember-source": "^6.7.0", + "ember-strict-application-resolver": "workspace:*", + "ember-template-lint": "^7.9.0", + "eslint": "^9.17.0", + "eslint-config-prettier": "^10.1.5", + "eslint-plugin-ember": "^12.3.3", + "eslint-plugin-import": "^2.31.0", + "eslint-plugin-n": "^17.15.1", + "globals": "^16.1.0", + "prettier": "^3.4.2", + "prettier-plugin-ember-template-tag": "^2.0.4", + "qunit": "^2.24.1", + "qunit-dom": "^3.4.0", + "rollup": "^4.22.5", + "testem": "^3.15.1", + "vite": "^7.1.9" + }, + "ember": { + "edition": "octane" + }, + "ember-addon": { + "version": 2, + "type": "addon", + "main": "addon-main.cjs" + } +} diff --git a/test-apps/v2-addon/rollup.config.mjs b/test-apps/v2-addon/rollup.config.mjs new file mode 100644 index 0000000..2606119 --- /dev/null +++ b/test-apps/v2-addon/rollup.config.mjs @@ -0,0 +1,69 @@ +import { babel } from '@rollup/plugin-babel'; +import { Addon } from '@embroider/addon-dev/rollup'; +import { fileURLToPath } from 'node:url'; +import { resolve, dirname } from 'node:path'; + +const addon = new Addon({ + srcDir: 'src', + destDir: 'dist', +}); + +const rootDirectory = dirname(fileURLToPath(import.meta.url)); +const babelConfig = resolve(rootDirectory, './babel.publish.config.cjs'); + +export default { + // This provides defaults that work well alongside `publicEntrypoints` below. + // You can augment this if you need to. + output: addon.output(), + + plugins: [ + // These are the modules that users should be able to import from your + // addon. Anything not listed here may get optimized away. + // By default all your JavaScript modules (**/*.js) will be importable. + // But you are encouraged to tweak this to only cover the modules that make + // up your addon's public API. Also make sure your package.json#exports + // is aligned to the config here. + // See https://github.com/embroider-build/embroider/blob/main/docs/v2-faq.md#how-can-i-define-the-public-exports-of-my-addon + addon.publicEntrypoints(['**/*.js', 'index.js']), + + // These are the modules that should get reexported into the traditional + // "app" tree. Things in here should also be in publicEntrypoints above, but + // not everything in publicEntrypoints necessarily needs to go here. + addon.appReexports([ + 'components/**/*.js', + 'helpers/**/*.js', + 'modifiers/**/*.js', + 'services/**/*.js', + ]), + + // Follow the V2 Addon rules about dependencies. Your code can import from + // `dependencies` and `peerDependencies` as well as standard Ember-provided + // package names. + addon.dependencies(), + + // This babel config should *not* apply presets or compile away ES modules. + // It exists only to provide development niceties for you, like automatic + // template colocation. + // + // By default, this will load the actual babel config from the file + // babel.config.json. + babel({ + extensions: ['.js', '.gjs'], + babelHelpers: 'bundled', + configFile: babelConfig, + }), + + // Ensure that standalone .hbs files are properly integrated as Javascript. + addon.hbs(), + + // Ensure that .gjs files are properly integrated as Javascript + addon.gjs(), + + // addons are allowed to contain imports of .css files, which we want rollup + // to leave alone and keep in the published output. + addon.keepAssets(['**/*.css']), + + // Remove leftover build artifacts when starting a new build. + addon.clean(), + ], +}; diff --git a/test-apps/v2-addon/src/index.js b/test-apps/v2-addon/src/index.js new file mode 100644 index 0000000..e69de29 diff --git a/test-apps/v2-addon/testem.cjs b/test-apps/v2-addon/testem.cjs new file mode 100644 index 0000000..9c06458 --- /dev/null +++ b/test-apps/v2-addon/testem.cjs @@ -0,0 +1,26 @@ +'use strict'; + +if (typeof module !== 'undefined') { + module.exports = { + test_page: 'tests/index.html?hidepassed', + cwd: 'dist-tests', + disable_watching: true, + launch_in_ci: ['Chrome'], + launch_in_dev: ['Chrome'], + browser_start_timeout: 120, + browser_args: { + Chrome: { + ci: [ + // --no-sandbox is needed when running Chrome inside a container + process.env.CI ? '--no-sandbox' : null, + '--headless=new', + '--disable-dev-shm-usage', + '--disable-software-rasterizer', + '--mute-audio', + '--remote-debugging-port=0', + '--window-size=1440,900', + ].filter(Boolean), + }, + }, + }; +} diff --git a/test-apps/v2-addon/tests/index.html b/test-apps/v2-addon/tests/index.html new file mode 100644 index 0000000..5f9c8ac --- /dev/null +++ b/test-apps/v2-addon/tests/index.html @@ -0,0 +1,28 @@ + + + + + v2-addon Tests + + + + +
+
+
+
+
+
+ + + + + + + diff --git a/test-apps/v2-addon/tests/test-helper.js b/test-apps/v2-addon/tests/test-helper.js new file mode 100644 index 0000000..bb48ee8 --- /dev/null +++ b/test-apps/v2-addon/tests/test-helper.js @@ -0,0 +1,34 @@ +import EmberApp from 'ember-strict-application-resolver'; +import { compatToRFC1132 } from 'ember-strict-application-resolver/convert'; +import compatModules from '@embroider/virtual/compat-modules'; + +import EmberRouter from '@ember/routing/router'; +import * as QUnit from 'qunit'; +import { setApplication } from '@ember/test-helpers'; +import { setup } from 'qunit-dom'; +import { start as qunitStart, setupEmberOnerrorValidation } from 'ember-qunit'; + +class Router extends EmberRouter { + location = 'none'; + rootURL = '/'; +} + +class TestApp extends EmberApp { + modules = { + ...compatToRFC1132('v2-addon', compatModules), + }; +} + +Router.map(function () {}); + +export function start() { + setApplication( + TestApp.create({ + autoboot: false, + rootElement: '#ember-testing', + }), + ); + setup(QUnit.assert); + setupEmberOnerrorValidation(); + qunitStart(); +} diff --git a/test-apps/v2-addon/tests/unit/modulePrefix-test.js b/test-apps/v2-addon/tests/unit/modulePrefix-test.js new file mode 100644 index 0000000..b31ce8a --- /dev/null +++ b/test-apps/v2-addon/tests/unit/modulePrefix-test.js @@ -0,0 +1,27 @@ +import { module, test } from 'qunit'; +import { setupTest } from 'ember-qunit'; + +import compatModules from '@embroider/virtual/compat-modules'; + +import { compatToRFC1132 } from 'ember-strict-application-resolver/convert'; + +module('compatToRFC1132', function (hooks) { + setupTest(hooks); + + test('it works', function (assert) { + const result = compatToRFC1132('v2-addon', compatModules); + + assert.deepEqual(Object.keys(result), [ + // This lookup comes from package.json#exports + './index', + // From ember-page-title (in devDependencies) + './services/page-title', + ]); + }); + + test('modulePrefix likely incorrect (or util not needed)', function (assert) { + assert.throws(() => { + compatToRFC1132('test-app', compatModules); + }, /These candidates exist: v2-addon/); + }); +}); diff --git a/test-apps/v2-addon/tsconfig.publish.json b/test-apps/v2-addon/tsconfig.publish.json new file mode 100644 index 0000000..b72e699 --- /dev/null +++ b/test-apps/v2-addon/tsconfig.publish.json @@ -0,0 +1,27 @@ +/** + * This tsconfig is only used for publishing. + * + * For local dev experience, see the tsconfig.json + */ +{ + "extends": "@ember/library-tsconfig", + "include": ["./src/**/*", "./unpublished-development-types/**/*"], + "compilerOptions": { + "allowJs": true, + "declarationDir": "declarations", + + /** + https://www.typescriptlang.org/tsconfig#rootDir + "Default: The longest common path of all non-declaration input files." + + Because we want our declarations' structure to match our rollup output, + we need this "rootDir" to match the "srcDir" in the rollup.config.mjs. + + This way, we can have simpler `package.json#exports` that matches + imports to files on disk + */ + "rootDir": "./src", + + "types": ["ember-source/types", "@glint/ember-tsc/types"] + } +} diff --git a/test-apps/v2-addon/vite.config.mjs b/test-apps/v2-addon/vite.config.mjs new file mode 100644 index 0000000..a03f774 --- /dev/null +++ b/test-apps/v2-addon/vite.config.mjs @@ -0,0 +1,32 @@ +import { defineConfig } from 'vite'; +import { extensions, ember, classicEmberSupport } from '@embroider/vite'; +import { babel } from '@rollup/plugin-babel'; + +// For scenario testing +const isCompat = Boolean(process.env.ENABLE_COMPAT_BUILD); + +export default defineConfig({ + resolve: { + alias: [ + { + find: 'v2-addon', + replacement: `${__dirname}/src`, + }, + ], + }, + plugins: [ + ...(isCompat ? [classicEmberSupport()] : []), + ember(), + babel({ + babelHelpers: 'inline', + extensions, + }), + ], + build: { + rollupOptions: { + input: { + tests: 'tests/index.html', + }, + }, + }, +}); diff --git a/test-apps/vite-with-strict-app/.editorconfig b/test-apps/vite-with-strict-app/.editorconfig new file mode 100644 index 0000000..c35a002 --- /dev/null +++ b/test-apps/vite-with-strict-app/.editorconfig @@ -0,0 +1,19 @@ +# EditorConfig helps developers define and maintain consistent +# coding styles between different editors and IDEs +# editorconfig.org + +root = true + +[*] +end_of_line = lf +charset = utf-8 +trim_trailing_whitespace = true +insert_final_newline = true +indent_style = space +indent_size = 2 + +[*.hbs] +insert_final_newline = false + +[*.{diff,md}] +trim_trailing_whitespace = false diff --git a/test-apps/vite-with-strict-app/.ember-cli b/test-apps/vite-with-strict-app/.ember-cli new file mode 100644 index 0000000..acc2a0e --- /dev/null +++ b/test-apps/vite-with-strict-app/.ember-cli @@ -0,0 +1,19 @@ +{ + /** + Setting `isTypeScriptProject` to true will force the blueprint generators to generate TypeScript + rather than JavaScript by default, when a TypeScript version of a given blueprint is available. + */ + "isTypeScriptProject": false, + + /** + Setting `componentAuthoringFormat` to "strict" will force the blueprint generators to generate GJS + or GTS files for the component and the component rendering test. "loose" is the default. + */ + "componentAuthoringFormat": "strict", + + /** + Setting `routeAuthoringFormat` to "strict" will force the blueprint generators to generate GJS + or GTS templates for routes. "loose" is the default + */ + "routeAuthoringFormat": "strict" +} diff --git a/test-apps/vite-with-strict-app/.env.development b/test-apps/vite-with-strict-app/.env.development new file mode 100644 index 0000000..f328914 --- /dev/null +++ b/test-apps/vite-with-strict-app/.env.development @@ -0,0 +1,8 @@ +# This file is committed to git and should not contain any secrets. +# +# Vite recommends using .env.local or .env.[mode].local if you need to manage secrets +# SEE: https://vite.dev/guide/env-and-mode.html#env-files for more information. + + +# Default NODE_ENV with vite build --mode=test is production +NODE_ENV=development diff --git a/test-apps/vite-with-strict-app/.gitignore b/test-apps/vite-with-strict-app/.gitignore new file mode 100644 index 0000000..b455404 --- /dev/null +++ b/test-apps/vite-with-strict-app/.gitignore @@ -0,0 +1,26 @@ +# compiled output +/dist/ +/declarations/ +/tmp/ + +# dependencies +/node_modules/ + +# misc +*.local +/.pnp* +/.eslintcache +/coverage/ +/npm-debug.log* +/testem.log +/yarn-error.log + +# ember-try +/.node_modules.ember-try/ +/npm-shrinkwrap.json.ember-try +/package.json.ember-try +/package-lock.json.ember-try +/yarn.lock.ember-try + +# broccoli-debug +/DEBUG/ diff --git a/test-apps/vite-with-strict-app/.prettierignore b/test-apps/vite-with-strict-app/.prettierignore new file mode 100644 index 0000000..d7ab459 --- /dev/null +++ b/test-apps/vite-with-strict-app/.prettierignore @@ -0,0 +1,13 @@ +# unconventional js +/blueprints/*/files/ + +# compiled output +/dist/ + +# misc +/coverage/ +!.* +.*/ +/pnpm-lock.yaml +ember-cli-update.json +*.html diff --git a/test-apps/vite-with-strict-app/.prettierrc.mjs b/test-apps/vite-with-strict-app/.prettierrc.mjs new file mode 100644 index 0000000..de1d43f --- /dev/null +++ b/test-apps/vite-with-strict-app/.prettierrc.mjs @@ -0,0 +1,37 @@ +export default { + plugins: ['prettier-plugin-ember-template-tag'], + singleQuote: true, + overrides: [ + { + files: ['*.js', '*.ts', '*.cjs', '.mjs', '.cts', '.mts', '.cts'], + options: { + trailingComma: 'es5', + }, + }, + { + files: ['*.html'], + options: { + singleQuote: false, + }, + }, + { + files: ['*.json'], + options: { + singleQuote: false, + }, + }, + { + files: ['*.hbs'], + options: { + singleQuote: false, + }, + }, + { + files: ['*.gjs', '*.gts'], + options: { + templateSingleQuote: false, + trailingComma: 'es5', + }, + }, + ], +}; diff --git a/test-apps/vite-with-strict-app/.stylelintignore b/test-apps/vite-with-strict-app/.stylelintignore new file mode 100644 index 0000000..fc178a0 --- /dev/null +++ b/test-apps/vite-with-strict-app/.stylelintignore @@ -0,0 +1,5 @@ +# unconventional files +/blueprints/*/files/ + +# compiled output +/dist/ diff --git a/test-apps/vite-with-strict-app/.stylelintrc.cjs b/test-apps/vite-with-strict-app/.stylelintrc.cjs new file mode 100644 index 0000000..56a013c --- /dev/null +++ b/test-apps/vite-with-strict-app/.stylelintrc.cjs @@ -0,0 +1,5 @@ +'use strict'; + +module.exports = { + extends: ['stylelint-config-standard'], +}; diff --git a/test-apps/vite-with-strict-app/.template-lintrc.mjs b/test-apps/vite-with-strict-app/.template-lintrc.mjs new file mode 100644 index 0000000..589ce8f --- /dev/null +++ b/test-apps/vite-with-strict-app/.template-lintrc.mjs @@ -0,0 +1,3 @@ +export default { + extends: 'recommended', +}; diff --git a/test-apps/vite-with-strict-app/.watchmanconfig b/test-apps/vite-with-strict-app/.watchmanconfig new file mode 100644 index 0000000..f9c3d8f --- /dev/null +++ b/test-apps/vite-with-strict-app/.watchmanconfig @@ -0,0 +1,3 @@ +{ + "ignore_dirs": ["dist"] +} diff --git a/test-apps/vite-with-strict-app/README.md b/test-apps/vite-with-strict-app/README.md new file mode 100644 index 0000000..02d2c7d --- /dev/null +++ b/test-apps/vite-with-strict-app/README.md @@ -0,0 +1,55 @@ +# vite-with-strict-app + +This README outlines the details of collaborating on this Ember application. +A short introduction of this app could easily go here. + +## Prerequisites + +You will need the following things properly installed on your computer. + +- [Git](https://git-scm.com/) +- [Node.js](https://nodejs.org/) +- [pnpm](https://pnpm.io/) +- [Google Chrome](https://google.com/chrome/) + +## Installation + +- `git clone ` this repository +- `cd vite-with-strict-app` +- `pnpm install` + +## Running / Development + +- `pnpm start` +- Visit your app at [http://localhost:4200](http://localhost:4200). +- Visit your tests at [http://localhost:4200/tests](http://localhost:4200/tests). + +### Code Generators + +Make use of the many generators for code, try `pnpm ember help generate` for more details + +### Running Tests + +- `pnpm test` + +### Linting + +- `pnpm lint` +- `pnpm lint:fix` + +### Building + +- `pnpm vite build --mode development` (development) +- `pnpm build` (production) + +### Deploying + +Specify what it takes to deploy your app. + +## Further Reading / Useful Links + +- [ember.js](https://emberjs.com/) +- [Vite](https://vite.dev) +- Development Browser Extensions + - [ember inspector for chrome](https://chrome.google.com/webstore/detail/ember-inspector/bmdblncegkenkacieihfhpjfppoconhi) + - [ember inspector for firefox](https://addons.mozilla.org/en-US/firefox/addon/ember-inspector/) diff --git a/test-apps/vite-with-strict-app/app/app.js b/test-apps/vite-with-strict-app/app/app.js new file mode 100644 index 0000000..54004c8 --- /dev/null +++ b/test-apps/vite-with-strict-app/app/app.js @@ -0,0 +1,23 @@ +import compatModules from '@embroider/virtual/compat-modules'; +import loadInitializers from 'ember-load-initializers'; +import config from 'vite-with-strict-app/config/environment'; +import { importSync, isDevelopingApp, macroCondition } from '@embroider/macros'; +import setupInspector from '@embroider/legacy-inspector-support/ember-source-4.12'; +import EmberApp from 'ember-strict-application-resolver'; +import { compatToRFC1132 } from 'ember-strict-application-resolver/convert'; + +if (macroCondition(isDevelopingApp())) { + importSync('./deprecation-workflow'); +} + +console.log(compatModules); + +export default class App extends EmberApp { + modules = { + ...compatToRFC1132('vite-with-strict-app', compatModules), + }; + + inspector = setupInspector(this); +} + +loadInitializers(App, config.modulePrefix, compatModules); diff --git a/test-apps/vite-with-strict-app/app/config/environment.js b/test-apps/vite-with-strict-app/app/config/environment.js new file mode 100644 index 0000000..f6037cc --- /dev/null +++ b/test-apps/vite-with-strict-app/app/config/environment.js @@ -0,0 +1,27 @@ +import loadConfigFromMeta from '@embroider/config-meta-loader'; +import { assert } from '@ember/debug'; + +const config = loadConfigFromMeta('vite-with-strict-app'); + +assert( + 'config is not an object', + typeof config === 'object' && config !== null +); +assert( + 'modulePrefix was not detected on your config', + 'modulePrefix' in config && typeof config.modulePrefix === 'string' +); +assert( + 'locationType was not detected on your config', + 'locationType' in config && typeof config.locationType === 'string' +); +assert( + 'rootURL was not detected on your config', + 'rootURL' in config && typeof config.rootURL === 'string' +); +assert( + 'APP was not detected on your config', + 'APP' in config && typeof config.APP === 'object' +); + +export default config; diff --git a/test-apps/vite-with-strict-app/app/deprecation-workflow.js b/test-apps/vite-with-strict-app/app/deprecation-workflow.js new file mode 100644 index 0000000..274a689 --- /dev/null +++ b/test-apps/vite-with-strict-app/app/deprecation-workflow.js @@ -0,0 +1,24 @@ +import setupDeprecationWorkflow from 'ember-cli-deprecation-workflow'; + +/** + * Docs: https://github.com/ember-cli/ember-cli-deprecation-workflow + */ +setupDeprecationWorkflow({ + /** + false by default, but if a developer / team wants to be more aggressive about being proactive with + handling their deprecations, this should be set to "true" + */ + throwOnUnhandled: false, + workflow: [ + /* ... handlers ... */ + /* to generate this list, run your app for a while (or run the test suite), + * and then run in the browser console: + * + * deprecationWorkflow.flushDeprecations() + * + * And copy the handlers here + */ + /* example: */ + /* { handler: 'silence', matchId: 'template-action' }, */ + ], +}); diff --git a/test-apps/vite-with-strict-app/app/router.js b/test-apps/vite-with-strict-app/app/router.js new file mode 100644 index 0000000..4d30145 --- /dev/null +++ b/test-apps/vite-with-strict-app/app/router.js @@ -0,0 +1,9 @@ +import EmberRouter from '@embroider/router'; +import config from 'vite-with-strict-app/config/environment'; + +export default class Router extends EmberRouter { + location = config.locationType; + rootURL = config.rootURL; +} + +Router.map(function () {}); diff --git a/test-apps/vite-with-strict-app/app/services/foo.js b/test-apps/vite-with-strict-app/app/services/foo.js new file mode 100644 index 0000000..638277d --- /dev/null +++ b/test-apps/vite-with-strict-app/app/services/foo.js @@ -0,0 +1,5 @@ +import Service from '@ember/service'; + +export default class Foo extends Service { + two = 2; +} diff --git a/test-apps/vite-with-strict-app/app/styles/app.css b/test-apps/vite-with-strict-app/app/styles/app.css new file mode 100644 index 0000000..2763afa --- /dev/null +++ b/test-apps/vite-with-strict-app/app/styles/app.css @@ -0,0 +1 @@ +/* Ember supports plain CSS out of the box. More info: https://cli.emberjs.com/release/advanced-use/stylesheets/ */ diff --git a/test-apps/vite-with-strict-app/app/templates/application.gjs b/test-apps/vite-with-strict-app/app/templates/application.gjs new file mode 100644 index 0000000..28fcde3 --- /dev/null +++ b/test-apps/vite-with-strict-app/app/templates/application.gjs @@ -0,0 +1,12 @@ +import { pageTitle } from 'ember-page-title'; +import { WelcomePage } from 'ember-welcome-page'; + + diff --git a/test-apps/vite-with-strict-app/babel.config.cjs b/test-apps/vite-with-strict-app/babel.config.cjs new file mode 100644 index 0000000..419088a --- /dev/null +++ b/test-apps/vite-with-strict-app/babel.config.cjs @@ -0,0 +1,42 @@ +const { + babelCompatSupport, + templateCompatSupport, +} = require('@embroider/compat/babel'); + +module.exports = { + plugins: [ + [ + 'babel-plugin-ember-template-compilation', + { + compilerPath: 'ember-source/dist/ember-template-compiler.js', + enableLegacyModules: [ + 'ember-cli-htmlbars', + 'ember-cli-htmlbars-inline-precompile', + 'htmlbars-inline-precompile', + ], + transforms: [...templateCompatSupport()], + }, + ], + [ + 'module:decorator-transforms', + { + runtime: { + import: require.resolve('decorator-transforms/runtime-esm'), + }, + }, + ], + [ + '@babel/plugin-transform-runtime', + { + absoluteRuntime: __dirname, + useESModules: true, + regenerator: false, + }, + ], + ...babelCompatSupport(), + ], + + generatorOpts: { + compact: false, + }, +}; diff --git a/test-apps/vite-with-strict-app/config/ember-cli-update.json b/test-apps/vite-with-strict-app/config/ember-cli-update.json new file mode 100644 index 0000000..45997aa --- /dev/null +++ b/test-apps/vite-with-strict-app/config/ember-cli-update.json @@ -0,0 +1,19 @@ +{ + "schemaVersion": "1.0.0", + "packages": [ + { + "name": "@ember/app-blueprint", + "version": "6.8.2", + "blueprints": [ + { + "name": "@ember/app-blueprint", + "isBaseBlueprint": true, + "options": [ + "--pnpm", + "--ci-provider=github" + ] + } + ] + } + ] +} diff --git a/test-apps/vite-with-strict-app/config/environment.js b/test-apps/vite-with-strict-app/config/environment.js new file mode 100644 index 0000000..95ce02d --- /dev/null +++ b/test-apps/vite-with-strict-app/config/environment.js @@ -0,0 +1,48 @@ +'use strict'; + +module.exports = function (environment) { + const ENV = { + modulePrefix: 'vite-with-strict-app', + environment, + rootURL: '/', + locationType: 'history', + EmberENV: { + EXTEND_PROTOTYPES: false, + FEATURES: { + // Here you can enable experimental features on an ember canary build + // e.g. EMBER_NATIVE_DECORATOR_SUPPORT: true + }, + }, + + APP: { + // Here you can pass flags/options to your application instance + // when it is created + }, + }; + + if (environment === 'development') { + // ENV.APP.LOG_RESOLVER = true; + // ENV.APP.LOG_ACTIVE_GENERATION = true; + // ENV.APP.LOG_TRANSITIONS = true; + // ENV.APP.LOG_TRANSITIONS_INTERNAL = true; + // ENV.APP.LOG_VIEW_LOOKUPS = true; + } + + if (environment === 'test') { + // Testem prefers this... + ENV.locationType = 'none'; + + // keep test console output quieter + ENV.APP.LOG_ACTIVE_GENERATION = false; + ENV.APP.LOG_VIEW_LOOKUPS = false; + + ENV.APP.rootElement = '#ember-testing'; + ENV.APP.autoboot = false; + } + + if (environment === 'production') { + // here you can enable a production-specific feature + } + + return ENV; +}; diff --git a/test-apps/vite-with-strict-app/config/optional-features.json b/test-apps/vite-with-strict-app/config/optional-features.json new file mode 100644 index 0000000..5329dd9 --- /dev/null +++ b/test-apps/vite-with-strict-app/config/optional-features.json @@ -0,0 +1,7 @@ +{ + "application-template-wrapper": false, + "default-async-observers": true, + "jquery-integration": false, + "template-only-glimmer-components": true, + "no-implicit-route-model": true +} diff --git a/test-apps/vite-with-strict-app/config/targets.js b/test-apps/vite-with-strict-app/config/targets.js new file mode 100644 index 0000000..1e48e05 --- /dev/null +++ b/test-apps/vite-with-strict-app/config/targets.js @@ -0,0 +1,11 @@ +'use strict'; + +const browsers = [ + 'last 1 Chrome versions', + 'last 1 Firefox versions', + 'last 1 Safari versions', +]; + +module.exports = { + browsers, +}; diff --git a/test-apps/vite-with-strict-app/ember-cli-build.cjs b/test-apps/vite-with-strict-app/ember-cli-build.cjs new file mode 100644 index 0000000..d955a20 --- /dev/null +++ b/test-apps/vite-with-strict-app/ember-cli-build.cjs @@ -0,0 +1,11 @@ +'use strict'; + +const EmberApp = require('ember-cli/lib/broccoli/ember-app'); +const { compatBuild } = require('@embroider/compat'); + +module.exports = async function (defaults) { + const { buildOnce } = await import('@embroider/vite'); + let app = new EmberApp(defaults, {}); + + return compatBuild(app, buildOnce); +}; diff --git a/test-apps/vite-with-strict-app/eslint.config.mjs b/test-apps/vite-with-strict-app/eslint.config.mjs new file mode 100644 index 0000000..7e5a2d6 --- /dev/null +++ b/test-apps/vite-with-strict-app/eslint.config.mjs @@ -0,0 +1,115 @@ +/** + * Debugging: + * https://eslint.org/docs/latest/use/configure/debug + * ---------------------------------------------------- + * + * Print a file's calculated configuration + * + * npx eslint --print-config path/to/file.js + * + * Inspecting the config + * + * npx eslint --inspect-config + * + */ +import globals from 'globals'; +import js from '@eslint/js'; + +import ember from 'eslint-plugin-ember/recommended'; +import eslintConfigPrettier from 'eslint-config-prettier'; +import qunit from 'eslint-plugin-qunit'; +import n from 'eslint-plugin-n'; + +import babelParser from '@babel/eslint-parser'; + +const esmParserOptions = { + ecmaFeatures: { modules: true }, + ecmaVersion: 'latest', +}; + +export default [ + js.configs.recommended, + eslintConfigPrettier, + ember.configs.base, + ember.configs.gjs, + /** + * Ignores must be in their own object + * https://eslint.org/docs/latest/use/configure/ignore + */ + { + ignores: ['dist/', 'node_modules/', 'coverage/', '!**/.*'], + }, + /** + * https://eslint.org/docs/latest/use/configure/configuration-files#configuring-linter-options + */ + { + linterOptions: { + reportUnusedDisableDirectives: 'error', + }, + }, + { + files: ['**/*.js'], + languageOptions: { + parser: babelParser, + }, + }, + { + files: ['**/*.{js,gjs}'], + languageOptions: { + parserOptions: esmParserOptions, + globals: { + ...globals.browser, + }, + }, + }, + { + files: ['tests/**/*-test.{js,gjs}'], + plugins: { + qunit, + }, + }, + /** + * CJS node files + */ + { + files: [ + '**/*.cjs', + 'config/**/*.js', + 'testem.js', + 'testem*.js', + '.prettierrc.js', + '.stylelintrc.js', + '.template-lintrc.js', + 'ember-cli-build.js', + ], + plugins: { + n, + }, + + languageOptions: { + sourceType: 'script', + ecmaVersion: 'latest', + globals: { + ...globals.node, + }, + }, + }, + /** + * ESM node files + */ + { + files: ['**/*.mjs'], + plugins: { + n, + }, + + languageOptions: { + sourceType: 'module', + ecmaVersion: 'latest', + parserOptions: esmParserOptions, + globals: { + ...globals.node, + }, + }, + }, +]; diff --git a/test-apps/vite-with-strict-app/index.html b/test-apps/vite-with-strict-app/index.html new file mode 100644 index 0000000..b93c260 --- /dev/null +++ b/test-apps/vite-with-strict-app/index.html @@ -0,0 +1,29 @@ + + + + + ViteWithStrictApp + + + + {{content-for "head"}} + + + + + {{content-for "head-footer"}} + + + {{content-for "body"}} + + + + + {{content-for "body-footer"}} + + diff --git a/test-apps/vite-with-strict-app/package.json b/test-apps/vite-with-strict-app/package.json new file mode 100644 index 0000000..0a8764c --- /dev/null +++ b/test-apps/vite-with-strict-app/package.json @@ -0,0 +1,91 @@ +{ + "name": "vite-with-strict-app", + "version": "0.0.0", + "private": true, + "description": "Small description for vite-with-strict-app goes here", + "repository": "", + "license": "MIT", + "author": "", + "directories": { + "doc": "doc", + "test": "tests" + }, + "scripts": { + "build": "vite build", + "format": "prettier . --cache --write", + "lint": "concurrently \"pnpm:lint:*(!fix)\" --names \"lint:\" --prefixColors auto", + "lint:css": "stylelint \"**/*.css\"", + "lint:css:fix": "concurrently \"pnpm:lint:css -- --fix\"", + "lint:fix": "concurrently \"pnpm:lint:*:fix\" --names \"fix:\" --prefixColors auto && pnpm format", + "lint:format": "prettier . --cache --check", + "lint:hbs": "ember-template-lint .", + "lint:hbs:fix": "ember-template-lint . --fix", + "lint:js": "eslint . --cache", + "lint:js:fix": "eslint . --fix", + "start": "vite", + "test": "vite build --mode development && ember test --path dist" + }, + "exports": { + "./tests/*": "./tests/*", + "./*": "./app/*" + }, + "devDependencies": { + "@babel/core": "^7.28.4", + "@babel/eslint-parser": "^7.28.4", + "@babel/plugin-transform-runtime": "^7.28.3", + "@babel/runtime": "^7.28.4", + "@ember/optional-features": "^2.2.0", + "@ember/string": "^4.0.1", + "@ember/test-helpers": "^5.3.0", + "@ember/test-waiters": "^4.1.1", + "@embroider/compat": "^4.1.7", + "@embroider/config-meta-loader": "^1.0.0", + "@embroider/core": "^4.2.4", + "@embroider/legacy-inspector-support": "^0.1.3", + "@embroider/macros": "^1.19.1", + "@embroider/router": "^3.0.4", + "@embroider/vite": "^1.3.2", + "@eslint/js": "^9.37.0", + "@glimmer/component": "^2.0.0", + "@rollup/plugin-babel": "^6.0.4", + "babel-plugin-ember-template-compilation": "^2.4.1", + "concurrently": "^9.2.1", + "decorator-transforms": "^2.3.0", + "ember-auto-import": "^2.11.1", + "ember-cli": "~6.8.0", + "ember-cli-babel": "^8.2.0", + "ember-cli-deprecation-workflow": "^3.4.0", + "ember-load-initializers": "^3.0.1", + "ember-modifier": "^4.2.2", + "ember-page-title": "^9.0.3", + "ember-qunit": "^9.0.4", + "ember-resolver": "^13.1.1", + "ember-source": "~6.8.0", + "ember-template-lint": "^7.9.3", + "ember-welcome-page": "^7.0.2", + "eslint": "^9.37.0", + "eslint-config-prettier": "^10.1.8", + "eslint-plugin-ember": "^12.7.4", + "eslint-plugin-n": "^17.23.1", + "eslint-plugin-qunit": "^8.2.5", + "globals": "^16.4.0", + "prettier": "^3.6.2", + "prettier-plugin-ember-template-tag": "^2.1.0", + "qunit": "^2.24.2", + "qunit-dom": "^3.5.0", + "stylelint": "^16.25.0", + "stylelint-config-standard": "^38.0.0", + "testem": "^3.16.0", + "tracked-built-ins": "^4.0.0", + "vite": "^7.1.9" + }, + "engines": { + "node": ">= 20" + }, + "ember": { + "edition": "octane" + }, + "dependencies": { + "ember-strict-application-resolver": "workspace:*" + } +} diff --git a/test-apps/vite-with-strict-app/public/robots.txt b/test-apps/vite-with-strict-app/public/robots.txt new file mode 100644 index 0000000..f591645 --- /dev/null +++ b/test-apps/vite-with-strict-app/public/robots.txt @@ -0,0 +1,3 @@ +# http://www.robotstxt.org +User-agent: * +Disallow: diff --git a/test-apps/vite-with-strict-app/testem.cjs b/test-apps/vite-with-strict-app/testem.cjs new file mode 100644 index 0000000..b4b6691 --- /dev/null +++ b/test-apps/vite-with-strict-app/testem.cjs @@ -0,0 +1,25 @@ +'use strict'; + +if (typeof module !== 'undefined') { + module.exports = { + test_page: 'tests/index.html?hidepassed', + disable_watching: true, + launch_in_ci: ['Chrome'], + launch_in_dev: ['Chrome'], + browser_start_timeout: 120, + browser_args: { + Chrome: { + ci: [ + // --no-sandbox is needed when running Chrome inside a container + process.env.CI ? '--no-sandbox' : null, + '--headless', + '--disable-dev-shm-usage', + '--disable-software-rasterizer', + '--mute-audio', + '--remote-debugging-port=0', + '--window-size=1440,900', + ].filter(Boolean), + }, + }, + }; +} diff --git a/test-apps/vite-with-strict-app/tests/helpers/index.js b/test-apps/vite-with-strict-app/tests/helpers/index.js new file mode 100644 index 0000000..ab04c16 --- /dev/null +++ b/test-apps/vite-with-strict-app/tests/helpers/index.js @@ -0,0 +1,42 @@ +import { + setupApplicationTest as upstreamSetupApplicationTest, + setupRenderingTest as upstreamSetupRenderingTest, + setupTest as upstreamSetupTest, +} from 'ember-qunit'; + +// This file exists to provide wrappers around ember-qunit's +// test setup functions. This way, you can easily extend the setup that is +// needed per test type. + +function setupApplicationTest(hooks, options) { + upstreamSetupApplicationTest(hooks, options); + + // Additional setup for application tests can be done here. + // + // For example, if you need an authenticated session for each + // application test, you could do: + // + // hooks.beforeEach(async function () { + // await authenticateSession(); // ember-simple-auth + // }); + // + // This is also a good place to call test setup functions coming + // from other addons: + // + // setupIntl(hooks, 'en-us'); // ember-intl + // setupMirage(hooks); // ember-cli-mirage +} + +function setupRenderingTest(hooks, options) { + upstreamSetupRenderingTest(hooks, options); + + // Additional setup for rendering tests can be done here. +} + +function setupTest(hooks, options) { + upstreamSetupTest(hooks, options); + + // Additional setup for unit tests can be done here. +} + +export { setupApplicationTest, setupRenderingTest, setupTest }; diff --git a/test-apps/vite-with-strict-app/tests/index.html b/test-apps/vite-with-strict-app/tests/index.html new file mode 100644 index 0000000..3a6acc9 --- /dev/null +++ b/test-apps/vite-with-strict-app/tests/index.html @@ -0,0 +1,43 @@ + + + + + ViteWithStrictApp Tests + + + + {{content-for "head"}} + {{content-for "test-head"}} + + + + + + {{content-for "head-footer"}} + {{content-for "test-head-footer"}} + + + {{content-for "body"}} + {{content-for "test-body"}} + +
+
+
+
+
+
+ + + + + + + + + {{content-for "body-footer"}} + + diff --git a/test-apps/vite-with-strict-app/tests/integration/.gitkeep b/test-apps/vite-with-strict-app/tests/integration/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/test-apps/vite-with-strict-app/tests/test-helper.js b/test-apps/vite-with-strict-app/tests/test-helper.js new file mode 100644 index 0000000..6bd565a --- /dev/null +++ b/test-apps/vite-with-strict-app/tests/test-helper.js @@ -0,0 +1,15 @@ +import Application from 'vite-with-strict-app/app'; +import config from 'vite-with-strict-app/config/environment'; +import * as QUnit from 'qunit'; +import { setApplication } from '@ember/test-helpers'; +import { setup } from 'qunit-dom'; +import { start as qunitStart, setupEmberOnerrorValidation } from 'ember-qunit'; + +export function start() { + setApplication(Application.create(config.APP)); + + setup(QUnit.assert); + setupEmberOnerrorValidation(); + + qunitStart(); +} diff --git a/test-apps/vite-with-strict-app/tests/unit/services-test.js b/test-apps/vite-with-strict-app/tests/unit/services-test.js new file mode 100644 index 0000000..a4cfc3c --- /dev/null +++ b/test-apps/vite-with-strict-app/tests/unit/services-test.js @@ -0,0 +1,37 @@ +import { module, test } from 'qunit'; +import { setupTest } from 'ember-qunit'; + +module('Services', function (hooks) { + setupTest(hooks); + + test('has the config', function (assert) { + let entry = this.owner.resolveRegistration('config:environment'); + + assert.ok(entry); + }); + + test('has the router', function (assert) { + // eslint-disable-next-line ember/no-private-routing-service + let entry = this.owner.lookup('router:main'); + + assert.ok(entry); + }); + + test('has the application template', function (assert) { + let entry = this.owner.hasRegistration('template:application'); + + assert.ok(entry); + }); + + test('has services from addons', function (assert) { + let pageTitle = this.owner.lookup('service:page-title'); + + assert.ok(pageTitle, 'page title service found'); + }); + + test('has own services', function (assert) { + let foo = this.owner.lookup('service:foo'); + + assert.strictEqual(foo.two, 2); + }); +}); diff --git a/test-apps/vite-with-strict-app/vite.config.mjs b/test-apps/vite-with-strict-app/vite.config.mjs new file mode 100644 index 0000000..219253d --- /dev/null +++ b/test-apps/vite-with-strict-app/vite.config.mjs @@ -0,0 +1,15 @@ +import { defineConfig } from 'vite'; +import { extensions, classicEmberSupport, ember } from '@embroider/vite'; +import { babel } from '@rollup/plugin-babel'; + +export default defineConfig({ + plugins: [ + classicEmberSupport(), + ember(), + // extra plugins here + babel({ + babelHelpers: 'runtime', + extensions, + }), + ], +}); diff --git a/tests/utils-test.ts b/tests/utils-test.ts new file mode 100644 index 0000000..d5333fc --- /dev/null +++ b/tests/utils-test.ts @@ -0,0 +1,24 @@ +import { module, test } from 'qunit'; +import { setupTest } from 'ember-qunit'; +import { compatToRFC1132 } from '#src/convert.ts'; + +module('compatToRFC1132', function (hooks) { + setupTest(hooks); + + test('it works', function (assert) { + const result = compatToRFC1132('test-app', { + 'test-app/services/page-title': {}, + }); + + assert.deepEqual(Object.keys(result), [ + // From ember-page-title (in devDependencies) + './services/page-title', + ]); + }); + + test('modulePrefix likely incorrect (or util not needed)', function (assert) { + assert.throws(() => { + compatToRFC1132('test-app', { 'other-thing': {}, 'top-level': {} }); + }, /These candidates exist: other-thing, top-level/); + }); +});