From 43ff7794bbd37a86c1c7c9bcb246e9f2213e07f7 Mon Sep 17 00:00:00 2001 From: patrickpircher Date: Mon, 27 Nov 2023 14:33:19 +0100 Subject: [PATCH 01/55] vite load from app --- packages/shared-internals/src/package.ts | 1 + packages/vite/src/resolver.ts | 126 +++++++++++++++++++++- tests/vite-app/app/components/example.hbs | 2 +- tests/vite-app/vite.config.mts | 10 +- 4 files changed, 129 insertions(+), 10 deletions(-) diff --git a/packages/shared-internals/src/package.ts b/packages/shared-internals/src/package.ts index 344be75eb..7593c0005 100644 --- a/packages/shared-internals/src/package.ts +++ b/packages/shared-internals/src/package.ts @@ -53,6 +53,7 @@ export default class Package { } isEmberPackage(): boolean { + if (this.isApp) return true; let keywords = this.packageJSON.keywords; return Boolean(keywords && (keywords as string[]).includes('ember-addon')); } diff --git a/packages/vite/src/resolver.ts b/packages/vite/src/resolver.ts index 89ff3f56e..22ff328f2 100644 --- a/packages/vite/src/resolver.ts +++ b/packages/vite/src/resolver.ts @@ -1,17 +1,91 @@ import type { PluginContext, ResolveIdResult } from 'rollup'; import type { Plugin } from 'vite'; +import { join, resolve } from 'path'; import type { Resolution, ResolverFunction } from '@embroider/core'; -import { virtualContent, ResolverLoader } from '@embroider/core'; +import { virtualContent, ResolverLoader, getAppMeta } from '@embroider/core'; +import { readFileSync, existsSync } from 'fs'; import { RollupModuleRequest, virtualPrefix } from './request'; import assertNever from 'assert-never'; +const cwd = process.cwd(); +const root = join(cwd, 'app'); +const publicDir = join(cwd, 'public'); +const tests = join(cwd, 'tests'); +const embroiderDir = join(cwd, 'node_modules', '.embroider'); +const rewrittenApp = join(embroiderDir, 'rewritten-app'); + +const appIndex = resolve(root, "index.html").replace(/\\/g, '/'); +const testsIndex = resolve(tests, "index.html").replace(/\\/g, '/'); +const rewrittenAppIndex = resolve(rewrittenApp, 'index.html'); +const rewrittenTestIndex = resolve(rewrittenApp, 'tests', 'index.html'); + export function resolver(): Plugin { let resolverLoader = new ResolverLoader(process.cwd()); - + const engine = resolverLoader.resolver.options.engines[0]; + engine.root = root; + engine.activeAddons.forEach((addon) => { + addon.canResolveFromFile = addon.canResolveFromFile.replace(rewrittenApp, cwd); + }); + const appMeta = getAppMeta(cwd); + const pkg = resolverLoader.resolver.packageCache.get(cwd); + pkg.packageJSON['ember-addon'] = pkg.packageJSON['ember-addon'] || {}; + pkg.packageJSON['keywords'] = pkg.packageJSON['keywords'] || []; + pkg.packageJSON['ember-addon'].version = 2; + pkg.packageJSON['ember-addon'].type = 'app'; + pkg.packageJSON['keywords'].push('ember-addon', 'ember-engine'); + pkg.meta!['auto-upgraded'] = true; + (pkg as any).plainPkg.root = root; + const json = pkg.packageJSON; + Object.defineProperty(Object.getPrototypeOf((pkg as any).plainPkg), 'internalPackageJSON', { + get() { + if (this.isApp || this.root === root) { + return json; + } + return JSON.parse(readFileSync(join(this.root, 'package.json'), 'utf8')); + } + }) return { name: 'embroider-resolver', enforce: 'pre', + configureServer(server) { + server.middlewares.use((req, _res, next) => { + if (req.originalUrl === '/') { + req.originalUrl = '/app/index.html'; + (req as any).url = '/app/index.html'; + } + if (req.originalUrl.includes('?')) { + next(); + return; + } + if (req.originalUrl && req.originalUrl.length > 1) { + let pkg = resolverLoader.resolver.packageCache.ownerOfFile(req.originalUrl); + let p = join(publicDir, req.originalUrl); + if (pkg && pkg.isV2App() && existsSync(p)) { + req.originalUrl = '/' + p; + (req as any).url = '/' + p; + next(); + return + } + p = join('node_modules', req.originalUrl); + pkg = resolverLoader.resolver.packageCache.ownerOfFile(p); + if (pkg && pkg.meta && (pkg.meta as any)['public-assets']) { + const asset = Object.entries((pkg.meta as any)['public-assets']).find(([_key, a]) => a === req.originalUrl)?.[0]; + const local = asset ? join(cwd, p) : null; + if (local && existsSync(local)) { + req.originalUrl = '/' + p; + (req as any).url = '/' + p; + return next(); + } + } + return next(); + } + return next(); + }) + }, async resolveId(source, importer, options) { + if (source.startsWith('/assets/')) { + return resolve(root, '.' + source); + } let request = RollupModuleRequest.from(source, importer, options.custom); if (!request) { // fallthrough to other rollup plugins @@ -28,10 +102,43 @@ export function resolver(): Plugin { } }, load(id) { - if (id.startsWith(virtualPrefix)) { - return virtualContent(id.slice(virtualPrefix.length), resolverLoader.resolver); + if (id.startsWith(root + '/assets/')) { + if (id.endsWith(appMeta.name + '.js')) { + let code = ''; + engine.activeAddons.forEach((_addon) => { + + }); + code += ` + const appModules = import.meta.glob([ + '../init/**/*.{js,ts}', + '../initializers/**/*.{js,ts}', + '../instance-initializers/**/*.{js,ts}' + '../transforms/**/*.{js,ts}' + '../services/**/*.{js,ts}' + ], { eager: true }); + Object.entries(appModules).forEach(([name, imp]) => define(name.replace('/${root}/', '${appMeta.name}/').split('.').slice(0, -1).join('/'), [], () => imp)); + + require('${appMeta.name}/app').default.create({"name":"${appMeta.name}","version":"${pkg.version}+cf3ef785"}); + ` + } + return readFileSync(rewrittenApp + id.replace(root + '/assets/', '/assets/').split('?')[0]).toString(); + } + + if (id.startsWith(virtualPrefix)) { + return virtualContent(id.slice(virtualPrefix.length), resolverLoader.resolver); } }, + transformIndexHtml: { + order: 'pre', + handler(_html, ctx) { + if (ctx.filename === appIndex) { + return readFileSync(rewrittenAppIndex).toString(); + } + if (ctx.filename === testsIndex) { + return readFileSync(rewrittenTestIndex).toString(); + } + } + } }; } @@ -59,6 +166,17 @@ function defaultResolve(context: PluginContext): ResolverFunctionhey {{@message}} \ No newline at end of file +
hey5 {{@message}}
\ No newline at end of file diff --git a/tests/vite-app/vite.config.mts b/tests/vite-app/vite.config.mts index dd5985900..2cfc2e6ea 100644 --- a/tests/vite-app/vite.config.mts +++ b/tests/vite-app/vite.config.mts @@ -10,10 +10,11 @@ import { import { resolve } from "path"; import { babel } from "@rollup/plugin-babel"; -const root = "node_modules/.embroider/rewritten-app"; +const root = "app"; +const rewrittenApp = "node_modules/.embroider/rewritten-app"; export default defineConfig({ - root, + root: '.', plugins: [ hbs(), templateTag(), @@ -27,13 +28,12 @@ export default defineConfig({ // javascript but the javascript still also needs babel, but we don't want // to rename them because vite isn't great about knowing how to hot-reload // them if we resolve them to made-up names. - extensions: [".gjs", ".js", ".hbs"], + extensions: [".gjs", ".js", ".hbs", ".ts", ".gts"], }), ], - optimizeDeps: optimizeDeps(), + optimizeDeps: { exclude: addons(__dirname) }, server: { watch: { - ignored: ["!**/node_modules/.embroider/rewritten-app/**"], }, }, build: { From c124d5cfca03abff30fa0fae2a01caedcc5a5970 Mon Sep 17 00:00:00 2001 From: patrickpircher Date: Mon, 27 Nov 2023 14:33:19 +0100 Subject: [PATCH 02/55] wip --- packages/vite/src/resolver.ts | 172 ++++++++++----------------------- tests/vite-app/package.json | 2 +- tests/vite-app/vite.config.mts | 4 +- 3 files changed, 57 insertions(+), 121 deletions(-) diff --git a/packages/vite/src/resolver.ts b/packages/vite/src/resolver.ts index 22ff328f2..745cf07e1 100644 --- a/packages/vite/src/resolver.ts +++ b/packages/vite/src/resolver.ts @@ -1,97 +1,58 @@ import type { PluginContext, ResolveIdResult } from 'rollup'; import type { Plugin } from 'vite'; import { join, resolve } from 'path'; -import type { Resolution, ResolverFunction } from '@embroider/core'; -import { virtualContent, ResolverLoader, getAppMeta } from '@embroider/core'; -import { readFileSync, existsSync } from 'fs'; +import type { Resolution, ResolverFunction, ResolverOptions } from '@embroider/core'; +import { Resolver, locateEmbroiderWorkingDir, virtualContent } from '@embroider/core'; +import { readJSONSync } from 'fs-extra'; +import { existsSync, promises, readFileSync } from 'fs'; import { RollupModuleRequest, virtualPrefix } from './request'; import assertNever from 'assert-never'; -const cwd = process.cwd(); -const root = join(cwd, 'app'); -const publicDir = join(cwd, 'public'); -const tests = join(cwd, 'tests'); -const embroiderDir = join(cwd, 'node_modules', '.embroider'); -const rewrittenApp = join(embroiderDir, 'rewritten-app'); +export function resolver(): Plugin { + const cwd = process.cwd(); + const root = join(cwd, 'app'); + const tests = join(cwd, 'tests'); + const embroiderDir = locateEmbroiderWorkingDir(cwd); + const rewrittenApp = join(embroiderDir, 'rewritten-app'); -const appIndex = resolve(root, "index.html").replace(/\\/g, '/'); -const testsIndex = resolve(tests, "index.html").replace(/\\/g, '/'); -const rewrittenAppIndex = resolve(rewrittenApp, 'index.html'); -const rewrittenTestIndex = resolve(rewrittenApp, 'tests', 'index.html'); + const appIndex = resolve(root, "index.html").replace(/\\/g, '/'); + const testsIndex = resolve(tests, "index.html").replace(/\\/g, '/'); + const rewrittenAppIndex = resolve(rewrittenApp, 'index.html'); + const rewrittenTestIndex = resolve(rewrittenApp, 'tests', 'index.html'); -export function resolver(): Plugin { - let resolverLoader = new ResolverLoader(process.cwd()); - const engine = resolverLoader.resolver.options.engines[0]; - engine.root = root; - engine.activeAddons.forEach((addon) => { - addon.canResolveFromFile = addon.canResolveFromFile.replace(rewrittenApp, cwd); - }); - const appMeta = getAppMeta(cwd); - const pkg = resolverLoader.resolver.packageCache.get(cwd); - pkg.packageJSON['ember-addon'] = pkg.packageJSON['ember-addon'] || {}; - pkg.packageJSON['keywords'] = pkg.packageJSON['keywords'] || []; - pkg.packageJSON['ember-addon'].version = 2; - pkg.packageJSON['ember-addon'].type = 'app'; - pkg.packageJSON['keywords'].push('ember-addon', 'ember-engine'); - pkg.meta!['auto-upgraded'] = true; - (pkg as any).plainPkg.root = root; - const json = pkg.packageJSON; - Object.defineProperty(Object.getPrototypeOf((pkg as any).plainPkg), 'internalPackageJSON', { - get() { - if (this.isApp || this.root === root) { - return json; - } - return JSON.parse(readFileSync(join(this.root, 'package.json'), 'utf8')); - } - }) + let resolverOptions: ResolverOptions = readJSONSync(join(embroiderDir, 'resolver.json')); + let resolver = new Resolver(resolverOptions); return { name: 'embroider-resolver', enforce: 'pre', - configureServer(server) { - server.middlewares.use((req, _res, next) => { - if (req.originalUrl === '/') { - req.originalUrl = '/app/index.html'; - (req as any).url = '/app/index.html'; - } - if (req.originalUrl.includes('?')) { - next(); - return; - } - if (req.originalUrl && req.originalUrl.length > 1) { - let pkg = resolverLoader.resolver.packageCache.ownerOfFile(req.originalUrl); - let p = join(publicDir, req.originalUrl); - if (pkg && pkg.isV2App() && existsSync(p)) { - req.originalUrl = '/' + p; - (req as any).url = '/' + p; - next(); - return - } - p = join('node_modules', req.originalUrl); - pkg = resolverLoader.resolver.packageCache.ownerOfFile(p); - if (pkg && pkg.meta && (pkg.meta as any)['public-assets']) { - const asset = Object.entries((pkg.meta as any)['public-assets']).find(([_key, a]) => a === req.originalUrl)?.[0]; - const local = asset ? join(cwd, p) : null; - if (local && existsSync(local)) { - req.originalUrl = '/' + p; - (req as any).url = '/' + p; - return next(); - } - } - return next(); + async resolveId(source: string, importer, options) { + if (source.startsWith(virtualPrefix)) { + return source; + } + if (importer && importer.startsWith(root)) { + const rewrittenImporter = importer.replace(root, rewrittenApp); + if (source.startsWith('/') && !source.startsWith(cwd)) { + source = rewrittenApp + source; + } + const r = await this.resolve(source, rewrittenImporter, { ...options }); + if (r && !r.id.includes('/assets/')) { + r.id = r.id.replace(rewrittenApp, root); + } + if (r && r.id) { + const rewritten = r.id.replace(rewrittenApp, root); + if (existsSync(rewritten)) { + r.id = rewritten; } - return next(); - }) - }, - async resolveId(source, importer, options) { - if (source.startsWith('/assets/')) { - return resolve(root, '.' + source); + } + return r; } + let request = RollupModuleRequest.from(source, importer, options.custom); if (!request) { // fallthrough to other rollup plugins return null; } - let resolution = await resolverLoader.resolver.resolve(request, defaultResolve(this)); + let resolution = await resolver.resolve(request, defaultResolve(this)); switch (resolution.type) { case 'found': return resolution.result; @@ -101,32 +62,24 @@ export function resolver(): Plugin { throw assertNever(resolution); } }, - load(id) { - if (id.startsWith(root + '/assets/')) { - if (id.endsWith(appMeta.name + '.js')) { - let code = ''; - engine.activeAddons.forEach((_addon) => { - - }); - code += ` - const appModules = import.meta.glob([ - '../init/**/*.{js,ts}', - '../initializers/**/*.{js,ts}', - '../instance-initializers/**/*.{js,ts}' - '../transforms/**/*.{js,ts}' - '../services/**/*.{js,ts}' - ], { eager: true }); - Object.entries(appModules).forEach(([name, imp]) => define(name.replace('/${root}/', '${appMeta.name}/').split('.').slice(0, -1).join('/'), [], () => imp)); - - require('${appMeta.name}/app').default.create({"name":"${appMeta.name}","version":"${pkg.version}+cf3ef785"}); - ` - } - return readFileSync(rewrittenApp + id.replace(root + '/assets/', '/assets/').split('?')[0]).toString(); - } + async load(id: string) { + if (id.startsWith(virtualPrefix)) { + const vId = id.split(virtualPrefix)[1].replace(root, rewrittenApp); + return virtualContent(vId, resolver); + } - if (id.startsWith(virtualPrefix)) { - return virtualContent(id.slice(virtualPrefix.length), resolverLoader.resolver); + if (id.startsWith(root)) { + try { + return (await promises.readFile(id.split('?')[0])).toString(); + } catch (e) { + } + try { + const rewId = id.replace(root, rewrittenApp); + return (await promises.readFile(rewId.split('?')[0])).toString(); + } catch (e) { + } } + return null; }, transformIndexHtml: { order: 'pre', @@ -150,33 +103,14 @@ function defaultResolve(context: PluginContext): ResolverFunction Date: Wed, 29 Nov 2023 10:45:10 +0100 Subject: [PATCH 03/55] wip --- packages/vite/src/resolver.ts | 8 +- pnpm-lock.yaml | 3374 ++++++++++++++------------------ tests/vite-app/package.json | 3 + tests/vite-app/vite.config.mts | 12 +- 4 files changed, 1435 insertions(+), 1962 deletions(-) diff --git a/packages/vite/src/resolver.ts b/packages/vite/src/resolver.ts index 745cf07e1..941ddc24c 100644 --- a/packages/vite/src/resolver.ts +++ b/packages/vite/src/resolver.ts @@ -26,10 +26,10 @@ export function resolver(): Plugin { name: 'embroider-resolver', enforce: 'pre', async resolveId(source: string, importer, options) { - if (source.startsWith(virtualPrefix)) { - return source; - } - if (importer && importer.startsWith(root)) { + // if (source.startsWith(virtualPrefix)) { + // return source; + // } + if (false) { const rewrittenImporter = importer.replace(root, rewrittenApp); if (source.startsWith('/') && !source.startsWith(cwd)) { source = rewrittenApp + source; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d2c62a0b3..1a12f6fb3 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -13,15 +13,18 @@ importers: .: devDependencies: + '@embroider/release': + specifier: workspace:* + version: link:test-packages/release '@types/jest': specifier: ^29.2.0 - version: 29.5.11 + version: 29.5.8 '@typescript-eslint/eslint-plugin': specifier: ^5.59.5 - version: 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.55.0)(typescript@5.2.2) + version: 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.53.0)(typescript@5.2.2) '@typescript-eslint/parser': specifier: ^5.59.5 - version: 5.62.0(eslint@8.55.0)(typescript@5.2.2) + version: 5.62.0(eslint@8.53.0)(typescript@5.2.2) concurrently: specifier: ^7.2.1 version: 7.6.0 @@ -30,25 +33,22 @@ importers: version: 7.0.3 eslint: specifier: ^8.40.0 - version: 8.55.0 + version: 8.53.0 eslint-config-prettier: specifier: ^8.8.0 - version: 8.10.0(eslint@8.55.0) + version: 8.10.0(eslint@8.53.0) eslint-plugin-import: specifier: ^2.27.5 - version: 2.29.0(@typescript-eslint/parser@5.62.0)(eslint@8.55.0) + version: 2.29.0(@typescript-eslint/parser@5.62.0)(eslint@8.53.0) eslint-plugin-prettier: specifier: ^4.2.1 - version: 4.2.1(eslint-config-prettier@8.10.0)(eslint@8.55.0)(prettier@2.8.8) + version: 4.2.1(eslint-config-prettier@8.10.0)(eslint@8.53.0)(prettier@2.8.8) jest: specifier: ^29.2.1 version: 29.7.0 prettier: specifier: ^2.3.1 version: 2.8.8 - release-plan: - specifier: ^0.4.1 - version: 0.4.1 typescript: specifier: ^5.1.6 version: 5.2.2 @@ -97,7 +97,7 @@ importers: version: 3.0.5 '@types/yargs': specifier: ^17.0.3 - version: 17.0.32 + version: 17.0.31 rollup: specifier: ^3.23.0 version: 3.29.4 @@ -122,7 +122,7 @@ importers: devDependencies: '@types/semver': specifier: ^7.3.6 - version: 7.5.6 + version: 7.5.5 broccoli-node-api: specifier: ^1.7.0 version: 1.7.0 @@ -137,50 +137,38 @@ importers: dependencies: '@babel/core': specifier: ^7.14.5 - version: 7.23.5(supports-color@8.1.1) + version: 7.23.3(supports-color@8.1.1) babel-loader: specifier: ^9.0.0 - version: 9.1.3(@babel/core@7.23.5) + version: 9.1.3(@babel/core@7.23.3) devDependencies: '@embroider/core': specifier: workspace:^ version: link:../core - packages/broccoli-side-watch: - dependencies: - broccoli-merge-trees: - specifier: ^4.2.0 - version: 4.2.0 - broccoli-plugin: - specifier: ^4.0.7 - version: 4.0.7 - broccoli-source: - specifier: ^3.0.1 - version: 3.0.1 - packages/compat: dependencies: '@babel/code-frame': specifier: ^7.14.5 - version: 7.23.5 + version: 7.22.13 '@babel/core': specifier: ^7.14.5 - version: 7.23.5(supports-color@8.1.1) + version: 7.23.3(supports-color@8.1.1) '@babel/plugin-syntax-dynamic-import': specifier: ^7.8.3 - version: 7.8.3(@babel/core@7.23.5) + version: 7.8.3(@babel/core@7.23.3) '@babel/plugin-transform-runtime': specifier: ^7.14.5 - version: 7.23.4(@babel/core@7.23.5) + version: 7.23.3(@babel/core@7.23.3) '@babel/preset-env': specifier: ^7.14.5 - version: 7.23.5(@babel/core@7.23.5) + version: 7.23.3(@babel/core@7.23.3) '@babel/runtime': specifier: ^7.18.6 - version: 7.23.5 + version: 7.23.2 '@babel/traverse': specifier: ^7.14.5 - version: 7.23.5(supports-color@8.1.1) + version: 7.23.3(supports-color@8.1.1) '@embroider/macros': specifier: workspace:* version: link:../macros @@ -189,7 +177,7 @@ importers: version: 7.0.6 '@types/yargs': specifier: ^17.0.3 - version: 17.0.32 + version: 17.0.31 assert-never: specifier: ^1.1.0 version: 1.2.1 @@ -301,7 +289,7 @@ importers: version: 1.2.1 '@types/babel__core': specifier: ^7.1.14 - version: 7.20.5 + version: 7.20.4 '@types/babel__generator': specifier: ^7.6.2 version: 7.6.7 @@ -328,22 +316,22 @@ importers: version: 16.2.15 '@types/lodash': specifier: ^4.14.170 - version: 4.14.202 + version: 4.14.201 '@types/node': specifier: ^15.12.2 version: 15.14.9 '@types/resolve': specifier: ^1.20.0 - version: 1.20.6 + version: 1.20.5 '@types/semver': specifier: ^7.3.6 - version: 7.5.6 + version: 7.5.5 broccoli-node-api: specifier: ^1.7.0 version: 1.7.0 code-equality-assertions: specifier: ^0.9.0 - version: 0.9.0(@types/jest@29.5.11)(qunit@2.20.0) + version: 0.9.0(@types/jest@29.5.8)(qunit@2.20.0) ember-engines: specifier: ^0.8.19 version: 0.8.23(@glint/template@1.2.1) @@ -358,19 +346,16 @@ importers: dependencies: '@babel/core': specifier: ^7.14.5 - version: 7.23.5(supports-color@8.1.1) + version: 7.23.3(supports-color@8.1.1) '@babel/parser': specifier: ^7.14.5 - version: 7.23.5 + version: 7.23.3 '@babel/traverse': specifier: ^7.14.5 - version: 7.23.5(supports-color@8.1.1) + version: 7.23.3(supports-color@8.1.1) '@embroider/macros': specifier: workspace:* version: link:../macros - '@embroider/reverse-exports': - specifier: workspace:* - version: link:../reverse-exports '@embroider/shared-internals': specifier: workspace:* version: link:../shared-internals @@ -446,7 +431,7 @@ importers: version: 1.2.1 '@types/babel__core': specifier: ^7.1.14 - version: 7.20.5 + version: 7.20.4 '@types/babel__traverse': specifier: ^7.18.5 version: 7.20.4 @@ -464,13 +449,13 @@ importers: version: 16.2.15 '@types/lodash': specifier: ^4.14.170 - version: 4.14.202 + version: 4.14.201 '@types/node': specifier: ^15.12.2 version: 15.14.9 '@types/resolve': specifier: ^1.20.0 - version: 1.20.6 + version: 1.20.5 '@types/tmp': specifier: ^0.1.0 version: 0.1.0 @@ -528,13 +513,13 @@ importers: devDependencies: '@babel/core': specifier: ^7.14.5 - version: 7.23.5(supports-color@8.1.1) + version: 7.23.3(supports-color@8.1.1) '@babel/plugin-transform-modules-amd': specifier: ^7.19.6 - version: 7.23.3(@babel/core@7.23.5) + version: 7.23.3(@babel/core@7.23.3) '@babel/traverse': specifier: ^7.14.5 - version: 7.23.5(supports-color@8.1.1) + version: 7.23.3(supports-color@8.1.1) '@embroider/core': specifier: workspace:* version: link:../core @@ -546,7 +531,7 @@ importers: version: 1.2.1 '@types/babel__core': specifier: ^7.1.14 - version: 7.20.5 + version: 7.20.4 '@types/babel__generator': specifier: ^7.6.2 version: 7.6.7 @@ -558,22 +543,22 @@ importers: version: 7.20.4 '@types/lodash': specifier: ^4.14.170 - version: 4.14.202 + version: 4.14.201 '@types/node': specifier: ^15.12.2 version: 15.14.9 '@types/resolve': specifier: ^1.20.0 - version: 1.20.6 + version: 1.20.5 '@types/semver': specifier: ^7.3.6 - version: 7.5.6 + version: 7.5.5 babel-plugin-ember-template-compilation: specifier: ^2.1.1 version: 2.2.1 code-equality-assertions: specifier: ^0.9.0 - version: 0.9.0(@types/jest@29.5.11)(qunit@2.20.0) + version: 0.9.0(@types/jest@29.5.8)(qunit@2.20.0) scenario-tester: specifier: ^2.1.2 version: 2.1.2 @@ -598,10 +583,10 @@ importers: devDependencies: '@babel/core': specifier: ^7.17.0 - version: 7.23.5(supports-color@8.1.1) + version: 7.23.3(supports-color@8.1.1) '@babel/plugin-transform-typescript': specifier: ^7.8.7 - version: 7.23.5(@babel/core@7.23.5) + version: 7.23.3(@babel/core@7.23.3) '@embroider/addon-dev': specifier: workspace:^ version: link:../addon-dev @@ -610,7 +595,7 @@ importers: version: link:../macros '@rollup/plugin-babel': specifier: ^5.3.1 - version: 5.3.1(@babel/core@7.23.5)(rollup@3.29.4) + version: 5.3.1(@babel/core@7.23.3)(rollup@3.29.4) '@rollup/plugin-typescript': specifier: ^11.1.2 version: 11.1.5(rollup@3.29.4)(tslib@2.6.2)(typescript@5.2.2) @@ -628,7 +613,7 @@ importers: version: 7.6.0 ember-source: specifier: ^4.12.0 - version: 4.12.3(@babel/core@7.23.5) + version: 4.12.3(@babel/core@7.23.3) ember-template-lint: specifier: ^4.0.0 version: 4.18.2 @@ -657,7 +642,7 @@ importers: specifier: ^2.6.0 version: 2.6.2 typescript: - specifier: ~5.2.2 + specifier: ^5.1.6 version: 5.2.2 packages/shared-internals: @@ -695,7 +680,7 @@ importers: version: link:../../test-packages/support '@types/babel__core': specifier: ^7.1.14 - version: 7.20.5 + version: 7.20.4 '@types/babel__traverse': specifier: ^7.18.5 version: 7.20.4 @@ -710,10 +695,10 @@ importers: version: 1.0.3 '@types/lodash': specifier: ^4.14.170 - version: 4.14.202 + version: 4.14.201 '@types/semver': specifier: ^7.3.6 - version: 7.5.6 + version: 7.5.5 '@types/tmp': specifier: ^0.1.0 version: 0.1.0 @@ -750,7 +735,7 @@ importers: version: link:../webpack '@types/lodash': specifier: ^4.14.170 - version: 4.14.202 + version: 4.14.201 packages/util: dependencies: @@ -766,7 +751,7 @@ importers: devDependencies: '@babel/core': specifier: ^7.19.6 - version: 7.23.5(supports-color@8.1.1) + version: 7.23.3(supports-color@8.1.1) '@ember/jquery': specifier: ^2.0.0 version: 2.0.0 @@ -778,7 +763,7 @@ importers: version: 3.1.1 '@ember/test-helpers': specifier: ^2.9.1 - version: 2.9.4(@babel/core@7.23.5)(@glint/environment-ember-loose@1.2.1)(@glint/template@1.2.1)(ember-source@4.6.0) + version: 2.9.4(@babel/core@7.23.3)(@glint/environment-ember-loose@1.2.1)(@glint/template@1.2.1)(ember-source@4.6.0) '@embroider/compat': specifier: workspace:* version: link:../compat @@ -796,7 +781,7 @@ importers: version: link:../webpack '@glimmer/component': specifier: ^1.1.2 - version: 1.1.2(@babel/core@7.23.5) + version: 1.1.2(@babel/core@7.23.3) '@glimmer/tracking': specifier: ^1.1.2 version: 1.1.2 @@ -823,7 +808,7 @@ importers: version: 7.0.3 ember-auto-import: specifier: ^2.4.2 - version: 2.7.0(@glint/template@1.2.1)(webpack@5.89.0) + version: 2.6.3(@glint/template@1.2.1)(webpack@5.89.0) ember-cli: specifier: ~4.6.0 version: 4.6.0 @@ -847,7 +832,7 @@ importers: version: 1.1.3 ember-load-initializers: specifier: ^2.1.2 - version: 2.1.2(@babel/core@7.23.5) + version: 2.1.2(@babel/core@7.23.3) ember-page-title: specifier: ^7.0.0 version: 7.0.0 @@ -859,7 +844,7 @@ importers: version: 10.1.1(@ember/string@3.1.1)(ember-source@4.6.0) ember-source: specifier: ~4.6.0 - version: 4.6.0(@babel/core@7.23.5)(@glint/template@1.2.1)(webpack@5.89.0) + version: 4.6.0(@babel/core@7.23.3)(@glint/template@1.2.1)(webpack@5.89.0) ember-source-channel-url: specifier: ^3.0.0 version: 3.0.0 @@ -908,12 +893,6 @@ importers: packages/vite: dependencies: - '@babel/core': - specifier: ^7.22.9 - version: 7.23.5(supports-color@8.1.1) - '@embroider/macros': - specifier: workspace:* - version: link:../macros '@rollup/pluginutils': specifier: ^4.1.1 version: 4.2.1 @@ -926,9 +905,6 @@ importers: debug: specifier: ^4.3.2 version: 4.3.4(supports-color@8.1.1) - esbuild: - specifier: ^0.17.19 - version: 0.17.19 fs-extra: specifier: ^10.0.0 version: 10.1.0 @@ -940,14 +916,11 @@ importers: version: 0.4.1 terser: specifier: ^5.7.0 - version: 5.25.0 + version: 5.24.0 devDependencies: '@embroider/core': specifier: workspace:^ version: link:../core - '@types/babel__core': - specifier: ^7.20.1 - version: 7.20.5 '@types/debug': specifier: ^4.1.5 version: 4.1.12 @@ -962,13 +935,13 @@ importers: version: 3.29.4 vite: specifier: ^4.3.9 - version: 4.5.1(terser@5.25.0) + version: 4.5.0(terser@5.24.0) packages/webpack: dependencies: '@babel/core': specifier: ^7.14.5 - version: 7.23.5(supports-color@8.1.1) + version: 7.23.3(supports-color@8.1.1) '@embroider/babel-loader-9': specifier: workspace:* version: link:../babel-loader-9 @@ -986,7 +959,7 @@ importers: version: 1.2.1 babel-loader: specifier: ^8.2.2 - version: 8.3.0(@babel/core@7.23.5)(webpack@5.89.0) + version: 8.3.0(@babel/core@7.23.3)(webpack@5.89.0) babel-preset-env: specifier: ^1.7.0 version: 1.7.0(supports-color@8.1.1) @@ -1028,7 +1001,7 @@ importers: version: 8.1.1 terser: specifier: ^5.7.0 - version: 5.25.0 + version: 5.24.0 thread-loader: specifier: ^3.0.4 version: 3.0.4(webpack@5.89.0) @@ -1047,7 +1020,7 @@ importers: version: 9.0.13 '@types/lodash': specifier: ^4.14.170 - version: 4.14.202 + version: 4.14.201 '@types/mini-css-extract-plugin': specifier: ^1.4.3 version: 1.4.3 @@ -1056,7 +1029,7 @@ importers: version: 15.14.9 '@types/semver': specifier: ^7.3.6 - version: 7.5.6 + version: 7.5.5 typescript: specifier: ^5.1.6 version: 5.2.2 @@ -1064,6 +1037,57 @@ importers: specifier: ^5.38.1 version: 5.89.0 + test-packages/release: + dependencies: + '@ef4/lerna-changelog': + specifier: ^1.0.4 + version: 1.0.4 + '@octokit/rest': + specifier: ^19.0.8 + version: 19.0.13 + '@types/fs-extra': + specifier: ^9.0.12 + version: 9.0.13 + '@types/js-yaml': + specifier: ^4.0.5 + version: 4.0.9 + '@types/semver': + specifier: ^7.3.6 + version: 7.5.5 + '@types/yargs': + specifier: ^17.0.3 + version: 17.0.31 + assert-never: + specifier: ^1.2.1 + version: 1.2.1 + chalk: + specifier: ^4.1.1 + version: 4.1.2 + cli-highlight: + specifier: ^2.1.11 + version: 2.1.11 + execa: + specifier: ^4.0.3 + version: 4.1.0 + fs-extra: + specifier: ^10.0.0 + version: 10.1.0 + globby: + specifier: ^11.0.3 + version: 11.1.0 + js-yaml: + specifier: ^4.1.0 + version: 4.1.0 + latest-version: + specifier: ^5.0.0 + version: 5.1.0 + semver: + specifier: ^7.3.5 + version: 7.5.4 + yargs: + specifier: ^17.0.1 + version: 17.7.2 + test-packages/sample-transforms: dependencies: ember-cli-babel: @@ -1087,7 +1111,7 @@ importers: version: 3.0.0 ember-auto-import: specifier: ^2.2.0 - version: 2.7.0(@glint/template@1.2.1)(webpack@5.89.0) + version: 2.6.3(@glint/template@1.2.1)(webpack@5.89.0) ember-cli: specifier: ~3.28.0 version: 3.28.6(lodash@4.17.21) @@ -1117,7 +1141,7 @@ importers: version: 2.0.1 ember-load-initializers: specifier: ^2.0.0 - version: 2.1.2(@babel/core@7.23.5) + version: 2.1.2(@babel/core@7.23.3) ember-maybe-import-regenerator: specifier: ^1.0.0 version: 1.0.0 @@ -1129,7 +1153,7 @@ importers: version: 10.1.1(@ember/string@3.1.1)(ember-source@3.26.2) ember-source: specifier: ~3.26 - version: 3.26.2(@babel/core@7.23.5) + version: 3.26.2(@babel/core@7.23.3) ember-source-channel-url: specifier: ^1.1.0 version: 1.2.0 @@ -1141,7 +1165,7 @@ importers: version: 7.13.0 eslint-plugin-node: specifier: ^9.0.1 - version: 9.2.0(eslint@8.55.0) + version: 9.2.0(eslint@8.53.0) loader.js: specifier: ^4.7.0 version: 4.7.0 @@ -1159,22 +1183,22 @@ importers: dependencies: '@babel/core': specifier: ^7.8.7 - version: 7.23.5(supports-color@8.1.1) + version: 7.23.3(supports-color@8.1.1) '@babel/plugin-transform-modules-commonjs': specifier: ^7.8.3 - version: 7.23.3(@babel/core@7.23.5) + version: 7.23.3(@babel/core@7.23.3) '@babel/plugin-transform-typescript': specifier: ^7.8.7 - version: 7.23.5(@babel/core@7.23.5) + version: 7.23.3(@babel/core@7.23.3) '@babel/preset-env': specifier: ^7.9.0 - version: 7.23.5(@babel/core@7.23.5) + version: 7.23.3(@babel/core@7.23.3) '@ember/string': specifier: ^3.1.1 version: 3.1.1 '@glimmer/component': specifier: ^1.0.0 - version: 1.1.2(@babel/core@7.23.5) + version: 1.1.2(@babel/core@7.23.3) babel-preset-env: specifier: ^1.7.0 version: 1.7.0(supports-color@8.1.1) @@ -1183,13 +1207,13 @@ importers: version: 3.5.2 code-equality-assertions: specifier: ^0.9.0 - version: 0.9.0(@types/jest@29.5.11)(qunit@2.20.0) + version: 0.9.0(@types/jest@29.5.8)(qunit@2.20.0) console-ui: specifier: ^3.0.0 version: 3.1.2 ember-auto-import: specifier: ^2.2.0 - version: 2.7.0(@glint/template@1.2.1)(webpack@5.89.0) + version: 2.6.3(@glint/template@1.2.1)(webpack@5.89.0) ember-cli: specifier: ~3.28.0 version: 3.28.6(lodash@4.17.21) @@ -1201,7 +1225,7 @@ importers: version: 6.3.0 ember-source: specifier: ~3.26 - version: 3.26.2(@babel/core@7.23.5) + version: 3.26.2(@babel/core@7.23.3) execa: specifier: ^4.0.3 version: 4.1.0 @@ -1232,7 +1256,7 @@ importers: version: 0.84.3 '@types/babel__core': specifier: ^7.1.14 - version: 7.20.5 + version: 7.20.4 '@types/babel__traverse': specifier: ^7.18.5 version: 7.20.4 @@ -1241,7 +1265,7 @@ importers: version: 9.0.13 '@types/lodash': specifier: ^4.14.170 - version: 4.14.202 + version: 4.14.201 '@types/node': specifier: ^10.5.2 version: 10.17.60 @@ -1282,7 +1306,7 @@ importers: devDependencies: '@babel/core': specifier: ^7.19.3 - version: 7.23.5(supports-color@8.1.1) + version: 7.23.3(supports-color@8.1.1) '@ember/optional-features': specifier: ^2.0.0 version: 2.0.0 @@ -1291,13 +1315,13 @@ importers: version: 3.1.1 '@ember/test-helpers': specifier: ^2.9.1 - version: 2.9.4(@babel/core@7.23.5)(@glint/environment-ember-loose@1.2.1)(@glint/template@1.2.1)(ember-source@4.6.0) + version: 2.9.4(@babel/core@7.23.3)(@glint/environment-ember-loose@1.2.1)(@glint/template@1.2.1)(ember-source@4.6.0) '@embroider/test-setup': specifier: workspace:^ version: link:../../packages/test-setup '@glimmer/component': specifier: ^1.1.2 - version: 1.1.2(@babel/core@7.23.5) + version: 1.1.2(@babel/core@7.23.3) '@glimmer/tracking': specifier: ^1.1.2 version: 1.1.2 @@ -1309,7 +1333,7 @@ importers: version: 3.0.0 ember-auto-import: specifier: ^2.4.2 - version: 2.7.0(@glint/template@1.2.1)(webpack@5.89.0) + version: 2.6.3(@glint/template@1.2.1)(webpack@5.89.0) ember-cli: specifier: ~4.6.0 version: 4.6.0 @@ -1330,7 +1354,7 @@ importers: version: 1.1.3 ember-load-initializers: specifier: ^2.1.2 - version: 2.1.2(@babel/core@7.23.5) + version: 2.1.2(@babel/core@7.23.3) ember-page-title: specifier: ^7.0.0 version: 7.0.0 @@ -1342,7 +1366,7 @@ importers: version: 10.1.1(@ember/string@3.1.1)(ember-source@4.6.0) ember-source: specifier: ~4.6.0 - version: 4.6.0(@babel/core@7.23.5)(@glint/template@1.2.1)(webpack@5.89.0) + version: 4.6.0(@babel/core@7.23.3)(@glint/template@1.2.1)(webpack@5.89.0) ember-source-channel-url: specifier: ^3.0.0 version: 3.0.0 @@ -1393,7 +1417,7 @@ importers: devDependencies: '@babel/core': specifier: ^7.19.3 - version: 7.23.5(supports-color@8.1.1) + version: 7.23.3(supports-color@8.1.1) '@ember/optional-features': specifier: ^2.0.0 version: 2.0.0 @@ -1402,7 +1426,7 @@ importers: version: 3.1.1 '@ember/test-helpers': specifier: ^2.9.1 - version: 2.9.4(@babel/core@7.23.5)(@glint/environment-ember-loose@1.2.1)(@glint/template@1.2.1)(ember-source@4.6.0) + version: 2.9.4(@babel/core@7.23.3)(@glint/environment-ember-loose@1.2.1)(@glint/template@1.2.1)(ember-source@4.6.0) '@embroider/compat': specifier: workspace:* version: link:../../packages/compat @@ -1420,7 +1444,7 @@ importers: version: link:../../packages/webpack '@glimmer/component': specifier: ^1.1.2 - version: 1.1.2(@babel/core@7.23.5) + version: 1.1.2(@babel/core@7.23.3) '@glimmer/tracking': specifier: ^1.1.2 version: 1.1.2 @@ -1432,7 +1456,7 @@ importers: version: 3.0.0 ember-auto-import: specifier: ^2.4.2 - version: 2.7.0(@glint/template@1.2.1)(webpack@5.89.0) + version: 2.6.3(@glint/template@1.2.1)(webpack@5.89.0) ember-cli: specifier: ~4.6.0 version: 4.6.0 @@ -1459,13 +1483,13 @@ importers: version: 4.0.2 ember-data: specifier: ~4.4.0 - version: 4.4.3(@babel/core@7.23.5)(webpack@5.89.0) + version: 4.4.3(@babel/core@7.23.3)(webpack@5.89.0) ember-fetch: specifier: ^8.1.1 version: 8.1.2 ember-load-initializers: specifier: ^2.1.2 - version: 2.1.2(@babel/core@7.23.5) + version: 2.1.2(@babel/core@7.23.3) ember-page-title: specifier: ^7.0.0 version: 7.0.0 @@ -1477,7 +1501,7 @@ importers: version: 10.1.1(@ember/string@3.1.1)(ember-source@4.6.0) ember-source: specifier: ~4.6.0 - version: 4.6.0(@babel/core@7.23.5)(@glint/template@1.2.1)(webpack@5.89.0) + version: 4.6.0(@babel/core@7.23.3)(@glint/template@1.2.1)(webpack@5.89.0) ember-template-lint: specifier: ^4.10.1 version: 4.18.2 @@ -1545,13 +1569,13 @@ importers: version: link:../../packages/webpack '@types/qunit': specifier: ^2.11.1 - version: 2.19.9 + version: 2.19.8 ember-auto-import: specifier: ^2.6.3 - version: 2.7.0 + version: 2.6.3 fastboot: specifier: ^4.1.1 - version: 4.1.2 + version: 4.1.1 fs-extra: specifier: ^10.0.0 version: 10.1.0 @@ -1588,31 +1612,31 @@ importers: devDependencies: '@babel/core': specifier: ^7.17.5 - version: 7.23.5(supports-color@8.1.1) + version: 7.23.3(supports-color@8.1.1) '@babel/plugin-proposal-decorators': specifier: ^7.17.2 - version: 7.23.5(@babel/core@7.23.5) + version: 7.23.3(@babel/core@7.23.3) '@babel/plugin-syntax-dynamic-import': specifier: ^7.8.3 - version: 7.8.3(@babel/core@7.23.5) + version: 7.8.3(@babel/core@7.23.3) '@babel/plugin-transform-class-properties': specifier: ^7.16.7 - version: 7.23.3(@babel/core@7.23.5) + version: 7.23.3(@babel/core@7.23.3) '@babel/plugin-transform-class-static-block': specifier: ^7.22.5 - version: 7.23.4(@babel/core@7.23.5) + version: 7.23.3(@babel/core@7.23.3) '@babel/plugin-transform-runtime': specifier: ^7.18.6 - version: 7.23.4(@babel/core@7.23.5) + version: 7.23.3(@babel/core@7.23.3) '@babel/plugin-transform-typescript': specifier: ^7.22.5 - version: 7.23.5(@babel/core@7.23.5) + version: 7.23.3(@babel/core@7.23.3) '@babel/preset-env': specifier: ^7.16.11 - version: 7.23.5(@babel/core@7.23.5) + version: 7.23.3(@babel/core@7.23.3) '@babel/runtime': specifier: ^7.18.6 - version: 7.23.5 + version: 7.23.2 '@ember/legacy-built-in-components': specifier: ^0.4.1 version: 0.4.2(ember-source@3.28.12) @@ -1621,7 +1645,7 @@ importers: version: 3.1.1 '@ember/test-helpers-3': specifier: npm:@ember/test-helpers@^3.2.0 - version: /@ember/test-helpers@3.2.1(ember-source@3.28.12) + version: /@ember/test-helpers@3.2.0(ember-source@3.28.12) '@embroider/addon-shim': specifier: workspace:* version: link:../../packages/addon-shim @@ -1636,7 +1660,7 @@ importers: version: link:../../packages/util '@rollup/plugin-babel': specifier: ^5.3.1 - version: 5.3.1(@babel/core@7.23.5)(rollup@3.29.4) + version: 5.3.1(@babel/core@7.23.3)(rollup@3.29.4) '@rollup/plugin-typescript': specifier: ^11.1.2 version: 11.1.5(rollup@3.29.4)(tslib@2.6.2)(typescript@5.2.2) @@ -1651,10 +1675,10 @@ importers: version: 4.0.9 '@types/lodash': specifier: ^4.14.170 - version: 4.14.202 + version: 4.14.201 '@types/semver': specifier: ^7.3.6 - version: 7.5.6 + version: 7.5.5 babel-plugin-ember-template-compilation: specifier: ^2.1.1 version: 2.2.1 @@ -1675,7 +1699,7 @@ importers: version: 3.0.0 ember-bootstrap: specifier: ^5.0.0 - version: 5.1.1(@babel/core@7.23.5)(ember-source@3.28.12) + version: 5.1.1(@babel/core@7.23.3)(ember-source@3.28.12) ember-cli: specifier: ~3.28.0 version: 3.28.6(lodash@4.17.21) @@ -1684,49 +1708,49 @@ importers: version: /ember-cli@4.4.1(lodash@4.17.21) ember-cli-beta: specifier: npm:ember-cli@beta - version: /ember-cli@5.5.0-beta.1(lodash@4.17.21) + version: /ember-cli@5.5.0-beta.0(lodash@4.17.21) ember-cli-fastboot: specifier: ^4.1.1 - version: 4.1.2 + version: 4.1.1 ember-cli-latest: specifier: npm:ember-cli@latest - version: /ember-cli@5.4.1(lodash@4.17.21) + version: /ember-cli@5.4.0(lodash@4.17.21) ember-composable-helpers: specifier: ^4.4.1 version: 4.5.0 ember-data: specifier: ~3.28.0 - version: 3.28.13(@babel/core@7.23.5) + version: 3.28.13(@babel/core@7.23.3) ember-data-4.4: specifier: npm:ember-data@~4.4.0 - version: /ember-data@4.4.3(@babel/core@7.23.5) + version: /ember-data@4.4.3(@babel/core@7.23.3) ember-data-latest: specifier: npm:ember-data@latest - version: /ember-data@5.3.0(@babel/core@7.23.5)(@ember/string@3.1.1)(ember-source@3.28.12) + version: /ember-data@5.3.0(@babel/core@7.23.3)(@ember/string@3.1.1)(ember-source@3.28.12) ember-engines: specifier: ^0.8.23 version: 0.8.23(@ember/legacy-built-in-components@0.4.2)(ember-source@3.28.12) ember-inline-svg: specifier: ^0.2.1 - version: 0.2.1(@babel/core@7.23.5) + version: 0.2.1(@babel/core@7.23.3) ember-modifier: specifier: ^4.0.0 version: 4.1.0(ember-source@3.28.12) ember-qunit-7: specifier: npm:ember-qunit@^7.0.0 - version: /ember-qunit@7.0.0(@ember/test-helpers@3.2.1)(ember-source@3.28.12)(qunit@2.20.0) + version: /ember-qunit@7.0.0(@ember/test-helpers@3.2.0)(ember-source@3.28.12)(qunit@2.20.0) ember-source: specifier: ~3.28.11 - version: 3.28.12(@babel/core@7.23.5) + version: 3.28.12(@babel/core@7.23.3) ember-source-4.4: specifier: npm:ember-source@~4.4.0 - version: /ember-source@4.4.5(@babel/core@7.23.5) + version: /ember-source@4.4.5(@babel/core@7.23.3) ember-source-beta: specifier: npm:ember-source@beta - version: /ember-source@5.5.0-beta.2(@babel/core@7.23.5) + version: /ember-source@5.5.0-beta.1(@babel/core@7.23.3) ember-source-latest: specifier: npm:ember-source@latest - version: /ember-source@5.4.0(@babel/core@7.23.5) + version: /ember-source@5.4.0(@babel/core@7.23.3) ember-truth-helpers: specifier: ^3.0.0 version: 3.1.1 @@ -1744,13 +1768,13 @@ importers: devDependencies: '@babel/core': specifier: ^7.22.20 - version: 7.23.5(supports-color@8.1.1) + version: 7.23.3(supports-color@8.1.1) '@babel/eslint-parser': specifier: ^7.21.3 - version: 7.23.3(@babel/core@7.23.5)(eslint@8.55.0) + version: 7.23.3(@babel/core@7.23.3)(eslint@8.53.0) '@babel/plugin-proposal-decorators': specifier: ^7.21.0 - version: 7.23.5(@babel/core@7.23.5) + version: 7.23.3(@babel/core@7.23.3) '@ember/optional-features': specifier: ^2.0.0 version: 2.0.0 @@ -1759,7 +1783,7 @@ importers: version: 3.1.1 '@ember/test-helpers': specifier: ^3.2.0 - version: 3.2.1(@glint/template@1.2.1)(ember-source@5.3.0)(webpack@5.89.0) + version: 3.2.0(@glint/template@1.2.1)(ember-source@5.3.0)(webpack@5.89.0) '@embroider/compat': specifier: workspace:* version: link:../../packages/compat @@ -1777,7 +1801,7 @@ importers: version: link:../../packages/webpack '@glimmer/component': specifier: ^1.1.2 - version: 1.1.2(@babel/core@7.23.5) + version: 1.1.2(@babel/core@7.23.3) '@glimmer/interfaces': specifier: ^0.84.2 version: 0.84.3 @@ -1801,10 +1825,10 @@ importers: version: 3.0.2 '@types/qunit': specifier: ^2.19.6 - version: 2.19.9 + version: 2.19.8 '@types/rsvp': specifier: ^4.0.4 - version: 4.0.8 + version: 4.0.7 broccoli-asset-rev: specifier: ^3.0.0 version: 3.0.0 @@ -1813,7 +1837,7 @@ importers: version: 8.2.2 ember-auto-import: specifier: ^2.6.3 - version: 2.7.0(@glint/template@1.2.1)(webpack@5.89.0) + version: 2.6.3(@glint/template@1.2.1)(webpack@5.89.0) ember-cli: specifier: ~5.3.0 version: 5.3.0 @@ -1822,7 +1846,7 @@ importers: version: 6.0.1(ember-source@5.3.0) ember-cli-babel: specifier: ^8.0.0 - version: 8.2.0(@babel/core@7.23.5) + version: 8.2.0(@babel/core@7.23.3) ember-cli-clean-css: specifier: ^3.0.0 version: 3.0.0 @@ -1846,7 +1870,7 @@ importers: version: 8.1.2 ember-load-initializers: specifier: ^2.1.2 - version: 2.1.2(@babel/core@7.23.5) + version: 2.1.2(@babel/core@7.23.3) ember-modifier: specifier: ^4.1.0 version: 4.1.0(ember-source@5.3.0) @@ -1855,16 +1879,16 @@ importers: version: 8.1.0(ember-source@5.3.0) ember-qunit: specifier: ^8.0.1 - version: 8.0.2(@ember/test-helpers@3.2.1)(@glint/template@1.2.1)(ember-source@5.3.0)(qunit@2.20.0) + version: 8.0.2(@ember/test-helpers@3.2.0)(@glint/template@1.2.1)(ember-source@5.3.0)(qunit@2.20.0) ember-resolver: specifier: ^11.0.1 version: 11.0.1(ember-source@5.3.0) ember-source: specifier: ~5.3.0 - version: 5.3.0(@babel/core@7.23.5)(@glimmer/component@1.1.2)(@glint/template@1.2.1)(webpack@5.89.0) + version: 5.3.0(@babel/core@7.23.3)(@glimmer/component@1.1.2)(@glint/template@1.2.1)(webpack@5.89.0) eslint-plugin-n: specifier: ^16.1.0 - version: 16.3.1(eslint@8.55.0) + version: 16.3.1(eslint@8.53.0) loader.js: specifier: ^4.7.0 version: 4.7.0 @@ -1885,7 +1909,7 @@ importers: version: 34.0.0(stylelint@15.11.0) stylelint-prettier: specifier: ^4.0.2 - version: 4.1.0(prettier@3.1.0)(stylelint@15.11.0) + version: 4.0.2(prettier@3.1.0)(stylelint@15.11.0) tracked-built-ins: specifier: ^3.2.0 version: 3.3.0 @@ -1903,16 +1927,20 @@ importers: version: link:../../packages/addon-shim tests/vite-app: + dependencies: + '@esbuild/linux-x64': + specifier: ^0.19.8 + version: 0.19.8 devDependencies: '@babel/core': specifier: ^7.22.6 - version: 7.23.5(supports-color@8.1.1) + version: 7.23.3(supports-color@8.1.1) '@babel/eslint-parser': specifier: ^7.22.5 - version: 7.23.3(@babel/core@7.23.5)(eslint@8.55.0) + version: 7.23.3(@babel/core@7.23.3)(eslint@8.53.0) '@babel/plugin-proposal-decorators': specifier: ^7.22.5 - version: 7.23.5(@babel/core@7.23.5) + version: 7.23.3(@babel/core@7.23.3) '@ember/optional-features': specifier: ^2.0.0 version: 2.0.0 @@ -1921,7 +1949,7 @@ importers: version: 3.1.1 '@ember/test-helpers': specifier: ^3.0.3 - version: 3.2.1(ember-source@5.1.2) + version: 3.2.0(ember-source@5.1.2) '@embroider/compat': specifier: workspace:* version: link:../../packages/compat @@ -1933,13 +1961,13 @@ importers: version: link:../../packages/vite '@glimmer/component': specifier: ^1.1.2 - version: 1.1.2(@babel/core@7.23.5) + version: 1.1.2(@babel/core@7.23.3) '@glimmer/tracking': specifier: ^1.1.2 version: 1.1.2 '@rollup/plugin-babel': specifier: ^5.3.1 - version: 5.3.1(@babel/core@7.23.5)(rollup@3.29.4) + version: 5.3.1(@babel/core@7.23.3)(rollup@3.29.4) broccoli-asset-rev: specifier: ^3.0.0 version: 3.0.0 @@ -1948,7 +1976,7 @@ importers: version: 8.2.2 ember-auto-import: specifier: ^2.6.3 - version: 2.7.0 + version: 2.6.3 ember-cli: specifier: ~5.0.0 version: 5.0.0 @@ -1978,10 +2006,10 @@ importers: version: 4.0.2 ember-data: specifier: ~5.1.0 - version: 5.1.2(@babel/core@7.23.5)(@ember/string@3.1.1)(@glimmer/tracking@1.1.2)(ember-source@5.1.2) + version: 5.1.2(@babel/core@7.23.3)(@ember/string@3.1.1)(@glimmer/tracking@1.1.2)(ember-source@5.1.2) ember-load-initializers: specifier: ^2.1.2 - version: 2.1.2(@babel/core@7.23.5) + version: 2.1.2(@babel/core@7.23.3) ember-modifier: specifier: ^4.1.0 version: 4.1.0(ember-source@5.1.2) @@ -1990,37 +2018,37 @@ importers: version: 7.0.0 ember-qunit: specifier: ^7.0.0 - version: 7.0.0(@ember/test-helpers@3.2.1)(ember-source@5.1.2)(qunit@2.20.0) + version: 7.0.0(@ember/test-helpers@3.2.0)(ember-source@5.1.2)(qunit@2.20.0) ember-resolver: specifier: ^10.1.0 version: 10.1.1(@ember/string@3.1.1)(ember-source@5.1.2) ember-source: specifier: ~5.1.0 - version: 5.1.2(@babel/core@7.23.5)(@glimmer/component@1.1.2) + version: 5.1.2(@babel/core@7.23.3)(@glimmer/component@1.1.2) ember-template-lint: specifier: ^5.10.3 - version: 5.13.0 + version: 5.12.0 ember-welcome-page: specifier: ^7.0.2 version: 7.0.2 eslint: specifier: ^8.42.0 - version: 8.55.0 + version: 8.53.0 eslint-config-prettier: specifier: ^8.8.0 - version: 8.10.0(eslint@8.55.0) + version: 8.10.0(eslint@8.53.0) eslint-plugin-ember: specifier: ^11.8.0 - version: 11.11.1(eslint@8.55.0) + version: 11.11.1(eslint@8.53.0) eslint-plugin-n: specifier: ^16.0.0 - version: 16.3.1(eslint@8.55.0) + version: 16.3.1(eslint@8.53.0) eslint-plugin-prettier: specifier: ^4.2.1 - version: 4.2.1(eslint-config-prettier@8.10.0)(eslint@8.55.0)(prettier@2.8.8) + version: 4.2.1(eslint-config-prettier@8.10.0)(eslint@8.53.0)(prettier@2.8.8) eslint-plugin-qunit: specifier: ^7.3.4 - version: 7.3.4(eslint@8.55.0) + version: 7.3.4(eslint@8.53.0) loader.js: specifier: ^4.7.0 version: 4.7.0 @@ -2050,7 +2078,7 @@ importers: version: 5.2.2 vite: specifier: ^4.3.9 - version: 4.5.1(terser@5.25.0) + version: 4.5.0(terser@5.24.0) types/broccoli: {} @@ -2103,34 +2131,34 @@ packages: /@babel/code-frame@7.12.11: resolution: {integrity: sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==} dependencies: - '@babel/highlight': 7.23.4 + '@babel/highlight': 7.22.20 dev: true - /@babel/code-frame@7.23.5: - resolution: {integrity: sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==} + /@babel/code-frame@7.22.13: + resolution: {integrity: sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==} engines: {node: '>=6.9.0'} dependencies: - '@babel/highlight': 7.23.4 + '@babel/highlight': 7.22.20 chalk: 2.4.2 - /@babel/compat-data@7.23.5: - resolution: {integrity: sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==} + /@babel/compat-data@7.23.3: + resolution: {integrity: sha512-BmR4bWbDIoFJmJ9z2cZ8Gmm2MXgEDgjdWgpKmKWUt54UGFJdlj31ECtbaDvCG/qVdG3AQ1SfpZEs01lUFbzLOQ==} engines: {node: '>=6.9.0'} - /@babel/core@7.23.5(supports-color@8.1.1): - resolution: {integrity: sha512-Cwc2XjUrG4ilcfOw4wBAK+enbdgwAcAJCfGUItPBKR7Mjw4aEfAFYrLxeRp4jWgtNIKn3n2AlBOfwwafl+42/g==} + /@babel/core@7.23.3(supports-color@8.1.1): + resolution: {integrity: sha512-Jg+msLuNuCJDyBvFv5+OKOUjWMZgd85bKjbICd3zWrKAo+bJ49HJufi7CQE0q0uR8NGyO6xkCACScNqyjHSZew==} engines: {node: '>=6.9.0'} dependencies: '@ampproject/remapping': 2.2.1 - '@babel/code-frame': 7.23.5 - '@babel/generator': 7.23.5 + '@babel/code-frame': 7.22.13 + '@babel/generator': 7.23.3 '@babel/helper-compilation-targets': 7.22.15 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.5) - '@babel/helpers': 7.23.5(supports-color@8.1.1) - '@babel/parser': 7.23.5 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.3) + '@babel/helpers': 7.23.2(supports-color@8.1.1) + '@babel/parser': 7.23.3 '@babel/template': 7.22.15 - '@babel/traverse': 7.23.5(supports-color@8.1.1) - '@babel/types': 7.23.5 + '@babel/traverse': 7.23.3(supports-color@8.1.1) + '@babel/types': 7.23.3 convert-source-map: 2.0.0 debug: 4.3.4(supports-color@8.1.1) gensync: 1.0.0-beta.2 @@ -2139,16 +2167,16 @@ packages: transitivePeerDependencies: - supports-color - /@babel/eslint-parser@7.23.3(@babel/core@7.23.5)(eslint@8.55.0): + /@babel/eslint-parser@7.23.3(@babel/core@7.23.3)(eslint@8.53.0): resolution: {integrity: sha512-9bTuNlyx7oSstodm1cR1bECj4fkiknsDa1YniISkJemMY3DGhJNYBECbe6QD/q54mp2J8VO66jW3/7uP//iFCw==} engines: {node: ^10.13.0 || ^12.13.0 || >=14.0.0} peerDependencies: '@babel/core': ^7.11.0 eslint: ^7.5.0 || ^8.0.0 dependencies: - '@babel/core': 7.23.5(supports-color@8.1.1) + '@babel/core': 7.23.3(supports-color@8.1.1) '@nicolo-ribaudo/eslint-scope-5-internals': 5.1.1-v1 - eslint: 8.55.0 + eslint: 8.53.0 eslint-visitor-keys: 2.1.0 semver: 6.3.1 dev: true @@ -2157,17 +2185,17 @@ packages: resolution: {integrity: sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.5 + '@babel/types': 7.23.3 '@jridgewell/gen-mapping': 0.3.3 '@jridgewell/trace-mapping': 0.3.20 jsesc: 2.5.2 dev: true - /@babel/generator@7.23.5: - resolution: {integrity: sha512-BPssCHrBD+0YrxviOa3QzpqwhNIXKEtOa2jQrm4FlmkC2apYgRnQcmPWiGZDlGxiNtltnUFolMe8497Esry+jA==} + /@babel/generator@7.23.3: + resolution: {integrity: sha512-keeZWAV4LU3tW0qRi19HRpabC/ilM0HRBBzf9/k8FFiG4KVpiv0FIy4hHfLfFQZNhziCTPTmd59zoyv6DNISzg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.5 + '@babel/types': 7.23.3 '@jridgewell/gen-mapping': 0.3.3 '@jridgewell/trace-mapping': 0.3.20 jsesc: 2.5.2 @@ -2176,58 +2204,58 @@ packages: resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.5 + '@babel/types': 7.23.3 /@babel/helper-builder-binary-assignment-operator-visitor@7.22.15: resolution: {integrity: sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.5 + '@babel/types': 7.23.3 /@babel/helper-compilation-targets@7.22.15: resolution: {integrity: sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/compat-data': 7.23.5 - '@babel/helper-validator-option': 7.23.5 - browserslist: 4.22.2 + '@babel/compat-data': 7.23.3 + '@babel/helper-validator-option': 7.22.15 + browserslist: 4.22.1 lru-cache: 5.1.1 semver: 6.3.1 - /@babel/helper-create-class-features-plugin@7.23.5(@babel/core@7.23.5): - resolution: {integrity: sha512-QELlRWxSpgdwdJzSJn4WAhKC+hvw/AtHbbrIoncKHkhKKR/luAlKkgBDcri1EzWAo8f8VvYVryEHN4tax/V67A==} + /@babel/helper-create-class-features-plugin@7.22.15(@babel/core@7.23.3): + resolution: {integrity: sha512-jKkwA59IXcvSaiK2UN45kKwSC9o+KuoXsBDvHvU/7BecYIp8GQ2UwrVvFgJASUT+hBnwJx6MhvMCuMzwZZ7jlg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.5(supports-color@8.1.1) + '@babel/core': 7.23.3(supports-color@8.1.1) '@babel/helper-annotate-as-pure': 7.22.5 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-function-name': 7.23.0 '@babel/helper-member-expression-to-functions': 7.23.0 '@babel/helper-optimise-call-expression': 7.22.5 - '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.5) + '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.3) '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 '@babel/helper-split-export-declaration': 7.22.6 semver: 6.3.1 - /@babel/helper-create-regexp-features-plugin@7.22.15(@babel/core@7.23.5): + /@babel/helper-create-regexp-features-plugin@7.22.15(@babel/core@7.23.3): resolution: {integrity: sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.5(supports-color@8.1.1) + '@babel/core': 7.23.3(supports-color@8.1.1) '@babel/helper-annotate-as-pure': 7.22.5 regexpu-core: 5.3.2 semver: 6.3.1 - /@babel/helper-define-polyfill-provider@0.4.3(@babel/core@7.23.5): + /@babel/helper-define-polyfill-provider@0.4.3(@babel/core@7.23.3): resolution: {integrity: sha512-WBrLmuPP47n7PNwsZ57pqam6G/RGo1vw/87b0Blc53tZNGZ4x7YvZ6HgQe2vo1W/FR20OgjeZuGXzudPiXHFug==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: - '@babel/core': 7.23.5(supports-color@8.1.1) + '@babel/core': 7.23.3(supports-color@8.1.1) '@babel/helper-compilation-targets': 7.22.15 '@babel/helper-plugin-utils': 7.22.5 debug: 4.3.4(supports-color@8.1.1) @@ -2245,33 +2273,33 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/template': 7.22.15 - '@babel/types': 7.23.5 + '@babel/types': 7.23.3 /@babel/helper-hoist-variables@7.22.5: resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.5 + '@babel/types': 7.23.3 /@babel/helper-member-expression-to-functions@7.23.0: resolution: {integrity: sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.5 + '@babel/types': 7.23.3 /@babel/helper-module-imports@7.22.15: resolution: {integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.5 + '@babel/types': 7.23.3 - /@babel/helper-module-transforms@7.23.3(@babel/core@7.23.5): + /@babel/helper-module-transforms@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.5(supports-color@8.1.1) + '@babel/core': 7.23.3(supports-color@8.1.1) '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-module-imports': 7.22.15 '@babel/helper-simple-access': 7.22.5 @@ -2282,30 +2310,30 @@ packages: resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.5 + '@babel/types': 7.23.3 /@babel/helper-plugin-utils@7.22.5: resolution: {integrity: sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==} engines: {node: '>=6.9.0'} - /@babel/helper-remap-async-to-generator@7.22.20(@babel/core@7.23.5): + /@babel/helper-remap-async-to-generator@7.22.20(@babel/core@7.23.3): resolution: {integrity: sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.5(supports-color@8.1.1) + '@babel/core': 7.23.3(supports-color@8.1.1) '@babel/helper-annotate-as-pure': 7.22.5 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-wrap-function': 7.22.20 - /@babel/helper-replace-supers@7.22.20(@babel/core@7.23.5): + /@babel/helper-replace-supers@7.22.20(@babel/core@7.23.3): resolution: {integrity: sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.5(supports-color@8.1.1) + '@babel/core': 7.23.3(supports-color@8.1.1) '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-member-expression-to-functions': 7.23.0 '@babel/helper-optimise-call-expression': 7.22.5 @@ -2314,30 +2342,30 @@ packages: resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.5 + '@babel/types': 7.23.3 /@babel/helper-skip-transparent-expression-wrappers@7.22.5: resolution: {integrity: sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.5 + '@babel/types': 7.23.3 /@babel/helper-split-export-declaration@7.22.6: resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.5 + '@babel/types': 7.23.3 - /@babel/helper-string-parser@7.23.4: - resolution: {integrity: sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==} + /@babel/helper-string-parser@7.22.5: + resolution: {integrity: sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==} engines: {node: '>=6.9.0'} /@babel/helper-validator-identifier@7.22.20: resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} engines: {node: '>=6.9.0'} - /@babel/helper-validator-option@7.23.5: - resolution: {integrity: sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==} + /@babel/helper-validator-option@7.22.15: + resolution: {integrity: sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==} engines: {node: '>=6.9.0'} /@babel/helper-wrap-function@7.22.20: @@ -2346,846 +2374,846 @@ packages: dependencies: '@babel/helper-function-name': 7.23.0 '@babel/template': 7.22.15 - '@babel/types': 7.23.5 + '@babel/types': 7.23.3 - /@babel/helpers@7.23.5(supports-color@8.1.1): - resolution: {integrity: sha512-oO7us8FzTEsG3U6ag9MfdF1iA/7Z6dz+MtFhifZk8C8o453rGJFFWUP1t+ULM9TUIAzC9uxXEiXjOiVMyd7QPg==} + /@babel/helpers@7.23.2(supports-color@8.1.1): + resolution: {integrity: sha512-lzchcp8SjTSVe/fPmLwtWVBFC7+Tbn8LGHDVfDp9JGxpAY5opSaEFgt8UQvrnECWOTdji2mOWMz1rOhkHscmGQ==} engines: {node: '>=6.9.0'} dependencies: '@babel/template': 7.22.15 - '@babel/traverse': 7.23.5(supports-color@8.1.1) - '@babel/types': 7.23.5 + '@babel/traverse': 7.23.3(supports-color@8.1.1) + '@babel/types': 7.23.3 transitivePeerDependencies: - supports-color - /@babel/highlight@7.23.4: - resolution: {integrity: sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==} + /@babel/highlight@7.22.20: + resolution: {integrity: sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==} engines: {node: '>=6.9.0'} dependencies: '@babel/helper-validator-identifier': 7.22.20 chalk: 2.4.2 js-tokens: 4.0.0 - /@babel/parser@7.23.5: - resolution: {integrity: sha512-hOOqoiNXrmGdFbhgCzu6GiURxUgM27Xwd/aPuu8RfHEZPBzL1Z54okAHAQjXfcQNwvrlkAmAp4SlRTZ45vlthQ==} + /@babel/parser@7.23.3: + resolution: {integrity: sha512-uVsWNvlVsIninV2prNz/3lHCb+5CJ+e+IUBfbjToAHODtfGYLfCFuY4AU7TskI+dAKk+njsPiBjq1gKTvZOBaw==} engines: {node: '>=6.0.0'} hasBin: true dependencies: - '@babel/types': 7.23.5 + '@babel/types': 7.23.3 - /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.23.3(@babel/core@7.23.5): + /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-iRkKcCqb7iGnq9+3G6rZ+Ciz5VywC4XNRHe57lKM+jOeYAoR0lVqdeeDRfh0tQcTfw/+vBhHn926FmQhLtlFLQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.5(supports-color@8.1.1) + '@babel/core': 7.23.3(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.23.3(@babel/core@7.23.5): + /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-WwlxbfMNdVEpQjZmK5mhm7oSwD3dS6eU+Iwsi4Knl9wAletWem7kaRsGOG+8UEbRyqxY4SS5zvtfXwX+jMxUwQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.13.0 dependencies: - '@babel/core': 7.23.5(supports-color@8.1.1) + '@babel/core': 7.23.3(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/plugin-transform-optional-chaining': 7.23.4(@babel/core@7.23.5) + '@babel/plugin-transform-optional-chaining': 7.23.3(@babel/core@7.23.3) - /@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.23.3(@babel/core@7.23.5): + /@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-XaJak1qcityzrX0/IU5nKHb34VaibwP3saKqG6a/tppelgllOH13LUann4ZCIBcVOeE6H18K4Vx9QKkVww3z/w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.5(supports-color@8.1.1) + '@babel/core': 7.23.3(supports-color@8.1.1) '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-proposal-class-properties@7.18.6(@babel/core@7.23.5): + /@babel/plugin-proposal-class-properties@7.18.6(@babel/core@7.23.3): resolution: {integrity: sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==} engines: {node: '>=6.9.0'} deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-properties instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5(supports-color@8.1.1) - '@babel/helper-create-class-features-plugin': 7.23.5(@babel/core@7.23.5) + '@babel/core': 7.23.3(supports-color@8.1.1) + '@babel/helper-create-class-features-plugin': 7.22.15(@babel/core@7.23.3) '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-proposal-decorators@7.23.5(@babel/core@7.23.5): - resolution: {integrity: sha512-6IsY8jOeWibsengGlWIezp7cuZEFzNlAghFpzh9wiZwhQ42/hRcPnY/QV9HJoKTlujupinSlnQPiEy/u2C1ZfQ==} + /@babel/plugin-proposal-decorators@7.23.3(@babel/core@7.23.3): + resolution: {integrity: sha512-u8SwzOcP0DYSsa++nHd/9exlHb0NAlHCb890qtZZbSwPX2bFv8LBEztxwN7Xg/dS8oAFFidhrI9PBcLBJSkGRQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5(supports-color@8.1.1) - '@babel/helper-create-class-features-plugin': 7.23.5(@babel/core@7.23.5) + '@babel/core': 7.23.3(supports-color@8.1.1) + '@babel/helper-create-class-features-plugin': 7.22.15(@babel/core@7.23.3) '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.5) + '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.3) '@babel/helper-split-export-declaration': 7.22.6 - '@babel/plugin-syntax-decorators': 7.23.3(@babel/core@7.23.5) + '@babel/plugin-syntax-decorators': 7.23.3(@babel/core@7.23.3) - /@babel/plugin-proposal-private-methods@7.18.6(@babel/core@7.23.5): + /@babel/plugin-proposal-private-methods@7.18.6(@babel/core@7.23.3): resolution: {integrity: sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==} engines: {node: '>=6.9.0'} deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-private-methods instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5(supports-color@8.1.1) - '@babel/helper-create-class-features-plugin': 7.23.5(@babel/core@7.23.5) + '@babel/core': 7.23.3(supports-color@8.1.1) + '@babel/helper-create-class-features-plugin': 7.22.15(@babel/core@7.23.3) '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.23.5): + /@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.23.3): resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5(supports-color@8.1.1) + '@babel/core': 7.23.3(supports-color@8.1.1) - /@babel/plugin-proposal-private-property-in-object@7.21.11(@babel/core@7.23.5): + /@babel/plugin-proposal-private-property-in-object@7.21.11(@babel/core@7.23.3): resolution: {integrity: sha512-0QZ8qP/3RLDVBwBFoWAwCtgcDZJVwA5LUJRZU8x2YFfKNuFq161wK3cuGrALu5yiPu+vzwTAg/sMWVNeWeNyaw==} engines: {node: '>=6.9.0'} deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-private-property-in-object instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5(supports-color@8.1.1) + '@babel/core': 7.23.3(supports-color@8.1.1) '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-create-class-features-plugin': 7.23.5(@babel/core@7.23.5) + '@babel/helper-create-class-features-plugin': 7.22.15(@babel/core@7.23.3) '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.23.5) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.23.3) - /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.23.5): + /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.23.3): resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5(supports-color@8.1.1) + '@babel/core': 7.23.3(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.23.5): + /@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.23.3): resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5(supports-color@8.1.1) + '@babel/core': 7.23.3(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.23.5): + /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.23.3): resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5(supports-color@8.1.1) + '@babel/core': 7.23.3(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.23.5): + /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.23.3): resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5(supports-color@8.1.1) + '@babel/core': 7.23.3(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-syntax-decorators@7.23.3(@babel/core@7.23.5): + /@babel/plugin-syntax-decorators@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-cf7Niq4/+/juY67E0PbgH0TDhLQ5J7zS8C/Q5FFx+DWyrRa9sUQdTXkjqKu8zGvuqr7vw1muKiukseihU+PJDA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5(supports-color@8.1.1) + '@babel/core': 7.23.3(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.23.5): + /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.23.3): resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5(supports-color@8.1.1) + '@babel/core': 7.23.3(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.23.5): + /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.23.3): resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5(supports-color@8.1.1) + '@babel/core': 7.23.3(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-syntax-import-assertions@7.23.3(@babel/core@7.23.5): + /@babel/plugin-syntax-import-assertions@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5(supports-color@8.1.1) + '@babel/core': 7.23.3(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-syntax-import-attributes@7.23.3(@babel/core@7.23.5): + /@babel/plugin-syntax-import-attributes@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-pawnE0P9g10xgoP7yKr6CK63K2FMsTE+FZidZO/1PwRdzmAPVs+HS1mAURUsgaoxammTJvULUdIkEK0gOcU2tA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5(supports-color@8.1.1) + '@babel/core': 7.23.3(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.23.5): + /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.23.3): resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5(supports-color@8.1.1) + '@babel/core': 7.23.3(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.23.5): + /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.23.3): resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5(supports-color@8.1.1) + '@babel/core': 7.23.3(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-syntax-jsx@7.23.3(@babel/core@7.23.5): + /@babel/plugin-syntax-jsx@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5(supports-color@8.1.1) + '@babel/core': 7.23.3(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.23.5): + /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.23.3): resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5(supports-color@8.1.1) + '@babel/core': 7.23.3(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.23.5): + /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.23.3): resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5(supports-color@8.1.1) + '@babel/core': 7.23.3(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.23.5): + /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.23.3): resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5(supports-color@8.1.1) + '@babel/core': 7.23.3(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.23.5): + /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.23.3): resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5(supports-color@8.1.1) + '@babel/core': 7.23.3(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.23.5): + /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.23.3): resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5(supports-color@8.1.1) + '@babel/core': 7.23.3(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.23.5): + /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.23.3): resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5(supports-color@8.1.1) + '@babel/core': 7.23.3(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.23.5): + /@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.23.3): resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5(supports-color@8.1.1) + '@babel/core': 7.23.3(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.23.5): + /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.23.3): resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5(supports-color@8.1.1) + '@babel/core': 7.23.3(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-syntax-typescript@7.23.3(@babel/core@7.23.5): + /@babel/plugin-syntax-typescript@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5(supports-color@8.1.1) + '@babel/core': 7.23.3(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.23.5): + /@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.23.3): resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.5(supports-color@8.1.1) - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.5) + '@babel/core': 7.23.3(supports-color@8.1.1) + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.3) '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-transform-arrow-functions@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-arrow-functions@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5(supports-color@8.1.1) + '@babel/core': 7.23.3(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-transform-async-generator-functions@7.23.4(@babel/core@7.23.5): - resolution: {integrity: sha512-efdkfPhHYTtn0G6n2ddrESE91fgXxjlqLsnUtPWnJs4a4mZIbUaK7ffqKIIUKXSHwcDvaCVX6GXkaJJFqtX7jw==} + /@babel/plugin-transform-async-generator-functions@7.23.3(@babel/core@7.23.3): + resolution: {integrity: sha512-59GsVNavGxAXCDDbakWSMJhajASb4kBCqDjqJsv+p5nKdbz7istmZ3HrX3L2LuiI80+zsOADCvooqQH3qGCucQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5(supports-color@8.1.1) + '@babel/core': 7.23.3(supports-color@8.1.1) '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.23.5) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.5) + '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.23.3) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.3) - /@babel/plugin-transform-async-to-generator@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-async-to-generator@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5(supports-color@8.1.1) + '@babel/core': 7.23.3(supports-color@8.1.1) '@babel/helper-module-imports': 7.22.15 '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.23.5) + '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.23.3) - /@babel/plugin-transform-block-scoped-functions@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-block-scoped-functions@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5(supports-color@8.1.1) + '@babel/core': 7.23.3(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-transform-block-scoping@7.23.4(@babel/core@7.23.5): - resolution: {integrity: sha512-0QqbP6B6HOh7/8iNR4CQU2Th/bbRtBp4KS9vcaZd1fZ0wSh5Fyssg0UCIHwxh+ka+pNDREbVLQnHCMHKZfPwfw==} + /@babel/plugin-transform-block-scoping@7.23.3(@babel/core@7.23.3): + resolution: {integrity: sha512-QPZxHrThbQia7UdvfpaRRlq/J9ciz1J4go0k+lPBXbgaNeY7IQrBj/9ceWjvMMI07/ZBzHl/F0R/2K0qH7jCVw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5(supports-color@8.1.1) + '@babel/core': 7.23.3(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-transform-class-properties@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-class-properties@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-uM+AN8yCIjDPccsKGlw271xjJtGii+xQIF/uMPS8H15L12jZTsLfF4o5vNO7d/oUguOyfdikHGc/yi9ge4SGIg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5(supports-color@8.1.1) - '@babel/helper-create-class-features-plugin': 7.23.5(@babel/core@7.23.5) + '@babel/core': 7.23.3(supports-color@8.1.1) + '@babel/helper-create-class-features-plugin': 7.22.15(@babel/core@7.23.3) '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-transform-class-static-block@7.23.4(@babel/core@7.23.5): - resolution: {integrity: sha512-nsWu/1M+ggti1SOALj3hfx5FXzAY06fwPJsUZD4/A5e1bWi46VUIWtD+kOX6/IdhXGsXBWllLFDSnqSCdUNydQ==} + /@babel/plugin-transform-class-static-block@7.23.3(@babel/core@7.23.3): + resolution: {integrity: sha512-PENDVxdr7ZxKPyi5Ffc0LjXdnJyrJxyqF5T5YjlVg4a0VFfQHW0r8iAtRiDXkfHlu1wwcvdtnndGYIeJLSuRMQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.12.0 dependencies: - '@babel/core': 7.23.5(supports-color@8.1.1) - '@babel/helper-create-class-features-plugin': 7.23.5(@babel/core@7.23.5) + '@babel/core': 7.23.3(supports-color@8.1.1) + '@babel/helper-create-class-features-plugin': 7.22.15(@babel/core@7.23.3) '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.23.5) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.23.3) - /@babel/plugin-transform-classes@7.23.5(@babel/core@7.23.5): - resolution: {integrity: sha512-jvOTR4nicqYC9yzOHIhXG5emiFEOpappSJAl73SDSEDcybD+Puuze8Tnpb9p9qEyYup24tq891gkaygIFvWDqg==} + /@babel/plugin-transform-classes@7.23.3(@babel/core@7.23.3): + resolution: {integrity: sha512-FGEQmugvAEu2QtgtU0uTASXevfLMFfBeVCIIdcQhn/uBQsMTjBajdnAtanQlOcuihWh10PZ7+HWvc7NtBwP74w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5(supports-color@8.1.1) + '@babel/core': 7.23.3(supports-color@8.1.1) '@babel/helper-annotate-as-pure': 7.22.5 '@babel/helper-compilation-targets': 7.22.15 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-function-name': 7.23.0 '@babel/helper-optimise-call-expression': 7.22.5 '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.5) + '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.3) '@babel/helper-split-export-declaration': 7.22.6 globals: 11.12.0 - /@babel/plugin-transform-computed-properties@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-computed-properties@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5(supports-color@8.1.1) + '@babel/core': 7.23.3(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.22.5 '@babel/template': 7.22.15 - /@babel/plugin-transform-destructuring@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-destructuring@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5(supports-color@8.1.1) + '@babel/core': 7.23.3(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-transform-dotall-regex@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-dotall-regex@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-vgnFYDHAKzFaTVp+mneDsIEbnJ2Np/9ng9iviHw3P/KVcgONxpNULEW/51Z/BaFojG2GI2GwwXck5uV1+1NOYQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5(supports-color@8.1.1) - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.5) + '@babel/core': 7.23.3(supports-color@8.1.1) + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.3) '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-transform-duplicate-keys@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-duplicate-keys@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-RrqQ+BQmU3Oyav3J+7/myfvRCq7Tbz+kKLLshUmMwNlDHExbGL7ARhajvoBJEvc+fCguPPu887N+3RRXBVKZUA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5(supports-color@8.1.1) + '@babel/core': 7.23.3(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-transform-dynamic-import@7.23.4(@babel/core@7.23.5): - resolution: {integrity: sha512-V6jIbLhdJK86MaLh4Jpghi8ho5fGzt3imHOBu/x0jlBaPYqDoWz4RDXjmMOfnh+JWNaQleEAByZLV0QzBT4YQQ==} + /@babel/plugin-transform-dynamic-import@7.23.3(@babel/core@7.23.3): + resolution: {integrity: sha512-vTG+cTGxPFou12Rj7ll+eD5yWeNl5/8xvQvF08y5Gv3v4mZQoyFf8/n9zg4q5vvCWt5jmgymfzMAldO7orBn7A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5(supports-color@8.1.1) + '@babel/core': 7.23.3(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.23.5) + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.23.3) - /@babel/plugin-transform-exponentiation-operator@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-exponentiation-operator@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-5fhCsl1odX96u7ILKHBj4/Y8vipoqwsJMh4csSA8qFfxrZDEA4Ssku2DyNvMJSmZNOEBT750LfFPbtrnTP90BQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5(supports-color@8.1.1) + '@babel/core': 7.23.3(supports-color@8.1.1) '@babel/helper-builder-binary-assignment-operator-visitor': 7.22.15 '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-transform-export-namespace-from@7.23.4(@babel/core@7.23.5): - resolution: {integrity: sha512-GzuSBcKkx62dGzZI1WVgTWvkkz84FZO5TC5T8dl/Tht/rAla6Dg/Mz9Yhypg+ezVACf/rgDuQt3kbWEv7LdUDQ==} + /@babel/plugin-transform-export-namespace-from@7.23.3(@babel/core@7.23.3): + resolution: {integrity: sha512-yCLhW34wpJWRdTxxWtFZASJisihrfyMOTOQexhVzA78jlU+dH7Dw+zQgcPepQ5F3C6bAIiblZZ+qBggJdHiBAg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5(supports-color@8.1.1) + '@babel/core': 7.23.3(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.23.5) + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.23.3) - /@babel/plugin-transform-for-of@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-for-of@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-X8jSm8X1CMwxmK878qsUGJRmbysKNbdpTv/O1/v0LuY/ZkZrng5WYiekYSdg9m09OTmDDUWeEDsTE+17WYbAZw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5(supports-color@8.1.1) + '@babel/core': 7.23.3(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-transform-function-name@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-function-name@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5(supports-color@8.1.1) + '@babel/core': 7.23.3(supports-color@8.1.1) '@babel/helper-compilation-targets': 7.22.15 '@babel/helper-function-name': 7.23.0 '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-transform-json-strings@7.23.4(@babel/core@7.23.5): - resolution: {integrity: sha512-81nTOqM1dMwZ/aRXQ59zVubN9wHGqk6UtqRK+/q+ciXmRy8fSolhGVvG09HHRGo4l6fr/c4ZhXUQH0uFW7PZbg==} + /@babel/plugin-transform-json-strings@7.23.3(@babel/core@7.23.3): + resolution: {integrity: sha512-H9Ej2OiISIZowZHaBwF0tsJOih1PftXJtE8EWqlEIwpc7LMTGq0rPOrywKLQ4nefzx8/HMR0D3JGXoMHYvhi0A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5(supports-color@8.1.1) + '@babel/core': 7.23.3(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.5) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.3) - /@babel/plugin-transform-literals@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-literals@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5(supports-color@8.1.1) + '@babel/core': 7.23.3(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-transform-logical-assignment-operators@7.23.4(@babel/core@7.23.5): - resolution: {integrity: sha512-Mc/ALf1rmZTP4JKKEhUwiORU+vcfarFVLfcFiolKUo6sewoxSEgl36ak5t+4WamRsNr6nzjZXQjM35WsU+9vbg==} + /@babel/plugin-transform-logical-assignment-operators@7.23.3(@babel/core@7.23.3): + resolution: {integrity: sha512-+pD5ZbxofyOygEp+zZAfujY2ShNCXRpDRIPOiBmTO693hhyOEteZgl876Xs9SAHPQpcV0vz8LvA/T+w8AzyX8A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5(supports-color@8.1.1) + '@babel/core': 7.23.3(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.5) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.3) - /@babel/plugin-transform-member-expression-literals@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-member-expression-literals@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5(supports-color@8.1.1) + '@babel/core': 7.23.3(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-transform-modules-amd@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-modules-amd@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-vJYQGxeKM4t8hYCKVBlZX/gtIY2I7mRGFNcm85sgXGMTBcoV3QdVtdpbcWEbzbfUIUZKwvgFT82mRvaQIebZzw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5(supports-color@8.1.1) - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.5) + '@babel/core': 7.23.3(supports-color@8.1.1) + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.3) '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-transform-modules-commonjs@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-modules-commonjs@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5(supports-color@8.1.1) - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.5) + '@babel/core': 7.23.3(supports-color@8.1.1) + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.3) '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-simple-access': 7.22.5 - /@babel/plugin-transform-modules-systemjs@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-modules-systemjs@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-ZxyKGTkF9xT9YJuKQRo19ewf3pXpopuYQd8cDXqNzc3mUNbOME0RKMoZxviQk74hwzfQsEe66dE92MaZbdHKNQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5(supports-color@8.1.1) + '@babel/core': 7.23.3(supports-color@8.1.1) '@babel/helper-hoist-variables': 7.22.5 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.5) + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.3) '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-validator-identifier': 7.22.20 - /@babel/plugin-transform-modules-umd@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-modules-umd@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-zHsy9iXX2nIsCBFPud3jKn1IRPWg3Ing1qOZgeKV39m1ZgIdpJqvlWVeiHBZC6ITRG0MfskhYe9cLgntfSFPIg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5(supports-color@8.1.1) - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.5) + '@babel/core': 7.23.3(supports-color@8.1.1) + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.3) '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.23.5): + /@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.23.3): resolution: {integrity: sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.5(supports-color@8.1.1) - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.5) + '@babel/core': 7.23.3(supports-color@8.1.1) + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.3) '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-transform-new-target@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-new-target@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-YJ3xKqtJMAT5/TIZnpAR3I+K+WaDowYbN3xyxI8zxx/Gsypwf9B9h0VB+1Nh6ACAAPRS5NSRje0uVv5i79HYGQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5(supports-color@8.1.1) + '@babel/core': 7.23.3(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-transform-nullish-coalescing-operator@7.23.4(@babel/core@7.23.5): - resolution: {integrity: sha512-jHE9EVVqHKAQx+VePv5LLGHjmHSJR76vawFPTdlxR/LVJPfOEGxREQwQfjuZEOPTwG92X3LINSh3M40Rv4zpVA==} + /@babel/plugin-transform-nullish-coalescing-operator@7.23.3(@babel/core@7.23.3): + resolution: {integrity: sha512-xzg24Lnld4DYIdysyf07zJ1P+iIfJpxtVFOzX4g+bsJ3Ng5Le7rXx9KwqKzuyaUeRnt+I1EICwQITqc0E2PmpA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5(supports-color@8.1.1) + '@babel/core': 7.23.3(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.5) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.3) - /@babel/plugin-transform-numeric-separator@7.23.4(@babel/core@7.23.5): - resolution: {integrity: sha512-mps6auzgwjRrwKEZA05cOwuDc9FAzoyFS4ZsG/8F43bTLf/TgkJg7QXOrPO1JO599iA3qgK9MXdMGOEC8O1h6Q==} + /@babel/plugin-transform-numeric-separator@7.23.3(@babel/core@7.23.3): + resolution: {integrity: sha512-s9GO7fIBi/BLsZ0v3Rftr6Oe4t0ctJ8h4CCXfPoEJwmvAPMyNrfkOOJzm6b9PX9YXcCJWWQd/sBF/N26eBiMVw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5(supports-color@8.1.1) + '@babel/core': 7.23.3(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.5) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.3) - /@babel/plugin-transform-object-assign@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-object-assign@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-TPJ6O7gVC2rlQH2hvQGRH273G1xdoloCj9Pc07Q7JbIZYDi+Sv5gaE2fu+r5E7qK4zyt6vj0FbZaZTRU5C3OMA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5(supports-color@8.1.1) + '@babel/core': 7.23.3(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-transform-object-rest-spread@7.23.4(@babel/core@7.23.5): - resolution: {integrity: sha512-9x9K1YyeQVw0iOXJlIzwm8ltobIIv7j2iLyP2jIhEbqPRQ7ScNgwQufU2I0Gq11VjyG4gI4yMXt2VFags+1N3g==} + /@babel/plugin-transform-object-rest-spread@7.23.3(@babel/core@7.23.3): + resolution: {integrity: sha512-VxHt0ANkDmu8TANdE9Kc0rndo/ccsmfe2Cx2y5sI4hu3AukHQ5wAu4cM7j3ba8B9548ijVyclBU+nuDQftZsog==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/compat-data': 7.23.5 - '@babel/core': 7.23.5(supports-color@8.1.1) + '@babel/compat-data': 7.23.3 + '@babel/core': 7.23.3(supports-color@8.1.1) '@babel/helper-compilation-targets': 7.22.15 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.5) - '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.23.5) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.3) + '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.23.3) - /@babel/plugin-transform-object-super@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-object-super@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5(supports-color@8.1.1) + '@babel/core': 7.23.3(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.5) + '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.3) - /@babel/plugin-transform-optional-catch-binding@7.23.4(@babel/core@7.23.5): - resolution: {integrity: sha512-XIq8t0rJPHf6Wvmbn9nFxU6ao4c7WhghTR5WyV8SrJfUFzyxhCm4nhC+iAp3HFhbAKLfYpgzhJ6t4XCtVwqO5A==} + /@babel/plugin-transform-optional-catch-binding@7.23.3(@babel/core@7.23.3): + resolution: {integrity: sha512-LxYSb0iLjUamfm7f1D7GpiS4j0UAC8AOiehnsGAP8BEsIX8EOi3qV6bbctw8M7ZvLtcoZfZX5Z7rN9PlWk0m5A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5(supports-color@8.1.1) + '@babel/core': 7.23.3(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.5) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.3) - /@babel/plugin-transform-optional-chaining@7.23.4(@babel/core@7.23.5): - resolution: {integrity: sha512-ZU8y5zWOfjM5vZ+asjgAPwDaBjJzgufjES89Rs4Lpq63O300R/kOz30WCLo6BxxX6QVEilwSlpClnG5cZaikTA==} + /@babel/plugin-transform-optional-chaining@7.23.3(@babel/core@7.23.3): + resolution: {integrity: sha512-zvL8vIfIUgMccIAK1lxjvNv572JHFJIKb4MWBz5OGdBQA0fB0Xluix5rmOby48exiJc987neOmP/m9Fnpkz3Tg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5(supports-color@8.1.1) + '@babel/core': 7.23.3(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.5) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.3) - /@babel/plugin-transform-parameters@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-parameters@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5(supports-color@8.1.1) + '@babel/core': 7.23.3(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-transform-private-methods@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-private-methods@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-UzqRcRtWsDMTLrRWFvUBDwmw06tCQH9Rl1uAjfh6ijMSmGYQ+fpdB+cnqRC8EMh5tuuxSv0/TejGL+7vyj+50g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5(supports-color@8.1.1) - '@babel/helper-create-class-features-plugin': 7.23.5(@babel/core@7.23.5) + '@babel/core': 7.23.3(supports-color@8.1.1) + '@babel/helper-create-class-features-plugin': 7.22.15(@babel/core@7.23.3) '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-transform-private-property-in-object@7.23.4(@babel/core@7.23.5): - resolution: {integrity: sha512-9G3K1YqTq3F4Vt88Djx1UZ79PDyj+yKRnUy7cZGSMe+a7jkwD259uKKuUzQlPkGam7R+8RJwh5z4xO27fA1o2A==} + /@babel/plugin-transform-private-property-in-object@7.23.3(@babel/core@7.23.3): + resolution: {integrity: sha512-a5m2oLNFyje2e/rGKjVfAELTVI5mbA0FeZpBnkOWWV7eSmKQ+T/XW0Vf+29ScLzSxX+rnsarvU0oie/4m6hkxA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5(supports-color@8.1.1) + '@babel/core': 7.23.3(supports-color@8.1.1) '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-create-class-features-plugin': 7.23.5(@babel/core@7.23.5) + '@babel/helper-create-class-features-plugin': 7.22.15(@babel/core@7.23.3) '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.23.5) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.23.3) - /@babel/plugin-transform-property-literals@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-property-literals@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5(supports-color@8.1.1) + '@babel/core': 7.23.3(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-transform-regenerator@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-regenerator@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-KP+75h0KghBMcVpuKisx3XTu9Ncut8Q8TuvGO4IhY+9D5DFEckQefOuIsB/gQ2tG71lCke4NMrtIPS8pOj18BQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5(supports-color@8.1.1) + '@babel/core': 7.23.3(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.22.5 regenerator-transform: 0.15.2 - /@babel/plugin-transform-reserved-words@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-reserved-words@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5(supports-color@8.1.1) + '@babel/core': 7.23.3(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-transform-runtime@7.23.4(@babel/core@7.23.5): - resolution: {integrity: sha512-ITwqpb6V4btwUG0YJR82o2QvmWrLgDnx/p2A3CTPYGaRgULkDiC0DRA2C4jlRB9uXGUEfaSS/IGHfVW+ohzYDw==} + /@babel/plugin-transform-runtime@7.23.3(@babel/core@7.23.3): + resolution: {integrity: sha512-XcQ3X58CKBdBnnZpPaQjgVMePsXtSZzHoku70q9tUAQp02ggPQNM04BF3RvlW1GSM/McbSOQAzEK4MXbS7/JFg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5(supports-color@8.1.1) + '@babel/core': 7.23.3(supports-color@8.1.1) '@babel/helper-module-imports': 7.22.15 '@babel/helper-plugin-utils': 7.22.5 - babel-plugin-polyfill-corejs2: 0.4.6(@babel/core@7.23.5) - babel-plugin-polyfill-corejs3: 0.8.6(@babel/core@7.23.5) - babel-plugin-polyfill-regenerator: 0.5.3(@babel/core@7.23.5) + babel-plugin-polyfill-corejs2: 0.4.6(@babel/core@7.23.3) + babel-plugin-polyfill-corejs3: 0.8.6(@babel/core@7.23.3) + babel-plugin-polyfill-regenerator: 0.5.3(@babel/core@7.23.3) semver: 6.3.1 transitivePeerDependencies: - supports-color - /@babel/plugin-transform-shorthand-properties@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-shorthand-properties@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5(supports-color@8.1.1) + '@babel/core': 7.23.3(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-transform-spread@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-spread@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5(supports-color@8.1.1) + '@babel/core': 7.23.3(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - /@babel/plugin-transform-sticky-regex@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-sticky-regex@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5(supports-color@8.1.1) + '@babel/core': 7.23.3(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-transform-template-literals@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-template-literals@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5(supports-color@8.1.1) + '@babel/core': 7.23.3(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-transform-typeof-symbol@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-typeof-symbol@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5(supports-color@8.1.1) + '@babel/core': 7.23.3(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-transform-typescript@7.23.5(@babel/core@7.23.5): - resolution: {integrity: sha512-2fMkXEJkrmwgu2Bsv1Saxgj30IXZdJ+84lQcKKI7sm719oXs0BBw2ZENKdJdR1PjWndgLCEBNXJOri0fk7RYQA==} + /@babel/plugin-transform-typescript@7.23.3(@babel/core@7.23.3): + resolution: {integrity: sha512-ogV0yWnq38CFwH20l2Afz0dfKuZBx9o/Y2Rmh5vuSS0YD1hswgEgTfyTzuSrT2q9btmHRSqYoSfwFUVaC1M1Jw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5(supports-color@8.1.1) + '@babel/core': 7.23.3(supports-color@8.1.1) '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-create-class-features-plugin': 7.23.5(@babel/core@7.23.5) + '@babel/helper-create-class-features-plugin': 7.22.15(@babel/core@7.23.3) '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-typescript': 7.23.3(@babel/core@7.23.5) + '@babel/plugin-syntax-typescript': 7.23.3(@babel/core@7.23.3) - /@babel/plugin-transform-typescript@7.4.5(@babel/core@7.23.5): + /@babel/plugin-transform-typescript@7.4.5(@babel/core@7.23.3): resolution: {integrity: sha512-RPB/YeGr4ZrFKNwfuQRlMf2lxoCUaU01MTw39/OFE/RiL8HDjtn68BwEPft1P7JN4akyEmjGWAMNldOV7o9V2g==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5(supports-color@8.1.1) + '@babel/core': 7.23.3(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-typescript': 7.23.3(@babel/core@7.23.5) + '@babel/plugin-syntax-typescript': 7.23.3(@babel/core@7.23.3) dev: true - /@babel/plugin-transform-typescript@7.5.5(@babel/core@7.23.5): + /@babel/plugin-transform-typescript@7.5.5(@babel/core@7.23.3): resolution: {integrity: sha512-pehKf4m640myZu5B2ZviLaiBlxMCjSZ1qTEO459AXKX5GnPueyulJeCqZFs1nz/Ya2dDzXQ1NxZ/kKNWyD4h6w==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5(supports-color@8.1.1) - '@babel/helper-create-class-features-plugin': 7.23.5(@babel/core@7.23.5) + '@babel/core': 7.23.3(supports-color@8.1.1) + '@babel/helper-create-class-features-plugin': 7.22.15(@babel/core@7.23.3) '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-typescript': 7.23.3(@babel/core@7.23.5) + '@babel/plugin-syntax-typescript': 7.23.3(@babel/core@7.23.3) - /@babel/plugin-transform-unicode-escapes@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-unicode-escapes@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5(supports-color@8.1.1) + '@babel/core': 7.23.3(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-transform-unicode-property-regex@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-unicode-property-regex@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-KcLIm+pDZkWZQAFJ9pdfmh89EwVfmNovFBcXko8szpBeF8z68kWIPeKlmSOkT9BXJxs2C0uk+5LxoxIv62MROA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5(supports-color@8.1.1) - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.5) + '@babel/core': 7.23.3(supports-color@8.1.1) + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.3) '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-transform-unicode-regex@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-unicode-regex@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-wMHpNA4x2cIA32b/ci3AfwNgheiva2W0WUKWTK7vBHBhDKfPsc5cFGNWm69WBqpwd86u1qwZ9PWevKqm1A3yAw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5(supports-color@8.1.1) - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.5) + '@babel/core': 7.23.3(supports-color@8.1.1) + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.3) '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-transform-unicode-sets-regex@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-unicode-sets-regex@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-W7lliA/v9bNR83Qc3q1ip9CQMZ09CcHDbHfbLRDNuAhn1Mvkr1ZNF7hPmztMQvtTGVLJ9m8IZqWsTkXOml8dbw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.5(supports-color@8.1.1) - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.5) + '@babel/core': 7.23.3(supports-color@8.1.1) + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.3) '@babel/helper-plugin-utils': 7.22.5 /@babel/polyfill@7.12.1: @@ -3195,104 +3223,104 @@ packages: core-js: 2.6.12 regenerator-runtime: 0.13.11 - /@babel/preset-env@7.23.5(@babel/core@7.23.5): - resolution: {integrity: sha512-0d/uxVD6tFGWXGDSfyMD1p2otoaKmu6+GD+NfAx0tMaH+dxORnp7T9TaVQ6mKyya7iBtCIVxHjWT7MuzzM9z+A==} + /@babel/preset-env@7.23.3(@babel/core@7.23.3): + resolution: {integrity: sha512-ovzGc2uuyNfNAs/jyjIGxS8arOHS5FENZaNn4rtE7UdKMMkqHCvboHfcuhWLZNX5cB44QfcGNWjaevxMzzMf+Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/compat-data': 7.23.5 - '@babel/core': 7.23.5(supports-color@8.1.1) + '@babel/compat-data': 7.23.3 + '@babel/core': 7.23.3(supports-color@8.1.1) '@babel/helper-compilation-targets': 7.22.15 '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-validator-option': 7.23.5 - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.23.5) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.5) - '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.23.5) - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.23.5) - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.23.5) - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.23.5) - '@babel/plugin-syntax-import-assertions': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-syntax-import-attributes': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.23.5) - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.5) - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.5) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.5) - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.5) - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.5) - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.5) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.5) - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.23.5) - '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.23.5) - '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.23.5) - '@babel/plugin-transform-arrow-functions': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-async-generator-functions': 7.23.4(@babel/core@7.23.5) - '@babel/plugin-transform-async-to-generator': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-block-scoped-functions': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-block-scoping': 7.23.4(@babel/core@7.23.5) - '@babel/plugin-transform-class-properties': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-class-static-block': 7.23.4(@babel/core@7.23.5) - '@babel/plugin-transform-classes': 7.23.5(@babel/core@7.23.5) - '@babel/plugin-transform-computed-properties': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-destructuring': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-dotall-regex': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-duplicate-keys': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-dynamic-import': 7.23.4(@babel/core@7.23.5) - '@babel/plugin-transform-exponentiation-operator': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-export-namespace-from': 7.23.4(@babel/core@7.23.5) - '@babel/plugin-transform-for-of': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-function-name': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-json-strings': 7.23.4(@babel/core@7.23.5) - '@babel/plugin-transform-literals': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-logical-assignment-operators': 7.23.4(@babel/core@7.23.5) - '@babel/plugin-transform-member-expression-literals': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-modules-amd': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-modules-commonjs': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-modules-systemjs': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-modules-umd': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5(@babel/core@7.23.5) - '@babel/plugin-transform-new-target': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-nullish-coalescing-operator': 7.23.4(@babel/core@7.23.5) - '@babel/plugin-transform-numeric-separator': 7.23.4(@babel/core@7.23.5) - '@babel/plugin-transform-object-rest-spread': 7.23.4(@babel/core@7.23.5) - '@babel/plugin-transform-object-super': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-optional-catch-binding': 7.23.4(@babel/core@7.23.5) - '@babel/plugin-transform-optional-chaining': 7.23.4(@babel/core@7.23.5) - '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-private-methods': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-private-property-in-object': 7.23.4(@babel/core@7.23.5) - '@babel/plugin-transform-property-literals': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-regenerator': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-reserved-words': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-shorthand-properties': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-spread': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-sticky-regex': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-template-literals': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-typeof-symbol': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-unicode-escapes': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-unicode-property-regex': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-unicode-regex': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-unicode-sets-regex': 7.23.3(@babel/core@7.23.5) - '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.23.5) - babel-plugin-polyfill-corejs2: 0.4.6(@babel/core@7.23.5) - babel-plugin-polyfill-corejs3: 0.8.6(@babel/core@7.23.5) - babel-plugin-polyfill-regenerator: 0.5.3(@babel/core@7.23.5) - core-js-compat: 3.34.0 + '@babel/helper-validator-option': 7.22.15 + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.23.3) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.3) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.23.3) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.23.3) + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.23.3) + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.23.3) + '@babel/plugin-syntax-import-assertions': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-syntax-import-attributes': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.23.3) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.3) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.3) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.3) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.3) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.3) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.3) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.3) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.23.3) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.23.3) + '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.23.3) + '@babel/plugin-transform-arrow-functions': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-async-generator-functions': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-async-to-generator': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-block-scoped-functions': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-block-scoping': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-class-properties': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-class-static-block': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-classes': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-computed-properties': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-destructuring': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-dotall-regex': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-duplicate-keys': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-dynamic-import': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-exponentiation-operator': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-export-namespace-from': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-for-of': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-function-name': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-json-strings': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-literals': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-logical-assignment-operators': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-member-expression-literals': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-modules-amd': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-modules-commonjs': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-modules-systemjs': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-modules-umd': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5(@babel/core@7.23.3) + '@babel/plugin-transform-new-target': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-nullish-coalescing-operator': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-numeric-separator': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-object-rest-spread': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-object-super': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-optional-catch-binding': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-optional-chaining': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-private-methods': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-private-property-in-object': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-property-literals': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-regenerator': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-reserved-words': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-shorthand-properties': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-spread': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-sticky-regex': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-template-literals': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-typeof-symbol': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-unicode-escapes': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-unicode-property-regex': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-unicode-regex': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-unicode-sets-regex': 7.23.3(@babel/core@7.23.3) + '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.23.3) + babel-plugin-polyfill-corejs2: 0.4.6(@babel/core@7.23.3) + babel-plugin-polyfill-corejs3: 0.8.6(@babel/core@7.23.3) + babel-plugin-polyfill-regenerator: 0.5.3(@babel/core@7.23.3) + core-js-compat: 3.33.2 semver: 6.3.1 transitivePeerDependencies: - supports-color - /@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.23.5): + /@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.23.3): resolution: {integrity: sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==} peerDependencies: '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0 dependencies: - '@babel/core': 7.23.5(supports-color@8.1.1) + '@babel/core': 7.23.3(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.22.5 - '@babel/types': 7.23.5 + '@babel/types': 7.23.3 esutils: 2.0.3 /@babel/regjsgen@0.8.0: @@ -3303,8 +3331,8 @@ packages: dependencies: regenerator-runtime: 0.13.11 - /@babel/runtime@7.23.5: - resolution: {integrity: sha512-NdUTHcPe4C99WxPub+K9l9tK5/lV4UXIoaHSYgzco9BCyjKAAwzdBI+wWtYqHt7LJdbo74ZjRPJgzVweq1sz0w==} + /@babel/runtime@7.23.2: + resolution: {integrity: sha512-mM8eg4yl5D6i3lu2QKPuPH4FArvJ8KhTofbE7jwMUv9KX5mBvwPAqnV3MlyBNqdp9RyRKP6Yck8TrfYrPvX3bg==} engines: {node: '>=6.9.0'} dependencies: regenerator-runtime: 0.14.0 @@ -3313,40 +3341,40 @@ packages: resolution: {integrity: sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==} engines: {node: '>=6.9.0'} dependencies: - '@babel/code-frame': 7.23.5 - '@babel/parser': 7.23.5 - '@babel/types': 7.23.5 + '@babel/code-frame': 7.22.13 + '@babel/parser': 7.23.3 + '@babel/types': 7.23.3 /@babel/traverse@7.23.0: resolution: {integrity: sha512-t/QaEvyIoIkwzpiZ7aoSKK8kObQYeF7T2v+dazAYCb8SXtp58zEVkWW7zAnju8FNKNdr4ScAOEDmMItbyOmEYw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/code-frame': 7.23.5 - '@babel/generator': 7.23.5 + '@babel/code-frame': 7.22.13 + '@babel/generator': 7.23.3 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-function-name': 7.23.0 '@babel/helper-hoist-variables': 7.22.5 '@babel/helper-split-export-declaration': 7.22.6 - '@babel/parser': 7.23.5 - '@babel/types': 7.23.5 + '@babel/parser': 7.23.3 + '@babel/types': 7.23.3 debug: 4.3.4(supports-color@8.1.1) globals: 11.12.0 transitivePeerDependencies: - supports-color dev: true - /@babel/traverse@7.23.5(supports-color@8.1.1): - resolution: {integrity: sha512-czx7Xy5a6sapWWRx61m1Ke1Ra4vczu1mCTtJam5zRTBOonfdJ+S/B6HYmGYu3fJtr8GGET3si6IhgWVBhJ/m8w==} + /@babel/traverse@7.23.3(supports-color@8.1.1): + resolution: {integrity: sha512-+K0yF1/9yR0oHdE0StHuEj3uTPzwwbrLGfNOndVJVV2TqA5+j3oljJUb4nmB954FLGjNem976+B+eDuLIjesiQ==} engines: {node: '>=6.9.0'} dependencies: - '@babel/code-frame': 7.23.5 - '@babel/generator': 7.23.5 + '@babel/code-frame': 7.22.13 + '@babel/generator': 7.23.3 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-function-name': 7.23.0 '@babel/helper-hoist-variables': 7.22.5 '@babel/helper-split-export-declaration': 7.22.6 - '@babel/parser': 7.23.5 - '@babel/types': 7.23.5 + '@babel/parser': 7.23.3 + '@babel/types': 7.23.3 debug: 4.3.4(supports-color@8.1.1) globals: 11.12.0 transitivePeerDependencies: @@ -3356,16 +3384,16 @@ packages: resolution: {integrity: sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/helper-string-parser': 7.23.4 + '@babel/helper-string-parser': 7.22.5 '@babel/helper-validator-identifier': 7.22.20 to-fast-properties: 2.0.0 dev: true - /@babel/types@7.23.5: - resolution: {integrity: sha512-ON5kSOJwVO6xXVRTvOI0eOnWe7VdUcIpsovGo9U/Br4Ie4UVFQTboO2cYnDhAGU6Fp+UxSiT+pMft0SMHfuq6w==} + /@babel/types@7.23.3: + resolution: {integrity: sha512-OZnvoH2l8PK5eUvEcUyCt/sXgr/h+UWpVuBbOljwcrAgUl6lpchoQ++PHGyQy1AtYnVA6CEq3y5xeEI10brpXw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/helper-string-parser': 7.23.4 + '@babel/helper-string-parser': 7.22.5 '@babel/helper-validator-identifier': 7.22.20 to-fast-properties: 2.0.0 @@ -3445,14 +3473,14 @@ packages: yargs: 11.1.1 transitivePeerDependencies: - supports-color - dev: true + dev: false - /@ember-data/adapter@3.28.13(@babel/core@7.23.5): + /@ember-data/adapter@3.28.13(@babel/core@7.23.3): resolution: {integrity: sha512-AwLJTs+GvxX72vfP3edV0hoMLD9oPWJNbnqxakXVN9xGTuk6/TeGQLMrVU3222GCoMMNrJ357Nip7kZeFo4IdA==} engines: {node: 12.* || >= 14.*} dependencies: - '@ember-data/private-build-infra': 3.28.13(@babel/core@7.23.5) - '@ember-data/store': 3.28.13(@babel/core@7.23.5) + '@ember-data/private-build-infra': 3.28.13(@babel/core@7.23.3) + '@ember-data/store': 3.28.13(@babel/core@7.23.3) '@ember/edition-utils': 1.2.0 '@ember/string': 3.1.1 ember-cli-babel: 7.26.11 @@ -3463,15 +3491,15 @@ packages: - supports-color dev: true - /@ember-data/adapter@4.4.3(@babel/core@7.23.5): + /@ember-data/adapter@4.4.3(@babel/core@7.23.3): resolution: {integrity: sha512-rwcwzffVHosmKgWEOSwvUy8EFazDV08lZvw8uFDK9CrrhUBWGLG8Ugrc1nu3HEAHA9UWNFbaAPKj/R4PvV2igw==} engines: {node: 12.* || >= 14.*} dependencies: - '@ember-data/private-build-infra': 4.4.3(@babel/core@7.23.5) - '@ember-data/store': 4.4.3(@babel/core@7.23.5) + '@ember-data/private-build-infra': 4.4.3(@babel/core@7.23.3) + '@ember-data/store': 4.4.3(@babel/core@7.23.3) '@ember/edition-utils': 1.2.0 '@ember/string': 3.1.1 - ember-auto-import: 2.7.0 + ember-auto-import: 2.6.3 ember-cli-babel: 7.26.11 ember-cli-test-info: 1.0.0 ember-cli-typescript: 5.2.1 @@ -3482,15 +3510,15 @@ packages: - webpack dev: true - /@ember-data/adapter@4.4.3(@babel/core@7.23.5)(webpack@5.89.0): + /@ember-data/adapter@4.4.3(@babel/core@7.23.3)(webpack@5.89.0): resolution: {integrity: sha512-rwcwzffVHosmKgWEOSwvUy8EFazDV08lZvw8uFDK9CrrhUBWGLG8Ugrc1nu3HEAHA9UWNFbaAPKj/R4PvV2igw==} engines: {node: 12.* || >= 14.*} dependencies: - '@ember-data/private-build-infra': 4.4.3(@babel/core@7.23.5) - '@ember-data/store': 4.4.3(@babel/core@7.23.5)(webpack@5.89.0) + '@ember-data/private-build-infra': 4.4.3(@babel/core@7.23.3) + '@ember-data/store': 4.4.3(@babel/core@7.23.3)(webpack@5.89.0) '@ember/edition-utils': 1.2.0 '@ember/string': 3.1.1 - ember-auto-import: 2.7.0(@glint/template@1.2.1)(webpack@5.89.0) + ember-auto-import: 2.6.3(@glint/template@1.2.1)(webpack@5.89.0) ember-cli-babel: 7.26.11 ember-cli-test-info: 1.0.0 ember-cli-typescript: 5.2.1 @@ -3510,7 +3538,7 @@ packages: ember-inflector: ^4.0.2 dependencies: '@ember-data/private-build-infra': 5.1.2 - '@ember-data/store': 5.1.2(@babel/core@7.23.5)(@ember-data/graph@5.1.2)(@ember-data/json-api@5.1.2)(@ember-data/legacy-compat@5.1.2)(@ember-data/model@5.1.2)(@ember-data/tracking@5.1.2)(@ember/string@3.1.1)(@glimmer/tracking@1.1.2)(ember-source@5.1.2) + '@ember-data/store': 5.1.2(@babel/core@7.23.3)(@ember-data/graph@5.1.2)(@ember-data/json-api@5.1.2)(@ember-data/legacy-compat@5.1.2)(@ember-data/model@5.1.2)(@ember-data/tracking@5.1.2)(@ember/string@3.1.1)(@glimmer/tracking@1.1.2)(ember-source@5.1.2) '@ember/string': 3.1.1 '@embroider/macros': 1.13.3(@glint/template@1.2.1) ember-cli-babel: 7.26.11 @@ -3521,7 +3549,7 @@ packages: - supports-color dev: true - /@ember-data/adapter@5.3.0(@babel/core@7.23.5)(@ember-data/store@5.3.0)(@ember/string@3.1.1)(ember-inflector@4.0.2): + /@ember-data/adapter@5.3.0(@babel/core@7.23.3)(@ember-data/store@5.3.0)(@ember/string@3.1.1)(ember-inflector@4.0.2): resolution: {integrity: sha512-OKbqtuOn6ZHFvU36P8876TsWtr6BKx1eOAzftnRtS8kD8r9rxdXapCA7M2V3l+Fma4d+MMwm8flLrqMddP5rmA==} engines: {node: 16.* || >= 18.*} peerDependencies: @@ -3530,10 +3558,10 @@ packages: ember-inflector: ^4.0.2 dependencies: '@ember-data/private-build-infra': 5.3.0 - '@ember-data/store': 5.3.0(@babel/core@7.23.5)(@ember-data/tracking@5.3.0)(@ember/string@3.1.1)(ember-source@3.28.12) + '@ember-data/store': 5.3.0(@babel/core@7.23.3)(@ember-data/tracking@5.3.0)(@ember/string@3.1.1)(ember-source@3.28.12) '@ember/string': 3.1.1 '@embroider/macros': 1.13.3(@glint/template@1.2.1) - ember-cli-babel: 8.2.0(@babel/core@7.23.5) + ember-cli-babel: 8.2.0(@babel/core@7.23.3) ember-cli-test-info: 1.0.0 ember-inflector: 4.0.2 transitivePeerDependencies: @@ -3562,11 +3590,11 @@ packages: - supports-color dev: true - /@ember-data/debug@3.28.13(@babel/core@7.23.5): + /@ember-data/debug@3.28.13(@babel/core@7.23.3): resolution: {integrity: sha512-ofny/Grpqx1lM6KWy5q75/b2/B+zQ4B4Ynk7SrQ//sFvpX3gjuP8iN07SKTHSN07vedlC+7QNhNJdCQwyqK1Fg==} engines: {node: 12.* || >= 14.*} dependencies: - '@ember-data/private-build-infra': 3.28.13(@babel/core@7.23.5) + '@ember-data/private-build-infra': 3.28.13(@babel/core@7.23.3) '@ember/edition-utils': 1.2.0 '@ember/string': 3.1.1 ember-cli-babel: 7.26.11 @@ -3577,14 +3605,14 @@ packages: - supports-color dev: true - /@ember-data/debug@4.4.3(@babel/core@7.23.5): + /@ember-data/debug@4.4.3(@babel/core@7.23.3): resolution: {integrity: sha512-ZCE+yD53pPUp4705y3YxrV4Q4+upLt0LY9o9tMWrdV5C7L74aiVyUJ5FqD6fmBsWYEa2TG8nde27gNIW3KlSJw==} engines: {node: 12.* || >= 14.*} dependencies: - '@ember-data/private-build-infra': 4.4.3(@babel/core@7.23.5) + '@ember-data/private-build-infra': 4.4.3(@babel/core@7.23.3) '@ember/edition-utils': 1.2.0 '@ember/string': 3.1.1 - ember-auto-import: 2.7.0 + ember-auto-import: 2.6.3 ember-cli-babel: 7.26.11 ember-cli-test-info: 1.0.0 ember-cli-typescript: 5.2.1 @@ -3595,14 +3623,14 @@ packages: - webpack dev: true - /@ember-data/debug@4.4.3(@babel/core@7.23.5)(webpack@5.89.0): + /@ember-data/debug@4.4.3(@babel/core@7.23.3)(webpack@5.89.0): resolution: {integrity: sha512-ZCE+yD53pPUp4705y3YxrV4Q4+upLt0LY9o9tMWrdV5C7L74aiVyUJ5FqD6fmBsWYEa2TG8nde27gNIW3KlSJw==} engines: {node: 12.* || >= 14.*} dependencies: - '@ember-data/private-build-infra': 4.4.3(@babel/core@7.23.5) + '@ember-data/private-build-infra': 4.4.3(@babel/core@7.23.3) '@ember/edition-utils': 1.2.0 '@ember/string': 3.1.1 - ember-auto-import: 2.7.0(@glint/template@1.2.1)(webpack@5.89.0) + ember-auto-import: 2.6.3(@glint/template@1.2.1)(webpack@5.89.0) ember-cli-babel: 7.26.11 ember-cli-test-info: 1.0.0 ember-cli-typescript: 5.2.1 @@ -3621,7 +3649,7 @@ packages: '@ember/string': ^3.1.1 dependencies: '@ember-data/private-build-infra': 5.1.2 - '@ember-data/store': 5.1.2(@babel/core@7.23.5)(@ember-data/graph@5.1.2)(@ember-data/json-api@5.1.2)(@ember-data/legacy-compat@5.1.2)(@ember-data/model@5.1.2)(@ember-data/tracking@5.1.2)(@ember/string@3.1.1)(@glimmer/tracking@1.1.2)(ember-source@5.1.2) + '@ember-data/store': 5.1.2(@babel/core@7.23.3)(@ember-data/graph@5.1.2)(@ember-data/json-api@5.1.2)(@ember-data/legacy-compat@5.1.2)(@ember-data/model@5.1.2)(@ember-data/tracking@5.1.2)(@ember/string@3.1.1)(@glimmer/tracking@1.1.2)(ember-source@5.1.2) '@ember/edition-utils': 1.2.0 '@ember/string': 3.1.1 '@embroider/macros': 1.13.3(@glint/template@1.2.1) @@ -3644,14 +3672,14 @@ packages: '@ember-data/store': 5.3.0 '@ember/string': ^3.1.1 dependencies: - '@babel/core': 7.23.5(supports-color@8.1.1) + '@babel/core': 7.23.3(supports-color@8.1.1) '@ember-data/private-build-infra': 5.3.0 - '@ember-data/store': 5.3.0(@babel/core@7.23.5)(@ember-data/tracking@5.3.0)(@ember/string@3.1.1)(ember-source@3.28.12) + '@ember-data/store': 5.3.0(@babel/core@7.23.3)(@ember-data/tracking@5.3.0)(@ember/string@3.1.1)(ember-source@3.28.12) '@ember/edition-utils': 1.2.0 '@ember/string': 3.1.1 '@embroider/macros': 1.13.3(@glint/template@1.2.1) - ember-auto-import: 2.7.0(@glint/template@1.2.1)(webpack@5.89.0) - ember-cli-babel: 8.2.0(@babel/core@7.23.5) + ember-auto-import: 2.6.3(@glint/template@1.2.1)(webpack@5.89.0) + ember-cli-babel: 8.2.0(@babel/core@7.23.3) webpack: 5.89.0 transitivePeerDependencies: - '@glint/template' @@ -3669,7 +3697,7 @@ packages: '@ember-data/store': 5.1.2 dependencies: '@ember-data/private-build-infra': 5.1.2 - '@ember-data/store': 5.1.2(@babel/core@7.23.5)(@ember-data/graph@5.1.2)(@ember-data/json-api@5.1.2)(@ember-data/legacy-compat@5.1.2)(@ember-data/model@5.1.2)(@ember-data/tracking@5.1.2)(@ember/string@3.1.1)(@glimmer/tracking@1.1.2)(ember-source@5.1.2) + '@ember-data/store': 5.1.2(@babel/core@7.23.3)(@ember-data/graph@5.1.2)(@ember-data/json-api@5.1.2)(@ember-data/legacy-compat@5.1.2)(@ember-data/model@5.1.2)(@ember-data/tracking@5.1.2)(@ember/string@3.1.1)(@glimmer/tracking@1.1.2)(ember-source@5.1.2) '@ember/edition-utils': 1.2.0 '@embroider/macros': 1.13.3(@glint/template@1.2.1) ember-cli-babel: 7.26.11 @@ -3678,17 +3706,17 @@ packages: - supports-color dev: true - /@ember-data/graph@5.3.0(@babel/core@7.23.5)(@ember-data/store@5.3.0): + /@ember-data/graph@5.3.0(@babel/core@7.23.3)(@ember-data/store@5.3.0): resolution: {integrity: sha512-BK1PGJVpW/ioP9IrvPECvbeiMf8cX0o4Ym3PWRlXIgWbfTnN57/XHwqL6qRo46Li2tMyzoranE6q7Jxhu6DCIg==} engines: {node: 16.* || >= 18.*} peerDependencies: '@ember-data/store': 5.3.0 dependencies: '@ember-data/private-build-infra': 5.3.0 - '@ember-data/store': 5.3.0(@babel/core@7.23.5)(@ember-data/tracking@5.3.0)(@ember/string@3.1.1)(ember-source@3.28.12) + '@ember-data/store': 5.3.0(@babel/core@7.23.3)(@ember-data/tracking@5.3.0)(@ember/string@3.1.1)(ember-source@3.28.12) '@ember/edition-utils': 1.2.0 '@embroider/macros': 1.13.3(@glint/template@1.2.1) - ember-cli-babel: 8.2.0(@babel/core@7.23.5) + ember-cli-babel: 8.2.0(@babel/core@7.23.3) transitivePeerDependencies: - '@babel/core' - '@glint/template' @@ -3704,7 +3732,7 @@ packages: dependencies: '@ember-data/graph': 5.1.2(@ember-data/store@5.1.2) '@ember-data/private-build-infra': 5.1.2 - '@ember-data/store': 5.1.2(@babel/core@7.23.5)(@ember-data/graph@5.1.2)(@ember-data/json-api@5.1.2)(@ember-data/legacy-compat@5.1.2)(@ember-data/model@5.1.2)(@ember-data/tracking@5.1.2)(@ember/string@3.1.1)(@glimmer/tracking@1.1.2)(ember-source@5.1.2) + '@ember-data/store': 5.1.2(@babel/core@7.23.3)(@ember-data/graph@5.1.2)(@ember-data/json-api@5.1.2)(@ember-data/legacy-compat@5.1.2)(@ember-data/model@5.1.2)(@ember-data/tracking@5.1.2)(@ember/string@3.1.1)(@glimmer/tracking@1.1.2)(ember-source@5.1.2) '@ember/edition-utils': 1.2.0 '@embroider/macros': 1.13.3(@glint/template@1.2.1) ember-cli-babel: 7.26.11 @@ -3713,7 +3741,7 @@ packages: - supports-color dev: true - /@ember-data/json-api@5.3.0(@babel/core@7.23.5)(@ember-data/graph@5.3.0)(@ember-data/request-utils@5.3.0)(@ember-data/store@5.3.0)(ember-inflector@4.0.2): + /@ember-data/json-api@5.3.0(@babel/core@7.23.3)(@ember-data/graph@5.3.0)(@ember-data/request-utils@5.3.0)(@ember-data/store@5.3.0)(ember-inflector@4.0.2): resolution: {integrity: sha512-irS0uuotz5VJbmaGEoK7Ad8JjlVzCI2C+lxz22UelR64Vbb1btnBHlw2Tr2n9s0kNxaR1iHUB94Fo2LBbr0Prg==} engines: {node: 16.* || >= 18.*} peerDependencies: @@ -3722,13 +3750,13 @@ packages: '@ember-data/store': 5.3.0 ember-inflector: ^4.0.2 dependencies: - '@ember-data/graph': 5.3.0(@babel/core@7.23.5)(@ember-data/store@5.3.0) + '@ember-data/graph': 5.3.0(@babel/core@7.23.3)(@ember-data/store@5.3.0) '@ember-data/private-build-infra': 5.3.0 - '@ember-data/request-utils': 5.3.0(@babel/core@7.23.5) - '@ember-data/store': 5.3.0(@babel/core@7.23.5)(@ember-data/tracking@5.3.0)(@ember/string@3.1.1)(ember-source@3.28.12) + '@ember-data/request-utils': 5.3.0(@babel/core@7.23.3) + '@ember-data/store': 5.3.0(@babel/core@7.23.3)(@ember-data/tracking@5.3.0)(@ember/string@3.1.1)(ember-source@3.28.12) '@ember/edition-utils': 1.2.0 '@embroider/macros': 1.13.3(@glint/template@1.2.1) - ember-cli-babel: 8.2.0(@babel/core@7.23.5) + ember-cli-babel: 8.2.0(@babel/core@7.23.3) ember-inflector: 4.0.2 transitivePeerDependencies: - '@babel/core' @@ -3758,7 +3786,7 @@ packages: - supports-color dev: true - /@ember-data/legacy-compat@5.3.0(@babel/core@7.23.5)(@ember-data/graph@5.3.0)(@ember-data/json-api@5.3.0)(@ember-data/request@5.3.0): + /@ember-data/legacy-compat@5.3.0(@babel/core@7.23.3)(@ember-data/graph@5.3.0)(@ember-data/json-api@5.3.0)(@ember-data/request@5.3.0): resolution: {integrity: sha512-KST6bMqvr6+DLTY5XRLOyCBgOGIj6QCpZQtyOWOhPwKnfeBXygppF9ys0ZWaNhlAaVZSrQ3uPubUit9Y72ZTYQ==} engines: {node: 16.* || >= 18} peerDependencies: @@ -3771,55 +3799,55 @@ packages: '@ember-data/json-api': optional: true dependencies: - '@ember-data/graph': 5.3.0(@babel/core@7.23.5)(@ember-data/store@5.3.0) - '@ember-data/json-api': 5.3.0(@babel/core@7.23.5)(@ember-data/graph@5.3.0)(@ember-data/request-utils@5.3.0)(@ember-data/store@5.3.0)(ember-inflector@4.0.2) + '@ember-data/graph': 5.3.0(@babel/core@7.23.3)(@ember-data/store@5.3.0) + '@ember-data/json-api': 5.3.0(@babel/core@7.23.3)(@ember-data/graph@5.3.0)(@ember-data/request-utils@5.3.0)(@ember-data/store@5.3.0)(ember-inflector@4.0.2) '@ember-data/private-build-infra': 5.3.0 - '@ember-data/request': 5.3.0(@babel/core@7.23.5) + '@ember-data/request': 5.3.0(@babel/core@7.23.3) '@embroider/macros': 1.13.3(@glint/template@1.2.1) - ember-cli-babel: 8.2.0(@babel/core@7.23.5) + ember-cli-babel: 8.2.0(@babel/core@7.23.3) transitivePeerDependencies: - '@babel/core' - '@glint/template' - supports-color dev: true - /@ember-data/model@3.28.13(@babel/core@7.23.5): + /@ember-data/model@3.28.13(@babel/core@7.23.3): resolution: {integrity: sha512-V5Hgzz5grNWTSrKGksY9xeOsTDLN/d3qsVMu26FWWHP5uqyWT0Cd4LSRpNxs14PsTFDcbrtGKaZv3YVksZfFEQ==} engines: {node: 12.* || >= 14.*} dependencies: '@ember-data/canary-features': 3.28.13 - '@ember-data/private-build-infra': 3.28.13(@babel/core@7.23.5) - '@ember-data/store': 3.28.13(@babel/core@7.23.5) + '@ember-data/private-build-infra': 3.28.13(@babel/core@7.23.3) + '@ember-data/store': 3.28.13(@babel/core@7.23.3) '@ember/edition-utils': 1.2.0 '@ember/string': 3.1.1 - ember-cached-decorator-polyfill: 0.1.4(@babel/core@7.23.5) + ember-cached-decorator-polyfill: 0.1.4(@babel/core@7.23.3) ember-cli-babel: 7.26.11 ember-cli-string-utils: 1.1.0 ember-cli-test-info: 1.0.0 ember-cli-typescript: 4.2.1 - ember-compatibility-helpers: 1.2.7(@babel/core@7.23.5) + ember-compatibility-helpers: 1.2.7(@babel/core@7.23.3) inflection: 1.13.4 transitivePeerDependencies: - '@babel/core' - supports-color dev: true - /@ember-data/model@4.4.3(@babel/core@7.23.5): + /@ember-data/model@4.4.3(@babel/core@7.23.3): resolution: {integrity: sha512-gHrSGJQUewZ0hqAnDzAehz7DXqBHHT9MKGl/f7/mYMP+QNVQXbPemurc9NAO7nunUJZhDvHYRkMuy0hrdtiT+g==} engines: {node: 12.* || >= 14.*} dependencies: '@ember-data/canary-features': 4.4.3 - '@ember-data/private-build-infra': 4.4.3(@babel/core@7.23.5) - '@ember-data/store': 4.4.3(@babel/core@7.23.5) + '@ember-data/private-build-infra': 4.4.3(@babel/core@7.23.3) + '@ember-data/store': 4.4.3(@babel/core@7.23.3) '@ember/edition-utils': 1.2.0 '@ember/string': 3.1.1 - ember-auto-import: 2.7.0 - ember-cached-decorator-polyfill: 0.1.4(@babel/core@7.23.5) + ember-auto-import: 2.6.3 + ember-cached-decorator-polyfill: 0.1.4(@babel/core@7.23.3) ember-cli-babel: 7.26.11 ember-cli-string-utils: 1.1.0 ember-cli-test-info: 1.0.0 ember-cli-typescript: 5.2.1 - ember-compatibility-helpers: 1.2.7(@babel/core@7.23.5) + ember-compatibility-helpers: 1.2.7(@babel/core@7.23.3) inflection: 1.13.4 transitivePeerDependencies: - '@babel/core' @@ -3828,22 +3856,22 @@ packages: - webpack dev: true - /@ember-data/model@4.4.3(@babel/core@7.23.5)(webpack@5.89.0): + /@ember-data/model@4.4.3(@babel/core@7.23.3)(webpack@5.89.0): resolution: {integrity: sha512-gHrSGJQUewZ0hqAnDzAehz7DXqBHHT9MKGl/f7/mYMP+QNVQXbPemurc9NAO7nunUJZhDvHYRkMuy0hrdtiT+g==} engines: {node: 12.* || >= 14.*} dependencies: '@ember-data/canary-features': 4.4.3 - '@ember-data/private-build-infra': 4.4.3(@babel/core@7.23.5) - '@ember-data/store': 4.4.3(@babel/core@7.23.5)(webpack@5.89.0) + '@ember-data/private-build-infra': 4.4.3(@babel/core@7.23.3) + '@ember-data/store': 4.4.3(@babel/core@7.23.3)(webpack@5.89.0) '@ember/edition-utils': 1.2.0 '@ember/string': 3.1.1 - ember-auto-import: 2.7.0(@glint/template@1.2.1)(webpack@5.89.0) - ember-cached-decorator-polyfill: 0.1.4(@babel/core@7.23.5) + ember-auto-import: 2.6.3(@glint/template@1.2.1)(webpack@5.89.0) + ember-cached-decorator-polyfill: 0.1.4(@babel/core@7.23.3) ember-cli-babel: 7.26.11 ember-cli-string-utils: 1.1.0 ember-cli-test-info: 1.0.0 ember-cli-typescript: 5.2.1 - ember-compatibility-helpers: 1.2.7(@babel/core@7.23.5) + ember-compatibility-helpers: 1.2.7(@babel/core@7.23.3) inflection: 1.13.4 transitivePeerDependencies: - '@babel/core' @@ -3852,7 +3880,7 @@ packages: - webpack dev: true - /@ember-data/model@5.1.2(@babel/core@7.23.5)(@ember-data/debug@5.1.2)(@ember-data/graph@5.1.2)(@ember-data/json-api@5.1.2)(@ember-data/legacy-compat@5.1.2)(@ember-data/store@5.1.2)(@ember-data/tracking@5.1.2)(@ember/string@3.1.1)(ember-inflector@4.0.2)(ember-source@5.1.2): + /@ember-data/model@5.1.2(@babel/core@7.23.3)(@ember-data/debug@5.1.2)(@ember-data/graph@5.1.2)(@ember-data/json-api@5.1.2)(@ember-data/legacy-compat@5.1.2)(@ember-data/store@5.1.2)(@ember-data/tracking@5.1.2)(@ember/string@3.1.1)(ember-inflector@4.0.2)(ember-source@5.1.2): resolution: {integrity: sha512-YKhmRUdNhiD0PAo7i0Zb9KNl13hgSjY2HQjsjFdSxF1Pc0UyhrQitzMG0SnH/W4MhacmjP5DsIUOQ2lyxeXdmQ==} engines: {node: 16.* || >= 18.*} peerDependencies: @@ -3877,12 +3905,12 @@ packages: '@ember-data/json-api': 5.1.2(@ember-data/graph@5.1.2)(@ember-data/store@5.1.2) '@ember-data/legacy-compat': 5.1.2(@ember-data/graph@5.1.2)(@ember-data/json-api@5.1.2) '@ember-data/private-build-infra': 5.1.2 - '@ember-data/store': 5.1.2(@babel/core@7.23.5)(@ember-data/graph@5.1.2)(@ember-data/json-api@5.1.2)(@ember-data/legacy-compat@5.1.2)(@ember-data/model@5.1.2)(@ember-data/tracking@5.1.2)(@ember/string@3.1.1)(@glimmer/tracking@1.1.2)(ember-source@5.1.2) + '@ember-data/store': 5.1.2(@babel/core@7.23.3)(@ember-data/graph@5.1.2)(@ember-data/json-api@5.1.2)(@ember-data/legacy-compat@5.1.2)(@ember-data/model@5.1.2)(@ember-data/tracking@5.1.2)(@ember/string@3.1.1)(@glimmer/tracking@1.1.2)(ember-source@5.1.2) '@ember-data/tracking': 5.1.2 '@ember/edition-utils': 1.2.0 '@ember/string': 3.1.1 '@embroider/macros': 1.13.3(@glint/template@1.2.1) - ember-cached-decorator-polyfill: 1.0.2(@babel/core@7.23.5)(ember-source@5.1.2) + ember-cached-decorator-polyfill: 1.0.2(@babel/core@7.23.3)(ember-source@5.1.2) ember-cli-babel: 7.26.11 ember-cli-string-utils: 1.1.0 ember-cli-test-info: 1.0.0 @@ -3895,7 +3923,7 @@ packages: - supports-color dev: true - /@ember-data/model@5.3.0(@babel/core@7.23.5)(@ember-data/debug@5.3.0)(@ember-data/graph@5.3.0)(@ember-data/json-api@5.3.0)(@ember-data/legacy-compat@5.3.0)(@ember-data/store@5.3.0)(@ember-data/tracking@5.3.0)(@ember/string@3.1.1)(ember-inflector@4.0.2)(ember-source@3.28.12): + /@ember-data/model@5.3.0(@babel/core@7.23.3)(@ember-data/debug@5.3.0)(@ember-data/graph@5.3.0)(@ember-data/json-api@5.3.0)(@ember-data/legacy-compat@5.3.0)(@ember-data/store@5.3.0)(@ember-data/tracking@5.3.0)(@ember/string@3.1.1)(ember-inflector@4.0.2)(ember-source@3.28.12): resolution: {integrity: sha512-9DckZXu3DZk1fYd1js6kS2SCxuuaQBDE1N3NMc+Zz55n8qu1LKHLxr+dGwVqV+Wtl7LGcAU1ocnm7gKNhC1vuw==} engines: {node: 16.* || >= 18.*} peerDependencies: @@ -3916,17 +3944,17 @@ packages: optional: true dependencies: '@ember-data/debug': 5.3.0(@ember-data/store@5.3.0)(@ember/string@3.1.1) - '@ember-data/graph': 5.3.0(@babel/core@7.23.5)(@ember-data/store@5.3.0) - '@ember-data/json-api': 5.3.0(@babel/core@7.23.5)(@ember-data/graph@5.3.0)(@ember-data/request-utils@5.3.0)(@ember-data/store@5.3.0)(ember-inflector@4.0.2) - '@ember-data/legacy-compat': 5.3.0(@babel/core@7.23.5)(@ember-data/graph@5.3.0)(@ember-data/json-api@5.3.0)(@ember-data/request@5.3.0) + '@ember-data/graph': 5.3.0(@babel/core@7.23.3)(@ember-data/store@5.3.0) + '@ember-data/json-api': 5.3.0(@babel/core@7.23.3)(@ember-data/graph@5.3.0)(@ember-data/request-utils@5.3.0)(@ember-data/store@5.3.0)(ember-inflector@4.0.2) + '@ember-data/legacy-compat': 5.3.0(@babel/core@7.23.3)(@ember-data/graph@5.3.0)(@ember-data/json-api@5.3.0)(@ember-data/request@5.3.0) '@ember-data/private-build-infra': 5.3.0 - '@ember-data/store': 5.3.0(@babel/core@7.23.5)(@ember-data/tracking@5.3.0)(@ember/string@3.1.1)(ember-source@3.28.12) - '@ember-data/tracking': 5.3.0(@babel/core@7.23.5) + '@ember-data/store': 5.3.0(@babel/core@7.23.3)(@ember-data/tracking@5.3.0)(@ember/string@3.1.1)(ember-source@3.28.12) + '@ember-data/tracking': 5.3.0(@babel/core@7.23.3) '@ember/edition-utils': 1.2.0 '@ember/string': 3.1.1 '@embroider/macros': 1.13.3(@glint/template@1.2.1) - ember-cached-decorator-polyfill: 1.0.2(@babel/core@7.23.5)(ember-source@3.28.12) - ember-cli-babel: 8.2.0(@babel/core@7.23.5) + ember-cached-decorator-polyfill: 1.0.2(@babel/core@7.23.3)(ember-source@3.28.12) + ember-cli-babel: 8.2.0(@babel/core@7.23.3) ember-cli-string-utils: 1.1.0 ember-cli-test-info: 1.0.0 ember-inflector: 4.0.2 @@ -3938,14 +3966,14 @@ packages: - supports-color dev: true - /@ember-data/private-build-infra@3.28.13(@babel/core@7.23.5): + /@ember-data/private-build-infra@3.28.13(@babel/core@7.23.3): resolution: {integrity: sha512-8gT3/gnmbNgFIMVdHBpl3xFGJefJE26VUIidFHTF1/N1aumVUlEhnXH0BSPxvxTnFXz/klGSTOMs+sDsx3jw6A==} engines: {node: 12.* || >= 14.*} dependencies: - '@babel/plugin-transform-block-scoping': 7.23.4(@babel/core@7.23.5) + '@babel/plugin-transform-block-scoping': 7.23.3(@babel/core@7.23.3) '@ember-data/canary-features': 3.28.13 '@ember/edition-utils': 1.2.0 - babel-plugin-debug-macros: 0.3.4(@babel/core@7.23.5) + babel-plugin-debug-macros: 0.3.4(@babel/core@7.23.3) babel-plugin-filter-imports: 4.0.0 babel6-plugin-strip-class-callcheck: 6.0.0 broccoli-debug: 0.6.5 @@ -3973,14 +4001,14 @@ packages: - supports-color dev: true - /@ember-data/private-build-infra@4.4.3(@babel/core@7.23.5): + /@ember-data/private-build-infra@4.4.3(@babel/core@7.23.3): resolution: {integrity: sha512-2piJv/agaq3pDoSfNcJS96SSVvlCnz3ZQgyhOw4b0zAYaSchnk+775W6jUoxNl8NGjXEnBGulXce/b+NBX7z+Q==} engines: {node: 12.* || >= 14.*} dependencies: - '@babel/plugin-transform-block-scoping': 7.23.4(@babel/core@7.23.5) + '@babel/plugin-transform-block-scoping': 7.23.3(@babel/core@7.23.3) '@ember-data/canary-features': 4.4.3 '@ember/edition-utils': 1.2.0 - babel-plugin-debug-macros: 0.3.4(@babel/core@7.23.5) + babel-plugin-debug-macros: 0.3.4(@babel/core@7.23.3) babel-plugin-filter-imports: 4.0.0 babel6-plugin-strip-class-callcheck: 6.0.0 broccoli-debug: 0.6.5 @@ -4012,13 +4040,13 @@ packages: resolution: {integrity: sha512-cKFiJuiH7ldcyOey8IfVHEJ4ug/UYEJH8ASSuRMdr0rzDiJKQrQx1YG9Wmy6mSDQnCrdcPpHPGiTNLhI/sJQKw==} engines: {node: 16.* || >= 18.*} dependencies: - '@babel/core': 7.23.5(supports-color@8.1.1) - '@babel/plugin-transform-block-scoping': 7.23.4(@babel/core@7.23.5) - '@babel/runtime': 7.23.5 + '@babel/core': 7.23.3(supports-color@8.1.1) + '@babel/plugin-transform-block-scoping': 7.23.3(@babel/core@7.23.3) + '@babel/runtime': 7.23.2 '@ember/edition-utils': 1.2.0 '@embroider/macros': 1.13.3(@glint/template@1.2.1) babel-import-util: 1.4.1 - babel-plugin-debug-macros: 0.3.4(@babel/core@7.23.5) + babel-plugin-debug-macros: 0.3.4(@babel/core@7.23.3) babel-plugin-filter-imports: 4.0.0 babel6-plugin-strip-class-callcheck: 6.0.0 broccoli-debug: 0.6.5 @@ -4045,13 +4073,13 @@ packages: resolution: {integrity: sha512-n7VCPgvjS0Yza5USBucdYjTvlk5GC6fIdWiQUGdK9QxHnyekFg2Znu932ulKp/Iokoc8iBEaVX3HoiCwM/Hw1w==} engines: {node: 16.* || >= 18.*} dependencies: - '@babel/core': 7.23.5(supports-color@8.1.1) - '@babel/plugin-transform-block-scoping': 7.23.4(@babel/core@7.23.5) - '@babel/runtime': 7.23.5 + '@babel/core': 7.23.3(supports-color@8.1.1) + '@babel/plugin-transform-block-scoping': 7.23.3(@babel/core@7.23.3) + '@babel/runtime': 7.23.2 '@ember/edition-utils': 1.2.0 '@embroider/macros': 1.13.3(@glint/template@1.2.1) babel-import-util: 1.4.1 - babel-plugin-debug-macros: 0.3.4(@babel/core@7.23.5) + babel-plugin-debug-macros: 0.3.4(@babel/core@7.23.3) babel-plugin-filter-imports: 4.0.0 babel6-plugin-strip-class-callcheck: 6.0.0 broccoli-debug: 0.6.5 @@ -4059,7 +4087,7 @@ packages: broccoli-merge-trees: 4.2.0 calculate-cache-key-for-tree: 2.0.0 chalk: 4.1.2 - ember-cli-babel: 8.2.0(@babel/core@7.23.5) + ember-cli-babel: 8.2.0(@babel/core@7.23.3) ember-cli-path-utils: 1.0.0 ember-cli-string-utils: 1.1.0 ember-cli-version-checker: 5.1.2 @@ -4072,13 +4100,13 @@ packages: - supports-color dev: true - /@ember-data/record-data@3.28.13(@babel/core@7.23.5): + /@ember-data/record-data@3.28.13(@babel/core@7.23.3): resolution: {integrity: sha512-0qYOxQr901eZ0JoYVt/IiszZYuNefqO6yiwKw0VH2dmWhVniQSp+Da9YnoKN9U2KgR4NdxKiUs2j9ZLNZ+bH7g==} engines: {node: 12.* || >= 14.*} dependencies: '@ember-data/canary-features': 3.28.13 - '@ember-data/private-build-infra': 3.28.13(@babel/core@7.23.5) - '@ember-data/store': 3.28.13(@babel/core@7.23.5) + '@ember-data/private-build-infra': 3.28.13(@babel/core@7.23.3) + '@ember-data/store': 3.28.13(@babel/core@7.23.3) '@ember/edition-utils': 1.2.0 ember-cli-babel: 7.26.11 ember-cli-test-info: 1.0.0 @@ -4088,15 +4116,15 @@ packages: - supports-color dev: true - /@ember-data/record-data@4.4.3(@babel/core@7.23.5): + /@ember-data/record-data@4.4.3(@babel/core@7.23.3): resolution: {integrity: sha512-hHGSD23qHR+Zd59/P2AqmcFBOAgb22Imcm7aJbXUfQVSpXx2AlcdcrWL8bA6hMaO9yX/KQRTmBazmS0vqTxFug==} engines: {node: 12.* || >= 14.*} dependencies: '@ember-data/canary-features': 4.4.3 - '@ember-data/private-build-infra': 4.4.3(@babel/core@7.23.5) - '@ember-data/store': 4.4.3(@babel/core@7.23.5) + '@ember-data/private-build-infra': 4.4.3(@babel/core@7.23.3) + '@ember-data/store': 4.4.3(@babel/core@7.23.3) '@ember/edition-utils': 1.2.0 - ember-auto-import: 2.7.0 + ember-auto-import: 2.6.3 ember-cli-babel: 7.26.11 ember-cli-test-info: 1.0.0 ember-cli-typescript: 5.2.1 @@ -4107,15 +4135,15 @@ packages: - webpack dev: true - /@ember-data/record-data@4.4.3(@babel/core@7.23.5)(webpack@5.89.0): + /@ember-data/record-data@4.4.3(@babel/core@7.23.3)(webpack@5.89.0): resolution: {integrity: sha512-hHGSD23qHR+Zd59/P2AqmcFBOAgb22Imcm7aJbXUfQVSpXx2AlcdcrWL8bA6hMaO9yX/KQRTmBazmS0vqTxFug==} engines: {node: 12.* || >= 14.*} dependencies: '@ember-data/canary-features': 4.4.3 - '@ember-data/private-build-infra': 4.4.3(@babel/core@7.23.5) - '@ember-data/store': 4.4.3(@babel/core@7.23.5)(webpack@5.89.0) + '@ember-data/private-build-infra': 4.4.3(@babel/core@7.23.3) + '@ember-data/store': 4.4.3(@babel/core@7.23.3)(webpack@5.89.0) '@ember/edition-utils': 1.2.0 - ember-auto-import: 2.7.0(@glint/template@1.2.1)(webpack@5.89.0) + ember-auto-import: 2.6.3(@glint/template@1.2.1)(webpack@5.89.0) ember-cli-babel: 7.26.11 ember-cli-test-info: 1.0.0 ember-cli-typescript: 5.2.1 @@ -4126,11 +4154,11 @@ packages: - webpack dev: true - /@ember-data/request-utils@5.3.0(@babel/core@7.23.5): + /@ember-data/request-utils@5.3.0(@babel/core@7.23.3): resolution: {integrity: sha512-f/DGyW7tKbx1NCxz/arDBXTwEiV0+a0m8AStTMOlPkGLvnDhuHAH3jVlhuNweFxI6CmfXaL+UAY7g+uWAwCn0Q==} engines: {node: 16.* || >= 18} dependencies: - ember-cli-babel: 8.2.0(@babel/core@7.23.5) + ember-cli-babel: 8.2.0(@babel/core@7.23.3) transitivePeerDependencies: - '@babel/core' - supports-color @@ -4149,14 +4177,14 @@ packages: - supports-color dev: true - /@ember-data/request@5.3.0(@babel/core@7.23.5): + /@ember-data/request@5.3.0(@babel/core@7.23.3): resolution: {integrity: sha512-dsgwnhXYMlgO99DPur2AYQpFigU8DSk628GZ9qDhQQ9IRfGkT3yjFGg9M/Bp0G+U3dJbs56Tiy+VhSl36k0Wsw==} engines: {node: 16.* || >= 18} dependencies: '@ember-data/private-build-infra': 5.3.0 '@ember/test-waiters': 3.1.0 '@embroider/macros': 1.13.3(@glint/template@1.2.1) - ember-cli-babel: 8.2.0(@babel/core@7.23.5) + ember-cli-babel: 8.2.0(@babel/core@7.23.3) transitivePeerDependencies: - '@babel/core' - '@glint/template' @@ -4166,12 +4194,12 @@ packages: /@ember-data/rfc395-data@0.0.4: resolution: {integrity: sha512-tGRdvgC9/QMQSuSuJV45xoyhI0Pzjm7A9o/MVVA3HakXIImJbbzx/k/6dO9CUEQXIyS2y0fW6C1XaYOG7rY0FQ==} - /@ember-data/serializer@3.28.13(@babel/core@7.23.5): + /@ember-data/serializer@3.28.13(@babel/core@7.23.3): resolution: {integrity: sha512-BlYXi8ObH0B5G7QeWtkf9u8PrhdlfAxOAsOuOPZPCTzWsQlmyzV6M9KvBmIAvJtM2IQ3a5BX2o71eP6/7MJDUg==} engines: {node: 12.* || >= 14.*} dependencies: - '@ember-data/private-build-infra': 3.28.13(@babel/core@7.23.5) - '@ember-data/store': 3.28.13(@babel/core@7.23.5) + '@ember-data/private-build-infra': 3.28.13(@babel/core@7.23.3) + '@ember-data/store': 3.28.13(@babel/core@7.23.3) ember-cli-babel: 7.26.11 ember-cli-test-info: 1.0.0 ember-cli-typescript: 4.2.1 @@ -4180,13 +4208,13 @@ packages: - supports-color dev: true - /@ember-data/serializer@4.4.3(@babel/core@7.23.5): + /@ember-data/serializer@4.4.3(@babel/core@7.23.3): resolution: {integrity: sha512-rHL3yraqUBHLjw1y5s0sGCD+xjwJaEWsx/wcVxG5FBIBcMtUQTyp/QLoiqqVfI0/1MOnvpYDjy1Fyioy0gGAZA==} engines: {node: 12.* || >= 14.*} dependencies: - '@ember-data/private-build-infra': 4.4.3(@babel/core@7.23.5) - '@ember-data/store': 4.4.3(@babel/core@7.23.5) - ember-auto-import: 2.7.0 + '@ember-data/private-build-infra': 4.4.3(@babel/core@7.23.3) + '@ember-data/store': 4.4.3(@babel/core@7.23.3) + ember-auto-import: 2.6.3 ember-cli-babel: 7.26.11 ember-cli-test-info: 1.0.0 ember-cli-typescript: 5.2.1 @@ -4197,13 +4225,13 @@ packages: - webpack dev: true - /@ember-data/serializer@4.4.3(@babel/core@7.23.5)(webpack@5.89.0): + /@ember-data/serializer@4.4.3(@babel/core@7.23.3)(webpack@5.89.0): resolution: {integrity: sha512-rHL3yraqUBHLjw1y5s0sGCD+xjwJaEWsx/wcVxG5FBIBcMtUQTyp/QLoiqqVfI0/1MOnvpYDjy1Fyioy0gGAZA==} engines: {node: 12.* || >= 14.*} dependencies: - '@ember-data/private-build-infra': 4.4.3(@babel/core@7.23.5) - '@ember-data/store': 4.4.3(@babel/core@7.23.5)(webpack@5.89.0) - ember-auto-import: 2.7.0(@glint/template@1.2.1)(webpack@5.89.0) + '@ember-data/private-build-infra': 4.4.3(@babel/core@7.23.3) + '@ember-data/store': 4.4.3(@babel/core@7.23.3)(webpack@5.89.0) + ember-auto-import: 2.6.3(@glint/template@1.2.1)(webpack@5.89.0) ember-cli-babel: 7.26.11 ember-cli-test-info: 1.0.0 ember-cli-typescript: 5.2.1 @@ -4223,7 +4251,7 @@ packages: ember-inflector: ^4.0.2 dependencies: '@ember-data/private-build-infra': 5.1.2 - '@ember-data/store': 5.1.2(@babel/core@7.23.5)(@ember-data/graph@5.1.2)(@ember-data/json-api@5.1.2)(@ember-data/legacy-compat@5.1.2)(@ember-data/model@5.1.2)(@ember-data/tracking@5.1.2)(@ember/string@3.1.1)(@glimmer/tracking@1.1.2)(ember-source@5.1.2) + '@ember-data/store': 5.1.2(@babel/core@7.23.3)(@ember-data/graph@5.1.2)(@ember-data/json-api@5.1.2)(@ember-data/legacy-compat@5.1.2)(@ember-data/model@5.1.2)(@ember-data/tracking@5.1.2)(@ember/string@3.1.1)(@glimmer/tracking@1.1.2)(ember-source@5.1.2) '@ember/string': 3.1.1 '@embroider/macros': 1.13.3(@glint/template@1.2.1) ember-cli-babel: 7.26.11 @@ -4234,7 +4262,7 @@ packages: - supports-color dev: true - /@ember-data/serializer@5.3.0(@babel/core@7.23.5)(@ember/string@3.1.1)(ember-inflector@4.0.2): + /@ember-data/serializer@5.3.0(@babel/core@7.23.3)(@ember/string@3.1.1)(ember-inflector@4.0.2): resolution: {integrity: sha512-apsfN8qHOVQxIxmPQh6SSxYtzNcb3/jvdjJDrU6L8eklyQXfxcbaBD6r2uUAA2jaI94oNXoSHM/75TZnJjLIZA==} engines: {node: 16.* || >= 18.*} peerDependencies: @@ -4244,7 +4272,7 @@ packages: '@ember-data/private-build-infra': 5.3.0 '@ember/string': 3.1.1 '@embroider/macros': 1.13.3(@glint/template@1.2.1) - ember-cli-babel: 8.2.0(@babel/core@7.23.5) + ember-cli-babel: 8.2.0(@babel/core@7.23.3) ember-cli-test-info: 1.0.0 ember-inflector: 4.0.2 transitivePeerDependencies: @@ -4253,15 +4281,15 @@ packages: - supports-color dev: true - /@ember-data/store@3.28.13(@babel/core@7.23.5): + /@ember-data/store@3.28.13(@babel/core@7.23.3): resolution: {integrity: sha512-y1ddWLfR20l3NN9fNfIAFWCmREnC6hjKCZERDgkvBgZOCAKcs+6bVJGyMmKBcsp4W7kanqKn71tX7Y63jp+jXQ==} engines: {node: 12.* || >= 14.*} dependencies: '@ember-data/canary-features': 3.28.13 - '@ember-data/private-build-infra': 3.28.13(@babel/core@7.23.5) + '@ember-data/private-build-infra': 3.28.13(@babel/core@7.23.3) '@ember/string': 3.1.1 '@glimmer/tracking': 1.1.2 - ember-cached-decorator-polyfill: 0.1.4(@babel/core@7.23.5) + ember-cached-decorator-polyfill: 0.1.4(@babel/core@7.23.3) ember-cli-babel: 7.26.11 ember-cli-path-utils: 1.0.0 ember-cli-typescript: 4.2.1 @@ -4270,16 +4298,16 @@ packages: - supports-color dev: true - /@ember-data/store@4.4.3(@babel/core@7.23.5): + /@ember-data/store@4.4.3(@babel/core@7.23.3): resolution: {integrity: sha512-1kvCV/qO7ULD4fJNfr1NTwQwcPAU/fwxIWj46p2JnpRKg1jwzBNz9E6hQNdQ0kLD2pOUiaHB8J/2J6mCqVljKA==} engines: {node: 12.* || >= 14.*} dependencies: '@ember-data/canary-features': 4.4.3 - '@ember-data/private-build-infra': 4.4.3(@babel/core@7.23.5) + '@ember-data/private-build-infra': 4.4.3(@babel/core@7.23.3) '@ember/string': 3.1.1 '@glimmer/tracking': 1.1.2 - ember-auto-import: 2.7.0 - ember-cached-decorator-polyfill: 0.1.4(@babel/core@7.23.5) + ember-auto-import: 2.6.3 + ember-cached-decorator-polyfill: 0.1.4(@babel/core@7.23.3) ember-cli-babel: 7.26.11 ember-cli-path-utils: 1.0.0 ember-cli-typescript: 5.2.1 @@ -4290,16 +4318,16 @@ packages: - webpack dev: true - /@ember-data/store@4.4.3(@babel/core@7.23.5)(webpack@5.89.0): + /@ember-data/store@4.4.3(@babel/core@7.23.3)(webpack@5.89.0): resolution: {integrity: sha512-1kvCV/qO7ULD4fJNfr1NTwQwcPAU/fwxIWj46p2JnpRKg1jwzBNz9E6hQNdQ0kLD2pOUiaHB8J/2J6mCqVljKA==} engines: {node: 12.* || >= 14.*} dependencies: '@ember-data/canary-features': 4.4.3 - '@ember-data/private-build-infra': 4.4.3(@babel/core@7.23.5) + '@ember-data/private-build-infra': 4.4.3(@babel/core@7.23.3) '@ember/string': 3.1.1 '@glimmer/tracking': 1.1.2 - ember-auto-import: 2.7.0(@glint/template@1.2.1)(webpack@5.89.0) - ember-cached-decorator-polyfill: 0.1.4(@babel/core@7.23.5) + ember-auto-import: 2.6.3(@glint/template@1.2.1)(webpack@5.89.0) + ember-cached-decorator-polyfill: 0.1.4(@babel/core@7.23.3) ember-cli-babel: 7.26.11 ember-cli-path-utils: 1.0.0 ember-cli-typescript: 5.2.1 @@ -4310,7 +4338,7 @@ packages: - webpack dev: true - /@ember-data/store@5.1.2(@babel/core@7.23.5)(@ember-data/graph@5.1.2)(@ember-data/json-api@5.1.2)(@ember-data/legacy-compat@5.1.2)(@ember-data/model@5.1.2)(@ember-data/tracking@5.1.2)(@ember/string@3.1.1)(@glimmer/tracking@1.1.2)(ember-source@5.1.2): + /@ember-data/store@5.1.2(@babel/core@7.23.3)(@ember-data/graph@5.1.2)(@ember-data/json-api@5.1.2)(@ember-data/legacy-compat@5.1.2)(@ember-data/model@5.1.2)(@ember-data/tracking@5.1.2)(@ember/string@3.1.1)(@glimmer/tracking@1.1.2)(ember-source@5.1.2): resolution: {integrity: sha512-A/e0hmuGJ2iZpKN+HnGj1+VJ1j2Gq/mFgrBzYOs2ep3ObfhtlTZLlxbWMUkRlV9xpB0mB5J5km/XHjrAcgYMYw==} engines: {node: 16.* || >= 18.*} peerDependencies: @@ -4334,13 +4362,13 @@ packages: '@ember-data/graph': 5.1.2(@ember-data/store@5.1.2) '@ember-data/json-api': 5.1.2(@ember-data/graph@5.1.2)(@ember-data/store@5.1.2) '@ember-data/legacy-compat': 5.1.2(@ember-data/graph@5.1.2)(@ember-data/json-api@5.1.2) - '@ember-data/model': 5.1.2(@babel/core@7.23.5)(@ember-data/debug@5.1.2)(@ember-data/graph@5.1.2)(@ember-data/json-api@5.1.2)(@ember-data/legacy-compat@5.1.2)(@ember-data/store@5.1.2)(@ember-data/tracking@5.1.2)(@ember/string@3.1.1)(ember-inflector@4.0.2)(ember-source@5.1.2) + '@ember-data/model': 5.1.2(@babel/core@7.23.3)(@ember-data/debug@5.1.2)(@ember-data/graph@5.1.2)(@ember-data/json-api@5.1.2)(@ember-data/legacy-compat@5.1.2)(@ember-data/store@5.1.2)(@ember-data/tracking@5.1.2)(@ember/string@3.1.1)(ember-inflector@4.0.2)(ember-source@5.1.2) '@ember-data/private-build-infra': 5.1.2 '@ember-data/tracking': 5.1.2 '@ember/string': 3.1.1 '@embroider/macros': 1.13.3(@glint/template@1.2.1) '@glimmer/tracking': 1.1.2 - ember-cached-decorator-polyfill: 1.0.2(@babel/core@7.23.5)(ember-source@5.1.2) + ember-cached-decorator-polyfill: 1.0.2(@babel/core@7.23.3)(ember-source@5.1.2) ember-cli-babel: 7.26.11 transitivePeerDependencies: - '@babel/core' @@ -4349,7 +4377,7 @@ packages: - supports-color dev: true - /@ember-data/store@5.3.0(@babel/core@7.23.5)(@ember-data/tracking@5.3.0)(@ember/string@3.1.1)(ember-source@3.28.12): + /@ember-data/store@5.3.0(@babel/core@7.23.3)(@ember-data/tracking@5.3.0)(@ember/string@3.1.1)(ember-source@3.28.12): resolution: {integrity: sha512-okM7AJmgM8Wz+FNgsDXVUVw32UZVLKko2K/2GfBmOjOcKVnfwLKI08HmQNLnT5IXiOsJW5mA4mRESuVgN8L4lQ==} engines: {node: 16.* || >= 18.*} peerDependencies: @@ -4358,11 +4386,11 @@ packages: '@glimmer/tracking': ^1.1.2 dependencies: '@ember-data/private-build-infra': 5.3.0 - '@ember-data/tracking': 5.3.0(@babel/core@7.23.5) + '@ember-data/tracking': 5.3.0(@babel/core@7.23.3) '@ember/string': 3.1.1 '@embroider/macros': 1.13.3(@glint/template@1.2.1) - ember-cached-decorator-polyfill: 1.0.2(@babel/core@7.23.5)(ember-source@3.28.12) - ember-cli-babel: 8.2.0(@babel/core@7.23.5) + ember-cached-decorator-polyfill: 1.0.2(@babel/core@7.23.3)(ember-source@3.28.12) + ember-cli-babel: 8.2.0(@babel/core@7.23.3) transitivePeerDependencies: - '@babel/core' - '@glint/template' @@ -4379,13 +4407,13 @@ packages: - supports-color dev: true - /@ember-data/tracking@5.3.0(@babel/core@7.23.5): + /@ember-data/tracking@5.3.0(@babel/core@7.23.3): resolution: {integrity: sha512-CEaV9zbKY40I0c7a7AXIhV4P+veA70plWCGU2fA/AMk69BdT64vKx9r+HPvAVsaz7ER4XCnUqyPAZnCWypa9WA==} engines: {node: 16.* || >= 18} dependencies: '@ember-data/private-build-infra': 5.3.0 '@embroider/macros': 1.13.3(@glint/template@1.2.1) - ember-cli-babel: 8.2.0(@babel/core@7.23.5) + ember-cli-babel: 8.2.0(@babel/core@7.23.3) transitivePeerDependencies: - '@babel/core' - '@glint/template' @@ -4425,7 +4453,7 @@ packages: resolution: {integrity: sha512-US8VKnetBOl8KfKz+rXGsosz6rIETNwSz2F2frM8hIoJfF/d6ME1Iz1K7tPYZEE6SoKqZFlBs5XZPSmzRnabjA==} engines: {node: 10.* || 12.* || >= 14} dependencies: - '@types/eslint': 8.44.8 + '@types/eslint': 8.44.7 fs-extra: 9.1.0 slash: 3.0.0 tslib: 2.6.2 @@ -4457,7 +4485,7 @@ packages: ember-cli-babel: 7.26.11 ember-cli-htmlbars: 5.7.2 ember-cli-typescript: 4.2.1 - ember-source: 3.28.12(@babel/core@7.23.5) + ember-source: 3.28.12(@babel/core@7.23.3) transitivePeerDependencies: - '@glint/template' - supports-color @@ -4493,7 +4521,7 @@ packages: - supports-color dev: true - /@ember/render-modifiers@2.1.0(@babel/core@7.23.5)(ember-source@3.28.12): + /@ember/render-modifiers@2.1.0(@babel/core@7.23.3)(ember-source@3.28.12): resolution: {integrity: sha512-LruhfoDv2itpk0fA0IC76Sxjcnq/7BC6txpQo40hOko8Dn6OxwQfxkPIbZGV0Cz7df+iX+VJrcYzNIvlc3w2EQ==} engines: {node: 12.* || 14.* || >= 16} peerDependencies: @@ -4505,8 +4533,8 @@ packages: dependencies: '@embroider/macros': 1.13.3(@glint/template@1.2.1) ember-cli-babel: 7.26.11 - ember-modifier-manager-polyfill: 1.2.0(@babel/core@7.23.5) - ember-source: 3.28.12(@babel/core@7.23.5) + ember-modifier-manager-polyfill: 1.2.0(@babel/core@7.23.3) + ember-source: 3.28.12(@babel/core@7.23.3) transitivePeerDependencies: - '@babel/core' - supports-color @@ -4520,7 +4548,7 @@ packages: transitivePeerDependencies: - supports-color - /@ember/test-helpers@2.9.4(@babel/core@7.23.5)(@glint/environment-ember-loose@1.2.1)(@glint/template@1.2.1)(ember-source@4.6.0): + /@ember/test-helpers@2.9.4(@babel/core@7.23.3)(@glint/environment-ember-loose@1.2.1)(@glint/template@1.2.1)(ember-source@4.6.0): resolution: {integrity: sha512-z+Qs1NYWyIVDmrY6WdmOS5mdG1lJ5CFfzh6dRhLfs9lq45deDaDrVNcaCYhnNeJZTvUBK2XR2SvPcZm0RloXdA==} engines: {node: 10.* || 12.* || 14.* || 15.* || >= 16.*} peerDependencies: @@ -4533,8 +4561,8 @@ packages: broccoli-funnel: 3.0.8 ember-cli-babel: 7.26.11 ember-cli-htmlbars: 6.3.0 - ember-destroyable-polyfill: 2.0.3(@babel/core@7.23.5) - ember-source: 4.6.0(@babel/core@7.23.5)(@glint/template@1.2.1)(webpack@5.89.0) + ember-destroyable-polyfill: 2.0.3(@babel/core@7.23.3) + ember-source: 4.6.0(@babel/core@7.23.3)(@glint/template@1.2.1)(webpack@5.89.0) transitivePeerDependencies: - '@babel/core' - '@glint/environment-ember-loose' @@ -4555,8 +4583,8 @@ packages: broccoli-funnel: 3.0.8 ember-cli-babel: 7.26.11 ember-cli-htmlbars: 6.3.0 - ember-destroyable-polyfill: 2.0.3(@babel/core@7.23.5) - ember-source: 3.26.2(@babel/core@7.23.5) + ember-destroyable-polyfill: 2.0.3(@babel/core@7.23.3) + ember-source: 3.26.2(@babel/core@7.23.3) transitivePeerDependencies: - '@babel/core' - '@glint/environment-ember-loose' @@ -4564,8 +4592,8 @@ packages: - supports-color dev: true - /@ember/test-helpers@3.2.1(@glint/template@1.2.1)(ember-source@5.3.0)(webpack@5.89.0): - resolution: {integrity: sha512-DvJSihJPV4xshwEgBrFN4aUVc9m/Y/hVzwcslfSVq/h3dMWCyAj4+agkkdJPQrwBaE+H4IyGNzr555S7bTErEA==} + /@ember/test-helpers@3.2.0(@glint/template@1.2.1)(ember-source@5.3.0)(webpack@5.89.0): + resolution: {integrity: sha512-3yWpPsK5O77tUdCwW3HayrAcdlRitIRYMvLIG69Pkal1JMIGdNYVTvJ2R1lenhQh2syd/WFmGM07vQuDAtotQw==} engines: {node: 16.* || >= 18} peerDependencies: ember-source: ^4.0.0 || ^5.0.0 @@ -4575,18 +4603,18 @@ packages: '@simple-dom/interface': 1.4.0 broccoli-debug: 0.6.5 broccoli-funnel: 3.0.8 - ember-auto-import: 2.7.0(@glint/template@1.2.1)(webpack@5.89.0) + ember-auto-import: 2.6.3(@glint/template@1.2.1)(webpack@5.89.0) ember-cli-babel: 7.26.11 ember-cli-htmlbars: 6.3.0 - ember-source: 5.3.0(@babel/core@7.23.5)(@glimmer/component@1.1.2)(@glint/template@1.2.1)(webpack@5.89.0) + ember-source: 5.3.0(@babel/core@7.23.3)(@glimmer/component@1.1.2)(@glint/template@1.2.1)(webpack@5.89.0) transitivePeerDependencies: - '@glint/template' - supports-color - webpack dev: true - /@ember/test-helpers@3.2.1(ember-source@3.28.12): - resolution: {integrity: sha512-DvJSihJPV4xshwEgBrFN4aUVc9m/Y/hVzwcslfSVq/h3dMWCyAj4+agkkdJPQrwBaE+H4IyGNzr555S7bTErEA==} + /@ember/test-helpers@3.2.0(ember-source@3.28.12): + resolution: {integrity: sha512-3yWpPsK5O77tUdCwW3HayrAcdlRitIRYMvLIG69Pkal1JMIGdNYVTvJ2R1lenhQh2syd/WFmGM07vQuDAtotQw==} engines: {node: 16.* || >= 18} peerDependencies: ember-source: ^4.0.0 || ^5.0.0 @@ -4596,18 +4624,18 @@ packages: '@simple-dom/interface': 1.4.0 broccoli-debug: 0.6.5 broccoli-funnel: 3.0.8 - ember-auto-import: 2.7.0 + ember-auto-import: 2.6.3 ember-cli-babel: 7.26.11 ember-cli-htmlbars: 6.3.0 - ember-source: 3.28.12(@babel/core@7.23.5) + ember-source: 3.28.12(@babel/core@7.23.3) transitivePeerDependencies: - '@glint/template' - supports-color - webpack dev: true - /@ember/test-helpers@3.2.1(ember-source@5.1.2): - resolution: {integrity: sha512-DvJSihJPV4xshwEgBrFN4aUVc9m/Y/hVzwcslfSVq/h3dMWCyAj4+agkkdJPQrwBaE+H4IyGNzr555S7bTErEA==} + /@ember/test-helpers@3.2.0(ember-source@5.1.2): + resolution: {integrity: sha512-3yWpPsK5O77tUdCwW3HayrAcdlRitIRYMvLIG69Pkal1JMIGdNYVTvJ2R1lenhQh2syd/WFmGM07vQuDAtotQw==} engines: {node: 16.* || >= 18} peerDependencies: ember-source: ^4.0.0 || ^5.0.0 @@ -4617,10 +4645,10 @@ packages: '@simple-dom/interface': 1.4.0 broccoli-debug: 0.6.5 broccoli-funnel: 3.0.8 - ember-auto-import: 2.7.0 + ember-auto-import: 2.6.3 ember-cli-babel: 7.26.11 ember-cli-htmlbars: 6.3.0 - ember-source: 5.1.2(@babel/core@7.23.5)(@glimmer/component@1.1.2) + ember-source: 5.1.2(@babel/core@7.23.3)(@glimmer/component@1.1.2) transitivePeerDependencies: - '@glint/template' - supports-color @@ -4704,7 +4732,7 @@ packages: '@glint/template': 1.2.1 broccoli-funnel: 3.0.8 ember-cli-babel: 7.26.11 - ember-source: 4.6.0(@babel/core@7.23.5)(@glint/template@1.2.1)(webpack@5.89.0) + ember-source: 4.6.0(@babel/core@7.23.3)(@glint/template@1.2.1)(webpack@5.89.0) transitivePeerDependencies: - supports-color dev: true @@ -4725,7 +4753,7 @@ packages: '@embroider/macros': 1.13.3(@glint/template@1.2.1) broccoli-funnel: 3.0.8 ember-cli-babel: 7.26.11 - ember-source: 3.26.2(@babel/core@7.23.5) + ember-source: 3.26.2(@babel/core@7.23.3) transitivePeerDependencies: - supports-color dev: true @@ -4746,20 +4774,11 @@ packages: '@embroider/macros': 1.13.3(@glint/template@1.2.1) broccoli-funnel: 3.0.8 ember-cli-babel: 7.26.11 - ember-source: 3.28.12(@babel/core@7.23.5) + ember-source: 3.28.12(@babel/core@7.23.3) transitivePeerDependencies: - supports-color dev: true - /@esbuild/android-arm64@0.17.19: - resolution: {integrity: sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - requiresBuild: true - dev: false - optional: true - /@esbuild/android-arm64@0.18.20: resolution: {integrity: sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==} engines: {node: '>=12'} @@ -4769,15 +4788,6 @@ packages: dev: true optional: true - /@esbuild/android-arm@0.17.19: - resolution: {integrity: sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==} - engines: {node: '>=12'} - cpu: [arm] - os: [android] - requiresBuild: true - dev: false - optional: true - /@esbuild/android-arm@0.18.20: resolution: {integrity: sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==} engines: {node: '>=12'} @@ -4787,15 +4797,6 @@ packages: dev: true optional: true - /@esbuild/android-x64@0.17.19: - resolution: {integrity: sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==} - engines: {node: '>=12'} - cpu: [x64] - os: [android] - requiresBuild: true - dev: false - optional: true - /@esbuild/android-x64@0.18.20: resolution: {integrity: sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==} engines: {node: '>=12'} @@ -4805,15 +4806,6 @@ packages: dev: true optional: true - /@esbuild/darwin-arm64@0.17.19: - resolution: {integrity: sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==} - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: false - optional: true - /@esbuild/darwin-arm64@0.18.20: resolution: {integrity: sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==} engines: {node: '>=12'} @@ -4823,15 +4815,6 @@ packages: dev: true optional: true - /@esbuild/darwin-x64@0.17.19: - resolution: {integrity: sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==} - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] - requiresBuild: true - dev: false - optional: true - /@esbuild/darwin-x64@0.18.20: resolution: {integrity: sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==} engines: {node: '>=12'} @@ -4841,15 +4824,6 @@ packages: dev: true optional: true - /@esbuild/freebsd-arm64@0.17.19: - resolution: {integrity: sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==} - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - requiresBuild: true - dev: false - optional: true - /@esbuild/freebsd-arm64@0.18.20: resolution: {integrity: sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==} engines: {node: '>=12'} @@ -4859,15 +4833,6 @@ packages: dev: true optional: true - /@esbuild/freebsd-x64@0.17.19: - resolution: {integrity: sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - requiresBuild: true - dev: false - optional: true - /@esbuild/freebsd-x64@0.18.20: resolution: {integrity: sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==} engines: {node: '>=12'} @@ -4877,15 +4842,6 @@ packages: dev: true optional: true - /@esbuild/linux-arm64@0.17.19: - resolution: {integrity: sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==} - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: false - optional: true - /@esbuild/linux-arm64@0.18.20: resolution: {integrity: sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==} engines: {node: '>=12'} @@ -4895,15 +4851,6 @@ packages: dev: true optional: true - /@esbuild/linux-arm@0.17.19: - resolution: {integrity: sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==} - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - requiresBuild: true - dev: false - optional: true - /@esbuild/linux-arm@0.18.20: resolution: {integrity: sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==} engines: {node: '>=12'} @@ -4913,15 +4860,6 @@ packages: dev: true optional: true - /@esbuild/linux-ia32@0.17.19: - resolution: {integrity: sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==} - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - requiresBuild: true - dev: false - optional: true - /@esbuild/linux-ia32@0.18.20: resolution: {integrity: sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==} engines: {node: '>=12'} @@ -4931,15 +4869,6 @@ packages: dev: true optional: true - /@esbuild/linux-loong64@0.17.19: - resolution: {integrity: sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==} - engines: {node: '>=12'} - cpu: [loong64] - os: [linux] - requiresBuild: true - dev: false - optional: true - /@esbuild/linux-loong64@0.18.20: resolution: {integrity: sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==} engines: {node: '>=12'} @@ -4949,15 +4878,6 @@ packages: dev: true optional: true - /@esbuild/linux-mips64el@0.17.19: - resolution: {integrity: sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==} - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - requiresBuild: true - dev: false - optional: true - /@esbuild/linux-mips64el@0.18.20: resolution: {integrity: sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==} engines: {node: '>=12'} @@ -4967,15 +4887,6 @@ packages: dev: true optional: true - /@esbuild/linux-ppc64@0.17.19: - resolution: {integrity: sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - requiresBuild: true - dev: false - optional: true - /@esbuild/linux-ppc64@0.18.20: resolution: {integrity: sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==} engines: {node: '>=12'} @@ -4985,15 +4896,6 @@ packages: dev: true optional: true - /@esbuild/linux-riscv64@0.17.19: - resolution: {integrity: sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==} - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - requiresBuild: true - dev: false - optional: true - /@esbuild/linux-riscv64@0.18.20: resolution: {integrity: sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==} engines: {node: '>=12'} @@ -5003,15 +4905,6 @@ packages: dev: true optional: true - /@esbuild/linux-s390x@0.17.19: - resolution: {integrity: sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==} - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - requiresBuild: true - dev: false - optional: true - /@esbuild/linux-s390x@0.18.20: resolution: {integrity: sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==} engines: {node: '>=12'} @@ -5021,15 +4914,6 @@ packages: dev: true optional: true - /@esbuild/linux-x64@0.17.19: - resolution: {integrity: sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: false - optional: true - /@esbuild/linux-x64@0.18.20: resolution: {integrity: sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==} engines: {node: '>=12'} @@ -5039,14 +4923,12 @@ packages: dev: true optional: true - /@esbuild/netbsd-x64@0.17.19: - resolution: {integrity: sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==} + /@esbuild/linux-x64@0.19.8: + resolution: {integrity: sha512-lytMAVOM3b1gPypL2TRmZ5rnXl7+6IIk8uB3eLsV1JwcizuolblXRrc5ShPrO9ls/b+RTp+E6gbsuLWHWi2zGg==} engines: {node: '>=12'} cpu: [x64] - os: [netbsd] - requiresBuild: true + os: [linux] dev: false - optional: true /@esbuild/netbsd-x64@0.18.20: resolution: {integrity: sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==} @@ -5057,15 +4939,6 @@ packages: dev: true optional: true - /@esbuild/openbsd-x64@0.17.19: - resolution: {integrity: sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==} - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - requiresBuild: true - dev: false - optional: true - /@esbuild/openbsd-x64@0.18.20: resolution: {integrity: sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==} engines: {node: '>=12'} @@ -5075,15 +4948,6 @@ packages: dev: true optional: true - /@esbuild/sunos-x64@0.17.19: - resolution: {integrity: sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==} - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - requiresBuild: true - dev: false - optional: true - /@esbuild/sunos-x64@0.18.20: resolution: {integrity: sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==} engines: {node: '>=12'} @@ -5093,15 +4957,6 @@ packages: dev: true optional: true - /@esbuild/win32-arm64@0.17.19: - resolution: {integrity: sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==} - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - requiresBuild: true - dev: false - optional: true - /@esbuild/win32-arm64@0.18.20: resolution: {integrity: sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==} engines: {node: '>=12'} @@ -5111,15 +4966,6 @@ packages: dev: true optional: true - /@esbuild/win32-ia32@0.17.19: - resolution: {integrity: sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==} - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - requiresBuild: true - dev: false - optional: true - /@esbuild/win32-ia32@0.18.20: resolution: {integrity: sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==} engines: {node: '>=12'} @@ -5129,15 +4975,6 @@ packages: dev: true optional: true - /@esbuild/win32-x64@0.17.19: - resolution: {integrity: sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==} - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - requiresBuild: true - dev: false - optional: true - /@esbuild/win32-x64@0.18.20: resolution: {integrity: sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==} engines: {node: '>=12'} @@ -5157,13 +4994,13 @@ packages: eslint-visitor-keys: 3.4.3 dev: true - /@eslint-community/eslint-utils@4.4.0(eslint@8.55.0): + /@eslint-community/eslint-utils@4.4.0(eslint@8.53.0): resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 dependencies: - eslint: 8.55.0 + eslint: 8.53.0 eslint-visitor-keys: 3.4.3 dev: true @@ -5189,15 +5026,15 @@ packages: - supports-color dev: true - /@eslint/eslintrc@2.1.4: - resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} + /@eslint/eslintrc@2.1.3: + resolution: {integrity: sha512-yZzuIG+jnVu6hNSzFEN07e8BxF3uAzYtQb6uDkaYZLo6oYZDCq454c5kB8zxnzfCYyP4MIuyBn10L0DqwujTmA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: ajv: 6.12.6 debug: 4.3.4(supports-color@8.1.1) espree: 9.6.1 globals: 13.23.0 - ignore: 5.3.0 + ignore: 5.2.4 import-fresh: 3.3.0 js-yaml: 4.1.0 minimatch: 3.1.2 @@ -5206,8 +5043,8 @@ packages: - supports-color dev: true - /@eslint/js@8.55.0: - resolution: {integrity: sha512-qQfo2mxH5yVom1kacMtZZJFVdW+E70mqHMJvVg6WTLo+VBuQJ4TojZlfWBjK0ve5BdEeNAVxOsl/nvNMpJOaJA==} + /@eslint/js@8.53.0: + resolution: {integrity: sha512-Kn7K8dx/5U6+cT1yEhpX1w4PCSg0M+XyRILPgvwcEBjerFWCwQj5sbr3/VmxqV0JGHCBCzyd6LxypEuehypY1w==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true @@ -5231,7 +5068,7 @@ packages: '@simple-dom/interface': 1.4.0 dev: true - /@glimmer/component@1.1.2(@babel/core@7.23.5): + /@glimmer/component@1.1.2(@babel/core@7.23.3): resolution: {integrity: sha512-XyAsEEa4kWOPy+gIdMjJ8XlzA3qrGH55ZDv6nA16ibalCR17k74BI0CztxuRds+Rm6CtbUVgheCVlcCULuqD7A==} engines: {node: 6.* || 8.* || >= 10.*} dependencies: @@ -5246,9 +5083,9 @@ packages: ember-cli-normalize-entity-name: 1.0.0 ember-cli-path-utils: 1.0.0 ember-cli-string-utils: 1.1.0 - ember-cli-typescript: 3.0.0(@babel/core@7.23.5) + ember-cli-typescript: 3.0.0(@babel/core@7.23.3) ember-cli-version-checker: 3.1.3 - ember-compatibility-helpers: 1.2.7(@babel/core@7.23.5) + ember-compatibility-helpers: 1.2.7(@babel/core@7.23.3) transitivePeerDependencies: - '@babel/core' - supports-color @@ -5584,41 +5421,41 @@ packages: '@glimmer/global-context': 0.84.3 dev: true - /@glimmer/vm-babel-plugins@0.77.5(@babel/core@7.23.5): + /@glimmer/vm-babel-plugins@0.77.5(@babel/core@7.23.3): resolution: {integrity: sha512-jTBM7fJMrIEy4/bCeI8e7ypR+AuWYzLA+KORCGbnTJtL/NYg4G8qwhQAZBtg1d3KmoqyqaCsyqE6f4/tzJO4eQ==} dependencies: - babel-plugin-debug-macros: 0.3.4(@babel/core@7.23.5) + babel-plugin-debug-macros: 0.3.4(@babel/core@7.23.3) transitivePeerDependencies: - '@babel/core' - /@glimmer/vm-babel-plugins@0.80.3(@babel/core@7.23.5): + /@glimmer/vm-babel-plugins@0.80.3(@babel/core@7.23.3): resolution: {integrity: sha512-9ej6xlm5MzHBJ5am2l0dbbn8Z0wJoYoMpM8FcrGMlUP6SPMLWxvxpMsApgQo8u6dvZRCjR3/bw3fdf7GOy0AFw==} dependencies: - babel-plugin-debug-macros: 0.3.4(@babel/core@7.23.5) + babel-plugin-debug-macros: 0.3.4(@babel/core@7.23.3) transitivePeerDependencies: - '@babel/core' dev: true - /@glimmer/vm-babel-plugins@0.83.1(@babel/core@7.23.5): + /@glimmer/vm-babel-plugins@0.83.1(@babel/core@7.23.3): resolution: {integrity: sha512-Cz0e/SrOo1gSNA0PXZRYI1WGmlQSAQCpiERBlXjjpwoLgiqx2kvsjfFiCUC/CfpsO6WN6wuPMeTFGJuhSSeL5A==} dependencies: - babel-plugin-debug-macros: 0.3.4(@babel/core@7.23.5) + babel-plugin-debug-macros: 0.3.4(@babel/core@7.23.3) transitivePeerDependencies: - '@babel/core' dev: true - /@glimmer/vm-babel-plugins@0.84.2(@babel/core@7.23.5): + /@glimmer/vm-babel-plugins@0.84.2(@babel/core@7.23.3): resolution: {integrity: sha512-HS2dEbJ3CgXn56wk/5QdudM7rE3vtNMvPIoG7Rrg+GhkGMNxBCIRxOeEF2g520j9rwlA2LAZFpc7MCDMFbTjNA==} dependencies: - babel-plugin-debug-macros: 0.3.4(@babel/core@7.23.5) + babel-plugin-debug-macros: 0.3.4(@babel/core@7.23.3) transitivePeerDependencies: - '@babel/core' dev: true - /@glimmer/vm-babel-plugins@0.84.3(@babel/core@7.23.5): + /@glimmer/vm-babel-plugins@0.84.3(@babel/core@7.23.3): resolution: {integrity: sha512-fucWuuN7Q9QFB0ODd+PCltcTkmH4fLqYyXGArrfLt/TYN8gLv0yo00mPwFOSY7MWti/MUx88xd20/PycvYtg8w==} dependencies: - babel-plugin-debug-macros: 0.3.4(@babel/core@7.23.5) + babel-plugin-debug-macros: 0.3.4(@babel/core@7.23.3) transitivePeerDependencies: - '@babel/core' dev: true @@ -5679,7 +5516,7 @@ packages: ember-modifier: optional: true dependencies: - '@glimmer/component': 1.1.2(@babel/core@7.23.5) + '@glimmer/component': 1.1.2(@babel/core@7.23.3) '@glint/template': 1.2.1 ember-cli-htmlbars: 6.3.0 ember-modifier: 4.1.0(ember-source@5.3.0) @@ -5730,18 +5567,6 @@ packages: resolution: {integrity: sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==} dev: true - /@isaacs/cliui@8.0.2: - resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} - engines: {node: '>=12'} - dependencies: - string-width: 5.1.2 - string-width-cjs: /string-width@4.2.3 - strip-ansi: 7.1.0 - strip-ansi-cjs: /strip-ansi@6.0.1 - wrap-ansi: 8.1.0 - wrap-ansi-cjs: /wrap-ansi@7.0.0 - dev: true - /@istanbuljs/load-nyc-config@1.1.0: resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==} engines: {node: '>=8'} @@ -5895,7 +5720,7 @@ packages: slash: 3.0.0 string-length: 4.0.2 strip-ansi: 6.0.1 - v8-to-istanbul: 9.2.0 + v8-to-istanbul: 9.1.3 transitivePeerDependencies: - supports-color dev: true @@ -5939,7 +5764,7 @@ packages: resolution: {integrity: sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@babel/core': 7.23.5(supports-color@8.1.1) + '@babel/core': 7.23.3(supports-color@8.1.1) '@jest/types': 29.6.3 '@jridgewell/trace-mapping': 0.3.20 babel-plugin-istanbul: 6.1.1 @@ -5966,7 +5791,7 @@ packages: '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 '@types/node': 15.14.9 - '@types/yargs': 17.0.32 + '@types/yargs': 17.0.31 chalk: 4.1.2 /@jridgewell/gen-mapping@0.3.3: @@ -6011,7 +5836,7 @@ packages: resolution: {integrity: sha512-F5z53uvRIF4dYfFfJP3a2Cqg+4P1dgJchJsFnsZE0eZp0LK8X7g2J0CsJHRgns+skpXOlM7n5vFGwkWCWj8qJg==} engines: {node: 12.* || >= 14} dependencies: - '@types/eslint': 8.44.8 + '@types/eslint': 8.44.7 find-up: 5.0.0 fs-extra: 9.1.0 proper-lockfile: 4.1.2 @@ -6051,48 +5876,10 @@ packages: '@nodelib/fs.scandir': 2.1.5 fastq: 1.15.0 - /@npmcli/git@5.0.3: - resolution: {integrity: sha512-UZp9NwK+AynTrKvHn5k3KviW/hA5eENmFsu3iAPe7sWRt0lFUdsY/wXIYjpDFe7cdSNwOIzbObfwgt6eL5/2zw==} - engines: {node: ^16.14.0 || >=18.0.0} - dependencies: - '@npmcli/promise-spawn': 7.0.0 - lru-cache: 10.1.0 - npm-pick-manifest: 9.0.0 - proc-log: 3.0.0 - promise-inflight: 1.0.1(bluebird@3.7.2) - promise-retry: 2.0.1 - semver: 7.5.4 - which: 4.0.0 - transitivePeerDependencies: - - bluebird - dev: true - - /@npmcli/package-json@5.0.0: - resolution: {integrity: sha512-OI2zdYBLhQ7kpNPaJxiflofYIpkNLi+lnGdzqUOfRmCF3r2l1nadcjtCYMJKv/Utm/ZtlffaUuTiAktPHbc17g==} - engines: {node: ^16.14.0 || >=18.0.0} - dependencies: - '@npmcli/git': 5.0.3 - glob: 10.3.10 - hosted-git-info: 7.0.1 - json-parse-even-better-errors: 3.0.1 - normalize-package-data: 6.0.0 - proc-log: 3.0.0 - semver: 7.5.4 - transitivePeerDependencies: - - bluebird - dev: true - - /@npmcli/promise-spawn@7.0.0: - resolution: {integrity: sha512-wBqcGsMELZna0jDblGd7UXgOby45TQaMWmbFwWX+SEotk4HV6zG2t6rT9siyLhPk4P6YYqgfL1UO8nMWDBVJXQ==} - engines: {node: ^16.14.0 || >=18.0.0} - dependencies: - which: 4.0.0 - dev: true - /@octokit/auth-token@3.0.4: resolution: {integrity: sha512-TWFX7cZF2LXoCvdmJWY7XVPi74aSY0+FfBZNSXEXFkMpjcqsQwDSYVv5FhRFaI0V1ECnwbz4j59T/G+rXNWaIQ==} engines: {node: '>= 14'} - dev: true + dev: false /@octokit/core@4.2.4: resolution: {integrity: sha512-rYKilwgzQ7/imScn3M9/pFfUf4I1AZEH3KhyJmtPdE2zfaXAn2mFfUy4FbKewzc2We5y/LlKLj36fWJLKC2SIQ==} @@ -6107,7 +5894,7 @@ packages: universal-user-agent: 6.0.1 transitivePeerDependencies: - encoding - dev: true + dev: false /@octokit/endpoint@7.0.6: resolution: {integrity: sha512-5L4fseVRUsDFGR00tMWD/Trdeeihn999rTMGRMC1G/Ldi1uWlWJzI98H4Iak5DB/RVvQuyMYKqSK/R6mbSOQyg==} @@ -6116,7 +5903,7 @@ packages: '@octokit/types': 9.3.2 is-plain-object: 5.0.0 universal-user-agent: 6.0.1 - dev: true + dev: false /@octokit/graphql@5.0.6: resolution: {integrity: sha512-Fxyxdy/JH0MnIB5h+UQ3yCoh1FG4kWXfFKkpWqjZHw/p+Kc8Y44Hu/kCgNBT6nU1shNumEchmW/sUO1JuQnPcw==} @@ -6127,11 +5914,11 @@ packages: universal-user-agent: 6.0.1 transitivePeerDependencies: - encoding - dev: true + dev: false /@octokit/openapi-types@18.1.1: resolution: {integrity: sha512-VRaeH8nCDtF5aXWnjPuEMIYf1itK/s3JYyJcWFJT8X9pSNnBtriDf7wlEWsGuhPLl4QIH4xM8fqTXDwJ3Mu6sw==} - dev: true + dev: false /@octokit/plugin-paginate-rest@6.1.2(@octokit/core@4.2.4): resolution: {integrity: sha512-qhrmtQeHU/IivxucOV1bbI/xZyC/iOBhclokv7Sut5vnejAIAEXVcGQeRpQlU39E0WwK9lNvJHphHri/DB6lbQ==} @@ -6142,7 +5929,7 @@ packages: '@octokit/core': 4.2.4 '@octokit/tsconfig': 1.0.2 '@octokit/types': 9.3.2 - dev: true + dev: false /@octokit/plugin-request-log@1.0.4(@octokit/core@4.2.4): resolution: {integrity: sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA==} @@ -6150,7 +5937,7 @@ packages: '@octokit/core': '>=3' dependencies: '@octokit/core': 4.2.4 - dev: true + dev: false /@octokit/plugin-rest-endpoint-methods@7.2.3(@octokit/core@4.2.4): resolution: {integrity: sha512-I5Gml6kTAkzVlN7KCtjOM+Ruwe/rQppp0QU372K1GP7kNOYEKe8Xn5BW4sE62JAHdwpq95OQK/qGNyKQMUzVgA==} @@ -6160,7 +5947,7 @@ packages: dependencies: '@octokit/core': 4.2.4 '@octokit/types': 10.0.0 - dev: true + dev: false /@octokit/request-error@3.0.3: resolution: {integrity: sha512-crqw3V5Iy2uOU5Np+8M/YexTlT8zxCfI+qu+LxUB7SZpje4Qmx3mub5DfEKSO8Ylyk0aogi6TYdf6kxzh2BguQ==} @@ -6169,7 +5956,7 @@ packages: '@octokit/types': 9.3.2 deprecation: 2.3.1 once: 1.4.0 - dev: true + dev: false /@octokit/request@6.2.8: resolution: {integrity: sha512-ow4+pkVQ+6XVVsekSYBzJC0VTVvh/FCTUUgTsboGq+DTeWdyIFV8WSCdo0RIxk6wSkBTHqIK1mYuY7nOBXOchw==} @@ -6183,7 +5970,7 @@ packages: universal-user-agent: 6.0.1 transitivePeerDependencies: - encoding - dev: true + dev: false /@octokit/rest@19.0.13: resolution: {integrity: sha512-/EzVox5V9gYGdbAI+ovYj3nXQT1TtTHRT+0eZPcuC05UFSWO3mdO9UY1C0i2eLF9Un1ONJkAk+IEtYGAC+TahA==} @@ -6195,30 +5982,23 @@ packages: '@octokit/plugin-rest-endpoint-methods': 7.2.3(@octokit/core@4.2.4) transitivePeerDependencies: - encoding - dev: true + dev: false /@octokit/tsconfig@1.0.2: resolution: {integrity: sha512-I0vDR0rdtP8p2lGMzvsJzbhdOWy405HcGovrspJ8RRibHnyRgggUSNO5AIox5LmqiwmatHKYsvj6VGFHkqS7lA==} - dev: true + dev: false /@octokit/types@10.0.0: resolution: {integrity: sha512-Vm8IddVmhCgU1fxC1eyinpwqzXPEYu0NrYzD3YZjlGjyftdLBTeqNblRC0jmJmgxbJIsQlyogVeGnrNaaMVzIg==} dependencies: '@octokit/openapi-types': 18.1.1 - dev: true + dev: false /@octokit/types@9.3.2: resolution: {integrity: sha512-D4iHGTdAnEEVsB8fl95m1hiz7D5YiRdQ9b/OEb3BYRVwbLsGHcRVPz+u+BgRLNk0Q0/4iZCBqDN96j2XNxfXrA==} dependencies: '@octokit/openapi-types': 18.1.1 - dev: true - - /@pkgjs/parseargs@0.11.0: - resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} - engines: {node: '>=14'} - requiresBuild: true - dev: true - optional: true + dev: false /@pnpm/constants@7.1.1: resolution: {integrity: sha512-31pZqMtjwV+Vaq7MaPrT1EoDFSYwye3dp6BiHIGRJmVThCQwySRKM7hCvqqI94epNkqFAAYoWrNynWoRYosGdw==} @@ -6244,7 +6024,7 @@ packages: resolution: {integrity: sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==} dev: true - /@rollup/plugin-babel@5.3.1(@babel/core@7.23.5)(rollup@3.29.4): + /@rollup/plugin-babel@5.3.1(@babel/core@7.23.3)(rollup@3.29.4): resolution: {integrity: sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==} engines: {node: '>= 10.0.0'} peerDependencies: @@ -6255,7 +6035,7 @@ packages: '@types/babel__core': optional: true dependencies: - '@babel/core': 7.23.5(supports-color@8.1.1) + '@babel/core': 7.23.3(supports-color@8.1.1) '@babel/helper-module-imports': 7.22.15 '@rollup/pluginutils': 3.1.0(rollup@3.29.4) rollup: 3.29.4 @@ -6274,7 +6054,7 @@ packages: tslib: optional: true dependencies: - '@rollup/pluginutils': 5.1.0(rollup@3.29.4) + '@rollup/pluginutils': 5.0.5(rollup@3.29.4) resolve: 1.22.8 rollup: 3.29.4 tslib: 2.6.2 @@ -6301,8 +6081,8 @@ packages: picomatch: 2.3.1 dev: false - /@rollup/pluginutils@5.1.0(rollup@3.29.4): - resolution: {integrity: sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==} + /@rollup/pluginutils@5.0.5(rollup@3.29.4): + resolution: {integrity: sha512-6aEYR910NyP73oHiJglti74iRyOwgFU4x3meH/H8OJx6Ry0j6cOVZ5X/wTvub7G7Ao6qaHBEaNsV3GLJkSsF+Q==} engines: {node: '>=14.0.0'} peerDependencies: rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 @@ -6343,7 +6123,6 @@ packages: /@sindresorhus/is@0.14.0: resolution: {integrity: sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==} engines: {node: '>=6'} - dev: true /@sindresorhus/is@0.7.0: resolution: {integrity: sha512-ONhaKPIufzzrlNbqtWFFd+jlnemX6lJAgq9ZeiZtS7I1PIf/la7CW4m83rTXRnVnsMbW2k56pGYu7AUFJD9Pow==} @@ -6370,7 +6149,6 @@ packages: engines: {node: '>=6'} dependencies: defer-to-connect: 1.1.3 - dev: true /@tootallnate/once@1.1.2: resolution: {integrity: sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==} @@ -6407,19 +6185,19 @@ packages: '@types/estree': 1.0.5 dev: true - /@types/babel-types@7.0.15: - resolution: {integrity: sha512-JUgfZHUOMbtjopxiOQaaF+Uovk5wpDqpXR+XLWiOivCWSy1FccO30lvNNpCt8geFwq8VmGT2y9OMkOpA0g5O5g==} + /@types/babel-types@7.0.14: + resolution: {integrity: sha512-5BC5W3pCoX12SH8nC8ReAOiMBy/rd9xil3es3S6dh83Pl9i4J3ZujfWUu5mXnEwo/WLqcD5+uj9Yk115Dh0obw==} dev: true /@types/babel__code-frame@7.0.6: resolution: {integrity: sha512-Anitqkl3+KrzcW2k77lRlg/GfLZLWXBuNgbEcIOU6M92yw42vsd3xV/Z/yAHEj8m+KUjL6bWOVOFqX8PFPJ4LA==} dev: false - /@types/babel__core@7.20.5: - resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} + /@types/babel__core@7.20.4: + resolution: {integrity: sha512-mLnSC22IC4vcWiuObSRjrLd9XcBTGf59vUSoq2jkQDJ/QQ8PMI9rSuzE+aEV8karUMbskw07bKYoUJCKTUaygg==} dependencies: - '@babel/parser': 7.23.5 - '@babel/types': 7.23.5 + '@babel/parser': 7.23.3 + '@babel/types': 7.23.3 '@types/babel__generator': 7.6.7 '@types/babel__template': 7.4.4 '@types/babel__traverse': 7.20.4 @@ -6428,26 +6206,26 @@ packages: /@types/babel__generator@7.6.7: resolution: {integrity: sha512-6Sfsq+EaaLrw4RmdFWE9Onp63TOUue71AWb4Gpa6JxzgTYtimbM086WnYTy2U67AofR++QKCo08ZP6pwx8YFHQ==} dependencies: - '@babel/types': 7.23.5 + '@babel/types': 7.23.3 dev: true /@types/babel__template@7.4.4: resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} dependencies: - '@babel/parser': 7.23.5 - '@babel/types': 7.23.5 + '@babel/parser': 7.23.3 + '@babel/types': 7.23.3 dev: true /@types/babel__traverse@7.20.4: resolution: {integrity: sha512-mSM/iKUk5fDDrEV/e83qY+Cr3I1+Q3qqTuEn++HAWYjEa1+NxZr6CNrcJGf2ZTnq4HoFGC3zaTPZTobCzCFukA==} dependencies: - '@babel/types': 7.23.5 + '@babel/types': 7.23.3 dev: true /@types/babylon@6.16.9: resolution: {integrity: sha512-sEKyxMVEowhcr8WLfN0jJYe4gS4Z9KC2DGz0vqfC7+MXFbmvOF7jSjALC77thvAO2TLgFUPa9vDeOak+AcUrZA==} dependencies: - '@types/babel-types': 7.0.15 + '@types/babel-types': 7.0.14 dev: true /@types/body-parser@1.19.5: @@ -6468,10 +6246,10 @@ packages: /@types/chai-as-promised@7.1.8: resolution: {integrity: sha512-ThlRVIJhr69FLlh6IctTXFkmhtP3NpMZ2QGq69StYLyKZFp/HOp1VdKZj7RvfNWYYcJ1xlbLGLLWj1UvP5u/Gw==} dependencies: - '@types/chai': 4.3.11 + '@types/chai': 4.3.10 - /@types/chai@4.3.11: - resolution: {integrity: sha512-qQR1dr2rGIHYlJulmr8Ioq3De0Le9E4MJ5AiaeAETJJpndT1uUNHsGFK3L/UIu+rbkQSdj8J/w2bCsBZc/Y5fQ==} + /@types/chai@4.3.10: + resolution: {integrity: sha512-of+ICnbqjmFCiixUnqRulbylyXQrPqIGf/B3Jax1wIF3DvSheysQxAWvqHhZiW3IQrycvokcLcFQlveGp+vyNg==} /@types/connect@3.4.38: resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} @@ -6481,8 +6259,8 @@ packages: /@types/cookie@0.4.1: resolution: {integrity: sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==} - /@types/cors@2.8.17: - resolution: {integrity: sha512-8CGDvrBj1zgo2qE+oS3pOCyYNqCPryMWY2bGfwA0dcfopWGgxs+78df0Rs3rc9THP4JkOhLsAa+15VdpAqkcUA==} + /@types/cors@2.8.16: + resolution: {integrity: sha512-Trx5or1Nyg1Fq138PCuWqoApzvoSLWzZ25ORBiHMbbUT42g578lH1GT4TwYDbiUOLFuDsCkfLneT2105fsFWGg==} dependencies: '@types/node': 15.14.9 @@ -6505,11 +6283,11 @@ packages: /@types/eslint-scope@3.7.7: resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==} dependencies: - '@types/eslint': 8.44.8 + '@types/eslint': 8.44.7 '@types/estree': 1.0.5 - /@types/eslint@8.44.8: - resolution: {integrity: sha512-4K8GavROwhrYl2QXDXm0Rv9epkA8GBFu0EI+XrrnnuCl7u8CWBRusX7fXJfanhZTDWSAL24gDI/UqXyUM0Injw==} + /@types/eslint@8.44.7: + resolution: {integrity: sha512-f5ORu2hcBbKei97U73mf+l9t4zTGl74IqZ0GQk4oVea/VS8tQZYkUveSYojk+frraAVYId0V2WC9O4PTNru2FQ==} dependencies: '@types/estree': 1.0.5 '@types/json-schema': 7.0.15 @@ -6551,7 +6329,6 @@ packages: resolution: {integrity: sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==} dependencies: '@types/node': 15.14.9 - dev: true /@types/glob@7.2.0: resolution: {integrity: sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==} @@ -6591,8 +6368,8 @@ packages: dependencies: '@types/istanbul-lib-report': 3.0.3 - /@types/jest@29.5.11: - resolution: {integrity: sha512-S2mHmYIVe13vrm6q4kN6fLYYAka15ALQki/vgDC3mIukEOx8WJlv0kQPM+d4w8Gp6u0uSdKND04IlTXBv0rwnQ==} + /@types/jest@29.5.8: + resolution: {integrity: sha512-fXEFTxMV2Co8ZF5aYFJv+YeA08RTYJfhtN5c9JSv/mFEMe+xxjufCb+PHL+bJcMs/ebPUsBu+UNTEz+ydXrR6g==} dependencies: expect: 29.7.0 pretty-format: 29.7.0 @@ -6603,7 +6380,6 @@ packages: /@types/js-yaml@4.0.9: resolution: {integrity: sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg==} - dev: true /@types/jsdom@16.2.15: resolution: {integrity: sha512-nwF87yjBKuX/roqGYerZZM0Nv1pZDMAT5YhOHYeM/72Fic+VEqJh4nyoqoapzJnW3pUlfxPY5FhgsJtM+dRnQQ==} @@ -6624,10 +6400,9 @@ packages: resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==} dependencies: '@types/node': 15.14.9 - dev: true - /@types/lodash@4.14.202: - resolution: {integrity: sha512-OvlIYQK9tNneDlS0VN54LLd5uiPCBOp7gS5Z0f1mjoJYBrtStzgmJBxONW3U6OZqdtNzZPmn9BS/7WI7BFFcFQ==} + /@types/lodash@4.14.201: + resolution: {integrity: sha512-y9euML0cim1JrykNxADLfaG0FgD1g/yTHwUs/Jg9ZIU7WKj2/4IW9Lbb1WZbvck78W/lfGXFfe+u2EGfIJXdLQ==} dev: true /@types/mime@1.3.5: @@ -6689,21 +6464,20 @@ packages: /@types/qs@6.9.10: resolution: {integrity: sha512-3Gnx08Ns1sEoCrWssEgTSJs/rsT2vhGP+Ja9cnnk9k4ALxinORlQneLXFeFKOTJMOeZUFD1s7w+w2AphTpvzZw==} - /@types/qunit@2.19.9: - resolution: {integrity: sha512-Ym6B8Ewt1R1b0EgSqISSrAKp2Pg5MNgKK3/d2Fbls3PN7kNnucVSGaRx9Prxeo78HfQofYJMWDWLPlfAuwx7IQ==} + /@types/qunit@2.19.8: + resolution: {integrity: sha512-L4JyeRG1CJGSzJKd1b78DX/ll91E8e50IXkkl8KzW6W0IWz6FTHWEYvTEi8QVNHkUqUu6hjTffwV7ffxcoka0g==} /@types/range-parser@1.2.7: resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} - /@types/resolve@1.20.6: - resolution: {integrity: sha512-A4STmOXPhMUtHH+S6ymgE2GiBSMqf4oTvcQZMcHzokuTLVYzXTB8ttjcgxOVaAp2lGwEdzZ0J+cRbbeevQj1UQ==} + /@types/resolve@1.20.5: + resolution: {integrity: sha512-aten5YPFp8G+cMpkTK5MCcUW5GlwZUby+qlt0/3oFgOCooFgzqvZQ9/0tROY49sUYmhEybBBj3jwpkQ/R3rjjw==} dev: true /@types/responselike@1.0.3: resolution: {integrity: sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==} dependencies: '@types/node': 15.14.9 - dev: true /@types/rimraf@2.0.5: resolution: {integrity: sha512-YyP+VfeaqAyFmXoTh3HChxOQMyjByRMsHU7kc5KOJkSlXudhMhQIALbYV7rHh/l8d2lX3VUQzprrcAgWdRuU8g==} @@ -6711,13 +6485,12 @@ packages: '@types/glob': 8.1.0 '@types/node': 15.14.9 - /@types/rsvp@4.0.8: - resolution: {integrity: sha512-OraQXMlBrD3nll0VuEKENY3IoR4N3eDIqElVWo5dSheMveYYMDSIUMbtcI7wOGWyUilLwfaOx9VF8U8LdrHXkg==} + /@types/rsvp@4.0.7: + resolution: {integrity: sha512-TOsoofOK1MNrZvsoq9op8Qc8r+pYJ6zwH4YCvDXNcsgjtFgS6IP/uGfLW0JH4zJgXGEC1TxJuKe0EBUPIAIA0A==} dev: true - /@types/semver@7.5.6: - resolution: {integrity: sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==} - dev: true + /@types/semver@7.5.5: + resolution: {integrity: sha512-+d+WYC1BxJ6yVOgUgzK8gWvp5qF8ssV5r4nsDcZWKRWcDQLQ619tvWAxJQYGgBrO1MnLJC7a5GtiYsAoQ47dJg==} /@types/send@0.17.4: resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==} @@ -6757,8 +6530,8 @@ packages: /@types/yargs-parser@21.0.3: resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==} - /@types/yargs@17.0.32: - resolution: {integrity: sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==} + /@types/yargs@17.0.31: + resolution: {integrity: sha512-bocYSx4DI8TmdlvxqGpVNXOgCNR1Jj0gNPhhAY+iz1rgKDAaYrAYdFYnhDV1IFuiuVc9HkOwyDcFxaTElF3/wg==} dependencies: '@types/yargs-parser': 21.0.3 @@ -6781,7 +6554,7 @@ packages: debug: 4.3.4(supports-color@8.1.1) eslint: 7.32.0 graphemer: 1.4.0 - ignore: 5.3.0 + ignore: 5.2.4 natural-compare-lite: 1.4.0 semver: 7.5.4 tsutils: 3.21.0(typescript@5.2.2) @@ -6790,7 +6563,7 @@ packages: - supports-color dev: true - /@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.55.0)(typescript@5.2.2): + /@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.53.0)(typescript@5.2.2): resolution: {integrity: sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -6802,14 +6575,14 @@ packages: optional: true dependencies: '@eslint-community/regexpp': 4.10.0 - '@typescript-eslint/parser': 5.62.0(eslint@8.55.0)(typescript@5.2.2) + '@typescript-eslint/parser': 5.62.0(eslint@8.53.0)(typescript@5.2.2) '@typescript-eslint/scope-manager': 5.62.0 - '@typescript-eslint/type-utils': 5.62.0(eslint@8.55.0)(typescript@5.2.2) - '@typescript-eslint/utils': 5.62.0(eslint@8.55.0)(typescript@5.2.2) + '@typescript-eslint/type-utils': 5.62.0(eslint@8.53.0)(typescript@5.2.2) + '@typescript-eslint/utils': 5.62.0(eslint@8.53.0)(typescript@5.2.2) debug: 4.3.4(supports-color@8.1.1) - eslint: 8.55.0 + eslint: 8.53.0 graphemer: 1.4.0 - ignore: 5.3.0 + ignore: 5.2.4 natural-compare-lite: 1.4.0 semver: 7.5.4 tsutils: 3.21.0(typescript@5.2.2) @@ -6838,7 +6611,7 @@ packages: - supports-color dev: true - /@typescript-eslint/parser@5.62.0(eslint@8.55.0)(typescript@5.2.2): + /@typescript-eslint/parser@5.62.0(eslint@8.53.0)(typescript@5.2.2): resolution: {integrity: sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -6852,7 +6625,7 @@ packages: '@typescript-eslint/types': 5.62.0 '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.2.2) debug: 4.3.4(supports-color@8.1.1) - eslint: 8.55.0 + eslint: 8.53.0 typescript: 5.2.2 transitivePeerDependencies: - supports-color @@ -6886,7 +6659,7 @@ packages: - supports-color dev: true - /@typescript-eslint/type-utils@5.62.0(eslint@8.55.0)(typescript@5.2.2): + /@typescript-eslint/type-utils@5.62.0(eslint@8.53.0)(typescript@5.2.2): resolution: {integrity: sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -6897,9 +6670,9 @@ packages: optional: true dependencies: '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.2.2) - '@typescript-eslint/utils': 5.62.0(eslint@8.55.0)(typescript@5.2.2) + '@typescript-eslint/utils': 5.62.0(eslint@8.53.0)(typescript@5.2.2) debug: 4.3.4(supports-color@8.1.1) - eslint: 8.55.0 + eslint: 8.53.0 tsutils: 3.21.0(typescript@5.2.2) typescript: 5.2.2 transitivePeerDependencies: @@ -6940,7 +6713,7 @@ packages: dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@7.32.0) '@types/json-schema': 7.0.15 - '@types/semver': 7.5.6 + '@types/semver': 7.5.5 '@typescript-eslint/scope-manager': 5.62.0 '@typescript-eslint/types': 5.62.0 '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.2.2) @@ -6952,19 +6725,19 @@ packages: - typescript dev: true - /@typescript-eslint/utils@5.62.0(eslint@8.55.0)(typescript@5.2.2): + /@typescript-eslint/utils@5.62.0(eslint@8.53.0)(typescript@5.2.2): resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.55.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.53.0) '@types/json-schema': 7.0.15 - '@types/semver': 7.5.6 + '@types/semver': 7.5.5 '@typescript-eslint/scope-manager': 5.62.0 '@typescript-eslint/types': 5.62.0 '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.2.2) - eslint: 8.55.0 + eslint: 8.53.0 eslint-scope: 5.1.1 semver: 7.5.4 transitivePeerDependencies: @@ -7087,7 +6860,6 @@ packages: /abab@2.0.6: resolution: {integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==} - deprecated: Use your platform's native atob() and btoa() methods instead /abbrev@1.1.1: resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==} @@ -7151,8 +6923,8 @@ packages: resolution: {integrity: sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==} engines: {node: '>=0.4.0'} - /acorn-walk@8.3.1: - resolution: {integrity: sha512-TgUZgYvqZprrl7YldZNoa9OciCAyZR+Ejm9eXzKCmjsF5IKp/wgQ7Z/ZpjpGTIUPwrHQIcYeI8qDh4PsEwxMbw==} + /acorn-walk@8.3.0: + resolution: {integrity: sha512-FS7hV565M5l1R08MXqo8odwMTB02C2UqzB17RVgu9EyuYFBqJZ3/ZY97sQD5FewVu1UyDFc1yztUDrAwT0EypA==} engines: {node: '>=0.4.0'} dev: false @@ -7183,14 +6955,14 @@ packages: engines: {node: '>= 4.0.0'} dependencies: es6-promisify: 5.0.0 - dev: true + dev: false /agent-base@4.3.0: resolution: {integrity: sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==} engines: {node: '>= 4.0.0'} dependencies: es6-promisify: 5.0.0 - dev: true + dev: false /agent-base@6.0.2(supports-color@8.1.1): resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} @@ -7205,7 +6977,7 @@ packages: engines: {node: '>= 4.0.0'} dependencies: humanize-ms: 1.2.1 - dev: true + dev: false /aggregate-error@3.1.0: resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} @@ -7314,11 +7086,6 @@ packages: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} - /ansi-regex@6.0.1: - resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} - engines: {node: '>=12'} - dev: true - /ansi-styles@2.2.1: resolution: {integrity: sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==} engines: {node: '>=0.10.0'} @@ -7339,11 +7106,6 @@ packages: resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} engines: {node: '>=10'} - /ansi-styles@6.2.1: - resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} - engines: {node: '>=12'} - dev: true - /ansi-to-html@0.6.15: resolution: {integrity: sha512-28ijx2aHJGdzbs+O5SNQF65r6rrKYnkuwTYm8lZlChuoJ9P1vVzIpWO20sQTqTPDXYp6NFwk326vApTtLVFXpQ==} engines: {node: '>=8.0.0'} @@ -7356,7 +7118,7 @@ packages: /any-promise@1.3.0: resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} - dev: true + dev: false /anymatch@2.0.0: resolution: {integrity: sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==} @@ -7382,7 +7144,7 @@ packages: /aproba@1.2.0: resolution: {integrity: sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==} - dev: true + dev: false /aproba@2.0.0: resolution: {integrity: sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==} @@ -7430,8 +7192,8 @@ packages: call-bind: 1.0.5 is-array-buffer: 3.0.2 - /array-equal@1.0.2: - resolution: {integrity: sha512-gUHx76KtnhEgB3HOuFYiCm3FIdEs6ocM2asHvNTkfu/Y09qQVrrVVaOKENmS2KkSaGoxgXNqC+ZVtR/n0MOkSA==} + /array-equal@1.0.0: + resolution: {integrity: sha512-H3LU5RLiSsGXPhN+Nipar0iR0IofH+8r89G2y1tBKxQ/agagKyAjhkAFDRBfodP2caPrNKHpAWNIM/c9yeL7uA==} /array-flatten@1.1.1: resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} @@ -7647,10 +7409,10 @@ packages: peerDependencies: eslint: '>= 4.12.1' dependencies: - '@babel/code-frame': 7.23.5 - '@babel/parser': 7.23.5 - '@babel/traverse': 7.23.5(supports-color@8.1.1) - '@babel/types': 7.23.5 + '@babel/code-frame': 7.22.13 + '@babel/parser': 7.23.3 + '@babel/traverse': 7.23.3(supports-color@8.1.1) + '@babel/types': 7.23.3 eslint: 7.32.0 eslint-visitor-keys: 1.3.0 resolve: 1.22.8 @@ -7791,17 +7553,17 @@ packages: resolution: {integrity: sha512-N1ZfNprtf/37x0R05J0QCW/9pCAcuI+bjZIK9tlu0JEkwEST7ssdD++gxHRbD58AiG5QE5OuNYhRoEFsc1wESw==} engines: {node: '>= 12.*'} - /babel-jest@29.7.0(@babel/core@7.23.5): + /babel-jest@29.7.0(@babel/core@7.23.3): resolution: {integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: '@babel/core': ^7.8.0 dependencies: - '@babel/core': 7.23.5(supports-color@8.1.1) + '@babel/core': 7.23.3(supports-color@8.1.1) '@jest/transform': 29.7.0 - '@types/babel__core': 7.20.5 + '@types/babel__core': 7.20.4 babel-plugin-istanbul: 6.1.1 - babel-preset-jest: 29.6.3(@babel/core@7.23.5) + babel-preset-jest: 29.6.3(@babel/core@7.23.3) chalk: 4.1.2 graceful-fs: 4.2.11 slash: 3.0.0 @@ -7809,28 +7571,28 @@ packages: - supports-color dev: true - /babel-loader@8.3.0(@babel/core@7.23.5)(webpack@5.89.0): + /babel-loader@8.3.0(@babel/core@7.23.3)(webpack@5.89.0): resolution: {integrity: sha512-H8SvsMF+m9t15HNLMipppzkC+Y2Yq+v3SonZyU70RBL/h1gxPkH08Ot8pEE9Z4Kd+czyWJClmFS8qzIP9OZ04Q==} engines: {node: '>= 8.9'} peerDependencies: '@babel/core': ^7.0.0 webpack: '>=2' dependencies: - '@babel/core': 7.23.5(supports-color@8.1.1) + '@babel/core': 7.23.3(supports-color@8.1.1) find-cache-dir: 3.3.2 loader-utils: 2.0.4 make-dir: 3.1.0 schema-utils: 2.7.1 webpack: 5.89.0 - /babel-loader@9.1.3(@babel/core@7.23.5): + /babel-loader@9.1.3(@babel/core@7.23.3): resolution: {integrity: sha512-xG3ST4DglodGf8qSwv0MdeWLhrDsw/32QMdTO5T1ZIp9gQur0HkCyFs7Awskr10JKXFXwpAhiCuYX5oGXnRGbw==} engines: {node: '>= 14.15.0'} peerDependencies: '@babel/core': ^7.12.0 webpack: '>=5' dependencies: - '@babel/core': 7.23.5(supports-color@8.1.1) + '@babel/core': 7.23.3(supports-color@8.1.1) find-cache-dir: 4.0.0 schema-utils: 4.2.0 dev: false @@ -7849,22 +7611,22 @@ packages: resolution: {integrity: sha512-+KgjNJ5yMeZzJxYZdLEy9m82m92aL7FLvNJcK6dYJbW06t+UTpFJ2FVSs35zMfURcPnrQELYhLG4VC+kt/4gvw==} dev: true - /babel-plugin-debug-macros@0.2.0(@babel/core@7.23.5): + /babel-plugin-debug-macros@0.2.0(@babel/core@7.23.3): resolution: {integrity: sha512-Wpmw4TbhR3Eq2t3W51eBAQSdKlr+uAyF0GI4GtPfMCD12Y4cIdpKC9l0RjNTH/P9isFypSqqewMPm7//fnZlNA==} engines: {node: '>=4'} peerDependencies: '@babel/core': ^7.0.0-beta.42 dependencies: - '@babel/core': 7.23.5(supports-color@8.1.1) + '@babel/core': 7.23.3(supports-color@8.1.1) semver: 5.7.2 - /babel-plugin-debug-macros@0.3.4(@babel/core@7.23.5): + /babel-plugin-debug-macros@0.3.4(@babel/core@7.23.3): resolution: {integrity: sha512-wfel/vb3pXfwIDZUrkoDrn5FHmlWI96PCJ3UCDv2a86poJ3EQrnArNW5KfHSVJ9IOgxHbo748cQt7sDU+0KCEw==} engines: {node: '>=6'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.5(supports-color@8.1.1) + '@babel/core': 7.23.3(supports-color@8.1.1) semver: 5.7.2 /babel-plugin-ember-data-packages-polyfill@0.1.2: @@ -7897,7 +7659,7 @@ packages: resolution: {integrity: sha512-jDLlxI8QnfKd7PtieH6pl4tZJzymzfCDCPGdTq/grgbiYAikwDPp/oL0IlFJn0HQjLpcLkyYhPKkUVneRESw5w==} engines: {node: '>=8'} dependencies: - '@babel/types': 7.23.5 + '@babel/types': 7.23.3 lodash: 4.17.21 /babel-plugin-htmlbars-inline-precompile@5.3.1: @@ -7928,8 +7690,8 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@babel/template': 7.22.15 - '@babel/types': 7.23.5 - '@types/babel__core': 7.20.5 + '@babel/types': 7.23.3 + '@types/babel__core': 7.20.4 '@types/babel__traverse': 7.20.4 dev: true @@ -7964,36 +7726,36 @@ packages: resolve: 1.22.8 dev: true - /babel-plugin-polyfill-corejs2@0.4.6(@babel/core@7.23.5): + /babel-plugin-polyfill-corejs2@0.4.6(@babel/core@7.23.3): resolution: {integrity: sha512-jhHiWVZIlnPbEUKSSNb9YoWcQGdlTLq7z1GHL4AjFxaoOUMuuEVJ+Y4pAaQUGOGk93YsVCKPbqbfw3m0SM6H8Q==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: - '@babel/compat-data': 7.23.5 - '@babel/core': 7.23.5(supports-color@8.1.1) - '@babel/helper-define-polyfill-provider': 0.4.3(@babel/core@7.23.5) + '@babel/compat-data': 7.23.3 + '@babel/core': 7.23.3(supports-color@8.1.1) + '@babel/helper-define-polyfill-provider': 0.4.3(@babel/core@7.23.3) semver: 6.3.1 transitivePeerDependencies: - supports-color - /babel-plugin-polyfill-corejs3@0.8.6(@babel/core@7.23.5): + /babel-plugin-polyfill-corejs3@0.8.6(@babel/core@7.23.3): resolution: {integrity: sha512-leDIc4l4tUgU7str5BWLS2h8q2N4Nf6lGZP6UrNDxdtfF2g69eJ5L0H7S8A5Ln/arfFAfHor5InAdZuIOwZdgQ==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: - '@babel/core': 7.23.5(supports-color@8.1.1) - '@babel/helper-define-polyfill-provider': 0.4.3(@babel/core@7.23.5) - core-js-compat: 3.34.0 + '@babel/core': 7.23.3(supports-color@8.1.1) + '@babel/helper-define-polyfill-provider': 0.4.3(@babel/core@7.23.3) + core-js-compat: 3.33.2 transitivePeerDependencies: - supports-color - /babel-plugin-polyfill-regenerator@0.5.3(@babel/core@7.23.5): + /babel-plugin-polyfill-regenerator@0.5.3(@babel/core@7.23.3): resolution: {integrity: sha512-8sHeDOmXC8csczMrYEOf0UTNa4yE2SxV5JGeT/LP1n0OYVDUUFPxG9vdk2AlDlIit4t+Kf0xCtpgXPBwnn/9pw==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: - '@babel/core': 7.23.5(supports-color@8.1.1) - '@babel/helper-define-polyfill-provider': 0.4.3(@babel/core@7.23.5) + '@babel/core': 7.23.3(supports-color@8.1.1) + '@babel/helper-define-polyfill-provider': 0.4.3(@babel/core@7.23.3) transitivePeerDependencies: - supports-color @@ -8212,24 +7974,24 @@ packages: regenerator-runtime: 0.10.5 dev: true - /babel-preset-current-node-syntax@1.0.1(@babel/core@7.23.5): + /babel-preset-current-node-syntax@1.0.1(@babel/core@7.23.3): resolution: {integrity: sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.5(supports-color@8.1.1) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.5) - '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.23.5) - '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.23.5) - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.23.5) - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.5) - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.5) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.5) - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.5) - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.5) - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.5) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.5) - '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.23.5) + '@babel/core': 7.23.3(supports-color@8.1.1) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.3) + '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.23.3) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.23.3) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.23.3) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.3) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.3) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.3) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.3) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.3) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.3) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.3) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.23.3) dev: true /babel-preset-env@1.7.0(supports-color@8.1.1): @@ -8262,21 +8024,21 @@ packages: babel-plugin-transform-es2015-unicode-regex: 6.24.1 babel-plugin-transform-exponentiation-operator: 6.24.1(supports-color@8.1.1) babel-plugin-transform-regenerator: 6.26.0 - browserslist: 4.22.2 + browserslist: 4.22.1 invariant: 2.2.4 semver: 5.7.2 transitivePeerDependencies: - supports-color - /babel-preset-jest@29.6.3(@babel/core@7.23.5): + /babel-preset-jest@29.6.3(@babel/core@7.23.3): resolution: {integrity: sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.5(supports-color@8.1.1) + '@babel/core': 7.23.3(supports-color@8.1.1) babel-plugin-jest-hoist: 29.6.3 - babel-preset-current-node-syntax: 1.0.1(@babel/core@7.23.5) + babel-preset-current-node-syntax: 1.0.1(@babel/core@7.23.3) dev: true /babel-register@6.26.0: @@ -8346,8 +8108,8 @@ packages: dependencies: underscore: 1.13.6 - /backburner.js@2.8.0: - resolution: {integrity: sha512-zYXY0KvpD7/CWeOLF576mV8S+bQsaIoj/GNLXXB+Eb8SJcQy5lqSjkRrZ0MZhdKUs9QoqmGNIEIe3NQfGiiscQ==} + /backburner.js@2.7.0: + resolution: {integrity: sha512-eBZC6r7wT+YYAOKeru8IqgzOimz3VgyspXiZ1k6MI8i10zUdU8cnNII56rlnItQ89cHgQO3C/nPuFW3V9di+zg==} dev: true /balanced-match@1.0.2: @@ -8371,7 +8133,7 @@ packages: dependencies: cache-base: 1.0.1 class-utils: 0.3.6 - component-emitter: 1.3.1 + component-emitter: 1.3.0 define-property: 1.0.0 isobject: 3.0.1 mixin-deep: 1.3.2 @@ -8385,7 +8147,7 @@ packages: /before-after-hook@2.2.3: resolution: {integrity: sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==} - dev: true + dev: false /big.js@5.2.2: resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==} @@ -8528,7 +8290,7 @@ packages: broccoli-asset-rewrite: 2.0.0 broccoli-filter: 1.3.0 broccoli-persistent-filter: 1.4.6 - json-stable-stringify: 1.1.0 + json-stable-stringify: 1.0.2 minimatch: 3.1.2 rsvp: 3.6.2 transitivePeerDependencies: @@ -8554,7 +8316,7 @@ packages: clone: 2.1.2 hash-for-dep: 1.5.1 heimdalljs-logger: 0.1.10 - json-stable-stringify: 1.1.0 + json-stable-stringify: 1.0.2 rsvp: 4.8.5 workerpool: 2.3.4 transitivePeerDependencies: @@ -8565,7 +8327,7 @@ packages: resolution: {integrity: sha512-6IXBgfRt7HZ61g67ssBc6lBb3Smw3DPZ9dEYirgtvXWpRZ2A9M22nxy6opEwJDgDJzlu/bB7ToppW33OFkA1gA==} engines: {node: '>= 6'} dependencies: - '@babel/core': 7.23.5(supports-color@8.1.1) + '@babel/core': 7.23.3(supports-color@8.1.1) '@babel/polyfill': 7.12.1 broccoli-funnel: 2.0.2 broccoli-merge-trees: 3.0.2 @@ -8574,25 +8336,25 @@ packages: hash-for-dep: 1.5.1 heimdalljs: 0.2.6 heimdalljs-logger: 0.1.10 - json-stable-stringify: 1.1.0 + json-stable-stringify: 1.0.2 rsvp: 4.8.5 workerpool: 3.1.2 transitivePeerDependencies: - supports-color - /broccoli-babel-transpiler@8.0.0(@babel/core@7.23.5): + /broccoli-babel-transpiler@8.0.0(@babel/core@7.23.3): resolution: {integrity: sha512-3HEp3flvasUKJGWERcrPgM1SWvHJ0O/fmbEtY9L4kDyMSnqjY6hTYvNvgWCIgbwXAYAUlZP0vjAQsmyLNGLwFw==} engines: {node: 16.* || >= 18} peerDependencies: '@babel/core': ^7.17.9 dependencies: - '@babel/core': 7.23.5(supports-color@8.1.1) + '@babel/core': 7.23.3(supports-color@8.1.1) 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.1.0 + json-stable-stringify: 1.0.2 rsvp: 4.8.5 workerpool: 6.5.1 transitivePeerDependencies: @@ -8644,7 +8406,7 @@ packages: broccoli-persistent-filter: 1.4.6 clean-css-promise: 0.1.1 inline-source-map-comment: 1.0.5 - json-stable-stringify: 1.1.0 + json-stable-stringify: 1.0.2 transitivePeerDependencies: - supports-color @@ -8769,7 +8531,7 @@ packages: resolution: {integrity: sha512-C8Lnp9TVsSSiZMGEF16C0dCiNg2oJqUKwuZ1K4kVC6qRPG/2Cj/rtB5kRCC9qEbwqhX71bDbfHROx0L3J7zXQg==} engines: {node: ^4.5 || 6.* || >= 7.*} dependencies: - array-equal: 1.0.2 + array-equal: 1.0.0 blank-object: 1.0.2 broccoli-plugin: 1.3.1 debug: 2.6.9(supports-color@8.1.1) @@ -8790,7 +8552,7 @@ packages: resolution: {integrity: sha512-/vDTqtv7ipjEZQOVqO4vGDVAOZyuYzQ/EgGoyewfOgh1M7IQAToBKZI0oAQPgMBeFPPlIbfMuAngk+ohPBuaHQ==} engines: {node: ^4.5 || 6.* || >= 7.*} dependencies: - array-equal: 1.0.2 + array-equal: 1.0.0 blank-object: 1.0.2 broccoli-plugin: 1.3.1 debug: 2.6.9(supports-color@8.1.1) @@ -8810,7 +8572,7 @@ packages: resolution: {integrity: sha512-ng4eIhPYiXqMw6SyGoxPHR3YAwEd2lr9FgBI1CyTbspl4txZovOsmzFkMkGAlu88xyvYXJqHiM2crfLa65T1BQ==} engines: {node: 10.* || >= 12.*} dependencies: - array-equal: 1.0.2 + array-equal: 1.0.0 broccoli-plugin: 4.0.7 debug: 4.3.4(supports-color@8.1.1) fs-tree-diff: 2.0.1 @@ -8841,7 +8603,7 @@ packages: broccoli-concat: 3.7.5 broccoli-persistent-filter: 2.3.1 eslint: 5.16.0 - json-stable-stringify: 1.1.0 + json-stable-stringify: 1.0.2 lodash.defaultsdeep: 4.6.1 md5-hex: 2.0.0 transitivePeerDependencies: @@ -9137,7 +8899,7 @@ packages: lodash.defaultsdeep: 4.6.1 matcher-collection: 2.0.1 symlink-or-copy: 1.3.1 - terser: 5.25.0 + terser: 5.24.0 walk-sync: 2.2.0 workerpool: 6.5.1 transitivePeerDependencies: @@ -9207,7 +8969,7 @@ packages: resolution: {integrity: sha512-sWi3b3fTUSVPDsz5KsQ5eCQNVAtLgkIE/HYFkEZXR/07clqmd4E/gFiuwSaqa9b+QTXc1Uemfb7TVWbEIURWDg==} engines: {node: 8.* || >= 10.*} dependencies: - '@types/chai': 4.3.11 + '@types/chai': 4.3.10 '@types/chai-as-promised': 7.1.8 '@types/express': 4.17.21 ansi-html: 0.0.7 @@ -9237,15 +8999,15 @@ packages: /browser-process-hrtime@1.0.0: resolution: {integrity: sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==} - /browserslist@4.22.2: - resolution: {integrity: sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==} + /browserslist@4.22.1: + resolution: {integrity: sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true dependencies: - caniuse-lite: 1.0.30001566 - electron-to-chromium: 1.4.606 - node-releases: 2.0.14 - update-browserslist-db: 1.0.13(browserslist@4.22.2) + caniuse-lite: 1.0.30001562 + electron-to-chromium: 1.4.582 + node-releases: 2.0.13 + update-browserslist-db: 1.0.13(browserslist@4.22.1) /bser@2.1.1: resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==} @@ -9304,14 +9066,14 @@ packages: ssri: 6.0.2 unique-filename: 1.1.1 y18n: 4.0.3 - dev: true + dev: false /cache-base@1.0.1: resolution: {integrity: sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==} engines: {node: '>=0.10.0'} dependencies: collection-visit: 1.0.0 - component-emitter: 1.3.1 + component-emitter: 1.3.0 get-value: 2.0.6 has-value: 1.0.0 isobject: 3.0.1 @@ -9343,13 +9105,12 @@ packages: lowercase-keys: 2.0.0 normalize-url: 4.5.1 responselike: 1.0.2 - dev: true /calculate-cache-key-for-tree@2.0.0: resolution: {integrity: sha512-Quw8a6y8CPmRd6eU+mwypktYCwUcf8yVFIRbNZ6tPQEckX9yd+EBVEPC/GSZZrMWH9e7Vz4pT7XhpmyApRByLQ==} engines: {node: 6.* || 8.* || >= 10.*} dependencies: - json-stable-stringify: 1.1.0 + json-stable-stringify: 1.0.2 /call-bind@1.0.5: resolution: {integrity: sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==} @@ -9375,7 +9136,7 @@ packages: /camelcase@4.1.0: resolution: {integrity: sha512-FxAv7HpHrXbh3aPo4o2qxHay2lkLY3x5Mw3KeE4KQE8ysVfziWeRZDwcjauvwBSGEC/nXUPzZy8zeh4HokqOnw==} engines: {node: '>=4'} - dev: true + dev: false /camelcase@5.3.1: resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} @@ -9396,14 +9157,14 @@ packages: /caniuse-api@3.0.0: resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==} dependencies: - browserslist: 4.22.2 - caniuse-lite: 1.0.30001566 + browserslist: 4.22.1 + caniuse-lite: 1.0.30001562 lodash.memoize: 4.1.2 lodash.uniq: 4.5.0 dev: true - /caniuse-lite@1.0.30001566: - resolution: {integrity: sha512-ggIhCsTxmITBAMmK8yZjEhCO5/47jKXPu6Dha/wuCS4JePVL+3uiDEBuhu2aIoT+bqTOR8L76Ip1ARL9xYsEJA==} + /caniuse-lite@1.0.30001562: + resolution: {integrity: sha512-kfte3Hym//51EdX4239i+Rmp20EsLIYGdPkERegTgU19hQWCRhsRFGKHTliUlsry53tv17K7n077Kqa0WJU4ng==} /capture-exit@2.0.0: resolution: {integrity: sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g==} @@ -9467,7 +9228,7 @@ packages: /chownr@1.1.4: resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} - dev: true + dev: false /chownr@2.0.0: resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} @@ -9515,8 +9276,8 @@ packages: commander: 2.8.1 source-map: 0.4.4 - /clean-css@5.3.3: - resolution: {integrity: sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==} + /clean-css@5.3.2: + resolution: {integrity: sha512-JVJbM+f3d3Q704rF4bqQ5UUyTtuJ0JRKNbTKVEeujCCBoMdkEi+V+e8oktO9qGQNSvHrFTM6JZRXrUvGR1czww==} engines: {node: '>= 10.0'} dependencies: source-map: 0.6.1 @@ -9553,10 +9314,10 @@ packages: parse5: 5.1.1 parse5-htmlparser2-tree-adapter: 6.0.1 yargs: 16.2.0 - dev: true + dev: false - /cli-spinners@2.9.2: - resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==} + /cli-spinners@2.9.1: + resolution: {integrity: sha512-jHgecW0pxkonBJdrKsqxgRX9AcG+u/5k0Q7WPDfi8AogLAdwxEkyYYNWwZ5GvVFoFx2uiY1eNcSK00fh+1+FyQ==} engines: {node: '>=6'} /cli-table3@0.6.3: @@ -9593,7 +9354,7 @@ packages: string-width: 2.1.1 strip-ansi: 4.0.0 wrap-ansi: 2.1.0 - dev: true + dev: false /cliui@7.0.4: resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} @@ -9620,7 +9381,6 @@ packages: resolution: {integrity: sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==} dependencies: mimic-response: 1.0.1 - dev: true /clone@1.0.4: resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} @@ -9650,7 +9410,7 @@ packages: q: 1.5.1 dev: true - /code-equality-assertions@0.9.0(@types/jest@29.5.11)(qunit@2.20.0): + /code-equality-assertions@0.9.0(@types/jest@29.5.8)(qunit@2.20.0): resolution: {integrity: sha512-8t2+ZiCU9TIr/78TyVSEFii9khSic293zVCfndsG7bOymAsdDFmN1GSwjRdyQxz7+tHE+biUvt08Qlx4Xvfuxw==} peerDependencies: '@types/jest': '2' @@ -9664,8 +9424,8 @@ packages: qunit: optional: true dependencies: - '@babel/core': 7.23.5(supports-color@8.1.1) - '@types/jest': 29.5.11 + '@babel/core': 7.23.3(supports-color@8.1.1) + '@types/jest': 29.5.8 diff: 5.1.0 prettier: 2.8.8 qunit: 2.20.0 @@ -9675,7 +9435,7 @@ packages: /code-point-at@1.1.0: resolution: {integrity: sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==} engines: {node: '>=0.10.0'} - dev: true + dev: false /collect-v8-coverage@1.0.2: resolution: {integrity: sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==} @@ -9772,8 +9532,8 @@ packages: /commondir@1.0.1: resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} - /component-emitter@1.3.1: - resolution: {integrity: sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==} + /component-emitter@1.3.0: + resolution: {integrity: sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==} /compressible@2.0.18: resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==} @@ -9806,7 +9566,7 @@ packages: inherits: 2.0.4 readable-stream: 2.3.8 typedarray: 0.0.6 - dev: true + dev: false /concurrently@7.6.0: resolution: {integrity: sha512-BKtRgvcJGeZ4XttiDiNcFiRlxoAeZOseqUvyYRUp/Vtd+9p1ULmeoSqGsDA+2ivdeDFpqrJvGvmI+StKfKl5hw==} @@ -9871,7 +9631,7 @@ packages: dependencies: chalk: 2.4.2 inquirer: 6.5.2 - json-stable-stringify: 1.1.0 + json-stable-stringify: 1.0.2 ora: 3.4.0 through2: 3.0.2 @@ -10089,7 +9849,7 @@ packages: mkdirp: 0.5.6 rimraf: 2.7.1 run-queue: 1.0.3 - dev: true + dev: false /copy-dereference@1.0.0: resolution: {integrity: sha512-40TSLuhhbiKeszZhK9LfNdazC67Ue4kq/gGwN5sdxEUWPXTIMmKmGmgD9mPfNKVAeecEW+NfEIpBaZoACCQLLw==} @@ -10099,10 +9859,10 @@ packages: resolution: {integrity: sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==} engines: {node: '>=0.10.0'} - /core-js-compat@3.34.0: - resolution: {integrity: sha512-4ZIyeNbW/Cn1wkMMDy+mvrRUxrwFNjKwbhCfQpDd+eLgYipDqp8oGFGtLmhh18EDPKA0g3VUBYOxQGGwvWLVpA==} + /core-js-compat@3.33.2: + resolution: {integrity: sha512-axfo+wxFVxnqf8RvxTzoAlzW4gRoacrHeoFlc9n0x50+7BEyZL/Rt3hicaED1/CEd7I6tPCPVUYcJwCMO5XUYw==} dependencies: - browserslist: 4.22.2 + browserslist: 4.22.1 /core-js@2.6.12: resolution: {integrity: sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==} @@ -10205,13 +9965,13 @@ packages: peerDependencies: webpack: ^4.27.0 || ^5.0.0 dependencies: - icss-utils: 5.1.0(postcss@8.4.32) + icss-utils: 5.1.0(postcss@8.4.31) loader-utils: 2.0.4 - postcss: 8.4.32 - postcss-modules-extract-imports: 3.0.0(postcss@8.4.32) - postcss-modules-local-by-default: 4.0.3(postcss@8.4.32) - postcss-modules-scope: 3.0.0(postcss@8.4.32) - postcss-modules-values: 4.0.0(postcss@8.4.32) + postcss: 8.4.31 + postcss-modules-extract-imports: 3.0.0(postcss@8.4.31) + postcss-modules-local-by-default: 4.0.3(postcss@8.4.31) + postcss-modules-scope: 3.0.0(postcss@8.4.31) + postcss-modules-values: 4.0.0(postcss@8.4.31) postcss-value-parser: 4.2.0 schema-utils: 3.3.0 semver: 7.5.4 @@ -10307,7 +10067,7 @@ packages: /cyclist@1.0.2: resolution: {integrity: sha512-0sVXIohTfLqVIW3kb/0n6IiWF3Ifj5nm2XaSrLq2DI6fKIGa2fYAZdk917rUneaeLVpYfFcyXE2ft0fe3remsA==} - dev: true + dev: false /dag-map@2.0.2: resolution: {integrity: sha512-xnsprIzYuDeiyu5zSKwilV/ajRHxnoMlAhEREfyfTgTSViMVY2fGP1ZcHJbtwup26oCkofySU/m6oKJ3HrkW7w==} @@ -10333,7 +10093,7 @@ packages: resolution: {integrity: sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==} engines: {node: '>=0.11'} dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.2 dev: true /date-time@2.1.0: @@ -10363,7 +10123,7 @@ packages: optional: true dependencies: ms: 2.0.0 - dev: true + dev: false /debug@3.2.7: resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} @@ -10398,7 +10158,6 @@ packages: /decamelize@1.2.0: resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} engines: {node: '>=0.10.0'} - dev: true /decamelize@5.0.1: resolution: {integrity: sha512-VfxadyCECXgQlkoEAjeghAr5gY3Hf+IKjKb+X8tGVDtveCjN+USwprd2q3QXBR9T1+x2DG0XZF5/w+7HAtSaXA==} @@ -10417,7 +10176,6 @@ packages: engines: {node: '>=4'} dependencies: mimic-response: 1.0.1 - dev: true /dedent@1.5.1: resolution: {integrity: sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg==} @@ -10431,7 +10189,6 @@ packages: /deep-extend@0.6.0: resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} engines: {node: '>=4.0.0'} - dev: true /deep-is@0.1.4: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} @@ -10448,7 +10205,6 @@ packages: /defer-to-connect@1.1.3: resolution: {integrity: sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==} - dev: true /define-data-property@1.1.1: resolution: {integrity: sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==} @@ -10516,7 +10272,7 @@ packages: /deprecation@2.3.1: resolution: {integrity: sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==} - dev: true + dev: false /dequal@2.0.3: resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} @@ -10597,7 +10353,6 @@ packages: /domexception@2.0.1: resolution: {integrity: sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==} engines: {node: '>=8'} - deprecated: Use your platform's native DOMException instead dependencies: webidl-conversions: 5.0.0 dev: false @@ -10605,7 +10360,6 @@ packages: /domexception@4.0.0: resolution: {integrity: sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==} engines: {node: '>=12'} - deprecated: Use your platform's native DOMException instead dependencies: webidl-conversions: 7.0.0 @@ -10631,7 +10385,6 @@ packages: /duplexer3@0.1.5: resolution: {integrity: sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==} - dev: true /duplexify@3.7.1: resolution: {integrity: sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==} @@ -10640,11 +10393,7 @@ packages: inherits: 2.0.4 readable-stream: 2.3.8 stream-shift: 1.0.1 - dev: true - - /eastasianwidth@0.2.0: - resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} - dev: true + dev: false /editions@1.3.4: resolution: {integrity: sha512-gzao+mxnYDzIysXKMQi/+M1mjy/rjestjg6OPoYTtI+3Izp23oiGZitsl9lPDPiTGXbcSIk1iJWhliSaglxnUg==} @@ -10660,8 +10409,8 @@ packages: /ee-first@1.1.1: resolution: {integrity: sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=} - /electron-to-chromium@1.4.606: - resolution: {integrity: sha512-Zdv0XuhfyWZUsQ5Uq59d43ZmZOdoGZNWjeN4WCxxlQaP8crAWdnWcTxfHKcaJl6PW2SWpHx6DsxSx7v6KcGCuw==} + /electron-to-chromium@1.4.582: + resolution: {integrity: sha512-89o0MGoocwYbzqUUjc+VNpeOFSOK9nIdC5wY4N+PVUarUK0MtjyTjks75AZS2bW4Kl8MdewdFsWaH0jLy+JNoA==} /ember-asset-loader@0.6.1: resolution: {integrity: sha512-e2zafQJBMLhzl69caTG/+mQMH20uMHYrm7KcmdbmnX0oY2dZ48bhm0Wh1SPLXS/6G2T9NsNMWX6J2pVSnI+xyA==} @@ -10682,13 +10431,13 @@ packages: resolution: {integrity: sha512-3bCRi/pXp4QslmuCXGlSz9xwR7DF5oDx3zZO5OXKzNZihtkqAM1xvGuRIdQSl46pvbAXOkp8Odl5fOen1i0dRw==} engines: {node: 12.* || 14.* || >= 16} dependencies: - '@babel/core': 7.23.5(supports-color@8.1.1) - '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.23.5) - '@babel/plugin-proposal-decorators': 7.23.5(@babel/core@7.23.5) - '@babel/preset-env': 7.23.5(@babel/core@7.23.5) + '@babel/core': 7.23.3(supports-color@8.1.1) + '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.23.3) + '@babel/plugin-proposal-decorators': 7.23.3(@babel/core@7.23.3) + '@babel/preset-env': 7.23.3(@babel/core@7.23.3) '@embroider/macros': 1.13.3(@glint/template@1.2.1) '@embroider/shared-internals': 2.5.1 - babel-loader: 8.3.0(@babel/core@7.23.5)(webpack@5.89.0) + babel-loader: 8.3.0(@babel/core@7.23.3)(webpack@5.89.0) babel-plugin-ember-modules-api-polyfill: 3.5.0 babel-plugin-htmlbars-inline-precompile: 5.3.1 babel-plugin-syntax-dynamic-import: 6.18.0 @@ -10718,19 +10467,17 @@ packages: - webpack dev: true - /ember-auto-import@2.7.0: - resolution: {integrity: sha512-cBEBB6IRRmlCVfyaRmDCfLrywm2HibTosJzIKv4BWF1p2ZokUhXBJjMRwuaG3tbLMV8rmJdLWnSKm8CodsdmQA==} + /ember-auto-import@2.6.3: + resolution: {integrity: sha512-uLhrRDJYWCRvQ4JQ1e64XlSrqAKSd6PXaJ9ZsZI6Tlms9T4DtQFxNXasqji2ZRJBVrxEoLCRYX3RTldsQ0vNGQ==} engines: {node: 12.* || 14.* || >= 16} dependencies: - '@babel/core': 7.23.5(supports-color@8.1.1) - '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.23.5) - '@babel/plugin-proposal-decorators': 7.23.5(@babel/core@7.23.5) - '@babel/plugin-proposal-private-methods': 7.18.6(@babel/core@7.23.5) - '@babel/plugin-transform-class-static-block': 7.23.4(@babel/core@7.23.5) - '@babel/preset-env': 7.23.5(@babel/core@7.23.5) + '@babel/core': 7.23.3(supports-color@8.1.1) + '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.23.3) + '@babel/plugin-proposal-decorators': 7.23.3(@babel/core@7.23.3) + '@babel/preset-env': 7.23.3(@babel/core@7.23.3) '@embroider/macros': 1.13.3(@glint/template@1.2.1) '@embroider/shared-internals': 2.5.1 - babel-loader: 8.3.0(@babel/core@7.23.5)(webpack@5.89.0) + babel-loader: 8.3.0(@babel/core@7.23.3)(webpack@5.89.0) babel-plugin-ember-modules-api-polyfill: 3.5.0 babel-plugin-ember-template-compilation: 2.2.1 babel-plugin-htmlbars-inline-precompile: 5.3.1 @@ -10748,7 +10495,6 @@ packages: js-string-escape: 1.0.1 lodash: 4.17.21 mini-css-extract-plugin: 2.7.6(webpack@5.89.0) - minimatch: 3.1.2 parse5: 6.0.1 resolve: 1.22.8 resolve-package-path: 4.0.3 @@ -10761,19 +10507,17 @@ packages: - supports-color - webpack - /ember-auto-import@2.7.0(@glint/template@1.2.1)(webpack@5.89.0): - resolution: {integrity: sha512-cBEBB6IRRmlCVfyaRmDCfLrywm2HibTosJzIKv4BWF1p2ZokUhXBJjMRwuaG3tbLMV8rmJdLWnSKm8CodsdmQA==} + /ember-auto-import@2.6.3(@glint/template@1.2.1)(webpack@5.89.0): + resolution: {integrity: sha512-uLhrRDJYWCRvQ4JQ1e64XlSrqAKSd6PXaJ9ZsZI6Tlms9T4DtQFxNXasqji2ZRJBVrxEoLCRYX3RTldsQ0vNGQ==} engines: {node: 12.* || 14.* || >= 16} dependencies: - '@babel/core': 7.23.5(supports-color@8.1.1) - '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.23.5) - '@babel/plugin-proposal-decorators': 7.23.5(@babel/core@7.23.5) - '@babel/plugin-proposal-private-methods': 7.18.6(@babel/core@7.23.5) - '@babel/plugin-transform-class-static-block': 7.23.4(@babel/core@7.23.5) - '@babel/preset-env': 7.23.5(@babel/core@7.23.5) + '@babel/core': 7.23.3(supports-color@8.1.1) + '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.23.3) + '@babel/plugin-proposal-decorators': 7.23.3(@babel/core@7.23.3) + '@babel/preset-env': 7.23.3(@babel/core@7.23.3) '@embroider/macros': 1.13.3(@glint/template@1.2.1) '@embroider/shared-internals': 2.5.1 - babel-loader: 8.3.0(@babel/core@7.23.5)(webpack@5.89.0) + babel-loader: 8.3.0(@babel/core@7.23.3)(webpack@5.89.0) babel-plugin-ember-modules-api-polyfill: 3.5.0 babel-plugin-ember-template-compilation: 2.2.1 babel-plugin-htmlbars-inline-precompile: 5.3.1 @@ -10791,7 +10535,6 @@ packages: js-string-escape: 1.0.1 lodash: 4.17.21 mini-css-extract-plugin: 2.7.6(webpack@5.89.0) - minimatch: 3.1.2 parse5: 6.0.1 resolve: 1.22.8 resolve-package-path: 4.0.3 @@ -10804,44 +10547,44 @@ packages: - supports-color - webpack - /ember-bootstrap@5.1.1(@babel/core@7.23.5)(ember-source@3.28.12): + /ember-bootstrap@5.1.1(@babel/core@7.23.3)(ember-source@3.28.12): resolution: {integrity: sha512-ETb+DBYvVC+cAeABcfWUCHMHdO7S8gR8yZSvGmhHcgQo7jbKOVDDCARA7C12lmn3RojMwlfJMJu0LV3CXRwCHg==} engines: {node: 12.* || 14.* || >= 16} peerDependencies: ember-source: '>=3.24' dependencies: - '@ember/render-modifiers': 2.1.0(@babel/core@7.23.5)(ember-source@3.28.12) + '@ember/render-modifiers': 2.1.0(@babel/core@7.23.3)(ember-source@3.28.12) '@embroider/macros': 1.13.3(@glint/template@1.2.1) '@embroider/util': 1.12.1(ember-source@3.28.12) - '@glimmer/component': 1.1.2(@babel/core@7.23.5) + '@glimmer/component': 1.1.2(@babel/core@7.23.3) '@glimmer/tracking': 1.1.2 broccoli-debug: 0.6.5 broccoli-funnel: 3.0.8 broccoli-merge-trees: 4.2.0 chalk: 4.1.2 - ember-auto-import: 2.7.0 + ember-auto-import: 2.6.3 ember-cli-babel: 7.26.11 ember-cli-build-config-editor: 0.5.1 ember-cli-htmlbars: 6.3.0 ember-cli-version-checker: 5.1.2 - ember-concurrency: 2.3.7(@babel/core@7.23.5) + ember-concurrency: 2.3.7(@babel/core@7.23.3) ember-decorators: 6.1.1 ember-element-helper: 0.6.1(ember-source@3.28.12) ember-focus-trap: 1.1.0(ember-source@3.28.12) ember-in-element-polyfill: 1.0.1 ember-named-blocks-polyfill: 0.2.5 ember-on-helper: 0.1.0 - ember-popper-modifier: 2.0.1(@babel/core@7.23.5) - ember-ref-bucket: 4.1.0(@babel/core@7.23.5) + ember-popper-modifier: 2.0.1(@babel/core@7.23.3) + ember-ref-bucket: 4.1.0(@babel/core@7.23.3) ember-render-helpers: 0.2.0 - ember-source: 3.28.12(@babel/core@7.23.5) - ember-style-modifier: 0.8.0(@babel/core@7.23.5) + ember-source: 3.28.12(@babel/core@7.23.3) + ember-style-modifier: 0.8.0(@babel/core@7.23.3) findup-sync: 5.0.0 fs-extra: 10.1.0 resolve: 1.22.8 rsvp: 4.8.5 silent-error: 1.1.1 - tracked-toolbox: 1.3.0(@babel/core@7.23.5) + tracked-toolbox: 1.3.0(@babel/core@7.23.3) transitivePeerDependencies: - '@babel/core' - '@glint/environment-ember-loose' @@ -10850,25 +10593,25 @@ packages: - webpack dev: true - /ember-cache-primitive-polyfill@1.0.1(@babel/core@7.23.5): + /ember-cache-primitive-polyfill@1.0.1(@babel/core@7.23.3): resolution: {integrity: sha512-hSPcvIKarA8wad2/b6jDd/eU+OtKmi6uP+iYQbzi5TQpjsqV6b4QdRqrLk7ClSRRKBAtdTuutx+m+X+WlEd2lw==} engines: {node: 10.* || >= 12} dependencies: ember-cli-babel: 7.26.11 ember-cli-version-checker: 5.1.2 - ember-compatibility-helpers: 1.2.7(@babel/core@7.23.5) + ember-compatibility-helpers: 1.2.7(@babel/core@7.23.3) silent-error: 1.1.1 transitivePeerDependencies: - '@babel/core' - supports-color dev: true - /ember-cached-decorator-polyfill@0.1.4(@babel/core@7.23.5): + /ember-cached-decorator-polyfill@0.1.4(@babel/core@7.23.3): resolution: {integrity: sha512-JOK7kBCWsTVCzmCefK4nr9BACDJk0owt9oIUaVt6Q0UtQ4XeAHmoK5kQ/YtDcxQF1ZevHQFdGhsTR3JLaHNJgA==} engines: {node: 10.* || >= 12} dependencies: '@glimmer/tracking': 1.1.2 - ember-cache-primitive-polyfill: 1.0.1(@babel/core@7.23.5) + ember-cache-primitive-polyfill: 1.0.1(@babel/core@7.23.3) ember-cli-babel: 7.26.11 ember-cli-babel-plugin-helpers: 1.1.1 transitivePeerDependencies: @@ -10876,7 +10619,7 @@ packages: - supports-color dev: true - /ember-cached-decorator-polyfill@1.0.2(@babel/core@7.23.5)(ember-source@3.28.12): + /ember-cached-decorator-polyfill@1.0.2(@babel/core@7.23.3)(ember-source@3.28.12): resolution: {integrity: sha512-hUX6OYTKltAPAu8vsVZK02BfMTV0OUXrPqvRahYPhgS7D0I6joLjlskd7mhqJMcaXLywqceIy8/s+x8bxF8bpQ==} engines: {node: 14.* || >= 16} peerDependencies: @@ -10885,17 +10628,17 @@ packages: '@embroider/macros': 1.13.3(@glint/template@1.2.1) '@glimmer/tracking': 1.1.2 babel-import-util: 1.4.1 - ember-cache-primitive-polyfill: 1.0.1(@babel/core@7.23.5) + ember-cache-primitive-polyfill: 1.0.1(@babel/core@7.23.3) ember-cli-babel: 7.26.11 ember-cli-babel-plugin-helpers: 1.1.1 - ember-source: 3.28.12(@babel/core@7.23.5) + ember-source: 3.28.12(@babel/core@7.23.3) transitivePeerDependencies: - '@babel/core' - '@glint/template' - supports-color dev: true - /ember-cached-decorator-polyfill@1.0.2(@babel/core@7.23.5)(ember-source@5.1.2): + /ember-cached-decorator-polyfill@1.0.2(@babel/core@7.23.3)(ember-source@5.1.2): resolution: {integrity: sha512-hUX6OYTKltAPAu8vsVZK02BfMTV0OUXrPqvRahYPhgS7D0I6joLjlskd7mhqJMcaXLywqceIy8/s+x8bxF8bpQ==} engines: {node: 14.* || >= 16} peerDependencies: @@ -10904,10 +10647,10 @@ packages: '@embroider/macros': 1.13.3(@glint/template@1.2.1) '@glimmer/tracking': 1.1.2 babel-import-util: 1.4.1 - ember-cache-primitive-polyfill: 1.0.1(@babel/core@7.23.5) + ember-cache-primitive-polyfill: 1.0.1(@babel/core@7.23.3) ember-cli-babel: 7.26.11 ember-cli-babel-plugin-helpers: 1.1.1 - ember-source: 5.1.2(@babel/core@7.23.5)(@glimmer/component@1.1.2) + ember-source: 5.1.2(@babel/core@7.23.3)(@glimmer/component@1.1.2) transitivePeerDependencies: - '@babel/core' - '@glint/template' @@ -10931,7 +10674,7 @@ packages: ember-source: ^3.28.0 || >= 4.0.0 dependencies: ember-cli-babel: 7.26.11 - ember-source: 5.1.2(@babel/core@7.23.5)(@glimmer/component@1.1.2) + ember-source: 5.1.2(@babel/core@7.23.3)(@glimmer/component@1.1.2) git-repo-info: 2.1.1 transitivePeerDependencies: - supports-color @@ -10944,7 +10687,7 @@ packages: ember-source: ^3.28.0 || >= 4.0.0 dependencies: ember-cli-babel: 7.26.11 - ember-source: 5.3.0(@babel/core@7.23.5)(@glimmer/component@1.1.2)(@glint/template@1.2.1)(webpack@5.89.0) + ember-source: 5.3.0(@babel/core@7.23.3)(@glimmer/component@1.1.2)(@glint/template@1.2.1)(webpack@5.89.0) git-repo-info: 2.1.1 transitivePeerDependencies: - supports-color @@ -10954,12 +10697,12 @@ packages: resolution: {integrity: sha512-sKvOiPNHr5F/60NLd7SFzMpYPte/nnGkq/tMIfXejfKHIhaiIkYFqX8Z9UFTKWLLn+V7NOaby6niNPZUdvKCRw==} engines: {node: 6.* || 8.* || >= 10.*} - /ember-cli-babel@6.18.0(@babel/core@7.23.5): + /ember-cli-babel@6.18.0(@babel/core@7.23.3): resolution: {integrity: sha512-7ceC8joNYxY2wES16iIBlbPSxwKDBhYwC8drU3ZEvuPDMwVv1KzxCNu1fvxyFEBWhwaRNTUxSCsEVoTd9nosGA==} engines: {node: ^4.5 || 6.* || >= 7.*} dependencies: amd-name-resolver: 1.2.0 - babel-plugin-debug-macros: 0.2.0(@babel/core@7.23.5) + babel-plugin-debug-macros: 0.2.0(@babel/core@7.23.3) babel-plugin-ember-modules-api-polyfill: 2.13.4 babel-plugin-transform-es2015-modules-amd: 6.24.1(supports-color@8.1.1) babel-polyfill: 6.26.0 @@ -10980,20 +10723,20 @@ packages: resolution: {integrity: sha512-JJYeYjiz/JTn34q7F5DSOjkkZqy8qwFOOxXfE6pe9yEJqWGu4qErKxlz8I22JoVEQ/aBUO+OcKTpmctvykM9YA==} engines: {node: 6.* || 8.* || >= 10.*} dependencies: - '@babel/core': 7.23.5(supports-color@8.1.1) + '@babel/core': 7.23.3(supports-color@8.1.1) '@babel/helper-compilation-targets': 7.22.15 - '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.23.5) - '@babel/plugin-proposal-decorators': 7.23.5(@babel/core@7.23.5) - '@babel/plugin-proposal-private-methods': 7.18.6(@babel/core@7.23.5) - '@babel/plugin-proposal-private-property-in-object': 7.21.11(@babel/core@7.23.5) - '@babel/plugin-transform-modules-amd': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-runtime': 7.23.4(@babel/core@7.23.5) - '@babel/plugin-transform-typescript': 7.23.5(@babel/core@7.23.5) + '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.23.3) + '@babel/plugin-proposal-decorators': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-proposal-private-methods': 7.18.6(@babel/core@7.23.3) + '@babel/plugin-proposal-private-property-in-object': 7.21.11(@babel/core@7.23.3) + '@babel/plugin-transform-modules-amd': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-runtime': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-typescript': 7.23.3(@babel/core@7.23.3) '@babel/polyfill': 7.12.1 - '@babel/preset-env': 7.23.5(@babel/core@7.23.5) + '@babel/preset-env': 7.23.3(@babel/core@7.23.3) '@babel/runtime': 7.12.18 amd-name-resolver: 1.3.1 - babel-plugin-debug-macros: 0.3.4(@babel/core@7.23.5) + babel-plugin-debug-macros: 0.3.4(@babel/core@7.23.3) 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 @@ -11013,30 +10756,30 @@ packages: transitivePeerDependencies: - supports-color - /ember-cli-babel@8.2.0(@babel/core@7.23.5): + /ember-cli-babel@8.2.0(@babel/core@7.23.3): resolution: {integrity: sha512-8H4+jQElCDo6tA7CamksE66NqBXWs7VNpS3a738L9pZCjg2kXIX4zoyHzkORUqCtr0Au7YsCnrlAMi1v2ALo7A==} engines: {node: 16.* || 18.* || >= 20} peerDependencies: '@babel/core': ^7.12.0 dependencies: - '@babel/core': 7.23.5(supports-color@8.1.1) + '@babel/core': 7.23.3(supports-color@8.1.1) '@babel/helper-compilation-targets': 7.22.15 - '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.23.5) - '@babel/plugin-proposal-decorators': 7.23.5(@babel/core@7.23.5) - '@babel/plugin-proposal-private-methods': 7.18.6(@babel/core@7.23.5) - '@babel/plugin-proposal-private-property-in-object': 7.21.11(@babel/core@7.23.5) - '@babel/plugin-transform-class-static-block': 7.23.4(@babel/core@7.23.5) - '@babel/plugin-transform-modules-amd': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-runtime': 7.23.4(@babel/core@7.23.5) - '@babel/plugin-transform-typescript': 7.23.5(@babel/core@7.23.5) - '@babel/preset-env': 7.23.5(@babel/core@7.23.5) + '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.23.3) + '@babel/plugin-proposal-decorators': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-proposal-private-methods': 7.18.6(@babel/core@7.23.3) + '@babel/plugin-proposal-private-property-in-object': 7.21.11(@babel/core@7.23.3) + '@babel/plugin-transform-class-static-block': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-modules-amd': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-runtime': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-typescript': 7.23.3(@babel/core@7.23.3) + '@babel/preset-env': 7.23.3(@babel/core@7.23.3) '@babel/runtime': 7.12.18 amd-name-resolver: 1.3.1 - babel-plugin-debug-macros: 0.3.4(@babel/core@7.23.5) + babel-plugin-debug-macros: 0.3.4(@babel/core@7.23.3) babel-plugin-ember-data-packages-polyfill: 0.1.2 babel-plugin-ember-modules-api-polyfill: 3.5.0 babel-plugin-module-resolver: 5.0.0 - broccoli-babel-transpiler: 8.0.0(@babel/core@7.23.5) + broccoli-babel-transpiler: 8.0.0(@babel/core@7.23.3) broccoli-debug: 0.6.5 broccoli-funnel: 3.0.8 broccoli-source: 3.0.1 @@ -11063,7 +10806,7 @@ packages: dependencies: broccoli-persistent-filter: 3.1.3 clean-css: 3.4.28 - json-stable-stringify: 1.1.0 + json-stable-stringify: 1.0.2 transitivePeerDependencies: - supports-color dev: true @@ -11073,8 +10816,8 @@ packages: engines: {node: 16.* || >= 18} dependencies: broccoli-persistent-filter: 3.1.3 - clean-css: 5.3.3 - json-stable-stringify: 1.1.0 + clean-css: 5.3.2 + json-stable-stringify: 1.0.2 transitivePeerDependencies: - supports-color dev: true @@ -11156,8 +10899,8 @@ packages: - supports-color dev: true - /ember-cli-fastboot@4.1.2: - resolution: {integrity: sha512-cC2ET8AbRTssA4sg9qF9KLX9N/Xnwa7kS0PKZADMMOUXtuBF4jmgnXsjzlvIE+lgWcwK4tc6udgwpMeNMkOg7w==} + /ember-cli-fastboot@4.1.1: + resolution: {integrity: sha512-9B/qJUfDVqRmZlXxP23V2AZ3hiez99DKT2cPJ0MWkjwRom/kmVJHvv5X4fxvT7MCokjOVFvzas79D5toV4GLIA==} engines: {node: 14.* || 16.* || >=18} dependencies: broccoli-concat: 4.2.5 @@ -11170,11 +10913,11 @@ packages: ember-cli-lodash-subset: 2.0.1 ember-cli-preprocess-registry: 3.3.0 ember-cli-version-checker: 5.1.2 - fastboot: 4.1.2 - fastboot-express-middleware: 4.1.2 + fastboot: 4.1.1 + fastboot-express-middleware: 4.1.1 fastboot-transform: 0.1.3 fs-extra: 10.1.0 - json-stable-stringify: 1.1.0 + json-stable-stringify: 1.0.2 md5-hex: 3.0.1 recast: 0.19.1 silent-error: 1.1.1 @@ -11203,7 +10946,7 @@ packages: fs-tree-diff: 2.0.1 hash-for-dep: 1.5.1 heimdalljs-logger: 0.1.10 - json-stable-stringify: 1.1.0 + json-stable-stringify: 1.0.2 semver: 7.5.4 silent-error: 1.1.1 strip-bom: 4.0.0 @@ -11331,12 +11074,12 @@ packages: - supports-color dev: true - /ember-cli-typescript@2.0.2(@babel/core@7.23.5): + /ember-cli-typescript@2.0.2(@babel/core@7.23.3): resolution: {integrity: sha512-7I5azCTxOgRDN8aSSnJZIKSqr+MGnT+jLTUbBYqF8wu6ojs2DUnTePxUcQMcvNh3Q3B1ySv7Q/uZFSjdU9gSjA==} engines: {node: 6.* || 8.* || >= 10.*} dependencies: - '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.23.5) - '@babel/plugin-transform-typescript': 7.4.5(@babel/core@7.23.5) + '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.23.3) + '@babel/plugin-transform-typescript': 7.4.5(@babel/core@7.23.3) ansi-to-html: 0.6.15 debug: 4.3.4(supports-color@8.1.1) ember-cli-babel-plugin-helpers: 1.1.1 @@ -11352,11 +11095,11 @@ packages: - supports-color dev: true - /ember-cli-typescript@3.0.0(@babel/core@7.23.5): + /ember-cli-typescript@3.0.0(@babel/core@7.23.3): resolution: {integrity: sha512-lo5YArbJzJi5ssvaGqTt6+FnhTALnSvYVuxM7lfyL1UCMudyNJ94ovH5C7n5il7ATd6WsNiAPRUO/v+s5Jq/aA==} engines: {node: 8.* || >= 10.*} dependencies: - '@babel/plugin-transform-typescript': 7.5.5(@babel/core@7.23.5) + '@babel/plugin-transform-typescript': 7.5.5(@babel/core@7.23.3) ansi-to-html: 0.6.15 debug: 4.3.4(supports-color@8.1.1) ember-cli-babel-plugin-helpers: 1.1.1 @@ -11458,8 +11201,8 @@ packages: engines: {node: '>= 12'} hasBin: true dependencies: - '@babel/core': 7.23.5(supports-color@8.1.1) - '@babel/plugin-transform-modules-amd': 7.23.3(@babel/core@7.23.5) + '@babel/core': 7.23.3(supports-color@8.1.1) + '@babel/plugin-transform-modules-amd': 7.23.3(@babel/core@7.23.3) amd-name-resolver: 1.3.1 babel-plugin-module-resolver: 4.1.0 bower-config: 1.4.3 @@ -11519,7 +11262,7 @@ packages: is-language-code: 2.0.0 isbinaryfile: 4.0.10 js-yaml: 3.14.1 - json-stable-stringify: 1.1.0 + json-stable-stringify: 1.0.2 leek: 0.0.24 lodash.template: 4.5.0 markdown-it: 12.3.2 @@ -11541,7 +11284,7 @@ packages: sort-package-json: 1.57.0 symlink-or-copy: 1.3.1 temp: 0.9.4 - testem: 3.11.0(lodash@4.17.21) + testem: 3.10.1(lodash@4.17.21) tiny-lr: 2.0.0 tree-sync: 2.1.0 uuid: 8.3.2 @@ -11613,8 +11356,8 @@ packages: engines: {node: '>= 12'} hasBin: true dependencies: - '@babel/core': 7.23.5(supports-color@8.1.1) - '@babel/plugin-transform-modules-amd': 7.23.3(@babel/core@7.23.5) + '@babel/core': 7.23.3(supports-color@8.1.1) + '@babel/plugin-transform-modules-amd': 7.23.3(@babel/core@7.23.3) amd-name-resolver: 1.3.1 babel-plugin-module-resolver: 4.1.0 bower-config: 1.4.3 @@ -11697,7 +11440,7 @@ packages: sort-package-json: 1.57.0 symlink-or-copy: 1.3.1 temp: 0.9.4 - testem: 3.11.0(lodash@4.17.21) + testem: 3.10.1(lodash@4.17.21) tiny-lr: 2.0.0 tree-sync: 2.1.0 uuid: 8.3.2 @@ -11770,8 +11513,8 @@ packages: engines: {node: '>= 14'} hasBin: true dependencies: - '@babel/core': 7.23.5(supports-color@8.1.1) - '@babel/plugin-transform-modules-amd': 7.23.3(@babel/core@7.23.5) + '@babel/core': 7.23.3(supports-color@8.1.1) + '@babel/plugin-transform-modules-amd': 7.23.3(@babel/core@7.23.3) amd-name-resolver: 1.3.1 babel-plugin-module-resolver: 4.1.0 bower-config: 1.4.3 @@ -11854,7 +11597,7 @@ packages: sort-package-json: 1.57.0 symlink-or-copy: 1.3.1 temp: 0.9.4 - testem: 3.11.0(lodash@4.17.21) + testem: 3.10.1(lodash@4.17.21) tiny-lr: 2.0.0 tree-sync: 2.1.0 uuid: 8.3.2 @@ -11927,7 +11670,7 @@ packages: engines: {node: '>= 16'} hasBin: true dependencies: - '@babel/core': 7.23.5(supports-color@8.1.1) + '@babel/core': 7.23.3(supports-color@8.1.1) broccoli: 3.5.2 broccoli-builder: 0.18.14 broccoli-concat: 4.2.5 @@ -11965,7 +11708,7 @@ packages: find-up: 5.0.0 find-yarn-workspace-root: 2.0.0 fixturify-project: 2.1.1 - fs-extra: 11.2.0 + fs-extra: 11.1.1 fs-tree-diff: 2.0.1 get-caller-file: 2.0.5 git-repo-info: 2.1.1 @@ -12005,7 +11748,7 @@ packages: sort-package-json: 1.57.0 symlink-or-copy: 1.3.1 temp: 0.9.4 - testem: 3.11.0(lodash@4.17.21) + testem: 3.10.1(lodash@4.17.21) tiny-lr: 2.0.0 tree-sync: 2.1.0 uuid: 9.0.1 @@ -12077,7 +11820,7 @@ packages: engines: {node: '>= 16'} hasBin: true dependencies: - '@babel/core': 7.23.5(supports-color@8.1.1) + '@babel/core': 7.23.3(supports-color@8.1.1) '@pnpm/find-workspace-dir': 6.0.2 broccoli: 3.5.2 broccoli-builder: 0.18.14 @@ -12116,7 +11859,7 @@ packages: find-up: 5.0.0 find-yarn-workspace-root: 2.0.0 fixturify-project: 2.1.1 - fs-extra: 11.2.0 + fs-extra: 11.1.1 fs-tree-diff: 2.0.1 get-caller-file: 2.0.5 git-repo-info: 2.1.1 @@ -12155,7 +11898,7 @@ packages: sort-package-json: 1.57.0 symlink-or-copy: 1.3.1 temp: 0.9.4 - testem: 3.11.0(lodash@4.17.21) + testem: 3.10.1(lodash@4.17.21) tiny-lr: 2.0.0 tree-sync: 2.1.0 uuid: 9.0.1 @@ -12222,8 +11965,8 @@ packages: - whiskers dev: true - /ember-cli@5.4.1(lodash@4.17.21): - resolution: {integrity: sha512-+jwp63OPT0zkUnXP563DkIwb1GiI6kGYHg6DyzJKY48BCdevqcgxsMFn8/RENXoF7krg18A5B9cSa8Y1v15tIw==} + /ember-cli@5.4.0(lodash@4.17.21): + resolution: {integrity: sha512-00RfyeDGTo9OtsmxbIqJIKM0wZvvOGAn1w4A9hFrENcuE7I3HKCb3QYKLHLXywG91fTsWbmXRfCL1kQ5pOva4A==} engines: {node: '>= 18'} hasBin: true dependencies: @@ -12265,7 +12008,7 @@ packages: find-up: 5.0.0 find-yarn-workspace-root: 2.0.0 fixturify-project: 2.1.1 - fs-extra: 11.2.0 + fs-extra: 11.1.1 fs-tree-diff: 2.0.1 get-caller-file: 2.0.5 git-repo-info: 2.1.1 @@ -12303,7 +12046,7 @@ packages: sort-package-json: 1.57.0 symlink-or-copy: 1.3.1 temp: 0.9.4 - testem: 3.11.0(lodash@4.17.21) + testem: 3.10.1(lodash@4.17.21) tiny-lr: 2.0.0 tree-sync: 2.1.0 walk-sync: 3.0.0 @@ -12369,8 +12112,8 @@ packages: - whiskers dev: true - /ember-cli@5.5.0-beta.1(lodash@4.17.21): - resolution: {integrity: sha512-WBmbfYjQeaTguLbYQzZidNQ8mStjjfZVs1eB+UT9Li/0uKMw7CLeCAOyEcWlzofzAlnlMLxoBoDzdXN93yrXuQ==} + /ember-cli@5.5.0-beta.0(lodash@4.17.21): + resolution: {integrity: sha512-KBfOmw1x9FyKPd9V5F/9IHwGZJZK+WzsTDZcC9IbLObDPfQWpXC4wmR/McUFDhfa7mZ1k8AL/ZUl8N2R2RDaxw==} engines: {node: '>= 18'} hasBin: true dependencies: @@ -12413,7 +12156,7 @@ packages: find-up: 5.0.0 find-yarn-workspace-root: 2.0.0 fixturify-project: 2.1.1 - fs-extra: 11.2.0 + fs-extra: 11.1.1 fs-tree-diff: 2.0.1 get-caller-file: 2.0.5 git-repo-info: 2.1.1 @@ -12451,7 +12194,7 @@ packages: sort-package-json: 1.57.0 symlink-or-copy: 1.3.1 temp: 0.9.4 - testem: 3.11.0(lodash@4.17.21) + testem: 3.10.1(lodash@4.17.21) tiny-lr: 2.0.0 tree-sync: 2.1.0 walk-sync: 3.0.0 @@ -12517,11 +12260,11 @@ packages: - whiskers dev: true - /ember-compatibility-helpers@1.2.7(@babel/core@7.23.5): + /ember-compatibility-helpers@1.2.7(@babel/core@7.23.3): resolution: {integrity: sha512-BtkjulweiXo9c3yVWrtexw2dTmBrvavD/xixNC6TKOBdrixUwU+6nuOO9dufDWsMxoid7MvtmDpzc9+mE8PdaA==} engines: {node: 10.* || >= 12.*} dependencies: - babel-plugin-debug-macros: 0.2.0(@babel/core@7.23.5) + babel-plugin-debug-macros: 0.2.0(@babel/core@7.23.3) ember-cli-version-checker: 5.1.2 find-up: 5.0.0 fs-extra: 9.1.0 @@ -12534,7 +12277,7 @@ packages: resolution: {integrity: sha512-XjpDLyVPsLCy6kd5dIxZonOECCO6AA5sY5Hr6tYUbJg3s5ghFAiFWaNcYraYC+fL2yPJQAswwpfwGlQORUJZkw==} engines: {node: 10.* || >= 12.*} dependencies: - '@babel/core': 7.23.5(supports-color@8.1.1) + '@babel/core': 7.23.3(supports-color@8.1.1) broccoli-funnel: 2.0.1 ember-cli-babel: 7.26.11 resolve: 1.22.8 @@ -12542,34 +12285,34 @@ packages: - supports-color dev: true - /ember-concurrency@2.3.7(@babel/core@7.23.5): + /ember-concurrency@2.3.7(@babel/core@7.23.3): resolution: {integrity: sha512-sz6sTIXN/CuLb5wdpauFa+rWXuvXXSnSHS4kuNzU5GSMDX1pLBWSuovoUk61FUe6CYRqBmT1/UushObwBGickQ==} engines: {node: 10.* || 12.* || 14.* || >= 16} dependencies: '@babel/helper-plugin-utils': 7.22.5 - '@babel/types': 7.23.5 + '@babel/types': 7.23.3 '@glimmer/tracking': 1.1.2 ember-cli-babel: 7.26.11 ember-cli-babel-plugin-helpers: 1.1.1 ember-cli-htmlbars: 5.7.2 - ember-compatibility-helpers: 1.2.7(@babel/core@7.23.5) - ember-destroyable-polyfill: 2.0.3(@babel/core@7.23.5) + ember-compatibility-helpers: 1.2.7(@babel/core@7.23.3) + ember-destroyable-polyfill: 2.0.3(@babel/core@7.23.3) transitivePeerDependencies: - '@babel/core' - supports-color dev: true - /ember-data@3.28.13(@babel/core@7.23.5): + /ember-data@3.28.13(@babel/core@7.23.3): resolution: {integrity: sha512-j1YjPl2JNHxQwQW6Bgfis44XSr4WCtdwMXr/SPpLsF1oVeTWIn3kwefcDnbuCI8Spmt1B9ab3ZLKzf2KkGN/7g==} engines: {node: 12.* || >= 14.*} dependencies: - '@ember-data/adapter': 3.28.13(@babel/core@7.23.5) - '@ember-data/debug': 3.28.13(@babel/core@7.23.5) - '@ember-data/model': 3.28.13(@babel/core@7.23.5) - '@ember-data/private-build-infra': 3.28.13(@babel/core@7.23.5) - '@ember-data/record-data': 3.28.13(@babel/core@7.23.5) - '@ember-data/serializer': 3.28.13(@babel/core@7.23.5) - '@ember-data/store': 3.28.13(@babel/core@7.23.5) + '@ember-data/adapter': 3.28.13(@babel/core@7.23.3) + '@ember-data/debug': 3.28.13(@babel/core@7.23.3) + '@ember-data/model': 3.28.13(@babel/core@7.23.3) + '@ember-data/private-build-infra': 3.28.13(@babel/core@7.23.3) + '@ember-data/record-data': 3.28.13(@babel/core@7.23.3) + '@ember-data/serializer': 3.28.13(@babel/core@7.23.3) + '@ember-data/store': 3.28.13(@babel/core@7.23.3) '@ember/edition-utils': 1.2.0 '@ember/string': 3.1.1 '@glimmer/env': 0.1.7 @@ -12582,22 +12325,22 @@ packages: - supports-color dev: true - /ember-data@4.4.3(@babel/core@7.23.5): + /ember-data@4.4.3(@babel/core@7.23.3): resolution: {integrity: sha512-Z67pYs41LoJ2EKQsTOb2QOmv7A4gn72nv9MORYpQnGk8z8stYGtrgZFwATg+NES4mnJsLShdLIWaZNKze7c1HA==} engines: {node: 12.* || >= 14.*} dependencies: - '@ember-data/adapter': 4.4.3(@babel/core@7.23.5) - '@ember-data/debug': 4.4.3(@babel/core@7.23.5) - '@ember-data/model': 4.4.3(@babel/core@7.23.5) - '@ember-data/private-build-infra': 4.4.3(@babel/core@7.23.5) - '@ember-data/record-data': 4.4.3(@babel/core@7.23.5) - '@ember-data/serializer': 4.4.3(@babel/core@7.23.5) - '@ember-data/store': 4.4.3(@babel/core@7.23.5) + '@ember-data/adapter': 4.4.3(@babel/core@7.23.3) + '@ember-data/debug': 4.4.3(@babel/core@7.23.3) + '@ember-data/model': 4.4.3(@babel/core@7.23.3) + '@ember-data/private-build-infra': 4.4.3(@babel/core@7.23.3) + '@ember-data/record-data': 4.4.3(@babel/core@7.23.3) + '@ember-data/serializer': 4.4.3(@babel/core@7.23.3) + '@ember-data/store': 4.4.3(@babel/core@7.23.3) '@ember/edition-utils': 1.2.0 '@ember/string': 3.1.1 '@glimmer/env': 0.1.7 broccoli-merge-trees: 4.2.0 - ember-auto-import: 2.7.0 + ember-auto-import: 2.6.3 ember-cli-babel: 7.26.11 ember-cli-typescript: 5.2.1 ember-inflector: 4.0.2 @@ -12608,22 +12351,22 @@ packages: - webpack dev: true - /ember-data@4.4.3(@babel/core@7.23.5)(webpack@5.89.0): + /ember-data@4.4.3(@babel/core@7.23.3)(webpack@5.89.0): resolution: {integrity: sha512-Z67pYs41LoJ2EKQsTOb2QOmv7A4gn72nv9MORYpQnGk8z8stYGtrgZFwATg+NES4mnJsLShdLIWaZNKze7c1HA==} engines: {node: 12.* || >= 14.*} dependencies: - '@ember-data/adapter': 4.4.3(@babel/core@7.23.5)(webpack@5.89.0) - '@ember-data/debug': 4.4.3(@babel/core@7.23.5)(webpack@5.89.0) - '@ember-data/model': 4.4.3(@babel/core@7.23.5)(webpack@5.89.0) - '@ember-data/private-build-infra': 4.4.3(@babel/core@7.23.5) - '@ember-data/record-data': 4.4.3(@babel/core@7.23.5)(webpack@5.89.0) - '@ember-data/serializer': 4.4.3(@babel/core@7.23.5)(webpack@5.89.0) - '@ember-data/store': 4.4.3(@babel/core@7.23.5)(webpack@5.89.0) + '@ember-data/adapter': 4.4.3(@babel/core@7.23.3)(webpack@5.89.0) + '@ember-data/debug': 4.4.3(@babel/core@7.23.3)(webpack@5.89.0) + '@ember-data/model': 4.4.3(@babel/core@7.23.3)(webpack@5.89.0) + '@ember-data/private-build-infra': 4.4.3(@babel/core@7.23.3) + '@ember-data/record-data': 4.4.3(@babel/core@7.23.3)(webpack@5.89.0) + '@ember-data/serializer': 4.4.3(@babel/core@7.23.3)(webpack@5.89.0) + '@ember-data/store': 4.4.3(@babel/core@7.23.3)(webpack@5.89.0) '@ember/edition-utils': 1.2.0 '@ember/string': 3.1.1 '@glimmer/env': 0.1.7 broccoli-merge-trees: 4.2.0 - ember-auto-import: 2.7.0(@glint/template@1.2.1)(webpack@5.89.0) + ember-auto-import: 2.6.3(@glint/template@1.2.1)(webpack@5.89.0) ember-cli-babel: 7.26.11 ember-cli-typescript: 5.2.1 ember-inflector: 4.0.2 @@ -12634,7 +12377,7 @@ packages: - webpack dev: true - /ember-data@5.1.2(@babel/core@7.23.5)(@ember/string@3.1.1)(@glimmer/tracking@1.1.2)(ember-source@5.1.2): + /ember-data@5.1.2(@babel/core@7.23.3)(@ember/string@3.1.1)(@glimmer/tracking@1.1.2)(ember-source@5.1.2): resolution: {integrity: sha512-uv5N6LAUAW+emDxPAmiBxS/g0ATLMHfcyBknu848LHAjZo2EDCjmutj9ChsPi61g+A74qGYqdlPl1uLJWzMRjA==} engines: {node: 16.* || >= 18.*} peerDependencies: @@ -12645,11 +12388,11 @@ packages: '@ember-data/graph': 5.1.2(@ember-data/store@5.1.2) '@ember-data/json-api': 5.1.2(@ember-data/graph@5.1.2)(@ember-data/store@5.1.2) '@ember-data/legacy-compat': 5.1.2(@ember-data/graph@5.1.2)(@ember-data/json-api@5.1.2) - '@ember-data/model': 5.1.2(@babel/core@7.23.5)(@ember-data/debug@5.1.2)(@ember-data/graph@5.1.2)(@ember-data/json-api@5.1.2)(@ember-data/legacy-compat@5.1.2)(@ember-data/store@5.1.2)(@ember-data/tracking@5.1.2)(@ember/string@3.1.1)(ember-inflector@4.0.2)(ember-source@5.1.2) + '@ember-data/model': 5.1.2(@babel/core@7.23.3)(@ember-data/debug@5.1.2)(@ember-data/graph@5.1.2)(@ember-data/json-api@5.1.2)(@ember-data/legacy-compat@5.1.2)(@ember-data/store@5.1.2)(@ember-data/tracking@5.1.2)(@ember/string@3.1.1)(ember-inflector@4.0.2)(ember-source@5.1.2) '@ember-data/private-build-infra': 5.1.2 '@ember-data/request': 5.1.2 '@ember-data/serializer': 5.1.2(@ember-data/store@5.1.2)(@ember/string@3.1.1)(ember-inflector@4.0.2) - '@ember-data/store': 5.1.2(@babel/core@7.23.5)(@ember-data/graph@5.1.2)(@ember-data/json-api@5.1.2)(@ember-data/legacy-compat@5.1.2)(@ember-data/model@5.1.2)(@ember-data/tracking@5.1.2)(@ember/string@3.1.1)(@glimmer/tracking@1.1.2)(ember-source@5.1.2) + '@ember-data/store': 5.1.2(@babel/core@7.23.3)(@ember-data/graph@5.1.2)(@ember-data/json-api@5.1.2)(@ember-data/legacy-compat@5.1.2)(@ember-data/model@5.1.2)(@ember-data/tracking@5.1.2)(@ember/string@3.1.1)(@glimmer/tracking@1.1.2)(ember-source@5.1.2) '@ember-data/tracking': 5.1.2 '@ember/edition-utils': 1.2.0 '@ember/string': 3.1.1 @@ -12672,30 +12415,30 @@ packages: - webpack-cli dev: true - /ember-data@5.3.0(@babel/core@7.23.5)(@ember/string@3.1.1)(ember-source@3.28.12): + /ember-data@5.3.0(@babel/core@7.23.3)(@ember/string@3.1.1)(ember-source@3.28.12): resolution: {integrity: sha512-ca8udUa2SrWyYxPckYc89Fdv/9pCG3X360zHvlGxtB4C87o3dWp6sle98tP9G1TjximKhrU/PMrqpdhJ8rOGtA==} engines: {node: 16.* || >= 18.*} peerDependencies: '@ember/string': ^3.1.1 dependencies: - '@ember-data/adapter': 5.3.0(@babel/core@7.23.5)(@ember-data/store@5.3.0)(@ember/string@3.1.1)(ember-inflector@4.0.2) + '@ember-data/adapter': 5.3.0(@babel/core@7.23.3)(@ember-data/store@5.3.0)(@ember/string@3.1.1)(ember-inflector@4.0.2) '@ember-data/debug': 5.3.0(@ember-data/store@5.3.0)(@ember/string@3.1.1) - '@ember-data/graph': 5.3.0(@babel/core@7.23.5)(@ember-data/store@5.3.0) - '@ember-data/json-api': 5.3.0(@babel/core@7.23.5)(@ember-data/graph@5.3.0)(@ember-data/request-utils@5.3.0)(@ember-data/store@5.3.0)(ember-inflector@4.0.2) - '@ember-data/legacy-compat': 5.3.0(@babel/core@7.23.5)(@ember-data/graph@5.3.0)(@ember-data/json-api@5.3.0)(@ember-data/request@5.3.0) - '@ember-data/model': 5.3.0(@babel/core@7.23.5)(@ember-data/debug@5.3.0)(@ember-data/graph@5.3.0)(@ember-data/json-api@5.3.0)(@ember-data/legacy-compat@5.3.0)(@ember-data/store@5.3.0)(@ember-data/tracking@5.3.0)(@ember/string@3.1.1)(ember-inflector@4.0.2)(ember-source@3.28.12) + '@ember-data/graph': 5.3.0(@babel/core@7.23.3)(@ember-data/store@5.3.0) + '@ember-data/json-api': 5.3.0(@babel/core@7.23.3)(@ember-data/graph@5.3.0)(@ember-data/request-utils@5.3.0)(@ember-data/store@5.3.0)(ember-inflector@4.0.2) + '@ember-data/legacy-compat': 5.3.0(@babel/core@7.23.3)(@ember-data/graph@5.3.0)(@ember-data/json-api@5.3.0)(@ember-data/request@5.3.0) + '@ember-data/model': 5.3.0(@babel/core@7.23.3)(@ember-data/debug@5.3.0)(@ember-data/graph@5.3.0)(@ember-data/json-api@5.3.0)(@ember-data/legacy-compat@5.3.0)(@ember-data/store@5.3.0)(@ember-data/tracking@5.3.0)(@ember/string@3.1.1)(ember-inflector@4.0.2)(ember-source@3.28.12) '@ember-data/private-build-infra': 5.3.0 - '@ember-data/request': 5.3.0(@babel/core@7.23.5) - '@ember-data/request-utils': 5.3.0(@babel/core@7.23.5) - '@ember-data/serializer': 5.3.0(@babel/core@7.23.5)(@ember/string@3.1.1)(ember-inflector@4.0.2) - '@ember-data/store': 5.3.0(@babel/core@7.23.5)(@ember-data/tracking@5.3.0)(@ember/string@3.1.1)(ember-source@3.28.12) - '@ember-data/tracking': 5.3.0(@babel/core@7.23.5) + '@ember-data/request': 5.3.0(@babel/core@7.23.3) + '@ember-data/request-utils': 5.3.0(@babel/core@7.23.3) + '@ember-data/serializer': 5.3.0(@babel/core@7.23.3)(@ember/string@3.1.1)(ember-inflector@4.0.2) + '@ember-data/store': 5.3.0(@babel/core@7.23.3)(@ember-data/tracking@5.3.0)(@ember/string@3.1.1)(ember-source@3.28.12) + '@ember-data/tracking': 5.3.0(@babel/core@7.23.3) '@ember/edition-utils': 1.2.0 '@ember/string': 3.1.1 '@embroider/macros': 1.13.3(@glint/template@1.2.1) broccoli-merge-trees: 4.2.0 - ember-auto-import: 2.7.0(@glint/template@1.2.1)(webpack@5.89.0) - ember-cli-babel: 8.2.0(@babel/core@7.23.5) + ember-auto-import: 2.6.3(@glint/template@1.2.1)(webpack@5.89.0) + ember-cli-babel: 8.2.0(@babel/core@7.23.3) ember-inflector: 4.0.2 webpack: 5.89.0 transitivePeerDependencies: @@ -12721,13 +12464,13 @@ packages: - supports-color dev: true - /ember-destroyable-polyfill@2.0.3(@babel/core@7.23.5): + /ember-destroyable-polyfill@2.0.3(@babel/core@7.23.3): resolution: {integrity: sha512-TovtNqCumzyAiW0/OisSkkVK93xnVF4NRU6+FN0ubpfwEOpRrmM2RqDwXI6YAChCgSHON1cz0DfQStpA1Gjuuw==} engines: {node: 10.* || >= 12} dependencies: ember-cli-babel: 7.26.11 ember-cli-version-checker: 5.1.2 - ember-compatibility-helpers: 1.2.7(@babel/core@7.23.5) + ember-compatibility-helpers: 1.2.7(@babel/core@7.23.3) transitivePeerDependencies: - '@babel/core' - supports-color @@ -12747,7 +12490,7 @@ packages: '@embroider/util': 1.12.1(ember-source@3.28.12) ember-cli-babel: 7.26.11 ember-cli-htmlbars: 6.3.0 - ember-source: 3.28.12(@babel/core@7.23.5) + ember-source: 3.28.12(@babel/core@7.23.3) transitivePeerDependencies: - '@glint/environment-ember-loose' - '@glint/template' @@ -12779,7 +12522,7 @@ packages: ember-cli-preprocess-registry: 3.3.0 ember-cli-string-utils: 1.1.0 ember-cli-version-checker: 5.1.2 - ember-source: 3.28.12(@babel/core@7.23.5) + ember-source: 3.28.12(@babel/core@7.23.3) lodash: 4.17.21 transitivePeerDependencies: - '@glint/template' @@ -12851,7 +12594,7 @@ packages: ember-source: ^4.0.0 || ^5.0.0 dependencies: '@embroider/addon-shim': 1.8.7 - ember-source: 3.28.12(@babel/core@7.23.5) + ember-source: 3.28.12(@babel/core@7.23.3) focus-trap: 6.9.4 transitivePeerDependencies: - supports-color @@ -12878,7 +12621,7 @@ packages: - supports-color dev: true - /ember-inline-svg@0.2.1(@babel/core@7.23.5): + /ember-inline-svg@0.2.1(@babel/core@7.23.3): resolution: {integrity: sha512-R7LsMZo1CrXbDgCX6sMnzUg+ggeosOwq8HTilWnNUpH11mb9pbMoG5s/Qm9iRMVW2iMesiCMnCaLsEkTiY8Yhw==} engines: {node: 6.* || 8.* || >= 10.*} dependencies: @@ -12886,7 +12629,7 @@ packages: broccoli-flatiron: 0.1.3 broccoli-funnel: 2.0.2 broccoli-merge-trees: 3.0.2 - ember-cli-babel: 6.18.0(@babel/core@7.23.5) + ember-cli-babel: 6.18.0(@babel/core@7.23.3) merge: 1.2.1 mkdirp: 0.5.6 promise-map-series: 0.2.3 @@ -12897,12 +12640,12 @@ packages: - supports-color dev: true - /ember-load-initializers@2.1.2(@babel/core@7.23.5): + /ember-load-initializers@2.1.2(@babel/core@7.23.3): resolution: {integrity: sha512-CYR+U/wRxLbrfYN3dh+0Tb6mFaxJKfdyz+wNql6cqTrA0BBi9k6J3AaKXj273TqvEpyyXegQFFkZEiuZdYtgJw==} engines: {node: 6.* || 8.* || >= 10.*} dependencies: ember-cli-babel: 7.26.11 - ember-cli-typescript: 2.0.2(@babel/core@7.23.5) + ember-cli-typescript: 2.0.2(@babel/core@7.23.3) transitivePeerDependencies: - '@babel/core' - supports-color @@ -12920,19 +12663,19 @@ packages: - supports-color dev: true - /ember-modifier-manager-polyfill@1.2.0(@babel/core@7.23.5): + /ember-modifier-manager-polyfill@1.2.0(@babel/core@7.23.3): resolution: {integrity: sha512-bnaKF1LLKMkBNeDoetvIJ4vhwRPKIIumWr6dbVuW6W6p4QV8ZiO+GdF8J7mxDNlog9CeL9Z/7wam4YS86G8BYA==} engines: {node: 6.* || 8.* || >= 10.*} dependencies: ember-cli-babel: 7.26.11 ember-cli-version-checker: 2.2.0 - ember-compatibility-helpers: 1.2.7(@babel/core@7.23.5) + ember-compatibility-helpers: 1.2.7(@babel/core@7.23.3) transitivePeerDependencies: - '@babel/core' - supports-color dev: true - /ember-modifier@3.2.7(@babel/core@7.23.5): + /ember-modifier@3.2.7(@babel/core@7.23.3): resolution: {integrity: sha512-ezcPQhH8jUfcJQbbHji4/ZG/h0yyj1jRDknfYue/ypQS8fM8LrGcCMo0rjDZLzL1Vd11InjNs3BD7BdxFlzGoA==} engines: {node: 12.* || >= 14} dependencies: @@ -12940,7 +12683,7 @@ packages: ember-cli-normalize-entity-name: 1.0.0 ember-cli-string-utils: 1.1.0 ember-cli-typescript: 5.2.1 - ember-compatibility-helpers: 1.2.7(@babel/core@7.23.5) + ember-compatibility-helpers: 1.2.7(@babel/core@7.23.3) transitivePeerDependencies: - '@babel/core' - supports-color @@ -12957,7 +12700,7 @@ packages: '@embroider/addon-shim': 1.8.7 ember-cli-normalize-entity-name: 1.0.0 ember-cli-string-utils: 1.1.0 - ember-source: 3.28.12(@babel/core@7.23.5) + ember-source: 3.28.12(@babel/core@7.23.3) transitivePeerDependencies: - supports-color dev: true @@ -12973,7 +12716,7 @@ packages: '@embroider/addon-shim': 1.8.7 ember-cli-normalize-entity-name: 1.0.0 ember-cli-string-utils: 1.1.0 - ember-source: 5.1.2(@babel/core@7.23.5)(@glimmer/component@1.1.2) + ember-source: 5.1.2(@babel/core@7.23.3)(@glimmer/component@1.1.2) transitivePeerDependencies: - supports-color dev: true @@ -12989,7 +12732,7 @@ packages: '@embroider/addon-shim': 1.8.7 ember-cli-normalize-entity-name: 1.0.0 ember-cli-string-utils: 1.1.0 - ember-source: 5.3.0(@babel/core@7.23.5)(@glimmer/component@1.1.2)(@glint/template@1.2.1)(webpack@5.89.0) + ember-source: 5.3.0(@babel/core@7.23.3)(@glimmer/component@1.1.2)(@glint/template@1.2.1)(webpack@5.89.0) transitivePeerDependencies: - supports-color dev: true @@ -13029,20 +12772,20 @@ packages: ember-source: '>= 3.28.0' dependencies: '@embroider/addon-shim': 1.8.7 - ember-source: 5.3.0(@babel/core@7.23.5)(@glimmer/component@1.1.2)(@glint/template@1.2.1)(webpack@5.89.0) + ember-source: 5.3.0(@babel/core@7.23.3)(@glimmer/component@1.1.2)(@glint/template@1.2.1)(webpack@5.89.0) transitivePeerDependencies: - supports-color dev: true - /ember-popper-modifier@2.0.1(@babel/core@7.23.5): + /ember-popper-modifier@2.0.1(@babel/core@7.23.3): resolution: {integrity: sha512-NczO1m4uDFs4f4L8VEoC5MmRSZZvpTGwCWunYXQ+5vuWKIJ2KnPJQ3cRp9a1EpsWrfPwss+sB4JAEsY24ffdDA==} engines: {node: 10.* || >= 12} dependencies: '@popperjs/core': 2.11.8 - ember-auto-import: 2.7.0 + ember-auto-import: 2.6.3 ember-cli-babel: 7.26.11 ember-cli-htmlbars: 6.3.0 - ember-modifier: 3.2.7(@babel/core@7.23.5) + ember-modifier: 3.2.7(@babel/core@7.23.3) transitivePeerDependencies: - '@babel/core' - '@glint/template' @@ -13058,14 +12801,14 @@ packages: ember-source: '>=3.28' qunit: ^2.13.0 dependencies: - '@ember/test-helpers': 2.9.4(@babel/core@7.23.5)(@glint/environment-ember-loose@1.2.1)(@glint/template@1.2.1)(ember-source@4.6.0) + '@ember/test-helpers': 2.9.4(@babel/core@7.23.3)(@glint/environment-ember-loose@1.2.1)(@glint/template@1.2.1)(ember-source@4.6.0) broccoli-funnel: 3.0.8 broccoli-merge-trees: 3.0.2 common-tags: 1.8.2 - ember-auto-import: 2.7.0(@glint/template@1.2.1)(webpack@5.89.0) + ember-auto-import: 2.6.3(@glint/template@1.2.1)(webpack@5.89.0) ember-cli-babel: 7.26.11 ember-cli-test-loader: 3.1.0 - ember-source: 4.6.0(@babel/core@7.23.5)(@glint/template@1.2.1)(webpack@5.89.0) + ember-source: 4.6.0(@babel/core@7.23.3)(@glint/template@1.2.1)(webpack@5.89.0) qunit: 2.20.0 resolve-package-path: 4.0.3 silent-error: 1.1.1 @@ -13088,10 +12831,10 @@ packages: broccoli-funnel: 3.0.8 broccoli-merge-trees: 3.0.2 common-tags: 1.8.2 - ember-auto-import: 2.7.0(@glint/template@1.2.1)(webpack@5.89.0) + ember-auto-import: 2.6.3(@glint/template@1.2.1)(webpack@5.89.0) ember-cli-babel: 7.26.11 ember-cli-test-loader: 3.1.0 - ember-source: 3.26.2(@babel/core@7.23.5) + ember-source: 3.26.2(@babel/core@7.23.3) qunit: 2.20.0 resolve-package-path: 4.0.3 silent-error: 1.1.1 @@ -13102,7 +12845,7 @@ packages: - webpack dev: true - /ember-qunit@7.0.0(@ember/test-helpers@3.2.1)(ember-source@3.28.12)(qunit@2.20.0): + /ember-qunit@7.0.0(@ember/test-helpers@3.2.0)(ember-source@3.28.12)(qunit@2.20.0): resolution: {integrity: sha512-KhrndHYEXsHnXvmsGyJLJQ6VCudXaRs5dzPZBsdttZJIhsB6PmYAvq2Q+mh3GRDT/59T/sRDrB3FD3/lATS8aA==} engines: {node: 16.* || >= 18} peerDependencies: @@ -13110,14 +12853,14 @@ packages: ember-source: '>=4.0.0' qunit: ^2.13.0 dependencies: - '@ember/test-helpers': 3.2.1(ember-source@3.28.12) + '@ember/test-helpers': 3.2.0(ember-source@3.28.12) broccoli-funnel: 3.0.8 broccoli-merge-trees: 3.0.2 common-tags: 1.8.2 - ember-auto-import: 2.7.0 + ember-auto-import: 2.6.3 ember-cli-babel: 7.26.11 ember-cli-test-loader: 3.1.0 - ember-source: 3.28.12(@babel/core@7.23.5) + ember-source: 3.28.12(@babel/core@7.23.3) qunit: 2.20.0 resolve-package-path: 4.0.3 silent-error: 1.1.1 @@ -13128,7 +12871,7 @@ packages: - webpack dev: true - /ember-qunit@7.0.0(@ember/test-helpers@3.2.1)(ember-source@5.1.2)(qunit@2.20.0): + /ember-qunit@7.0.0(@ember/test-helpers@3.2.0)(ember-source@5.1.2)(qunit@2.20.0): resolution: {integrity: sha512-KhrndHYEXsHnXvmsGyJLJQ6VCudXaRs5dzPZBsdttZJIhsB6PmYAvq2Q+mh3GRDT/59T/sRDrB3FD3/lATS8aA==} engines: {node: 16.* || >= 18} peerDependencies: @@ -13136,14 +12879,14 @@ packages: ember-source: '>=4.0.0' qunit: ^2.13.0 dependencies: - '@ember/test-helpers': 3.2.1(ember-source@5.1.2) + '@ember/test-helpers': 3.2.0(ember-source@5.1.2) broccoli-funnel: 3.0.8 broccoli-merge-trees: 3.0.2 common-tags: 1.8.2 - ember-auto-import: 2.7.0 + ember-auto-import: 2.6.3 ember-cli-babel: 7.26.11 ember-cli-test-loader: 3.1.0 - ember-source: 5.1.2(@babel/core@7.23.5)(@glimmer/component@1.1.2) + ember-source: 5.1.2(@babel/core@7.23.3)(@glimmer/component@1.1.2) qunit: 2.20.0 resolve-package-path: 4.0.3 silent-error: 1.1.1 @@ -13154,31 +12897,31 @@ packages: - webpack dev: true - /ember-qunit@8.0.2(@ember/test-helpers@3.2.1)(@glint/template@1.2.1)(ember-source@5.3.0)(qunit@2.20.0): + /ember-qunit@8.0.2(@ember/test-helpers@3.2.0)(@glint/template@1.2.1)(ember-source@5.3.0)(qunit@2.20.0): resolution: {integrity: sha512-Rf60jeUTWNsF3Imf/FLujW/B/DFmKVXKmXO1lirTXjpertKfwRhp/3MnN8a/U/WyodTIsERkInGT1IqTtphCdQ==} peerDependencies: '@ember/test-helpers': '>=3.0.3' ember-source: '>=4.0.0' qunit: ^2.13.0 dependencies: - '@ember/test-helpers': 3.2.1(@glint/template@1.2.1)(ember-source@5.3.0)(webpack@5.89.0) + '@ember/test-helpers': 3.2.0(@glint/template@1.2.1)(ember-source@5.3.0)(webpack@5.89.0) '@embroider/addon-shim': 1.8.7 '@embroider/macros': 1.13.3(@glint/template@1.2.1) ember-cli-test-loader: 3.1.0 - ember-source: 5.3.0(@babel/core@7.23.5)(@glimmer/component@1.1.2)(@glint/template@1.2.1)(webpack@5.89.0) + ember-source: 5.3.0(@babel/core@7.23.3)(@glimmer/component@1.1.2)(@glint/template@1.2.1)(webpack@5.89.0) qunit: 2.20.0 transitivePeerDependencies: - '@glint/template' - supports-color dev: true - /ember-ref-bucket@4.1.0(@babel/core@7.23.5): + /ember-ref-bucket@4.1.0(@babel/core@7.23.3): resolution: {integrity: sha512-oEUU2mDtuYuMM039U9YEqrrOCVHH6rQfvbFOmh3WxOVEgubmLVyKEpGgU4P/6j0B/JxTqqTwM3ULTQyDto8dKg==} engines: {node: 10.* || >= 12} dependencies: ember-cli-babel: 7.26.11 ember-cli-htmlbars: 6.3.0 - ember-modifier: 3.2.7(@babel/core@7.23.5) + ember-modifier: 3.2.7(@babel/core@7.23.3) transitivePeerDependencies: - '@babel/core' - supports-color @@ -13206,7 +12949,7 @@ packages: dependencies: '@ember/string': 3.1.1 ember-cli-babel: 7.26.11 - ember-source: 3.26.2(@babel/core@7.23.5) + ember-source: 3.26.2(@babel/core@7.23.3) transitivePeerDependencies: - supports-color dev: true @@ -13223,7 +12966,7 @@ packages: dependencies: '@ember/string': 3.1.1 ember-cli-babel: 7.26.11 - ember-source: 4.6.0(@babel/core@7.23.5)(@glint/template@1.2.1)(webpack@5.89.0) + ember-source: 4.6.0(@babel/core@7.23.3)(@glint/template@1.2.1)(webpack@5.89.0) transitivePeerDependencies: - supports-color dev: true @@ -13240,7 +12983,7 @@ packages: dependencies: '@ember/string': 3.1.1 ember-cli-babel: 7.26.11 - ember-source: 5.1.2(@babel/core@7.23.5)(@glimmer/component@1.1.2) + ember-source: 5.1.2(@babel/core@7.23.3)(@glimmer/component@1.1.2) transitivePeerDependencies: - supports-color dev: true @@ -13255,7 +12998,7 @@ packages: optional: true dependencies: ember-cli-babel: 7.26.11 - ember-source: 5.3.0(@babel/core@7.23.5)(@glimmer/component@1.1.2)(@glint/template@1.2.1)(webpack@5.89.0) + ember-source: 5.3.0(@babel/core@7.23.3)(@glimmer/component@1.1.2)(@glint/template@1.2.1)(webpack@5.89.0) transitivePeerDependencies: - supports-color dev: true @@ -13267,8 +13010,8 @@ packages: resolution: {integrity: sha512-89oVHVJwmLDvGvAUWgS87KpBoRhy3aZ6U0Ql6HOmU4TrPkyaa8pM0W81wj9cIwjYprcQtN9EwzZMHnq46+oUyw==} engines: {node: 8.* || 10.* || >= 12} dependencies: - '@babel/parser': 7.23.5 - '@babel/traverse': 7.23.5(supports-color@8.1.1) + '@babel/parser': 7.23.3 + '@babel/traverse': 7.23.3(supports-color@8.1.1) recast: 0.18.10 transitivePeerDependencies: - supports-color @@ -13290,16 +13033,16 @@ packages: transitivePeerDependencies: - encoding - /ember-source@3.26.2(@babel/core@7.23.5): + /ember-source@3.26.2(@babel/core@7.23.3): resolution: {integrity: sha512-s7S+6xVwYYmNCK0rGTAimPw1ahiuOXsFgs0jFMVqwMEndvo+GQvk4rEYDHs0JgN+o5UhQjVpoPqXxkgfPTL38A==} engines: {node: 10.* || >= 12.*} dependencies: '@babel/helper-module-imports': 7.22.15 - '@babel/plugin-transform-block-scoping': 7.23.4(@babel/core@7.23.5) - '@babel/plugin-transform-object-assign': 7.23.3(@babel/core@7.23.5) + '@babel/plugin-transform-block-scoping': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-object-assign': 7.23.3(@babel/core@7.23.3) '@ember/edition-utils': 1.2.0 - '@glimmer/vm-babel-plugins': 0.77.5(@babel/core@7.23.5) - babel-plugin-debug-macros: 0.3.4(@babel/core@7.23.5) + '@glimmer/vm-babel-plugins': 0.77.5(@babel/core@7.23.3) + babel-plugin-debug-macros: 0.3.4(@babel/core@7.23.3) babel-plugin-filter-imports: 4.0.0 broccoli-concat: 4.2.5 broccoli-debug: 0.6.5 @@ -13323,16 +13066,16 @@ packages: - '@babel/core' - supports-color - /ember-source@3.28.12(@babel/core@7.23.5): + /ember-source@3.28.12(@babel/core@7.23.3): resolution: {integrity: sha512-HGrBpY6TN+MAi7F6BS8XYtNFG6vtbKE9ttPcyj0Ps+76kP7isCHyN0hk8ecKciLq7JYDqiPDNWjdIXAn2JfhZA==} engines: {node: 10.* || >= 12.*} dependencies: '@babel/helper-module-imports': 7.22.15 - '@babel/plugin-transform-block-scoping': 7.23.4(@babel/core@7.23.5) - '@babel/plugin-transform-object-assign': 7.23.3(@babel/core@7.23.5) + '@babel/plugin-transform-block-scoping': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-object-assign': 7.23.3(@babel/core@7.23.3) '@ember/edition-utils': 1.2.0 - '@glimmer/vm-babel-plugins': 0.80.3(@babel/core@7.23.5) - babel-plugin-debug-macros: 0.3.4(@babel/core@7.23.5) + '@glimmer/vm-babel-plugins': 0.80.3(@babel/core@7.23.3) + babel-plugin-debug-macros: 0.3.4(@babel/core@7.23.3) babel-plugin-filter-imports: 4.0.0 broccoli-concat: 4.2.5 broccoli-debug: 0.6.5 @@ -13358,18 +13101,18 @@ packages: - supports-color dev: true - /ember-source@4.12.3(@babel/core@7.23.5): + /ember-source@4.12.3(@babel/core@7.23.3): resolution: {integrity: sha512-UuFpMWf931pEWBPuujkaMYhsoPvFyZc+tMYjlUn7um20uL+hWs+k2n/TxMVuxydSzJLnxrXz81nTwbYIlgRWdw==} engines: {node: '>= 14.*'} peerDependencies: '@glimmer/component': ^1.1.2 dependencies: '@babel/helper-module-imports': 7.22.15 - '@babel/plugin-transform-block-scoping': 7.23.4(@babel/core@7.23.5) + '@babel/plugin-transform-block-scoping': 7.23.3(@babel/core@7.23.3) '@ember/edition-utils': 1.2.0 - '@glimmer/vm-babel-plugins': 0.84.2(@babel/core@7.23.5) + '@glimmer/vm-babel-plugins': 0.84.2(@babel/core@7.23.3) '@simple-dom/interface': 1.4.0 - babel-plugin-debug-macros: 0.3.4(@babel/core@7.23.5) + babel-plugin-debug-macros: 0.3.4(@babel/core@7.23.3) babel-plugin-filter-imports: 4.0.0 broccoli-concat: 4.2.5 broccoli-debug: 0.6.5 @@ -13377,7 +13120,7 @@ packages: broccoli-funnel: 3.0.8 broccoli-merge-trees: 4.2.0 chalk: 4.1.2 - ember-auto-import: 2.7.0 + ember-auto-import: 2.6.3 ember-cli-babel: 7.26.11 ember-cli-get-component-path-option: 1.0.0 ember-cli-is-package-missing: 1.0.0 @@ -13398,15 +13141,15 @@ packages: - webpack dev: true - /ember-source@4.4.5(@babel/core@7.23.5): + /ember-source@4.4.5(@babel/core@7.23.3): resolution: {integrity: sha512-5U+IYHEb2XPokrLEQBy6N2+MwbE909K4RKKQxOLQEwnThWcO2cTTLTbz7z3biYL4vyne04ygXVqzlfUtKWwVQQ==} engines: {node: '>= 12.*'} dependencies: '@babel/helper-module-imports': 7.22.15 - '@babel/plugin-transform-block-scoping': 7.23.4(@babel/core@7.23.5) + '@babel/plugin-transform-block-scoping': 7.23.3(@babel/core@7.23.3) '@ember/edition-utils': 1.2.0 - '@glimmer/vm-babel-plugins': 0.83.1(@babel/core@7.23.5) - babel-plugin-debug-macros: 0.3.4(@babel/core@7.23.5) + '@glimmer/vm-babel-plugins': 0.83.1(@babel/core@7.23.3) + babel-plugin-debug-macros: 0.3.4(@babel/core@7.23.3) babel-plugin-filter-imports: 4.0.0 broccoli-concat: 4.2.5 broccoli-debug: 0.6.5 @@ -13414,7 +13157,7 @@ packages: broccoli-funnel: 3.0.8 broccoli-merge-trees: 4.2.0 chalk: 4.1.2 - ember-auto-import: 2.7.0 + ember-auto-import: 2.6.3 ember-cli-babel: 7.26.11 ember-cli-get-component-path-option: 1.0.0 ember-cli-is-package-missing: 1.0.0 @@ -13435,15 +13178,15 @@ packages: - webpack dev: true - /ember-source@4.6.0(@babel/core@7.23.5)(@glint/template@1.2.1)(webpack@5.89.0): + /ember-source@4.6.0(@babel/core@7.23.3)(@glint/template@1.2.1)(webpack@5.89.0): resolution: {integrity: sha512-VIxKnb2CkNiVBfWkbNg+BxmyDEPQ+aam303TvXrp4kpykdaJwlck8PunxO5oJjFXJ7VnfJ6Y2ccV6+qerkHTsg==} engines: {node: '>= 12.*'} dependencies: '@babel/helper-module-imports': 7.22.15 - '@babel/plugin-transform-block-scoping': 7.23.4(@babel/core@7.23.5) + '@babel/plugin-transform-block-scoping': 7.23.3(@babel/core@7.23.3) '@ember/edition-utils': 1.2.0 - '@glimmer/vm-babel-plugins': 0.84.2(@babel/core@7.23.5) - babel-plugin-debug-macros: 0.3.4(@babel/core@7.23.5) + '@glimmer/vm-babel-plugins': 0.84.2(@babel/core@7.23.3) + babel-plugin-debug-macros: 0.3.4(@babel/core@7.23.3) babel-plugin-filter-imports: 4.0.0 broccoli-concat: 4.2.5 broccoli-debug: 0.6.5 @@ -13451,7 +13194,7 @@ packages: broccoli-funnel: 3.0.8 broccoli-merge-trees: 4.2.0 chalk: 4.1.2 - ember-auto-import: 2.7.0(@glint/template@1.2.1)(webpack@5.89.0) + ember-auto-import: 2.6.3(@glint/template@1.2.1)(webpack@5.89.0) ember-cli-babel: 7.26.11 ember-cli-get-component-path-option: 1.0.0 ember-cli-is-package-missing: 1.0.0 @@ -13472,17 +13215,17 @@ packages: - webpack dev: true - /ember-source@5.1.2(@babel/core@7.23.5)(@glimmer/component@1.1.2): + /ember-source@5.1.2(@babel/core@7.23.3)(@glimmer/component@1.1.2): resolution: {integrity: sha512-HTh8CANROxGuBIy/x3c42v4u4255IA55E40KXI3YABww/tV9N1vBRiXolkPcR8aSRDdl32UxL3wBV6/v8npxDQ==} engines: {node: '>= 16.*'} peerDependencies: '@glimmer/component': ^1.1.2 dependencies: '@babel/helper-module-imports': 7.22.15 - '@babel/plugin-transform-block-scoping': 7.23.4(@babel/core@7.23.5) + '@babel/plugin-transform-block-scoping': 7.23.3(@babel/core@7.23.3) '@ember/edition-utils': 1.2.0 '@glimmer/compiler': 0.84.2 - '@glimmer/component': 1.1.2(@babel/core@7.23.5) + '@glimmer/component': 1.1.2(@babel/core@7.23.3) '@glimmer/destroyable': 0.84.2 '@glimmer/env': 0.1.7 '@glimmer/global-context': 0.84.3 @@ -13496,18 +13239,18 @@ packages: '@glimmer/runtime': 0.84.2 '@glimmer/syntax': 0.84.2 '@glimmer/validator': 0.84.2 - '@glimmer/vm-babel-plugins': 0.84.2(@babel/core@7.23.5) + '@glimmer/vm-babel-plugins': 0.84.2(@babel/core@7.23.3) '@simple-dom/interface': 1.4.0 - babel-plugin-debug-macros: 0.3.4(@babel/core@7.23.5) + babel-plugin-debug-macros: 0.3.4(@babel/core@7.23.3) babel-plugin-filter-imports: 4.0.0 - backburner.js: 2.8.0 + backburner.js: 2.7.0 broccoli-concat: 4.2.5 broccoli-debug: 0.6.5 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.7.0 + ember-auto-import: 2.6.3 ember-cli-babel: 7.26.11 ember-cli-get-component-path-option: 1.0.0 ember-cli-is-package-missing: 1.0.0 @@ -13531,17 +13274,17 @@ packages: - webpack dev: true - /ember-source@5.3.0(@babel/core@7.23.5)(@glimmer/component@1.1.2)(@glint/template@1.2.1)(webpack@5.89.0): + /ember-source@5.3.0(@babel/core@7.23.3)(@glimmer/component@1.1.2)(@glint/template@1.2.1)(webpack@5.89.0): resolution: {integrity: sha512-MnsPEYo2gArYzlY0uu5bBH60oNYcgcayYQEd27nJumuaceN1sMLMu1jGQmjiQzZ4b6U5edEUNQbCIZ/9TXbASw==} engines: {node: '>= 16.*'} peerDependencies: '@glimmer/component': ^1.1.2 dependencies: '@babel/helper-module-imports': 7.22.15 - '@babel/plugin-transform-block-scoping': 7.23.4(@babel/core@7.23.5) + '@babel/plugin-transform-block-scoping': 7.23.3(@babel/core@7.23.3) '@ember/edition-utils': 1.2.0 '@glimmer/compiler': 0.84.2 - '@glimmer/component': 1.1.2(@babel/core@7.23.5) + '@glimmer/component': 1.1.2(@babel/core@7.23.3) '@glimmer/destroyable': 0.84.2 '@glimmer/env': 0.1.7 '@glimmer/global-context': 0.84.3 @@ -13555,18 +13298,18 @@ packages: '@glimmer/runtime': 0.84.2 '@glimmer/syntax': 0.84.2 '@glimmer/validator': 0.84.2 - '@glimmer/vm-babel-plugins': 0.84.3(@babel/core@7.23.5) + '@glimmer/vm-babel-plugins': 0.84.3(@babel/core@7.23.3) '@simple-dom/interface': 1.4.0 - babel-plugin-debug-macros: 0.3.4(@babel/core@7.23.5) + babel-plugin-debug-macros: 0.3.4(@babel/core@7.23.3) babel-plugin-filter-imports: 4.0.0 - backburner.js: 2.8.0 + backburner.js: 2.7.0 broccoli-concat: 4.2.5 broccoli-debug: 0.6.5 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.7.0(@glint/template@1.2.1)(webpack@5.89.0) + ember-auto-import: 2.6.3(@glint/template@1.2.1)(webpack@5.89.0) ember-cli-babel: 7.26.11 ember-cli-get-component-path-option: 1.0.0 ember-cli-is-package-missing: 1.0.0 @@ -13590,15 +13333,15 @@ packages: - webpack dev: true - /ember-source@5.4.0(@babel/core@7.23.5): + /ember-source@5.4.0(@babel/core@7.23.3): resolution: {integrity: sha512-y2fPd7DJ8D9IBjHSf6CPwU8TqNpqytpMgFyzf+9tPvu/u2Wdd45jEd2W1weKE3URQwPTcA0vK8Q1w6uzLOx/EA==} engines: {node: '>= 16.*'} dependencies: '@babel/helper-module-imports': 7.22.15 - '@babel/plugin-transform-block-scoping': 7.23.4(@babel/core@7.23.5) + '@babel/plugin-transform-block-scoping': 7.23.3(@babel/core@7.23.3) '@ember/edition-utils': 1.2.0 '@glimmer/compiler': 0.84.3 - '@glimmer/component': 1.1.2(@babel/core@7.23.5) + '@glimmer/component': 1.1.2(@babel/core@7.23.3) '@glimmer/destroyable': 0.84.3 '@glimmer/env': 0.1.7 '@glimmer/global-context': 0.84.3 @@ -13613,18 +13356,18 @@ packages: '@glimmer/syntax': 0.84.3 '@glimmer/util': 0.84.3 '@glimmer/validator': 0.84.3 - '@glimmer/vm-babel-plugins': 0.84.3(@babel/core@7.23.5) + '@glimmer/vm-babel-plugins': 0.84.3(@babel/core@7.23.3) '@simple-dom/interface': 1.4.0 - babel-plugin-debug-macros: 0.3.4(@babel/core@7.23.5) + babel-plugin-debug-macros: 0.3.4(@babel/core@7.23.3) babel-plugin-filter-imports: 4.0.0 - backburner.js: 2.8.0 + backburner.js: 2.7.0 broccoli-concat: 4.2.5 broccoli-debug: 0.6.5 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.7.0 + ember-auto-import: 2.6.3 ember-cli-babel: 7.26.11 ember-cli-get-component-path-option: 1.0.0 ember-cli-is-package-missing: 1.0.0 @@ -13648,15 +13391,15 @@ packages: - webpack dev: true - /ember-source@5.5.0-beta.2(@babel/core@7.23.5): - resolution: {integrity: sha512-3ek0HtY+KJ7x7FRukH9MMhjMvke/cz7ccdUFey5XuCgzw8XWXtfuRZ+IcJFLOW6FRoZGUwATpa0m7JyNj+OuYA==} + /ember-source@5.5.0-beta.1(@babel/core@7.23.3): + resolution: {integrity: sha512-FwbGHU1CTLDUALswJd8My7Lm0ZlZRW+d6Kyl6LiQxbAlUaUQYeXE3C9QunnMRMbGfEyBE29KDAmKoeFKKaUsew==} engines: {node: '>= 16.*'} dependencies: '@babel/helper-module-imports': 7.22.15 - '@babel/plugin-transform-block-scoping': 7.23.4(@babel/core@7.23.5) + '@babel/plugin-transform-block-scoping': 7.23.3(@babel/core@7.23.3) '@ember/edition-utils': 1.2.0 '@glimmer/compiler': 0.84.3 - '@glimmer/component': 1.1.2(@babel/core@7.23.5) + '@glimmer/component': 1.1.2(@babel/core@7.23.3) '@glimmer/destroyable': 0.84.3 '@glimmer/env': 0.1.7 '@glimmer/global-context': 0.84.3 @@ -13671,18 +13414,18 @@ packages: '@glimmer/syntax': 0.84.3 '@glimmer/util': 0.84.3 '@glimmer/validator': 0.84.3 - '@glimmer/vm-babel-plugins': 0.84.3(@babel/core@7.23.5) + '@glimmer/vm-babel-plugins': 0.84.3(@babel/core@7.23.3) '@simple-dom/interface': 1.4.0 - babel-plugin-debug-macros: 0.3.4(@babel/core@7.23.5) + babel-plugin-debug-macros: 0.3.4(@babel/core@7.23.3) babel-plugin-filter-imports: 4.0.0 - backburner.js: 2.8.0 + backburner.js: 2.7.0 broccoli-concat: 4.2.5 broccoli-debug: 0.6.5 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.7.0 + ember-auto-import: 2.6.3 ember-cli-babel: 7.26.11 ember-cli-get-component-path-option: 1.0.0 ember-cli-is-package-missing: 1.0.0 @@ -13706,12 +13449,12 @@ packages: - webpack dev: true - /ember-style-modifier@0.8.0(@babel/core@7.23.5): + /ember-style-modifier@0.8.0(@babel/core@7.23.3): resolution: {integrity: sha512-I7M+oZ+poYYOP7n521rYv7kkYZbxotL8VbtHYxLQ3tasRZYQJ21qfu3vVjydSjwyE3w7EZRgKngBoMhKSAEZnw==} engines: {node: 12.* || 14.* || >= 16} dependencies: ember-cli-babel: 7.26.11 - ember-modifier: 3.2.7(@babel/core@7.23.5) + ember-modifier: 3.2.7(@babel/core@7.23.3) transitivePeerDependencies: - '@babel/core' - supports-color @@ -13784,8 +13527,8 @@ packages: - supports-color dev: true - /ember-template-lint@5.13.0: - resolution: {integrity: sha512-AYxz9S9fVZfHPmTsymc7NwsD7FVmDUZyfC+KYpxDlK0wic7JSQx2FNQNqQSBFRLOuzn7VQ0/+1pX6DGqKDGswg==} + /ember-template-lint@5.12.0: + resolution: {integrity: sha512-QY3VVwuaYACOmOtF0VzQUUA8p6AYE3VC2LW/4RLsi6B5oa2E8wCfJwyo4wcXKLQb+eSqDMYmD/PQ4iizFFpz5g==} engines: {node: ^14.18.0 || ^16.0.0 || >= 18.0.0} hasBin: true dependencies: @@ -13934,10 +13677,6 @@ packages: /emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} - /emoji-regex@9.2.2: - resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} - dev: true - /emojis-list@3.0.0: resolution: {integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==} engines: {node: '>= 4'} @@ -13950,7 +13689,7 @@ packages: resolution: {integrity: sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==} dependencies: iconv-lite: 0.6.3 - dev: true + dev: false /end-of-stream@1.4.4: resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} @@ -13966,7 +13705,7 @@ packages: engines: {node: '>=10.2.0'} dependencies: '@types/cookie': 0.4.1 - '@types/cors': 2.8.17 + '@types/cors': 2.8.16 '@types/node': 15.14.9 accepts: 1.3.8 base64id: 2.0.0 @@ -14014,11 +13753,7 @@ packages: /err-code@1.1.2: resolution: {integrity: sha512-CJAN+O0/yA1CKfRn9SXOGctSpEM7DCon/r/5r2eXFMY2zCCJBasFhcM5I+1kh3Ap11FsQCX+vGHceNPvpWKhoA==} - dev: true - - /err-code@2.0.3: - resolution: {integrity: sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==} - dev: true + dev: false /errlop@2.2.0: resolution: {integrity: sha512-e64Qj9+4aZzjzzFpZC7p5kmm/ccCrbLhAJplhsDXQFs87XTsXwOpH4s1Io2s90Tau/8r2j9f4l/thhDevRjzxw==} @@ -14065,7 +13800,7 @@ packages: is-weakref: 1.0.2 object-inspect: 1.13.1 object-keys: 1.1.1 - object.assign: 4.1.5 + object.assign: 4.1.4 regexp.prototype.flags: 1.5.1 safe-array-concat: 1.0.1 safe-regex-test: 1.0.0 @@ -14110,42 +13845,12 @@ packages: /es6-promise@4.2.8: resolution: {integrity: sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==} - dev: true + dev: false /es6-promisify@5.0.0: resolution: {integrity: sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ==} dependencies: es6-promise: 4.2.8 - dev: true - - /esbuild@0.17.19: - resolution: {integrity: sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==} - engines: {node: '>=12'} - hasBin: true - requiresBuild: true - optionalDependencies: - '@esbuild/android-arm': 0.17.19 - '@esbuild/android-arm64': 0.17.19 - '@esbuild/android-x64': 0.17.19 - '@esbuild/darwin-arm64': 0.17.19 - '@esbuild/darwin-x64': 0.17.19 - '@esbuild/freebsd-arm64': 0.17.19 - '@esbuild/freebsd-x64': 0.17.19 - '@esbuild/linux-arm': 0.17.19 - '@esbuild/linux-arm64': 0.17.19 - '@esbuild/linux-ia32': 0.17.19 - '@esbuild/linux-loong64': 0.17.19 - '@esbuild/linux-mips64el': 0.17.19 - '@esbuild/linux-ppc64': 0.17.19 - '@esbuild/linux-riscv64': 0.17.19 - '@esbuild/linux-s390x': 0.17.19 - '@esbuild/linux-x64': 0.17.19 - '@esbuild/netbsd-x64': 0.17.19 - '@esbuild/openbsd-x64': 0.17.19 - '@esbuild/sunos-x64': 0.17.19 - '@esbuild/win32-arm64': 0.17.19 - '@esbuild/win32-ia32': 0.17.19 - '@esbuild/win32-x64': 0.17.19 dev: false /esbuild@0.18.20: @@ -14213,15 +13918,6 @@ packages: optionalDependencies: source-map: 0.6.1 - /eslint-compat-utils@0.1.2(eslint@8.55.0): - resolution: {integrity: sha512-Jia4JDldWnFNIru1Ehx1H5s9/yxiRHY/TimCuUc0jNexew3cF1gI6CYZil1ociakfWO3rRqFjl1mskBblB3RYg==} - engines: {node: '>=12'} - peerDependencies: - eslint: '>=6.0.0' - dependencies: - eslint: 8.55.0 - dev: true - /eslint-config-prettier@8.10.0(eslint@7.32.0): resolution: {integrity: sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg==} hasBin: true @@ -14231,13 +13927,13 @@ packages: eslint: 7.32.0 dev: true - /eslint-config-prettier@8.10.0(eslint@8.55.0): + /eslint-config-prettier@8.10.0(eslint@8.53.0): resolution: {integrity: sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg==} hasBin: true peerDependencies: eslint: '>=7.0.0' dependencies: - eslint: 8.55.0 + eslint: 8.53.0 dev: true /eslint-formatter-kakoune@1.0.0: @@ -14254,7 +13950,7 @@ packages: - supports-color dev: true - /eslint-module-utils@2.8.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.9)(eslint@8.55.0): + /eslint-module-utils@2.8.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.9)(eslint@8.53.0): resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} engines: {node: '>=4'} peerDependencies: @@ -14275,9 +13971,9 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 5.62.0(eslint@8.55.0)(typescript@5.2.2) + '@typescript-eslint/parser': 5.62.0(eslint@8.53.0)(typescript@5.2.2) debug: 3.2.7 - eslint: 8.55.0 + eslint: 8.53.0 eslint-import-resolver-node: 0.3.9 transitivePeerDependencies: - supports-color @@ -14324,7 +14020,7 @@ packages: - supports-color dev: true - /eslint-plugin-ember@11.11.1(eslint@8.55.0): + /eslint-plugin-ember@11.11.1(eslint@8.53.0): resolution: {integrity: sha512-dvsDa4LkDkGqCE2bzBIguRMi1g40JVwRWMSHmn8S7toRDxSOU3M7yromgi5eSAJX2O2vEvJZ9QnR15YDbvNfVQ==} engines: {node: 14.* || 16.* || >= 18} peerDependencies: @@ -14336,8 +14032,8 @@ packages: ember-rfc176-data: 0.3.18 ember-template-imports: 3.4.2 ember-template-recast: 6.1.4 - eslint: 8.55.0 - eslint-utils: 3.0.0(eslint@8.55.0) + eslint: 8.53.0 + eslint-utils: 3.0.0(eslint@8.53.0) estraverse: 5.3.0 lodash.camelcase: 4.3.0 lodash.kebabcase: 4.1.1 @@ -14357,25 +14053,24 @@ packages: snake-case: 3.0.4 dev: true - /eslint-plugin-es-x@7.5.0(eslint@8.55.0): - resolution: {integrity: sha512-ODswlDSO0HJDzXU0XvgZ3lF3lS3XAZEossh15Q2UHjwrJggWeBoKqqEsLTZLXl+dh5eOAozG0zRcYtuE35oTuQ==} + /eslint-plugin-es-x@7.3.0(eslint@8.53.0): + resolution: {integrity: sha512-W9zIs+k00I/I13+Bdkl/zG1MEO07G97XjUSQuH117w620SJ6bHtLUmoMvkGA2oYnI/gNdr+G7BONLyYnFaLLEQ==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: eslint: '>=8' dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.55.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.53.0) '@eslint-community/regexpp': 4.10.0 - eslint: 8.55.0 - eslint-compat-utils: 0.1.2(eslint@8.55.0) + eslint: 8.53.0 dev: true - /eslint-plugin-es@1.4.1(eslint@8.55.0): + /eslint-plugin-es@1.4.1(eslint@8.53.0): resolution: {integrity: sha512-5fa/gR2yR3NxQf+UXkeLeP8FBBl6tSgdrAz1+cF84v1FMM4twGwQoqTnn+QxFLcPOrF4pdKEJKDB/q9GoyJrCA==} engines: {node: '>=6.5.0'} peerDependencies: eslint: '>=4.19.1' dependencies: - eslint: 8.55.0 + eslint: 8.53.0 eslint-utils: 1.4.3 regexpp: 2.0.1 dev: true @@ -14391,7 +14086,7 @@ packages: regexpp: 3.2.0 dev: true - /eslint-plugin-import@2.29.0(@typescript-eslint/parser@5.62.0)(eslint@8.55.0): + /eslint-plugin-import@2.29.0(@typescript-eslint/parser@5.62.0)(eslint@8.53.0): resolution: {integrity: sha512-QPOO5NO6Odv5lpoTkddtutccQjysJuFxoPS7fAHO+9m9udNHvTCPSAMW9zGAYj8lAIdr40I8yPCdUYrncXtrwg==} engines: {node: '>=4'} peerDependencies: @@ -14401,16 +14096,16 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 5.62.0(eslint@8.55.0)(typescript@5.2.2) + '@typescript-eslint/parser': 5.62.0(eslint@8.53.0)(typescript@5.2.2) array-includes: 3.1.7 array.prototype.findlastindex: 1.2.3 array.prototype.flat: 1.3.2 array.prototype.flatmap: 1.3.2 debug: 3.2.7 doctrine: 2.1.0 - eslint: 8.55.0 + eslint: 8.53.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.9)(eslint@8.55.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.9)(eslint@8.53.0) hasown: 2.0.0 is-core-module: 2.13.1 is-glob: 4.0.3 @@ -14426,18 +14121,18 @@ packages: - supports-color dev: true - /eslint-plugin-n@16.3.1(eslint@8.55.0): + /eslint-plugin-n@16.3.1(eslint@8.53.0): resolution: {integrity: sha512-w46eDIkxQ2FaTHcey7G40eD+FhTXOdKudDXPUO2n9WNcslze/i/HT2qJ3GXjHngYSGDISIgPNhwGtgoix4zeOw==} engines: {node: '>=16.0.0'} peerDependencies: eslint: '>=7.0.0' dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.55.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.53.0) builtins: 5.0.1 - eslint: 8.55.0 - eslint-plugin-es-x: 7.5.0(eslint@8.55.0) + eslint: 8.53.0 + eslint-plugin-es-x: 7.3.0(eslint@8.53.0) get-tsconfig: 4.7.2 - ignore: 5.3.0 + ignore: 5.2.4 is-builtin-module: 3.2.1 is-core-module: 2.13.1 minimatch: 3.1.2 @@ -14454,22 +14149,22 @@ packages: eslint: 7.32.0 eslint-plugin-es: 3.0.1(eslint@7.32.0) eslint-utils: 2.1.0 - ignore: 5.3.0 + ignore: 5.2.4 minimatch: 3.1.2 resolve: 1.22.8 semver: 6.3.1 dev: true - /eslint-plugin-node@9.2.0(eslint@8.55.0): + /eslint-plugin-node@9.2.0(eslint@8.53.0): resolution: {integrity: sha512-2abNmzAH/JpxI4gEOwd6K8wZIodK3BmHbTxz4s79OIYwwIt2gkpEXlAouJXu4H1c9ySTnRso0tsuthSOZbUMlA==} engines: {node: '>=8.10.0'} peerDependencies: eslint: '>=5.16.0' dependencies: - eslint: 8.55.0 - eslint-plugin-es: 1.4.1(eslint@8.55.0) + eslint: 8.53.0 + eslint-plugin-es: 1.4.1(eslint@8.53.0) eslint-utils: 1.4.3 - ignore: 5.3.0 + ignore: 5.2.4 minimatch: 3.1.2 resolve: 1.22.8 semver: 6.3.1 @@ -14492,7 +14187,7 @@ packages: prettier-linter-helpers: 1.0.0 dev: true - /eslint-plugin-prettier@4.2.1(eslint-config-prettier@8.10.0)(eslint@8.55.0)(prettier@2.8.8): + /eslint-plugin-prettier@4.2.1(eslint-config-prettier@8.10.0)(eslint@8.53.0)(prettier@2.8.8): resolution: {integrity: sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==} engines: {node: '>=12.0.0'} peerDependencies: @@ -14503,8 +14198,8 @@ packages: eslint-config-prettier: optional: true dependencies: - eslint: 8.55.0 - eslint-config-prettier: 8.10.0(eslint@8.55.0) + eslint: 8.53.0 + eslint-config-prettier: 8.10.0(eslint@8.53.0) prettier: 2.8.8 prettier-linter-helpers: 1.0.0 dev: true @@ -14519,11 +14214,11 @@ packages: - eslint dev: true - /eslint-plugin-qunit@7.3.4(eslint@8.55.0): + /eslint-plugin-qunit@7.3.4(eslint@8.53.0): resolution: {integrity: sha512-EbDM0zJerH9zVdUswMJpcFF7wrrpvsGuYfNexUpa5hZkkdFhaFcX+yD+RSK4Nrauw4psMGlcqeWUMhaVo+Manw==} engines: {node: 12.x || 14.x || >=16.0.0} dependencies: - eslint-utils: 3.0.0(eslint@8.55.0) + eslint-utils: 3.0.0(eslint@8.53.0) requireindex: 1.2.0 transitivePeerDependencies: - eslint @@ -14576,13 +14271,13 @@ packages: eslint-visitor-keys: 2.1.0 dev: true - /eslint-utils@3.0.0(eslint@8.55.0): + /eslint-utils@3.0.0(eslint@8.53.0): resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} peerDependencies: eslint: '>=5' dependencies: - eslint: 8.55.0 + eslint: 8.53.0 eslint-visitor-keys: 2.1.0 dev: true @@ -14606,7 +14301,7 @@ packages: engines: {node: ^6.14.0 || ^8.10.0 || >=9.10.0} hasBin: true dependencies: - '@babel/code-frame': 7.23.5 + '@babel/code-frame': 7.22.13 ajv: 6.12.6 chalk: 2.4.2 cross-spawn: 6.0.5 @@ -14695,15 +14390,15 @@ packages: - supports-color dev: true - /eslint@8.55.0: - resolution: {integrity: sha512-iyUUAM0PCKj5QpwGfmCAG9XXbZCWsqP/eWAWrG/W0umvjuLRBECwSFdt+rCntju0xEH7teIABPwXpahftIaTdA==} + /eslint@8.53.0: + resolution: {integrity: sha512-N4VuiPjXDUa4xVeV/GC/RV3hQW9Nw+Y463lkWaKKXKYMvmRiRDAtfpuPFLN+E1/6ZhyR8J2ig+eVREnYgUsiag==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.55.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.53.0) '@eslint-community/regexpp': 4.10.0 - '@eslint/eslintrc': 2.1.4 - '@eslint/js': 8.55.0 + '@eslint/eslintrc': 2.1.3 + '@eslint/js': 8.53.0 '@humanwhocodes/config-array': 0.11.13 '@humanwhocodes/module-importer': 1.0.1 '@nodelib/fs.walk': 1.2.8 @@ -14725,7 +14420,7 @@ packages: glob-parent: 6.0.2 globals: 13.23.0 graphemer: 1.4.0 - ignore: 5.3.0 + ignore: 5.2.4 imurmurhash: 0.1.4 is-glob: 4.0.3 is-path-inside: 3.0.3 @@ -14847,7 +14542,7 @@ packages: p-finally: 1.0.0 signal-exit: 3.0.7 strip-eof: 1.0.0 - dev: true + dev: false /execa@1.0.0: resolution: {integrity: sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==} @@ -15097,12 +14792,12 @@ packages: transitivePeerDependencies: - supports-color - /fastboot-express-middleware@4.1.2: - resolution: {integrity: sha512-vnzEBV7gZ3lSoGiqG/7+006nHNA3z+ZnU/5u9jPHtKpjH28yEbvZq6PnAeTu24UR98jZVR0pnFbfX0co+O9PeA==} + /fastboot-express-middleware@4.1.1: + resolution: {integrity: sha512-RzobJdJXtFLOp+QtQlRSEm4RjepprLDITyYxPzd7M8LTH9jo2COhG0NFz2LFcv9Jtqlp8IzKh/0w2+hOt7JZow==} engines: {node: 12.* || 14.* || >=16} dependencies: chalk: 4.1.2 - fastboot: 4.1.2 + fastboot: 4.1.1 transitivePeerDependencies: - bufferutil - canvas @@ -15119,8 +14814,8 @@ packages: - supports-color dev: true - /fastboot@4.1.2: - resolution: {integrity: sha512-VJLmF0xdCNwIIuA7DQtN1KTAKfEGsbZGJ0cfKh64h6DeMh3Fhr2FCCxkPh8zYqGoqzjXFdFbtk60WS3f6HKqBg==} + /fastboot@4.1.1: + resolution: {integrity: sha512-XG7YprsAuAGZrUDhmJ0NFuEP0gpWg9LZwGWSS1I5+f0ETHKPWqb4x59sN2rU1nvCEETBK70z68tLsWsl9daomg==} engines: {node: 12.* || 14.* || >=16} dependencies: chalk: 4.1.2 @@ -15158,7 +14853,7 @@ packages: /figgy-pudding@3.5.2: resolution: {integrity: sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==} - dev: true + dev: false /figures@2.0.0: resolution: {integrity: sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA==} @@ -15195,8 +14890,8 @@ packages: flat-cache: 3.2.0 dev: true - /file-entry-cache@7.0.2: - resolution: {integrity: sha512-TfW7/1iI4Cy7Y8L6iqNdZQVvdXn0f8B4QcIXmkIbtTIe/Okm/nSlHb4IwGzRVOd3WfSieCgvf5cMzEfySAIl0g==} + /file-entry-cache@7.0.1: + resolution: {integrity: sha512-uLfFktPmRetVCbHe5UPuekWrQ6hENufnA46qEGbfACkK5drjTTdQYUragRgMjHldcbYG+nslUerqMPjbBSHXjQ==} engines: {node: '>=12.0.0'} dependencies: flat-cache: 3.2.0 @@ -15469,7 +15164,7 @@ packages: dependencies: inherits: 2.0.4 readable-stream: 2.3.8 - dev: true + dev: false /focus-trap@6.9.4: resolution: {integrity: sha512-v2NTsZe2FF59Y+sDykKY+XjqZ0cPfhq/hikWVL88BqLivnNiEffAsac6rP6H45ff9wG9LL5ToiDqrLEP9GX9mw==} @@ -15495,14 +15190,6 @@ packages: resolution: {integrity: sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==} engines: {node: '>=0.10.0'} - /foreground-child@3.1.1: - resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==} - engines: {node: '>=14'} - dependencies: - cross-spawn: 7.0.3 - signal-exit: 4.1.0 - dev: true - /form-data@3.0.1: resolution: {integrity: sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==} engines: {node: '>= 6'} @@ -15539,7 +15226,6 @@ packages: dependencies: inherits: 2.0.4 readable-stream: 2.3.8 - dev: true /fs-extra@0.24.0: resolution: {integrity: sha512-w1RvhdLZdU9V3vQdL+RooGlo6b9R9WVoBanOfoJvosWlqSKvrjFlci2oVhwvLwZXBtM7khyPvZ8r3fwsim3o0A==} @@ -15567,8 +15253,8 @@ packages: jsonfile: 6.1.0 universalify: 2.0.1 - /fs-extra@11.2.0: - resolution: {integrity: sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==} + /fs-extra@11.1.1: + resolution: {integrity: sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==} engines: {node: '>=14.14'} dependencies: graceful-fs: 4.2.11 @@ -15675,7 +15361,7 @@ packages: iferr: 0.1.5 imurmurhash: 0.1.4 readable-stream: 2.3.8 - dev: true + dev: false /fs.realpath@1.0.0: resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} @@ -15730,7 +15416,7 @@ packages: /get-caller-file@1.0.3: resolution: {integrity: sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==} - dev: true + dev: false /get-caller-file@2.0.5: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} @@ -15766,7 +15452,6 @@ packages: /get-stream@3.0.0: resolution: {integrity: sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ==} engines: {node: '>=4'} - dev: true /get-stream@4.1.0: resolution: {integrity: sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==} @@ -15824,18 +15509,6 @@ packages: /glob-to-regexp@0.4.1: resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} - /glob@10.3.10: - resolution: {integrity: sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==} - engines: {node: '>=16 || 14 >=14.17'} - hasBin: true - dependencies: - foreground-child: 3.1.1 - jackspeak: 2.3.6 - minimatch: 9.0.3 - minipass: 7.0.4 - path-scurry: 1.10.1 - dev: true - /glob@5.0.15: resolution: {integrity: sha512-c9IPMazfRITpmAAKi22dK1VKxGDX9ehhqfABDriL/lzO92xcUKEJPQHrVA/2YHSNFB4iFlykVmWvwo48nr3OxA==} dependencies: @@ -15933,7 +15606,7 @@ packages: dir-glob: 3.0.1 fast-glob: 3.3.2 glob: 7.2.3 - ignore: 5.3.0 + ignore: 5.2.4 merge2: 1.4.1 slash: 3.0.0 @@ -15946,7 +15619,7 @@ packages: dir-glob: 3.0.1 fast-glob: 3.3.2 glob: 7.2.3 - ignore: 5.3.0 + ignore: 5.2.4 merge2: 1.4.1 slash: 3.0.0 dev: false @@ -15958,7 +15631,7 @@ packages: array-union: 2.1.0 dir-glob: 3.0.1 fast-glob: 3.3.2 - ignore: 5.3.0 + ignore: 5.2.4 merge2: 1.4.1 slash: 3.0.0 @@ -15968,7 +15641,7 @@ packages: dependencies: dir-glob: 3.0.1 fast-glob: 3.3.2 - ignore: 5.3.0 + ignore: 5.2.4 merge2: 1.4.1 slash: 4.0.0 dev: true @@ -16027,7 +15700,6 @@ packages: p-cancelable: 1.1.0 to-readable-stream: 1.0.0 url-parse-lax: 3.0.0 - dev: true /graceful-fs@4.2.11: resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} @@ -16189,7 +15861,7 @@ packages: /highlight.js@10.7.3: resolution: {integrity: sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==} - dev: true + dev: false /home-or-tmp@2.0.0: resolution: {integrity: sha512-ycURW7oUxE2sNiPVw1HVEFsW+ecOpJ5zaj7eC0RlwhibhRBod20muUN8qu/gzx956YrLolVvs1MTXwKgC2rVEg==} @@ -16229,13 +15901,6 @@ packages: lru-cache: 7.18.3 dev: true - /hosted-git-info@7.0.1: - resolution: {integrity: sha512-+K84LB1DYwMHoHSgaOY/Jfhw3ucPmSET5v98Ke/HdNSw4a0UktWzyW1mjhjpuxxTqOOsfWT/7iVshHmVZ4IpOA==} - engines: {node: ^16.14.0 || >=18.0.0} - dependencies: - lru-cache: 10.1.0 - dev: true - /html-encoding-sniffer@2.0.1: resolution: {integrity: sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==} engines: {node: '>=10'} @@ -16260,11 +15925,9 @@ packages: /http-cache-semantics@3.8.1: resolution: {integrity: sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w==} - dev: true /http-cache-semantics@4.1.1: resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==} - dev: true /http-errors@1.6.3: resolution: {integrity: sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==} @@ -16296,7 +15959,7 @@ packages: debug: 3.1.0 transitivePeerDependencies: - supports-color - dev: true + dev: false /http-proxy-agent@4.0.1(supports-color@8.1.1): resolution: {integrity: sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==} @@ -16337,7 +16000,7 @@ packages: debug: 3.2.7 transitivePeerDependencies: - supports-color - dev: true + dev: false /https-proxy-agent@5.0.1(supports-color@8.1.1): resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} @@ -16368,7 +16031,7 @@ packages: resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==} dependencies: ms: 2.1.3 - dev: true + dev: false /iconv-lite@0.4.24: resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} @@ -16382,13 +16045,13 @@ packages: dependencies: safer-buffer: 2.1.2 - /icss-utils@5.1.0(postcss@8.4.32): + /icss-utils@5.1.0(postcss@8.4.31): resolution: {integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==} engines: {node: ^10 || ^12 || >= 14} peerDependencies: postcss: ^8.1.0 dependencies: - postcss: 8.4.32 + postcss: 8.4.31 /ieee754@1.2.1: resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} @@ -16396,15 +16059,15 @@ packages: /iferr@0.1.5: resolution: {integrity: sha512-DUNFN5j7Tln0D+TxzloUjKB+CtVu6myn0JEFak6dG18mNt9YkQ6lzGCdafwofISZ1lLF3xRHJ98VKy9ynkcFaA==} - dev: true + dev: false /ignore@4.0.6: resolution: {integrity: sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==} engines: {node: '>= 4'} dev: true - /ignore@5.3.0: - resolution: {integrity: sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==} + /ignore@5.2.4: + resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==} engines: {node: '>= 4'} /import-fresh@3.3.0: @@ -16581,7 +16244,7 @@ packages: /invert-kv@2.0.0: resolution: {integrity: sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==} engines: {node: '>=4'} - dev: true + dev: false /invert-kv@3.0.1: resolution: {integrity: sha512-CYdFeFexxhv/Bcny+Q0BfOV+ltRlJcd4BBZBYFX/O0u4npJrgZtIcjokegtiSMAvlMTJ+Koq0GBCc//3bueQxw==} @@ -16590,7 +16253,7 @@ packages: /ip@1.1.5: resolution: {integrity: sha512-rBtCAQAJm8A110nbwn6YdveUnuZH3WrC36IwkRXxDnq53JvXA2NVQvB7IHyKomxK1MJ4VDNw3UtFDdXQ+AvLYA==} - dev: true + dev: false /ipaddr.js@1.9.1: resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} @@ -16699,7 +16362,7 @@ packages: engines: {node: '>=0.10.0'} dependencies: number-is-nan: 1.0.1 - dev: true + dev: false /is-fullwidth-code-point@2.0.0: resolution: {integrity: sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==} @@ -16742,7 +16405,7 @@ packages: /is-language-code@3.1.0: resolution: {integrity: sha512-zJdQ3QTeLye+iphMeK3wks+vXSRFKh68/Pnlw7aOfApFSEIOhYa8P9vwwa6QrImNNBMJTiL1PpYF0f4BxDuEgA==} dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.2 dev: true /is-negative-zero@2.0.2: @@ -16800,7 +16463,6 @@ packages: /is-plain-object@5.0.0: resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==} engines: {node: '>=0.10.0'} - dev: true /is-potential-custom-element-name@1.0.1: resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} @@ -16913,11 +16575,6 @@ packages: /isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} - /isexe@3.1.1: - resolution: {integrity: sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==} - engines: {node: '>=16'} - dev: true - /isobject@2.1.0: resolution: {integrity: sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==} engines: {node: '>=0.10.0'} @@ -16937,8 +16594,8 @@ packages: resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==} engines: {node: '>=8'} dependencies: - '@babel/core': 7.23.5(supports-color@8.1.1) - '@babel/parser': 7.23.5 + '@babel/core': 7.23.3(supports-color@8.1.1) + '@babel/parser': 7.23.3 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 semver: 6.3.1 @@ -16950,8 +16607,8 @@ packages: resolution: {integrity: sha512-EAMEJBsYuyyztxMxW3g7ugGPkrZsV57v0Hmv3mm1uQsmB+QnZuepg731CRaIgeUVSdmsTngOkSnauNF8p7FIhA==} engines: {node: '>=10'} dependencies: - '@babel/core': 7.23.5(supports-color@8.1.1) - '@babel/parser': 7.23.5 + '@babel/core': 7.23.3(supports-color@8.1.1) + '@babel/parser': 7.23.3 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 semver: 7.5.4 @@ -17011,15 +16668,6 @@ packages: is-object: 1.0.2 dev: true - /jackspeak@2.3.6: - resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==} - engines: {node: '>=14'} - dependencies: - '@isaacs/cliui': 8.0.2 - optionalDependencies: - '@pkgjs/parseargs': 0.11.0 - dev: true - /jest-changed-files@29.7.0: resolution: {integrity: sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -17098,11 +16746,11 @@ packages: ts-node: optional: true dependencies: - '@babel/core': 7.23.5(supports-color@8.1.1) + '@babel/core': 7.23.3(supports-color@8.1.1) '@jest/test-sequencer': 29.7.0 '@jest/types': 29.6.3 '@types/node': 15.14.9 - babel-jest: 29.7.0(@babel/core@7.23.5) + babel-jest: 29.7.0(@babel/core@7.23.3) chalk: 4.1.2 ci-info: 3.9.0 deepmerge: 4.3.1 @@ -17209,7 +16857,7 @@ packages: resolution: {integrity: sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@babel/code-frame': 7.23.5 + '@babel/code-frame': 7.22.13 '@jest/types': 29.6.3 '@types/stack-utils': 2.0.3 chalk: 4.1.2 @@ -17333,15 +16981,15 @@ packages: resolution: {integrity: sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@babel/core': 7.23.5(supports-color@8.1.1) - '@babel/generator': 7.23.5 - '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-syntax-typescript': 7.23.3(@babel/core@7.23.5) - '@babel/types': 7.23.5 + '@babel/core': 7.23.3(supports-color@8.1.1) + '@babel/generator': 7.23.3 + '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-syntax-typescript': 7.23.3(@babel/core@7.23.3) + '@babel/types': 7.23.3 '@jest/expect-utils': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - babel-preset-current-node-syntax: 1.0.1(@babel/core@7.23.5) + babel-preset-current-node-syntax: 1.0.1(@babel/core@7.23.3) chalk: 4.1.2 expect: 29.7.0 graceful-fs: 4.2.11 @@ -17570,7 +17218,6 @@ packages: /json-buffer@3.0.0: resolution: {integrity: sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=} - dev: true /json-buffer@3.0.1: resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} @@ -17582,11 +17229,6 @@ packages: /json-parse-even-better-errors@2.3.1: resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} - /json-parse-even-better-errors@3.0.1: - resolution: {integrity: sha512-aatBvbL26wVUCLmbWdCpeu9iF5wOyWpagiKkInA+kfws3sWdBrTnsvN2CKcyCYyUrc7rebNBlK6+kteg7ksecg==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - dev: true - /json-schema-traverse@0.4.1: resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} @@ -17597,14 +17239,10 @@ packages: resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} dev: true - /json-stable-stringify@1.1.0: - resolution: {integrity: sha512-zfA+5SuwYN2VWqN1/5HZaDzQKLJHaBVMZIIM+wuYjdptkaQsqzDdqjqf+lZZJUuJq1aanHiY8LhH8LmH+qBYJA==} - engines: {node: '>= 0.4'} + /json-stable-stringify@1.0.2: + resolution: {integrity: sha512-eunSSaEnxV12z+Z73y/j5N37/In40GK4GmsSy+tEHJMxknvqnA7/djeYtAgW0GsWHUfg+847WJjKaEylk2y09g==} dependencies: - call-bind: 1.0.5 - isarray: 2.0.5 jsonify: 0.0.1 - object-keys: 1.1.1 /json5@0.5.1: resolution: {integrity: sha512-4xrs1aW+6N5DalkqSVA8fxh458CXvR99WU8WLKmq4v8eWAL86Xo3BVqyd3SkA9wEVjCMqyvvRRkshAdOnBp5rw==} @@ -17658,7 +17296,6 @@ packages: resolution: {integrity: sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==} dependencies: json-buffer: 3.0.0 - dev: true /keyv@4.5.4: resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} @@ -17713,14 +17350,14 @@ packages: engines: {node: '>=8'} dependencies: package-json: 6.5.0 - dev: true + dev: false /lcid@2.0.0: resolution: {integrity: sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==} engines: {node: '>=6'} dependencies: invert-kv: 2.0.0 - dev: true + dev: false /lcid@3.1.1: resolution: {integrity: sha512-M6T051+5QCGLBQb8id3hdvIW8+zeFV2FyBGFS9IEK5H9Wt4MueD4bW1eWikpHgZp+5xR3l5c8pZUkQsIA0BFZg==} @@ -18015,17 +17652,10 @@ packages: /lowercase-keys@1.0.1: resolution: {integrity: sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==} engines: {node: '>=0.10.0'} - dev: true /lowercase-keys@2.0.0: resolution: {integrity: sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==} engines: {node: '>=8'} - dev: true - - /lru-cache@10.1.0: - resolution: {integrity: sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag==} - engines: {node: 14 || >=16.14} - dev: true /lru-cache@5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} @@ -18094,7 +17724,7 @@ packages: ssri: 6.0.2 transitivePeerDependencies: - supports-color - dev: true + dev: false /makeerror@1.0.12: resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==} @@ -18106,7 +17736,6 @@ packages: engines: {node: '>=6'} dependencies: p-defer: 1.0.0 - dev: true /map-cache@0.2.2: resolution: {integrity: sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==} @@ -18244,7 +17873,7 @@ packages: map-age-cleaner: 0.1.3 mimic-fn: 2.1.0 p-is-promise: 2.1.0 - dev: true + dev: false /mem@5.1.1: resolution: {integrity: sha512-qvwipnozMohxLXG1pOqoLiZKNkC4r4qqRucSoDwXowsNGDSULiqFTRUF05vcZWnwJSG22qTsynQhxbaMtnX9gw==} @@ -18380,7 +18009,6 @@ packages: /mimic-response@1.0.1: resolution: {integrity: sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==} engines: {node: '>=4'} - dev: true /min-indent@1.0.1: resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} @@ -18415,13 +18043,6 @@ packages: brace-expansion: 2.0.1 dev: true - /minimatch@9.0.3: - resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} - engines: {node: '>=16 || 14 >=14.17'} - dependencies: - brace-expansion: 2.0.1 - dev: true - /minimist-options@4.1.0: resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==} engines: {node: '>= 6'} @@ -18443,11 +18064,6 @@ packages: safe-buffer: 5.2.1 yallist: 3.1.1 - /minipass@7.0.4: - resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==} - engines: {node: '>=16 || 14 >=14.17'} - dev: true - /mississippi@3.0.0: resolution: {integrity: sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==} engines: {node: '>=4.0.0'} @@ -18462,7 +18078,7 @@ packages: pumpify: 1.5.1 stream-each: 1.2.3 through2: 2.0.5 - dev: true + dev: false /mixin-deep@1.3.2: resolution: {integrity: sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==} @@ -18490,11 +18106,6 @@ packages: engines: {node: '>=10'} hasBin: true - /mkdirp@3.0.1: - resolution: {integrity: sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==} - engines: {node: '>=10'} - hasBin: true - /mktemp@0.4.0: resolution: {integrity: sha512-IXnMcJ6ZyTuhRmJSjzvHSRhlVPiN9Jwc6e59V0bEJ0ba6OBeX2L0E+mRN1QseeOF4mM+F1Rit6Nh7o+rl2Yn/A==} engines: {node: '>0.9'} @@ -18523,7 +18134,7 @@ packages: mkdirp: 0.5.6 rimraf: 2.7.1 run-queue: 1.0.3 - dev: true + dev: false /mr-dep-walk@1.4.0: resolution: {integrity: sha512-UaDUqkLsd0ep3jAx2+A7BIpfw8wKxhthDj3yPNLBnevipK1CUFJJiz24jRVLw18q7R2aEiRq13WwUBlnwfbQqQ==} @@ -18564,7 +18175,7 @@ packages: any-promise: 1.3.0 object-assign: 4.1.1 thenify-all: 1.6.0 - dev: true + dev: false /nanoid@3.3.7: resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} @@ -18622,7 +18233,7 @@ packages: encoding: 0.1.13 json-parse-better-errors: 1.0.2 safe-buffer: 5.2.1 - dev: true + dev: false /node-fetch@2.7.0: resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} @@ -18651,8 +18262,8 @@ packages: uuid: 8.3.2 which: 2.0.2 - /node-releases@2.0.14: - resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} + /node-releases@2.0.13: + resolution: {integrity: sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==} /node-watch@0.7.3: resolution: {integrity: sha512-3l4E8uMPY1HdMMryPRUAl+oIHtXtyiTlIiESNSVSNxcPfzAFzeTbXFQkZfAwBbo0B1qMSG8nUABx+Gd+YrbKrQ==} @@ -18666,7 +18277,7 @@ packages: /normalize-git-url@3.0.2: resolution: {integrity: sha512-UEmKT33ssKLLoLCsFJ4Si4fmNQsedNwivXpuNTR4V1I97jU9WZlicTV1xn5QAG5itE5B3Z9zhl8OItP6wIGkRA==} - dev: true + dev: false /normalize-package-data@2.5.0: resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} @@ -18687,16 +18298,6 @@ packages: validate-npm-package-license: 3.0.4 dev: true - /normalize-package-data@6.0.0: - resolution: {integrity: sha512-UL7ELRVxYBHBgYEtZCXjxuD5vPxnmvMGq0jp/dGPKKrN7tfsBh2IY7TlJ15WWwdjRWD3RJbnsygUurTK3xkPkg==} - engines: {node: ^16.14.0 || >=18.0.0} - dependencies: - hosted-git-info: 7.0.1 - is-core-module: 2.13.1 - semver: 7.5.4 - validate-npm-package-license: 3.0.4 - dev: true - /normalize-path@2.1.1: resolution: {integrity: sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==} engines: {node: '>=0.10.0'} @@ -18720,28 +18321,15 @@ packages: /normalize-url@4.5.1: resolution: {integrity: sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==} engines: {node: '>=8'} - dev: true /npm-git-info@1.0.3: resolution: {integrity: sha512-i5WBdj4F/ULl16z9ZhsJDMl1EQCMQhHZzBwNnKL2LOA+T8IHNeRkLCVz9uVV9SzUdGTbDq+1oXhIYMe+8148vw==} dev: true - /npm-install-checks@6.3.0: - resolution: {integrity: sha512-W29RiK/xtpCGqn6f3ixfRYGk+zRyr+Ew9F2E20BfXxT5/euLdA/Nm7fO7OeTGuAmTs30cpgInyJ0cYe708YTZw==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - dependencies: - semver: 7.5.4 - dev: true - /npm-normalize-package-bin@2.0.0: resolution: {integrity: sha512-awzfKUO7v0FscrSpRoogyNm0sajikhBWpU0QMrW09AMi9n1PoKU6WaIqUzuJSQnpciZZmJ/jMZ2Egfmb/9LiWQ==} engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - /npm-normalize-package-bin@3.0.1: - resolution: {integrity: sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - dev: true - /npm-package-arg@10.1.0: resolution: {integrity: sha512-uFyyCEmgBfZTtrKk/5xDfHp6+MdrqGotX/VoOyEEl3mBwiEE5FlBaePanazJSVMPT7vKepcjYBY2ztg9A3yPIA==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -18752,16 +18340,6 @@ packages: validate-npm-package-name: 5.0.0 dev: true - /npm-package-arg@11.0.1: - resolution: {integrity: sha512-M7s1BD4NxdAvBKUPqqRW957Xwcl/4Zvo8Aj+ANrzvIPzGJZElrH7Z//rSaec2ORcND6FHHLnZeY8qgTpXDMFQQ==} - engines: {node: ^16.14.0 || >=18.0.0} - dependencies: - hosted-git-info: 7.0.1 - proc-log: 3.0.0 - semver: 7.5.4 - validate-npm-package-name: 5.0.0 - dev: true - /npm-package-arg@8.1.5: resolution: {integrity: sha512-LhgZrg0n0VgvzVdSm1oiZworPbTxYHUJCgtsJW8mGvlDpxTM1vSJc3m5QZeUkhAHIzbz3VCHd/R4osi1L1Tg/Q==} engines: {node: '>=10'} @@ -18780,16 +18358,6 @@ packages: validate-npm-package-name: 4.0.0 dev: true - /npm-pick-manifest@9.0.0: - resolution: {integrity: sha512-VfvRSs/b6n9ol4Qb+bDwNGUXutpy76x6MARw/XssevE0TnctIKcmklJZM5Z7nqs5z5aW+0S63pgCNbpkUNNXBg==} - engines: {node: ^16.14.0 || >=18.0.0} - dependencies: - npm-install-checks: 6.3.0 - npm-normalize-package-bin: 3.0.1 - npm-package-arg: 11.0.1 - semver: 7.5.4 - dev: true - /npm-run-all@4.1.5: resolution: {integrity: sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==} engines: {node: '>= 4'} @@ -18849,7 +18417,7 @@ packages: /number-is-nan@1.0.1: resolution: {integrity: sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==} engines: {node: '>=0.10.0'} - dev: true + dev: false /nwsapi@2.2.7: resolution: {integrity: sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==} @@ -18883,8 +18451,8 @@ packages: dependencies: isobject: 3.0.1 - /object.assign@4.1.5: - resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==} + /object.assign@4.1.4: + resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.5 @@ -19006,7 +18574,7 @@ packages: dependencies: chalk: 2.4.2 cli-cursor: 2.1.0 - cli-spinners: 2.9.2 + cli-spinners: 2.9.1 log-symbols: 2.2.0 strip-ansi: 5.2.0 wcwidth: 1.0.1 @@ -19018,7 +18586,7 @@ packages: bl: 4.1.0 chalk: 4.1.2 cli-cursor: 3.1.0 - cli-spinners: 2.9.2 + cli-spinners: 2.9.1 is-interactive: 1.0.0 is-unicode-supported: 0.1.0 log-symbols: 4.1.0 @@ -19037,7 +18605,7 @@ packages: execa: 1.0.0 lcid: 2.0.0 mem: 4.3.0 - dev: true + dev: false /os-locale@5.0.0: resolution: {integrity: sha512-tqZcNEDAIZKBEPnHPlVDvKrp7NzgLi7jRmhKiUoa2NUmhl13FtkAGLUVR+ZsYvApBQdBfYm43A4tXXQ4IrYLBA==} @@ -19066,12 +18634,10 @@ packages: /p-cancelable@1.1.0: resolution: {integrity: sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==} engines: {node: '>=6'} - dev: true /p-defer@1.0.0: resolution: {integrity: sha512-wB3wfAxZpk2AzOfUMJNL+d36xothRSyj8EXOa4f6GMqYDN9BJaaSISbsk+wS9abmnebVw95C2Kb5t85UmpCxuw==} engines: {node: '>=4'} - dev: true /p-defer@3.0.0: resolution: {integrity: sha512-ugZxsxmtTln604yeYd29EGrNhazN2lywetzpKhfmQjW/VJmhpDmWbiX+h0zL8V91R0UXkhb3KtPmyq9PZw3aYw==} @@ -19093,7 +18659,6 @@ packages: /p-is-promise@2.1.0: resolution: {integrity: sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==} engines: {node: '>=6'} - dev: true /p-limit@1.3.0: resolution: {integrity: sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==} @@ -19152,7 +18717,7 @@ packages: /p-map@1.2.0: resolution: {integrity: sha512-r6zKACMNhjPJMTl8KcFH4li//gkrXWfbD6feV8l6doRHlzljFWGJ2AP6iKaCJXyZmAUMOPtvbW7EXkbWO/pLEA==} engines: {node: '>=4'} - dev: true + dev: false /p-map@3.0.0: resolution: {integrity: sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==} @@ -19184,7 +18749,6 @@ packages: registry-auth-token: 4.2.2 registry-url: 5.1.0 semver: 6.3.1 - dev: true /parallel-transform@1.2.0: resolution: {integrity: sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==} @@ -19192,7 +18756,7 @@ packages: cyclist: 1.0.2 inherits: 2.0.4 readable-stream: 2.3.8 - dev: true + dev: false /parent-module@1.0.1: resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} @@ -19201,10 +18765,6 @@ packages: callsites: 3.1.0 dev: true - /parse-github-repo-url@1.4.1: - resolution: {integrity: sha512-bSWyzBKqcSL4RrncTpGsEKoJ7H8a4L3++ifTAbTFeMHyq2wRV+42DGmQcHIrJIvdcacjIOxEuKH/w4tthF17gg==} - dev: true - /parse-json@4.0.0: resolution: {integrity: sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==} engines: {node: '>=4'} @@ -19217,7 +18777,7 @@ packages: resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} engines: {node: '>=8'} dependencies: - '@babel/code-frame': 7.23.5 + '@babel/code-frame': 7.22.13 error-ex: 1.3.2 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 @@ -19239,11 +18799,11 @@ packages: resolution: {integrity: sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==} dependencies: parse5: 6.0.1 - dev: true + dev: false /parse5@5.1.1: resolution: {integrity: sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==} - dev: true + dev: false /parse5@6.0.1: resolution: {integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==} @@ -19305,14 +18865,6 @@ packages: dependencies: path-root-regex: 0.1.2 - /path-scurry@1.10.1: - resolution: {integrity: sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==} - engines: {node: '>=16 || 14 >=14.17'} - dependencies: - lru-cache: 10.1.0 - minipass: 7.0.4 - dev: true - /path-to-regexp@0.1.7: resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==} @@ -19399,54 +18951,54 @@ packages: resolution: {integrity: sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==} engines: {node: '>=0.10.0'} - /postcss-modules-extract-imports@3.0.0(postcss@8.4.32): + /postcss-modules-extract-imports@3.0.0(postcss@8.4.31): resolution: {integrity: sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==} engines: {node: ^10 || ^12 || >= 14} peerDependencies: postcss: ^8.1.0 dependencies: - postcss: 8.4.32 + postcss: 8.4.31 - /postcss-modules-local-by-default@4.0.3(postcss@8.4.32): + /postcss-modules-local-by-default@4.0.3(postcss@8.4.31): resolution: {integrity: sha512-2/u2zraspoACtrbFRnTijMiQtb4GW4BvatjaG/bCjYQo8kLTdevCUlwuBHx2sCnSyrI3x3qj4ZK1j5LQBgzmwA==} engines: {node: ^10 || ^12 || >= 14} peerDependencies: postcss: ^8.1.0 dependencies: - icss-utils: 5.1.0(postcss@8.4.32) - postcss: 8.4.32 + icss-utils: 5.1.0(postcss@8.4.31) + postcss: 8.4.31 postcss-selector-parser: 6.0.13 postcss-value-parser: 4.2.0 - /postcss-modules-scope@3.0.0(postcss@8.4.32): + /postcss-modules-scope@3.0.0(postcss@8.4.31): resolution: {integrity: sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==} engines: {node: ^10 || ^12 || >= 14} peerDependencies: postcss: ^8.1.0 dependencies: - postcss: 8.4.32 + postcss: 8.4.31 postcss-selector-parser: 6.0.13 - /postcss-modules-values@4.0.0(postcss@8.4.32): + /postcss-modules-values@4.0.0(postcss@8.4.31): resolution: {integrity: sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==} engines: {node: ^10 || ^12 || >= 14} peerDependencies: postcss: ^8.1.0 dependencies: - icss-utils: 5.1.0(postcss@8.4.32) - postcss: 8.4.32 + icss-utils: 5.1.0(postcss@8.4.31) + postcss: 8.4.31 /postcss-resolve-nested-selector@0.1.1: resolution: {integrity: sha512-HvExULSwLqHLgUy1rl3ANIqCsvMS0WHss2UOsXhXnQaZ9VCc2oBvIpXrl00IUFT5ZDITME0o6oiXeiHr2SAIfw==} dev: true - /postcss-safe-parser@6.0.0(postcss@8.4.32): + /postcss-safe-parser@6.0.0(postcss@8.4.31): resolution: {integrity: sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==} engines: {node: '>=12.0'} peerDependencies: postcss: ^8.3.3 dependencies: - postcss: 8.4.32 + postcss: 8.4.31 dev: true /postcss-selector-parser@6.0.13: @@ -19459,8 +19011,8 @@ packages: /postcss-value-parser@4.2.0: resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} - /postcss@8.4.32: - resolution: {integrity: sha512-D/kj5JNu6oo2EIy+XL/26JEDTlIbB8hw85G8StOE6L74RQAVVP5rej6wxCNqyMbR4RkPfqvezVbPw81Ngd6Kcw==} + /postcss@8.4.31: + resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} engines: {node: ^10 || ^12 || >=14} dependencies: nanoid: 3.3.7 @@ -19480,7 +19032,6 @@ packages: /prepend-http@2.0.0: resolution: {integrity: sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==} engines: {node: '>=4'} - dev: true /prettier-linter-helpers@1.0.0: resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==} @@ -19535,7 +19086,6 @@ packages: /process-nextick-args@2.0.1: resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} - dev: true /process-relative-require@1.0.0: resolution: {integrity: sha512-r8G5WJPozMJAiv8sDdVWKgJ4In/zBXqwJdMCGAXQt2Kd3HdbAuJVzWYM4JW150hWoaI9DjhtbjcsCCHIMxm8RA==} @@ -19545,7 +19095,6 @@ packages: /progress@2.0.3: resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==} engines: {node: '>=0.4.0'} - dev: true /promise-inflight@1.0.1(bluebird@3.7.2): resolution: {integrity: sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==} @@ -19556,7 +19105,7 @@ packages: optional: true dependencies: bluebird: 3.7.2 - dev: true + dev: false /promise-map-series@0.2.3: resolution: {integrity: sha512-wx9Chrutvqu1N/NHzTayZjE1BgIwt6SJykQoCOic4IZ9yUDjKyVYrpLa/4YCNsV61eRENfs29hrEquVuB13Zlw==} @@ -19573,15 +19122,7 @@ packages: dependencies: err-code: 1.1.2 retry: 0.10.1 - dev: true - - /promise-retry@2.0.1: - resolution: {integrity: sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==} - engines: {node: '>=10'} - dependencies: - err-code: 2.0.3 - retry: 0.12.0 - dev: true + dev: false /promise.hash.helper@1.0.8: resolution: {integrity: sha512-KYcnXctWUWyVD3W3Ye0ZDuA1N8Szrh85cVCxpG6xYrOk/0CttRtYCmU30nWsUch0NuExQQ63QXvzRE6FLimZmg==} @@ -19629,7 +19170,7 @@ packages: dependencies: end-of-stream: 1.4.4 once: 1.4.0 - dev: true + dev: false /pump@3.0.0: resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==} @@ -19643,7 +19184,7 @@ packages: duplexify: 3.7.1 inherits: 2.0.4 pump: 2.0.1 - dev: true + dev: false /punycode@2.3.1: resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} @@ -19763,7 +19304,6 @@ packages: ini: 1.3.8 minimist: 1.2.8 strip-json-comments: 2.0.1 - dev: true /react-is@18.2.0: resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} @@ -19818,7 +19358,6 @@ packages: safe-buffer: 5.1.2 string_decoder: 1.1.1 util-deprecate: 1.0.2 - dev: true /readable-stream@3.6.2: resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} @@ -19903,7 +19442,7 @@ packages: /regenerator-transform@0.15.2: resolution: {integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==} dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.2 /regex-not@1.0.2: resolution: {integrity: sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==} @@ -19953,14 +19492,12 @@ packages: engines: {node: '>=6.0.0'} dependencies: rc: 1.2.8 - dev: true /registry-url@5.1.0: resolution: {integrity: sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==} engines: {node: '>=8'} dependencies: rc: 1.2.8 - dev: true /regjsgen@0.2.0: resolution: {integrity: sha512-x+Y3yA24uF68m5GA+tBjbGYo64xXVJpbToBaWCoSNSc1hdk6dfctaRWrNFTVJZIIhL5GxW8zwjoixbnifnK59g==} @@ -19977,34 +19514,6 @@ packages: dependencies: jsesc: 0.5.0 - /release-plan@0.4.1: - resolution: {integrity: sha512-aZ/dQCPnv1XksqhTk4wlhFTDbKpOry6pQrsUYINXYXecGE8DE3Wk6/UV5J9lpJeF7KbssA3dZsw28+ZItmmLlw==} - hasBin: true - dependencies: - '@ef4/lerna-changelog': 1.0.4 - '@npmcli/package-json': 5.0.0 - '@octokit/rest': 19.0.13 - '@types/fs-extra': 9.0.13 - '@types/js-yaml': 4.0.9 - '@types/semver': 7.5.6 - '@types/yargs': 17.0.32 - assert-never: 1.2.1 - chalk: 4.1.2 - cli-highlight: 2.1.11 - execa: 4.1.0 - fs-extra: 10.1.0 - globby: 11.1.0 - js-yaml: 4.1.0 - latest-version: 5.1.0 - parse-github-repo-url: 1.4.1 - semver: 7.5.4 - yargs: 17.7.2 - transitivePeerDependencies: - - bluebird - - encoding - - supports-color - dev: true - /remote-git-tags@3.0.0: resolution: {integrity: sha512-C9hAO4eoEsX+OXA4rla66pXZQ+TLQ8T9dttgQj18yuKlPMTVkIkdYXvlMC55IuUsIkV6DpmQYi10JKFLaU+l7w==} engines: {node: '>=8'} @@ -20016,9 +19525,9 @@ packages: /remove-types@1.0.0: resolution: {integrity: sha512-G7Hk1Q+UJ5DvlNAoJZObxANkBZGiGdp589rVcTW/tYqJWJ5rwfraSnKSQaETN8Epaytw8J40nS/zC7bcHGv36w==} dependencies: - '@babel/core': 7.23.5(supports-color@8.1.1) - '@babel/plugin-syntax-decorators': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-typescript': 7.23.5(@babel/core@7.23.5) + '@babel/core': 7.23.3(supports-color@8.1.1) + '@babel/plugin-syntax-decorators': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-typescript': 7.23.3(@babel/core@7.23.3) prettier: 2.8.8 transitivePeerDependencies: - supports-color @@ -20049,7 +19558,7 @@ packages: /require-main-filename@1.0.1: resolution: {integrity: sha512-IqSUtOVP4ksd1C/ej5zeEh/BIP2ajqpn8c5x+q99gvcIG/Qf0cud5raVnE/Dwd0ua9TXYDoDc0RE5hBSdz22Ug==} - dev: true + dev: false /require-relative@0.8.7: resolution: {integrity: sha512-AKGr4qvHiryxRb19m3PsLRGuKVAbJLUD7E6eOaHkfKhwc+vSgVOCY5xNvm9EkolBKTOf0GrQAZKLimOCz81Khg==} @@ -20150,7 +19659,6 @@ packages: resolution: {integrity: sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==} dependencies: lowercase-keys: 1.0.1 - dev: true /restore-cursor@2.0.0: resolution: {integrity: sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==} @@ -20173,7 +19681,7 @@ packages: /retry@0.10.1: resolution: {integrity: sha512-ZXUSQYTHdl3uS7IuCehYfMzKyIDBNoAuUblvy5oGO5UJSUTmStUUVPXbA9Qxd173Bgre53yCQczQuHgRWAdvJQ==} - dev: true + dev: false /retry@0.12.0: resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==} @@ -20300,7 +19808,7 @@ packages: resolution: {integrity: sha512-ntymy489o0/QQplUDnpYAYUsO50K9SBrIVaKCWDOJzYJts0f9WH9RFJkyagebkw5+y1oi00R7ynNW/d12GBumg==} dependencies: aproba: 1.2.0 - dev: true + dev: false /rx-lite-aggregates@4.0.8: resolution: {integrity: sha512-3xPNZGW93oCjiO7PtKxRK6iOVYBWBvtf9QHDfU23Oc+dLIQmAV//UnyXV/yihv81VS/UqoQPk4NegS8EFi55Hg==} @@ -20627,7 +20135,7 @@ packages: /smart-buffer@4.2.0: resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} - dev: true + dev: false /snake-case@3.0.4: resolution: {integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==} @@ -20704,7 +20212,7 @@ packages: dependencies: agent-base: 4.2.1 socks: 2.3.3 - dev: true + dev: false /socks@2.3.3: resolution: {integrity: sha512-o5t52PCNtVdiOvzMry7wU4aOqYWL0PeCXRWBEiJow4/i/wr+wpsJQ9awEu1EonLIqsfGd5qSgDdxEOvCdmBEpA==} @@ -20712,7 +20220,7 @@ packages: dependencies: ip: 1.1.5 smart-buffer: 4.2.0 - dev: true + dev: false /sort-keys@2.0.0: resolution: {integrity: sha512-/dPCrG1s3ePpWm6yBbxZq5Be1dXGLyLn9Z791chDC3NFrpkVbWGzkBwPN1knaciexFXgRJ7hzdnwZ4stHSDmjg==} @@ -20863,7 +20371,7 @@ packages: resolution: {integrity: sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q==} dependencies: figgy-pudding: 3.5.2 - dev: true + dev: false /stable@0.1.8: resolution: {integrity: sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==} @@ -20904,11 +20412,11 @@ packages: dependencies: end-of-stream: 1.4.4 stream-shift: 1.0.1 - dev: true + dev: false /stream-shift@1.0.1: resolution: {integrity: sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==} - dev: true + dev: false /strict-uri-encode@1.1.0: resolution: {integrity: sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ==} @@ -20933,7 +20441,7 @@ packages: code-point-at: 1.1.0 is-fullwidth-code-point: 1.0.0 strip-ansi: 3.0.1 - dev: true + dev: false /string-width@2.1.1: resolution: {integrity: sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==} @@ -20959,15 +20467,6 @@ packages: is-fullwidth-code-point: 3.0.0 strip-ansi: 6.0.1 - /string-width@5.1.2: - resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} - engines: {node: '>=12'} - dependencies: - eastasianwidth: 0.2.0 - emoji-regex: 9.2.2 - strip-ansi: 7.1.0 - dev: true - /string.prototype.matchall@4.0.10: resolution: {integrity: sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ==} dependencies: @@ -20988,7 +20487,6 @@ packages: call-bind: 1.0.5 define-properties: 1.2.1 es-abstract: 1.22.3 - dev: true /string.prototype.trim@1.2.8: resolution: {integrity: sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==} @@ -21019,7 +20517,6 @@ packages: resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} dependencies: safe-buffer: 5.1.2 - dev: true /string_decoder@1.3.0: resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} @@ -21050,13 +20547,6 @@ packages: dependencies: ansi-regex: 5.0.1 - /strip-ansi@7.1.0: - resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} - engines: {node: '>=12'} - dependencies: - ansi-regex: 6.0.1 - dev: true - /strip-bom@3.0.0: resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} engines: {node: '>=4'} @@ -21090,7 +20580,6 @@ packages: /strip-json-comments@2.0.1: resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} engines: {node: '>=0.10.0'} - dev: true /strip-json-comments@3.1.1: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} @@ -21162,8 +20651,8 @@ packages: stylelint: 15.11.0(typescript@5.2.2) dev: true - /stylelint-prettier@4.1.0(prettier@3.1.0)(stylelint@15.11.0): - resolution: {integrity: sha512-dd653q/d1IfvsSQshz1uAMe+XDm6hfM/7XiFH0htYY8Lse/s5ERTg7SURQehZPwVvm/rs7AsFhda9EQ2E9TS0g==} + /stylelint-prettier@4.0.2(prettier@3.1.0)(stylelint@15.11.0): + resolution: {integrity: sha512-EoHnR2PiaWgpGtoI4VW7AzneMfwmwQsNwQ+3/E2k/a+ju5yO6rfPfop4vzPQKcJN4ZM1YbspEOPu88D8538sbg==} engines: {node: ^14.17.0 || >=16.0.0} peerDependencies: prettier: '>=3.0.0' @@ -21191,12 +20680,12 @@ packages: debug: 4.3.4(supports-color@8.1.1) fast-glob: 3.3.2 fastest-levenshtein: 1.0.16 - file-entry-cache: 7.0.2 + file-entry-cache: 7.0.1 global-modules: 2.0.0 globby: 11.1.0 globjoin: 0.1.4 html-tags: 3.3.1 - ignore: 5.3.0 + ignore: 5.2.4 import-lazy: 4.0.0 imurmurhash: 0.1.4 is-plain-object: 5.0.0 @@ -21206,9 +20695,9 @@ packages: micromatch: 4.0.5 normalize-path: 3.0.0 picocolors: 1.0.0 - postcss: 8.4.32 + postcss: 8.4.31 postcss-resolve-nested-selector: 0.1.1 - postcss-safe-parser: 6.0.0(postcss@8.4.32) + postcss-safe-parser: 6.0.0(postcss@8.4.31) postcss-selector-parser: 6.0.13 postcss-value-parser: 4.2.0 resolve-from: 5.0.0 @@ -21382,7 +20871,7 @@ packages: jest-worker: 27.5.1 schema-utils: 3.3.0 serialize-javascript: 6.0.1 - terser: 5.25.0 + terser: 5.24.0 webpack: 5.89.0 /terser@3.17.0: @@ -21396,8 +20885,8 @@ packages: source-map-support: 0.5.21 dev: true - /terser@5.25.0: - resolution: {integrity: sha512-we0I9SIsfvNUMP77zC9HG+MylwYYsGFSBG8qm+13oud2Yh+O104y614FRbyjpxys16jZwot72Fpi827YvGzuqg==} + /terser@5.24.0: + resolution: {integrity: sha512-ZpGR4Hy3+wBEzVEnHvstMvqpD/nABNelQn/z2r0fjVWGQsN3bpOLzQlqDxmb4CDZnXq5lpjnQ+mHQLAOpfM5iw==} engines: {node: '>=10'} hasBin: true dependencies: @@ -21415,8 +20904,8 @@ packages: minimatch: 3.1.2 dev: true - /testem@3.11.0(lodash@4.17.21): - resolution: {integrity: sha512-q0U126/nnRH54ZDrr6j1Ai5zK6vOm2rdY/5VJrbqcEPQgOWoLB6zrymWUs7BqN2/yRsdorocl9E9ZEwm7LLIZQ==} + /testem@3.10.1(lodash@4.17.21): + resolution: {integrity: sha512-42c4e7qlAelwMd8O3ogtVGRbgbr6fJnX6H51ACOIG1V1IjsKPlcQtxPyOwaL4iikH22Dfh+EyIuJnMG4yxieBQ==} engines: {node: '>= 7.*'} hasBin: true dependencies: @@ -21438,7 +20927,7 @@ packages: lodash.clonedeep: 4.5.0 lodash.find: 4.6.0 lodash.uniqby: 4.7.0 - mkdirp: 3.0.1 + mkdirp: 1.0.4 mustache: 4.2.0 node-notifier: 10.0.1 npmlog: 6.0.2 @@ -21520,13 +21009,13 @@ packages: engines: {node: '>=0.8'} dependencies: thenify: 3.3.1 - dev: true + dev: false /thenify@3.3.1: resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} dependencies: any-promise: 1.3.0 - dev: true + dev: false /thread-loader@3.0.4(webpack@5.89.0): resolution: {integrity: sha512-ByaL2TPb+m6yArpqQUZvP+5S1mZtXsEP7nWKKlAUTm7fCml8kB5s1uI3+eHRP2bk5mVYfRSBI7FFf+tWEyLZwA==} @@ -21547,7 +21036,7 @@ packages: dependencies: readable-stream: 2.3.8 xtend: 4.0.2 - dev: true + dev: false /through2@3.0.2: resolution: {integrity: sha512-enaDQ4MUyP2W6ZyT6EsMzqBPZaM/avg8iuo+l2d3QCs0J+6RaqkHV/2/lOwDTueBHeJ/2LG9lrLW3d5rWPucuQ==} @@ -21630,7 +21119,6 @@ packages: /to-readable-stream@1.0.0: resolution: {integrity: sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==} engines: {node: '>=6'} - dev: true /to-regex-range@2.1.1: resolution: {integrity: sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==} @@ -21692,11 +21180,11 @@ packages: - supports-color dev: true - /tracked-toolbox@1.3.0(@babel/core@7.23.5): + /tracked-toolbox@1.3.0(@babel/core@7.23.3): resolution: {integrity: sha512-KHfYLvNyRr0qQeXQPnmb6Z4JYZ0/47R7LjVwzUrsKc539eQi3Sz2z3mb7FJN9KgaJXVuM3GQ8zcwUFTf0hrOsQ==} engines: {node: 8.* || >= 10.*} dependencies: - ember-cache-primitive-polyfill: 1.0.1(@babel/core@7.23.5) + ember-cache-primitive-polyfill: 1.0.1(@babel/core@7.23.3) ember-cli-babel: 7.26.11 transitivePeerDependencies: - '@babel/core' @@ -21761,7 +21249,7 @@ packages: '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 acorn: 8.11.2 - acorn-walk: 8.3.1 + acorn-walk: 8.3.0 arg: 4.1.3 create-require: 1.1.1 diff: 4.0.2 @@ -21887,7 +21375,7 @@ packages: /typedarray@0.0.6: resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==} - dev: true + dev: false /typescript-memoize@1.1.1: resolution: {integrity: sha512-GQ90TcKpIH4XxYTI2F98yEQYZgjNMOGPpOgdjIBhaLaWji5HPWlRnZ4AeA1hfBxtY7bCGDJsqDDHk/KaHOl5bA==} @@ -21956,13 +21444,13 @@ packages: resolution: {integrity: sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==} dependencies: unique-slug: 2.0.2 - dev: true + dev: false /unique-slug@2.0.2: resolution: {integrity: sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==} dependencies: imurmurhash: 0.1.4 - dev: true + dev: false /unique-string@2.0.0: resolution: {integrity: sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==} @@ -21972,7 +21460,7 @@ packages: /universal-user-agent@6.0.1: resolution: {integrity: sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ==} - dev: true + dev: false /universalify@0.1.2: resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} @@ -22012,13 +21500,13 @@ packages: engines: {node: '>=4'} dev: true - /update-browserslist-db@1.0.13(browserslist@4.22.2): + /update-browserslist-db@1.0.13(browserslist@4.22.1): resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} hasBin: true peerDependencies: browserslist: ^4.14.0 dependencies: - browserslist: 4.22.2 + browserslist: 4.22.1 escalade: 3.1.1 picocolors: 1.0.0 @@ -22036,7 +21524,6 @@ packages: engines: {node: '>=4'} dependencies: prepend-http: 2.0.0 - dev: true /url-parse@1.5.10: resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} @@ -22101,8 +21588,8 @@ packages: resolution: {integrity: sha512-ocyWc3bAHBB/guyqJQVI5o4BZkPhznPYUG2ea80Gond/BgNWpap8TOmLSeeQG7bnh2KMISxskdADG59j7zruhw==} dev: true - /v8-to-istanbul@9.2.0: - resolution: {integrity: sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==} + /v8-to-istanbul@9.1.3: + resolution: {integrity: sha512-9lDD+EVI2fjFsMWXc6dy5JJzBsVTcQ2fVkfBvncZ6xJWG9wtBhOldG+mHkSL0+V1K/xgZz0JDO5UT5hFwHUghg==} engines: {node: '>=10.12.0'} dependencies: '@jridgewell/trace-mapping': 0.3.20 @@ -22155,8 +21642,8 @@ packages: resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} engines: {node: '>= 0.8'} - /vite@4.5.1(terser@5.25.0): - resolution: {integrity: sha512-AXXFaAJ8yebyqzoNB9fu2pHoo/nWX+xZlaRwoeYUxEqBO+Zj4msE5G+BhGBll9lYEKv9Hfks52PAF2X7qDYXQA==} + /vite@4.5.0(terser@5.24.0): + resolution: {integrity: sha512-ulr8rNLA6rkyFAlVWw2q5YJ91v098AFQ2R0PRFwPzREXOUJQPtFUG0t+/ZikhaOCDqFoDhN6/v8Sq0o4araFAw==} engines: {node: ^14.18.0 || >=16.0.0} hasBin: true peerDependencies: @@ -22184,9 +21671,9 @@ packages: optional: true dependencies: esbuild: 0.18.20 - postcss: 8.4.32 + postcss: 8.4.31 rollup: 3.29.4 - terser: 5.25.0 + terser: 5.24.0 optionalDependencies: fsevents: 2.3.3 dev: true @@ -22326,7 +21813,7 @@ packages: '@webassemblyjs/wasm-parser': 1.11.6 acorn: 8.11.2 acorn-import-assertions: 1.9.0(acorn@8.11.2) - browserslist: 4.22.2 + browserslist: 4.22.1 chrome-trace-event: 1.0.3 enhanced-resolve: 5.15.0 es-module-lexer: 1.4.1 @@ -22424,7 +21911,7 @@ packages: /which-module@2.0.1: resolution: {integrity: sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==} - dev: true + dev: false /which-typed-array@1.1.13: resolution: {integrity: sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==} @@ -22449,14 +21936,6 @@ packages: dependencies: isexe: 2.0.0 - /which@4.0.0: - resolution: {integrity: sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==} - engines: {node: ^16.13.0 || >=18.0.0} - hasBin: true - dependencies: - isexe: 3.1.1 - dev: true - /wide-align@1.1.5: resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==} dependencies: @@ -22483,7 +21962,7 @@ packages: /workerpool@3.1.2: resolution: {integrity: sha512-WJFA0dGqIK7qj7xPTqciWBH5DlJQzoPjsANvc3Y4hNB0SScT+Emjvt0jPPkDBUjBNngX1q9hHgt1Gfwytu6pug==} dependencies: - '@babel/core': 7.23.5(supports-color@8.1.1) + '@babel/core': 7.23.3(supports-color@8.1.1) object-assign: 4.1.1 rsvp: 4.8.5 transitivePeerDependencies: @@ -22498,7 +21977,7 @@ packages: dependencies: string-width: 1.0.2 strip-ansi: 3.0.1 - dev: true + dev: false /wrap-ansi@6.2.0: resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} @@ -22517,15 +21996,6 @@ packages: string-width: 4.2.3 strip-ansi: 6.0.1 - /wrap-ansi@8.1.0: - resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} - engines: {node: '>=12'} - dependencies: - ansi-styles: 6.2.1 - string-width: 5.1.2 - strip-ansi: 7.1.0 - dev: true - /wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} @@ -22617,11 +22087,11 @@ packages: /y18n@3.2.2: resolution: {integrity: sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==} - dev: true + dev: false /y18n@4.0.3: resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==} - dev: true + dev: false /y18n@5.0.8: resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} @@ -22652,7 +22122,7 @@ packages: resolution: {integrity: sha512-CswCfdOgCr4MMsT1GzbEJ7Z2uYudWyrGX8Bgh/0eyCzj/DXWdKq6a/ADufkzI1WAOIW6jYaXJvRyLhDO0kfqBw==} dependencies: camelcase: 4.1.0 - dev: true + dev: false /yargs@11.1.1: resolution: {integrity: sha512-PRU7gJrJaXv3q3yQZ/+/X6KBswZiaQ+zOmdprZcouPYtQgvNU35i+68M4b1ZHLZtYFT5QObFLV+ZkmJYcwKdiw==} @@ -22669,7 +22139,7 @@ packages: which-module: 2.0.1 y18n: 3.2.2 yargs-parser: 9.0.2 - dev: true + dev: false /yargs@16.2.0: resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} diff --git a/tests/vite-app/package.json b/tests/vite-app/package.json index a7097b7ef..4d582da19 100644 --- a/tests/vite-app/package.json +++ b/tests/vite-app/package.json @@ -82,5 +82,8 @@ }, "ember": { "edition": "octane" + }, + "dependencies": { + "@esbuild/linux-x64": "^0.19.8" } } diff --git a/tests/vite-app/vite.config.mts b/tests/vite-app/vite.config.mts index 9afd59a47..f12a76023 100644 --- a/tests/vite-app/vite.config.mts +++ b/tests/vite-app/vite.config.mts @@ -4,8 +4,7 @@ import { hbs, scripts, templateTag, - addons, - optimizeDeps, + addons } from "@embroider/vite"; import { resolve } from "path"; import { babel } from "@rollup/plugin-babel"; @@ -14,7 +13,7 @@ const root = "app"; const rewrittenApp = "node_modules/.embroider/rewritten-app"; export default defineConfig({ - root, + root: rewrittenApp, plugins: [ hbs(), templateTag(), @@ -31,18 +30,19 @@ export default defineConfig({ extensions: [".gjs", ".js", ".hbs", ".ts", ".gts"], }), ], - //publicDir: resolve(rewrittenApp), + publicDir: null, optimizeDeps: { exclude: addons(__dirname) }, server: { watch: { + cwd: resolve('.'), ignored: ["!**/node_modules/.embroider/rewritten-app/**"], }, }, build: { rollupOptions: { input: { - main: resolve(root, "index.html"), - tests: resolve(root, "tests/index.html"), + main: resolve(rewrittenApp, "index.html"), + tests: resolve(rewrittenApp, "tests/index.html"), }, }, }, From bc0a0c006b49635b473e3da0a94a3f688a0ba045 Mon Sep 17 00:00:00 2001 From: patrickpircher Date: Mon, 27 Nov 2023 14:33:19 +0100 Subject: [PATCH 04/55] vite load from app --- packages/vite/src/resolver.ts | 165 ++++++++++++++++++++++----------- tests/vite-app/vite.config.mts | 12 +-- 2 files changed, 117 insertions(+), 60 deletions(-) diff --git a/packages/vite/src/resolver.ts b/packages/vite/src/resolver.ts index 941ddc24c..c860b0b61 100644 --- a/packages/vite/src/resolver.ts +++ b/packages/vite/src/resolver.ts @@ -1,58 +1,97 @@ import type { PluginContext, ResolveIdResult } from 'rollup'; import type { Plugin } from 'vite'; import { join, resolve } from 'path'; -import type { Resolution, ResolverFunction, ResolverOptions } from '@embroider/core'; -import { Resolver, locateEmbroiderWorkingDir, virtualContent } from '@embroider/core'; -import { readJSONSync } from 'fs-extra'; -import { existsSync, promises, readFileSync } from 'fs'; +import type { Resolution, ResolverFunction } from '@embroider/core'; +import { virtualContent, ResolverLoader, getAppMeta } from '@embroider/core'; +import { readFileSync, existsSync } from 'fs'; import { RollupModuleRequest, virtualPrefix } from './request'; import assertNever from 'assert-never'; -export function resolver(): Plugin { - const cwd = process.cwd(); - const root = join(cwd, 'app'); - const tests = join(cwd, 'tests'); - const embroiderDir = locateEmbroiderWorkingDir(cwd); - const rewrittenApp = join(embroiderDir, 'rewritten-app'); +const cwd = process.cwd(); +const root = join(cwd, 'app'); +const publicDir = join(cwd, 'public'); +const tests = join(cwd, 'tests'); +const embroiderDir = join(cwd, 'node_modules', '.embroider'); +const rewrittenApp = join(embroiderDir, 'rewritten-app'); - const appIndex = resolve(root, "index.html").replace(/\\/g, '/'); - const testsIndex = resolve(tests, "index.html").replace(/\\/g, '/'); - const rewrittenAppIndex = resolve(rewrittenApp, 'index.html'); - const rewrittenTestIndex = resolve(rewrittenApp, 'tests', 'index.html'); +const appIndex = resolve(root, "index.html").replace(/\\/g, '/'); +const testsIndex = resolve(tests, "index.html").replace(/\\/g, '/'); +const rewrittenAppIndex = resolve(rewrittenApp, 'index.html'); +const rewrittenTestIndex = resolve(rewrittenApp, 'tests', 'index.html'); - let resolverOptions: ResolverOptions = readJSONSync(join(embroiderDir, 'resolver.json')); - let resolver = new Resolver(resolverOptions); +export function resolver(): Plugin { + let resolverLoader = new ResolverLoader(process.cwd()); + const engine = resolverLoader.resolver.options.engines[0]; + engine.root = root; + engine.activeAddons.forEach((addon) => { + addon.canResolveFromFile = addon.canResolveFromFile.replace(rewrittenApp, cwd); + }); + const appMeta = getAppMeta(cwd); + const pkg = resolverLoader.resolver.packageCache.get(cwd); + pkg.packageJSON['ember-addon'] = pkg.packageJSON['ember-addon'] || {}; + pkg.packageJSON['keywords'] = pkg.packageJSON['keywords'] || []; + pkg.packageJSON['ember-addon'].version = 2; + pkg.packageJSON['ember-addon'].type = 'app'; + pkg.packageJSON['keywords'].push('ember-addon', 'ember-engine'); + pkg.meta!['auto-upgraded'] = true; + (pkg as any).plainPkg.root = root; + const json = pkg.packageJSON; + Object.defineProperty(Object.getPrototypeOf((pkg as any).plainPkg), 'internalPackageJSON', { + get() { + if (this.isApp || this.root === root) { + return json; + } + return JSON.parse(readFileSync(join(this.root, 'package.json'), 'utf8')); + } + }) return { name: 'embroider-resolver', enforce: 'pre', - async resolveId(source: string, importer, options) { - // if (source.startsWith(virtualPrefix)) { - // return source; - // } - if (false) { - const rewrittenImporter = importer.replace(root, rewrittenApp); - if (source.startsWith('/') && !source.startsWith(cwd)) { - source = rewrittenApp + source; - } - const r = await this.resolve(source, rewrittenImporter, { ...options }); - if (r && !r.id.includes('/assets/')) { - r.id = r.id.replace(rewrittenApp, root); - } - if (r && r.id) { - const rewritten = r.id.replace(rewrittenApp, root); - if (existsSync(rewritten)) { - r.id = rewritten; + configureServer(server) { + server.middlewares.use((req, _res, next) => { + if (req.originalUrl === '/') { + req.originalUrl = '/app/index.html'; + (req as any).url = '/app/index.html'; } - } - return r; + if (req.originalUrl.includes('?')) { + next(); + return; + } + if (req.originalUrl && req.originalUrl.length > 1) { + let pkg = resolverLoader.resolver.packageCache.ownerOfFile(req.originalUrl); + let p = join(publicDir, req.originalUrl); + if (pkg && pkg.isV2App() && existsSync(p)) { + req.originalUrl = '/' + p; + (req as any).url = '/' + p; + next(); + return + } + p = join('node_modules', req.originalUrl); + pkg = resolverLoader.resolver.packageCache.ownerOfFile(p); + if (pkg && pkg.meta && (pkg.meta as any)['public-assets']) { + const asset = Object.entries((pkg.meta as any)['public-assets']).find(([_key, a]) => a === req.originalUrl)?.[0]; + const local = asset ? join(cwd, p) : null; + if (local && existsSync(local)) { + req.originalUrl = '/' + p; + (req as any).url = '/' + p; + return next(); + } + } + return next(); + } + return next(); + }) + }, + async resolveId(source, importer, options) { + if (source.startsWith('/assets/')) { + return resolve(root, '.' + source); } - let request = RollupModuleRequest.from(source, importer, options.custom); if (!request) { // fallthrough to other rollup plugins return null; } - let resolution = await resolver.resolve(request, defaultResolve(this)); + let resolution = await resolverLoader.resolver.resolve(request, defaultResolve(this)); switch (resolution.type) { case 'found': return resolution.result; @@ -62,24 +101,32 @@ export function resolver(): Plugin { throw assertNever(resolution); } }, - async load(id: string) { - if (id.startsWith(virtualPrefix)) { - const vId = id.split(virtualPrefix)[1].replace(root, rewrittenApp); - return virtualContent(vId, resolver); - } + load(id) { + if (id.startsWith(root + '/assets/')) { + if (id.endsWith(appMeta.name + '.js')) { + let code = ''; + engine.activeAddons.forEach((_addon) => { - if (id.startsWith(root)) { - try { - return (await promises.readFile(id.split('?')[0])).toString(); - } catch (e) { - } - try { - const rewId = id.replace(root, rewrittenApp); - return (await promises.readFile(rewId.split('?')[0])).toString(); - } catch (e) { - } + }); + code += ` + const appModules = import.meta.glob([ + '../init/**/*.{js,ts}', + '../initializers/**/*.{js,ts}', + '../instance-initializers/**/*.{js,ts}' + '../transforms/**/*.{js,ts}' + '../services/**/*.{js,ts}' + ], { eager: true }); + Object.entries(appModules).forEach(([name, imp]) => define(name.replace('/${root}/', '${appMeta.name}/').split('.').slice(0, -1).join('/'), [], () => imp)); + + require('${appMeta.name}/app').default.create({"name":"${appMeta.name}","version":"${pkg.version}+cf3ef785"}); + ` + } + return readFileSync(rewrittenApp + id.replace(root + '/assets/', '/assets/').split('?')[0]).toString(); + } + + if (id.startsWith(virtualPrefix)) { + return virtualContent(id.slice(virtualPrefix.length), resolverLoader.resolver); } - return null; }, transformIndexHtml: { order: 'pre', @@ -107,10 +154,22 @@ function defaultResolve(context: PluginContext): ResolverFunction Date: Mon, 4 Dec 2023 12:29:45 +0100 Subject: [PATCH 05/55] * generate entry file * load env from root --- packages/core/src/module-resolver.ts | 2 +- packages/vite/src/resolver.ts | 136 ++++++++++++++------------- packages/vite/src/virtual-files.ts | 82 ++++++++++++++++ tests/vite-app/vite.config.mts | 3 +- 4 files changed, 155 insertions(+), 68 deletions(-) create mode 100644 packages/vite/src/virtual-files.ts diff --git a/packages/core/src/module-resolver.ts b/packages/core/src/module-resolver.ts index 83aa78ae7..c534036a3 100644 --- a/packages/core/src/module-resolver.ts +++ b/packages/core/src/module-resolver.ts @@ -88,7 +88,7 @@ export interface Options { amdCompatibility: Required; } -interface EngineConfig { +export interface EngineConfig { packageName: string; activeAddons: { name: string; root: string; canResolveFromFile: string }[]; fastbootFiles: { [appName: string]: { localFilename: string; shadowedFilename: string | undefined } }; diff --git a/packages/vite/src/resolver.ts b/packages/vite/src/resolver.ts index c860b0b61..e874ded0a 100644 --- a/packages/vite/src/resolver.ts +++ b/packages/vite/src/resolver.ts @@ -6,6 +6,7 @@ import { virtualContent, ResolverLoader, getAppMeta } from '@embroider/core'; import { readFileSync, existsSync } from 'fs'; import { RollupModuleRequest, virtualPrefix } from './request'; import assertNever from 'assert-never'; +import { generateEntries } from './virtual-files'; const cwd = process.cwd(); const root = join(cwd, 'app'); @@ -14,12 +15,18 @@ const tests = join(cwd, 'tests'); const embroiderDir = join(cwd, 'node_modules', '.embroider'); const rewrittenApp = join(embroiderDir, 'rewritten-app'); -const appIndex = resolve(root, "index.html").replace(/\\/g, '/'); -const testsIndex = resolve(tests, "index.html").replace(/\\/g, '/'); +const appIndex = resolve(root, 'index.html').replace(/\\/g, '/'); +const testsIndex = resolve(tests, 'index.html').replace(/\\/g, '/'); const rewrittenAppIndex = resolve(rewrittenApp, 'index.html'); const rewrittenTestIndex = resolve(rewrittenApp, 'tests', 'index.html'); -export function resolver(): Plugin { +let environment = 'production'; + +type Options = { + entryFolders: string[] +} + +export function resolver(options?: Options): Plugin { let resolverLoader = new ResolverLoader(process.cwd()); const engine = resolverLoader.resolver.options.engines[0]; engine.root = root; @@ -47,41 +54,45 @@ export function resolver(): Plugin { return { name: 'embroider-resolver', enforce: 'pre', - configureServer(server) { - server.middlewares.use((req, _res, next) => { - if (req.originalUrl === '/') { - req.originalUrl = '/app/index.html'; - (req as any).url = '/app/index.html'; - } - if (req.originalUrl.includes('?')) { + configureServer(server) { + environment = 'development'; + server.middlewares.use((req, _res, next) => { + if (req.originalUrl === '/tests' || req.originalUrl === '/tests/index.html') { + environment = 'test'; + } + if (req.originalUrl === '/') { + req.originalUrl = '/app/index.html'; + (req as any).url = '/app/index.html'; + } + if (req.originalUrl.includes('?')) { + next(); + return; + } + if (req.originalUrl && req.originalUrl.length > 1) { + let pkg = resolverLoader.resolver.packageCache.ownerOfFile(req.originalUrl); + let p = join(publicDir, req.originalUrl); + if (pkg && pkg.isV2App() && existsSync(p)) { + req.originalUrl = '/' + p; + (req as any).url = '/' + p; next(); - return; + return } - if (req.originalUrl && req.originalUrl.length > 1) { - let pkg = resolverLoader.resolver.packageCache.ownerOfFile(req.originalUrl); - let p = join(publicDir, req.originalUrl); - if (pkg && pkg.isV2App() && existsSync(p)) { + p = join('node_modules', req.originalUrl); + pkg = resolverLoader.resolver.packageCache.ownerOfFile(p); + if (pkg && pkg.meta && (pkg.meta as any)['public-assets']) { + const asset = Object.entries((pkg.meta as any)['public-assets']).find(([_key, a]) => a === req.originalUrl)?.[0]; + const local = asset ? join(cwd, p) : null; + if (local && existsSync(local)) { req.originalUrl = '/' + p; (req as any).url = '/' + p; - next(); - return - } - p = join('node_modules', req.originalUrl); - pkg = resolverLoader.resolver.packageCache.ownerOfFile(p); - if (pkg && pkg.meta && (pkg.meta as any)['public-assets']) { - const asset = Object.entries((pkg.meta as any)['public-assets']).find(([_key, a]) => a === req.originalUrl)?.[0]; - const local = asset ? join(cwd, p) : null; - if (local && existsSync(local)) { - req.originalUrl = '/' + p; - (req as any).url = '/' + p; - return next(); - } + return next(); } - return next(); } return next(); - }) - }, + } + return next(); + }) + }, async resolveId(source, importer, options) { if (source.startsWith('/assets/')) { return resolve(root, '.' + source); @@ -102,30 +113,25 @@ export function resolver(): Plugin { } }, load(id) { - if (id.startsWith(root + '/assets/')) { - if (id.endsWith(appMeta.name + '.js')) { - let code = ''; - engine.activeAddons.forEach((_addon) => { - - }); - code += ` - const appModules = import.meta.glob([ - '../init/**/*.{js,ts}', - '../initializers/**/*.{js,ts}', - '../instance-initializers/**/*.{js,ts}' - '../transforms/**/*.{js,ts}' - '../services/**/*.{js,ts}' - ], { eager: true }); - Object.entries(appModules).forEach(([name, imp]) => define(name.replace('/${root}/', '${appMeta.name}/').split('.').slice(0, -1).join('/'), [], () => imp)); - - require('${appMeta.name}/app').default.create({"name":"${appMeta.name}","version":"${pkg.version}+cf3ef785"}); - ` - } - return readFileSync(rewrittenApp + id.replace(root + '/assets/', '/assets/').split('?')[0]).toString(); - } + if (id === join(cwd, 'config', 'environment.js').replace(/\\/g, '/')) { + const code = readFileSync(id).toString(); + return code.replace('module.exports = ', 'export default '); + } + if (id.startsWith(root + '/assets/')) { + if (id.endsWith(appMeta.name + '.js')) { + return generateEntries({ + environment, + root, + engine, + pkg, + entryFolders: options?.entryFolders + }) + } + return readFileSync(rewrittenApp + id.replace(root + '/assets/', '/assets/').split('?')[0]).toString(); + } - if (id.startsWith(virtualPrefix)) { - return virtualContent(id.slice(virtualPrefix.length), resolverLoader.resolver); + if (id.startsWith(virtualPrefix)) { + return virtualContent(id.slice(virtualPrefix.length), resolverLoader.resolver); } }, transformIndexHtml: { @@ -159,17 +165,17 @@ function defaultResolve(context: PluginContext): ResolverFunction GlimmerManager); + define('${pkg.name}/data-adapter', () => DataAdapter); + + define('${pkg.name}/router', () => AppRouter); + + merge(buildAppEnv('${environment}'), AppEnv); + define('${pkg.name}/config/environment', () => AppEnv); + `; + const addonPatterns: string[] = []; + engine.activeAddons.forEach((addon) => { + addonPatterns.push( + `'${relative(root + '/assets', addon.root)}/**/_app_/{${folders.join(',')}}/**/*.{js,ts,gjs,gts,hbs}'` + ) + }); + code += ` + const appModules = import.meta.glob([${globPattern}], { eager: true }); + Object.entries(appModules).forEach( + ([name, imp]) => define( + name.replace('../', + '${pkg.name}/').split('.')[0], () => imp + ) + ); + + const addonModules = import.meta.glob([${addonPatterns.join(',')}], { eager: true, exhaustive: true }); + Object.entries(addonModules).forEach( + ([name, imp]) => define( + '${pkg.name}' + name.split('_app_')[1].split('.')[0], () => imp + ) + ); + define('${pkg.name}/app', () => App); + require('${pkg.name}/app').default.create({"name":"${pkg.name}","version":"${pkg.version}+cf3ef785"}); + `; + return code; +} diff --git a/tests/vite-app/vite.config.mts b/tests/vite-app/vite.config.mts index 2cfc2e6ea..d054f9290 100644 --- a/tests/vite-app/vite.config.mts +++ b/tests/vite-app/vite.config.mts @@ -4,7 +4,6 @@ import { hbs, scripts, templateTag, - addons, optimizeDeps, } from "@embroider/vite"; import { resolve } from "path"; @@ -31,7 +30,7 @@ export default defineConfig({ extensions: [".gjs", ".js", ".hbs", ".ts", ".gts"], }), ], - optimizeDeps: { exclude: addons(__dirname) }, + optimizeDeps: optimizeDeps(), server: { watch: { }, From 870d431e43dec81a342c78e516f4382ccffc4c6f Mon Sep 17 00:00:00 2001 From: patrick Date: Mon, 4 Dec 2023 16:08:57 +0100 Subject: [PATCH 06/55] working tests --- packages/vite/src/resolver.ts | 28 +- packages/vite/src/template-tag.ts | 10 +- packages/vite/src/virtual-files.ts | 44 +- pnpm-lock.yaml | 1426 +++++++++++------ tests/vite-app/package.json | 5 +- tests/vite-app/tests/helpers/index.js | 86 +- .../vite-app/tests/integration/fany-test.gts | 20 + tests/vite-app/tests/test-helper.js | 2 +- tests/vite-app/vite.config.mts | 3 +- 9 files changed, 1063 insertions(+), 561 deletions(-) create mode 100644 tests/vite-app/tests/integration/fany-test.gts diff --git a/packages/vite/src/resolver.ts b/packages/vite/src/resolver.ts index e874ded0a..ebafe110c 100644 --- a/packages/vite/src/resolver.ts +++ b/packages/vite/src/resolver.ts @@ -57,16 +57,21 @@ export function resolver(options?: Options): Plugin { configureServer(server) { environment = 'development'; server.middlewares.use((req, _res, next) => { - if (req.originalUrl === '/tests' || req.originalUrl === '/tests/index.html') { + if (req.originalUrl.match(/\/tests($|\?)/) || req.originalUrl.startsWith('/tests/index.html')) { environment = 'test'; + if (!req.originalUrl.startsWith('/tests/index.html')) { + req.originalUrl = req.originalUrl.replace('/tests', '/tests/index.html'); + } + (req as any).url = req.originalUrl; + return next(); } if (req.originalUrl === '/') { req.originalUrl = '/app/index.html'; (req as any).url = '/app/index.html'; + return next(); } if (req.originalUrl.includes('?')) { - next(); - return; + return next(); } if (req.originalUrl && req.originalUrl.length > 1) { let pkg = resolverLoader.resolver.packageCache.ownerOfFile(req.originalUrl); @@ -74,8 +79,7 @@ export function resolver(options?: Options): Plugin { if (pkg && pkg.isV2App() && existsSync(p)) { req.originalUrl = '/' + p; (req as any).url = '/' + p; - next(); - return + return next(); } p = join('node_modules', req.originalUrl); pkg = resolverLoader.resolver.packageCache.ownerOfFile(p); @@ -97,6 +101,11 @@ export function resolver(options?: Options): Plugin { if (source.startsWith('/assets/')) { return resolve(root, '.' + source); } + if (importer?.includes('/app/assets/') && !source.match(/-embroider-implicit-.*modules.js$/)) { + if (source.startsWith('./')) { + return resolve(root, 'assets', source); + } + } let request = RollupModuleRequest.from(source, importer, options.custom); if (!request) { // fallthrough to other rollup plugins @@ -113,6 +122,7 @@ export function resolver(options?: Options): Plugin { } }, load(id) { + id = id.split('?')[0]; if (id === join(cwd, 'config', 'environment.js').replace(/\\/g, '/')) { const code = readFileSync(id).toString(); return code.replace('module.exports = ', 'export default '); @@ -127,6 +137,14 @@ export function resolver(options?: Options): Plugin { entryFolders: options?.entryFolders }) } + if (id.endsWith('/test.js')) { + return ` + // fix for qunit + import * as EmberTesting from 'ember-testing'; + define('ember-testing', () => EmberTesting); + await import('./test-entries') + ` + } return readFileSync(rewrittenApp + id.replace(root + '/assets/', '/assets/').split('?')[0]).toString(); } diff --git a/packages/vite/src/template-tag.ts b/packages/vite/src/template-tag.ts index 2eef9b57e..20e5dbb44 100644 --- a/packages/vite/src/template-tag.ts +++ b/packages/vite/src/template-tag.ts @@ -3,13 +3,15 @@ import type { Plugin } from 'vite'; import { readFileSync } from 'fs'; import { Preprocessor } from 'content-tag'; -const gjsFilter = createFilter('**/*.gjs?(\\?)*'); +const gjsFilter = createFilter('**/*.{gjs,gts}?(\\?)*'); export function templateTag(): Plugin { let preprocessor = new Preprocessor(); function candidates(id: string) { - return [id + '.gjs']; + if (id.endsWith('.gjs')) return id; + if (id.endsWith('.gts')) return id; + return [id + '.gjs', id + '.gts']; } return { @@ -44,7 +46,9 @@ export function templateTag(): Plugin { if (!gjsFilter(id)) { return null; } - return preprocessor.process(readFileSync(id.replace(/\.gjs\?.*/, '.gjs'), 'utf8'), id); + id = id.replace(/\.gjs\?.*/, '.gjs'); + id = id.replace(/\.gts\?.*/, '.gts'); + return preprocessor.process(readFileSync(id, 'utf8'), id); }, }; } diff --git a/packages/vite/src/virtual-files.ts b/packages/vite/src/virtual-files.ts index 45fc8b5bf..47d3b46fd 100644 --- a/packages/vite/src/virtual-files.ts +++ b/packages/vite/src/virtual-files.ts @@ -6,10 +6,16 @@ type Options = { root: string; engine: EngineConfig; pkg: Package; - environment: string, + environment: string; entryFolders?: string[]; }; + +type OptionsTest = { + pkg: Package; + entryFolders?: string[]; +} + export function generateEntries({ root, engine, pkg, environment, entryFolders }: Options) { const folders = [ 'init', @@ -76,7 +82,41 @@ export function generateEntries({ root, engine, pkg, environment, entryFolders } ) ); define('${pkg.name}/app', () => App); - require('${pkg.name}/app').default.create({"name":"${pkg.name}","version":"${pkg.version}+cf3ef785"}); + if (!runningTests) { + require('${pkg.name}/app').default.create({"name":"${pkg.name}","version":"${pkg.version}+cf3ef785"}); + } + `; + return code; +} + + +export function generateTestEntries({ pkg, entryFolders }: OptionsTest) { + const folders = [ + 'helpers', + 'integration', + 'unit', + ].concat(entryFolders || []); + const globPattern = `'../../tests/{${folders.join(',')}}/**/*.{js,ts,gjs,gts,hbs}'`; + + let code = ` + import './vite-app.js'; + import './-embroider-implicit-test-modules.js'; + import * as helperIndex from '${pkg.name}/tests/helpers/index'; + import * as testHelper from '${pkg.name}/tests/test-helper'; + define('${pkg.name}/tests/helpers/index', () => helperIndex); + define('${pkg.name}/tests/test-helper', () => testHelper); + + require('${pkg.name}/tests/test-helper'); + EmberENV.TESTS_FILE_LOADED = true; + `; + code += ` + const appModules = import.meta.glob([${globPattern}], { eager: true }); + Object.entries(appModules).forEach( + ([name, imp]) => define( + name.replace('../../', + '${pkg.name}/').split('.')[0], () => imp + ) + ); `; return code; } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1a12f6fb3..ad6cd66e2 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -18,13 +18,13 @@ importers: version: link:test-packages/release '@types/jest': specifier: ^29.2.0 - version: 29.5.8 + version: 29.5.10 '@typescript-eslint/eslint-plugin': specifier: ^5.59.5 - version: 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.53.0)(typescript@5.2.2) + version: 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.54.0)(typescript@5.3.2) '@typescript-eslint/parser': specifier: ^5.59.5 - version: 5.62.0(eslint@8.53.0)(typescript@5.2.2) + version: 5.62.0(eslint@8.54.0)(typescript@5.3.2) concurrently: specifier: ^7.2.1 version: 7.6.0 @@ -33,16 +33,16 @@ importers: version: 7.0.3 eslint: specifier: ^8.40.0 - version: 8.53.0 + version: 8.54.0 eslint-config-prettier: specifier: ^8.8.0 - version: 8.10.0(eslint@8.53.0) + version: 8.10.0(eslint@8.54.0) eslint-plugin-import: specifier: ^2.27.5 - version: 2.29.0(@typescript-eslint/parser@5.62.0)(eslint@8.53.0) + version: 2.29.0(@typescript-eslint/parser@5.62.0)(eslint@8.54.0) eslint-plugin-prettier: specifier: ^4.2.1 - version: 4.2.1(eslint-config-prettier@8.10.0)(eslint@8.53.0)(prettier@2.8.8) + version: 4.2.1(eslint-config-prettier@8.10.0)(eslint@8.54.0)(prettier@2.8.8) jest: specifier: ^29.2.1 version: 29.7.0 @@ -51,7 +51,7 @@ importers: version: 2.8.8 typescript: specifier: ^5.1.6 - version: 5.2.2 + version: 5.3.2 packages/addon-dev: dependencies: @@ -97,7 +97,7 @@ importers: version: 3.0.5 '@types/yargs': specifier: ^17.0.3 - version: 17.0.31 + version: 17.0.32 rollup: specifier: ^3.23.0 version: 3.29.4 @@ -106,7 +106,7 @@ importers: version: 0.1.0 typescript: specifier: ^5.1.6 - version: 5.2.2 + version: 5.3.2 packages/addon-shim: dependencies: @@ -122,13 +122,13 @@ importers: devDependencies: '@types/semver': specifier: ^7.3.6 - version: 7.5.5 + version: 7.5.6 broccoli-node-api: specifier: ^1.7.0 version: 1.7.0 typescript: specifier: ^5.1.6 - version: 5.2.2 + version: 5.3.2 webpack: specifier: ^5 version: 5.89.0 @@ -150,7 +150,7 @@ importers: dependencies: '@babel/code-frame': specifier: ^7.14.5 - version: 7.22.13 + version: 7.23.4 '@babel/core': specifier: ^7.14.5 version: 7.23.3(supports-color@8.1.1) @@ -159,16 +159,16 @@ importers: version: 7.8.3(@babel/core@7.23.3) '@babel/plugin-transform-runtime': specifier: ^7.14.5 - version: 7.23.3(@babel/core@7.23.3) + version: 7.23.4(@babel/core@7.23.3) '@babel/preset-env': specifier: ^7.14.5 version: 7.23.3(@babel/core@7.23.3) '@babel/runtime': specifier: ^7.18.6 - version: 7.23.2 + version: 7.23.4 '@babel/traverse': specifier: ^7.14.5 - version: 7.23.3(supports-color@8.1.1) + version: 7.23.4(supports-color@8.1.1) '@embroider/macros': specifier: workspace:* version: link:../macros @@ -177,7 +177,7 @@ importers: version: 7.0.6 '@types/yargs': specifier: ^17.0.3 - version: 17.0.31 + version: 17.0.32 assert-never: specifier: ^1.1.0 version: 1.2.1 @@ -289,7 +289,7 @@ importers: version: 1.2.1 '@types/babel__core': specifier: ^7.1.14 - version: 7.20.4 + version: 7.20.5 '@types/babel__generator': specifier: ^7.6.2 version: 7.6.7 @@ -316,22 +316,22 @@ importers: version: 16.2.15 '@types/lodash': specifier: ^4.14.170 - version: 4.14.201 + version: 4.14.202 '@types/node': specifier: ^15.12.2 version: 15.14.9 '@types/resolve': specifier: ^1.20.0 - version: 1.20.5 + version: 1.20.6 '@types/semver': specifier: ^7.3.6 - version: 7.5.5 + version: 7.5.6 broccoli-node-api: specifier: ^1.7.0 version: 1.7.0 code-equality-assertions: specifier: ^0.9.0 - version: 0.9.0(@types/jest@29.5.8)(qunit@2.20.0) + version: 0.9.0(@types/jest@29.5.10)(qunit@2.20.0) ember-engines: specifier: ^0.8.19 version: 0.8.23(@glint/template@1.2.1) @@ -340,7 +340,7 @@ importers: version: 2.1.2 typescript: specifier: ^5.1.6 - version: 5.2.2 + version: 5.3.2 packages/core: dependencies: @@ -349,13 +349,16 @@ importers: version: 7.23.3(supports-color@8.1.1) '@babel/parser': specifier: ^7.14.5 - version: 7.23.3 + version: 7.23.4 '@babel/traverse': specifier: ^7.14.5 - version: 7.23.3(supports-color@8.1.1) + version: 7.23.4(supports-color@8.1.1) '@embroider/macros': specifier: workspace:* version: link:../macros + '@embroider/reverse-exports': + specifier: workspace:* + version: link:../reverse-exports '@embroider/shared-internals': specifier: workspace:* version: link:../shared-internals @@ -431,7 +434,7 @@ importers: version: 1.2.1 '@types/babel__core': specifier: ^7.1.14 - version: 7.20.4 + version: 7.20.5 '@types/babel__traverse': specifier: ^7.18.5 version: 7.20.4 @@ -449,13 +452,13 @@ importers: version: 16.2.15 '@types/lodash': specifier: ^4.14.170 - version: 4.14.201 + version: 4.14.202 '@types/node': specifier: ^15.12.2 version: 15.14.9 '@types/resolve': specifier: ^1.20.0 - version: 1.20.5 + version: 1.20.6 '@types/tmp': specifier: ^0.1.0 version: 0.1.0 @@ -467,7 +470,7 @@ importers: version: 0.1.0 typescript: specifier: ^5.1.6 - version: 5.2.2 + version: 5.3.2 packages/hbs-loader: devDependencies: @@ -479,7 +482,7 @@ importers: version: 15.14.9 typescript: specifier: ^5.1.6 - version: 5.2.2 + version: 5.3.2 webpack: specifier: ^5 version: 5.89.0 @@ -519,7 +522,7 @@ importers: version: 7.23.3(@babel/core@7.23.3) '@babel/traverse': specifier: ^7.14.5 - version: 7.23.3(supports-color@8.1.1) + version: 7.23.4(supports-color@8.1.1) '@embroider/core': specifier: workspace:* version: link:../core @@ -531,7 +534,7 @@ importers: version: 1.2.1 '@types/babel__core': specifier: ^7.1.14 - version: 7.20.4 + version: 7.20.5 '@types/babel__generator': specifier: ^7.6.2 version: 7.6.7 @@ -543,28 +546,28 @@ importers: version: 7.20.4 '@types/lodash': specifier: ^4.14.170 - version: 4.14.201 + version: 4.14.202 '@types/node': specifier: ^15.12.2 version: 15.14.9 '@types/resolve': specifier: ^1.20.0 - version: 1.20.5 + version: 1.20.6 '@types/semver': specifier: ^7.3.6 - version: 7.5.5 + version: 7.5.6 babel-plugin-ember-template-compilation: specifier: ^2.1.1 version: 2.2.1 code-equality-assertions: specifier: ^0.9.0 - version: 0.9.0(@types/jest@29.5.8)(qunit@2.20.0) + version: 0.9.0(@types/jest@29.5.10)(qunit@2.20.0) scenario-tester: specifier: ^2.1.2 version: 2.1.2 typescript: specifier: ^5.1.6 - version: 5.2.2 + version: 5.3.2 packages/reverse-exports: dependencies: @@ -586,7 +589,7 @@ importers: version: 7.23.3(supports-color@8.1.1) '@babel/plugin-transform-typescript': specifier: ^7.8.7 - version: 7.23.3(@babel/core@7.23.3) + version: 7.23.4(@babel/core@7.23.3) '@embroider/addon-dev': specifier: workspace:^ version: link:../addon-dev @@ -642,7 +645,7 @@ importers: specifier: ^2.6.0 version: 2.6.2 typescript: - specifier: ^5.1.6 + specifier: ~5.2.2 version: 5.2.2 packages/shared-internals: @@ -680,7 +683,7 @@ importers: version: link:../../test-packages/support '@types/babel__core': specifier: ^7.1.14 - version: 7.20.4 + version: 7.20.5 '@types/babel__traverse': specifier: ^7.18.5 version: 7.20.4 @@ -695,10 +698,10 @@ importers: version: 1.0.3 '@types/lodash': specifier: ^4.14.170 - version: 4.14.201 + version: 4.14.202 '@types/semver': specifier: ^7.3.6 - version: 7.5.5 + version: 7.5.6 '@types/tmp': specifier: ^0.1.0 version: 0.1.0 @@ -713,7 +716,7 @@ importers: version: 0.1.0 typescript: specifier: ^5.1.6 - version: 5.2.2 + version: 5.3.2 packages/test-setup: dependencies: @@ -735,7 +738,7 @@ importers: version: link:../webpack '@types/lodash': specifier: ^4.14.170 - version: 4.14.201 + version: 4.14.202 packages/util: dependencies: @@ -793,10 +796,10 @@ importers: version: 1.2.1 '@typescript-eslint/eslint-plugin': specifier: ^5.59.5 - version: 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@7.32.0)(typescript@5.2.2) + version: 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@7.32.0)(typescript@5.3.2) '@typescript-eslint/parser': specifier: ^5.59.5 - version: 5.62.0(eslint@7.32.0)(typescript@5.2.2) + version: 5.62.0(eslint@7.32.0)(typescript@5.3.2) babel-eslint: specifier: ^10.1.0 version: 10.1.0(eslint@7.32.0) @@ -808,7 +811,7 @@ importers: version: 7.0.3 ember-auto-import: specifier: ^2.4.2 - version: 2.6.3(@glint/template@1.2.1)(webpack@5.89.0) + version: 2.7.0(@glint/template@1.2.1)(webpack@5.89.0) ember-cli: specifier: ~4.6.0 version: 4.6.0 @@ -886,13 +889,19 @@ importers: version: 2.0.0 typescript: specifier: ^5.1.6 - version: 5.2.2 + version: 5.3.2 webpack: specifier: ^5.74.0 version: 5.89.0 packages/vite: dependencies: + '@babel/core': + specifier: ^7.22.9 + version: 7.23.3(supports-color@8.1.1) + '@embroider/macros': + specifier: workspace:* + version: link:../macros '@rollup/pluginutils': specifier: ^4.1.1 version: 4.2.1 @@ -905,6 +914,9 @@ importers: debug: specifier: ^4.3.2 version: 4.3.4(supports-color@8.1.1) + esbuild: + specifier: ^0.17.19 + version: 0.17.19 fs-extra: specifier: ^10.0.0 version: 10.1.0 @@ -921,6 +933,9 @@ importers: '@embroider/core': specifier: workspace:^ version: link:../core + '@types/babel__core': + specifier: ^7.20.1 + version: 7.20.5 '@types/debug': specifier: ^4.1.5 version: 4.1.12 @@ -1020,7 +1035,7 @@ importers: version: 9.0.13 '@types/lodash': specifier: ^4.14.170 - version: 4.14.201 + version: 4.14.202 '@types/mini-css-extract-plugin': specifier: ^1.4.3 version: 1.4.3 @@ -1029,10 +1044,10 @@ importers: version: 15.14.9 '@types/semver': specifier: ^7.3.6 - version: 7.5.5 + version: 7.5.6 typescript: specifier: ^5.1.6 - version: 5.2.2 + version: 5.3.2 webpack: specifier: ^5.38.1 version: 5.89.0 @@ -1053,10 +1068,10 @@ importers: version: 4.0.9 '@types/semver': specifier: ^7.3.6 - version: 7.5.5 + version: 7.5.6 '@types/yargs': specifier: ^17.0.3 - version: 17.0.31 + version: 17.0.32 assert-never: specifier: ^1.2.1 version: 1.2.1 @@ -1111,7 +1126,7 @@ importers: version: 3.0.0 ember-auto-import: specifier: ^2.2.0 - version: 2.6.3(@glint/template@1.2.1)(webpack@5.89.0) + version: 2.7.0(@glint/template@1.2.1)(webpack@5.89.0) ember-cli: specifier: ~3.28.0 version: 3.28.6(lodash@4.17.21) @@ -1165,7 +1180,7 @@ importers: version: 7.13.0 eslint-plugin-node: specifier: ^9.0.1 - version: 9.2.0(eslint@8.53.0) + version: 9.2.0(eslint@8.54.0) loader.js: specifier: ^4.7.0 version: 4.7.0 @@ -1189,7 +1204,7 @@ importers: version: 7.23.3(@babel/core@7.23.3) '@babel/plugin-transform-typescript': specifier: ^7.8.7 - version: 7.23.3(@babel/core@7.23.3) + version: 7.23.4(@babel/core@7.23.3) '@babel/preset-env': specifier: ^7.9.0 version: 7.23.3(@babel/core@7.23.3) @@ -1207,13 +1222,13 @@ importers: version: 3.5.2 code-equality-assertions: specifier: ^0.9.0 - version: 0.9.0(@types/jest@29.5.8)(qunit@2.20.0) + version: 0.9.0(@types/jest@29.5.10)(qunit@2.20.0) console-ui: specifier: ^3.0.0 version: 3.1.2 ember-auto-import: specifier: ^2.2.0 - version: 2.6.3(@glint/template@1.2.1)(webpack@5.89.0) + version: 2.7.0(@glint/template@1.2.1)(webpack@5.89.0) ember-cli: specifier: ~3.28.0 version: 3.28.6(lodash@4.17.21) @@ -1256,7 +1271,7 @@ importers: version: 0.84.3 '@types/babel__core': specifier: ^7.1.14 - version: 7.20.4 + version: 7.20.5 '@types/babel__traverse': specifier: ^7.18.5 version: 7.20.4 @@ -1265,7 +1280,7 @@ importers: version: 9.0.13 '@types/lodash': specifier: ^4.14.170 - version: 4.14.201 + version: 4.14.202 '@types/node': specifier: ^10.5.2 version: 10.17.60 @@ -1333,7 +1348,7 @@ importers: version: 3.0.0 ember-auto-import: specifier: ^2.4.2 - version: 2.6.3(@glint/template@1.2.1)(webpack@5.89.0) + version: 2.7.0(@glint/template@1.2.1)(webpack@5.89.0) ember-cli: specifier: ~4.6.0 version: 4.6.0 @@ -1456,7 +1471,7 @@ importers: version: 3.0.0 ember-auto-import: specifier: ^2.4.2 - version: 2.6.3(@glint/template@1.2.1)(webpack@5.89.0) + version: 2.7.0(@glint/template@1.2.1)(webpack@5.89.0) ember-cli: specifier: ~4.6.0 version: 4.6.0 @@ -1569,13 +1584,13 @@ importers: version: link:../../packages/webpack '@types/qunit': specifier: ^2.11.1 - version: 2.19.8 + version: 2.19.9 ember-auto-import: specifier: ^2.6.3 - version: 2.6.3 + version: 2.7.0 fastboot: specifier: ^4.1.1 - version: 4.1.1 + version: 4.1.2 fs-extra: specifier: ^10.0.0 version: 10.1.0 @@ -1608,7 +1623,7 @@ importers: version: 7.5.4 ts-node: specifier: ^10.9.1 - version: 10.9.1(typescript@5.2.2) + version: 10.9.1(typescript@5.3.2) devDependencies: '@babel/core': specifier: ^7.17.5 @@ -1624,19 +1639,19 @@ importers: version: 7.23.3(@babel/core@7.23.3) '@babel/plugin-transform-class-static-block': specifier: ^7.22.5 - version: 7.23.3(@babel/core@7.23.3) + version: 7.23.4(@babel/core@7.23.3) '@babel/plugin-transform-runtime': specifier: ^7.18.6 - version: 7.23.3(@babel/core@7.23.3) + version: 7.23.4(@babel/core@7.23.3) '@babel/plugin-transform-typescript': specifier: ^7.22.5 - version: 7.23.3(@babel/core@7.23.3) + version: 7.23.4(@babel/core@7.23.3) '@babel/preset-env': specifier: ^7.16.11 version: 7.23.3(@babel/core@7.23.3) '@babel/runtime': specifier: ^7.18.6 - version: 7.23.2 + version: 7.23.4 '@ember/legacy-built-in-components': specifier: ^0.4.1 version: 0.4.2(ember-source@3.28.12) @@ -1645,7 +1660,7 @@ importers: version: 3.1.1 '@ember/test-helpers-3': specifier: npm:@ember/test-helpers@^3.2.0 - version: /@ember/test-helpers@3.2.0(ember-source@3.28.12) + version: /@ember/test-helpers@3.2.1(ember-source@3.28.12) '@embroider/addon-shim': specifier: workspace:* version: link:../../packages/addon-shim @@ -1663,7 +1678,7 @@ importers: version: 5.3.1(@babel/core@7.23.3)(rollup@3.29.4) '@rollup/plugin-typescript': specifier: ^11.1.2 - version: 11.1.5(rollup@3.29.4)(tslib@2.6.2)(typescript@5.2.2) + version: 11.1.5(rollup@3.29.4)(tslib@2.6.2)(typescript@5.3.2) '@tsconfig/ember': specifier: 1.0.1 version: 1.0.1 @@ -1675,10 +1690,10 @@ importers: version: 4.0.9 '@types/lodash': specifier: ^4.14.170 - version: 4.14.201 + version: 4.14.202 '@types/semver': specifier: ^7.3.6 - version: 7.5.5 + version: 7.5.6 babel-plugin-ember-template-compilation: specifier: ^2.1.1 version: 2.2.1 @@ -1708,13 +1723,13 @@ importers: version: /ember-cli@4.4.1(lodash@4.17.21) ember-cli-beta: specifier: npm:ember-cli@beta - version: /ember-cli@5.5.0-beta.0(lodash@4.17.21) + version: /ember-cli@5.5.0-beta.1(lodash@4.17.21) ember-cli-fastboot: specifier: ^4.1.1 - version: 4.1.1 + version: 4.1.2 ember-cli-latest: specifier: npm:ember-cli@latest - version: /ember-cli@5.4.0(lodash@4.17.21) + version: /ember-cli@5.4.1(lodash@4.17.21) ember-composable-helpers: specifier: ^4.4.1 version: 4.5.0 @@ -1738,7 +1753,7 @@ importers: version: 4.1.0(ember-source@3.28.12) ember-qunit-7: specifier: npm:ember-qunit@^7.0.0 - version: /ember-qunit@7.0.0(@ember/test-helpers@3.2.0)(ember-source@3.28.12)(qunit@2.20.0) + version: /ember-qunit@7.0.0(@ember/test-helpers@3.2.1)(ember-source@3.28.12)(qunit@2.20.0) ember-source: specifier: ~3.28.11 version: 3.28.12(@babel/core@7.23.3) @@ -1747,7 +1762,7 @@ importers: version: /ember-source@4.4.5(@babel/core@7.23.3) ember-source-beta: specifier: npm:ember-source@beta - version: /ember-source@5.5.0-beta.1(@babel/core@7.23.3) + version: /ember-source@5.5.0-beta.2(@babel/core@7.23.3) ember-source-latest: specifier: npm:ember-source@latest version: /ember-source@5.4.0(@babel/core@7.23.3) @@ -1762,7 +1777,7 @@ importers: version: 2.6.2 typescript: specifier: ^5.1.6 - version: 5.2.2 + version: 5.3.2 tests/ts-app-template: devDependencies: @@ -1771,7 +1786,7 @@ importers: version: 7.23.3(supports-color@8.1.1) '@babel/eslint-parser': specifier: ^7.21.3 - version: 7.23.3(@babel/core@7.23.3)(eslint@8.53.0) + version: 7.23.3(@babel/core@7.23.3)(eslint@8.54.0) '@babel/plugin-proposal-decorators': specifier: ^7.21.0 version: 7.23.3(@babel/core@7.23.3) @@ -1783,7 +1798,7 @@ importers: version: 3.1.1 '@ember/test-helpers': specifier: ^3.2.0 - version: 3.2.0(@glint/template@1.2.1)(ember-source@5.3.0)(webpack@5.89.0) + version: 3.2.1(@glint/template@1.2.1)(ember-source@5.3.0)(webpack@5.89.0) '@embroider/compat': specifier: workspace:* version: link:../../packages/compat @@ -1825,10 +1840,10 @@ importers: version: 3.0.2 '@types/qunit': specifier: ^2.19.6 - version: 2.19.8 + version: 2.19.9 '@types/rsvp': specifier: ^4.0.4 - version: 4.0.7 + version: 4.0.8 broccoli-asset-rev: specifier: ^3.0.0 version: 3.0.0 @@ -1837,7 +1852,7 @@ importers: version: 8.2.2 ember-auto-import: specifier: ^2.6.3 - version: 2.6.3(@glint/template@1.2.1)(webpack@5.89.0) + version: 2.7.0(@glint/template@1.2.1)(webpack@5.89.0) ember-cli: specifier: ~5.3.0 version: 5.3.0 @@ -1879,7 +1894,7 @@ importers: version: 8.1.0(ember-source@5.3.0) ember-qunit: specifier: ^8.0.1 - version: 8.0.2(@ember/test-helpers@3.2.0)(@glint/template@1.2.1)(ember-source@5.3.0)(qunit@2.20.0) + version: 8.0.2(@ember/test-helpers@3.2.1)(@glint/template@1.2.1)(ember-source@5.3.0)(qunit@2.20.0) ember-resolver: specifier: ^11.0.1 version: 11.0.1(ember-source@5.3.0) @@ -1888,7 +1903,7 @@ importers: version: 5.3.0(@babel/core@7.23.3)(@glimmer/component@1.1.2)(@glint/template@1.2.1)(webpack@5.89.0) eslint-plugin-n: specifier: ^16.1.0 - version: 16.3.1(eslint@8.53.0) + version: 16.3.1(eslint@8.54.0) loader.js: specifier: ^4.7.0 version: 4.7.0 @@ -1903,19 +1918,19 @@ importers: version: 2.0.0 stylelint: specifier: ^15.10.3 - version: 15.11.0(typescript@5.2.2) + version: 15.11.0(typescript@5.3.2) stylelint-config-standard: specifier: ^34.0.0 version: 34.0.0(stylelint@15.11.0) stylelint-prettier: specifier: ^4.0.2 - version: 4.0.2(prettier@3.1.0)(stylelint@15.11.0) + version: 4.1.0(prettier@3.1.0)(stylelint@15.11.0) tracked-built-ins: specifier: ^3.2.0 version: 3.3.0 typescript: specifier: ^5.1.6 - version: 5.2.2 + version: 5.3.2 webpack: specifier: ^5.88.2 version: 5.89.0 @@ -1937,7 +1952,7 @@ importers: version: 7.23.3(supports-color@8.1.1) '@babel/eslint-parser': specifier: ^7.22.5 - version: 7.23.3(@babel/core@7.23.3)(eslint@8.53.0) + version: 7.23.3(@babel/core@7.23.3)(eslint@8.54.0) '@babel/plugin-proposal-decorators': specifier: ^7.22.5 version: 7.23.3(@babel/core@7.23.3) @@ -1949,7 +1964,7 @@ importers: version: 3.1.1 '@ember/test-helpers': specifier: ^3.0.3 - version: 3.2.0(ember-source@5.1.2) + version: 3.2.1(ember-source@5.1.2) '@embroider/compat': specifier: workspace:* version: link:../../packages/compat @@ -1976,7 +1991,7 @@ importers: version: 8.2.2 ember-auto-import: specifier: ^2.6.3 - version: 2.6.3 + version: 2.7.0 ember-cli: specifier: ~5.0.0 version: 5.0.0 @@ -2018,7 +2033,7 @@ importers: version: 7.0.0 ember-qunit: specifier: ^7.0.0 - version: 7.0.0(@ember/test-helpers@3.2.0)(ember-source@5.1.2)(qunit@2.20.0) + version: 7.0.0(@ember/test-helpers@3.2.1)(ember-source@5.1.2)(qunit@2.20.0) ember-resolver: specifier: ^10.1.0 version: 10.1.1(@ember/string@3.1.1)(ember-source@5.1.2) @@ -2027,28 +2042,28 @@ importers: version: 5.1.2(@babel/core@7.23.3)(@glimmer/component@1.1.2) ember-template-lint: specifier: ^5.10.3 - version: 5.12.0 + version: 5.13.0 ember-welcome-page: specifier: ^7.0.2 version: 7.0.2 eslint: specifier: ^8.42.0 - version: 8.53.0 + version: 8.54.0 eslint-config-prettier: specifier: ^8.8.0 - version: 8.10.0(eslint@8.53.0) + version: 8.10.0(eslint@8.54.0) eslint-plugin-ember: specifier: ^11.8.0 - version: 11.11.1(eslint@8.53.0) + version: 11.11.1(eslint@8.54.0) eslint-plugin-n: specifier: ^16.0.0 - version: 16.3.1(eslint@8.53.0) + version: 16.3.1(eslint@8.54.0) eslint-plugin-prettier: specifier: ^4.2.1 - version: 4.2.1(eslint-config-prettier@8.10.0)(eslint@8.53.0)(prettier@2.8.8) + version: 4.2.1(eslint-config-prettier@8.10.0)(eslint@8.54.0)(prettier@2.8.8) eslint-plugin-qunit: specifier: ^7.3.4 - version: 7.3.4(eslint@8.53.0) + version: 7.3.4(eslint@8.54.0) loader.js: specifier: ^4.7.0 version: 4.7.0 @@ -2063,7 +2078,7 @@ importers: version: 2.0.0 stylelint: specifier: ^15.7.0 - version: 15.11.0(typescript@5.2.2) + version: 15.11.0(typescript@5.3.2) stylelint-config-standard: specifier: ^33.0.0 version: 33.0.0(stylelint@15.11.0) @@ -2075,7 +2090,7 @@ importers: version: 3.3.0 typescript: specifier: ^5.1.6 - version: 5.2.2 + version: 5.3.2 vite: specifier: ^4.3.9 version: 4.5.0(terser@5.24.0) @@ -2131,14 +2146,14 @@ packages: /@babel/code-frame@7.12.11: resolution: {integrity: sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==} dependencies: - '@babel/highlight': 7.22.20 + '@babel/highlight': 7.23.4 dev: true - /@babel/code-frame@7.22.13: - resolution: {integrity: sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==} + /@babel/code-frame@7.23.4: + resolution: {integrity: sha512-r1IONyb6Ia+jYR2vvIDhdWdlTGhqbBoFqLTQidzZ4kepUFH15ejXvFHxCVbtl7BOXIudsIubf4E81xeA3h3IXA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/highlight': 7.22.20 + '@babel/highlight': 7.23.4 chalk: 2.4.2 /@babel/compat-data@7.23.3: @@ -2150,15 +2165,15 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@ampproject/remapping': 2.2.1 - '@babel/code-frame': 7.22.13 - '@babel/generator': 7.23.3 + '@babel/code-frame': 7.23.4 + '@babel/generator': 7.23.4 '@babel/helper-compilation-targets': 7.22.15 '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.3) - '@babel/helpers': 7.23.2(supports-color@8.1.1) - '@babel/parser': 7.23.3 + '@babel/helpers': 7.23.4(supports-color@8.1.1) + '@babel/parser': 7.23.4 '@babel/template': 7.22.15 - '@babel/traverse': 7.23.3(supports-color@8.1.1) - '@babel/types': 7.23.3 + '@babel/traverse': 7.23.4(supports-color@8.1.1) + '@babel/types': 7.23.4 convert-source-map: 2.0.0 debug: 4.3.4(supports-color@8.1.1) gensync: 1.0.0-beta.2 @@ -2167,7 +2182,7 @@ packages: transitivePeerDependencies: - supports-color - /@babel/eslint-parser@7.23.3(@babel/core@7.23.3)(eslint@8.53.0): + /@babel/eslint-parser@7.23.3(@babel/core@7.23.3)(eslint@8.54.0): resolution: {integrity: sha512-9bTuNlyx7oSstodm1cR1bECj4fkiknsDa1YniISkJemMY3DGhJNYBECbe6QD/q54mp2J8VO66jW3/7uP//iFCw==} engines: {node: ^10.13.0 || ^12.13.0 || >=14.0.0} peerDependencies: @@ -2176,7 +2191,7 @@ packages: dependencies: '@babel/core': 7.23.3(supports-color@8.1.1) '@nicolo-ribaudo/eslint-scope-5-internals': 5.1.1-v1 - eslint: 8.53.0 + eslint: 8.54.0 eslint-visitor-keys: 2.1.0 semver: 6.3.1 dev: true @@ -2185,17 +2200,17 @@ packages: resolution: {integrity: sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.3 + '@babel/types': 7.23.4 '@jridgewell/gen-mapping': 0.3.3 '@jridgewell/trace-mapping': 0.3.20 jsesc: 2.5.2 dev: true - /@babel/generator@7.23.3: - resolution: {integrity: sha512-keeZWAV4LU3tW0qRi19HRpabC/ilM0HRBBzf9/k8FFiG4KVpiv0FIy4hHfLfFQZNhziCTPTmd59zoyv6DNISzg==} + /@babel/generator@7.23.4: + resolution: {integrity: sha512-esuS49Cga3HcThFNebGhlgsrVLkvhqvYDTzgjfFFlHJcIfLe5jFmRRfCQ1KuBfc4Jrtn3ndLgKWAKjBE+IraYQ==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.3 + '@babel/types': 7.23.4 '@jridgewell/gen-mapping': 0.3.3 '@jridgewell/trace-mapping': 0.3.20 jsesc: 2.5.2 @@ -2204,13 +2219,13 @@ packages: resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.3 + '@babel/types': 7.23.4 /@babel/helper-builder-binary-assignment-operator-visitor@7.22.15: resolution: {integrity: sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.3 + '@babel/types': 7.23.4 /@babel/helper-compilation-targets@7.22.15: resolution: {integrity: sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==} @@ -2273,25 +2288,25 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/template': 7.22.15 - '@babel/types': 7.23.3 + '@babel/types': 7.23.4 /@babel/helper-hoist-variables@7.22.5: resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.3 + '@babel/types': 7.23.4 /@babel/helper-member-expression-to-functions@7.23.0: resolution: {integrity: sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.3 + '@babel/types': 7.23.4 /@babel/helper-module-imports@7.22.15: resolution: {integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.3 + '@babel/types': 7.23.4 /@babel/helper-module-transforms@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==} @@ -2310,7 +2325,7 @@ packages: resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.3 + '@babel/types': 7.23.4 /@babel/helper-plugin-utils@7.22.5: resolution: {integrity: sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==} @@ -2342,22 +2357,22 @@ packages: resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.3 + '@babel/types': 7.23.4 /@babel/helper-skip-transparent-expression-wrappers@7.22.5: resolution: {integrity: sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.3 + '@babel/types': 7.23.4 /@babel/helper-split-export-declaration@7.22.6: resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.3 + '@babel/types': 7.23.4 - /@babel/helper-string-parser@7.22.5: - resolution: {integrity: sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==} + /@babel/helper-string-parser@7.23.4: + resolution: {integrity: sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==} engines: {node: '>=6.9.0'} /@babel/helper-validator-identifier@7.22.20: @@ -2374,32 +2389,32 @@ packages: dependencies: '@babel/helper-function-name': 7.23.0 '@babel/template': 7.22.15 - '@babel/types': 7.23.3 + '@babel/types': 7.23.4 - /@babel/helpers@7.23.2(supports-color@8.1.1): - resolution: {integrity: sha512-lzchcp8SjTSVe/fPmLwtWVBFC7+Tbn8LGHDVfDp9JGxpAY5opSaEFgt8UQvrnECWOTdji2mOWMz1rOhkHscmGQ==} + /@babel/helpers@7.23.4(supports-color@8.1.1): + resolution: {integrity: sha512-HfcMizYz10cr3h29VqyfGL6ZWIjTwWfvYBMsBVGwpcbhNGe3wQ1ZXZRPzZoAHhd9OqHadHqjQ89iVKINXnbzuw==} engines: {node: '>=6.9.0'} dependencies: '@babel/template': 7.22.15 - '@babel/traverse': 7.23.3(supports-color@8.1.1) - '@babel/types': 7.23.3 + '@babel/traverse': 7.23.4(supports-color@8.1.1) + '@babel/types': 7.23.4 transitivePeerDependencies: - supports-color - /@babel/highlight@7.22.20: - resolution: {integrity: sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==} + /@babel/highlight@7.23.4: + resolution: {integrity: sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==} engines: {node: '>=6.9.0'} dependencies: '@babel/helper-validator-identifier': 7.22.20 chalk: 2.4.2 js-tokens: 4.0.0 - /@babel/parser@7.23.3: - resolution: {integrity: sha512-uVsWNvlVsIninV2prNz/3lHCb+5CJ+e+IUBfbjToAHODtfGYLfCFuY4AU7TskI+dAKk+njsPiBjq1gKTvZOBaw==} + /@babel/parser@7.23.4: + resolution: {integrity: sha512-vf3Xna6UEprW+7t6EtOmFpHNAuxw3xqPZghy+brsnusscJRW5BMUzzHZc5ICjULee81WeUV2jjakG09MDglJXQ==} engines: {node: '>=6.0.0'} hasBin: true dependencies: - '@babel/types': 7.23.3 + '@babel/types': 7.23.4 /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-iRkKcCqb7iGnq9+3G6rZ+Ciz5VywC4XNRHe57lKM+jOeYAoR0lVqdeeDRfh0tQcTfw/+vBhHn926FmQhLtlFLQ==} @@ -2419,7 +2434,7 @@ packages: '@babel/core': 7.23.3(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/plugin-transform-optional-chaining': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-optional-chaining': 7.23.4(@babel/core@7.23.3) /@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-XaJak1qcityzrX0/IU5nKHb34VaibwP3saKqG6a/tppelgllOH13LUann4ZCIBcVOeE6H18K4Vx9QKkVww3z/w==} @@ -2684,8 +2699,8 @@ packages: '@babel/core': 7.23.3(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-transform-async-generator-functions@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-59GsVNavGxAXCDDbakWSMJhajASb4kBCqDjqJsv+p5nKdbz7istmZ3HrX3L2LuiI80+zsOADCvooqQH3qGCucQ==} + /@babel/plugin-transform-async-generator-functions@7.23.4(@babel/core@7.23.3): + resolution: {integrity: sha512-efdkfPhHYTtn0G6n2ddrESE91fgXxjlqLsnUtPWnJs4a4mZIbUaK7ffqKIIUKXSHwcDvaCVX6GXkaJJFqtX7jw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -2716,8 +2731,8 @@ packages: '@babel/core': 7.23.3(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-transform-block-scoping@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-QPZxHrThbQia7UdvfpaRRlq/J9ciz1J4go0k+lPBXbgaNeY7IQrBj/9ceWjvMMI07/ZBzHl/F0R/2K0qH7jCVw==} + /@babel/plugin-transform-block-scoping@7.23.4(@babel/core@7.23.3): + resolution: {integrity: sha512-0QqbP6B6HOh7/8iNR4CQU2Th/bbRtBp4KS9vcaZd1fZ0wSh5Fyssg0UCIHwxh+ka+pNDREbVLQnHCMHKZfPwfw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -2735,8 +2750,8 @@ packages: '@babel/helper-create-class-features-plugin': 7.22.15(@babel/core@7.23.3) '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-transform-class-static-block@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-PENDVxdr7ZxKPyi5Ffc0LjXdnJyrJxyqF5T5YjlVg4a0VFfQHW0r8iAtRiDXkfHlu1wwcvdtnndGYIeJLSuRMQ==} + /@babel/plugin-transform-class-static-block@7.23.4(@babel/core@7.23.3): + resolution: {integrity: sha512-nsWu/1M+ggti1SOALj3hfx5FXzAY06fwPJsUZD4/A5e1bWi46VUIWtD+kOX6/IdhXGsXBWllLFDSnqSCdUNydQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.12.0 @@ -2801,8 +2816,8 @@ packages: '@babel/core': 7.23.3(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-transform-dynamic-import@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-vTG+cTGxPFou12Rj7ll+eD5yWeNl5/8xvQvF08y5Gv3v4mZQoyFf8/n9zg4q5vvCWt5jmgymfzMAldO7orBn7A==} + /@babel/plugin-transform-dynamic-import@7.23.4(@babel/core@7.23.3): + resolution: {integrity: sha512-V6jIbLhdJK86MaLh4Jpghi8ho5fGzt3imHOBu/x0jlBaPYqDoWz4RDXjmMOfnh+JWNaQleEAByZLV0QzBT4YQQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -2821,8 +2836,8 @@ packages: '@babel/helper-builder-binary-assignment-operator-visitor': 7.22.15 '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-transform-export-namespace-from@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-yCLhW34wpJWRdTxxWtFZASJisihrfyMOTOQexhVzA78jlU+dH7Dw+zQgcPepQ5F3C6bAIiblZZ+qBggJdHiBAg==} + /@babel/plugin-transform-export-namespace-from@7.23.4(@babel/core@7.23.3): + resolution: {integrity: sha512-GzuSBcKkx62dGzZI1WVgTWvkkz84FZO5TC5T8dl/Tht/rAla6Dg/Mz9Yhypg+ezVACf/rgDuQt3kbWEv7LdUDQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -2851,8 +2866,8 @@ packages: '@babel/helper-function-name': 7.23.0 '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-transform-json-strings@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-H9Ej2OiISIZowZHaBwF0tsJOih1PftXJtE8EWqlEIwpc7LMTGq0rPOrywKLQ4nefzx8/HMR0D3JGXoMHYvhi0A==} + /@babel/plugin-transform-json-strings@7.23.4(@babel/core@7.23.3): + resolution: {integrity: sha512-81nTOqM1dMwZ/aRXQ59zVubN9wHGqk6UtqRK+/q+ciXmRy8fSolhGVvG09HHRGo4l6fr/c4ZhXUQH0uFW7PZbg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -2870,8 +2885,8 @@ packages: '@babel/core': 7.23.3(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-transform-logical-assignment-operators@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-+pD5ZbxofyOygEp+zZAfujY2ShNCXRpDRIPOiBmTO693hhyOEteZgl876Xs9SAHPQpcV0vz8LvA/T+w8AzyX8A==} + /@babel/plugin-transform-logical-assignment-operators@7.23.4(@babel/core@7.23.3): + resolution: {integrity: sha512-Mc/ALf1rmZTP4JKKEhUwiORU+vcfarFVLfcFiolKUo6sewoxSEgl36ak5t+4WamRsNr6nzjZXQjM35WsU+9vbg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -2951,8 +2966,8 @@ packages: '@babel/core': 7.23.3(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-transform-nullish-coalescing-operator@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-xzg24Lnld4DYIdysyf07zJ1P+iIfJpxtVFOzX4g+bsJ3Ng5Le7rXx9KwqKzuyaUeRnt+I1EICwQITqc0E2PmpA==} + /@babel/plugin-transform-nullish-coalescing-operator@7.23.4(@babel/core@7.23.3): + resolution: {integrity: sha512-jHE9EVVqHKAQx+VePv5LLGHjmHSJR76vawFPTdlxR/LVJPfOEGxREQwQfjuZEOPTwG92X3LINSh3M40Rv4zpVA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -2961,8 +2976,8 @@ packages: '@babel/helper-plugin-utils': 7.22.5 '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.3) - /@babel/plugin-transform-numeric-separator@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-s9GO7fIBi/BLsZ0v3Rftr6Oe4t0ctJ8h4CCXfPoEJwmvAPMyNrfkOOJzm6b9PX9YXcCJWWQd/sBF/N26eBiMVw==} + /@babel/plugin-transform-numeric-separator@7.23.4(@babel/core@7.23.3): + resolution: {integrity: sha512-mps6auzgwjRrwKEZA05cOwuDc9FAzoyFS4ZsG/8F43bTLf/TgkJg7QXOrPO1JO599iA3qgK9MXdMGOEC8O1h6Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -2980,8 +2995,8 @@ packages: '@babel/core': 7.23.3(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-transform-object-rest-spread@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-VxHt0ANkDmu8TANdE9Kc0rndo/ccsmfe2Cx2y5sI4hu3AukHQ5wAu4cM7j3ba8B9548ijVyclBU+nuDQftZsog==} + /@babel/plugin-transform-object-rest-spread@7.23.4(@babel/core@7.23.3): + resolution: {integrity: sha512-9x9K1YyeQVw0iOXJlIzwm8ltobIIv7j2iLyP2jIhEbqPRQ7ScNgwQufU2I0Gq11VjyG4gI4yMXt2VFags+1N3g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -3003,8 +3018,8 @@ packages: '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.3) - /@babel/plugin-transform-optional-catch-binding@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-LxYSb0iLjUamfm7f1D7GpiS4j0UAC8AOiehnsGAP8BEsIX8EOi3qV6bbctw8M7ZvLtcoZfZX5Z7rN9PlWk0m5A==} + /@babel/plugin-transform-optional-catch-binding@7.23.4(@babel/core@7.23.3): + resolution: {integrity: sha512-XIq8t0rJPHf6Wvmbn9nFxU6ao4c7WhghTR5WyV8SrJfUFzyxhCm4nhC+iAp3HFhbAKLfYpgzhJ6t4XCtVwqO5A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -3013,8 +3028,8 @@ packages: '@babel/helper-plugin-utils': 7.22.5 '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.3) - /@babel/plugin-transform-optional-chaining@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-zvL8vIfIUgMccIAK1lxjvNv572JHFJIKb4MWBz5OGdBQA0fB0Xluix5rmOby48exiJc987neOmP/m9Fnpkz3Tg==} + /@babel/plugin-transform-optional-chaining@7.23.4(@babel/core@7.23.3): + resolution: {integrity: sha512-ZU8y5zWOfjM5vZ+asjgAPwDaBjJzgufjES89Rs4Lpq63O300R/kOz30WCLo6BxxX6QVEilwSlpClnG5cZaikTA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -3043,8 +3058,8 @@ packages: '@babel/helper-create-class-features-plugin': 7.22.15(@babel/core@7.23.3) '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-transform-private-property-in-object@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-a5m2oLNFyje2e/rGKjVfAELTVI5mbA0FeZpBnkOWWV7eSmKQ+T/XW0Vf+29ScLzSxX+rnsarvU0oie/4m6hkxA==} + /@babel/plugin-transform-private-property-in-object@7.23.4(@babel/core@7.23.3): + resolution: {integrity: sha512-9G3K1YqTq3F4Vt88Djx1UZ79PDyj+yKRnUy7cZGSMe+a7jkwD259uKKuUzQlPkGam7R+8RJwh5z4xO27fA1o2A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -3083,8 +3098,8 @@ packages: '@babel/core': 7.23.3(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-transform-runtime@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-XcQ3X58CKBdBnnZpPaQjgVMePsXtSZzHoku70q9tUAQp02ggPQNM04BF3RvlW1GSM/McbSOQAzEK4MXbS7/JFg==} + /@babel/plugin-transform-runtime@7.23.4(@babel/core@7.23.3): + resolution: {integrity: sha512-ITwqpb6V4btwUG0YJR82o2QvmWrLgDnx/p2A3CTPYGaRgULkDiC0DRA2C4jlRB9uXGUEfaSS/IGHfVW+ohzYDw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -3145,8 +3160,8 @@ packages: '@babel/core': 7.23.3(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-transform-typescript@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-ogV0yWnq38CFwH20l2Afz0dfKuZBx9o/Y2Rmh5vuSS0YD1hswgEgTfyTzuSrT2q9btmHRSqYoSfwFUVaC1M1Jw==} + /@babel/plugin-transform-typescript@7.23.4(@babel/core@7.23.3): + resolution: {integrity: sha512-39hCCOl+YUAyMOu6B9SmUTiHUU0t/CxJNUmY3qRdJujbqi+lrQcL11ysYUsAvFWPBdhihrv1z0oRG84Yr3dODQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -3257,25 +3272,25 @@ packages: '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.23.3) '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.23.3) '@babel/plugin-transform-arrow-functions': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-async-generator-functions': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-async-generator-functions': 7.23.4(@babel/core@7.23.3) '@babel/plugin-transform-async-to-generator': 7.23.3(@babel/core@7.23.3) '@babel/plugin-transform-block-scoped-functions': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-block-scoping': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-block-scoping': 7.23.4(@babel/core@7.23.3) '@babel/plugin-transform-class-properties': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-class-static-block': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-class-static-block': 7.23.4(@babel/core@7.23.3) '@babel/plugin-transform-classes': 7.23.3(@babel/core@7.23.3) '@babel/plugin-transform-computed-properties': 7.23.3(@babel/core@7.23.3) '@babel/plugin-transform-destructuring': 7.23.3(@babel/core@7.23.3) '@babel/plugin-transform-dotall-regex': 7.23.3(@babel/core@7.23.3) '@babel/plugin-transform-duplicate-keys': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-dynamic-import': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-dynamic-import': 7.23.4(@babel/core@7.23.3) '@babel/plugin-transform-exponentiation-operator': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-export-namespace-from': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-export-namespace-from': 7.23.4(@babel/core@7.23.3) '@babel/plugin-transform-for-of': 7.23.3(@babel/core@7.23.3) '@babel/plugin-transform-function-name': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-json-strings': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-json-strings': 7.23.4(@babel/core@7.23.3) '@babel/plugin-transform-literals': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-logical-assignment-operators': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-logical-assignment-operators': 7.23.4(@babel/core@7.23.3) '@babel/plugin-transform-member-expression-literals': 7.23.3(@babel/core@7.23.3) '@babel/plugin-transform-modules-amd': 7.23.3(@babel/core@7.23.3) '@babel/plugin-transform-modules-commonjs': 7.23.3(@babel/core@7.23.3) @@ -3283,15 +3298,15 @@ packages: '@babel/plugin-transform-modules-umd': 7.23.3(@babel/core@7.23.3) '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5(@babel/core@7.23.3) '@babel/plugin-transform-new-target': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-nullish-coalescing-operator': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-numeric-separator': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-object-rest-spread': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-nullish-coalescing-operator': 7.23.4(@babel/core@7.23.3) + '@babel/plugin-transform-numeric-separator': 7.23.4(@babel/core@7.23.3) + '@babel/plugin-transform-object-rest-spread': 7.23.4(@babel/core@7.23.3) '@babel/plugin-transform-object-super': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-optional-catch-binding': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-optional-chaining': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-optional-catch-binding': 7.23.4(@babel/core@7.23.3) + '@babel/plugin-transform-optional-chaining': 7.23.4(@babel/core@7.23.3) '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.23.3) '@babel/plugin-transform-private-methods': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-private-property-in-object': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-private-property-in-object': 7.23.4(@babel/core@7.23.3) '@babel/plugin-transform-property-literals': 7.23.3(@babel/core@7.23.3) '@babel/plugin-transform-regenerator': 7.23.3(@babel/core@7.23.3) '@babel/plugin-transform-reserved-words': 7.23.3(@babel/core@7.23.3) @@ -3308,7 +3323,7 @@ packages: babel-plugin-polyfill-corejs2: 0.4.6(@babel/core@7.23.3) babel-plugin-polyfill-corejs3: 0.8.6(@babel/core@7.23.3) babel-plugin-polyfill-regenerator: 0.5.3(@babel/core@7.23.3) - core-js-compat: 3.33.2 + core-js-compat: 3.33.3 semver: 6.3.1 transitivePeerDependencies: - supports-color @@ -3320,7 +3335,7 @@ packages: dependencies: '@babel/core': 7.23.3(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.22.5 - '@babel/types': 7.23.3 + '@babel/types': 7.23.4 esutils: 2.0.3 /@babel/regjsgen@0.8.0: @@ -3331,8 +3346,8 @@ packages: dependencies: regenerator-runtime: 0.13.11 - /@babel/runtime@7.23.2: - resolution: {integrity: sha512-mM8eg4yl5D6i3lu2QKPuPH4FArvJ8KhTofbE7jwMUv9KX5mBvwPAqnV3MlyBNqdp9RyRKP6Yck8TrfYrPvX3bg==} + /@babel/runtime@7.23.4: + resolution: {integrity: sha512-2Yv65nlWnWlSpe3fXEyX5i7fx5kIKo4Qbcj+hMO0odwaneFjfXw5fdum+4yL20O0QiaHpia0cYQ9xpNMqrBwHg==} engines: {node: '>=6.9.0'} dependencies: regenerator-runtime: 0.14.0 @@ -3341,40 +3356,40 @@ packages: resolution: {integrity: sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==} engines: {node: '>=6.9.0'} dependencies: - '@babel/code-frame': 7.22.13 - '@babel/parser': 7.23.3 - '@babel/types': 7.23.3 + '@babel/code-frame': 7.23.4 + '@babel/parser': 7.23.4 + '@babel/types': 7.23.4 /@babel/traverse@7.23.0: resolution: {integrity: sha512-t/QaEvyIoIkwzpiZ7aoSKK8kObQYeF7T2v+dazAYCb8SXtp58zEVkWW7zAnju8FNKNdr4ScAOEDmMItbyOmEYw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/code-frame': 7.22.13 - '@babel/generator': 7.23.3 + '@babel/code-frame': 7.23.4 + '@babel/generator': 7.23.4 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-function-name': 7.23.0 '@babel/helper-hoist-variables': 7.22.5 '@babel/helper-split-export-declaration': 7.22.6 - '@babel/parser': 7.23.3 - '@babel/types': 7.23.3 + '@babel/parser': 7.23.4 + '@babel/types': 7.23.4 debug: 4.3.4(supports-color@8.1.1) globals: 11.12.0 transitivePeerDependencies: - supports-color dev: true - /@babel/traverse@7.23.3(supports-color@8.1.1): - resolution: {integrity: sha512-+K0yF1/9yR0oHdE0StHuEj3uTPzwwbrLGfNOndVJVV2TqA5+j3oljJUb4nmB954FLGjNem976+B+eDuLIjesiQ==} + /@babel/traverse@7.23.4(supports-color@8.1.1): + resolution: {integrity: sha512-IYM8wSUwunWTB6tFC2dkKZhxbIjHoWemdK+3f8/wq8aKhbUscxD5MX72ubd90fxvFknaLPeGw5ycU84V1obHJg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/code-frame': 7.22.13 - '@babel/generator': 7.23.3 + '@babel/code-frame': 7.23.4 + '@babel/generator': 7.23.4 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-function-name': 7.23.0 '@babel/helper-hoist-variables': 7.22.5 '@babel/helper-split-export-declaration': 7.22.6 - '@babel/parser': 7.23.3 - '@babel/types': 7.23.3 + '@babel/parser': 7.23.4 + '@babel/types': 7.23.4 debug: 4.3.4(supports-color@8.1.1) globals: 11.12.0 transitivePeerDependencies: @@ -3384,16 +3399,16 @@ packages: resolution: {integrity: sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/helper-string-parser': 7.22.5 + '@babel/helper-string-parser': 7.23.4 '@babel/helper-validator-identifier': 7.22.20 to-fast-properties: 2.0.0 dev: true - /@babel/types@7.23.3: - resolution: {integrity: sha512-OZnvoH2l8PK5eUvEcUyCt/sXgr/h+UWpVuBbOljwcrAgUl6lpchoQ++PHGyQy1AtYnVA6CEq3y5xeEI10brpXw==} + /@babel/types@7.23.4: + resolution: {integrity: sha512-7uIFwVYpoplT5jp/kVv6EF93VaJ8H+Yn5IczYiaAi98ajzjfoZfslet/e0sLh+wVBjb2qqIut1b0S26VSafsSQ==} engines: {node: '>=6.9.0'} dependencies: - '@babel/helper-string-parser': 7.22.5 + '@babel/helper-string-parser': 7.23.4 '@babel/helper-validator-identifier': 7.22.20 to-fast-properties: 2.0.0 @@ -3499,7 +3514,7 @@ packages: '@ember-data/store': 4.4.3(@babel/core@7.23.3) '@ember/edition-utils': 1.2.0 '@ember/string': 3.1.1 - ember-auto-import: 2.6.3 + ember-auto-import: 2.7.0 ember-cli-babel: 7.26.11 ember-cli-test-info: 1.0.0 ember-cli-typescript: 5.2.1 @@ -3518,7 +3533,7 @@ packages: '@ember-data/store': 4.4.3(@babel/core@7.23.3)(webpack@5.89.0) '@ember/edition-utils': 1.2.0 '@ember/string': 3.1.1 - ember-auto-import: 2.6.3(@glint/template@1.2.1)(webpack@5.89.0) + ember-auto-import: 2.7.0(@glint/template@1.2.1)(webpack@5.89.0) ember-cli-babel: 7.26.11 ember-cli-test-info: 1.0.0 ember-cli-typescript: 5.2.1 @@ -3612,7 +3627,7 @@ packages: '@ember-data/private-build-infra': 4.4.3(@babel/core@7.23.3) '@ember/edition-utils': 1.2.0 '@ember/string': 3.1.1 - ember-auto-import: 2.6.3 + ember-auto-import: 2.7.0 ember-cli-babel: 7.26.11 ember-cli-test-info: 1.0.0 ember-cli-typescript: 5.2.1 @@ -3630,7 +3645,7 @@ packages: '@ember-data/private-build-infra': 4.4.3(@babel/core@7.23.3) '@ember/edition-utils': 1.2.0 '@ember/string': 3.1.1 - ember-auto-import: 2.6.3(@glint/template@1.2.1)(webpack@5.89.0) + ember-auto-import: 2.7.0(@glint/template@1.2.1)(webpack@5.89.0) ember-cli-babel: 7.26.11 ember-cli-test-info: 1.0.0 ember-cli-typescript: 5.2.1 @@ -3678,7 +3693,7 @@ packages: '@ember/edition-utils': 1.2.0 '@ember/string': 3.1.1 '@embroider/macros': 1.13.3(@glint/template@1.2.1) - ember-auto-import: 2.6.3(@glint/template@1.2.1)(webpack@5.89.0) + ember-auto-import: 2.7.0(@glint/template@1.2.1)(webpack@5.89.0) ember-cli-babel: 8.2.0(@babel/core@7.23.3) webpack: 5.89.0 transitivePeerDependencies: @@ -3841,7 +3856,7 @@ packages: '@ember-data/store': 4.4.3(@babel/core@7.23.3) '@ember/edition-utils': 1.2.0 '@ember/string': 3.1.1 - ember-auto-import: 2.6.3 + ember-auto-import: 2.7.0 ember-cached-decorator-polyfill: 0.1.4(@babel/core@7.23.3) ember-cli-babel: 7.26.11 ember-cli-string-utils: 1.1.0 @@ -3865,7 +3880,7 @@ packages: '@ember-data/store': 4.4.3(@babel/core@7.23.3)(webpack@5.89.0) '@ember/edition-utils': 1.2.0 '@ember/string': 3.1.1 - ember-auto-import: 2.6.3(@glint/template@1.2.1)(webpack@5.89.0) + ember-auto-import: 2.7.0(@glint/template@1.2.1)(webpack@5.89.0) ember-cached-decorator-polyfill: 0.1.4(@babel/core@7.23.3) ember-cli-babel: 7.26.11 ember-cli-string-utils: 1.1.0 @@ -3970,7 +3985,7 @@ packages: resolution: {integrity: sha512-8gT3/gnmbNgFIMVdHBpl3xFGJefJE26VUIidFHTF1/N1aumVUlEhnXH0BSPxvxTnFXz/klGSTOMs+sDsx3jw6A==} engines: {node: 12.* || >= 14.*} dependencies: - '@babel/plugin-transform-block-scoping': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-block-scoping': 7.23.4(@babel/core@7.23.3) '@ember-data/canary-features': 3.28.13 '@ember/edition-utils': 1.2.0 babel-plugin-debug-macros: 0.3.4(@babel/core@7.23.3) @@ -4005,7 +4020,7 @@ packages: resolution: {integrity: sha512-2piJv/agaq3pDoSfNcJS96SSVvlCnz3ZQgyhOw4b0zAYaSchnk+775W6jUoxNl8NGjXEnBGulXce/b+NBX7z+Q==} engines: {node: 12.* || >= 14.*} dependencies: - '@babel/plugin-transform-block-scoping': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-block-scoping': 7.23.4(@babel/core@7.23.3) '@ember-data/canary-features': 4.4.3 '@ember/edition-utils': 1.2.0 babel-plugin-debug-macros: 0.3.4(@babel/core@7.23.3) @@ -4041,8 +4056,8 @@ packages: engines: {node: 16.* || >= 18.*} dependencies: '@babel/core': 7.23.3(supports-color@8.1.1) - '@babel/plugin-transform-block-scoping': 7.23.3(@babel/core@7.23.3) - '@babel/runtime': 7.23.2 + '@babel/plugin-transform-block-scoping': 7.23.4(@babel/core@7.23.3) + '@babel/runtime': 7.23.4 '@ember/edition-utils': 1.2.0 '@embroider/macros': 1.13.3(@glint/template@1.2.1) babel-import-util: 1.4.1 @@ -4074,8 +4089,8 @@ packages: engines: {node: 16.* || >= 18.*} dependencies: '@babel/core': 7.23.3(supports-color@8.1.1) - '@babel/plugin-transform-block-scoping': 7.23.3(@babel/core@7.23.3) - '@babel/runtime': 7.23.2 + '@babel/plugin-transform-block-scoping': 7.23.4(@babel/core@7.23.3) + '@babel/runtime': 7.23.4 '@ember/edition-utils': 1.2.0 '@embroider/macros': 1.13.3(@glint/template@1.2.1) babel-import-util: 1.4.1 @@ -4124,7 +4139,7 @@ packages: '@ember-data/private-build-infra': 4.4.3(@babel/core@7.23.3) '@ember-data/store': 4.4.3(@babel/core@7.23.3) '@ember/edition-utils': 1.2.0 - ember-auto-import: 2.6.3 + ember-auto-import: 2.7.0 ember-cli-babel: 7.26.11 ember-cli-test-info: 1.0.0 ember-cli-typescript: 5.2.1 @@ -4143,7 +4158,7 @@ packages: '@ember-data/private-build-infra': 4.4.3(@babel/core@7.23.3) '@ember-data/store': 4.4.3(@babel/core@7.23.3)(webpack@5.89.0) '@ember/edition-utils': 1.2.0 - ember-auto-import: 2.6.3(@glint/template@1.2.1)(webpack@5.89.0) + ember-auto-import: 2.7.0(@glint/template@1.2.1)(webpack@5.89.0) ember-cli-babel: 7.26.11 ember-cli-test-info: 1.0.0 ember-cli-typescript: 5.2.1 @@ -4214,7 +4229,7 @@ packages: dependencies: '@ember-data/private-build-infra': 4.4.3(@babel/core@7.23.3) '@ember-data/store': 4.4.3(@babel/core@7.23.3) - ember-auto-import: 2.6.3 + ember-auto-import: 2.7.0 ember-cli-babel: 7.26.11 ember-cli-test-info: 1.0.0 ember-cli-typescript: 5.2.1 @@ -4231,7 +4246,7 @@ packages: dependencies: '@ember-data/private-build-infra': 4.4.3(@babel/core@7.23.3) '@ember-data/store': 4.4.3(@babel/core@7.23.3)(webpack@5.89.0) - ember-auto-import: 2.6.3(@glint/template@1.2.1)(webpack@5.89.0) + ember-auto-import: 2.7.0(@glint/template@1.2.1)(webpack@5.89.0) ember-cli-babel: 7.26.11 ember-cli-test-info: 1.0.0 ember-cli-typescript: 5.2.1 @@ -4306,7 +4321,7 @@ packages: '@ember-data/private-build-infra': 4.4.3(@babel/core@7.23.3) '@ember/string': 3.1.1 '@glimmer/tracking': 1.1.2 - ember-auto-import: 2.6.3 + ember-auto-import: 2.7.0 ember-cached-decorator-polyfill: 0.1.4(@babel/core@7.23.3) ember-cli-babel: 7.26.11 ember-cli-path-utils: 1.0.0 @@ -4326,7 +4341,7 @@ packages: '@ember-data/private-build-infra': 4.4.3(@babel/core@7.23.3) '@ember/string': 3.1.1 '@glimmer/tracking': 1.1.2 - ember-auto-import: 2.6.3(@glint/template@1.2.1)(webpack@5.89.0) + ember-auto-import: 2.7.0(@glint/template@1.2.1)(webpack@5.89.0) ember-cached-decorator-polyfill: 0.1.4(@babel/core@7.23.3) ember-cli-babel: 7.26.11 ember-cli-path-utils: 1.0.0 @@ -4592,8 +4607,8 @@ packages: - supports-color dev: true - /@ember/test-helpers@3.2.0(@glint/template@1.2.1)(ember-source@5.3.0)(webpack@5.89.0): - resolution: {integrity: sha512-3yWpPsK5O77tUdCwW3HayrAcdlRitIRYMvLIG69Pkal1JMIGdNYVTvJ2R1lenhQh2syd/WFmGM07vQuDAtotQw==} + /@ember/test-helpers@3.2.1(@glint/template@1.2.1)(ember-source@5.3.0)(webpack@5.89.0): + resolution: {integrity: sha512-DvJSihJPV4xshwEgBrFN4aUVc9m/Y/hVzwcslfSVq/h3dMWCyAj4+agkkdJPQrwBaE+H4IyGNzr555S7bTErEA==} engines: {node: 16.* || >= 18} peerDependencies: ember-source: ^4.0.0 || ^5.0.0 @@ -4603,7 +4618,7 @@ packages: '@simple-dom/interface': 1.4.0 broccoli-debug: 0.6.5 broccoli-funnel: 3.0.8 - ember-auto-import: 2.6.3(@glint/template@1.2.1)(webpack@5.89.0) + ember-auto-import: 2.7.0(@glint/template@1.2.1)(webpack@5.89.0) ember-cli-babel: 7.26.11 ember-cli-htmlbars: 6.3.0 ember-source: 5.3.0(@babel/core@7.23.3)(@glimmer/component@1.1.2)(@glint/template@1.2.1)(webpack@5.89.0) @@ -4613,8 +4628,8 @@ packages: - webpack dev: true - /@ember/test-helpers@3.2.0(ember-source@3.28.12): - resolution: {integrity: sha512-3yWpPsK5O77tUdCwW3HayrAcdlRitIRYMvLIG69Pkal1JMIGdNYVTvJ2R1lenhQh2syd/WFmGM07vQuDAtotQw==} + /@ember/test-helpers@3.2.1(ember-source@3.28.12): + resolution: {integrity: sha512-DvJSihJPV4xshwEgBrFN4aUVc9m/Y/hVzwcslfSVq/h3dMWCyAj4+agkkdJPQrwBaE+H4IyGNzr555S7bTErEA==} engines: {node: 16.* || >= 18} peerDependencies: ember-source: ^4.0.0 || ^5.0.0 @@ -4624,7 +4639,7 @@ packages: '@simple-dom/interface': 1.4.0 broccoli-debug: 0.6.5 broccoli-funnel: 3.0.8 - ember-auto-import: 2.6.3 + ember-auto-import: 2.7.0 ember-cli-babel: 7.26.11 ember-cli-htmlbars: 6.3.0 ember-source: 3.28.12(@babel/core@7.23.3) @@ -4634,8 +4649,8 @@ packages: - webpack dev: true - /@ember/test-helpers@3.2.0(ember-source@5.1.2): - resolution: {integrity: sha512-3yWpPsK5O77tUdCwW3HayrAcdlRitIRYMvLIG69Pkal1JMIGdNYVTvJ2R1lenhQh2syd/WFmGM07vQuDAtotQw==} + /@ember/test-helpers@3.2.1(ember-source@5.1.2): + resolution: {integrity: sha512-DvJSihJPV4xshwEgBrFN4aUVc9m/Y/hVzwcslfSVq/h3dMWCyAj4+agkkdJPQrwBaE+H4IyGNzr555S7bTErEA==} engines: {node: 16.* || >= 18} peerDependencies: ember-source: ^4.0.0 || ^5.0.0 @@ -4645,7 +4660,7 @@ packages: '@simple-dom/interface': 1.4.0 broccoli-debug: 0.6.5 broccoli-funnel: 3.0.8 - ember-auto-import: 2.6.3 + ember-auto-import: 2.7.0 ember-cli-babel: 7.26.11 ember-cli-htmlbars: 6.3.0 ember-source: 5.1.2(@babel/core@7.23.3)(@glimmer/component@1.1.2) @@ -4779,6 +4794,15 @@ packages: - supports-color dev: true + /@esbuild/android-arm64@0.17.19: + resolution: {integrity: sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: false + optional: true + /@esbuild/android-arm64@0.18.20: resolution: {integrity: sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==} engines: {node: '>=12'} @@ -4788,6 +4812,15 @@ packages: dev: true optional: true + /@esbuild/android-arm@0.17.19: + resolution: {integrity: sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + requiresBuild: true + dev: false + optional: true + /@esbuild/android-arm@0.18.20: resolution: {integrity: sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==} engines: {node: '>=12'} @@ -4797,6 +4830,15 @@ packages: dev: true optional: true + /@esbuild/android-x64@0.17.19: + resolution: {integrity: sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + dev: false + optional: true + /@esbuild/android-x64@0.18.20: resolution: {integrity: sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==} engines: {node: '>=12'} @@ -4806,6 +4848,15 @@ packages: dev: true optional: true + /@esbuild/darwin-arm64@0.17.19: + resolution: {integrity: sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: false + optional: true + /@esbuild/darwin-arm64@0.18.20: resolution: {integrity: sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==} engines: {node: '>=12'} @@ -4815,6 +4866,15 @@ packages: dev: true optional: true + /@esbuild/darwin-x64@0.17.19: + resolution: {integrity: sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: false + optional: true + /@esbuild/darwin-x64@0.18.20: resolution: {integrity: sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==} engines: {node: '>=12'} @@ -4824,6 +4884,15 @@ packages: dev: true optional: true + /@esbuild/freebsd-arm64@0.17.19: + resolution: {integrity: sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: false + optional: true + /@esbuild/freebsd-arm64@0.18.20: resolution: {integrity: sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==} engines: {node: '>=12'} @@ -4833,6 +4902,15 @@ packages: dev: true optional: true + /@esbuild/freebsd-x64@0.17.19: + resolution: {integrity: sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: false + optional: true + /@esbuild/freebsd-x64@0.18.20: resolution: {integrity: sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==} engines: {node: '>=12'} @@ -4842,6 +4920,15 @@ packages: dev: true optional: true + /@esbuild/linux-arm64@0.17.19: + resolution: {integrity: sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: false + optional: true + /@esbuild/linux-arm64@0.18.20: resolution: {integrity: sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==} engines: {node: '>=12'} @@ -4851,6 +4938,15 @@ packages: dev: true optional: true + /@esbuild/linux-arm@0.17.19: + resolution: {integrity: sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: false + optional: true + /@esbuild/linux-arm@0.18.20: resolution: {integrity: sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==} engines: {node: '>=12'} @@ -4860,6 +4956,15 @@ packages: dev: true optional: true + /@esbuild/linux-ia32@0.17.19: + resolution: {integrity: sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: false + optional: true + /@esbuild/linux-ia32@0.18.20: resolution: {integrity: sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==} engines: {node: '>=12'} @@ -4869,6 +4974,15 @@ packages: dev: true optional: true + /@esbuild/linux-loong64@0.17.19: + resolution: {integrity: sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true + dev: false + optional: true + /@esbuild/linux-loong64@0.18.20: resolution: {integrity: sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==} engines: {node: '>=12'} @@ -4878,6 +4992,15 @@ packages: dev: true optional: true + /@esbuild/linux-mips64el@0.17.19: + resolution: {integrity: sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: false + optional: true + /@esbuild/linux-mips64el@0.18.20: resolution: {integrity: sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==} engines: {node: '>=12'} @@ -4887,6 +5010,15 @@ packages: dev: true optional: true + /@esbuild/linux-ppc64@0.17.19: + resolution: {integrity: sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: false + optional: true + /@esbuild/linux-ppc64@0.18.20: resolution: {integrity: sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==} engines: {node: '>=12'} @@ -4896,6 +5028,15 @@ packages: dev: true optional: true + /@esbuild/linux-riscv64@0.17.19: + resolution: {integrity: sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: false + optional: true + /@esbuild/linux-riscv64@0.18.20: resolution: {integrity: sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==} engines: {node: '>=12'} @@ -4905,6 +5046,15 @@ packages: dev: true optional: true + /@esbuild/linux-s390x@0.17.19: + resolution: {integrity: sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: false + optional: true + /@esbuild/linux-s390x@0.18.20: resolution: {integrity: sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==} engines: {node: '>=12'} @@ -4914,6 +5064,15 @@ packages: dev: true optional: true + /@esbuild/linux-x64@0.17.19: + resolution: {integrity: sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: false + optional: true + /@esbuild/linux-x64@0.18.20: resolution: {integrity: sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==} engines: {node: '>=12'} @@ -4930,6 +5089,15 @@ packages: os: [linux] dev: false + /@esbuild/netbsd-x64@0.17.19: + resolution: {integrity: sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: false + optional: true + /@esbuild/netbsd-x64@0.18.20: resolution: {integrity: sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==} engines: {node: '>=12'} @@ -4939,6 +5107,15 @@ packages: dev: true optional: true + /@esbuild/openbsd-x64@0.17.19: + resolution: {integrity: sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: false + optional: true + /@esbuild/openbsd-x64@0.18.20: resolution: {integrity: sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==} engines: {node: '>=12'} @@ -4948,6 +5125,15 @@ packages: dev: true optional: true + /@esbuild/sunos-x64@0.17.19: + resolution: {integrity: sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true + dev: false + optional: true + /@esbuild/sunos-x64@0.18.20: resolution: {integrity: sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==} engines: {node: '>=12'} @@ -4957,6 +5143,15 @@ packages: dev: true optional: true + /@esbuild/win32-arm64@0.17.19: + resolution: {integrity: sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: false + optional: true + /@esbuild/win32-arm64@0.18.20: resolution: {integrity: sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==} engines: {node: '>=12'} @@ -4966,6 +5161,15 @@ packages: dev: true optional: true + /@esbuild/win32-ia32@0.17.19: + resolution: {integrity: sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: false + optional: true + /@esbuild/win32-ia32@0.18.20: resolution: {integrity: sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==} engines: {node: '>=12'} @@ -4975,6 +5179,15 @@ packages: dev: true optional: true + /@esbuild/win32-x64@0.17.19: + resolution: {integrity: sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: false + optional: true + /@esbuild/win32-x64@0.18.20: resolution: {integrity: sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==} engines: {node: '>=12'} @@ -4994,13 +5207,13 @@ packages: eslint-visitor-keys: 3.4.3 dev: true - /@eslint-community/eslint-utils@4.4.0(eslint@8.53.0): + /@eslint-community/eslint-utils@4.4.0(eslint@8.54.0): resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 dependencies: - eslint: 8.53.0 + eslint: 8.54.0 eslint-visitor-keys: 3.4.3 dev: true @@ -5034,7 +5247,7 @@ packages: debug: 4.3.4(supports-color@8.1.1) espree: 9.6.1 globals: 13.23.0 - ignore: 5.2.4 + ignore: 5.3.0 import-fresh: 3.3.0 js-yaml: 4.1.0 minimatch: 3.1.2 @@ -5043,8 +5256,8 @@ packages: - supports-color dev: true - /@eslint/js@8.53.0: - resolution: {integrity: sha512-Kn7K8dx/5U6+cT1yEhpX1w4PCSg0M+XyRILPgvwcEBjerFWCwQj5sbr3/VmxqV0JGHCBCzyd6LxypEuehypY1w==} + /@eslint/js@8.54.0: + resolution: {integrity: sha512-ut5V+D+fOoWPgGGNj83GGjnntO39xDy6DWxO0wb7Jp3DcMX0TfIqdzHF85VTQkerdyGmuuMD9AKAo5KiNlf/AQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true @@ -5720,7 +5933,7 @@ packages: slash: 3.0.0 string-length: 4.0.2 strip-ansi: 6.0.1 - v8-to-istanbul: 9.1.3 + v8-to-istanbul: 9.2.0 transitivePeerDependencies: - supports-color dev: true @@ -5791,7 +6004,7 @@ packages: '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 '@types/node': 15.14.9 - '@types/yargs': 17.0.31 + '@types/yargs': 17.0.32 chalk: 4.1.2 /@jridgewell/gen-mapping@0.3.3: @@ -6061,6 +6274,26 @@ packages: typescript: 5.2.2 dev: true + /@rollup/plugin-typescript@11.1.5(rollup@3.29.4)(tslib@2.6.2)(typescript@5.3.2): + resolution: {integrity: sha512-rnMHrGBB0IUEv69Q8/JGRD/n4/n6b3nfpufUu26axhUcboUzv/twfZU8fIBbTOphRAe0v8EyxzeDpKXqGHfyDA==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^2.14.0||^3.0.0||^4.0.0 + tslib: '*' + typescript: '>=3.7.0' + peerDependenciesMeta: + rollup: + optional: true + tslib: + optional: true + dependencies: + '@rollup/pluginutils': 5.0.5(rollup@3.29.4) + resolve: 1.22.8 + rollup: 3.29.4 + tslib: 2.6.2 + typescript: 5.3.2 + dev: true + /@rollup/pluginutils@3.1.0(rollup@3.29.4): resolution: {integrity: sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==} engines: {node: '>= 8.0.0'} @@ -6185,19 +6418,19 @@ packages: '@types/estree': 1.0.5 dev: true - /@types/babel-types@7.0.14: - resolution: {integrity: sha512-5BC5W3pCoX12SH8nC8ReAOiMBy/rd9xil3es3S6dh83Pl9i4J3ZujfWUu5mXnEwo/WLqcD5+uj9Yk115Dh0obw==} + /@types/babel-types@7.0.15: + resolution: {integrity: sha512-JUgfZHUOMbtjopxiOQaaF+Uovk5wpDqpXR+XLWiOivCWSy1FccO30lvNNpCt8geFwq8VmGT2y9OMkOpA0g5O5g==} dev: true /@types/babel__code-frame@7.0.6: resolution: {integrity: sha512-Anitqkl3+KrzcW2k77lRlg/GfLZLWXBuNgbEcIOU6M92yw42vsd3xV/Z/yAHEj8m+KUjL6bWOVOFqX8PFPJ4LA==} dev: false - /@types/babel__core@7.20.4: - resolution: {integrity: sha512-mLnSC22IC4vcWiuObSRjrLd9XcBTGf59vUSoq2jkQDJ/QQ8PMI9rSuzE+aEV8karUMbskw07bKYoUJCKTUaygg==} + /@types/babel__core@7.20.5: + resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} dependencies: - '@babel/parser': 7.23.3 - '@babel/types': 7.23.3 + '@babel/parser': 7.23.4 + '@babel/types': 7.23.4 '@types/babel__generator': 7.6.7 '@types/babel__template': 7.4.4 '@types/babel__traverse': 7.20.4 @@ -6206,26 +6439,26 @@ packages: /@types/babel__generator@7.6.7: resolution: {integrity: sha512-6Sfsq+EaaLrw4RmdFWE9Onp63TOUue71AWb4Gpa6JxzgTYtimbM086WnYTy2U67AofR++QKCo08ZP6pwx8YFHQ==} dependencies: - '@babel/types': 7.23.3 + '@babel/types': 7.23.4 dev: true /@types/babel__template@7.4.4: resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} dependencies: - '@babel/parser': 7.23.3 - '@babel/types': 7.23.3 + '@babel/parser': 7.23.4 + '@babel/types': 7.23.4 dev: true /@types/babel__traverse@7.20.4: resolution: {integrity: sha512-mSM/iKUk5fDDrEV/e83qY+Cr3I1+Q3qqTuEn++HAWYjEa1+NxZr6CNrcJGf2ZTnq4HoFGC3zaTPZTobCzCFukA==} dependencies: - '@babel/types': 7.23.3 + '@babel/types': 7.23.4 dev: true /@types/babylon@6.16.9: resolution: {integrity: sha512-sEKyxMVEowhcr8WLfN0jJYe4gS4Z9KC2DGz0vqfC7+MXFbmvOF7jSjALC77thvAO2TLgFUPa9vDeOak+AcUrZA==} dependencies: - '@types/babel-types': 7.0.14 + '@types/babel-types': 7.0.15 dev: true /@types/body-parser@1.19.5: @@ -6246,10 +6479,10 @@ packages: /@types/chai-as-promised@7.1.8: resolution: {integrity: sha512-ThlRVIJhr69FLlh6IctTXFkmhtP3NpMZ2QGq69StYLyKZFp/HOp1VdKZj7RvfNWYYcJ1xlbLGLLWj1UvP5u/Gw==} dependencies: - '@types/chai': 4.3.10 + '@types/chai': 4.3.11 - /@types/chai@4.3.10: - resolution: {integrity: sha512-of+ICnbqjmFCiixUnqRulbylyXQrPqIGf/B3Jax1wIF3DvSheysQxAWvqHhZiW3IQrycvokcLcFQlveGp+vyNg==} + /@types/chai@4.3.11: + resolution: {integrity: sha512-qQR1dr2rGIHYlJulmr8Ioq3De0Le9E4MJ5AiaeAETJJpndT1uUNHsGFK3L/UIu+rbkQSdj8J/w2bCsBZc/Y5fQ==} /@types/connect@3.4.38: resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} @@ -6259,8 +6492,8 @@ packages: /@types/cookie@0.4.1: resolution: {integrity: sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==} - /@types/cors@2.8.16: - resolution: {integrity: sha512-Trx5or1Nyg1Fq138PCuWqoApzvoSLWzZ25ORBiHMbbUT42g578lH1GT4TwYDbiUOLFuDsCkfLneT2105fsFWGg==} + /@types/cors@2.8.17: + resolution: {integrity: sha512-8CGDvrBj1zgo2qE+oS3pOCyYNqCPryMWY2bGfwA0dcfopWGgxs+78df0Rs3rc9THP4JkOhLsAa+15VdpAqkcUA==} dependencies: '@types/node': 15.14.9 @@ -6368,8 +6601,8 @@ packages: dependencies: '@types/istanbul-lib-report': 3.0.3 - /@types/jest@29.5.8: - resolution: {integrity: sha512-fXEFTxMV2Co8ZF5aYFJv+YeA08RTYJfhtN5c9JSv/mFEMe+xxjufCb+PHL+bJcMs/ebPUsBu+UNTEz+ydXrR6g==} + /@types/jest@29.5.10: + resolution: {integrity: sha512-tE4yxKEphEyxj9s4inideLHktW/x6DwesIwWZ9NN1FKf9zbJYsnhBoA9vrHA/IuIOKwPa5PcFBNV4lpMIOEzyQ==} dependencies: expect: 29.7.0 pretty-format: 29.7.0 @@ -6401,8 +6634,8 @@ packages: dependencies: '@types/node': 15.14.9 - /@types/lodash@4.14.201: - resolution: {integrity: sha512-y9euML0cim1JrykNxADLfaG0FgD1g/yTHwUs/Jg9ZIU7WKj2/4IW9Lbb1WZbvck78W/lfGXFfe+u2EGfIJXdLQ==} + /@types/lodash@4.14.202: + resolution: {integrity: sha512-OvlIYQK9tNneDlS0VN54LLd5uiPCBOp7gS5Z0f1mjoJYBrtStzgmJBxONW3U6OZqdtNzZPmn9BS/7WI7BFFcFQ==} dev: true /@types/mime@1.3.5: @@ -6464,14 +6697,14 @@ packages: /@types/qs@6.9.10: resolution: {integrity: sha512-3Gnx08Ns1sEoCrWssEgTSJs/rsT2vhGP+Ja9cnnk9k4ALxinORlQneLXFeFKOTJMOeZUFD1s7w+w2AphTpvzZw==} - /@types/qunit@2.19.8: - resolution: {integrity: sha512-L4JyeRG1CJGSzJKd1b78DX/ll91E8e50IXkkl8KzW6W0IWz6FTHWEYvTEi8QVNHkUqUu6hjTffwV7ffxcoka0g==} + /@types/qunit@2.19.9: + resolution: {integrity: sha512-Ym6B8Ewt1R1b0EgSqISSrAKp2Pg5MNgKK3/d2Fbls3PN7kNnucVSGaRx9Prxeo78HfQofYJMWDWLPlfAuwx7IQ==} /@types/range-parser@1.2.7: resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} - /@types/resolve@1.20.5: - resolution: {integrity: sha512-aten5YPFp8G+cMpkTK5MCcUW5GlwZUby+qlt0/3oFgOCooFgzqvZQ9/0tROY49sUYmhEybBBj3jwpkQ/R3rjjw==} + /@types/resolve@1.20.6: + resolution: {integrity: sha512-A4STmOXPhMUtHH+S6ymgE2GiBSMqf4oTvcQZMcHzokuTLVYzXTB8ttjcgxOVaAp2lGwEdzZ0J+cRbbeevQj1UQ==} dev: true /@types/responselike@1.0.3: @@ -6485,12 +6718,12 @@ packages: '@types/glob': 8.1.0 '@types/node': 15.14.9 - /@types/rsvp@4.0.7: - resolution: {integrity: sha512-TOsoofOK1MNrZvsoq9op8Qc8r+pYJ6zwH4YCvDXNcsgjtFgS6IP/uGfLW0JH4zJgXGEC1TxJuKe0EBUPIAIA0A==} + /@types/rsvp@4.0.8: + resolution: {integrity: sha512-OraQXMlBrD3nll0VuEKENY3IoR4N3eDIqElVWo5dSheMveYYMDSIUMbtcI7wOGWyUilLwfaOx9VF8U8LdrHXkg==} dev: true - /@types/semver@7.5.5: - resolution: {integrity: sha512-+d+WYC1BxJ6yVOgUgzK8gWvp5qF8ssV5r4nsDcZWKRWcDQLQ619tvWAxJQYGgBrO1MnLJC7a5GtiYsAoQ47dJg==} + /@types/semver@7.5.6: + resolution: {integrity: sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==} /@types/send@0.17.4: resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==} @@ -6530,8 +6763,8 @@ packages: /@types/yargs-parser@21.0.3: resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==} - /@types/yargs@17.0.31: - resolution: {integrity: sha512-bocYSx4DI8TmdlvxqGpVNXOgCNR1Jj0gNPhhAY+iz1rgKDAaYrAYdFYnhDV1IFuiuVc9HkOwyDcFxaTElF3/wg==} + /@types/yargs@17.0.32: + resolution: {integrity: sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==} dependencies: '@types/yargs-parser': 21.0.3 @@ -6554,7 +6787,7 @@ packages: debug: 4.3.4(supports-color@8.1.1) eslint: 7.32.0 graphemer: 1.4.0 - ignore: 5.2.4 + ignore: 5.3.0 natural-compare-lite: 1.4.0 semver: 7.5.4 tsutils: 3.21.0(typescript@5.2.2) @@ -6563,7 +6796,7 @@ packages: - supports-color dev: true - /@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.53.0)(typescript@5.2.2): + /@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0)(eslint@7.32.0)(typescript@5.3.2): resolution: {integrity: sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -6575,18 +6808,46 @@ packages: optional: true dependencies: '@eslint-community/regexpp': 4.10.0 - '@typescript-eslint/parser': 5.62.0(eslint@8.53.0)(typescript@5.2.2) + '@typescript-eslint/parser': 5.62.0(eslint@7.32.0)(typescript@5.3.2) '@typescript-eslint/scope-manager': 5.62.0 - '@typescript-eslint/type-utils': 5.62.0(eslint@8.53.0)(typescript@5.2.2) - '@typescript-eslint/utils': 5.62.0(eslint@8.53.0)(typescript@5.2.2) + '@typescript-eslint/type-utils': 5.62.0(eslint@7.32.0)(typescript@5.3.2) + '@typescript-eslint/utils': 5.62.0(eslint@7.32.0)(typescript@5.3.2) debug: 4.3.4(supports-color@8.1.1) - eslint: 8.53.0 + eslint: 7.32.0 graphemer: 1.4.0 - ignore: 5.2.4 + ignore: 5.3.0 natural-compare-lite: 1.4.0 semver: 7.5.4 - tsutils: 3.21.0(typescript@5.2.2) - typescript: 5.2.2 + tsutils: 3.21.0(typescript@5.3.2) + typescript: 5.3.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.54.0)(typescript@5.3.2): + resolution: {integrity: sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + '@typescript-eslint/parser': ^5.0.0 + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@eslint-community/regexpp': 4.10.0 + '@typescript-eslint/parser': 5.62.0(eslint@8.54.0)(typescript@5.3.2) + '@typescript-eslint/scope-manager': 5.62.0 + '@typescript-eslint/type-utils': 5.62.0(eslint@8.54.0)(typescript@5.3.2) + '@typescript-eslint/utils': 5.62.0(eslint@8.54.0)(typescript@5.3.2) + debug: 4.3.4(supports-color@8.1.1) + eslint: 8.54.0 + graphemer: 1.4.0 + ignore: 5.3.0 + natural-compare-lite: 1.4.0 + semver: 7.5.4 + tsutils: 3.21.0(typescript@5.3.2) + typescript: 5.3.2 transitivePeerDependencies: - supports-color dev: true @@ -6611,7 +6872,7 @@ packages: - supports-color dev: true - /@typescript-eslint/parser@5.62.0(eslint@8.53.0)(typescript@5.2.2): + /@typescript-eslint/parser@5.62.0(eslint@7.32.0)(typescript@5.3.2): resolution: {integrity: sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -6623,10 +6884,30 @@ packages: dependencies: '@typescript-eslint/scope-manager': 5.62.0 '@typescript-eslint/types': 5.62.0 - '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.2.2) + '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.3.2) debug: 4.3.4(supports-color@8.1.1) - eslint: 8.53.0 - typescript: 5.2.2 + eslint: 7.32.0 + typescript: 5.3.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/parser@5.62.0(eslint@8.54.0)(typescript@5.3.2): + resolution: {integrity: sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/scope-manager': 5.62.0 + '@typescript-eslint/types': 5.62.0 + '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.3.2) + debug: 4.3.4(supports-color@8.1.1) + eslint: 8.54.0 + typescript: 5.3.2 transitivePeerDependencies: - supports-color dev: true @@ -6659,7 +6940,7 @@ packages: - supports-color dev: true - /@typescript-eslint/type-utils@5.62.0(eslint@8.53.0)(typescript@5.2.2): + /@typescript-eslint/type-utils@5.62.0(eslint@7.32.0)(typescript@5.3.2): resolution: {integrity: sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -6669,12 +6950,32 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.2.2) - '@typescript-eslint/utils': 5.62.0(eslint@8.53.0)(typescript@5.2.2) + '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.3.2) + '@typescript-eslint/utils': 5.62.0(eslint@7.32.0)(typescript@5.3.2) debug: 4.3.4(supports-color@8.1.1) - eslint: 8.53.0 - tsutils: 3.21.0(typescript@5.2.2) - typescript: 5.2.2 + eslint: 7.32.0 + tsutils: 3.21.0(typescript@5.3.2) + typescript: 5.3.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/type-utils@5.62.0(eslint@8.54.0)(typescript@5.3.2): + resolution: {integrity: sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: '*' + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.3.2) + '@typescript-eslint/utils': 5.62.0(eslint@8.54.0)(typescript@5.3.2) + debug: 4.3.4(supports-color@8.1.1) + eslint: 8.54.0 + tsutils: 3.21.0(typescript@5.3.2) + typescript: 5.3.2 transitivePeerDependencies: - supports-color dev: true @@ -6705,6 +7006,27 @@ packages: - supports-color dev: true + /@typescript-eslint/typescript-estree@5.62.0(typescript@5.3.2): + resolution: {integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/types': 5.62.0 + '@typescript-eslint/visitor-keys': 5.62.0 + debug: 4.3.4(supports-color@8.1.1) + globby: 11.1.0 + is-glob: 4.0.3 + semver: 7.5.4 + tsutils: 3.21.0(typescript@5.3.2) + typescript: 5.3.2 + transitivePeerDependencies: + - supports-color + dev: true + /@typescript-eslint/utils@5.62.0(eslint@7.32.0)(typescript@5.2.2): resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -6713,7 +7035,7 @@ packages: dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@7.32.0) '@types/json-schema': 7.0.15 - '@types/semver': 7.5.5 + '@types/semver': 7.5.6 '@typescript-eslint/scope-manager': 5.62.0 '@typescript-eslint/types': 5.62.0 '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.2.2) @@ -6725,19 +7047,39 @@ packages: - typescript dev: true - /@typescript-eslint/utils@5.62.0(eslint@8.53.0)(typescript@5.2.2): + /@typescript-eslint/utils@5.62.0(eslint@7.32.0)(typescript@5.3.2): resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.53.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@7.32.0) '@types/json-schema': 7.0.15 - '@types/semver': 7.5.5 + '@types/semver': 7.5.6 '@typescript-eslint/scope-manager': 5.62.0 '@typescript-eslint/types': 5.62.0 - '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.2.2) - eslint: 8.53.0 + '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.3.2) + eslint: 7.32.0 + eslint-scope: 5.1.1 + semver: 7.5.4 + transitivePeerDependencies: + - supports-color + - typescript + dev: true + + /@typescript-eslint/utils@5.62.0(eslint@8.54.0)(typescript@5.3.2): + resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.54.0) + '@types/json-schema': 7.0.15 + '@types/semver': 7.5.6 + '@typescript-eslint/scope-manager': 5.62.0 + '@typescript-eslint/types': 5.62.0 + '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.3.2) + eslint: 8.54.0 eslint-scope: 5.1.1 semver: 7.5.4 transitivePeerDependencies: @@ -6860,6 +7202,7 @@ packages: /abab@2.0.6: resolution: {integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==} + deprecated: Use your platform's native atob() and btoa() methods instead /abbrev@1.1.1: resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==} @@ -7192,8 +7535,8 @@ packages: call-bind: 1.0.5 is-array-buffer: 3.0.2 - /array-equal@1.0.0: - resolution: {integrity: sha512-H3LU5RLiSsGXPhN+Nipar0iR0IofH+8r89G2y1tBKxQ/agagKyAjhkAFDRBfodP2caPrNKHpAWNIM/c9yeL7uA==} + /array-equal@1.0.2: + resolution: {integrity: sha512-gUHx76KtnhEgB3HOuFYiCm3FIdEs6ocM2asHvNTkfu/Y09qQVrrVVaOKENmS2KkSaGoxgXNqC+ZVtR/n0MOkSA==} /array-flatten@1.1.1: resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} @@ -7409,10 +7752,10 @@ packages: peerDependencies: eslint: '>= 4.12.1' dependencies: - '@babel/code-frame': 7.22.13 - '@babel/parser': 7.23.3 - '@babel/traverse': 7.23.3(supports-color@8.1.1) - '@babel/types': 7.23.3 + '@babel/code-frame': 7.23.4 + '@babel/parser': 7.23.4 + '@babel/traverse': 7.23.4(supports-color@8.1.1) + '@babel/types': 7.23.4 eslint: 7.32.0 eslint-visitor-keys: 1.3.0 resolve: 1.22.8 @@ -7561,7 +7904,7 @@ packages: dependencies: '@babel/core': 7.23.3(supports-color@8.1.1) '@jest/transform': 29.7.0 - '@types/babel__core': 7.20.4 + '@types/babel__core': 7.20.5 babel-plugin-istanbul: 6.1.1 babel-preset-jest: 29.6.3(@babel/core@7.23.3) chalk: 4.1.2 @@ -7659,7 +8002,7 @@ packages: resolution: {integrity: sha512-jDLlxI8QnfKd7PtieH6pl4tZJzymzfCDCPGdTq/grgbiYAikwDPp/oL0IlFJn0HQjLpcLkyYhPKkUVneRESw5w==} engines: {node: '>=8'} dependencies: - '@babel/types': 7.23.3 + '@babel/types': 7.23.4 lodash: 4.17.21 /babel-plugin-htmlbars-inline-precompile@5.3.1: @@ -7690,8 +8033,8 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@babel/template': 7.22.15 - '@babel/types': 7.23.3 - '@types/babel__core': 7.20.4 + '@babel/types': 7.23.4 + '@types/babel__core': 7.20.5 '@types/babel__traverse': 7.20.4 dev: true @@ -7745,7 +8088,7 @@ packages: dependencies: '@babel/core': 7.23.3(supports-color@8.1.1) '@babel/helper-define-polyfill-provider': 0.4.3(@babel/core@7.23.3) - core-js-compat: 3.33.2 + core-js-compat: 3.33.3 transitivePeerDependencies: - supports-color @@ -8108,8 +8451,8 @@ packages: dependencies: underscore: 1.13.6 - /backburner.js@2.7.0: - resolution: {integrity: sha512-eBZC6r7wT+YYAOKeru8IqgzOimz3VgyspXiZ1k6MI8i10zUdU8cnNII56rlnItQ89cHgQO3C/nPuFW3V9di+zg==} + /backburner.js@2.8.0: + resolution: {integrity: sha512-zYXY0KvpD7/CWeOLF576mV8S+bQsaIoj/GNLXXB+Eb8SJcQy5lqSjkRrZ0MZhdKUs9QoqmGNIEIe3NQfGiiscQ==} dev: true /balanced-match@1.0.2: @@ -8133,7 +8476,7 @@ packages: dependencies: cache-base: 1.0.1 class-utils: 0.3.6 - component-emitter: 1.3.0 + component-emitter: 1.3.1 define-property: 1.0.0 isobject: 3.0.1 mixin-deep: 1.3.2 @@ -8290,7 +8633,7 @@ packages: broccoli-asset-rewrite: 2.0.0 broccoli-filter: 1.3.0 broccoli-persistent-filter: 1.4.6 - json-stable-stringify: 1.0.2 + json-stable-stringify: 1.1.0 minimatch: 3.1.2 rsvp: 3.6.2 transitivePeerDependencies: @@ -8316,7 +8659,7 @@ packages: clone: 2.1.2 hash-for-dep: 1.5.1 heimdalljs-logger: 0.1.10 - json-stable-stringify: 1.0.2 + json-stable-stringify: 1.1.0 rsvp: 4.8.5 workerpool: 2.3.4 transitivePeerDependencies: @@ -8336,7 +8679,7 @@ packages: hash-for-dep: 1.5.1 heimdalljs: 0.2.6 heimdalljs-logger: 0.1.10 - json-stable-stringify: 1.0.2 + json-stable-stringify: 1.1.0 rsvp: 4.8.5 workerpool: 3.1.2 transitivePeerDependencies: @@ -8354,7 +8697,7 @@ packages: hash-for-dep: 1.5.1 heimdalljs: 0.2.6 heimdalljs-logger: 0.1.10 - json-stable-stringify: 1.0.2 + json-stable-stringify: 1.1.0 rsvp: 4.8.5 workerpool: 6.5.1 transitivePeerDependencies: @@ -8406,7 +8749,7 @@ packages: broccoli-persistent-filter: 1.4.6 clean-css-promise: 0.1.1 inline-source-map-comment: 1.0.5 - json-stable-stringify: 1.0.2 + json-stable-stringify: 1.1.0 transitivePeerDependencies: - supports-color @@ -8531,7 +8874,7 @@ packages: resolution: {integrity: sha512-C8Lnp9TVsSSiZMGEF16C0dCiNg2oJqUKwuZ1K4kVC6qRPG/2Cj/rtB5kRCC9qEbwqhX71bDbfHROx0L3J7zXQg==} engines: {node: ^4.5 || 6.* || >= 7.*} dependencies: - array-equal: 1.0.0 + array-equal: 1.0.2 blank-object: 1.0.2 broccoli-plugin: 1.3.1 debug: 2.6.9(supports-color@8.1.1) @@ -8552,7 +8895,7 @@ packages: resolution: {integrity: sha512-/vDTqtv7ipjEZQOVqO4vGDVAOZyuYzQ/EgGoyewfOgh1M7IQAToBKZI0oAQPgMBeFPPlIbfMuAngk+ohPBuaHQ==} engines: {node: ^4.5 || 6.* || >= 7.*} dependencies: - array-equal: 1.0.0 + array-equal: 1.0.2 blank-object: 1.0.2 broccoli-plugin: 1.3.1 debug: 2.6.9(supports-color@8.1.1) @@ -8572,7 +8915,7 @@ packages: resolution: {integrity: sha512-ng4eIhPYiXqMw6SyGoxPHR3YAwEd2lr9FgBI1CyTbspl4txZovOsmzFkMkGAlu88xyvYXJqHiM2crfLa65T1BQ==} engines: {node: 10.* || >= 12.*} dependencies: - array-equal: 1.0.0 + array-equal: 1.0.2 broccoli-plugin: 4.0.7 debug: 4.3.4(supports-color@8.1.1) fs-tree-diff: 2.0.1 @@ -8603,7 +8946,7 @@ packages: broccoli-concat: 3.7.5 broccoli-persistent-filter: 2.3.1 eslint: 5.16.0 - json-stable-stringify: 1.0.2 + json-stable-stringify: 1.1.0 lodash.defaultsdeep: 4.6.1 md5-hex: 2.0.0 transitivePeerDependencies: @@ -8969,7 +9312,7 @@ packages: resolution: {integrity: sha512-sWi3b3fTUSVPDsz5KsQ5eCQNVAtLgkIE/HYFkEZXR/07clqmd4E/gFiuwSaqa9b+QTXc1Uemfb7TVWbEIURWDg==} engines: {node: 8.* || >= 10.*} dependencies: - '@types/chai': 4.3.10 + '@types/chai': 4.3.11 '@types/chai-as-promised': 7.1.8 '@types/express': 4.17.21 ansi-html: 0.0.7 @@ -9004,8 +9347,8 @@ packages: engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true dependencies: - caniuse-lite: 1.0.30001562 - electron-to-chromium: 1.4.582 + caniuse-lite: 1.0.30001565 + electron-to-chromium: 1.4.595 node-releases: 2.0.13 update-browserslist-db: 1.0.13(browserslist@4.22.1) @@ -9073,7 +9416,7 @@ packages: engines: {node: '>=0.10.0'} dependencies: collection-visit: 1.0.0 - component-emitter: 1.3.0 + component-emitter: 1.3.1 get-value: 2.0.6 has-value: 1.0.0 isobject: 3.0.1 @@ -9110,7 +9453,7 @@ packages: resolution: {integrity: sha512-Quw8a6y8CPmRd6eU+mwypktYCwUcf8yVFIRbNZ6tPQEckX9yd+EBVEPC/GSZZrMWH9e7Vz4pT7XhpmyApRByLQ==} engines: {node: 6.* || 8.* || >= 10.*} dependencies: - json-stable-stringify: 1.0.2 + json-stable-stringify: 1.1.0 /call-bind@1.0.5: resolution: {integrity: sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==} @@ -9158,13 +9501,13 @@ packages: resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==} dependencies: browserslist: 4.22.1 - caniuse-lite: 1.0.30001562 + caniuse-lite: 1.0.30001565 lodash.memoize: 4.1.2 lodash.uniq: 4.5.0 dev: true - /caniuse-lite@1.0.30001562: - resolution: {integrity: sha512-kfte3Hym//51EdX4239i+Rmp20EsLIYGdPkERegTgU19hQWCRhsRFGKHTliUlsry53tv17K7n077Kqa0WJU4ng==} + /caniuse-lite@1.0.30001565: + resolution: {integrity: sha512-xrE//a3O7TP0vaJ8ikzkD2c2NgcVUvsEe2IvFTntV4Yd1Z9FVzh+gW+enX96L0psrbaFMcVcH2l90xNuGDWc8w==} /capture-exit@2.0.0: resolution: {integrity: sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g==} @@ -9316,8 +9659,8 @@ packages: yargs: 16.2.0 dev: false - /cli-spinners@2.9.1: - resolution: {integrity: sha512-jHgecW0pxkonBJdrKsqxgRX9AcG+u/5k0Q7WPDfi8AogLAdwxEkyYYNWwZ5GvVFoFx2uiY1eNcSK00fh+1+FyQ==} + /cli-spinners@2.9.2: + resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==} engines: {node: '>=6'} /cli-table3@0.6.3: @@ -9410,7 +9753,7 @@ packages: q: 1.5.1 dev: true - /code-equality-assertions@0.9.0(@types/jest@29.5.8)(qunit@2.20.0): + /code-equality-assertions@0.9.0(@types/jest@29.5.10)(qunit@2.20.0): resolution: {integrity: sha512-8t2+ZiCU9TIr/78TyVSEFii9khSic293zVCfndsG7bOymAsdDFmN1GSwjRdyQxz7+tHE+biUvt08Qlx4Xvfuxw==} peerDependencies: '@types/jest': '2' @@ -9425,7 +9768,7 @@ packages: optional: true dependencies: '@babel/core': 7.23.3(supports-color@8.1.1) - '@types/jest': 29.5.8 + '@types/jest': 29.5.10 diff: 5.1.0 prettier: 2.8.8 qunit: 2.20.0 @@ -9532,8 +9875,8 @@ packages: /commondir@1.0.1: resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} - /component-emitter@1.3.0: - resolution: {integrity: sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==} + /component-emitter@1.3.1: + resolution: {integrity: sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==} /compressible@2.0.18: resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==} @@ -9631,7 +9974,7 @@ packages: dependencies: chalk: 2.4.2 inquirer: 6.5.2 - json-stable-stringify: 1.0.2 + json-stable-stringify: 1.1.0 ora: 3.4.0 through2: 3.0.2 @@ -9859,8 +10202,8 @@ packages: resolution: {integrity: sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==} engines: {node: '>=0.10.0'} - /core-js-compat@3.33.2: - resolution: {integrity: sha512-axfo+wxFVxnqf8RvxTzoAlzW4gRoacrHeoFlc9n0x50+7BEyZL/Rt3hicaED1/CEd7I6tPCPVUYcJwCMO5XUYw==} + /core-js-compat@3.33.3: + resolution: {integrity: sha512-cNzGqFsh3Ot+529GIXacjTJ7kegdt5fPXxCBVS1G0iaZpuo/tBz399ymceLJveQhFFZ8qThHiP3fzuoQjKN2ow==} dependencies: browserslist: 4.22.1 @@ -9885,7 +10228,7 @@ packages: object-assign: 4.1.1 vary: 1.1.2 - /cosmiconfig@8.3.6(typescript@5.2.2): + /cosmiconfig@8.3.6(typescript@5.3.2): resolution: {integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==} engines: {node: '>=14'} peerDependencies: @@ -9898,7 +10241,7 @@ packages: js-yaml: 4.1.0 parse-json: 5.2.0 path-type: 4.0.0 - typescript: 5.2.2 + typescript: 5.3.2 dev: true /create-jest@29.7.0: @@ -10093,7 +10436,7 @@ packages: resolution: {integrity: sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==} engines: {node: '>=0.11'} dependencies: - '@babel/runtime': 7.23.2 + '@babel/runtime': 7.23.4 dev: true /date-time@2.1.0: @@ -10353,6 +10696,7 @@ packages: /domexception@2.0.1: resolution: {integrity: sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==} engines: {node: '>=8'} + deprecated: Use your platform's native DOMException instead dependencies: webidl-conversions: 5.0.0 dev: false @@ -10360,6 +10704,7 @@ packages: /domexception@4.0.0: resolution: {integrity: sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==} engines: {node: '>=12'} + deprecated: Use your platform's native DOMException instead dependencies: webidl-conversions: 7.0.0 @@ -10409,8 +10754,8 @@ packages: /ee-first@1.1.1: resolution: {integrity: sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=} - /electron-to-chromium@1.4.582: - resolution: {integrity: sha512-89o0MGoocwYbzqUUjc+VNpeOFSOK9nIdC5wY4N+PVUarUK0MtjyTjks75AZS2bW4Kl8MdewdFsWaH0jLy+JNoA==} + /electron-to-chromium@1.4.595: + resolution: {integrity: sha512-+ozvXuamBhDOKvMNUQvecxfbyICmIAwS4GpLmR0bsiSBlGnLaOcs2Cj7J8XSbW+YEaN3Xl3ffgpm+srTUWFwFQ==} /ember-asset-loader@0.6.1: resolution: {integrity: sha512-e2zafQJBMLhzl69caTG/+mQMH20uMHYrm7KcmdbmnX0oY2dZ48bhm0Wh1SPLXS/6G2T9NsNMWX6J2pVSnI+xyA==} @@ -10467,13 +10812,15 @@ packages: - webpack dev: true - /ember-auto-import@2.6.3: - resolution: {integrity: sha512-uLhrRDJYWCRvQ4JQ1e64XlSrqAKSd6PXaJ9ZsZI6Tlms9T4DtQFxNXasqji2ZRJBVrxEoLCRYX3RTldsQ0vNGQ==} + /ember-auto-import@2.7.0: + resolution: {integrity: sha512-cBEBB6IRRmlCVfyaRmDCfLrywm2HibTosJzIKv4BWF1p2ZokUhXBJjMRwuaG3tbLMV8rmJdLWnSKm8CodsdmQA==} engines: {node: 12.* || 14.* || >= 16} dependencies: '@babel/core': 7.23.3(supports-color@8.1.1) '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.23.3) '@babel/plugin-proposal-decorators': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-proposal-private-methods': 7.18.6(@babel/core@7.23.3) + '@babel/plugin-transform-class-static-block': 7.23.4(@babel/core@7.23.3) '@babel/preset-env': 7.23.3(@babel/core@7.23.3) '@embroider/macros': 1.13.3(@glint/template@1.2.1) '@embroider/shared-internals': 2.5.1 @@ -10495,6 +10842,7 @@ packages: js-string-escape: 1.0.1 lodash: 4.17.21 mini-css-extract-plugin: 2.7.6(webpack@5.89.0) + minimatch: 3.1.2 parse5: 6.0.1 resolve: 1.22.8 resolve-package-path: 4.0.3 @@ -10507,13 +10855,15 @@ packages: - supports-color - webpack - /ember-auto-import@2.6.3(@glint/template@1.2.1)(webpack@5.89.0): - resolution: {integrity: sha512-uLhrRDJYWCRvQ4JQ1e64XlSrqAKSd6PXaJ9ZsZI6Tlms9T4DtQFxNXasqji2ZRJBVrxEoLCRYX3RTldsQ0vNGQ==} + /ember-auto-import@2.7.0(@glint/template@1.2.1)(webpack@5.89.0): + resolution: {integrity: sha512-cBEBB6IRRmlCVfyaRmDCfLrywm2HibTosJzIKv4BWF1p2ZokUhXBJjMRwuaG3tbLMV8rmJdLWnSKm8CodsdmQA==} engines: {node: 12.* || 14.* || >= 16} dependencies: '@babel/core': 7.23.3(supports-color@8.1.1) '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.23.3) '@babel/plugin-proposal-decorators': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-proposal-private-methods': 7.18.6(@babel/core@7.23.3) + '@babel/plugin-transform-class-static-block': 7.23.4(@babel/core@7.23.3) '@babel/preset-env': 7.23.3(@babel/core@7.23.3) '@embroider/macros': 1.13.3(@glint/template@1.2.1) '@embroider/shared-internals': 2.5.1 @@ -10535,6 +10885,7 @@ packages: js-string-escape: 1.0.1 lodash: 4.17.21 mini-css-extract-plugin: 2.7.6(webpack@5.89.0) + minimatch: 3.1.2 parse5: 6.0.1 resolve: 1.22.8 resolve-package-path: 4.0.3 @@ -10562,7 +10913,7 @@ packages: broccoli-funnel: 3.0.8 broccoli-merge-trees: 4.2.0 chalk: 4.1.2 - ember-auto-import: 2.6.3 + ember-auto-import: 2.7.0 ember-cli-babel: 7.26.11 ember-cli-build-config-editor: 0.5.1 ember-cli-htmlbars: 6.3.0 @@ -10730,8 +11081,8 @@ packages: '@babel/plugin-proposal-private-methods': 7.18.6(@babel/core@7.23.3) '@babel/plugin-proposal-private-property-in-object': 7.21.11(@babel/core@7.23.3) '@babel/plugin-transform-modules-amd': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-runtime': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-typescript': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-runtime': 7.23.4(@babel/core@7.23.3) + '@babel/plugin-transform-typescript': 7.23.4(@babel/core@7.23.3) '@babel/polyfill': 7.12.1 '@babel/preset-env': 7.23.3(@babel/core@7.23.3) '@babel/runtime': 7.12.18 @@ -10768,10 +11119,10 @@ packages: '@babel/plugin-proposal-decorators': 7.23.3(@babel/core@7.23.3) '@babel/plugin-proposal-private-methods': 7.18.6(@babel/core@7.23.3) '@babel/plugin-proposal-private-property-in-object': 7.21.11(@babel/core@7.23.3) - '@babel/plugin-transform-class-static-block': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-class-static-block': 7.23.4(@babel/core@7.23.3) '@babel/plugin-transform-modules-amd': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-runtime': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-typescript': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-runtime': 7.23.4(@babel/core@7.23.3) + '@babel/plugin-transform-typescript': 7.23.4(@babel/core@7.23.3) '@babel/preset-env': 7.23.3(@babel/core@7.23.3) '@babel/runtime': 7.12.18 amd-name-resolver: 1.3.1 @@ -10806,7 +11157,7 @@ packages: dependencies: broccoli-persistent-filter: 3.1.3 clean-css: 3.4.28 - json-stable-stringify: 1.0.2 + json-stable-stringify: 1.1.0 transitivePeerDependencies: - supports-color dev: true @@ -10817,7 +11168,7 @@ packages: dependencies: broccoli-persistent-filter: 3.1.3 clean-css: 5.3.2 - json-stable-stringify: 1.0.2 + json-stable-stringify: 1.1.0 transitivePeerDependencies: - supports-color dev: true @@ -10899,8 +11250,8 @@ packages: - supports-color dev: true - /ember-cli-fastboot@4.1.1: - resolution: {integrity: sha512-9B/qJUfDVqRmZlXxP23V2AZ3hiez99DKT2cPJ0MWkjwRom/kmVJHvv5X4fxvT7MCokjOVFvzas79D5toV4GLIA==} + /ember-cli-fastboot@4.1.2: + resolution: {integrity: sha512-cC2ET8AbRTssA4sg9qF9KLX9N/Xnwa7kS0PKZADMMOUXtuBF4jmgnXsjzlvIE+lgWcwK4tc6udgwpMeNMkOg7w==} engines: {node: 14.* || 16.* || >=18} dependencies: broccoli-concat: 4.2.5 @@ -10913,11 +11264,11 @@ packages: ember-cli-lodash-subset: 2.0.1 ember-cli-preprocess-registry: 3.3.0 ember-cli-version-checker: 5.1.2 - fastboot: 4.1.1 - fastboot-express-middleware: 4.1.1 + fastboot: 4.1.2 + fastboot-express-middleware: 4.1.2 fastboot-transform: 0.1.3 fs-extra: 10.1.0 - json-stable-stringify: 1.0.2 + json-stable-stringify: 1.1.0 md5-hex: 3.0.1 recast: 0.19.1 silent-error: 1.1.1 @@ -10946,7 +11297,7 @@ packages: fs-tree-diff: 2.0.1 hash-for-dep: 1.5.1 heimdalljs-logger: 0.1.10 - json-stable-stringify: 1.0.2 + json-stable-stringify: 1.1.0 semver: 7.5.4 silent-error: 1.1.1 strip-bom: 4.0.0 @@ -11262,7 +11613,7 @@ packages: is-language-code: 2.0.0 isbinaryfile: 4.0.10 js-yaml: 3.14.1 - json-stable-stringify: 1.0.2 + json-stable-stringify: 1.1.0 leek: 0.0.24 lodash.template: 4.5.0 markdown-it: 12.3.2 @@ -11284,7 +11635,7 @@ packages: sort-package-json: 1.57.0 symlink-or-copy: 1.3.1 temp: 0.9.4 - testem: 3.10.1(lodash@4.17.21) + testem: 3.11.0(lodash@4.17.21) tiny-lr: 2.0.0 tree-sync: 2.1.0 uuid: 8.3.2 @@ -11440,7 +11791,7 @@ packages: sort-package-json: 1.57.0 symlink-or-copy: 1.3.1 temp: 0.9.4 - testem: 3.10.1(lodash@4.17.21) + testem: 3.11.0(lodash@4.17.21) tiny-lr: 2.0.0 tree-sync: 2.1.0 uuid: 8.3.2 @@ -11597,7 +11948,7 @@ packages: sort-package-json: 1.57.0 symlink-or-copy: 1.3.1 temp: 0.9.4 - testem: 3.10.1(lodash@4.17.21) + testem: 3.11.0(lodash@4.17.21) tiny-lr: 2.0.0 tree-sync: 2.1.0 uuid: 8.3.2 @@ -11708,7 +12059,7 @@ packages: find-up: 5.0.0 find-yarn-workspace-root: 2.0.0 fixturify-project: 2.1.1 - fs-extra: 11.1.1 + fs-extra: 11.2.0 fs-tree-diff: 2.0.1 get-caller-file: 2.0.5 git-repo-info: 2.1.1 @@ -11748,7 +12099,7 @@ packages: sort-package-json: 1.57.0 symlink-or-copy: 1.3.1 temp: 0.9.4 - testem: 3.10.1(lodash@4.17.21) + testem: 3.11.0(lodash@4.17.21) tiny-lr: 2.0.0 tree-sync: 2.1.0 uuid: 9.0.1 @@ -11859,7 +12210,7 @@ packages: find-up: 5.0.0 find-yarn-workspace-root: 2.0.0 fixturify-project: 2.1.1 - fs-extra: 11.1.1 + fs-extra: 11.2.0 fs-tree-diff: 2.0.1 get-caller-file: 2.0.5 git-repo-info: 2.1.1 @@ -11898,7 +12249,7 @@ packages: sort-package-json: 1.57.0 symlink-or-copy: 1.3.1 temp: 0.9.4 - testem: 3.10.1(lodash@4.17.21) + testem: 3.11.0(lodash@4.17.21) tiny-lr: 2.0.0 tree-sync: 2.1.0 uuid: 9.0.1 @@ -11965,8 +12316,8 @@ packages: - whiskers dev: true - /ember-cli@5.4.0(lodash@4.17.21): - resolution: {integrity: sha512-00RfyeDGTo9OtsmxbIqJIKM0wZvvOGAn1w4A9hFrENcuE7I3HKCb3QYKLHLXywG91fTsWbmXRfCL1kQ5pOva4A==} + /ember-cli@5.4.1(lodash@4.17.21): + resolution: {integrity: sha512-+jwp63OPT0zkUnXP563DkIwb1GiI6kGYHg6DyzJKY48BCdevqcgxsMFn8/RENXoF7krg18A5B9cSa8Y1v15tIw==} engines: {node: '>= 18'} hasBin: true dependencies: @@ -12008,7 +12359,7 @@ packages: find-up: 5.0.0 find-yarn-workspace-root: 2.0.0 fixturify-project: 2.1.1 - fs-extra: 11.1.1 + fs-extra: 11.2.0 fs-tree-diff: 2.0.1 get-caller-file: 2.0.5 git-repo-info: 2.1.1 @@ -12046,7 +12397,7 @@ packages: sort-package-json: 1.57.0 symlink-or-copy: 1.3.1 temp: 0.9.4 - testem: 3.10.1(lodash@4.17.21) + testem: 3.11.0(lodash@4.17.21) tiny-lr: 2.0.0 tree-sync: 2.1.0 walk-sync: 3.0.0 @@ -12112,8 +12463,8 @@ packages: - whiskers dev: true - /ember-cli@5.5.0-beta.0(lodash@4.17.21): - resolution: {integrity: sha512-KBfOmw1x9FyKPd9V5F/9IHwGZJZK+WzsTDZcC9IbLObDPfQWpXC4wmR/McUFDhfa7mZ1k8AL/ZUl8N2R2RDaxw==} + /ember-cli@5.5.0-beta.1(lodash@4.17.21): + resolution: {integrity: sha512-WBmbfYjQeaTguLbYQzZidNQ8mStjjfZVs1eB+UT9Li/0uKMw7CLeCAOyEcWlzofzAlnlMLxoBoDzdXN93yrXuQ==} engines: {node: '>= 18'} hasBin: true dependencies: @@ -12156,7 +12507,7 @@ packages: find-up: 5.0.0 find-yarn-workspace-root: 2.0.0 fixturify-project: 2.1.1 - fs-extra: 11.1.1 + fs-extra: 11.2.0 fs-tree-diff: 2.0.1 get-caller-file: 2.0.5 git-repo-info: 2.1.1 @@ -12194,7 +12545,7 @@ packages: sort-package-json: 1.57.0 symlink-or-copy: 1.3.1 temp: 0.9.4 - testem: 3.10.1(lodash@4.17.21) + testem: 3.11.0(lodash@4.17.21) tiny-lr: 2.0.0 tree-sync: 2.1.0 walk-sync: 3.0.0 @@ -12290,7 +12641,7 @@ packages: engines: {node: 10.* || 12.* || 14.* || >= 16} dependencies: '@babel/helper-plugin-utils': 7.22.5 - '@babel/types': 7.23.3 + '@babel/types': 7.23.4 '@glimmer/tracking': 1.1.2 ember-cli-babel: 7.26.11 ember-cli-babel-plugin-helpers: 1.1.1 @@ -12340,7 +12691,7 @@ packages: '@ember/string': 3.1.1 '@glimmer/env': 0.1.7 broccoli-merge-trees: 4.2.0 - ember-auto-import: 2.6.3 + ember-auto-import: 2.7.0 ember-cli-babel: 7.26.11 ember-cli-typescript: 5.2.1 ember-inflector: 4.0.2 @@ -12366,7 +12717,7 @@ packages: '@ember/string': 3.1.1 '@glimmer/env': 0.1.7 broccoli-merge-trees: 4.2.0 - ember-auto-import: 2.6.3(@glint/template@1.2.1)(webpack@5.89.0) + ember-auto-import: 2.7.0(@glint/template@1.2.1)(webpack@5.89.0) ember-cli-babel: 7.26.11 ember-cli-typescript: 5.2.1 ember-inflector: 4.0.2 @@ -12437,7 +12788,7 @@ packages: '@ember/string': 3.1.1 '@embroider/macros': 1.13.3(@glint/template@1.2.1) broccoli-merge-trees: 4.2.0 - ember-auto-import: 2.6.3(@glint/template@1.2.1)(webpack@5.89.0) + ember-auto-import: 2.7.0(@glint/template@1.2.1)(webpack@5.89.0) ember-cli-babel: 8.2.0(@babel/core@7.23.3) ember-inflector: 4.0.2 webpack: 5.89.0 @@ -12782,7 +13133,7 @@ packages: engines: {node: 10.* || >= 12} dependencies: '@popperjs/core': 2.11.8 - ember-auto-import: 2.6.3 + ember-auto-import: 2.7.0 ember-cli-babel: 7.26.11 ember-cli-htmlbars: 6.3.0 ember-modifier: 3.2.7(@babel/core@7.23.3) @@ -12805,7 +13156,7 @@ packages: broccoli-funnel: 3.0.8 broccoli-merge-trees: 3.0.2 common-tags: 1.8.2 - ember-auto-import: 2.6.3(@glint/template@1.2.1)(webpack@5.89.0) + ember-auto-import: 2.7.0(@glint/template@1.2.1)(webpack@5.89.0) ember-cli-babel: 7.26.11 ember-cli-test-loader: 3.1.0 ember-source: 4.6.0(@babel/core@7.23.3)(@glint/template@1.2.1)(webpack@5.89.0) @@ -12831,7 +13182,7 @@ packages: broccoli-funnel: 3.0.8 broccoli-merge-trees: 3.0.2 common-tags: 1.8.2 - ember-auto-import: 2.6.3(@glint/template@1.2.1)(webpack@5.89.0) + ember-auto-import: 2.7.0(@glint/template@1.2.1)(webpack@5.89.0) ember-cli-babel: 7.26.11 ember-cli-test-loader: 3.1.0 ember-source: 3.26.2(@babel/core@7.23.3) @@ -12845,7 +13196,7 @@ packages: - webpack dev: true - /ember-qunit@7.0.0(@ember/test-helpers@3.2.0)(ember-source@3.28.12)(qunit@2.20.0): + /ember-qunit@7.0.0(@ember/test-helpers@3.2.1)(ember-source@3.28.12)(qunit@2.20.0): resolution: {integrity: sha512-KhrndHYEXsHnXvmsGyJLJQ6VCudXaRs5dzPZBsdttZJIhsB6PmYAvq2Q+mh3GRDT/59T/sRDrB3FD3/lATS8aA==} engines: {node: 16.* || >= 18} peerDependencies: @@ -12853,11 +13204,11 @@ packages: ember-source: '>=4.0.0' qunit: ^2.13.0 dependencies: - '@ember/test-helpers': 3.2.0(ember-source@3.28.12) + '@ember/test-helpers': 3.2.1(ember-source@3.28.12) broccoli-funnel: 3.0.8 broccoli-merge-trees: 3.0.2 common-tags: 1.8.2 - ember-auto-import: 2.6.3 + ember-auto-import: 2.7.0 ember-cli-babel: 7.26.11 ember-cli-test-loader: 3.1.0 ember-source: 3.28.12(@babel/core@7.23.3) @@ -12871,7 +13222,7 @@ packages: - webpack dev: true - /ember-qunit@7.0.0(@ember/test-helpers@3.2.0)(ember-source@5.1.2)(qunit@2.20.0): + /ember-qunit@7.0.0(@ember/test-helpers@3.2.1)(ember-source@5.1.2)(qunit@2.20.0): resolution: {integrity: sha512-KhrndHYEXsHnXvmsGyJLJQ6VCudXaRs5dzPZBsdttZJIhsB6PmYAvq2Q+mh3GRDT/59T/sRDrB3FD3/lATS8aA==} engines: {node: 16.* || >= 18} peerDependencies: @@ -12879,11 +13230,11 @@ packages: ember-source: '>=4.0.0' qunit: ^2.13.0 dependencies: - '@ember/test-helpers': 3.2.0(ember-source@5.1.2) + '@ember/test-helpers': 3.2.1(ember-source@5.1.2) broccoli-funnel: 3.0.8 broccoli-merge-trees: 3.0.2 common-tags: 1.8.2 - ember-auto-import: 2.6.3 + ember-auto-import: 2.7.0 ember-cli-babel: 7.26.11 ember-cli-test-loader: 3.1.0 ember-source: 5.1.2(@babel/core@7.23.3)(@glimmer/component@1.1.2) @@ -12897,14 +13248,14 @@ packages: - webpack dev: true - /ember-qunit@8.0.2(@ember/test-helpers@3.2.0)(@glint/template@1.2.1)(ember-source@5.3.0)(qunit@2.20.0): + /ember-qunit@8.0.2(@ember/test-helpers@3.2.1)(@glint/template@1.2.1)(ember-source@5.3.0)(qunit@2.20.0): resolution: {integrity: sha512-Rf60jeUTWNsF3Imf/FLujW/B/DFmKVXKmXO1lirTXjpertKfwRhp/3MnN8a/U/WyodTIsERkInGT1IqTtphCdQ==} peerDependencies: '@ember/test-helpers': '>=3.0.3' ember-source: '>=4.0.0' qunit: ^2.13.0 dependencies: - '@ember/test-helpers': 3.2.0(@glint/template@1.2.1)(ember-source@5.3.0)(webpack@5.89.0) + '@ember/test-helpers': 3.2.1(@glint/template@1.2.1)(ember-source@5.3.0)(webpack@5.89.0) '@embroider/addon-shim': 1.8.7 '@embroider/macros': 1.13.3(@glint/template@1.2.1) ember-cli-test-loader: 3.1.0 @@ -13010,8 +13361,8 @@ packages: resolution: {integrity: sha512-89oVHVJwmLDvGvAUWgS87KpBoRhy3aZ6U0Ql6HOmU4TrPkyaa8pM0W81wj9cIwjYprcQtN9EwzZMHnq46+oUyw==} engines: {node: 8.* || 10.* || >= 12} dependencies: - '@babel/parser': 7.23.3 - '@babel/traverse': 7.23.3(supports-color@8.1.1) + '@babel/parser': 7.23.4 + '@babel/traverse': 7.23.4(supports-color@8.1.1) recast: 0.18.10 transitivePeerDependencies: - supports-color @@ -13038,7 +13389,7 @@ packages: engines: {node: 10.* || >= 12.*} dependencies: '@babel/helper-module-imports': 7.22.15 - '@babel/plugin-transform-block-scoping': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-block-scoping': 7.23.4(@babel/core@7.23.3) '@babel/plugin-transform-object-assign': 7.23.3(@babel/core@7.23.3) '@ember/edition-utils': 1.2.0 '@glimmer/vm-babel-plugins': 0.77.5(@babel/core@7.23.3) @@ -13071,7 +13422,7 @@ packages: engines: {node: 10.* || >= 12.*} dependencies: '@babel/helper-module-imports': 7.22.15 - '@babel/plugin-transform-block-scoping': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-block-scoping': 7.23.4(@babel/core@7.23.3) '@babel/plugin-transform-object-assign': 7.23.3(@babel/core@7.23.3) '@ember/edition-utils': 1.2.0 '@glimmer/vm-babel-plugins': 0.80.3(@babel/core@7.23.3) @@ -13108,7 +13459,7 @@ packages: '@glimmer/component': ^1.1.2 dependencies: '@babel/helper-module-imports': 7.22.15 - '@babel/plugin-transform-block-scoping': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-block-scoping': 7.23.4(@babel/core@7.23.3) '@ember/edition-utils': 1.2.0 '@glimmer/vm-babel-plugins': 0.84.2(@babel/core@7.23.3) '@simple-dom/interface': 1.4.0 @@ -13120,7 +13471,7 @@ packages: broccoli-funnel: 3.0.8 broccoli-merge-trees: 4.2.0 chalk: 4.1.2 - ember-auto-import: 2.6.3 + ember-auto-import: 2.7.0 ember-cli-babel: 7.26.11 ember-cli-get-component-path-option: 1.0.0 ember-cli-is-package-missing: 1.0.0 @@ -13146,7 +13497,7 @@ packages: engines: {node: '>= 12.*'} dependencies: '@babel/helper-module-imports': 7.22.15 - '@babel/plugin-transform-block-scoping': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-block-scoping': 7.23.4(@babel/core@7.23.3) '@ember/edition-utils': 1.2.0 '@glimmer/vm-babel-plugins': 0.83.1(@babel/core@7.23.3) babel-plugin-debug-macros: 0.3.4(@babel/core@7.23.3) @@ -13157,7 +13508,7 @@ packages: broccoli-funnel: 3.0.8 broccoli-merge-trees: 4.2.0 chalk: 4.1.2 - ember-auto-import: 2.6.3 + ember-auto-import: 2.7.0 ember-cli-babel: 7.26.11 ember-cli-get-component-path-option: 1.0.0 ember-cli-is-package-missing: 1.0.0 @@ -13183,7 +13534,7 @@ packages: engines: {node: '>= 12.*'} dependencies: '@babel/helper-module-imports': 7.22.15 - '@babel/plugin-transform-block-scoping': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-block-scoping': 7.23.4(@babel/core@7.23.3) '@ember/edition-utils': 1.2.0 '@glimmer/vm-babel-plugins': 0.84.2(@babel/core@7.23.3) babel-plugin-debug-macros: 0.3.4(@babel/core@7.23.3) @@ -13194,7 +13545,7 @@ packages: broccoli-funnel: 3.0.8 broccoli-merge-trees: 4.2.0 chalk: 4.1.2 - ember-auto-import: 2.6.3(@glint/template@1.2.1)(webpack@5.89.0) + ember-auto-import: 2.7.0(@glint/template@1.2.1)(webpack@5.89.0) ember-cli-babel: 7.26.11 ember-cli-get-component-path-option: 1.0.0 ember-cli-is-package-missing: 1.0.0 @@ -13222,7 +13573,7 @@ packages: '@glimmer/component': ^1.1.2 dependencies: '@babel/helper-module-imports': 7.22.15 - '@babel/plugin-transform-block-scoping': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-block-scoping': 7.23.4(@babel/core@7.23.3) '@ember/edition-utils': 1.2.0 '@glimmer/compiler': 0.84.2 '@glimmer/component': 1.1.2(@babel/core@7.23.3) @@ -13243,14 +13594,14 @@ packages: '@simple-dom/interface': 1.4.0 babel-plugin-debug-macros: 0.3.4(@babel/core@7.23.3) babel-plugin-filter-imports: 4.0.0 - backburner.js: 2.7.0 + backburner.js: 2.8.0 broccoli-concat: 4.2.5 broccoli-debug: 0.6.5 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.6.3 + ember-auto-import: 2.7.0 ember-cli-babel: 7.26.11 ember-cli-get-component-path-option: 1.0.0 ember-cli-is-package-missing: 1.0.0 @@ -13281,7 +13632,7 @@ packages: '@glimmer/component': ^1.1.2 dependencies: '@babel/helper-module-imports': 7.22.15 - '@babel/plugin-transform-block-scoping': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-block-scoping': 7.23.4(@babel/core@7.23.3) '@ember/edition-utils': 1.2.0 '@glimmer/compiler': 0.84.2 '@glimmer/component': 1.1.2(@babel/core@7.23.3) @@ -13302,14 +13653,14 @@ packages: '@simple-dom/interface': 1.4.0 babel-plugin-debug-macros: 0.3.4(@babel/core@7.23.3) babel-plugin-filter-imports: 4.0.0 - backburner.js: 2.7.0 + backburner.js: 2.8.0 broccoli-concat: 4.2.5 broccoli-debug: 0.6.5 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.6.3(@glint/template@1.2.1)(webpack@5.89.0) + ember-auto-import: 2.7.0(@glint/template@1.2.1)(webpack@5.89.0) ember-cli-babel: 7.26.11 ember-cli-get-component-path-option: 1.0.0 ember-cli-is-package-missing: 1.0.0 @@ -13338,7 +13689,7 @@ packages: engines: {node: '>= 16.*'} dependencies: '@babel/helper-module-imports': 7.22.15 - '@babel/plugin-transform-block-scoping': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-block-scoping': 7.23.4(@babel/core@7.23.3) '@ember/edition-utils': 1.2.0 '@glimmer/compiler': 0.84.3 '@glimmer/component': 1.1.2(@babel/core@7.23.3) @@ -13360,14 +13711,14 @@ packages: '@simple-dom/interface': 1.4.0 babel-plugin-debug-macros: 0.3.4(@babel/core@7.23.3) babel-plugin-filter-imports: 4.0.0 - backburner.js: 2.7.0 + backburner.js: 2.8.0 broccoli-concat: 4.2.5 broccoli-debug: 0.6.5 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.6.3 + ember-auto-import: 2.7.0 ember-cli-babel: 7.26.11 ember-cli-get-component-path-option: 1.0.0 ember-cli-is-package-missing: 1.0.0 @@ -13391,12 +13742,12 @@ packages: - webpack dev: true - /ember-source@5.5.0-beta.1(@babel/core@7.23.3): - resolution: {integrity: sha512-FwbGHU1CTLDUALswJd8My7Lm0ZlZRW+d6Kyl6LiQxbAlUaUQYeXE3C9QunnMRMbGfEyBE29KDAmKoeFKKaUsew==} + /ember-source@5.5.0-beta.2(@babel/core@7.23.3): + resolution: {integrity: sha512-3ek0HtY+KJ7x7FRukH9MMhjMvke/cz7ccdUFey5XuCgzw8XWXtfuRZ+IcJFLOW6FRoZGUwATpa0m7JyNj+OuYA==} engines: {node: '>= 16.*'} dependencies: '@babel/helper-module-imports': 7.22.15 - '@babel/plugin-transform-block-scoping': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-block-scoping': 7.23.4(@babel/core@7.23.3) '@ember/edition-utils': 1.2.0 '@glimmer/compiler': 0.84.3 '@glimmer/component': 1.1.2(@babel/core@7.23.3) @@ -13418,14 +13769,14 @@ packages: '@simple-dom/interface': 1.4.0 babel-plugin-debug-macros: 0.3.4(@babel/core@7.23.3) babel-plugin-filter-imports: 4.0.0 - backburner.js: 2.7.0 + backburner.js: 2.8.0 broccoli-concat: 4.2.5 broccoli-debug: 0.6.5 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.6.3 + ember-auto-import: 2.7.0 ember-cli-babel: 7.26.11 ember-cli-get-component-path-option: 1.0.0 ember-cli-is-package-missing: 1.0.0 @@ -13527,8 +13878,8 @@ packages: - supports-color dev: true - /ember-template-lint@5.12.0: - resolution: {integrity: sha512-QY3VVwuaYACOmOtF0VzQUUA8p6AYE3VC2LW/4RLsi6B5oa2E8wCfJwyo4wcXKLQb+eSqDMYmD/PQ4iizFFpz5g==} + /ember-template-lint@5.13.0: + resolution: {integrity: sha512-AYxz9S9fVZfHPmTsymc7NwsD7FVmDUZyfC+KYpxDlK0wic7JSQx2FNQNqQSBFRLOuzn7VQ0/+1pX6DGqKDGswg==} engines: {node: ^14.18.0 || ^16.0.0 || >= 18.0.0} hasBin: true dependencies: @@ -13705,7 +14056,7 @@ packages: engines: {node: '>=10.2.0'} dependencies: '@types/cookie': 0.4.1 - '@types/cors': 2.8.16 + '@types/cors': 2.8.17 '@types/node': 15.14.9 accepts: 1.3.8 base64id: 2.0.0 @@ -13853,6 +14204,36 @@ packages: es6-promise: 4.2.8 dev: false + /esbuild@0.17.19: + resolution: {integrity: sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/android-arm': 0.17.19 + '@esbuild/android-arm64': 0.17.19 + '@esbuild/android-x64': 0.17.19 + '@esbuild/darwin-arm64': 0.17.19 + '@esbuild/darwin-x64': 0.17.19 + '@esbuild/freebsd-arm64': 0.17.19 + '@esbuild/freebsd-x64': 0.17.19 + '@esbuild/linux-arm': 0.17.19 + '@esbuild/linux-arm64': 0.17.19 + '@esbuild/linux-ia32': 0.17.19 + '@esbuild/linux-loong64': 0.17.19 + '@esbuild/linux-mips64el': 0.17.19 + '@esbuild/linux-ppc64': 0.17.19 + '@esbuild/linux-riscv64': 0.17.19 + '@esbuild/linux-s390x': 0.17.19 + '@esbuild/linux-x64': 0.17.19 + '@esbuild/netbsd-x64': 0.17.19 + '@esbuild/openbsd-x64': 0.17.19 + '@esbuild/sunos-x64': 0.17.19 + '@esbuild/win32-arm64': 0.17.19 + '@esbuild/win32-ia32': 0.17.19 + '@esbuild/win32-x64': 0.17.19 + dev: false + /esbuild@0.18.20: resolution: {integrity: sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==} engines: {node: '>=12'} @@ -13918,6 +14299,15 @@ packages: optionalDependencies: source-map: 0.6.1 + /eslint-compat-utils@0.1.2(eslint@8.54.0): + resolution: {integrity: sha512-Jia4JDldWnFNIru1Ehx1H5s9/yxiRHY/TimCuUc0jNexew3cF1gI6CYZil1ociakfWO3rRqFjl1mskBblB3RYg==} + engines: {node: '>=12'} + peerDependencies: + eslint: '>=6.0.0' + dependencies: + eslint: 8.54.0 + dev: true + /eslint-config-prettier@8.10.0(eslint@7.32.0): resolution: {integrity: sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg==} hasBin: true @@ -13927,13 +14317,13 @@ packages: eslint: 7.32.0 dev: true - /eslint-config-prettier@8.10.0(eslint@8.53.0): + /eslint-config-prettier@8.10.0(eslint@8.54.0): resolution: {integrity: sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg==} hasBin: true peerDependencies: eslint: '>=7.0.0' dependencies: - eslint: 8.53.0 + eslint: 8.54.0 dev: true /eslint-formatter-kakoune@1.0.0: @@ -13950,7 +14340,7 @@ packages: - supports-color dev: true - /eslint-module-utils@2.8.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.9)(eslint@8.53.0): + /eslint-module-utils@2.8.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.9)(eslint@8.54.0): resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} engines: {node: '>=4'} peerDependencies: @@ -13971,9 +14361,9 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 5.62.0(eslint@8.53.0)(typescript@5.2.2) + '@typescript-eslint/parser': 5.62.0(eslint@8.54.0)(typescript@5.3.2) debug: 3.2.7 - eslint: 8.53.0 + eslint: 8.54.0 eslint-import-resolver-node: 0.3.9 transitivePeerDependencies: - supports-color @@ -14020,7 +14410,7 @@ packages: - supports-color dev: true - /eslint-plugin-ember@11.11.1(eslint@8.53.0): + /eslint-plugin-ember@11.11.1(eslint@8.54.0): resolution: {integrity: sha512-dvsDa4LkDkGqCE2bzBIguRMi1g40JVwRWMSHmn8S7toRDxSOU3M7yromgi5eSAJX2O2vEvJZ9QnR15YDbvNfVQ==} engines: {node: 14.* || 16.* || >= 18} peerDependencies: @@ -14032,8 +14422,8 @@ packages: ember-rfc176-data: 0.3.18 ember-template-imports: 3.4.2 ember-template-recast: 6.1.4 - eslint: 8.53.0 - eslint-utils: 3.0.0(eslint@8.53.0) + eslint: 8.54.0 + eslint-utils: 3.0.0(eslint@8.54.0) estraverse: 5.3.0 lodash.camelcase: 4.3.0 lodash.kebabcase: 4.1.1 @@ -14053,24 +14443,25 @@ packages: snake-case: 3.0.4 dev: true - /eslint-plugin-es-x@7.3.0(eslint@8.53.0): - resolution: {integrity: sha512-W9zIs+k00I/I13+Bdkl/zG1MEO07G97XjUSQuH117w620SJ6bHtLUmoMvkGA2oYnI/gNdr+G7BONLyYnFaLLEQ==} + /eslint-plugin-es-x@7.4.0(eslint@8.54.0): + resolution: {integrity: sha512-WJa3RhYzBtl8I37ebY9p76s61UhZyi4KaFOnX2A5r32RPazkXj5yoT6PGnD02dhwzEUj0KwsUdqfKDd/OuvGsw==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: eslint: '>=8' dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.53.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.54.0) '@eslint-community/regexpp': 4.10.0 - eslint: 8.53.0 + eslint: 8.54.0 + eslint-compat-utils: 0.1.2(eslint@8.54.0) dev: true - /eslint-plugin-es@1.4.1(eslint@8.53.0): + /eslint-plugin-es@1.4.1(eslint@8.54.0): resolution: {integrity: sha512-5fa/gR2yR3NxQf+UXkeLeP8FBBl6tSgdrAz1+cF84v1FMM4twGwQoqTnn+QxFLcPOrF4pdKEJKDB/q9GoyJrCA==} engines: {node: '>=6.5.0'} peerDependencies: eslint: '>=4.19.1' dependencies: - eslint: 8.53.0 + eslint: 8.54.0 eslint-utils: 1.4.3 regexpp: 2.0.1 dev: true @@ -14086,7 +14477,7 @@ packages: regexpp: 3.2.0 dev: true - /eslint-plugin-import@2.29.0(@typescript-eslint/parser@5.62.0)(eslint@8.53.0): + /eslint-plugin-import@2.29.0(@typescript-eslint/parser@5.62.0)(eslint@8.54.0): resolution: {integrity: sha512-QPOO5NO6Odv5lpoTkddtutccQjysJuFxoPS7fAHO+9m9udNHvTCPSAMW9zGAYj8lAIdr40I8yPCdUYrncXtrwg==} engines: {node: '>=4'} peerDependencies: @@ -14096,16 +14487,16 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 5.62.0(eslint@8.53.0)(typescript@5.2.2) + '@typescript-eslint/parser': 5.62.0(eslint@8.54.0)(typescript@5.3.2) array-includes: 3.1.7 array.prototype.findlastindex: 1.2.3 array.prototype.flat: 1.3.2 array.prototype.flatmap: 1.3.2 debug: 3.2.7 doctrine: 2.1.0 - eslint: 8.53.0 + eslint: 8.54.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.9)(eslint@8.53.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.9)(eslint@8.54.0) hasown: 2.0.0 is-core-module: 2.13.1 is-glob: 4.0.3 @@ -14121,18 +14512,18 @@ packages: - supports-color dev: true - /eslint-plugin-n@16.3.1(eslint@8.53.0): + /eslint-plugin-n@16.3.1(eslint@8.54.0): resolution: {integrity: sha512-w46eDIkxQ2FaTHcey7G40eD+FhTXOdKudDXPUO2n9WNcslze/i/HT2qJ3GXjHngYSGDISIgPNhwGtgoix4zeOw==} engines: {node: '>=16.0.0'} peerDependencies: eslint: '>=7.0.0' dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.53.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.54.0) builtins: 5.0.1 - eslint: 8.53.0 - eslint-plugin-es-x: 7.3.0(eslint@8.53.0) + eslint: 8.54.0 + eslint-plugin-es-x: 7.4.0(eslint@8.54.0) get-tsconfig: 4.7.2 - ignore: 5.2.4 + ignore: 5.3.0 is-builtin-module: 3.2.1 is-core-module: 2.13.1 minimatch: 3.1.2 @@ -14149,22 +14540,22 @@ packages: eslint: 7.32.0 eslint-plugin-es: 3.0.1(eslint@7.32.0) eslint-utils: 2.1.0 - ignore: 5.2.4 + ignore: 5.3.0 minimatch: 3.1.2 resolve: 1.22.8 semver: 6.3.1 dev: true - /eslint-plugin-node@9.2.0(eslint@8.53.0): + /eslint-plugin-node@9.2.0(eslint@8.54.0): resolution: {integrity: sha512-2abNmzAH/JpxI4gEOwd6K8wZIodK3BmHbTxz4s79OIYwwIt2gkpEXlAouJXu4H1c9ySTnRso0tsuthSOZbUMlA==} engines: {node: '>=8.10.0'} peerDependencies: eslint: '>=5.16.0' dependencies: - eslint: 8.53.0 - eslint-plugin-es: 1.4.1(eslint@8.53.0) + eslint: 8.54.0 + eslint-plugin-es: 1.4.1(eslint@8.54.0) eslint-utils: 1.4.3 - ignore: 5.2.4 + ignore: 5.3.0 minimatch: 3.1.2 resolve: 1.22.8 semver: 6.3.1 @@ -14187,7 +14578,7 @@ packages: prettier-linter-helpers: 1.0.0 dev: true - /eslint-plugin-prettier@4.2.1(eslint-config-prettier@8.10.0)(eslint@8.53.0)(prettier@2.8.8): + /eslint-plugin-prettier@4.2.1(eslint-config-prettier@8.10.0)(eslint@8.54.0)(prettier@2.8.8): resolution: {integrity: sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==} engines: {node: '>=12.0.0'} peerDependencies: @@ -14198,8 +14589,8 @@ packages: eslint-config-prettier: optional: true dependencies: - eslint: 8.53.0 - eslint-config-prettier: 8.10.0(eslint@8.53.0) + eslint: 8.54.0 + eslint-config-prettier: 8.10.0(eslint@8.54.0) prettier: 2.8.8 prettier-linter-helpers: 1.0.0 dev: true @@ -14214,11 +14605,11 @@ packages: - eslint dev: true - /eslint-plugin-qunit@7.3.4(eslint@8.53.0): + /eslint-plugin-qunit@7.3.4(eslint@8.54.0): resolution: {integrity: sha512-EbDM0zJerH9zVdUswMJpcFF7wrrpvsGuYfNexUpa5hZkkdFhaFcX+yD+RSK4Nrauw4psMGlcqeWUMhaVo+Manw==} engines: {node: 12.x || 14.x || >=16.0.0} dependencies: - eslint-utils: 3.0.0(eslint@8.53.0) + eslint-utils: 3.0.0(eslint@8.54.0) requireindex: 1.2.0 transitivePeerDependencies: - eslint @@ -14271,13 +14662,13 @@ packages: eslint-visitor-keys: 2.1.0 dev: true - /eslint-utils@3.0.0(eslint@8.53.0): + /eslint-utils@3.0.0(eslint@8.54.0): resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} peerDependencies: eslint: '>=5' dependencies: - eslint: 8.53.0 + eslint: 8.54.0 eslint-visitor-keys: 2.1.0 dev: true @@ -14301,7 +14692,7 @@ packages: engines: {node: ^6.14.0 || ^8.10.0 || >=9.10.0} hasBin: true dependencies: - '@babel/code-frame': 7.22.13 + '@babel/code-frame': 7.23.4 ajv: 6.12.6 chalk: 2.4.2 cross-spawn: 6.0.5 @@ -14390,15 +14781,15 @@ packages: - supports-color dev: true - /eslint@8.53.0: - resolution: {integrity: sha512-N4VuiPjXDUa4xVeV/GC/RV3hQW9Nw+Y463lkWaKKXKYMvmRiRDAtfpuPFLN+E1/6ZhyR8J2ig+eVREnYgUsiag==} + /eslint@8.54.0: + resolution: {integrity: sha512-NY0DfAkM8BIZDVl6PgSa1ttZbx3xHgJzSNJKYcQglem6CppHyMhRIQkBVSSMaSRnLhig3jsDbEzOjwCVt4AmmA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.53.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.54.0) '@eslint-community/regexpp': 4.10.0 '@eslint/eslintrc': 2.1.3 - '@eslint/js': 8.53.0 + '@eslint/js': 8.54.0 '@humanwhocodes/config-array': 0.11.13 '@humanwhocodes/module-importer': 1.0.1 '@nodelib/fs.walk': 1.2.8 @@ -14420,7 +14811,7 @@ packages: glob-parent: 6.0.2 globals: 13.23.0 graphemer: 1.4.0 - ignore: 5.2.4 + ignore: 5.3.0 imurmurhash: 0.1.4 is-glob: 4.0.3 is-path-inside: 3.0.3 @@ -14792,12 +15183,12 @@ packages: transitivePeerDependencies: - supports-color - /fastboot-express-middleware@4.1.1: - resolution: {integrity: sha512-RzobJdJXtFLOp+QtQlRSEm4RjepprLDITyYxPzd7M8LTH9jo2COhG0NFz2LFcv9Jtqlp8IzKh/0w2+hOt7JZow==} + /fastboot-express-middleware@4.1.2: + resolution: {integrity: sha512-vnzEBV7gZ3lSoGiqG/7+006nHNA3z+ZnU/5u9jPHtKpjH28yEbvZq6PnAeTu24UR98jZVR0pnFbfX0co+O9PeA==} engines: {node: 12.* || 14.* || >=16} dependencies: chalk: 4.1.2 - fastboot: 4.1.1 + fastboot: 4.1.2 transitivePeerDependencies: - bufferutil - canvas @@ -14814,8 +15205,8 @@ packages: - supports-color dev: true - /fastboot@4.1.1: - resolution: {integrity: sha512-XG7YprsAuAGZrUDhmJ0NFuEP0gpWg9LZwGWSS1I5+f0ETHKPWqb4x59sN2rU1nvCEETBK70z68tLsWsl9daomg==} + /fastboot@4.1.2: + resolution: {integrity: sha512-VJLmF0xdCNwIIuA7DQtN1KTAKfEGsbZGJ0cfKh64h6DeMh3Fhr2FCCxkPh8zYqGoqzjXFdFbtk60WS3f6HKqBg==} engines: {node: 12.* || 14.* || >=16} dependencies: chalk: 4.1.2 @@ -14890,8 +15281,8 @@ packages: flat-cache: 3.2.0 dev: true - /file-entry-cache@7.0.1: - resolution: {integrity: sha512-uLfFktPmRetVCbHe5UPuekWrQ6hENufnA46qEGbfACkK5drjTTdQYUragRgMjHldcbYG+nslUerqMPjbBSHXjQ==} + /file-entry-cache@7.0.2: + resolution: {integrity: sha512-TfW7/1iI4Cy7Y8L6iqNdZQVvdXn0f8B4QcIXmkIbtTIe/Okm/nSlHb4IwGzRVOd3WfSieCgvf5cMzEfySAIl0g==} engines: {node: '>=12.0.0'} dependencies: flat-cache: 3.2.0 @@ -15253,8 +15644,8 @@ packages: jsonfile: 6.1.0 universalify: 2.0.1 - /fs-extra@11.1.1: - resolution: {integrity: sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==} + /fs-extra@11.2.0: + resolution: {integrity: sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==} engines: {node: '>=14.14'} dependencies: graceful-fs: 4.2.11 @@ -15606,7 +15997,7 @@ packages: dir-glob: 3.0.1 fast-glob: 3.3.2 glob: 7.2.3 - ignore: 5.2.4 + ignore: 5.3.0 merge2: 1.4.1 slash: 3.0.0 @@ -15619,7 +16010,7 @@ packages: dir-glob: 3.0.1 fast-glob: 3.3.2 glob: 7.2.3 - ignore: 5.2.4 + ignore: 5.3.0 merge2: 1.4.1 slash: 3.0.0 dev: false @@ -15631,7 +16022,7 @@ packages: array-union: 2.1.0 dir-glob: 3.0.1 fast-glob: 3.3.2 - ignore: 5.2.4 + ignore: 5.3.0 merge2: 1.4.1 slash: 3.0.0 @@ -15641,7 +16032,7 @@ packages: dependencies: dir-glob: 3.0.1 fast-glob: 3.3.2 - ignore: 5.2.4 + ignore: 5.3.0 merge2: 1.4.1 slash: 4.0.0 dev: true @@ -16066,8 +16457,8 @@ packages: engines: {node: '>= 4'} dev: true - /ignore@5.2.4: - resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==} + /ignore@5.3.0: + resolution: {integrity: sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==} engines: {node: '>= 4'} /import-fresh@3.3.0: @@ -16405,7 +16796,7 @@ packages: /is-language-code@3.1.0: resolution: {integrity: sha512-zJdQ3QTeLye+iphMeK3wks+vXSRFKh68/Pnlw7aOfApFSEIOhYa8P9vwwa6QrImNNBMJTiL1PpYF0f4BxDuEgA==} dependencies: - '@babel/runtime': 7.23.2 + '@babel/runtime': 7.23.4 dev: true /is-negative-zero@2.0.2: @@ -16595,7 +16986,7 @@ packages: engines: {node: '>=8'} dependencies: '@babel/core': 7.23.3(supports-color@8.1.1) - '@babel/parser': 7.23.3 + '@babel/parser': 7.23.4 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 semver: 6.3.1 @@ -16608,7 +16999,7 @@ packages: engines: {node: '>=10'} dependencies: '@babel/core': 7.23.3(supports-color@8.1.1) - '@babel/parser': 7.23.3 + '@babel/parser': 7.23.4 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 semver: 7.5.4 @@ -16857,7 +17248,7 @@ packages: resolution: {integrity: sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@babel/code-frame': 7.22.13 + '@babel/code-frame': 7.23.4 '@jest/types': 29.6.3 '@types/stack-utils': 2.0.3 chalk: 4.1.2 @@ -16982,10 +17373,10 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@babel/core': 7.23.3(supports-color@8.1.1) - '@babel/generator': 7.23.3 + '@babel/generator': 7.23.4 '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.23.3) '@babel/plugin-syntax-typescript': 7.23.3(@babel/core@7.23.3) - '@babel/types': 7.23.3 + '@babel/types': 7.23.4 '@jest/expect-utils': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 @@ -17239,10 +17630,14 @@ packages: resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} dev: true - /json-stable-stringify@1.0.2: - resolution: {integrity: sha512-eunSSaEnxV12z+Z73y/j5N37/In40GK4GmsSy+tEHJMxknvqnA7/djeYtAgW0GsWHUfg+847WJjKaEylk2y09g==} + /json-stable-stringify@1.1.0: + resolution: {integrity: sha512-zfA+5SuwYN2VWqN1/5HZaDzQKLJHaBVMZIIM+wuYjdptkaQsqzDdqjqf+lZZJUuJq1aanHiY8LhH8LmH+qBYJA==} + engines: {node: '>= 0.4'} dependencies: + call-bind: 1.0.5 + isarray: 2.0.5 jsonify: 0.0.1 + object-keys: 1.1.1 /json5@0.5.1: resolution: {integrity: sha512-4xrs1aW+6N5DalkqSVA8fxh458CXvR99WU8WLKmq4v8eWAL86Xo3BVqyd3SkA9wEVjCMqyvvRRkshAdOnBp5rw==} @@ -18106,6 +18501,11 @@ packages: engines: {node: '>=10'} hasBin: true + /mkdirp@3.0.1: + resolution: {integrity: sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==} + engines: {node: '>=10'} + hasBin: true + /mktemp@0.4.0: resolution: {integrity: sha512-IXnMcJ6ZyTuhRmJSjzvHSRhlVPiN9Jwc6e59V0bEJ0ba6OBeX2L0E+mRN1QseeOF4mM+F1Rit6Nh7o+rl2Yn/A==} engines: {node: '>0.9'} @@ -18574,7 +18974,7 @@ packages: dependencies: chalk: 2.4.2 cli-cursor: 2.1.0 - cli-spinners: 2.9.1 + cli-spinners: 2.9.2 log-symbols: 2.2.0 strip-ansi: 5.2.0 wcwidth: 1.0.1 @@ -18586,7 +18986,7 @@ packages: bl: 4.1.0 chalk: 4.1.2 cli-cursor: 3.1.0 - cli-spinners: 2.9.1 + cli-spinners: 2.9.2 is-interactive: 1.0.0 is-unicode-supported: 0.1.0 log-symbols: 4.1.0 @@ -18777,7 +19177,7 @@ packages: resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} engines: {node: '>=8'} dependencies: - '@babel/code-frame': 7.22.13 + '@babel/code-frame': 7.23.4 error-ex: 1.3.2 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 @@ -19442,7 +19842,7 @@ packages: /regenerator-transform@0.15.2: resolution: {integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==} dependencies: - '@babel/runtime': 7.23.2 + '@babel/runtime': 7.23.4 /regex-not@1.0.2: resolution: {integrity: sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==} @@ -19527,7 +19927,7 @@ packages: dependencies: '@babel/core': 7.23.3(supports-color@8.1.1) '@babel/plugin-syntax-decorators': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-typescript': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-typescript': 7.23.4(@babel/core@7.23.3) prettier: 2.8.8 transitivePeerDependencies: - supports-color @@ -20608,7 +21008,7 @@ packages: peerDependencies: stylelint: ^15.5.0 dependencies: - stylelint: 15.11.0(typescript@5.2.2) + stylelint: 15.11.0(typescript@5.3.2) dev: true /stylelint-config-recommended@13.0.0(stylelint@15.11.0): @@ -20617,7 +21017,7 @@ packages: peerDependencies: stylelint: ^15.10.0 dependencies: - stylelint: 15.11.0(typescript@5.2.2) + stylelint: 15.11.0(typescript@5.3.2) dev: true /stylelint-config-standard@33.0.0(stylelint@15.11.0): @@ -20625,7 +21025,7 @@ packages: peerDependencies: stylelint: ^15.5.0 dependencies: - stylelint: 15.11.0(typescript@5.2.2) + stylelint: 15.11.0(typescript@5.3.2) stylelint-config-recommended: 12.0.0(stylelint@15.11.0) dev: true @@ -20635,7 +21035,7 @@ packages: peerDependencies: stylelint: ^15.10.0 dependencies: - stylelint: 15.11.0(typescript@5.2.2) + stylelint: 15.11.0(typescript@5.3.2) stylelint-config-recommended: 13.0.0(stylelint@15.11.0) dev: true @@ -20648,11 +21048,11 @@ packages: dependencies: prettier: 2.8.8 prettier-linter-helpers: 1.0.0 - stylelint: 15.11.0(typescript@5.2.2) + stylelint: 15.11.0(typescript@5.3.2) dev: true - /stylelint-prettier@4.0.2(prettier@3.1.0)(stylelint@15.11.0): - resolution: {integrity: sha512-EoHnR2PiaWgpGtoI4VW7AzneMfwmwQsNwQ+3/E2k/a+ju5yO6rfPfop4vzPQKcJN4ZM1YbspEOPu88D8538sbg==} + /stylelint-prettier@4.1.0(prettier@3.1.0)(stylelint@15.11.0): + resolution: {integrity: sha512-dd653q/d1IfvsSQshz1uAMe+XDm6hfM/7XiFH0htYY8Lse/s5ERTg7SURQehZPwVvm/rs7AsFhda9EQ2E9TS0g==} engines: {node: ^14.17.0 || >=16.0.0} peerDependencies: prettier: '>=3.0.0' @@ -20660,10 +21060,10 @@ packages: dependencies: prettier: 3.1.0 prettier-linter-helpers: 1.0.0 - stylelint: 15.11.0(typescript@5.2.2) + stylelint: 15.11.0(typescript@5.3.2) dev: true - /stylelint@15.11.0(typescript@5.2.2): + /stylelint@15.11.0(typescript@5.3.2): resolution: {integrity: sha512-78O4c6IswZ9TzpcIiQJIN49K3qNoXTM8zEJzhaTE/xRTCZswaovSEVIa/uwbOltZrk16X4jAxjaOhzz/hTm1Kw==} engines: {node: ^14.13.1 || >=16.0.0} hasBin: true @@ -20674,18 +21074,18 @@ packages: '@csstools/selector-specificity': 3.0.0(postcss-selector-parser@6.0.13) balanced-match: 2.0.0 colord: 2.9.3 - cosmiconfig: 8.3.6(typescript@5.2.2) + cosmiconfig: 8.3.6(typescript@5.3.2) css-functions-list: 3.2.1 css-tree: 2.3.1 debug: 4.3.4(supports-color@8.1.1) fast-glob: 3.3.2 fastest-levenshtein: 1.0.16 - file-entry-cache: 7.0.1 + file-entry-cache: 7.0.2 global-modules: 2.0.0 globby: 11.1.0 globjoin: 0.1.4 html-tags: 3.3.1 - ignore: 5.2.4 + ignore: 5.3.0 import-lazy: 4.0.0 imurmurhash: 0.1.4 is-plain-object: 5.0.0 @@ -20904,8 +21304,8 @@ packages: minimatch: 3.1.2 dev: true - /testem@3.10.1(lodash@4.17.21): - resolution: {integrity: sha512-42c4e7qlAelwMd8O3ogtVGRbgbr6fJnX6H51ACOIG1V1IjsKPlcQtxPyOwaL4iikH22Dfh+EyIuJnMG4yxieBQ==} + /testem@3.11.0(lodash@4.17.21): + resolution: {integrity: sha512-q0U126/nnRH54ZDrr6j1Ai5zK6vOm2rdY/5VJrbqcEPQgOWoLB6zrymWUs7BqN2/yRsdorocl9E9ZEwm7LLIZQ==} engines: {node: '>= 7.*'} hasBin: true dependencies: @@ -20927,7 +21327,7 @@ packages: lodash.clonedeep: 4.5.0 lodash.find: 4.6.0 lodash.uniqby: 4.7.0 - mkdirp: 1.0.4 + mkdirp: 3.0.1 mustache: 4.2.0 node-notifier: 10.0.1 npmlog: 6.0.2 @@ -21229,7 +21629,7 @@ packages: engines: {node: '>=0.10.0'} dev: true - /ts-node@10.9.1(typescript@5.2.2): + /ts-node@10.9.1(typescript@5.3.2): resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} hasBin: true peerDependencies: @@ -21254,7 +21654,7 @@ packages: create-require: 1.1.1 diff: 4.0.2 make-error: 1.3.6 - typescript: 5.2.2 + typescript: 5.3.2 v8-compile-cache-lib: 3.0.1 yn: 3.1.1 dev: false @@ -21285,6 +21685,16 @@ packages: typescript: 5.2.2 dev: true + /tsutils@3.21.0(typescript@5.3.2): + resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} + engines: {node: '>= 6'} + peerDependencies: + typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' + dependencies: + tslib: 1.14.1 + typescript: 5.3.2 + dev: true + /type-check@0.3.2: resolution: {integrity: sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==} engines: {node: '>= 0.8.0'} @@ -21384,6 +21794,12 @@ packages: resolution: {integrity: sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==} engines: {node: '>=14.17'} hasBin: true + dev: true + + /typescript@5.3.2: + resolution: {integrity: sha512-6l+RyNy7oAHDfxC4FzSJcz9vnjTKxrLpDG5M2Vu4SHRVNg6xzqZp6LYSR9zjqQTu8DU/f5xwxUdADOkbrIX2gQ==} + engines: {node: '>=14.17'} + hasBin: true /uc.micro@1.0.6: resolution: {integrity: sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==} @@ -21588,8 +22004,8 @@ packages: resolution: {integrity: sha512-ocyWc3bAHBB/guyqJQVI5o4BZkPhznPYUG2ea80Gond/BgNWpap8TOmLSeeQG7bnh2KMISxskdADG59j7zruhw==} dev: true - /v8-to-istanbul@9.1.3: - resolution: {integrity: sha512-9lDD+EVI2fjFsMWXc6dy5JJzBsVTcQ2fVkfBvncZ6xJWG9wtBhOldG+mHkSL0+V1K/xgZz0JDO5UT5hFwHUghg==} + /v8-to-istanbul@9.2.0: + resolution: {integrity: sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==} engines: {node: '>=10.12.0'} dependencies: '@jridgewell/trace-mapping': 0.3.20 diff --git a/tests/vite-app/package.json b/tests/vite-app/package.json index 4d582da19..a9d17bfd9 100644 --- a/tests/vite-app/package.json +++ b/tests/vite-app/package.json @@ -11,7 +11,7 @@ "test": "tests" }, "scripts": { - "build": "ember build --environment=production", + "build": "vite build", "lint": "concurrently \"npm:lint:*(!fix)\" --names \"lint:\"", "lint:css": "stylelint \"**/*.css\"", "lint:css:fix": "concurrently \"npm:lint:css -- --fix\"", @@ -55,7 +55,7 @@ "ember-load-initializers": "^2.1.2", "ember-modifier": "^4.1.0", "ember-page-title": "^7.0.0", - "ember-qunit": "^7.0.0", + "ember-qunit": "^8.0.2", "ember-resolver": "^10.1.0", "ember-source": "~5.1.0", "ember-template-lint": "^5.10.3", @@ -83,6 +83,7 @@ "ember": { "edition": "octane" }, + "main": "package.json", "dependencies": { "@esbuild/linux-x64": "^0.19.8" } diff --git a/tests/vite-app/tests/helpers/index.js b/tests/vite-app/tests/helpers/index.js index 7f70de80f..bd975d0c6 100644 --- a/tests/vite-app/tests/helpers/index.js +++ b/tests/vite-app/tests/helpers/index.js @@ -1,42 +1,44 @@ -import { - setupApplicationTest as upstreamSetupApplicationTest, - setupRenderingTest as upstreamSetupRenderingTest, - setupTest as upstreamSetupTest, -} from 'ember-qunit'; - -// This file exists to provide wrappers around ember-qunit's / ember-mocha'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); // 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 }; +// import { +// setupApplicationTest as upstreamSetupApplicationTest, +// setupRenderingTest as upstreamSetupRenderingTest, +// setupTest as upstreamSetupTest, +// } from 'ember-qunit'; +// +// // This file exists to provide wrappers around ember-qunit's / ember-mocha'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); // 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/tests/vite-app/tests/integration/fany-test.gts b/tests/vite-app/tests/integration/fany-test.gts new file mode 100644 index 000000000..07321f9ee --- /dev/null +++ b/tests/vite-app/tests/integration/fany-test.gts @@ -0,0 +1,20 @@ +import { module, test } from 'qunit'; +import { setupRenderingTest } from 'ember-qunit'; +import { render, click, rerender, settled } from '@ember/test-helpers'; +import Fancy from 'vite-app/components/fancy'; + + +module('Integration | Component | Fany', (hooks) => { + setupRenderingTest(hooks); + + test('should set as primary', async function(assert) { + await render(); + await rerender() + + assert.dom('button').hasClass('cds--btn--primary'); + }); +}); + + diff --git a/tests/vite-app/tests/test-helper.js b/tests/vite-app/tests/test-helper.js index 283a1126e..5ec6055d7 100644 --- a/tests/vite-app/tests/test-helper.js +++ b/tests/vite-app/tests/test-helper.js @@ -9,4 +9,4 @@ setApplication(Application.create(config.APP)); setup(QUnit.assert); -start(); +// start(); diff --git a/tests/vite-app/vite.config.mts b/tests/vite-app/vite.config.mts index d054f9290..776e9cad2 100644 --- a/tests/vite-app/vite.config.mts +++ b/tests/vite-app/vite.config.mts @@ -33,13 +33,14 @@ export default defineConfig({ optimizeDeps: optimizeDeps(), server: { watch: { + ignored: ["!**/node_modules/.embroider/rewritten-app/**"], }, }, build: { rollupOptions: { input: { main: resolve(root, "index.html"), - tests: resolve(root, "tests/index.html"), + tests: resolve('.', "tests/index.html"), }, }, }, From ce408fd91ec51338691b17d8b327504b379a9cbd Mon Sep 17 00:00:00 2001 From: patrick Date: Mon, 4 Dec 2023 16:25:11 +0100 Subject: [PATCH 07/55] prevent loop in vite build --- packages/vite/src/hbs.ts | 5 +++ packages/vite/src/template-tag.ts | 39 +++++++++++++++-------- tests/vite-app/app/components/example.hbs | 2 +- tests/vite-app/app/components/fancy.gjs | 2 +- 4 files changed, 32 insertions(+), 16 deletions(-) diff --git a/packages/vite/src/hbs.ts b/packages/vite/src/hbs.ts index c1119743a..fbba45582 100644 --- a/packages/vite/src/hbs.ts +++ b/packages/vite/src/hbs.ts @@ -16,11 +16,16 @@ export function hbs(): Plugin { name: 'rollup-hbs-plugin', enforce: 'pre', async resolveId(source: string, importer: string | undefined) { + // prevent resolve loop during vite build + if (source.match(/\.(gjs|gts)$/)) { + return null; + } let resolution = await this.resolve(source, importer, { skipSelf: true, }); if (!resolution) { + if (source.endsWith('.hbs')) return null; return maybeSynthesizeComponentJS(this, source, importer); } else { return maybeRewriteHBS(resolution); diff --git a/packages/vite/src/template-tag.ts b/packages/vite/src/template-tag.ts index 20e5dbb44..a66adbc3f 100644 --- a/packages/vite/src/template-tag.ts +++ b/packages/vite/src/template-tag.ts @@ -19,25 +19,36 @@ export function templateTag(): Plugin { enforce: 'pre', async resolveId(id: string, importer: string | undefined) { - let resolution = await this.resolve(id, importer, { - skipSelf: true, - }); + // prevent resolve loop during vite build + if (id.endsWith('.hbs')) return null; + let resolution; + try { + resolution = await this.resolve(id, importer, { + skipSelf: true, + }); + } catch (e) { + return null; + } if (resolution) { return resolution; } for (let candidate of candidates(id)) { - resolution = await this.resolve(candidate, importer, { - skipSelf: true, - custom: { - embroider: { - enableCustomResolver: false, + try { + resolution = await this.resolve(candidate, importer, { + skipSelf: true, + custom: { + embroider: { + enableCustomResolver: false, + }, }, - }, - }); - if (resolution) { - return { - id: resolution.id, - }; + }); + if (resolution) { + return { + id: resolution.id, + }; + } + } catch (e) { + return null; } } }, diff --git a/tests/vite-app/app/components/example.hbs b/tests/vite-app/app/components/example.hbs index 548fbe9ea..35a656871 100644 --- a/tests/vite-app/app/components/example.hbs +++ b/tests/vite-app/app/components/example.hbs @@ -1 +1 @@ -
hey5 {{@message}}
\ No newline at end of file +
hey7 {{@message}}
\ No newline at end of file diff --git a/tests/vite-app/app/components/fancy.gjs b/tests/vite-app/app/components/fancy.gjs index 51421fe9b..058bc8366 100644 --- a/tests/vite-app/app/components/fancy.gjs +++ b/tests/vite-app/app/components/fancy.gjs @@ -1 +1 @@ - \ No newline at end of file + From 238fa382556350aabe69c360e1fc064a30f15a62 Mon Sep 17 00:00:00 2001 From: Patrick Date: Mon, 4 Dec 2023 23:50:38 +0100 Subject: [PATCH 08/55] fix vite test --- packages/vite/src/resolver.ts | 18 ++++++++++++++++-- tests/vite-app/package.json | 4 ++-- tests/vite-app/tests/integration/fany-test.gts | 6 +++--- tests/vite-app/tests/test-helper.js | 2 +- 4 files changed, 22 insertions(+), 8 deletions(-) diff --git a/packages/vite/src/resolver.ts b/packages/vite/src/resolver.ts index ebafe110c..2d6b41537 100644 --- a/packages/vite/src/resolver.ts +++ b/packages/vite/src/resolver.ts @@ -6,7 +6,7 @@ import { virtualContent, ResolverLoader, getAppMeta } from '@embroider/core'; import { readFileSync, existsSync } from 'fs'; import { RollupModuleRequest, virtualPrefix } from './request'; import assertNever from 'assert-never'; -import { generateEntries } from './virtual-files'; +import {generateEntries, generateTestEntries} from './virtual-files'; const cwd = process.cwd(); const root = join(cwd, 'app'); @@ -123,6 +123,9 @@ export function resolver(options?: Options): Plugin { }, load(id) { id = id.split('?')[0]; + if (id.endsWith('/testem.js')) { + return ''; + } if (id === join(cwd, 'config', 'environment.js').replace(/\\/g, '/')) { const code = readFileSync(id).toString(); return code.replace('module.exports = ', 'export default '); @@ -140,11 +143,22 @@ export function resolver(options?: Options): Plugin { if (id.endsWith('/test.js')) { return ` // fix for qunit + import './test-setup.js'; + import './test-entries.js' + ` + } + if (id.endsWith('/test-setup.js')) { + return ` import * as EmberTesting from 'ember-testing'; define('ember-testing', () => EmberTesting); - await import('./test-entries') ` } + if (id.endsWith('/test-entries.js')) { + return generateTestEntries({ + pkg, + entryFolders: options?.entryFolders + }) + } return readFileSync(rewrittenApp + id.replace(root + '/assets/', '/assets/').split('?')[0]).toString(); } diff --git a/tests/vite-app/package.json b/tests/vite-app/package.json index a9d17bfd9..408da7bcf 100644 --- a/tests/vite-app/package.json +++ b/tests/vite-app/package.json @@ -21,7 +21,7 @@ "lint:js": "eslint . --cache", "lint:js:fix": "eslint . --fix", "start:prebuild": "ember build", - "start:dev": "vite", + "start:dev": "vite --force", "start": "concurrently \"npm:start:*\" --names \"start:\"", "test": "concurrently \"npm:lint\" \"npm:test:*\" --names \"lint,test:\"", "test:ember": "ember test" @@ -55,7 +55,7 @@ "ember-load-initializers": "^2.1.2", "ember-modifier": "^4.1.0", "ember-page-title": "^7.0.0", - "ember-qunit": "^8.0.2", + "ember-qunit": "^7.0.0", "ember-resolver": "^10.1.0", "ember-source": "~5.1.0", "ember-template-lint": "^5.10.3", diff --git a/tests/vite-app/tests/integration/fany-test.gts b/tests/vite-app/tests/integration/fany-test.gts index 07321f9ee..8be7bb506 100644 --- a/tests/vite-app/tests/integration/fany-test.gts +++ b/tests/vite-app/tests/integration/fany-test.gts @@ -7,13 +7,13 @@ import Fancy from 'vite-app/components/fancy'; module('Integration | Component | Fany', (hooks) => { setupRenderingTest(hooks); - test('should set as primary', async function(assert) { + test('should have Yay for gjs!', async function(assert) { await render(); await rerender() - assert.dom('button').hasClass('cds--btn--primary'); + assert.dom().hasText('Yay for gjs!'); }); }); diff --git a/tests/vite-app/tests/test-helper.js b/tests/vite-app/tests/test-helper.js index 5ec6055d7..283a1126e 100644 --- a/tests/vite-app/tests/test-helper.js +++ b/tests/vite-app/tests/test-helper.js @@ -9,4 +9,4 @@ setApplication(Application.create(config.APP)); setup(QUnit.assert); -// start(); +start(); From 7752af101f8580b2f28913e8b375c314be7bcc9e Mon Sep 17 00:00:00 2001 From: Patrick Date: Mon, 4 Dec 2023 23:51:54 +0100 Subject: [PATCH 09/55] fix vite test --- packages/vite/src/virtual-files.ts | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/packages/vite/src/virtual-files.ts b/packages/vite/src/virtual-files.ts index 47d3b46fd..67be00c4f 100644 --- a/packages/vite/src/virtual-files.ts +++ b/packages/vite/src/virtual-files.ts @@ -101,13 +101,10 @@ export function generateTestEntries({ pkg, entryFolders }: OptionsTest) { let code = ` import './vite-app.js'; import './-embroider-implicit-test-modules.js'; - import * as helperIndex from '${pkg.name}/tests/helpers/index'; - import * as testHelper from '${pkg.name}/tests/test-helper'; + import * as helperIndex from '../../tests/helpers/index'; + import * as testHelper from '../../tests/test-helper'; define('${pkg.name}/tests/helpers/index', () => helperIndex); define('${pkg.name}/tests/test-helper', () => testHelper); - - require('${pkg.name}/tests/test-helper'); - EmberENV.TESTS_FILE_LOADED = true; `; code += ` const appModules = import.meta.glob([${globPattern}], { eager: true }); @@ -117,6 +114,8 @@ export function generateTestEntries({ pkg, entryFolders }: OptionsTest) { '${pkg.name}/').split('.')[0], () => imp ) ); + require('${pkg.name}/tests/test-helper'); + EmberENV.TESTS_FILE_LOADED = true; `; return code; } From eff2fddc2009a48dc3bb47041bc069fb88b4a6da Mon Sep 17 00:00:00 2001 From: patrick Date: Tue, 5 Dec 2023 13:33:06 +0100 Subject: [PATCH 10/55] fix build --- packages/vite/src/resolver.ts | 105 ++++++++++++++++++++++++-- packages/vite/src/scripts.ts | 11 ++- packages/vite/src/virtual-files.ts | 101 ++++++++++++++----------- tests/vite-app/package.json | 4 +- tests/vite-app/tests/helpers/index.js | 86 +++++++++++---------- tests/vite-app/vite.config.mts | 2 +- 6 files changed, 208 insertions(+), 101 deletions(-) diff --git a/packages/vite/src/resolver.ts b/packages/vite/src/resolver.ts index 2d6b41537..146847f8e 100644 --- a/packages/vite/src/resolver.ts +++ b/packages/vite/src/resolver.ts @@ -1,12 +1,15 @@ import type { PluginContext, ResolveIdResult } from 'rollup'; import type { Plugin } from 'vite'; -import { join, resolve } from 'path'; +import { join, resolve, dirname } from 'node:path'; +import { createHash } from 'node:crypto'; +import { fork } from 'node:child_process'; import type { Resolution, ResolverFunction } from '@embroider/core'; -import { virtualContent, ResolverLoader, getAppMeta } from '@embroider/core'; -import { readFileSync, existsSync } from 'fs'; +import { AddonMeta, getAppMeta, ResolverLoader, virtualContent } from '@embroider/core'; +import { existsSync, readdirSync, readFileSync } from 'fs'; import { RollupModuleRequest, virtualPrefix } from './request'; import assertNever from 'assert-never'; -import {generateEntries, generateTestEntries} from './virtual-files'; +import { generateDefineContent, generateEntries, generateTestEntries } from './virtual-files'; +import { copyFileSync, mkdirpSync, rmdirSync, rmSync, writeFileSync } from 'fs-extra'; const cwd = process.cwd(); const root = join(cwd, 'app'); @@ -14,6 +17,7 @@ const publicDir = join(cwd, 'public'); const tests = join(cwd, 'tests'); const embroiderDir = join(cwd, 'node_modules', '.embroider'); const rewrittenApp = join(embroiderDir, 'rewritten-app'); +const cacheKeyPath = join(embroiderDir, 'cache-key.json'); const appIndex = resolve(root, 'index.html').replace(/\\/g, '/'); const testsIndex = resolve(tests, 'index.html').replace(/\\/g, '/'); @@ -26,6 +30,53 @@ type Options = { entryFolders: string[] } +const lockFiles = ['pnpm-lock.yaml', 'package-lock.json', 'yarn.lock', 'package.json']; + +function getCacheKey(file: string) { + if (existsSync(cacheKeyPath)) { + return JSON.parse(readFileSync(cacheKeyPath).toString())[file]; + } + return null; +} + +function updateCacheKey(file: string, key: string|null) { + let json: Record = {}; + if (existsSync(cacheKeyPath)) { + json = JSON.parse(readFileSync(cacheKeyPath).toString()); + } + json[file] = key; + writeFileSync(cacheKeyPath, JSON.stringify(json)); +} + +function computeCacheKeyForFile(file: string) { + if (existsSync(file)) { + const fileBuffer = readFileSync(file); + const hashSum = createHash('sha256'); + hashSum.update(fileBuffer); + + return hashSum.digest('hex'); + } + return null; +} + +function emberBuild(): Promise { + return new Promise((resolve, reject) => { + const child = fork('./node_modules/ember-cli/bin/ember', ['build']); + child.on('exit', (code) => code === 0 ? resolve() : reject()); + }); +} + +async function buildIfFileChanged(path: string|null|undefined): Promise { + if (path && (lockFiles.includes(path) || path === 'app/index.html')) { + const key = computeCacheKeyForFile(path); + if (key !== getCacheKey(path)) { + console.log(path + ' change requires rebuild, rebuilding...'); + await emberBuild(); + updateCacheKey(path, key); + } + } +} + export function resolver(options?: Options): Plugin { let resolverLoader = new ResolverLoader(process.cwd()); const engine = resolverLoader.resolver.options.engines[0]; @@ -54,10 +105,49 @@ export function resolver(options?: Options): Plugin { return { name: 'embroider-resolver', enforce: 'pre', + writeBundle(options) { + engine.activeAddons.forEach((addon) => { + const pkg = resolverLoader.resolver.packageCache.ownerOfFile(addon.root); + if (!pkg) return; + const assets = (pkg.meta as AddonMeta)['public-assets'] || {}; + Object.entries(assets).forEach(([path, dest]) => { + mkdirpSync(dirname(join(options.dir!, dest))) + copyFileSync(join(pkg.root, path), join(options.dir!, dest)); + }); + }); + copyFileSync(join(options.dir!, 'app', 'index.html'), join(options.dir!, 'index.html')); + rmSync(join(options.dir!, 'app', 'index.html')); + rmdirSync(join(options.dir!, 'app')); + }, + async buildStart() { + if (!existsSync(embroiderDir)) { + await emberBuild(); + const files = readdirSync('.'); + const f = lockFiles.find(l => files.includes(l))!; + updateCacheKey(f, computeCacheKeyForFile(f)); + } + if (!existsSync(cacheKeyPath)) { + const files = readdirSync('.'); + const f = lockFiles.find(l => files.includes(l)); + await buildIfFileChanged(f); + } + await buildIfFileChanged('app/index.html'); + }, configureServer(server) { + const files = readdirSync('.'); + files.forEach((f) => { + if (lockFiles.includes(f)) { + server.watcher.add('./' + f); + } + }); + server.watcher.add('./app/index.html'); + server.watcher.on('change', async (path) => { + await buildIfFileChanged(path); + server.restart(true); + }) environment = 'development'; server.middlewares.use((req, _res, next) => { - if (req.originalUrl.match(/\/tests($|\?)/) || req.originalUrl.startsWith('/tests/index.html')) { + if (req.originalUrl?.match(/\/tests($|\?)/) || req.originalUrl?.startsWith('/tests/index.html')) { environment = 'test'; if (!req.originalUrl.startsWith('/tests/index.html')) { req.originalUrl = req.originalUrl.replace('/tests', '/tests/index.html'); @@ -70,7 +160,7 @@ export function resolver(options?: Options): Plugin { (req as any).url = '/app/index.html'; return next(); } - if (req.originalUrl.includes('?')) { + if (req.originalUrl?.includes('?')) { return next(); } if (req.originalUrl && req.originalUrl.length > 1) { @@ -163,6 +253,9 @@ export function resolver(options?: Options): Plugin { } if (id.startsWith(virtualPrefix)) { + if (id.slice(virtualPrefix.length) === 'define') { + return generateDefineContent() + } return virtualContent(id.slice(virtualPrefix.length), resolverLoader.resolver); } }, diff --git a/packages/vite/src/scripts.ts b/packages/vite/src/scripts.ts index 77f6ae412..c00fb471b 100644 --- a/packages/vite/src/scripts.ts +++ b/packages/vite/src/scripts.ts @@ -9,7 +9,10 @@ import { dirname, posix, resolve } from 'path'; // add any non-type-only imports here. import type { MinifyOptions } from 'terser'; -const defaults = ['/assets/vendor.js', '/assets/test-support.js']; +const defaults = [ + '/node_modules/.embroider/rewritten-app/assets/vendor.js', + '/node_modules/.embroider/rewritten-app/assets/test-support.js' +]; export function scripts(params?: { include?: string[]; exclude?: string[] }): Plugin { let optimizer: ScriptOptimizer; @@ -88,18 +91,18 @@ class ScriptOptimizer { } } let { code: outCode, map: outMap } = await Terser.default.minify(inCode, terserOpts); - let finalFilename = await this.getFingerprintedFilename(script, outCode!); + let finalFilename = (await this.getFingerprintedFilename(script, outCode!))?.replace('node_modules/.embroider/rewritten-app/', ''); let emit: EmittedFile[] = []; emit.push({ type: 'asset', fileName: finalFilename.slice(1), source: outCode!, }); - this.emitted.set(script, finalFilename); + this.emitted.set(script.replace('/node_modules/.embroider/rewritten-app', ''), finalFilename); if (appRelativeSourceMapURL && outMap) { emit.push({ type: 'asset', - fileName: appRelativeSourceMapURL, + fileName: appRelativeSourceMapURL.replace('node_modules/.embroider/rewritten-app/', ''), source: JSON.stringify(outMap, null, 2), }); } diff --git a/packages/vite/src/virtual-files.ts b/packages/vite/src/virtual-files.ts index 67be00c4f..229d81920 100644 --- a/packages/vite/src/virtual-files.ts +++ b/packages/vite/src/virtual-files.ts @@ -1,6 +1,7 @@ import { relative } from 'path'; import { Package } from '@embroider/core'; import { EngineConfig } from '@embroider/core/src/module-resolver'; +import { virtualPrefix } from './request'; type Options = { root: string; @@ -31,35 +32,36 @@ export function generateEntries({ root, engine, pkg, environment, entryFolders } ].concat(entryFolders || []); const globPattern = `'../{${folders.join(',')}}/**/*.{js,ts,gjs,gts,hbs}'`; const deepMerge = ` - function merge(source, target) { - for (const [key, val] of Object.entries(source)) { - if (val !== null && typeof val === \`object\`) { - target[key] ??=new val.__proto__.constructor(); - merge(val, target[key]); - } else { - target[key] = val; - } - } - return target; // we're replacing in-situ, so this is more for chaining than anything else - } - `; + function merge(source, target) { + for (const [key, val] of Object.entries(source)) { + if (val !== null && typeof val === \`object\`) { + target[key] ??=new val.__proto__.constructor(); + merge(val, target[key]); + } else { + target[key] = val; + } + } + return target; // we're replacing in-situ, so this is more for chaining than anything else + } + `; let code = ` - ${deepMerge} - import './-embroider-implicit-modules.js'; - import * as GlimmerManager from '${pkg.name}/component-managers/glimmer'; - import * as App from '${pkg.name}/app'; - import * as DataAdapter from '${pkg.name}/data-adapter'; - import * as AppRouter from '${pkg.name}/router'; - import AppEnv from '${pkg.name}/config/environment'; - import buildAppEnv from '../../config/environment'; - define('${pkg.name}/component-managers/glimmer', () => GlimmerManager); - define('${pkg.name}/data-adapter', () => DataAdapter); - - define('${pkg.name}/router', () => AppRouter); + import require from 'require'; + import define from '${virtualPrefix}define'; + import './-embroider-implicit-modules.js'; + import * as GlimmerManager from '${pkg.name}/component-managers/glimmer'; + import * as App from '${pkg.name}/app'; + import * as DataAdapter from '${pkg.name}/data-adapter'; + import * as AppRouter from '${pkg.name}/router'; + import AppEnv from '${pkg.name}/config/environment'; + import buildAppEnv from '../../config/environment'; + define('${pkg.name}/component-managers/glimmer', () => GlimmerManager); + define('${pkg.name}/data-adapter', () => DataAdapter); - merge(buildAppEnv('${environment}'), AppEnv); - define('${pkg.name}/config/environment', () => AppEnv); - `; + define('${pkg.name}/router', () => AppRouter); + ${deepMerge} + merge(buildAppEnv('${environment}'), AppEnv); + define('${pkg.name}/config/environment', () => AppEnv); + `; const addonPatterns: string[] = []; engine.activeAddons.forEach((addon) => { addonPatterns.push( @@ -67,25 +69,25 @@ export function generateEntries({ root, engine, pkg, environment, entryFolders } ) }); code += ` - const appModules = import.meta.glob([${globPattern}], { eager: true }); - Object.entries(appModules).forEach( - ([name, imp]) => define( - name.replace('../', - '${pkg.name}/').split('.')[0], () => imp - ) - ); + const appModules = import.meta.glob([${globPattern}], { eager: true }); + Object.entries(appModules).forEach( + ([name, imp]) => define( + name.replace('../', + '${pkg.name}/').split('.')[0], () => imp + ) + ); - const addonModules = import.meta.glob([${addonPatterns.join(',')}], { eager: true, exhaustive: true }); - Object.entries(addonModules).forEach( - ([name, imp]) => define( - '${pkg.name}' + name.split('_app_')[1].split('.')[0], () => imp - ) - ); - define('${pkg.name}/app', () => App); - if (!runningTests) { - require('${pkg.name}/app').default.create({"name":"${pkg.name}","version":"${pkg.version}+cf3ef785"}); - } - `; + const addonModules = import.meta.glob([${addonPatterns.join(',')}], { eager: true, exhaustive: true }); + Object.entries(addonModules).forEach( + ([name, imp]) => define( + '${pkg.name}' + name.split('_app_')[1].split('.')[0], () => imp + ) + ); + define('${pkg.name}/app', () => App); + if (!runningTests) { + require('${pkg.name}/app').default.create({"name":"${pkg.name}","version":"${pkg.version}+cf3ef785"}); + } + `; return code; } @@ -99,6 +101,8 @@ export function generateTestEntries({ pkg, entryFolders }: OptionsTest) { const globPattern = `'../../tests/{${folders.join(',')}}/**/*.{js,ts,gjs,gts,hbs}'`; let code = ` + import require from 'require'; + import define from '${virtualPrefix}define'; import './vite-app.js'; import './-embroider-implicit-test-modules.js'; import * as helperIndex from '../../tests/helpers/index'; @@ -119,3 +123,10 @@ export function generateTestEntries({ pkg, entryFolders }: OptionsTest) { `; return code; } + + +export function generateDefineContent() { + return ` + export default window.define; + ` +} diff --git a/tests/vite-app/package.json b/tests/vite-app/package.json index 408da7bcf..1f94c8e51 100644 --- a/tests/vite-app/package.json +++ b/tests/vite-app/package.json @@ -21,7 +21,7 @@ "lint:js": "eslint . --cache", "lint:js:fix": "eslint . --fix", "start:prebuild": "ember build", - "start:dev": "vite --force", + "start:dev": "vite", "start": "concurrently \"npm:start:*\" --names \"start:\"", "test": "concurrently \"npm:lint\" \"npm:test:*\" --names \"lint,test:\"", "test:ember": "ember test" @@ -88,3 +88,5 @@ "@esbuild/linux-x64": "^0.19.8" } } + + diff --git a/tests/vite-app/tests/helpers/index.js b/tests/vite-app/tests/helpers/index.js index bd975d0c6..7f70de80f 100644 --- a/tests/vite-app/tests/helpers/index.js +++ b/tests/vite-app/tests/helpers/index.js @@ -1,44 +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 / ember-mocha'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); // 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 }; +import { + setupApplicationTest as upstreamSetupApplicationTest, + setupRenderingTest as upstreamSetupRenderingTest, + setupTest as upstreamSetupTest, +} from 'ember-qunit'; + +// This file exists to provide wrappers around ember-qunit's / ember-mocha'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); // 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/tests/vite-app/vite.config.mts b/tests/vite-app/vite.config.mts index 776e9cad2..ff339ec8f 100644 --- a/tests/vite-app/vite.config.mts +++ b/tests/vite-app/vite.config.mts @@ -41,7 +41,7 @@ export default defineConfig({ input: { main: resolve(root, "index.html"), tests: resolve('.', "tests/index.html"), - }, + } }, }, }); From 53fcc85ee66f4d8cd2896d809e4fd58d19053925 Mon Sep 17 00:00:00 2001 From: patrick Date: Tue, 5 Dec 2023 13:39:08 +0100 Subject: [PATCH 11/55] add build file --- packages/vite/index.d.ts | 1 + packages/vite/index.mjs | 1 + packages/vite/src/build.ts | 99 ++++++++++++++++++++++++++++++++++ packages/vite/src/resolver.ts | 84 ++--------------------------- tests/vite-app/vite.config.mts | 3 +- 5 files changed, 106 insertions(+), 82 deletions(-) create mode 100644 packages/vite/src/build.ts diff --git a/packages/vite/index.d.ts b/packages/vite/index.d.ts index a70a0ec5a..697d4f91d 100644 --- a/packages/vite/index.d.ts +++ b/packages/vite/index.d.ts @@ -5,3 +5,4 @@ export * from './src/scripts.js'; export * from './src/template-tag.js'; export * from './src/addons.js'; export * from './src/optimize-deps.js'; +export * from './src/build.js'; diff --git a/packages/vite/index.mjs b/packages/vite/index.mjs index a70a0ec5a..697d4f91d 100644 --- a/packages/vite/index.mjs +++ b/packages/vite/index.mjs @@ -5,3 +5,4 @@ export * from './src/scripts.js'; export * from './src/template-tag.js'; export * from './src/addons.js'; export * from './src/optimize-deps.js'; +export * from './src/build.js'; diff --git a/packages/vite/src/build.ts b/packages/vite/src/build.ts new file mode 100644 index 000000000..c4a9932dc --- /dev/null +++ b/packages/vite/src/build.ts @@ -0,0 +1,99 @@ +import type { Plugin } from 'vite'; +import { join, dirname } from 'node:path'; +import { createHash } from 'node:crypto'; +import { fork } from 'node:child_process'; +import { AddonMeta, ResolverLoader } from '@embroider/core'; +import { existsSync, readdirSync, readFileSync } from 'fs'; +import { copyFileSync, mkdirpSync, rmdirSync, rmSync, writeFileSync } from 'fs-extra'; + +const cwd = process.cwd(); +const embroiderDir = join(cwd, 'node_modules', '.embroider'); +const cacheKeyPath = join(embroiderDir, 'cache-key.json'); + +export const lockFiles = ['pnpm-lock.yaml', 'package-lock.json', 'yarn.lock', 'package.json']; + +function getCacheKey(file: string) { + if (existsSync(cacheKeyPath)) { + return JSON.parse(readFileSync(cacheKeyPath).toString())[file]; + } + return null; +} + +function updateCacheKey(file: string, key: string|null) { + let json: Record = {}; + if (existsSync(cacheKeyPath)) { + json = JSON.parse(readFileSync(cacheKeyPath).toString()); + } + json[file] = key; + writeFileSync(cacheKeyPath, JSON.stringify(json)); +} + +function computeCacheKeyForFile(file: string) { + if (existsSync(file)) { + const fileBuffer = readFileSync(file); + const hashSum = createHash('sha256'); + hashSum.update(fileBuffer); + + return hashSum.digest('hex'); + } + return null; +} + + +export function emberBuild(): Promise { + return new Promise((resolve, reject) => { + const child = fork('./node_modules/ember-cli/bin/ember', ['build']); + child.on('exit', (code) => code === 0 ? resolve() : reject()); + }); +} + + + +export async function buildIfFileChanged(path: string|null|undefined): Promise { + if (path && (lockFiles.includes(path) || path === 'app/index.html')) { + const key = computeCacheKeyForFile(path); + if (key !== getCacheKey(path)) { + console.log(path + ' change requires rebuild, rebuilding...'); + await emberBuild(); + updateCacheKey(path, key); + } + } +} + + +export function build(): Plugin { + let resolverLoader = new ResolverLoader(process.cwd()); + const engine = resolverLoader.resolver.options.engines[0]; + return { + name: 'embroider-builder', + enforce: 'pre', + writeBundle(options) { + engine.activeAddons.forEach((addon) => { + const pkg = resolverLoader.resolver.packageCache.ownerOfFile(addon.root); + if (!pkg) return; + const assets = (pkg.meta as AddonMeta)['public-assets'] || {}; + Object.entries(assets).forEach(([path, dest]) => { + mkdirpSync(dirname(join(options.dir!, dest))) + copyFileSync(join(pkg.root, path), join(options.dir!, dest)); + }); + }); + copyFileSync(join(options.dir!, 'app', 'index.html'), join(options.dir!, 'index.html')); + rmSync(join(options.dir!, 'app', 'index.html')); + rmdirSync(join(options.dir!, 'app')); + }, + async buildStart() { + if (!existsSync(embroiderDir)) { + await emberBuild(); + const files = readdirSync('.'); + const f = lockFiles.find(l => files.includes(l))!; + updateCacheKey(f, computeCacheKeyForFile(f)); + } + if (!existsSync(cacheKeyPath)) { + const files = readdirSync('.'); + const f = lockFiles.find(l => files.includes(l)); + await buildIfFileChanged(f); + } + await buildIfFileChanged('app/index.html'); + }, + }; +} diff --git a/packages/vite/src/resolver.ts b/packages/vite/src/resolver.ts index 146847f8e..fc2616dad 100644 --- a/packages/vite/src/resolver.ts +++ b/packages/vite/src/resolver.ts @@ -1,15 +1,13 @@ import type { PluginContext, ResolveIdResult } from 'rollup'; import type { Plugin } from 'vite'; -import { join, resolve, dirname } from 'node:path'; -import { createHash } from 'node:crypto'; -import { fork } from 'node:child_process'; +import { join, resolve } from 'node:path'; import type { Resolution, ResolverFunction } from '@embroider/core'; import { AddonMeta, getAppMeta, ResolverLoader, virtualContent } from '@embroider/core'; import { existsSync, readdirSync, readFileSync } from 'fs'; import { RollupModuleRequest, virtualPrefix } from './request'; import assertNever from 'assert-never'; import { generateDefineContent, generateEntries, generateTestEntries } from './virtual-files'; -import { copyFileSync, mkdirpSync, rmdirSync, rmSync, writeFileSync } from 'fs-extra'; +import { buildIfFileChanged, lockFiles } from './build'; const cwd = process.cwd(); const root = join(cwd, 'app'); @@ -17,7 +15,6 @@ const publicDir = join(cwd, 'public'); const tests = join(cwd, 'tests'); const embroiderDir = join(cwd, 'node_modules', '.embroider'); const rewrittenApp = join(embroiderDir, 'rewritten-app'); -const cacheKeyPath = join(embroiderDir, 'cache-key.json'); const appIndex = resolve(root, 'index.html').replace(/\\/g, '/'); const testsIndex = resolve(tests, 'index.html').replace(/\\/g, '/'); @@ -30,53 +27,6 @@ type Options = { entryFolders: string[] } -const lockFiles = ['pnpm-lock.yaml', 'package-lock.json', 'yarn.lock', 'package.json']; - -function getCacheKey(file: string) { - if (existsSync(cacheKeyPath)) { - return JSON.parse(readFileSync(cacheKeyPath).toString())[file]; - } - return null; -} - -function updateCacheKey(file: string, key: string|null) { - let json: Record = {}; - if (existsSync(cacheKeyPath)) { - json = JSON.parse(readFileSync(cacheKeyPath).toString()); - } - json[file] = key; - writeFileSync(cacheKeyPath, JSON.stringify(json)); -} - -function computeCacheKeyForFile(file: string) { - if (existsSync(file)) { - const fileBuffer = readFileSync(file); - const hashSum = createHash('sha256'); - hashSum.update(fileBuffer); - - return hashSum.digest('hex'); - } - return null; -} - -function emberBuild(): Promise { - return new Promise((resolve, reject) => { - const child = fork('./node_modules/ember-cli/bin/ember', ['build']); - child.on('exit', (code) => code === 0 ? resolve() : reject()); - }); -} - -async function buildIfFileChanged(path: string|null|undefined): Promise { - if (path && (lockFiles.includes(path) || path === 'app/index.html')) { - const key = computeCacheKeyForFile(path); - if (key !== getCacheKey(path)) { - console.log(path + ' change requires rebuild, rebuilding...'); - await emberBuild(); - updateCacheKey(path, key); - } - } -} - export function resolver(options?: Options): Plugin { let resolverLoader = new ResolverLoader(process.cwd()); const engine = resolverLoader.resolver.options.engines[0]; @@ -105,34 +55,6 @@ export function resolver(options?: Options): Plugin { return { name: 'embroider-resolver', enforce: 'pre', - writeBundle(options) { - engine.activeAddons.forEach((addon) => { - const pkg = resolverLoader.resolver.packageCache.ownerOfFile(addon.root); - if (!pkg) return; - const assets = (pkg.meta as AddonMeta)['public-assets'] || {}; - Object.entries(assets).forEach(([path, dest]) => { - mkdirpSync(dirname(join(options.dir!, dest))) - copyFileSync(join(pkg.root, path), join(options.dir!, dest)); - }); - }); - copyFileSync(join(options.dir!, 'app', 'index.html'), join(options.dir!, 'index.html')); - rmSync(join(options.dir!, 'app', 'index.html')); - rmdirSync(join(options.dir!, 'app')); - }, - async buildStart() { - if (!existsSync(embroiderDir)) { - await emberBuild(); - const files = readdirSync('.'); - const f = lockFiles.find(l => files.includes(l))!; - updateCacheKey(f, computeCacheKeyForFile(f)); - } - if (!existsSync(cacheKeyPath)) { - const files = readdirSync('.'); - const f = lockFiles.find(l => files.includes(l)); - await buildIfFileChanged(f); - } - await buildIfFileChanged('app/index.html'); - }, configureServer(server) { const files = readdirSync('.'); files.forEach((f) => { @@ -173,7 +95,7 @@ export function resolver(options?: Options): Plugin { } p = join('node_modules', req.originalUrl); pkg = resolverLoader.resolver.packageCache.ownerOfFile(p); - if (pkg && pkg.meta && (pkg.meta as any)['public-assets']) { + if (pkg && pkg.meta && (pkg.meta as AddonMeta)['public-assets']) { const asset = Object.entries((pkg.meta as any)['public-assets']).find(([_key, a]) => a === req.originalUrl)?.[0]; const local = asset ? join(cwd, p) : null; if (local && existsSync(local)) { diff --git a/tests/vite-app/vite.config.mts b/tests/vite-app/vite.config.mts index ff339ec8f..5130aeb71 100644 --- a/tests/vite-app/vite.config.mts +++ b/tests/vite-app/vite.config.mts @@ -5,12 +5,12 @@ import { scripts, templateTag, optimizeDeps, + build } from "@embroider/vite"; import { resolve } from "path"; import { babel } from "@rollup/plugin-babel"; const root = "app"; -const rewrittenApp = "node_modules/.embroider/rewritten-app"; export default defineConfig({ root: '.', @@ -19,6 +19,7 @@ export default defineConfig({ templateTag(), scripts(), resolver(), + build(), babel({ babelHelpers: "runtime", From abfeab42d9fc903b5872323aead0235c8600f0eb Mon Sep 17 00:00:00 2001 From: patrick Date: Tue, 5 Dec 2023 13:40:12 +0100 Subject: [PATCH 12/55] fix lint --- packages/vite/src/build.ts | 135 ++++++++++++++--------------- packages/vite/src/resolver.ts | 44 +++++----- packages/vite/src/scripts.ts | 9 +- packages/vite/src/virtual-files.ts | 21 ++--- tests/vite-app/vite.config.mts | 8 +- 5 files changed, 106 insertions(+), 111 deletions(-) diff --git a/packages/vite/src/build.ts b/packages/vite/src/build.ts index c4a9932dc..df72ee891 100644 --- a/packages/vite/src/build.ts +++ b/packages/vite/src/build.ts @@ -2,7 +2,8 @@ import type { Plugin } from 'vite'; import { join, dirname } from 'node:path'; import { createHash } from 'node:crypto'; import { fork } from 'node:child_process'; -import { AddonMeta, ResolverLoader } from '@embroider/core'; +import type { AddonMeta } from '@embroider/core'; +import { ResolverLoader } from '@embroider/core'; import { existsSync, readdirSync, readFileSync } from 'fs'; import { copyFileSync, mkdirpSync, rmdirSync, rmSync, writeFileSync } from 'fs-extra'; @@ -13,87 +14,83 @@ const cacheKeyPath = join(embroiderDir, 'cache-key.json'); export const lockFiles = ['pnpm-lock.yaml', 'package-lock.json', 'yarn.lock', 'package.json']; function getCacheKey(file: string) { - if (existsSync(cacheKeyPath)) { - return JSON.parse(readFileSync(cacheKeyPath).toString())[file]; - } - return null; + if (existsSync(cacheKeyPath)) { + return JSON.parse(readFileSync(cacheKeyPath).toString())[file]; + } + return null; } -function updateCacheKey(file: string, key: string|null) { - let json: Record = {}; - if (existsSync(cacheKeyPath)) { - json = JSON.parse(readFileSync(cacheKeyPath).toString()); - } - json[file] = key; - writeFileSync(cacheKeyPath, JSON.stringify(json)); +function updateCacheKey(file: string, key: string | null) { + let json: Record = {}; + if (existsSync(cacheKeyPath)) { + json = JSON.parse(readFileSync(cacheKeyPath).toString()); + } + json[file] = key; + writeFileSync(cacheKeyPath, JSON.stringify(json)); } function computeCacheKeyForFile(file: string) { - if (existsSync(file)) { - const fileBuffer = readFileSync(file); - const hashSum = createHash('sha256'); - hashSum.update(fileBuffer); + if (existsSync(file)) { + const fileBuffer = readFileSync(file); + const hashSum = createHash('sha256'); + hashSum.update(fileBuffer); - return hashSum.digest('hex'); - } - return null; + return hashSum.digest('hex'); + } + return null; } - export function emberBuild(): Promise { - return new Promise((resolve, reject) => { - const child = fork('./node_modules/ember-cli/bin/ember', ['build']); - child.on('exit', (code) => code === 0 ? resolve() : reject()); - }); + return new Promise((resolve, reject) => { + const child = fork('./node_modules/ember-cli/bin/ember', ['build']); + child.on('exit', code => (code === 0 ? resolve() : reject())); + }); } - - -export async function buildIfFileChanged(path: string|null|undefined): Promise { - if (path && (lockFiles.includes(path) || path === 'app/index.html')) { - const key = computeCacheKeyForFile(path); - if (key !== getCacheKey(path)) { - console.log(path + ' change requires rebuild, rebuilding...'); - await emberBuild(); - updateCacheKey(path, key); - } +export async function buildIfFileChanged(path: string | null | undefined): Promise { + if (path && (lockFiles.includes(path) || path === 'app/index.html')) { + const key = computeCacheKeyForFile(path); + if (key !== getCacheKey(path)) { + console.log(path + ' change requires rebuild, rebuilding...'); + await emberBuild(); + updateCacheKey(path, key); } + } } - export function build(): Plugin { - let resolverLoader = new ResolverLoader(process.cwd()); - const engine = resolverLoader.resolver.options.engines[0]; - return { - name: 'embroider-builder', - enforce: 'pre', - writeBundle(options) { - engine.activeAddons.forEach((addon) => { - const pkg = resolverLoader.resolver.packageCache.ownerOfFile(addon.root); - if (!pkg) return; - const assets = (pkg.meta as AddonMeta)['public-assets'] || {}; - Object.entries(assets).forEach(([path, dest]) => { - mkdirpSync(dirname(join(options.dir!, dest))) - copyFileSync(join(pkg.root, path), join(options.dir!, dest)); - }); - }); - copyFileSync(join(options.dir!, 'app', 'index.html'), join(options.dir!, 'index.html')); - rmSync(join(options.dir!, 'app', 'index.html')); - rmdirSync(join(options.dir!, 'app')); - }, - async buildStart() { - if (!existsSync(embroiderDir)) { - await emberBuild(); - const files = readdirSync('.'); - const f = lockFiles.find(l => files.includes(l))!; - updateCacheKey(f, computeCacheKeyForFile(f)); - } - if (!existsSync(cacheKeyPath)) { - const files = readdirSync('.'); - const f = lockFiles.find(l => files.includes(l)); - await buildIfFileChanged(f); - } - await buildIfFileChanged('app/index.html'); - }, - }; + let resolverLoader = new ResolverLoader(process.cwd()); + const engine = resolverLoader.resolver.options.engines[0]; + return { + name: 'embroider-builder', + enforce: 'pre', + writeBundle(options) { + engine.activeAddons.forEach(addon => { + const pkg = resolverLoader.resolver.packageCache.ownerOfFile(addon.root); + if (!pkg) return; + const assets = (pkg.meta as AddonMeta)['public-assets'] || {}; + Object.entries(assets).forEach(([path, dest]) => { + mkdirpSync(dirname(join(options.dir!, dest))); + copyFileSync(join(pkg.root, path), join(options.dir!, dest)); + }); + }); + copyFileSync(join(options.dir!, 'app', 'index.html'), join(options.dir!, 'index.html')); + rmSync(join(options.dir!, 'app', 'index.html')); + rmdirSync(join(options.dir!, 'app')); + }, + async buildStart() { + if (!existsSync(embroiderDir)) { + await emberBuild(); + const files = readdirSync('.'); + const f = lockFiles.find(l => files.includes(l))!; + updateCacheKey(f, computeCacheKeyForFile(f)); + } + if (!existsSync(cacheKeyPath)) { + const files = readdirSync('.'); + const f = lockFiles.find(l => files.includes(l)); + await buildIfFileChanged(f); + } + await buildIfFileChanged('app/index.html'); + }, + }; } diff --git a/packages/vite/src/resolver.ts b/packages/vite/src/resolver.ts index fc2616dad..45ff3f20f 100644 --- a/packages/vite/src/resolver.ts +++ b/packages/vite/src/resolver.ts @@ -1,8 +1,8 @@ import type { PluginContext, ResolveIdResult } from 'rollup'; import type { Plugin } from 'vite'; import { join, resolve } from 'node:path'; -import type { Resolution, ResolverFunction } from '@embroider/core'; -import { AddonMeta, getAppMeta, ResolverLoader, virtualContent } from '@embroider/core'; +import type { Resolution, ResolverFunction, AddonMeta } from '@embroider/core'; +import { getAppMeta, ResolverLoader, virtualContent } from '@embroider/core'; import { existsSync, readdirSync, readFileSync } from 'fs'; import { RollupModuleRequest, virtualPrefix } from './request'; import assertNever from 'assert-never'; @@ -24,14 +24,14 @@ const rewrittenTestIndex = resolve(rewrittenApp, 'tests', 'index.html'); let environment = 'production'; type Options = { - entryFolders: string[] -} + entryFolders: string[]; +}; export function resolver(options?: Options): Plugin { let resolverLoader = new ResolverLoader(process.cwd()); const engine = resolverLoader.resolver.options.engines[0]; engine.root = root; - engine.activeAddons.forEach((addon) => { + engine.activeAddons.forEach(addon => { addon.canResolveFromFile = addon.canResolveFromFile.replace(rewrittenApp, cwd); }); const appMeta = getAppMeta(cwd); @@ -50,23 +50,23 @@ export function resolver(options?: Options): Plugin { return json; } return JSON.parse(readFileSync(join(this.root, 'package.json'), 'utf8')); - } - }) + }, + }); return { name: 'embroider-resolver', enforce: 'pre', configureServer(server) { const files = readdirSync('.'); - files.forEach((f) => { + files.forEach(f => { if (lockFiles.includes(f)) { server.watcher.add('./' + f); } }); server.watcher.add('./app/index.html'); - server.watcher.on('change', async (path) => { + server.watcher.on('change', async path => { await buildIfFileChanged(path); server.restart(true); - }) + }); environment = 'development'; server.middlewares.use((req, _res, next) => { if (req.originalUrl?.match(/\/tests($|\?)/) || req.originalUrl?.startsWith('/tests/index.html')) { @@ -96,7 +96,9 @@ export function resolver(options?: Options): Plugin { p = join('node_modules', req.originalUrl); pkg = resolverLoader.resolver.packageCache.ownerOfFile(p); if (pkg && pkg.meta && (pkg.meta as AddonMeta)['public-assets']) { - const asset = Object.entries((pkg.meta as any)['public-assets']).find(([_key, a]) => a === req.originalUrl)?.[0]; + const asset = Object.entries((pkg.meta as any)['public-assets']).find( + ([_key, a]) => a === req.originalUrl + )?.[0]; const local = asset ? join(cwd, p) : null; if (local && existsSync(local)) { req.originalUrl = '/' + p; @@ -107,7 +109,7 @@ export function resolver(options?: Options): Plugin { return next(); } return next(); - }) + }); }, async resolveId(source, importer, options) { if (source.startsWith('/assets/')) { @@ -149,34 +151,34 @@ export function resolver(options?: Options): Plugin { root, engine, pkg, - entryFolders: options?.entryFolders - }) + entryFolders: options?.entryFolders, + }); } if (id.endsWith('/test.js')) { return ` // fix for qunit import './test-setup.js'; import './test-entries.js' - ` + `; } if (id.endsWith('/test-setup.js')) { return ` import * as EmberTesting from 'ember-testing'; define('ember-testing', () => EmberTesting); - ` + `; } if (id.endsWith('/test-entries.js')) { return generateTestEntries({ pkg, - entryFolders: options?.entryFolders - }) + entryFolders: options?.entryFolders, + }); } return readFileSync(rewrittenApp + id.replace(root + '/assets/', '/assets/').split('?')[0]).toString(); } if (id.startsWith(virtualPrefix)) { if (id.slice(virtualPrefix.length) === 'define') { - return generateDefineContent() + return generateDefineContent(); } return virtualContent(id.slice(virtualPrefix.length), resolverLoader.resolver); } @@ -190,8 +192,8 @@ export function resolver(options?: Options): Plugin { if (ctx.filename === testsIndex) { return readFileSync(rewrittenTestIndex).toString(); } - } - } + }, + }, }; } diff --git a/packages/vite/src/scripts.ts b/packages/vite/src/scripts.ts index c00fb471b..81e402ead 100644 --- a/packages/vite/src/scripts.ts +++ b/packages/vite/src/scripts.ts @@ -10,8 +10,8 @@ import { dirname, posix, resolve } from 'path'; import type { MinifyOptions } from 'terser'; const defaults = [ - '/node_modules/.embroider/rewritten-app/assets/vendor.js', - '/node_modules/.embroider/rewritten-app/assets/test-support.js' + '/node_modules/.embroider/rewritten-app/assets/vendor.js', + '/node_modules/.embroider/rewritten-app/assets/test-support.js', ]; export function scripts(params?: { include?: string[]; exclude?: string[] }): Plugin { @@ -91,7 +91,10 @@ class ScriptOptimizer { } } let { code: outCode, map: outMap } = await Terser.default.minify(inCode, terserOpts); - let finalFilename = (await this.getFingerprintedFilename(script, outCode!))?.replace('node_modules/.embroider/rewritten-app/', ''); + let finalFilename = (await this.getFingerprintedFilename(script, outCode!))?.replace( + 'node_modules/.embroider/rewritten-app/', + '' + ); let emit: EmittedFile[] = []; emit.push({ type: 'asset', diff --git a/packages/vite/src/virtual-files.ts b/packages/vite/src/virtual-files.ts index 229d81920..c0bc6c00b 100644 --- a/packages/vite/src/virtual-files.ts +++ b/packages/vite/src/virtual-files.ts @@ -1,6 +1,6 @@ import { relative } from 'path'; -import { Package } from '@embroider/core'; -import { EngineConfig } from '@embroider/core/src/module-resolver'; +import type { Package } from '@embroider/core'; +import type { EngineConfig } from '@embroider/core/src/module-resolver'; import { virtualPrefix } from './request'; type Options = { @@ -11,11 +11,10 @@ type Options = { entryFolders?: string[]; }; - type OptionsTest = { pkg: Package; entryFolders?: string[]; -} +}; export function generateEntries({ root, engine, pkg, environment, entryFolders }: Options) { const folders = [ @@ -63,10 +62,10 @@ export function generateEntries({ root, engine, pkg, environment, entryFolders } define('${pkg.name}/config/environment', () => AppEnv); `; const addonPatterns: string[] = []; - engine.activeAddons.forEach((addon) => { + engine.activeAddons.forEach(addon => { addonPatterns.push( `'${relative(root + '/assets', addon.root)}/**/_app_/{${folders.join(',')}}/**/*.{js,ts,gjs,gts,hbs}'` - ) + ); }); code += ` const appModules = import.meta.glob([${globPattern}], { eager: true }); @@ -91,13 +90,8 @@ export function generateEntries({ root, engine, pkg, environment, entryFolders } return code; } - export function generateTestEntries({ pkg, entryFolders }: OptionsTest) { - const folders = [ - 'helpers', - 'integration', - 'unit', - ].concat(entryFolders || []); + const folders = ['helpers', 'integration', 'unit'].concat(entryFolders || []); const globPattern = `'../../tests/{${folders.join(',')}}/**/*.{js,ts,gjs,gts,hbs}'`; let code = ` @@ -124,9 +118,8 @@ export function generateTestEntries({ pkg, entryFolders }: OptionsTest) { return code; } - export function generateDefineContent() { return ` export default window.define; - ` + `; } diff --git a/tests/vite-app/vite.config.mts b/tests/vite-app/vite.config.mts index 5130aeb71..968600ca7 100644 --- a/tests/vite-app/vite.config.mts +++ b/tests/vite-app/vite.config.mts @@ -5,7 +5,7 @@ import { scripts, templateTag, optimizeDeps, - build + build, } from "@embroider/vite"; import { resolve } from "path"; import { babel } from "@rollup/plugin-babel"; @@ -13,7 +13,7 @@ import { babel } from "@rollup/plugin-babel"; const root = "app"; export default defineConfig({ - root: '.', + root: ".", plugins: [ hbs(), templateTag(), @@ -41,8 +41,8 @@ export default defineConfig({ rollupOptions: { input: { main: resolve(root, "index.html"), - tests: resolve('.', "tests/index.html"), - } + tests: resolve(".", "tests/index.html"), + }, }, }, }); From 3aa2856c190a881f678d49fd67faf11596fbe916 Mon Sep 17 00:00:00 2001 From: patrick Date: Tue, 5 Dec 2023 13:43:17 +0100 Subject: [PATCH 13/55] fix lint --- packages/vite/src/build.ts | 10 +++++----- packages/vite/src/resolver.ts | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/vite/src/build.ts b/packages/vite/src/build.ts index df72ee891..803f9b875 100644 --- a/packages/vite/src/build.ts +++ b/packages/vite/src/build.ts @@ -1,11 +1,11 @@ import type { Plugin } from 'vite'; -import { join, dirname } from 'node:path'; -import { createHash } from 'node:crypto'; -import { fork } from 'node:child_process'; +import { join, dirname } from 'path'; +import { createHash } from 'crypto'; +import { fork } from 'child_process'; import type { AddonMeta } from '@embroider/core'; import { ResolverLoader } from '@embroider/core'; -import { existsSync, readdirSync, readFileSync } from 'fs'; -import { copyFileSync, mkdirpSync, rmdirSync, rmSync, writeFileSync } from 'fs-extra'; +import { existsSync, readdirSync, readFileSync, rmSync, writeFileSync, rmdirSync, copyFileSync } from 'fs'; +import { mkdirpSync } from 'fs-extra'; const cwd = process.cwd(); const embroiderDir = join(cwd, 'node_modules', '.embroider'); diff --git a/packages/vite/src/resolver.ts b/packages/vite/src/resolver.ts index 45ff3f20f..6e0c28590 100644 --- a/packages/vite/src/resolver.ts +++ b/packages/vite/src/resolver.ts @@ -1,6 +1,6 @@ import type { PluginContext, ResolveIdResult } from 'rollup'; import type { Plugin } from 'vite'; -import { join, resolve } from 'node:path'; +import { join, resolve } from 'path'; import type { Resolution, ResolverFunction, AddonMeta } from '@embroider/core'; import { getAppMeta, ResolverLoader, virtualContent } from '@embroider/core'; import { existsSync, readdirSync, readFileSync } from 'fs'; From 4239dda044264085a4e95940e1e2e92c744aa87f Mon Sep 17 00:00:00 2001 From: patrick Date: Tue, 5 Dec 2023 13:54:59 +0100 Subject: [PATCH 14/55] revert --- packages/shared-internals/src/package.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/shared-internals/src/package.ts b/packages/shared-internals/src/package.ts index 7593c0005..344be75eb 100644 --- a/packages/shared-internals/src/package.ts +++ b/packages/shared-internals/src/package.ts @@ -53,7 +53,6 @@ export default class Package { } isEmberPackage(): boolean { - if (this.isApp) return true; let keywords = this.packageJSON.keywords; return Boolean(keywords && (keywords as string[]).includes('ember-addon')); } From 3883e9698b2148fe2cc0724f9b37ae18ecb21f2a Mon Sep 17 00:00:00 2001 From: patrick Date: Tue, 5 Dec 2023 13:56:24 +0100 Subject: [PATCH 15/55] revert --- tests/vite-app/app/components/example.hbs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/vite-app/app/components/example.hbs b/tests/vite-app/app/components/example.hbs index 35a656871..cde1c788b 100644 --- a/tests/vite-app/app/components/example.hbs +++ b/tests/vite-app/app/components/example.hbs @@ -1 +1 @@ -
hey7 {{@message}}
\ No newline at end of file +
hey {{@message}}
\ No newline at end of file From effd7e66d59e75bde075437350e312f6a82838d9 Mon Sep 17 00:00:00 2001 From: patrick Date: Tue, 5 Dec 2023 13:58:30 +0100 Subject: [PATCH 16/55] fix lock file --- pnpm-lock.yaml | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ad6cd66e2..a77abd93c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -146,6 +146,18 @@ importers: specifier: workspace:^ version: link:../core + packages/broccoli-side-watch: + dependencies: + broccoli-merge-trees: + specifier: ^4.2.0 + version: 4.2.0 + broccoli-plugin: + specifier: ^4.0.7 + version: 4.0.7 + broccoli-source: + specifier: ^3.0.1 + version: 3.0.1 + packages/compat: dependencies: '@babel/code-frame': From 19d9eacd7206a74d451b875f2e56a4b66d25f7c5 Mon Sep 17 00:00:00 2001 From: patrick Date: Tue, 5 Dec 2023 14:07:17 +0100 Subject: [PATCH 17/55] fix pkg --- pnpm-lock.yaml | 11 ----------- tests/vite-app/package.json | 7 +------ 2 files changed, 1 insertion(+), 17 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a77abd93c..ece15bae2 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1954,10 +1954,6 @@ importers: version: link:../../packages/addon-shim tests/vite-app: - dependencies: - '@esbuild/linux-x64': - specifier: ^0.19.8 - version: 0.19.8 devDependencies: '@babel/core': specifier: ^7.22.6 @@ -5094,13 +5090,6 @@ packages: dev: true optional: true - /@esbuild/linux-x64@0.19.8: - resolution: {integrity: sha512-lytMAVOM3b1gPypL2TRmZ5rnXl7+6IIk8uB3eLsV1JwcizuolblXRrc5ShPrO9ls/b+RTp+E6gbsuLWHWi2zGg==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - dev: false - /@esbuild/netbsd-x64@0.17.19: resolution: {integrity: sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==} engines: {node: '>=12'} diff --git a/tests/vite-app/package.json b/tests/vite-app/package.json index 1f94c8e51..284c9fcb7 100644 --- a/tests/vite-app/package.json +++ b/tests/vite-app/package.json @@ -20,9 +20,7 @@ "lint:hbs:fix": "ember-template-lint . --fix", "lint:js": "eslint . --cache", "lint:js:fix": "eslint . --fix", - "start:prebuild": "ember build", "start:dev": "vite", - "start": "concurrently \"npm:start:*\" --names \"start:\"", "test": "concurrently \"npm:lint\" \"npm:test:*\" --names \"lint,test:\"", "test:ember": "ember test" }, @@ -83,10 +81,7 @@ "ember": { "edition": "octane" }, - "main": "package.json", - "dependencies": { - "@esbuild/linux-x64": "^0.19.8" - } + "main": "package.json" } From 4fa0ea6601384ddc841de9486bec3fa629979a55 Mon Sep 17 00:00:00 2001 From: patrick Date: Tue, 5 Dec 2023 14:50:47 +0100 Subject: [PATCH 18/55] lets try it like this --- tests/scenarios/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/scenarios/package.json b/tests/scenarios/package.json index ba4cb96c6..62e77bf9b 100644 --- a/tests/scenarios/package.json +++ b/tests/scenarios/package.json @@ -25,7 +25,7 @@ "ts-node": "^10.9.1" }, "scripts": { - "test": "qunit --require ts-node/register *-test.ts", + "test": "node ./node_modules/qunit/bin/qunit.js --require ts-node/register *-test.ts", "test:list": "scenario-tester list --require ts-node/register --files=*-test.ts", "test:output": "scenario-tester output --require ts-node/register --files=*-test.ts" }, From 9037607fc5d4549436e43c4307ed3963324735ba Mon Sep 17 00:00:00 2001 From: patrick Date: Tue, 5 Dec 2023 15:15:41 +0100 Subject: [PATCH 19/55] needs path param --- tests/scenarios/static-app-test.ts | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/tests/scenarios/static-app-test.ts b/tests/scenarios/static-app-test.ts index 4d8026aa2..94cdb8c7e 100644 --- a/tests/scenarios/static-app-test.ts +++ b/tests/scenarios/static-app-test.ts @@ -404,7 +404,14 @@ appScenarios function emberBootstrap() { // https://github.com/kaliber5/ember-bootstrap/pull/1750 - let modifiers = Project.fromDir(dirname(require.resolve('@ember/render-modifiers')), { linkDeps: true }); + let modifiers = Project.fromDir( + dirname( + require.resolve('@ember/render-modifiers', { + paths: [dirname(require.resolve('ember-bootstrap'))], + }) + ), + { linkDeps: true } + ); modifiers.removeDependency('ember-source'); let eb = Project.fromDir(dirname(require.resolve('ember-bootstrap')), { linkDeps: true }); eb.addDependency(modifiers); From 3fb1b9f6c78e48a15fc752588c74f458e8c654dd Mon Sep 17 00:00:00 2001 From: patrick Date: Tue, 5 Dec 2023 15:19:43 +0100 Subject: [PATCH 20/55] showcase .ts resolution --- tests/vite-app/app/components/{example.js => example.ts} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename tests/vite-app/app/components/{example.js => example.ts} (100%) diff --git a/tests/vite-app/app/components/example.js b/tests/vite-app/app/components/example.ts similarity index 100% rename from tests/vite-app/app/components/example.js rename to tests/vite-app/app/components/example.ts From 45762464804274a0af66975336025007471d8d14 Mon Sep 17 00:00:00 2001 From: patrick Date: Tue, 5 Dec 2023 15:36:32 +0100 Subject: [PATCH 21/55] fix tests --- packages/util/package.json | 4 +++- pnpm-lock.yaml | 6 ++++++ tests/scenarios/package.json | 1 + 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/packages/util/package.json b/packages/util/package.json index b782e3eb2..95f7a50c1 100644 --- a/packages/util/package.json +++ b/packages/util/package.json @@ -52,6 +52,7 @@ "@ember/test-helpers": "^2.9.1", "@embroider/compat": "workspace:*", "@embroider/core": "workspace:*", + "@embroider/shared-internals": "workspace:*", "@embroider/test-setup": "workspace:*", "@embroider/test-support": "workspace:*", "@embroider/webpack": "workspace:*", @@ -91,7 +92,8 @@ "qunit": "^2.19.1", "qunit-dom": "^2.0.0", "typescript": "^5.1.6", - "webpack": "^5.74.0" + "webpack": "^5.74.0", + "semver": "^7.5.4" }, "engines": { "node": "12.* || 14.* || >= 16" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ece15bae2..53a6a225b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -785,6 +785,9 @@ importers: '@embroider/core': specifier: workspace:* version: link:../core + '@embroider/shared-internals': + specifier: workspace:* + version: link:../shared-internals '@embroider/test-setup': specifier: workspace:* version: link:../test-setup @@ -899,6 +902,9 @@ importers: qunit-dom: specifier: ^2.0.0 version: 2.0.0 + semver: + specifier: ^7.5.4 + version: 7.5.4 typescript: specifier: ^5.1.6 version: 5.3.2 diff --git a/tests/scenarios/package.json b/tests/scenarios/package.json index 62e77bf9b..97d3fa270 100644 --- a/tests/scenarios/package.json +++ b/tests/scenarios/package.json @@ -32,6 +32,7 @@ "private": true, "license": "MIT", "devDependencies": { + "qunit": "^2.20.0", "@babel/core": "^7.17.5", "@babel/plugin-proposal-decorators": "^7.17.2", "@babel/plugin-syntax-dynamic-import": "^7.8.3", From 77b5e498edbe45fad6731c07979cc0b70786d495 Mon Sep 17 00:00:00 2001 From: patrick Date: Tue, 5 Dec 2023 15:53:57 +0100 Subject: [PATCH 22/55] its 3 now? --- packages/compat/tests/audit.test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/compat/tests/audit.test.ts b/packages/compat/tests/audit.test.ts index d8474cf03..6de154578 100644 --- a/packages/compat/tests/audit.test.ts +++ b/packages/compat/tests/audit.test.ts @@ -317,7 +317,7 @@ describe('audit', function () { }); let result = await audit(); expect(result.findings).toEqual([]); - expect(Object.keys(result.modules).length).toBe(2); + expect(Object.keys(result.modules).length).toBe(3); }); test('finds missing component in standalone hbs', async function () { From 7e8b484dc88b0829212b014216f346b88b6608af Mon Sep 17 00:00:00 2001 From: patrick Date: Wed, 6 Dec 2023 09:39:10 +0100 Subject: [PATCH 23/55] check isV2Addon --- packages/vite/src/build.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/vite/src/build.ts b/packages/vite/src/build.ts index 803f9b875..456831a22 100644 --- a/packages/vite/src/build.ts +++ b/packages/vite/src/build.ts @@ -2,7 +2,6 @@ import type { Plugin } from 'vite'; import { join, dirname } from 'path'; import { createHash } from 'crypto'; import { fork } from 'child_process'; -import type { AddonMeta } from '@embroider/core'; import { ResolverLoader } from '@embroider/core'; import { existsSync, readdirSync, readFileSync, rmSync, writeFileSync, rmdirSync, copyFileSync } from 'fs'; import { mkdirpSync } from 'fs-extra'; @@ -68,7 +67,8 @@ export function build(): Plugin { engine.activeAddons.forEach(addon => { const pkg = resolverLoader.resolver.packageCache.ownerOfFile(addon.root); if (!pkg) return; - const assets = (pkg.meta as AddonMeta)['public-assets'] || {}; + if (!pkg?.isV2Addon()) return; + const assets = pkg.meta['public-assets'] || {}; Object.entries(assets).forEach(([path, dest]) => { mkdirpSync(dirname(join(options.dir!, dest))); copyFileSync(join(pkg.root, path), join(options.dir!, dest)); From 6ab75f3451abaadbb41ca21efd0f0b15b3feead3 Mon Sep 17 00:00:00 2001 From: patrick Date: Thu, 7 Dec 2023 14:48:48 +0100 Subject: [PATCH 24/55] update --- packages/compat/package.json | 3 +- packages/compat/src/compat-app-builder.ts | 44 +++ packages/compat/src/compat-app.ts | 6 +- packages/vite/index.d.ts | 1 + packages/vite/index.mjs | 1 + packages/vite/package.json | 4 +- packages/vite/src/assets.ts | 294 ++++++++++++++++++ packages/vite/src/build.ts | 27 +- packages/vite/src/optimize-deps.ts | 8 +- packages/vite/src/resolver.ts | 162 ++-------- packages/vite/src/virtual-files.ts | 125 -------- packages/vite/tests/optimize-deps.test.ts | 2 +- pnpm-lock.yaml | 12 +- tests/vite-app/app/components/fancy.gjs | 2 +- tests/vite-app/ember-cli-build.js | 4 +- tests/vite-app/{app => }/index.html | 0 tests/vite-app/package.json | 1 + .../vite-app/tests/integration/fany-test.gts | 4 +- tests/vite-app/vite.config.mts | 4 +- types/ember-cli/index.d.ts | 4 + 20 files changed, 425 insertions(+), 283 deletions(-) create mode 100644 packages/vite/src/assets.ts delete mode 100644 packages/vite/src/virtual-files.ts rename tests/vite-app/{app => }/index.html (100%) diff --git a/packages/compat/package.json b/packages/compat/package.json index 9ec3ac427..03c7a87ab 100644 --- a/packages/compat/package.json +++ b/packages/compat/package.json @@ -91,7 +91,8 @@ "typescript": "^5.1.6" }, "peerDependencies": { - "@embroider/core": "workspace:^" + "@embroider/core": "workspace:^", + "ember-cli": "*" }, "engines": { "node": "12.* || 14.* || >= 16" diff --git a/packages/compat/src/compat-app-builder.ts b/packages/compat/src/compat-app-builder.ts index 00f475f88..b8a2d4051 100644 --- a/packages/compat/src/compat-app-builder.ts +++ b/packages/compat/src/compat-app-builder.ts @@ -57,6 +57,7 @@ import type { TransformOptions } from '@babel/core'; import { MacrosConfig } from '@embroider/macros/src/node'; import SourceMapConcat from 'fast-sourcemap-concat'; import escapeRegExp from 'escape-string-regexp'; +import { configReplacePatterns } from 'ember-cli/lib/utilities/ember-app-utils'; import type CompatApp from './compat-app'; import { SyncDir } from './sync-dir'; @@ -992,6 +993,8 @@ export class CompatAppBuilder { let resolverConfig = this.resolverConfig(appFiles); this.addResolverConfig(resolverConfig); + this.addEnvironment(); + this.addLegacyAppInfo(); let babelConfig = this.babelConfig(resolverConfig); this.addBabelConfig(babelConfig); writeFileSync( @@ -1089,6 +1092,47 @@ export class CompatAppBuilder { outputJSONSync(join(locateEmbroiderWorkingDir(this.compatApp.root), 'resolver.json'), config, { spaces: 2 }); } + private addEnvironment() { + outputJSONSync(join(locateEmbroiderWorkingDir(this.compatApp.root), 'environment.json'), this.configTree.readConfig(), { spaces: 2 }); + } + + private addLegacyAppInfo() { + const config = this.configTree.readConfig() as any; + const options = {...this.compatApp.legacyEmberAppInstance.options, addons: this.compatApp.legacyEmberAppInstance.project.addons}; + const patterns = configReplacePatterns(options); + outputJSONSync(join(locateEmbroiderWorkingDir(this.compatApp.root), 'legacy-app-info.json'), { + options: { + outputPaths: this.compatApp.legacyEmberAppInstance.options.outputPaths, + autoRun: this.compatApp.legacyEmberAppInstance.options.autoRun, + storeConfigInMeta: this.compatApp.legacyEmberAppInstance.options.storeConfigInMeta, + minifyCSS: this.compatApp.legacyEmberAppInstance.options.minifyCSS + }, + project: { + root: this.compatApp.legacyEmberAppInstance.project.root, + pkg: this.compatApp.legacyEmberAppInstance.project.pkg + }, + configReplacePatterns: [ + '{{rootURL}}', + '{{content-for "head"}}', + '{{content-for "head-footer"}}', + '{{content-for "body"}}', + '{{content-for "body-footer"}}', + '{{content-for "test-head"}}', + '{{content-for "test-head-footer"}}', + '{{content-for "test-body"}}', + '{{content-for "test-body-footer"}}', + ].map((str) => { + const pattern = patterns.find(p => p.match.test(str))!; + return { + match: pattern?.match.source, + exact: str, + replacement: str.replace(pattern.match, pattern.replacement.bind(this, config)) + } + }) + }, + { spaces: 2 }); + } + private shouldSplitRoute(routeName: string) { return ( !this.options.splitAtRoutes || diff --git a/packages/compat/src/compat-app.ts b/packages/compat/src/compat-app.ts index 65432529a..aeca7523e 100644 --- a/packages/compat/src/compat-app.ts +++ b/packages/compat/src/compat-app.ts @@ -200,7 +200,7 @@ export default class CompatApp { private get indexTree() { let indexFilePath = this.legacyEmberAppInstance.options.outputPaths.app.html; - let index = buildFunnel(this.legacyEmberAppInstance.trees.app, { + let index = buildFunnel(this.legacyEmberAppInstance.trees.indexHtml || this.legacyEmberAppInstance.trees.app, { allowEmpty: true, include: [`index.html`], getDestinationPath: () => indexFilePath, @@ -835,7 +835,7 @@ export default class CompatApp { } } - private async instantiate(root: string, packageCache: RewrittenPackageCache, configTree: V1Config) { + private instantiate(root: string, packageCache: RewrittenPackageCache, configTree: V1Config) { let origAppPkg = this.appPackage(); let movedAppPkg = packageCache.withRewrittenDeps(origAppPkg); let workingDir = locateEmbroiderWorkingDir(this.root); @@ -861,7 +861,7 @@ export default class CompatApp { if (!this.active) { let { outputPath } = await prevStage.ready(); let packageCache = RewrittenPackageCache.shared('embroider', this.root); - this.active = await this.instantiate(outputPath, packageCache, inTrees.configTree); + this.active = this.instantiate(outputPath, packageCache, inTrees.configTree); resolve({ outputPath }); } await this.active.build(treePaths); diff --git a/packages/vite/index.d.ts b/packages/vite/index.d.ts index 697d4f91d..6c19d9bc0 100644 --- a/packages/vite/index.d.ts +++ b/packages/vite/index.d.ts @@ -6,3 +6,4 @@ export * from './src/template-tag.js'; export * from './src/addons.js'; export * from './src/optimize-deps.js'; export * from './src/build.js'; +export * from './src/assets.js'; diff --git a/packages/vite/index.mjs b/packages/vite/index.mjs index 697d4f91d..6c19d9bc0 100644 --- a/packages/vite/index.mjs +++ b/packages/vite/index.mjs @@ -6,3 +6,4 @@ export * from './src/template-tag.js'; export * from './src/addons.js'; export * from './src/optimize-deps.js'; export * from './src/build.js'; +export * from './src/assets.js'; diff --git a/packages/vite/package.json b/packages/vite/package.json index 96d4cb8c7..631d2ae68 100644 --- a/packages/vite/package.json +++ b/packages/vite/package.json @@ -11,8 +11,11 @@ }, "dependencies": { "@babel/core": "^7.22.9", + "@embroider/core": "workspace:^", + "@embroider/compat": "workspace:^", "@embroider/macros": "workspace:*", "@rollup/pluginutils": "^4.1.1", + "fast-glob": "^3.3.2", "assert-never": "^1.2.1", "content-tag": "^1.1.2", "debug": "^4.3.2", @@ -23,7 +26,6 @@ "terser": "^5.7.0" }, "devDependencies": { - "@embroider/core": "workspace:^", "@types/babel__core": "^7.20.1", "@types/debug": "^4.1.5", "@types/jsdom": "^16.2.11", diff --git a/packages/vite/src/assets.ts b/packages/vite/src/assets.ts new file mode 100644 index 000000000..c60ef3e7b --- /dev/null +++ b/packages/vite/src/assets.ts @@ -0,0 +1,294 @@ +import { + Asset, EmberAsset, Engine, + extensionsPattern, getAppMeta, + locateEmbroiderWorkingDir, ResolverLoader, + RewrittenPackageCache +} from '@embroider/core'; +import { join, dirname } from 'path'; +import { existsSync, readFileSync, writeFileSync } from 'fs'; +import { AppFiles } from '@embroider/core/src/app-files'; +import glob from 'fast-glob'; +import CompatApp from '@embroider/compat/src/compat-app'; +import { InMemoryAsset } from '@embroider/core/src/asset'; +import { Plugin } from 'vite'; + +type Options = { + root: string; + rewrittenPackageCache: RewrittenPackageCache; +}; + +const InMemoryAssets: Record = {}; + +let environment = 'production'; + +function getCompatAppBuilder({ rewrittenPackageCache, root }: Options) { + const workingDir = locateEmbroiderWorkingDir(dirname(root)); + const rewrittenApp = join(workingDir, 'rewritten-app'); + const options = require(join(workingDir, 'resolver.json')); + const env = require(join(workingDir, 'environment.json')); + const legacyApp = require(join(workingDir, 'legacy-app-info.json')); + legacyApp.project.configPath = () => join(root, 'config', 'environment.js'); + legacyApp.tests = true; + const compatApp = new CompatApp(legacyApp, options); + compatApp['config']['lastConfig'] = env; + + const compatAppBuilder = compatApp['instantiate'](rewrittenApp, rewrittenPackageCache, compatApp['config']); + + compatAppBuilder['assetIsValid'] = () => false; + + const engines = compatAppBuilder['partitionEngines'](root); + const extensions = compatAppBuilder['resolvableExtensions']().concat(['.ts', '.gts']); + + const appFiles = engines.map( + (engine: Engine) => { + const isTest = engine.sourcePath.endsWith('/tests'); + let files = glob.sync(`**/*{${extensions.join(',')}}`, { + cwd: engine.sourcePath + } + ); + if (isTest) { + files = files.map(f => `tests/${f}`); + } + files.push('config/environment.js'); + return new AppFiles( + engine, + new Set(files), + new Set(), + extensionsPattern(extensions), + compatAppBuilder['podModulePrefix']() + ) + } + ); + const assets: Asset[] = []; + for (let asset of compatAppBuilder['emberEntrypoints']('.')) { + if (asset.relativePath === 'index.html') { + (asset as EmberAsset).sourcePath = join(workingDir, 'ember-index.html'); + } + if (asset.relativePath === 'tests/index.html') { + (asset as EmberAsset).sourcePath = join(workingDir, 'ember-test-index.html'); + } + assets.push(asset); + } + return { compatAppBuilder, assets, appFiles }; +} + +function generateEmberHtml({ root }: Options) { + const cwd = dirname(root); + const workingDir = locateEmbroiderWorkingDir(cwd); + const legacyApp = require(join(workingDir, 'legacy-app-info.json')); + let html = readFileSync(join(cwd, 'index.html')).toString(); + let testhtml = readFileSync(join(cwd, 'tests', 'index.html')).toString(); + legacyApp.configReplacePatterns.forEach((pattern: any) => { + html = html.replace(new RegExp(pattern.exact, 'g'), pattern.replacement); + testhtml = testhtml.replace(new RegExp(pattern.exact, 'g'), pattern.replacement); + }); + legacyApp.configReplacePatterns.forEach((pattern: any) => { + html = html.replace(new RegExp(pattern.match, 'g'), pattern.replacement); + testhtml = testhtml.replace(new RegExp(pattern.match, 'g'), pattern.replacement); + }); + writeFileSync(join(workingDir, 'ember-index.html'), html); + writeFileSync(join(workingDir, 'ember-test-index.html'), testhtml); +} + +async function generateHtml({ rewrittenPackageCache, root }: Options, appOrTest: 'app' | 'test') { + const file = appOrTest === 'app' ? 'index.html' : 'tests/index.html'; + if (InMemoryAssets[file]) { + return InMemoryAssets[file]; + } + generateEmberHtml({ rewrittenPackageCache, root }); + const { compatAppBuilder, assets, appFiles } = getCompatAppBuilder({ rewrittenPackageCache, root }); + + const emberENV = compatAppBuilder['configTree'].readConfig().EmberENV; + + // TODO: improve internal code to only rebuild html file and not assets + const internalAssets = await compatAppBuilder['updateAssets'](assets, appFiles, emberENV); + const indexFile = internalAssets.find(a => (a as any).relativePath === file)!; + InMemoryAssets[file] = (indexFile as InMemoryAsset).source.toString(); + return InMemoryAssets[file]; +} + +async function generateAppEntries({ rewrittenPackageCache, root }: Options) { + const pkg = rewrittenPackageCache.get(root); + if (InMemoryAssets[`assets/${pkg.name}.js`]) { + return InMemoryAssets[`assets/${pkg.name}.js`]; + } + const { compatAppBuilder, assets, appFiles } = getCompatAppBuilder({ rewrittenPackageCache, root }); + + const emberENV = compatAppBuilder['configTree'].readConfig().EmberENV; + // TODO: improve code to only rebuild app asset + // const asset = assets.filter(a => (a as OnDiskAsset).relativePath.endsWith(`assets/${pkg.name}.js`)); + const internalAssets = await compatAppBuilder['updateAssets'](assets, appFiles, emberENV); + const appFile = internalAssets.find(a => (a as any).relativePath === `assets/${pkg.name}.js`)!; + InMemoryAssets[`assets/${pkg.name}.js`] = (appFile as InMemoryAsset).source.toString(); + InMemoryAssets[`assets/${pkg.name}.js`] += ` + import buildAppEnv from '../config/environment.js'; + function merge(source, target) { + for (const [key, val] of Object.entries(source)) { + if (val !== null && typeof val === \`object\`) { + target[key] ??=new val.__proto__.constructor(); + merge(val, target[key]); + } else { + target[key] = val; + } + } + return target; // we're replacing in-situ, so this is more for chaining than anything else + } + merge(buildAppEnv('${environment}'), require('${pkg.name}/config/environment').default) + `; + return InMemoryAssets[`assets/${pkg.name}.js`]; +} + +async function generateTestEntries({ rewrittenPackageCache, root }: Options) { + const { compatAppBuilder, assets, appFiles } = getCompatAppBuilder({ rewrittenPackageCache, root }); + + const emberENV = compatAppBuilder['configTree'].readConfig().EmberENV; + const internalAssets = await compatAppBuilder['updateAssets'](assets, appFiles, emberENV); + + const appFile = internalAssets.find(a => (a as any).relativePath === `assets/test.js`)!; + InMemoryAssets[`assets/test.js`] = (appFile as InMemoryAsset).source.toString(); + return InMemoryAssets[`assets/test.js`]; +} + +function findPublicAsset(relativePath: string, packageCache: RewrittenPackageCache) { + const cwd = process.cwd(); + const publicDir = join(cwd, 'public'); + // check public path + let pkg = packageCache.ownerOfFile(relativePath); + let p = join(publicDir, relativePath); + if (pkg && pkg.isV2App() && existsSync(p)) { + return '/' + p; + } + // check node_modules + p = join('node_modules', relativePath); + pkg = packageCache.ownerOfFile(p); + if (pkg && pkg.meta && pkg.isV2Addon() && pkg.meta['public-assets']) { + const asset = Object.entries(pkg.meta['public-assets']).find( + ([_key, a]) => a === relativePath + )?.[0]; + const local = asset ? join(cwd, p) : null; + if (local && existsSync(local)) { + return '/' + p + } + } +} + +export function assets(options?: { entryDirectories?: string[] }): Plugin { + const cwd = process.cwd(); + const root = join(cwd, 'app'); + const embroiderWorkingDir = locateEmbroiderWorkingDir(cwd); + const rewrittenApp = join(embroiderWorkingDir, 'rewritten-app'); + const resolverLoader = new ResolverLoader(cwd); + const appMeta = getAppMeta(cwd); + const tests = join(cwd, 'tests'); + const appIndex = join(cwd, 'index.html').replace(/\\/g, '/'); + const testsIndex = join(tests, 'index.html').replace(/\\/g, '/'); + + const entries = ['routes', 'templates', 'controllers'].concat(options?.entryDirectories || []); + + return { + name: 'assets', + enforce: 'pre', + configureServer(server) { + const watcher = server.watcher; + watcher.on('add', (filename) => { + if (entries.find(e => filename.startsWith(join(root, e)))) { + delete InMemoryAssets[`assets/${appMeta.name}.js`]; + const module = server.moduleGraph.getModuleById(join(root, `assets/${appMeta.name}.js`))!; + server.moduleGraph.invalidateModule(module); + } + if (filename.startsWith('tests/')) { + delete InMemoryAssets[`assets/test.js`]; + } + }); + watcher.on('unlink', (filename) => { + if (entries.find(e => filename.startsWith(join(root, e)))) { + delete InMemoryAssets[`assets/${appMeta.name}.js`]; + } + if (filename.startsWith(tests)) { + delete InMemoryAssets[`assets/test.js`]; + } + }); + watcher.on('change', (filename) => { + if (appIndex === filename) { + delete InMemoryAssets['index.html']; + } + if (testsIndex === filename) { + delete InMemoryAssets['tests/index.html']; + } + }); + environment = 'development'; + server.middlewares.use((req, _res, next) => { + // this is necessary so that /tests will load tests/index + // otherwise this would only happen when /tests/ or /tests/index.html is opened + // but then the tests will fail because the ember app will try to route to tests/ which does not exist + if (req.originalUrl?.match(/\/tests($|\?)/) || req.originalUrl?.startsWith('/tests/index.html')) { + environment = 'test'; + req.originalUrl = '/tests/index.html'; + (req as any).url = '/tests/index.html'; + return next(); + } + if (req.originalUrl?.includes('?')) { + return next(); + } + if (req.originalUrl && req.originalUrl.length > 1) { + const newUrl = findPublicAsset(req.originalUrl, resolverLoader.resolver.packageCache); + if (newUrl) { + req.originalUrl = newUrl; + (req as any).url = newUrl; + } + return next(); + } + return next(); + }); + }, + transformIndexHtml: { + order: 'pre', + async handler(_html, ctx) { + if (ctx.filename === appIndex) { + return await generateHtml({ rewrittenPackageCache: resolverLoader.resolver.packageCache, root }, 'app'); + } + if (ctx.filename === testsIndex) { + return await generateHtml({ rewrittenPackageCache: resolverLoader.resolver.packageCache, root }, 'test'); + } + }, + }, + load(id) { + id = id.split('?')[0]; + if (id.endsWith('/testem.js')) { + return ''; + } + if (id === join(cwd, 'config', 'environment.js').replace(/\\/g, '/')) { + const code = readFileSync(id).toString(); + return code.replace('module.exports = ', 'export default '); + } + if (id.startsWith(cwd + '/assets/')) { + if (id.endsWith(appMeta.name + '.js')) { + return generateAppEntries({ + root, + rewrittenPackageCache: resolverLoader.resolver.packageCache, + }); + } + if (id.endsWith('/test.js')) { + return ` + // fix for qunit + import '/assets/test-setup.js'; + import '/assets/test-entries.js' + `; + } + if (id.endsWith('/assets/test-setup.js')) { + return ` + import * as EmberTesting from 'ember-testing'; + define('ember-testing', () => EmberTesting); + `; + } + if (id.endsWith('/test-entries.js')) { + return generateTestEntries({ + root: tests, + rewrittenPackageCache: resolverLoader.resolver.packageCache, + }); + } + return readFileSync(rewrittenApp + id.replace(cwd + '/assets/', '/assets/').split('?')[0]).toString(); + } + } + } +} diff --git a/packages/vite/src/build.ts b/packages/vite/src/build.ts index 456831a22..7a852cb41 100644 --- a/packages/vite/src/build.ts +++ b/packages/vite/src/build.ts @@ -1,10 +1,10 @@ -import type { Plugin } from 'vite'; import { join, dirname } from 'path'; import { createHash } from 'crypto'; import { fork } from 'child_process'; import { ResolverLoader } from '@embroider/core'; -import { existsSync, readdirSync, readFileSync, rmSync, writeFileSync, rmdirSync, copyFileSync } from 'fs'; +import { existsSync, readdirSync, readFileSync, writeFileSync, copyFileSync } from 'fs'; import { mkdirpSync } from 'fs-extra'; +import { Plugin } from 'vite'; const cwd = process.cwd(); const embroiderDir = join(cwd, 'node_modules', '.embroider'); @@ -46,15 +46,17 @@ export function emberBuild(): Promise { }); } -export async function buildIfFileChanged(path: string | null | undefined): Promise { - if (path && (lockFiles.includes(path) || path === 'app/index.html')) { +export async function buildIfFileChanged(path: string | null | undefined): Promise { + if (path && (lockFiles.includes(path))) { const key = computeCacheKeyForFile(path); if (key !== getCacheKey(path)) { console.log(path + ' change requires rebuild, rebuilding...'); await emberBuild(); updateCacheKey(path, key); + return true; } } + return false; } export function build(): Plugin { @@ -63,6 +65,20 @@ export function build(): Plugin { return { name: 'embroider-builder', enforce: 'pre', + configureServer(server) { + const files = readdirSync('.'); + files.forEach(f => { + if (lockFiles.includes(f)) { + server.watcher.add('./' + f); + } + }); + server.watcher.on('change', async path => { + const needRestart = await buildIfFileChanged(path); + if (needRestart) { + server.restart(true); + } + }); + }, writeBundle(options) { engine.activeAddons.forEach(addon => { const pkg = resolverLoader.resolver.packageCache.ownerOfFile(addon.root); @@ -74,9 +90,6 @@ export function build(): Plugin { copyFileSync(join(pkg.root, path), join(options.dir!, dest)); }); }); - copyFileSync(join(options.dir!, 'app', 'index.html'), join(options.dir!, 'index.html')); - rmSync(join(options.dir!, 'app', 'index.html')); - rmdirSync(join(options.dir!, 'app')); }, async buildStart() { if (!existsSync(embroiderDir)) { diff --git a/packages/vite/src/optimize-deps.ts b/packages/vite/src/optimize-deps.ts index 3ac93fb46..4d04b1041 100644 --- a/packages/vite/src/optimize-deps.ts +++ b/packages/vite/src/optimize-deps.ts @@ -1,13 +1,17 @@ import { esBuildResolver } from './esbuild-resolver'; +import { addons } from './addons'; export interface OptimizeDeps { exclude?: string[]; [key: string]: unknown; } -export function optimizeDeps(): OptimizeDeps { +export function optimizeDeps(root: string): OptimizeDeps { return { - exclude: ['@embroider/macros'], + exclude: [ + '@embroider/macros', + ...addons(root) + ], extensions: ['.hbs', '.gjs'], esbuildOptions: { plugins: [esBuildResolver()], diff --git a/packages/vite/src/resolver.ts b/packages/vite/src/resolver.ts index 6e0c28590..a23f0e241 100644 --- a/packages/vite/src/resolver.ts +++ b/packages/vite/src/resolver.ts @@ -1,40 +1,29 @@ import type { PluginContext, ResolveIdResult } from 'rollup'; import type { Plugin } from 'vite'; import { join, resolve } from 'path'; -import type { Resolution, ResolverFunction, AddonMeta } from '@embroider/core'; -import { getAppMeta, ResolverLoader, virtualContent } from '@embroider/core'; -import { existsSync, readdirSync, readFileSync } from 'fs'; +import type { Resolution, ResolverFunction } from '@embroider/core'; +import { ResolverLoader, virtualContent } from '@embroider/core'; +import { readFileSync } from 'fs'; import { RollupModuleRequest, virtualPrefix } from './request'; import assertNever from 'assert-never'; -import { generateDefineContent, generateEntries, generateTestEntries } from './virtual-files'; -import { buildIfFileChanged, lockFiles } from './build'; const cwd = process.cwd(); const root = join(cwd, 'app'); -const publicDir = join(cwd, 'public'); -const tests = join(cwd, 'tests'); const embroiderDir = join(cwd, 'node_modules', '.embroider'); const rewrittenApp = join(embroiderDir, 'rewritten-app'); -const appIndex = resolve(root, 'index.html').replace(/\\/g, '/'); -const testsIndex = resolve(tests, 'index.html').replace(/\\/g, '/'); -const rewrittenAppIndex = resolve(rewrittenApp, 'index.html'); -const rewrittenTestIndex = resolve(rewrittenApp, 'tests', 'index.html'); - -let environment = 'production'; - type Options = { entryFolders: string[]; }; -export function resolver(options?: Options): Plugin { - let resolverLoader = new ResolverLoader(process.cwd()); - const engine = resolverLoader.resolver.options.engines[0]; - engine.root = root; - engine.activeAddons.forEach(addon => { - addon.canResolveFromFile = addon.canResolveFromFile.replace(rewrittenApp, cwd); - }); - const appMeta = getAppMeta(cwd); +export function resolver(_options?: Options): Plugin { + const resolverLoader = new ResolverLoader(process.cwd()); + resolverLoader.resolver.options.engines.forEach((engine) => { + engine.root = engine.root.replace(rewrittenApp, root); + engine.activeAddons.forEach(addon => { + addon.canResolveFromFile = addon.canResolveFromFile.replace(rewrittenApp, cwd); + }); + }) const pkg = resolverLoader.resolver.packageCache.get(cwd); pkg.packageJSON['ember-addon'] = pkg.packageJSON['ember-addon'] || {}; pkg.packageJSON['keywords'] = pkg.packageJSON['keywords'] || []; @@ -55,69 +44,13 @@ export function resolver(options?: Options): Plugin { return { name: 'embroider-resolver', enforce: 'pre', - configureServer(server) { - const files = readdirSync('.'); - files.forEach(f => { - if (lockFiles.includes(f)) { - server.watcher.add('./' + f); - } - }); - server.watcher.add('./app/index.html'); - server.watcher.on('change', async path => { - await buildIfFileChanged(path); - server.restart(true); - }); - environment = 'development'; - server.middlewares.use((req, _res, next) => { - if (req.originalUrl?.match(/\/tests($|\?)/) || req.originalUrl?.startsWith('/tests/index.html')) { - environment = 'test'; - if (!req.originalUrl.startsWith('/tests/index.html')) { - req.originalUrl = req.originalUrl.replace('/tests', '/tests/index.html'); - } - (req as any).url = req.originalUrl; - return next(); - } - if (req.originalUrl === '/') { - req.originalUrl = '/app/index.html'; - (req as any).url = '/app/index.html'; - return next(); - } - if (req.originalUrl?.includes('?')) { - return next(); - } - if (req.originalUrl && req.originalUrl.length > 1) { - let pkg = resolverLoader.resolver.packageCache.ownerOfFile(req.originalUrl); - let p = join(publicDir, req.originalUrl); - if (pkg && pkg.isV2App() && existsSync(p)) { - req.originalUrl = '/' + p; - (req as any).url = '/' + p; - return next(); - } - p = join('node_modules', req.originalUrl); - pkg = resolverLoader.resolver.packageCache.ownerOfFile(p); - if (pkg && pkg.meta && (pkg.meta as AddonMeta)['public-assets']) { - const asset = Object.entries((pkg.meta as any)['public-assets']).find( - ([_key, a]) => a === req.originalUrl - )?.[0]; - const local = asset ? join(cwd, p) : null; - if (local && existsSync(local)) { - req.originalUrl = '/' + p; - (req as any).url = '/' + p; - return next(); - } - } - return next(); - } - return next(); - }); - }, async resolveId(source, importer, options) { if (source.startsWith('/assets/')) { - return resolve(root, '.' + source); + return resolve(cwd, '.' + source); } - if (importer?.includes('/app/assets/') && !source.match(/-embroider-implicit-.*modules.js$/)) { + if (importer?.includes(`/${pkg.name}/assets/`) && !source.match(/-embroider-implicit-.*modules.js$/)) { if (source.startsWith('./')) { - return resolve(root, 'assets', source); + return resolve(cwd, 'assets', source); } } let request = RollupModuleRequest.from(source, importer, options.custom); @@ -136,64 +69,10 @@ export function resolver(options?: Options): Plugin { } }, load(id) { - id = id.split('?')[0]; - if (id.endsWith('/testem.js')) { - return ''; - } - if (id === join(cwd, 'config', 'environment.js').replace(/\\/g, '/')) { - const code = readFileSync(id).toString(); - return code.replace('module.exports = ', 'export default '); - } - if (id.startsWith(root + '/assets/')) { - if (id.endsWith(appMeta.name + '.js')) { - return generateEntries({ - environment, - root, - engine, - pkg, - entryFolders: options?.entryFolders, - }); - } - if (id.endsWith('/test.js')) { - return ` - // fix for qunit - import './test-setup.js'; - import './test-entries.js' - `; - } - if (id.endsWith('/test-setup.js')) { - return ` - import * as EmberTesting from 'ember-testing'; - define('ember-testing', () => EmberTesting); - `; - } - if (id.endsWith('/test-entries.js')) { - return generateTestEntries({ - pkg, - entryFolders: options?.entryFolders, - }); - } - return readFileSync(rewrittenApp + id.replace(root + '/assets/', '/assets/').split('?')[0]).toString(); - } - if (id.startsWith(virtualPrefix)) { - if (id.slice(virtualPrefix.length) === 'define') { - return generateDefineContent(); - } return virtualContent(id.slice(virtualPrefix.length), resolverLoader.resolver); } }, - transformIndexHtml: { - order: 'pre', - handler(_html, ctx) { - if (ctx.filename === appIndex) { - return readFileSync(rewrittenAppIndex).toString(); - } - if (ctx.filename === testsIndex) { - return readFileSync(rewrittenTestIndex).toString(); - } - }, - }, }; } @@ -215,7 +94,18 @@ function defaultResolve(context: PluginContext): ResolverFunction GlimmerManager); - define('${pkg.name}/data-adapter', () => DataAdapter); - - define('${pkg.name}/router', () => AppRouter); - ${deepMerge} - merge(buildAppEnv('${environment}'), AppEnv); - define('${pkg.name}/config/environment', () => AppEnv); - `; - const addonPatterns: string[] = []; - engine.activeAddons.forEach(addon => { - addonPatterns.push( - `'${relative(root + '/assets', addon.root)}/**/_app_/{${folders.join(',')}}/**/*.{js,ts,gjs,gts,hbs}'` - ); - }); - code += ` - const appModules = import.meta.glob([${globPattern}], { eager: true }); - Object.entries(appModules).forEach( - ([name, imp]) => define( - name.replace('../', - '${pkg.name}/').split('.')[0], () => imp - ) - ); - - const addonModules = import.meta.glob([${addonPatterns.join(',')}], { eager: true, exhaustive: true }); - Object.entries(addonModules).forEach( - ([name, imp]) => define( - '${pkg.name}' + name.split('_app_')[1].split('.')[0], () => imp - ) - ); - define('${pkg.name}/app', () => App); - if (!runningTests) { - require('${pkg.name}/app').default.create({"name":"${pkg.name}","version":"${pkg.version}+cf3ef785"}); - } - `; - return code; -} - -export function generateTestEntries({ pkg, entryFolders }: OptionsTest) { - const folders = ['helpers', 'integration', 'unit'].concat(entryFolders || []); - const globPattern = `'../../tests/{${folders.join(',')}}/**/*.{js,ts,gjs,gts,hbs}'`; - - let code = ` - import require from 'require'; - import define from '${virtualPrefix}define'; - import './vite-app.js'; - import './-embroider-implicit-test-modules.js'; - import * as helperIndex from '../../tests/helpers/index'; - import * as testHelper from '../../tests/test-helper'; - define('${pkg.name}/tests/helpers/index', () => helperIndex); - define('${pkg.name}/tests/test-helper', () => testHelper); - `; - code += ` - const appModules = import.meta.glob([${globPattern}], { eager: true }); - Object.entries(appModules).forEach( - ([name, imp]) => define( - name.replace('../../', - '${pkg.name}/').split('.')[0], () => imp - ) - ); - require('${pkg.name}/tests/test-helper'); - EmberENV.TESTS_FILE_LOADED = true; - `; - return code; -} - -export function generateDefineContent() { - return ` - export default window.define; - `; -} diff --git a/packages/vite/tests/optimize-deps.test.ts b/packages/vite/tests/optimize-deps.test.ts index 848c1094e..b2f522701 100644 --- a/packages/vite/tests/optimize-deps.test.ts +++ b/packages/vite/tests/optimize-deps.test.ts @@ -2,7 +2,7 @@ import { optimizeDeps } from '../src/optimize-deps'; describe('optimizeDeps', function () { test('should produce default output when invoked without arguments', function () { - const actual = optimizeDeps(); + const actual = optimizeDeps('.'); expect(actual).toMatchInlineSnapshot( { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 53a6a225b..9839593e7 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -917,6 +917,12 @@ importers: '@babel/core': specifier: ^7.22.9 version: 7.23.3(supports-color@8.1.1) + '@embroider/compat': + specifier: workspace:^ + version: link:../compat + '@embroider/core': + specifier: workspace:^ + version: link:../core '@embroider/macros': specifier: workspace:* version: link:../macros @@ -935,6 +941,9 @@ importers: esbuild: specifier: ^0.17.19 version: 0.17.19 + fast-glob: + specifier: ^3.3.2 + version: 3.3.2 fs-extra: specifier: ^10.0.0 version: 10.1.0 @@ -948,9 +957,6 @@ importers: specifier: ^5.7.0 version: 5.24.0 devDependencies: - '@embroider/core': - specifier: workspace:^ - version: link:../core '@types/babel__core': specifier: ^7.20.1 version: 7.20.5 diff --git a/tests/vite-app/app/components/fancy.gjs b/tests/vite-app/app/components/fancy.gjs index 058bc8366..fe61c41ea 100644 --- a/tests/vite-app/app/components/fancy.gjs +++ b/tests/vite-app/app/components/fancy.gjs @@ -1 +1 @@ - + diff --git a/tests/vite-app/ember-cli-build.js b/tests/vite-app/ember-cli-build.js index 53524b0d4..bd9e95dd4 100644 --- a/tests/vite-app/ember-cli-build.js +++ b/tests/vite-app/ember-cli-build.js @@ -5,7 +5,9 @@ const { compatBuild } = require('@embroider/compat'); module.exports = function (defaults) { const app = new EmberApp(defaults, { - // Add options here + trees: { + indexHtml: '.' + } }); return compatBuild(app, undefined, { diff --git a/tests/vite-app/app/index.html b/tests/vite-app/index.html similarity index 100% rename from tests/vite-app/app/index.html rename to tests/vite-app/index.html diff --git a/tests/vite-app/package.json b/tests/vite-app/package.json index 284c9fcb7..e26a47122 100644 --- a/tests/vite-app/package.json +++ b/tests/vite-app/package.json @@ -20,6 +20,7 @@ "lint:hbs:fix": "ember-template-lint . --fix", "lint:js": "eslint . --cache", "lint:js:fix": "eslint . --fix", + "start:prebuild": "ember b", "start:dev": "vite", "test": "concurrently \"npm:lint\" \"npm:test:*\" --names \"lint,test:\"", "test:ember": "ember test" diff --git a/tests/vite-app/tests/integration/fany-test.gts b/tests/vite-app/tests/integration/fany-test.gts index 8be7bb506..bdb715070 100644 --- a/tests/vite-app/tests/integration/fany-test.gts +++ b/tests/vite-app/tests/integration/fany-test.gts @@ -13,8 +13,10 @@ module('Integration | Component | Fany', (hooks) => { ); await rerender() - assert.dom().hasText('Yay for gjs!'); + assert.dom().hasText('Yay2 for gjs!'); }); }); + + diff --git a/tests/vite-app/vite.config.mts b/tests/vite-app/vite.config.mts index 968600ca7..9fcd8906a 100644 --- a/tests/vite-app/vite.config.mts +++ b/tests/vite-app/vite.config.mts @@ -6,6 +6,7 @@ import { templateTag, optimizeDeps, build, + assets, } from "@embroider/vite"; import { resolve } from "path"; import { babel } from "@rollup/plugin-babel"; @@ -20,6 +21,7 @@ export default defineConfig({ scripts(), resolver(), build(), + assets(), babel({ babelHelpers: "runtime", @@ -31,7 +33,7 @@ export default defineConfig({ extensions: [".gjs", ".js", ".hbs", ".ts", ".gts"], }), ], - optimizeDeps: optimizeDeps(), + optimizeDeps: optimizeDeps('.'), server: { watch: { ignored: ["!**/node_modules/.embroider/rewritten-app/**"], diff --git a/types/ember-cli/index.d.ts b/types/ember-cli/index.d.ts index b5e0ec9d0..504f86eaf 100644 --- a/types/ember-cli/index.d.ts +++ b/types/ember-cli/index.d.ts @@ -27,3 +27,7 @@ declare module 'ember-cli/lib/models/package-info-cache' { constructor(ui: any); } } + +declare module 'ember-cli/lib/utilities/ember-app-utils' { + export function configReplacePatterns(options: { env: string, autoRun: boolean, addons: any[] }): {match: RegExp, replacement: (config: any, match?: string, type?: string) => string}[] +} From 4e56d5b2be20543b03ecc22cacb5667127b5cb4d Mon Sep 17 00:00:00 2001 From: patrick Date: Thu, 7 Dec 2023 15:51:25 +0100 Subject: [PATCH 25/55] improvements when switching between app and tests --- packages/vite/src/assets.ts | 25 ++++++++++++++++++++----- packages/vite/src/resolver.ts | 20 +++++++++++++------- tests/vite-app/app/components/fancy.gjs | 2 +- 3 files changed, 34 insertions(+), 13 deletions(-) diff --git a/packages/vite/src/assets.ts b/packages/vite/src/assets.ts index c60ef3e7b..845311703 100644 --- a/packages/vite/src/assets.ts +++ b/packages/vite/src/assets.ts @@ -17,7 +17,7 @@ type Options = { rewrittenPackageCache: RewrittenPackageCache; }; -const InMemoryAssets: Record = {}; +let InMemoryAssets: Record = {}; let environment = 'production'; @@ -121,7 +121,7 @@ async function generateAppEntries({ rewrittenPackageCache, root }: Options) { const appFile = internalAssets.find(a => (a as any).relativePath === `assets/${pkg.name}.js`)!; InMemoryAssets[`assets/${pkg.name}.js`] = (appFile as InMemoryAsset).source.toString(); InMemoryAssets[`assets/${pkg.name}.js`] += ` - import buildAppEnv from '../config/environment.js'; + import buildAppEnv from '../../config/environment.js'; function merge(source, target) { for (const [key, val] of Object.entries(source)) { if (val !== null && typeof val === \`object\`) { @@ -190,6 +190,7 @@ export function assets(options?: { entryDirectories?: string[] }): Plugin { enforce: 'pre', configureServer(server) { const watcher = server.watcher; + // this is required because we do not open the /tests url directly and via the middleware watcher.on('add', (filename) => { if (entries.find(e => filename.startsWith(join(root, e)))) { delete InMemoryAssets[`assets/${appMeta.name}.js`]; @@ -214,6 +215,9 @@ export function assets(options?: { entryDirectories?: string[] }): Plugin { } if (testsIndex === filename) { delete InMemoryAssets['tests/index.html']; + server.ws.send({ + type: 'full-reload' + }); } }); environment = 'development'; @@ -225,6 +229,17 @@ export function assets(options?: { entryDirectories?: string[] }): Plugin { environment = 'test'; req.originalUrl = '/tests/index.html'; (req as any).url = '/tests/index.html'; + if (InMemoryAssets['index.html']) { + server.moduleGraph.invalidateAll(); + InMemoryAssets = {}; + } + return next(); + } + if (req.originalUrl === '/' || req.originalUrl === '/index.html') { + if (InMemoryAssets['tests/index.html']) { + server.moduleGraph.invalidateAll(); + InMemoryAssets = {}; + } return next(); } if (req.originalUrl?.includes('?')) { @@ -261,7 +276,7 @@ export function assets(options?: { entryDirectories?: string[] }): Plugin { const code = readFileSync(id).toString(); return code.replace('module.exports = ', 'export default '); } - if (id.startsWith(cwd + '/assets/')) { + if (id.startsWith(root + '/assets/')) { if (id.endsWith(appMeta.name + '.js')) { return generateAppEntries({ root, @@ -281,13 +296,13 @@ export function assets(options?: { entryDirectories?: string[] }): Plugin { define('ember-testing', () => EmberTesting); `; } - if (id.endsWith('/test-entries.js')) { + if (id.endsWith('/assets/test-entries.js')) { return generateTestEntries({ root: tests, rewrittenPackageCache: resolverLoader.resolver.packageCache, }); } - return readFileSync(rewrittenApp + id.replace(cwd + '/assets/', '/assets/').split('?')[0]).toString(); + return readFileSync(rewrittenApp + id.replace(root + '/assets/', '/assets/').split('?')[0]).toString(); } } } diff --git a/packages/vite/src/resolver.ts b/packages/vite/src/resolver.ts index a23f0e241..fd15fedeb 100644 --- a/packages/vite/src/resolver.ts +++ b/packages/vite/src/resolver.ts @@ -46,11 +46,17 @@ export function resolver(_options?: Options): Plugin { enforce: 'pre', async resolveId(source, importer, options) { if (source.startsWith('/assets/')) { - return resolve(cwd, '.' + source); + return resolve(root, '.' + source); } - if (importer?.includes(`/${pkg.name}/assets/`) && !source.match(/-embroider-implicit-.*modules.js$/)) { - if (source.startsWith('./')) { - return resolve(cwd, 'assets', source); + if (importer?.includes(`${root}/assets/`) && !source.match(/-embroider-implicit-.*modules.js$/)) { + if (source.startsWith('../tests')) { + source = resolve(root, source); + } + if (source.startsWith('.')) { + source = resolve(root, 'assets', source); + } + if (source.includes('/app/assets/')) { + return source; } } let request = RollupModuleRequest.from(source, importer, options.custom); @@ -93,7 +99,7 @@ function defaultResolve(context: PluginContext): ResolverFunctionYay2 for gjs! + From c700d68483dce65d8ee7dc0b5ef1c567f5ad1a4a Mon Sep 17 00:00:00 2001 From: patrick Date: Thu, 7 Dec 2023 15:52:03 +0100 Subject: [PATCH 26/55] add comments --- packages/vite/src/assets.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/vite/src/assets.ts b/packages/vite/src/assets.ts index 845311703..f902e114d 100644 --- a/packages/vite/src/assets.ts +++ b/packages/vite/src/assets.ts @@ -224,18 +224,19 @@ export function assets(options?: { entryDirectories?: string[] }): Plugin { server.middlewares.use((req, _res, next) => { // this is necessary so that /tests will load tests/index // otherwise this would only happen when /tests/ or /tests/index.html is opened - // but then the tests will fail because the ember app will try to route to tests/ which does not exist if (req.originalUrl?.match(/\/tests($|\?)/) || req.originalUrl?.startsWith('/tests/index.html')) { environment = 'test'; req.originalUrl = '/tests/index.html'; (req as any).url = '/tests/index.html'; if (InMemoryAssets['index.html']) { + // need to invalidate modules when switching between app and tests server.moduleGraph.invalidateAll(); InMemoryAssets = {}; } return next(); } if (req.originalUrl === '/' || req.originalUrl === '/index.html') { + // need to invalidate modules when switching between app and tests if (InMemoryAssets['tests/index.html']) { server.moduleGraph.invalidateAll(); InMemoryAssets = {}; From 9bf2ab512b49a89f1f9814bfe8abdce85a711c4a Mon Sep 17 00:00:00 2001 From: patrick Date: Thu, 7 Dec 2023 16:03:32 +0100 Subject: [PATCH 27/55] fix internals --- packages/compat/src/compat-app-builder.ts | 6 ++++-- packages/vite/src/assets.ts | 12 +++++++++++- packages/vite/src/build.ts | 20 ++------------------ tests/vite-app/vite.config.mts | 2 +- 4 files changed, 18 insertions(+), 22 deletions(-) diff --git a/packages/compat/src/compat-app-builder.ts b/packages/compat/src/compat-app-builder.ts index b8a2d4051..4cda3140b 100644 --- a/packages/compat/src/compat-app-builder.ts +++ b/packages/compat/src/compat-app-builder.ts @@ -117,8 +117,10 @@ export class CompatAppBuilder { } } - for (let asset of this.emberEntrypoints(treePaths.htmlTree)) { - assets.push(asset); + if (treePaths.htmlTree) { + for (let asset of this.emberEntrypoints(treePaths.htmlTree)) { + assets.push(asset); + } } return assets; diff --git a/packages/vite/src/assets.ts b/packages/vite/src/assets.ts index f902e114d..92833474c 100644 --- a/packages/vite/src/assets.ts +++ b/packages/vite/src/assets.ts @@ -305,6 +305,16 @@ export function assets(options?: { entryDirectories?: string[] }): Plugin { } return readFileSync(rewrittenApp + id.replace(root + '/assets/', '/assets/').split('?')[0]).toString(); } - } + }, + async writeBundle(options) { + const { compatAppBuilder } = getCompatAppBuilder({ + rewrittenPackageCache: resolverLoader.resolver.packageCache, + root: options.dir || join(cwd, 'dist') + }); + const assets = compatAppBuilder['gatherAssets']({ + publicTree: 'public', + } as any) + await compatAppBuilder['updateAssets'](assets, [], {}); + }, } } diff --git a/packages/vite/src/build.ts b/packages/vite/src/build.ts index 7a852cb41..e1a3453ee 100644 --- a/packages/vite/src/build.ts +++ b/packages/vite/src/build.ts @@ -1,9 +1,7 @@ -import { join, dirname } from 'path'; +import { join } from 'path'; import { createHash } from 'crypto'; import { fork } from 'child_process'; -import { ResolverLoader } from '@embroider/core'; -import { existsSync, readdirSync, readFileSync, writeFileSync, copyFileSync } from 'fs'; -import { mkdirpSync } from 'fs-extra'; +import { existsSync, readdirSync, readFileSync, writeFileSync } from 'fs'; import { Plugin } from 'vite'; const cwd = process.cwd(); @@ -60,8 +58,6 @@ export async function buildIfFileChanged(path: string | null | undefined): Promi } export function build(): Plugin { - let resolverLoader = new ResolverLoader(process.cwd()); - const engine = resolverLoader.resolver.options.engines[0]; return { name: 'embroider-builder', enforce: 'pre', @@ -79,18 +75,6 @@ export function build(): Plugin { } }); }, - writeBundle(options) { - engine.activeAddons.forEach(addon => { - const pkg = resolverLoader.resolver.packageCache.ownerOfFile(addon.root); - if (!pkg) return; - if (!pkg?.isV2Addon()) return; - const assets = pkg.meta['public-assets'] || {}; - Object.entries(assets).forEach(([path, dest]) => { - mkdirpSync(dirname(join(options.dir!, dest))); - copyFileSync(join(pkg.root, path), join(options.dir!, dest)); - }); - }); - }, async buildStart() { if (!existsSync(embroiderDir)) { await emberBuild(); diff --git a/tests/vite-app/vite.config.mts b/tests/vite-app/vite.config.mts index 9fcd8906a..ec381abb5 100644 --- a/tests/vite-app/vite.config.mts +++ b/tests/vite-app/vite.config.mts @@ -42,7 +42,7 @@ export default defineConfig({ build: { rollupOptions: { input: { - main: resolve(root, "index.html"), + main: resolve('.', "index.html"), tests: resolve(".", "tests/index.html"), }, }, From aa15b342237a716864cee3687a32be8622bad6e1 Mon Sep 17 00:00:00 2001 From: patrick Date: Thu, 7 Dec 2023 16:06:38 +0100 Subject: [PATCH 28/55] fix --- pnpm-lock.yaml | 550 ++++++++++++++++++++++++++++++++++++------------- 1 file changed, 404 insertions(+), 146 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9839593e7..20b6a9a93 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -13,9 +13,6 @@ importers: .: devDependencies: - '@embroider/release': - specifier: workspace:* - version: link:test-packages/release '@types/jest': specifier: ^29.2.0 version: 29.5.10 @@ -49,6 +46,9 @@ importers: prettier: specifier: ^2.3.1 version: 2.8.8 + release-plan: + specifier: ^0.4.1 + version: 0.4.1 typescript: specifier: ^5.1.6 version: 5.3.2 @@ -1076,57 +1076,6 @@ importers: specifier: ^5.38.1 version: 5.89.0 - test-packages/release: - dependencies: - '@ef4/lerna-changelog': - specifier: ^1.0.4 - version: 1.0.4 - '@octokit/rest': - specifier: ^19.0.8 - version: 19.0.13 - '@types/fs-extra': - specifier: ^9.0.12 - version: 9.0.13 - '@types/js-yaml': - specifier: ^4.0.5 - version: 4.0.9 - '@types/semver': - specifier: ^7.3.6 - version: 7.5.6 - '@types/yargs': - specifier: ^17.0.3 - version: 17.0.32 - assert-never: - specifier: ^1.2.1 - version: 1.2.1 - chalk: - specifier: ^4.1.1 - version: 4.1.2 - cli-highlight: - specifier: ^2.1.11 - version: 2.1.11 - execa: - specifier: ^4.0.3 - version: 4.1.0 - fs-extra: - specifier: ^10.0.0 - version: 10.1.0 - globby: - specifier: ^11.0.3 - version: 11.1.0 - js-yaml: - specifier: ^4.1.0 - version: 4.1.0 - latest-version: - specifier: ^5.0.0 - version: 5.1.0 - semver: - specifier: ^7.3.5 - version: 7.5.4 - yargs: - specifier: ^17.0.1 - version: 17.7.2 - test-packages/sample-transforms: dependencies: ember-cli-babel: @@ -3508,7 +3457,7 @@ packages: yargs: 11.1.1 transitivePeerDependencies: - supports-color - dev: false + dev: true /@ember-data/adapter@3.28.13(@babel/core@7.23.3): resolution: {integrity: sha512-AwLJTs+GvxX72vfP3edV0hoMLD9oPWJNbnqxakXVN9xGTuk6/TeGQLMrVU3222GCoMMNrJ357Nip7kZeFo4IdA==} @@ -5793,6 +5742,18 @@ packages: resolution: {integrity: sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==} dev: true + /@isaacs/cliui@8.0.2: + resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} + engines: {node: '>=12'} + dependencies: + string-width: 5.1.2 + string-width-cjs: /string-width@4.2.3 + strip-ansi: 7.1.0 + strip-ansi-cjs: /strip-ansi@6.0.1 + wrap-ansi: 8.1.0 + wrap-ansi-cjs: /wrap-ansi@7.0.0 + dev: true + /@istanbuljs/load-nyc-config@1.1.0: resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==} engines: {node: '>=8'} @@ -6102,10 +6063,48 @@ packages: '@nodelib/fs.scandir': 2.1.5 fastq: 1.15.0 + /@npmcli/git@5.0.3: + resolution: {integrity: sha512-UZp9NwK+AynTrKvHn5k3KviW/hA5eENmFsu3iAPe7sWRt0lFUdsY/wXIYjpDFe7cdSNwOIzbObfwgt6eL5/2zw==} + engines: {node: ^16.14.0 || >=18.0.0} + dependencies: + '@npmcli/promise-spawn': 7.0.0 + lru-cache: 10.1.0 + npm-pick-manifest: 9.0.0 + proc-log: 3.0.0 + promise-inflight: 1.0.1(bluebird@3.7.2) + promise-retry: 2.0.1 + semver: 7.5.4 + which: 4.0.0 + transitivePeerDependencies: + - bluebird + dev: true + + /@npmcli/package-json@5.0.0: + resolution: {integrity: sha512-OI2zdYBLhQ7kpNPaJxiflofYIpkNLi+lnGdzqUOfRmCF3r2l1nadcjtCYMJKv/Utm/ZtlffaUuTiAktPHbc17g==} + engines: {node: ^16.14.0 || >=18.0.0} + dependencies: + '@npmcli/git': 5.0.3 + glob: 10.3.10 + hosted-git-info: 7.0.1 + json-parse-even-better-errors: 3.0.1 + normalize-package-data: 6.0.0 + proc-log: 3.0.0 + semver: 7.5.4 + transitivePeerDependencies: + - bluebird + dev: true + + /@npmcli/promise-spawn@7.0.0: + resolution: {integrity: sha512-wBqcGsMELZna0jDblGd7UXgOby45TQaMWmbFwWX+SEotk4HV6zG2t6rT9siyLhPk4P6YYqgfL1UO8nMWDBVJXQ==} + engines: {node: ^16.14.0 || >=18.0.0} + dependencies: + which: 4.0.0 + dev: true + /@octokit/auth-token@3.0.4: resolution: {integrity: sha512-TWFX7cZF2LXoCvdmJWY7XVPi74aSY0+FfBZNSXEXFkMpjcqsQwDSYVv5FhRFaI0V1ECnwbz4j59T/G+rXNWaIQ==} engines: {node: '>= 14'} - dev: false + dev: true /@octokit/core@4.2.4: resolution: {integrity: sha512-rYKilwgzQ7/imScn3M9/pFfUf4I1AZEH3KhyJmtPdE2zfaXAn2mFfUy4FbKewzc2We5y/LlKLj36fWJLKC2SIQ==} @@ -6120,7 +6119,7 @@ packages: universal-user-agent: 6.0.1 transitivePeerDependencies: - encoding - dev: false + dev: true /@octokit/endpoint@7.0.6: resolution: {integrity: sha512-5L4fseVRUsDFGR00tMWD/Trdeeihn999rTMGRMC1G/Ldi1uWlWJzI98H4Iak5DB/RVvQuyMYKqSK/R6mbSOQyg==} @@ -6129,7 +6128,7 @@ packages: '@octokit/types': 9.3.2 is-plain-object: 5.0.0 universal-user-agent: 6.0.1 - dev: false + dev: true /@octokit/graphql@5.0.6: resolution: {integrity: sha512-Fxyxdy/JH0MnIB5h+UQ3yCoh1FG4kWXfFKkpWqjZHw/p+Kc8Y44Hu/kCgNBT6nU1shNumEchmW/sUO1JuQnPcw==} @@ -6140,11 +6139,11 @@ packages: universal-user-agent: 6.0.1 transitivePeerDependencies: - encoding - dev: false + dev: true /@octokit/openapi-types@18.1.1: resolution: {integrity: sha512-VRaeH8nCDtF5aXWnjPuEMIYf1itK/s3JYyJcWFJT8X9pSNnBtriDf7wlEWsGuhPLl4QIH4xM8fqTXDwJ3Mu6sw==} - dev: false + dev: true /@octokit/plugin-paginate-rest@6.1.2(@octokit/core@4.2.4): resolution: {integrity: sha512-qhrmtQeHU/IivxucOV1bbI/xZyC/iOBhclokv7Sut5vnejAIAEXVcGQeRpQlU39E0WwK9lNvJHphHri/DB6lbQ==} @@ -6155,7 +6154,7 @@ packages: '@octokit/core': 4.2.4 '@octokit/tsconfig': 1.0.2 '@octokit/types': 9.3.2 - dev: false + dev: true /@octokit/plugin-request-log@1.0.4(@octokit/core@4.2.4): resolution: {integrity: sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA==} @@ -6163,7 +6162,7 @@ packages: '@octokit/core': '>=3' dependencies: '@octokit/core': 4.2.4 - dev: false + dev: true /@octokit/plugin-rest-endpoint-methods@7.2.3(@octokit/core@4.2.4): resolution: {integrity: sha512-I5Gml6kTAkzVlN7KCtjOM+Ruwe/rQppp0QU372K1GP7kNOYEKe8Xn5BW4sE62JAHdwpq95OQK/qGNyKQMUzVgA==} @@ -6173,7 +6172,7 @@ packages: dependencies: '@octokit/core': 4.2.4 '@octokit/types': 10.0.0 - dev: false + dev: true /@octokit/request-error@3.0.3: resolution: {integrity: sha512-crqw3V5Iy2uOU5Np+8M/YexTlT8zxCfI+qu+LxUB7SZpje4Qmx3mub5DfEKSO8Ylyk0aogi6TYdf6kxzh2BguQ==} @@ -6182,7 +6181,7 @@ packages: '@octokit/types': 9.3.2 deprecation: 2.3.1 once: 1.4.0 - dev: false + dev: true /@octokit/request@6.2.8: resolution: {integrity: sha512-ow4+pkVQ+6XVVsekSYBzJC0VTVvh/FCTUUgTsboGq+DTeWdyIFV8WSCdo0RIxk6wSkBTHqIK1mYuY7nOBXOchw==} @@ -6196,7 +6195,7 @@ packages: universal-user-agent: 6.0.1 transitivePeerDependencies: - encoding - dev: false + dev: true /@octokit/rest@19.0.13: resolution: {integrity: sha512-/EzVox5V9gYGdbAI+ovYj3nXQT1TtTHRT+0eZPcuC05UFSWO3mdO9UY1C0i2eLF9Un1ONJkAk+IEtYGAC+TahA==} @@ -6208,23 +6207,30 @@ packages: '@octokit/plugin-rest-endpoint-methods': 7.2.3(@octokit/core@4.2.4) transitivePeerDependencies: - encoding - dev: false + dev: true /@octokit/tsconfig@1.0.2: resolution: {integrity: sha512-I0vDR0rdtP8p2lGMzvsJzbhdOWy405HcGovrspJ8RRibHnyRgggUSNO5AIox5LmqiwmatHKYsvj6VGFHkqS7lA==} - dev: false + dev: true /@octokit/types@10.0.0: resolution: {integrity: sha512-Vm8IddVmhCgU1fxC1eyinpwqzXPEYu0NrYzD3YZjlGjyftdLBTeqNblRC0jmJmgxbJIsQlyogVeGnrNaaMVzIg==} dependencies: '@octokit/openapi-types': 18.1.1 - dev: false + dev: true /@octokit/types@9.3.2: resolution: {integrity: sha512-D4iHGTdAnEEVsB8fl95m1hiz7D5YiRdQ9b/OEb3BYRVwbLsGHcRVPz+u+BgRLNk0Q0/4iZCBqDN96j2XNxfXrA==} dependencies: '@octokit/openapi-types': 18.1.1 - dev: false + dev: true + + /@pkgjs/parseargs@0.11.0: + resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} + engines: {node: '>=14'} + requiresBuild: true + dev: true + optional: true /@pnpm/constants@7.1.1: resolution: {integrity: sha512-31pZqMtjwV+Vaq7MaPrT1EoDFSYwye3dp6BiHIGRJmVThCQwySRKM7hCvqqI94epNkqFAAYoWrNynWoRYosGdw==} @@ -6369,6 +6375,7 @@ packages: /@sindresorhus/is@0.14.0: resolution: {integrity: sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==} engines: {node: '>=6'} + dev: true /@sindresorhus/is@0.7.0: resolution: {integrity: sha512-ONhaKPIufzzrlNbqtWFFd+jlnemX6lJAgq9ZeiZtS7I1PIf/la7CW4m83rTXRnVnsMbW2k56pGYu7AUFJD9Pow==} @@ -6395,6 +6402,7 @@ packages: engines: {node: '>=6'} dependencies: defer-to-connect: 1.1.3 + dev: true /@tootallnate/once@1.1.2: resolution: {integrity: sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==} @@ -6575,6 +6583,7 @@ packages: resolution: {integrity: sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==} dependencies: '@types/node': 15.14.9 + dev: true /@types/glob@7.2.0: resolution: {integrity: sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==} @@ -6626,6 +6635,7 @@ packages: /@types/js-yaml@4.0.9: resolution: {integrity: sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg==} + dev: true /@types/jsdom@16.2.15: resolution: {integrity: sha512-nwF87yjBKuX/roqGYerZZM0Nv1pZDMAT5YhOHYeM/72Fic+VEqJh4nyoqoapzJnW3pUlfxPY5FhgsJtM+dRnQQ==} @@ -6646,6 +6656,7 @@ packages: resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==} dependencies: '@types/node': 15.14.9 + dev: true /@types/lodash@4.14.202: resolution: {integrity: sha512-OvlIYQK9tNneDlS0VN54LLd5uiPCBOp7gS5Z0f1mjoJYBrtStzgmJBxONW3U6OZqdtNzZPmn9BS/7WI7BFFcFQ==} @@ -6724,6 +6735,7 @@ packages: resolution: {integrity: sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==} dependencies: '@types/node': 15.14.9 + dev: true /@types/rimraf@2.0.5: resolution: {integrity: sha512-YyP+VfeaqAyFmXoTh3HChxOQMyjByRMsHU7kc5KOJkSlXudhMhQIALbYV7rHh/l8d2lX3VUQzprrcAgWdRuU8g==} @@ -6737,6 +6749,7 @@ packages: /@types/semver@7.5.6: resolution: {integrity: sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==} + dev: true /@types/send@0.17.4: resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==} @@ -7311,14 +7324,14 @@ packages: engines: {node: '>= 4.0.0'} dependencies: es6-promisify: 5.0.0 - dev: false + dev: true /agent-base@4.3.0: resolution: {integrity: sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==} engines: {node: '>= 4.0.0'} dependencies: es6-promisify: 5.0.0 - dev: false + dev: true /agent-base@6.0.2(supports-color@8.1.1): resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} @@ -7333,7 +7346,7 @@ packages: engines: {node: '>= 4.0.0'} dependencies: humanize-ms: 1.2.1 - dev: false + dev: true /aggregate-error@3.1.0: resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} @@ -7442,6 +7455,11 @@ packages: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} + /ansi-regex@6.0.1: + resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} + engines: {node: '>=12'} + dev: true + /ansi-styles@2.2.1: resolution: {integrity: sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==} engines: {node: '>=0.10.0'} @@ -7462,6 +7480,11 @@ packages: resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} engines: {node: '>=10'} + /ansi-styles@6.2.1: + resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} + engines: {node: '>=12'} + dev: true + /ansi-to-html@0.6.15: resolution: {integrity: sha512-28ijx2aHJGdzbs+O5SNQF65r6rrKYnkuwTYm8lZlChuoJ9P1vVzIpWO20sQTqTPDXYp6NFwk326vApTtLVFXpQ==} engines: {node: '>=8.0.0'} @@ -7474,7 +7497,7 @@ packages: /any-promise@1.3.0: resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} - dev: false + dev: true /anymatch@2.0.0: resolution: {integrity: sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==} @@ -7500,7 +7523,7 @@ packages: /aproba@1.2.0: resolution: {integrity: sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==} - dev: false + dev: true /aproba@2.0.0: resolution: {integrity: sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==} @@ -8503,7 +8526,7 @@ packages: /before-after-hook@2.2.3: resolution: {integrity: sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==} - dev: false + dev: true /big.js@5.2.2: resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==} @@ -9422,7 +9445,7 @@ packages: ssri: 6.0.2 unique-filename: 1.1.1 y18n: 4.0.3 - dev: false + dev: true /cache-base@1.0.1: resolution: {integrity: sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==} @@ -9461,6 +9484,7 @@ packages: lowercase-keys: 2.0.0 normalize-url: 4.5.1 responselike: 1.0.2 + dev: true /calculate-cache-key-for-tree@2.0.0: resolution: {integrity: sha512-Quw8a6y8CPmRd6eU+mwypktYCwUcf8yVFIRbNZ6tPQEckX9yd+EBVEPC/GSZZrMWH9e7Vz4pT7XhpmyApRByLQ==} @@ -9492,7 +9516,7 @@ packages: /camelcase@4.1.0: resolution: {integrity: sha512-FxAv7HpHrXbh3aPo4o2qxHay2lkLY3x5Mw3KeE4KQE8ysVfziWeRZDwcjauvwBSGEC/nXUPzZy8zeh4HokqOnw==} engines: {node: '>=4'} - dev: false + dev: true /camelcase@5.3.1: resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} @@ -9584,7 +9608,7 @@ packages: /chownr@1.1.4: resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} - dev: false + dev: true /chownr@2.0.0: resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} @@ -9670,7 +9694,7 @@ packages: parse5: 5.1.1 parse5-htmlparser2-tree-adapter: 6.0.1 yargs: 16.2.0 - dev: false + dev: true /cli-spinners@2.9.2: resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==} @@ -9710,7 +9734,7 @@ packages: string-width: 2.1.1 strip-ansi: 4.0.0 wrap-ansi: 2.1.0 - dev: false + dev: true /cliui@7.0.4: resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} @@ -9737,6 +9761,7 @@ packages: resolution: {integrity: sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==} dependencies: mimic-response: 1.0.1 + dev: true /clone@1.0.4: resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} @@ -9791,7 +9816,7 @@ packages: /code-point-at@1.1.0: resolution: {integrity: sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==} engines: {node: '>=0.10.0'} - dev: false + dev: true /collect-v8-coverage@1.0.2: resolution: {integrity: sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==} @@ -9922,7 +9947,7 @@ packages: inherits: 2.0.4 readable-stream: 2.3.8 typedarray: 0.0.6 - dev: false + dev: true /concurrently@7.6.0: resolution: {integrity: sha512-BKtRgvcJGeZ4XttiDiNcFiRlxoAeZOseqUvyYRUp/Vtd+9p1ULmeoSqGsDA+2ivdeDFpqrJvGvmI+StKfKl5hw==} @@ -10205,7 +10230,7 @@ packages: mkdirp: 0.5.6 rimraf: 2.7.1 run-queue: 1.0.3 - dev: false + dev: true /copy-dereference@1.0.0: resolution: {integrity: sha512-40TSLuhhbiKeszZhK9LfNdazC67Ue4kq/gGwN5sdxEUWPXTIMmKmGmgD9mPfNKVAeecEW+NfEIpBaZoACCQLLw==} @@ -10423,7 +10448,7 @@ packages: /cyclist@1.0.2: resolution: {integrity: sha512-0sVXIohTfLqVIW3kb/0n6IiWF3Ifj5nm2XaSrLq2DI6fKIGa2fYAZdk917rUneaeLVpYfFcyXE2ft0fe3remsA==} - dev: false + dev: true /dag-map@2.0.2: resolution: {integrity: sha512-xnsprIzYuDeiyu5zSKwilV/ajRHxnoMlAhEREfyfTgTSViMVY2fGP1ZcHJbtwup26oCkofySU/m6oKJ3HrkW7w==} @@ -10479,7 +10504,7 @@ packages: optional: true dependencies: ms: 2.0.0 - dev: false + dev: true /debug@3.2.7: resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} @@ -10514,6 +10539,7 @@ packages: /decamelize@1.2.0: resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} engines: {node: '>=0.10.0'} + dev: true /decamelize@5.0.1: resolution: {integrity: sha512-VfxadyCECXgQlkoEAjeghAr5gY3Hf+IKjKb+X8tGVDtveCjN+USwprd2q3QXBR9T1+x2DG0XZF5/w+7HAtSaXA==} @@ -10532,6 +10558,7 @@ packages: engines: {node: '>=4'} dependencies: mimic-response: 1.0.1 + dev: true /dedent@1.5.1: resolution: {integrity: sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg==} @@ -10545,6 +10572,7 @@ packages: /deep-extend@0.6.0: resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} engines: {node: '>=4.0.0'} + dev: true /deep-is@0.1.4: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} @@ -10561,6 +10589,7 @@ packages: /defer-to-connect@1.1.3: resolution: {integrity: sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==} + dev: true /define-data-property@1.1.1: resolution: {integrity: sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==} @@ -10628,7 +10657,7 @@ packages: /deprecation@2.3.1: resolution: {integrity: sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==} - dev: false + dev: true /dequal@2.0.3: resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} @@ -10743,6 +10772,7 @@ packages: /duplexer3@0.1.5: resolution: {integrity: sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==} + dev: true /duplexify@3.7.1: resolution: {integrity: sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==} @@ -10751,7 +10781,11 @@ packages: inherits: 2.0.4 readable-stream: 2.3.8 stream-shift: 1.0.1 - dev: false + dev: true + + /eastasianwidth@0.2.0: + resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + dev: true /editions@1.3.4: resolution: {integrity: sha512-gzao+mxnYDzIysXKMQi/+M1mjy/rjestjg6OPoYTtI+3Izp23oiGZitsl9lPDPiTGXbcSIk1iJWhliSaglxnUg==} @@ -14041,6 +14075,10 @@ packages: /emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + /emoji-regex@9.2.2: + resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + dev: true + /emojis-list@3.0.0: resolution: {integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==} engines: {node: '>= 4'} @@ -14053,7 +14091,7 @@ packages: resolution: {integrity: sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==} dependencies: iconv-lite: 0.6.3 - dev: false + dev: true /end-of-stream@1.4.4: resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} @@ -14117,7 +14155,11 @@ packages: /err-code@1.1.2: resolution: {integrity: sha512-CJAN+O0/yA1CKfRn9SXOGctSpEM7DCon/r/5r2eXFMY2zCCJBasFhcM5I+1kh3Ap11FsQCX+vGHceNPvpWKhoA==} - dev: false + dev: true + + /err-code@2.0.3: + resolution: {integrity: sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==} + dev: true /errlop@2.2.0: resolution: {integrity: sha512-e64Qj9+4aZzjzzFpZC7p5kmm/ccCrbLhAJplhsDXQFs87XTsXwOpH4s1Io2s90Tau/8r2j9f4l/thhDevRjzxw==} @@ -14209,13 +14251,13 @@ packages: /es6-promise@4.2.8: resolution: {integrity: sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==} - dev: false + dev: true /es6-promisify@5.0.0: resolution: {integrity: sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ==} dependencies: es6-promise: 4.2.8 - dev: false + dev: true /esbuild@0.17.19: resolution: {integrity: sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==} @@ -14946,7 +14988,7 @@ packages: p-finally: 1.0.0 signal-exit: 3.0.7 strip-eof: 1.0.0 - dev: false + dev: true /execa@1.0.0: resolution: {integrity: sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==} @@ -15257,7 +15299,7 @@ packages: /figgy-pudding@3.5.2: resolution: {integrity: sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==} - dev: false + dev: true /figures@2.0.0: resolution: {integrity: sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA==} @@ -15568,7 +15610,7 @@ packages: dependencies: inherits: 2.0.4 readable-stream: 2.3.8 - dev: false + dev: true /focus-trap@6.9.4: resolution: {integrity: sha512-v2NTsZe2FF59Y+sDykKY+XjqZ0cPfhq/hikWVL88BqLivnNiEffAsac6rP6H45ff9wG9LL5ToiDqrLEP9GX9mw==} @@ -15594,6 +15636,14 @@ packages: resolution: {integrity: sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==} engines: {node: '>=0.10.0'} + /foreground-child@3.1.1: + resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==} + engines: {node: '>=14'} + dependencies: + cross-spawn: 7.0.3 + signal-exit: 4.1.0 + dev: true + /form-data@3.0.1: resolution: {integrity: sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==} engines: {node: '>= 6'} @@ -15630,6 +15680,7 @@ packages: dependencies: inherits: 2.0.4 readable-stream: 2.3.8 + dev: true /fs-extra@0.24.0: resolution: {integrity: sha512-w1RvhdLZdU9V3vQdL+RooGlo6b9R9WVoBanOfoJvosWlqSKvrjFlci2oVhwvLwZXBtM7khyPvZ8r3fwsim3o0A==} @@ -15765,7 +15816,7 @@ packages: iferr: 0.1.5 imurmurhash: 0.1.4 readable-stream: 2.3.8 - dev: false + dev: true /fs.realpath@1.0.0: resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} @@ -15820,7 +15871,7 @@ packages: /get-caller-file@1.0.3: resolution: {integrity: sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==} - dev: false + dev: true /get-caller-file@2.0.5: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} @@ -15856,6 +15907,7 @@ packages: /get-stream@3.0.0: resolution: {integrity: sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ==} engines: {node: '>=4'} + dev: true /get-stream@4.1.0: resolution: {integrity: sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==} @@ -15913,6 +15965,18 @@ packages: /glob-to-regexp@0.4.1: resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} + /glob@10.3.10: + resolution: {integrity: sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==} + engines: {node: '>=16 || 14 >=14.17'} + hasBin: true + dependencies: + foreground-child: 3.1.1 + jackspeak: 2.3.6 + minimatch: 9.0.3 + minipass: 7.0.4 + path-scurry: 1.10.1 + dev: true + /glob@5.0.15: resolution: {integrity: sha512-c9IPMazfRITpmAAKi22dK1VKxGDX9ehhqfABDriL/lzO92xcUKEJPQHrVA/2YHSNFB4iFlykVmWvwo48nr3OxA==} dependencies: @@ -16104,6 +16168,7 @@ packages: p-cancelable: 1.1.0 to-readable-stream: 1.0.0 url-parse-lax: 3.0.0 + dev: true /graceful-fs@4.2.11: resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} @@ -16265,7 +16330,7 @@ packages: /highlight.js@10.7.3: resolution: {integrity: sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==} - dev: false + dev: true /home-or-tmp@2.0.0: resolution: {integrity: sha512-ycURW7oUxE2sNiPVw1HVEFsW+ecOpJ5zaj7eC0RlwhibhRBod20muUN8qu/gzx956YrLolVvs1MTXwKgC2rVEg==} @@ -16305,6 +16370,13 @@ packages: lru-cache: 7.18.3 dev: true + /hosted-git-info@7.0.1: + resolution: {integrity: sha512-+K84LB1DYwMHoHSgaOY/Jfhw3ucPmSET5v98Ke/HdNSw4a0UktWzyW1mjhjpuxxTqOOsfWT/7iVshHmVZ4IpOA==} + engines: {node: ^16.14.0 || >=18.0.0} + dependencies: + lru-cache: 10.1.0 + dev: true + /html-encoding-sniffer@2.0.1: resolution: {integrity: sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==} engines: {node: '>=10'} @@ -16329,9 +16401,11 @@ packages: /http-cache-semantics@3.8.1: resolution: {integrity: sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w==} + dev: true /http-cache-semantics@4.1.1: resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==} + dev: true /http-errors@1.6.3: resolution: {integrity: sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==} @@ -16363,7 +16437,7 @@ packages: debug: 3.1.0 transitivePeerDependencies: - supports-color - dev: false + dev: true /http-proxy-agent@4.0.1(supports-color@8.1.1): resolution: {integrity: sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==} @@ -16404,7 +16478,7 @@ packages: debug: 3.2.7 transitivePeerDependencies: - supports-color - dev: false + dev: true /https-proxy-agent@5.0.1(supports-color@8.1.1): resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} @@ -16435,7 +16509,7 @@ packages: resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==} dependencies: ms: 2.1.3 - dev: false + dev: true /iconv-lite@0.4.24: resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} @@ -16463,7 +16537,7 @@ packages: /iferr@0.1.5: resolution: {integrity: sha512-DUNFN5j7Tln0D+TxzloUjKB+CtVu6myn0JEFak6dG18mNt9YkQ6lzGCdafwofISZ1lLF3xRHJ98VKy9ynkcFaA==} - dev: false + dev: true /ignore@4.0.6: resolution: {integrity: sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==} @@ -16648,7 +16722,7 @@ packages: /invert-kv@2.0.0: resolution: {integrity: sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==} engines: {node: '>=4'} - dev: false + dev: true /invert-kv@3.0.1: resolution: {integrity: sha512-CYdFeFexxhv/Bcny+Q0BfOV+ltRlJcd4BBZBYFX/O0u4npJrgZtIcjokegtiSMAvlMTJ+Koq0GBCc//3bueQxw==} @@ -16657,7 +16731,7 @@ packages: /ip@1.1.5: resolution: {integrity: sha512-rBtCAQAJm8A110nbwn6YdveUnuZH3WrC36IwkRXxDnq53JvXA2NVQvB7IHyKomxK1MJ4VDNw3UtFDdXQ+AvLYA==} - dev: false + dev: true /ipaddr.js@1.9.1: resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} @@ -16766,7 +16840,7 @@ packages: engines: {node: '>=0.10.0'} dependencies: number-is-nan: 1.0.1 - dev: false + dev: true /is-fullwidth-code-point@2.0.0: resolution: {integrity: sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==} @@ -16867,6 +16941,7 @@ packages: /is-plain-object@5.0.0: resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==} engines: {node: '>=0.10.0'} + dev: true /is-potential-custom-element-name@1.0.1: resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} @@ -16979,6 +17054,11 @@ packages: /isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + /isexe@3.1.1: + resolution: {integrity: sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==} + engines: {node: '>=16'} + dev: true + /isobject@2.1.0: resolution: {integrity: sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==} engines: {node: '>=0.10.0'} @@ -17072,6 +17152,15 @@ packages: is-object: 1.0.2 dev: true + /jackspeak@2.3.6: + resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==} + engines: {node: '>=14'} + dependencies: + '@isaacs/cliui': 8.0.2 + optionalDependencies: + '@pkgjs/parseargs': 0.11.0 + dev: true + /jest-changed-files@29.7.0: resolution: {integrity: sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -17622,6 +17711,7 @@ packages: /json-buffer@3.0.0: resolution: {integrity: sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=} + dev: true /json-buffer@3.0.1: resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} @@ -17633,6 +17723,11 @@ packages: /json-parse-even-better-errors@2.3.1: resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + /json-parse-even-better-errors@3.0.1: + resolution: {integrity: sha512-aatBvbL26wVUCLmbWdCpeu9iF5wOyWpagiKkInA+kfws3sWdBrTnsvN2CKcyCYyUrc7rebNBlK6+kteg7ksecg==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + dev: true + /json-schema-traverse@0.4.1: resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} @@ -17704,6 +17799,7 @@ packages: resolution: {integrity: sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==} dependencies: json-buffer: 3.0.0 + dev: true /keyv@4.5.4: resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} @@ -17758,14 +17854,14 @@ packages: engines: {node: '>=8'} dependencies: package-json: 6.5.0 - dev: false + dev: true /lcid@2.0.0: resolution: {integrity: sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==} engines: {node: '>=6'} dependencies: invert-kv: 2.0.0 - dev: false + dev: true /lcid@3.1.1: resolution: {integrity: sha512-M6T051+5QCGLBQb8id3hdvIW8+zeFV2FyBGFS9IEK5H9Wt4MueD4bW1eWikpHgZp+5xR3l5c8pZUkQsIA0BFZg==} @@ -18060,10 +18156,17 @@ packages: /lowercase-keys@1.0.1: resolution: {integrity: sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==} engines: {node: '>=0.10.0'} + dev: true /lowercase-keys@2.0.0: resolution: {integrity: sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==} engines: {node: '>=8'} + dev: true + + /lru-cache@10.1.0: + resolution: {integrity: sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag==} + engines: {node: 14 || >=16.14} + dev: true /lru-cache@5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} @@ -18132,7 +18235,7 @@ packages: ssri: 6.0.2 transitivePeerDependencies: - supports-color - dev: false + dev: true /makeerror@1.0.12: resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==} @@ -18144,6 +18247,7 @@ packages: engines: {node: '>=6'} dependencies: p-defer: 1.0.0 + dev: true /map-cache@0.2.2: resolution: {integrity: sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==} @@ -18281,7 +18385,7 @@ packages: map-age-cleaner: 0.1.3 mimic-fn: 2.1.0 p-is-promise: 2.1.0 - dev: false + dev: true /mem@5.1.1: resolution: {integrity: sha512-qvwipnozMohxLXG1pOqoLiZKNkC4r4qqRucSoDwXowsNGDSULiqFTRUF05vcZWnwJSG22qTsynQhxbaMtnX9gw==} @@ -18417,6 +18521,7 @@ packages: /mimic-response@1.0.1: resolution: {integrity: sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==} engines: {node: '>=4'} + dev: true /min-indent@1.0.1: resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} @@ -18451,6 +18556,13 @@ packages: brace-expansion: 2.0.1 dev: true + /minimatch@9.0.3: + resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} + engines: {node: '>=16 || 14 >=14.17'} + dependencies: + brace-expansion: 2.0.1 + dev: true + /minimist-options@4.1.0: resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==} engines: {node: '>= 6'} @@ -18472,6 +18584,11 @@ packages: safe-buffer: 5.2.1 yallist: 3.1.1 + /minipass@7.0.4: + resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==} + engines: {node: '>=16 || 14 >=14.17'} + dev: true + /mississippi@3.0.0: resolution: {integrity: sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==} engines: {node: '>=4.0.0'} @@ -18486,7 +18603,7 @@ packages: pumpify: 1.5.1 stream-each: 1.2.3 through2: 2.0.5 - dev: false + dev: true /mixin-deep@1.3.2: resolution: {integrity: sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==} @@ -18547,7 +18664,7 @@ packages: mkdirp: 0.5.6 rimraf: 2.7.1 run-queue: 1.0.3 - dev: false + dev: true /mr-dep-walk@1.4.0: resolution: {integrity: sha512-UaDUqkLsd0ep3jAx2+A7BIpfw8wKxhthDj3yPNLBnevipK1CUFJJiz24jRVLw18q7R2aEiRq13WwUBlnwfbQqQ==} @@ -18588,7 +18705,7 @@ packages: any-promise: 1.3.0 object-assign: 4.1.1 thenify-all: 1.6.0 - dev: false + dev: true /nanoid@3.3.7: resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} @@ -18646,7 +18763,7 @@ packages: encoding: 0.1.13 json-parse-better-errors: 1.0.2 safe-buffer: 5.2.1 - dev: false + dev: true /node-fetch@2.7.0: resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} @@ -18690,7 +18807,7 @@ packages: /normalize-git-url@3.0.2: resolution: {integrity: sha512-UEmKT33ssKLLoLCsFJ4Si4fmNQsedNwivXpuNTR4V1I97jU9WZlicTV1xn5QAG5itE5B3Z9zhl8OItP6wIGkRA==} - dev: false + dev: true /normalize-package-data@2.5.0: resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} @@ -18711,6 +18828,16 @@ packages: validate-npm-package-license: 3.0.4 dev: true + /normalize-package-data@6.0.0: + resolution: {integrity: sha512-UL7ELRVxYBHBgYEtZCXjxuD5vPxnmvMGq0jp/dGPKKrN7tfsBh2IY7TlJ15WWwdjRWD3RJbnsygUurTK3xkPkg==} + engines: {node: ^16.14.0 || >=18.0.0} + dependencies: + hosted-git-info: 7.0.1 + is-core-module: 2.13.1 + semver: 7.5.4 + validate-npm-package-license: 3.0.4 + dev: true + /normalize-path@2.1.1: resolution: {integrity: sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==} engines: {node: '>=0.10.0'} @@ -18734,15 +18861,28 @@ packages: /normalize-url@4.5.1: resolution: {integrity: sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==} engines: {node: '>=8'} + dev: true /npm-git-info@1.0.3: resolution: {integrity: sha512-i5WBdj4F/ULl16z9ZhsJDMl1EQCMQhHZzBwNnKL2LOA+T8IHNeRkLCVz9uVV9SzUdGTbDq+1oXhIYMe+8148vw==} dev: true + /npm-install-checks@6.3.0: + resolution: {integrity: sha512-W29RiK/xtpCGqn6f3ixfRYGk+zRyr+Ew9F2E20BfXxT5/euLdA/Nm7fO7OeTGuAmTs30cpgInyJ0cYe708YTZw==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + dependencies: + semver: 7.5.4 + dev: true + /npm-normalize-package-bin@2.0.0: resolution: {integrity: sha512-awzfKUO7v0FscrSpRoogyNm0sajikhBWpU0QMrW09AMi9n1PoKU6WaIqUzuJSQnpciZZmJ/jMZ2Egfmb/9LiWQ==} engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + /npm-normalize-package-bin@3.0.1: + resolution: {integrity: sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + dev: true + /npm-package-arg@10.1.0: resolution: {integrity: sha512-uFyyCEmgBfZTtrKk/5xDfHp6+MdrqGotX/VoOyEEl3mBwiEE5FlBaePanazJSVMPT7vKepcjYBY2ztg9A3yPIA==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -18753,6 +18893,16 @@ packages: validate-npm-package-name: 5.0.0 dev: true + /npm-package-arg@11.0.1: + resolution: {integrity: sha512-M7s1BD4NxdAvBKUPqqRW957Xwcl/4Zvo8Aj+ANrzvIPzGJZElrH7Z//rSaec2ORcND6FHHLnZeY8qgTpXDMFQQ==} + engines: {node: ^16.14.0 || >=18.0.0} + dependencies: + hosted-git-info: 7.0.1 + proc-log: 3.0.0 + semver: 7.5.4 + validate-npm-package-name: 5.0.0 + dev: true + /npm-package-arg@8.1.5: resolution: {integrity: sha512-LhgZrg0n0VgvzVdSm1oiZworPbTxYHUJCgtsJW8mGvlDpxTM1vSJc3m5QZeUkhAHIzbz3VCHd/R4osi1L1Tg/Q==} engines: {node: '>=10'} @@ -18771,6 +18921,16 @@ packages: validate-npm-package-name: 4.0.0 dev: true + /npm-pick-manifest@9.0.0: + resolution: {integrity: sha512-VfvRSs/b6n9ol4Qb+bDwNGUXutpy76x6MARw/XssevE0TnctIKcmklJZM5Z7nqs5z5aW+0S63pgCNbpkUNNXBg==} + engines: {node: ^16.14.0 || >=18.0.0} + dependencies: + npm-install-checks: 6.3.0 + npm-normalize-package-bin: 3.0.1 + npm-package-arg: 11.0.1 + semver: 7.5.4 + dev: true + /npm-run-all@4.1.5: resolution: {integrity: sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==} engines: {node: '>= 4'} @@ -18830,7 +18990,7 @@ packages: /number-is-nan@1.0.1: resolution: {integrity: sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==} engines: {node: '>=0.10.0'} - dev: false + dev: true /nwsapi@2.2.7: resolution: {integrity: sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==} @@ -19018,7 +19178,7 @@ packages: execa: 1.0.0 lcid: 2.0.0 mem: 4.3.0 - dev: false + dev: true /os-locale@5.0.0: resolution: {integrity: sha512-tqZcNEDAIZKBEPnHPlVDvKrp7NzgLi7jRmhKiUoa2NUmhl13FtkAGLUVR+ZsYvApBQdBfYm43A4tXXQ4IrYLBA==} @@ -19047,10 +19207,12 @@ packages: /p-cancelable@1.1.0: resolution: {integrity: sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==} engines: {node: '>=6'} + dev: true /p-defer@1.0.0: resolution: {integrity: sha512-wB3wfAxZpk2AzOfUMJNL+d36xothRSyj8EXOa4f6GMqYDN9BJaaSISbsk+wS9abmnebVw95C2Kb5t85UmpCxuw==} engines: {node: '>=4'} + dev: true /p-defer@3.0.0: resolution: {integrity: sha512-ugZxsxmtTln604yeYd29EGrNhazN2lywetzpKhfmQjW/VJmhpDmWbiX+h0zL8V91R0UXkhb3KtPmyq9PZw3aYw==} @@ -19072,6 +19234,7 @@ packages: /p-is-promise@2.1.0: resolution: {integrity: sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==} engines: {node: '>=6'} + dev: true /p-limit@1.3.0: resolution: {integrity: sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==} @@ -19130,7 +19293,7 @@ packages: /p-map@1.2.0: resolution: {integrity: sha512-r6zKACMNhjPJMTl8KcFH4li//gkrXWfbD6feV8l6doRHlzljFWGJ2AP6iKaCJXyZmAUMOPtvbW7EXkbWO/pLEA==} engines: {node: '>=4'} - dev: false + dev: true /p-map@3.0.0: resolution: {integrity: sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==} @@ -19162,6 +19325,7 @@ packages: registry-auth-token: 4.2.2 registry-url: 5.1.0 semver: 6.3.1 + dev: true /parallel-transform@1.2.0: resolution: {integrity: sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==} @@ -19169,7 +19333,7 @@ packages: cyclist: 1.0.2 inherits: 2.0.4 readable-stream: 2.3.8 - dev: false + dev: true /parent-module@1.0.1: resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} @@ -19178,6 +19342,10 @@ packages: callsites: 3.1.0 dev: true + /parse-github-repo-url@1.4.1: + resolution: {integrity: sha512-bSWyzBKqcSL4RrncTpGsEKoJ7H8a4L3++ifTAbTFeMHyq2wRV+42DGmQcHIrJIvdcacjIOxEuKH/w4tthF17gg==} + dev: true + /parse-json@4.0.0: resolution: {integrity: sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==} engines: {node: '>=4'} @@ -19212,11 +19380,11 @@ packages: resolution: {integrity: sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==} dependencies: parse5: 6.0.1 - dev: false + dev: true /parse5@5.1.1: resolution: {integrity: sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==} - dev: false + dev: true /parse5@6.0.1: resolution: {integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==} @@ -19278,6 +19446,14 @@ packages: dependencies: path-root-regex: 0.1.2 + /path-scurry@1.10.1: + resolution: {integrity: sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==} + engines: {node: '>=16 || 14 >=14.17'} + dependencies: + lru-cache: 10.1.0 + minipass: 7.0.4 + dev: true + /path-to-regexp@0.1.7: resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==} @@ -19445,6 +19621,7 @@ packages: /prepend-http@2.0.0: resolution: {integrity: sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==} engines: {node: '>=4'} + dev: true /prettier-linter-helpers@1.0.0: resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==} @@ -19499,6 +19676,7 @@ packages: /process-nextick-args@2.0.1: resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} + dev: true /process-relative-require@1.0.0: resolution: {integrity: sha512-r8G5WJPozMJAiv8sDdVWKgJ4In/zBXqwJdMCGAXQt2Kd3HdbAuJVzWYM4JW150hWoaI9DjhtbjcsCCHIMxm8RA==} @@ -19508,6 +19686,7 @@ packages: /progress@2.0.3: resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==} engines: {node: '>=0.4.0'} + dev: true /promise-inflight@1.0.1(bluebird@3.7.2): resolution: {integrity: sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==} @@ -19518,7 +19697,7 @@ packages: optional: true dependencies: bluebird: 3.7.2 - dev: false + dev: true /promise-map-series@0.2.3: resolution: {integrity: sha512-wx9Chrutvqu1N/NHzTayZjE1BgIwt6SJykQoCOic4IZ9yUDjKyVYrpLa/4YCNsV61eRENfs29hrEquVuB13Zlw==} @@ -19535,7 +19714,15 @@ packages: dependencies: err-code: 1.1.2 retry: 0.10.1 - dev: false + dev: true + + /promise-retry@2.0.1: + resolution: {integrity: sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==} + engines: {node: '>=10'} + dependencies: + err-code: 2.0.3 + retry: 0.12.0 + dev: true /promise.hash.helper@1.0.8: resolution: {integrity: sha512-KYcnXctWUWyVD3W3Ye0ZDuA1N8Szrh85cVCxpG6xYrOk/0CttRtYCmU30nWsUch0NuExQQ63QXvzRE6FLimZmg==} @@ -19583,7 +19770,7 @@ packages: dependencies: end-of-stream: 1.4.4 once: 1.4.0 - dev: false + dev: true /pump@3.0.0: resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==} @@ -19597,7 +19784,7 @@ packages: duplexify: 3.7.1 inherits: 2.0.4 pump: 2.0.1 - dev: false + dev: true /punycode@2.3.1: resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} @@ -19717,6 +19904,7 @@ packages: ini: 1.3.8 minimist: 1.2.8 strip-json-comments: 2.0.1 + dev: true /react-is@18.2.0: resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} @@ -19771,6 +19959,7 @@ packages: safe-buffer: 5.1.2 string_decoder: 1.1.1 util-deprecate: 1.0.2 + dev: true /readable-stream@3.6.2: resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} @@ -19905,12 +20094,14 @@ packages: engines: {node: '>=6.0.0'} dependencies: rc: 1.2.8 + dev: true /registry-url@5.1.0: resolution: {integrity: sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==} engines: {node: '>=8'} dependencies: rc: 1.2.8 + dev: true /regjsgen@0.2.0: resolution: {integrity: sha512-x+Y3yA24uF68m5GA+tBjbGYo64xXVJpbToBaWCoSNSc1hdk6dfctaRWrNFTVJZIIhL5GxW8zwjoixbnifnK59g==} @@ -19927,6 +20118,34 @@ packages: dependencies: jsesc: 0.5.0 + /release-plan@0.4.1: + resolution: {integrity: sha512-aZ/dQCPnv1XksqhTk4wlhFTDbKpOry6pQrsUYINXYXecGE8DE3Wk6/UV5J9lpJeF7KbssA3dZsw28+ZItmmLlw==} + hasBin: true + dependencies: + '@ef4/lerna-changelog': 1.0.4 + '@npmcli/package-json': 5.0.0 + '@octokit/rest': 19.0.13 + '@types/fs-extra': 9.0.13 + '@types/js-yaml': 4.0.9 + '@types/semver': 7.5.6 + '@types/yargs': 17.0.32 + assert-never: 1.2.1 + chalk: 4.1.2 + cli-highlight: 2.1.11 + execa: 4.1.0 + fs-extra: 10.1.0 + globby: 11.1.0 + js-yaml: 4.1.0 + latest-version: 5.1.0 + parse-github-repo-url: 1.4.1 + semver: 7.5.4 + yargs: 17.7.2 + transitivePeerDependencies: + - bluebird + - encoding + - supports-color + dev: true + /remote-git-tags@3.0.0: resolution: {integrity: sha512-C9hAO4eoEsX+OXA4rla66pXZQ+TLQ8T9dttgQj18yuKlPMTVkIkdYXvlMC55IuUsIkV6DpmQYi10JKFLaU+l7w==} engines: {node: '>=8'} @@ -19971,7 +20190,7 @@ packages: /require-main-filename@1.0.1: resolution: {integrity: sha512-IqSUtOVP4ksd1C/ej5zeEh/BIP2ajqpn8c5x+q99gvcIG/Qf0cud5raVnE/Dwd0ua9TXYDoDc0RE5hBSdz22Ug==} - dev: false + dev: true /require-relative@0.8.7: resolution: {integrity: sha512-AKGr4qvHiryxRb19m3PsLRGuKVAbJLUD7E6eOaHkfKhwc+vSgVOCY5xNvm9EkolBKTOf0GrQAZKLimOCz81Khg==} @@ -20072,6 +20291,7 @@ packages: resolution: {integrity: sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==} dependencies: lowercase-keys: 1.0.1 + dev: true /restore-cursor@2.0.0: resolution: {integrity: sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==} @@ -20094,7 +20314,7 @@ packages: /retry@0.10.1: resolution: {integrity: sha512-ZXUSQYTHdl3uS7IuCehYfMzKyIDBNoAuUblvy5oGO5UJSUTmStUUVPXbA9Qxd173Bgre53yCQczQuHgRWAdvJQ==} - dev: false + dev: true /retry@0.12.0: resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==} @@ -20221,7 +20441,7 @@ packages: resolution: {integrity: sha512-ntymy489o0/QQplUDnpYAYUsO50K9SBrIVaKCWDOJzYJts0f9WH9RFJkyagebkw5+y1oi00R7ynNW/d12GBumg==} dependencies: aproba: 1.2.0 - dev: false + dev: true /rx-lite-aggregates@4.0.8: resolution: {integrity: sha512-3xPNZGW93oCjiO7PtKxRK6iOVYBWBvtf9QHDfU23Oc+dLIQmAV//UnyXV/yihv81VS/UqoQPk4NegS8EFi55Hg==} @@ -20548,7 +20768,7 @@ packages: /smart-buffer@4.2.0: resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} - dev: false + dev: true /snake-case@3.0.4: resolution: {integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==} @@ -20625,7 +20845,7 @@ packages: dependencies: agent-base: 4.2.1 socks: 2.3.3 - dev: false + dev: true /socks@2.3.3: resolution: {integrity: sha512-o5t52PCNtVdiOvzMry7wU4aOqYWL0PeCXRWBEiJow4/i/wr+wpsJQ9awEu1EonLIqsfGd5qSgDdxEOvCdmBEpA==} @@ -20633,7 +20853,7 @@ packages: dependencies: ip: 1.1.5 smart-buffer: 4.2.0 - dev: false + dev: true /sort-keys@2.0.0: resolution: {integrity: sha512-/dPCrG1s3ePpWm6yBbxZq5Be1dXGLyLn9Z791chDC3NFrpkVbWGzkBwPN1knaciexFXgRJ7hzdnwZ4stHSDmjg==} @@ -20784,7 +21004,7 @@ packages: resolution: {integrity: sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q==} dependencies: figgy-pudding: 3.5.2 - dev: false + dev: true /stable@0.1.8: resolution: {integrity: sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==} @@ -20825,11 +21045,11 @@ packages: dependencies: end-of-stream: 1.4.4 stream-shift: 1.0.1 - dev: false + dev: true /stream-shift@1.0.1: resolution: {integrity: sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==} - dev: false + dev: true /strict-uri-encode@1.1.0: resolution: {integrity: sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ==} @@ -20854,7 +21074,7 @@ packages: code-point-at: 1.1.0 is-fullwidth-code-point: 1.0.0 strip-ansi: 3.0.1 - dev: false + dev: true /string-width@2.1.1: resolution: {integrity: sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==} @@ -20880,6 +21100,15 @@ packages: is-fullwidth-code-point: 3.0.0 strip-ansi: 6.0.1 + /string-width@5.1.2: + resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} + engines: {node: '>=12'} + dependencies: + eastasianwidth: 0.2.0 + emoji-regex: 9.2.2 + strip-ansi: 7.1.0 + dev: true + /string.prototype.matchall@4.0.10: resolution: {integrity: sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ==} dependencies: @@ -20900,6 +21129,7 @@ packages: call-bind: 1.0.5 define-properties: 1.2.1 es-abstract: 1.22.3 + dev: true /string.prototype.trim@1.2.8: resolution: {integrity: sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==} @@ -20930,6 +21160,7 @@ packages: resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} dependencies: safe-buffer: 5.1.2 + dev: true /string_decoder@1.3.0: resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} @@ -20960,6 +21191,13 @@ packages: dependencies: ansi-regex: 5.0.1 + /strip-ansi@7.1.0: + resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} + engines: {node: '>=12'} + dependencies: + ansi-regex: 6.0.1 + dev: true + /strip-bom@3.0.0: resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} engines: {node: '>=4'} @@ -20993,6 +21231,7 @@ packages: /strip-json-comments@2.0.1: resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} engines: {node: '>=0.10.0'} + dev: true /strip-json-comments@3.1.1: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} @@ -21422,13 +21661,13 @@ packages: engines: {node: '>=0.8'} dependencies: thenify: 3.3.1 - dev: false + dev: true /thenify@3.3.1: resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} dependencies: any-promise: 1.3.0 - dev: false + dev: true /thread-loader@3.0.4(webpack@5.89.0): resolution: {integrity: sha512-ByaL2TPb+m6yArpqQUZvP+5S1mZtXsEP7nWKKlAUTm7fCml8kB5s1uI3+eHRP2bk5mVYfRSBI7FFf+tWEyLZwA==} @@ -21449,7 +21688,7 @@ packages: dependencies: readable-stream: 2.3.8 xtend: 4.0.2 - dev: false + dev: true /through2@3.0.2: resolution: {integrity: sha512-enaDQ4MUyP2W6ZyT6EsMzqBPZaM/avg8iuo+l2d3QCs0J+6RaqkHV/2/lOwDTueBHeJ/2LG9lrLW3d5rWPucuQ==} @@ -21532,6 +21771,7 @@ packages: /to-readable-stream@1.0.0: resolution: {integrity: sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==} engines: {node: '>=6'} + dev: true /to-regex-range@2.1.1: resolution: {integrity: sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==} @@ -21798,7 +22038,7 @@ packages: /typedarray@0.0.6: resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==} - dev: false + dev: true /typescript-memoize@1.1.1: resolution: {integrity: sha512-GQ90TcKpIH4XxYTI2F98yEQYZgjNMOGPpOgdjIBhaLaWji5HPWlRnZ4AeA1hfBxtY7bCGDJsqDDHk/KaHOl5bA==} @@ -21873,13 +22113,13 @@ packages: resolution: {integrity: sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==} dependencies: unique-slug: 2.0.2 - dev: false + dev: true /unique-slug@2.0.2: resolution: {integrity: sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==} dependencies: imurmurhash: 0.1.4 - dev: false + dev: true /unique-string@2.0.0: resolution: {integrity: sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==} @@ -21889,7 +22129,7 @@ packages: /universal-user-agent@6.0.1: resolution: {integrity: sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ==} - dev: false + dev: true /universalify@0.1.2: resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} @@ -21953,6 +22193,7 @@ packages: engines: {node: '>=4'} dependencies: prepend-http: 2.0.0 + dev: true /url-parse@1.5.10: resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} @@ -22340,7 +22581,7 @@ packages: /which-module@2.0.1: resolution: {integrity: sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==} - dev: false + dev: true /which-typed-array@1.1.13: resolution: {integrity: sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==} @@ -22365,6 +22606,14 @@ packages: dependencies: isexe: 2.0.0 + /which@4.0.0: + resolution: {integrity: sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==} + engines: {node: ^16.13.0 || >=18.0.0} + hasBin: true + dependencies: + isexe: 3.1.1 + dev: true + /wide-align@1.1.5: resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==} dependencies: @@ -22406,7 +22655,7 @@ packages: dependencies: string-width: 1.0.2 strip-ansi: 3.0.1 - dev: false + dev: true /wrap-ansi@6.2.0: resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} @@ -22425,6 +22674,15 @@ packages: string-width: 4.2.3 strip-ansi: 6.0.1 + /wrap-ansi@8.1.0: + resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} + engines: {node: '>=12'} + dependencies: + ansi-styles: 6.2.1 + string-width: 5.1.2 + strip-ansi: 7.1.0 + dev: true + /wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} @@ -22516,11 +22774,11 @@ packages: /y18n@3.2.2: resolution: {integrity: sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==} - dev: false + dev: true /y18n@4.0.3: resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==} - dev: false + dev: true /y18n@5.0.8: resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} @@ -22551,7 +22809,7 @@ packages: resolution: {integrity: sha512-CswCfdOgCr4MMsT1GzbEJ7Z2uYudWyrGX8Bgh/0eyCzj/DXWdKq6a/ADufkzI1WAOIW6jYaXJvRyLhDO0kfqBw==} dependencies: camelcase: 4.1.0 - dev: false + dev: true /yargs@11.1.1: resolution: {integrity: sha512-PRU7gJrJaXv3q3yQZ/+/X6KBswZiaQ+zOmdprZcouPYtQgvNU35i+68M4b1ZHLZtYFT5QObFLV+ZkmJYcwKdiw==} @@ -22568,7 +22826,7 @@ packages: which-module: 2.0.1 y18n: 3.2.2 yargs-parser: 9.0.2 - dev: false + dev: true /yargs@16.2.0: resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} From 9c4bf4539ecf2876709dc83bc2ec150b5e6f799b Mon Sep 17 00:00:00 2001 From: patrick Date: Thu, 7 Dec 2023 16:08:24 +0100 Subject: [PATCH 29/55] fix --- packages/compat/src/compat-app-builder.ts | 74 +++++++++++---------- packages/vite/src/assets.ts | 78 ++++++++++------------- packages/vite/src/build.ts | 4 +- packages/vite/src/optimize-deps.ts | 5 +- packages/vite/src/resolver.ts | 24 ++++--- tests/vite-app/ember-cli-build.js | 4 +- tests/vite-app/vite.config.mts | 4 +- 7 files changed, 98 insertions(+), 95 deletions(-) diff --git a/packages/compat/src/compat-app-builder.ts b/packages/compat/src/compat-app-builder.ts index 4cda3140b..5fc3c61a5 100644 --- a/packages/compat/src/compat-app-builder.ts +++ b/packages/compat/src/compat-app-builder.ts @@ -1095,44 +1095,54 @@ export class CompatAppBuilder { } private addEnvironment() { - outputJSONSync(join(locateEmbroiderWorkingDir(this.compatApp.root), 'environment.json'), this.configTree.readConfig(), { spaces: 2 }); + outputJSONSync( + join(locateEmbroiderWorkingDir(this.compatApp.root), 'environment.json'), + this.configTree.readConfig(), + { spaces: 2 } + ); } private addLegacyAppInfo() { const config = this.configTree.readConfig() as any; - const options = {...this.compatApp.legacyEmberAppInstance.options, addons: this.compatApp.legacyEmberAppInstance.project.addons}; + const options = { + ...this.compatApp.legacyEmberAppInstance.options, + addons: this.compatApp.legacyEmberAppInstance.project.addons, + }; const patterns = configReplacePatterns(options); - outputJSONSync(join(locateEmbroiderWorkingDir(this.compatApp.root), 'legacy-app-info.json'), { - options: { - outputPaths: this.compatApp.legacyEmberAppInstance.options.outputPaths, - autoRun: this.compatApp.legacyEmberAppInstance.options.autoRun, - storeConfigInMeta: this.compatApp.legacyEmberAppInstance.options.storeConfigInMeta, - minifyCSS: this.compatApp.legacyEmberAppInstance.options.minifyCSS - }, - project: { - root: this.compatApp.legacyEmberAppInstance.project.root, - pkg: this.compatApp.legacyEmberAppInstance.project.pkg - }, - configReplacePatterns: [ - '{{rootURL}}', - '{{content-for "head"}}', - '{{content-for "head-footer"}}', - '{{content-for "body"}}', - '{{content-for "body-footer"}}', - '{{content-for "test-head"}}', - '{{content-for "test-head-footer"}}', - '{{content-for "test-body"}}', - '{{content-for "test-body-footer"}}', - ].map((str) => { - const pattern = patterns.find(p => p.match.test(str))!; - return { - match: pattern?.match.source, - exact: str, - replacement: str.replace(pattern.match, pattern.replacement.bind(this, config)) - } - }) + outputJSONSync( + join(locateEmbroiderWorkingDir(this.compatApp.root), 'legacy-app-info.json'), + { + options: { + outputPaths: this.compatApp.legacyEmberAppInstance.options.outputPaths, + autoRun: this.compatApp.legacyEmberAppInstance.options.autoRun, + storeConfigInMeta: this.compatApp.legacyEmberAppInstance.options.storeConfigInMeta, + minifyCSS: this.compatApp.legacyEmberAppInstance.options.minifyCSS, }, - { spaces: 2 }); + project: { + root: this.compatApp.legacyEmberAppInstance.project.root, + pkg: this.compatApp.legacyEmberAppInstance.project.pkg, + }, + configReplacePatterns: [ + '{{rootURL}}', + '{{content-for "head"}}', + '{{content-for "head-footer"}}', + '{{content-for "body"}}', + '{{content-for "body-footer"}}', + '{{content-for "test-head"}}', + '{{content-for "test-head-footer"}}', + '{{content-for "test-body"}}', + '{{content-for "test-body-footer"}}', + ].map(str => { + const pattern = patterns.find(p => p.match.test(str))!; + return { + match: pattern?.match.source, + exact: str, + replacement: str.replace(pattern.match, pattern.replacement.bind(this, config)), + }; + }), + }, + { spaces: 2 } + ); } private shouldSplitRoute(routeName: string) { diff --git a/packages/vite/src/assets.ts b/packages/vite/src/assets.ts index 92833474c..1126b5941 100644 --- a/packages/vite/src/assets.ts +++ b/packages/vite/src/assets.ts @@ -1,16 +1,13 @@ -import { - Asset, EmberAsset, Engine, - extensionsPattern, getAppMeta, - locateEmbroiderWorkingDir, ResolverLoader, - RewrittenPackageCache -} from '@embroider/core'; +import type { Asset, EmberAsset, Engine, RewrittenPackageCache } from '@embroider/core'; +import { extensionsPattern, getAppMeta, locateEmbroiderWorkingDir, ResolverLoader } from '@embroider/core'; import { join, dirname } from 'path'; import { existsSync, readFileSync, writeFileSync } from 'fs'; import { AppFiles } from '@embroider/core/src/app-files'; import glob from 'fast-glob'; import CompatApp from '@embroider/compat/src/compat-app'; -import { InMemoryAsset } from '@embroider/core/src/asset'; -import { Plugin } from 'vite'; +import type { InMemoryAsset } from '@embroider/core/src/asset'; +import type { Plugin } from 'vite'; +import { readJSONSync } from 'fs-extra'; type Options = { root: string; @@ -24,9 +21,9 @@ let environment = 'production'; function getCompatAppBuilder({ rewrittenPackageCache, root }: Options) { const workingDir = locateEmbroiderWorkingDir(dirname(root)); const rewrittenApp = join(workingDir, 'rewritten-app'); - const options = require(join(workingDir, 'resolver.json')); - const env = require(join(workingDir, 'environment.json')); - const legacyApp = require(join(workingDir, 'legacy-app-info.json')); + const options = readJSONSync(join(workingDir, 'resolver.json')); + const env = readJSONSync(join(workingDir, 'environment.json')); + const legacyApp = readJSONSync(join(workingDir, 'legacy-app-info.json')); legacyApp.project.configPath = () => join(root, 'config', 'environment.js'); legacyApp.tests = true; const compatApp = new CompatApp(legacyApp, options); @@ -39,26 +36,23 @@ function getCompatAppBuilder({ rewrittenPackageCache, root }: Options) { const engines = compatAppBuilder['partitionEngines'](root); const extensions = compatAppBuilder['resolvableExtensions']().concat(['.ts', '.gts']); - const appFiles = engines.map( - (engine: Engine) => { - const isTest = engine.sourcePath.endsWith('/tests'); - let files = glob.sync(`**/*{${extensions.join(',')}}`, { - cwd: engine.sourcePath - } - ); - if (isTest) { - files = files.map(f => `tests/${f}`); - } - files.push('config/environment.js'); - return new AppFiles( - engine, - new Set(files), - new Set(), - extensionsPattern(extensions), - compatAppBuilder['podModulePrefix']() - ) + const appFiles = engines.map((engine: Engine) => { + const isTest = engine.sourcePath.endsWith('/tests'); + let files = glob.sync(`**/*{${extensions.join(',')}}`, { + cwd: engine.sourcePath, + }); + if (isTest) { + files = files.map(f => `tests/${f}`); } - ); + files.push('config/environment.js'); + return new AppFiles( + engine, + new Set(files), + new Set(), + extensionsPattern(extensions), + compatAppBuilder['podModulePrefix']() + ); + }); const assets: Asset[] = []; for (let asset of compatAppBuilder['emberEntrypoints']('.')) { if (asset.relativePath === 'index.html') { @@ -75,7 +69,7 @@ function getCompatAppBuilder({ rewrittenPackageCache, root }: Options) { function generateEmberHtml({ root }: Options) { const cwd = dirname(root); const workingDir = locateEmbroiderWorkingDir(cwd); - const legacyApp = require(join(workingDir, 'legacy-app-info.json')); + const legacyApp = readJSONSync(join(workingDir, 'legacy-app-info.json')); let html = readFileSync(join(cwd, 'index.html')).toString(); let testhtml = readFileSync(join(cwd, 'tests', 'index.html')).toString(); legacyApp.configReplacePatterns.forEach((pattern: any) => { @@ -162,17 +156,15 @@ function findPublicAsset(relativePath: string, packageCache: RewrittenPackageCac p = join('node_modules', relativePath); pkg = packageCache.ownerOfFile(p); if (pkg && pkg.meta && pkg.isV2Addon() && pkg.meta['public-assets']) { - const asset = Object.entries(pkg.meta['public-assets']).find( - ([_key, a]) => a === relativePath - )?.[0]; + const asset = Object.entries(pkg.meta['public-assets']).find(([_key, a]) => a === relativePath)?.[0]; const local = asset ? join(cwd, p) : null; if (local && existsSync(local)) { - return '/' + p + return '/' + p; } } } -export function assets(options?: { entryDirectories?: string[] }): Plugin { +export function assets(options?: { entryDirectories?: string[] }): Plugin { const cwd = process.cwd(); const root = join(cwd, 'app'); const embroiderWorkingDir = locateEmbroiderWorkingDir(cwd); @@ -191,7 +183,7 @@ export function assets(options?: { entryDirectories?: string[] }): Plugin { configureServer(server) { const watcher = server.watcher; // this is required because we do not open the /tests url directly and via the middleware - watcher.on('add', (filename) => { + watcher.on('add', filename => { if (entries.find(e => filename.startsWith(join(root, e)))) { delete InMemoryAssets[`assets/${appMeta.name}.js`]; const module = server.moduleGraph.getModuleById(join(root, `assets/${appMeta.name}.js`))!; @@ -201,7 +193,7 @@ export function assets(options?: { entryDirectories?: string[] }): Plugin { delete InMemoryAssets[`assets/test.js`]; } }); - watcher.on('unlink', (filename) => { + watcher.on('unlink', filename => { if (entries.find(e => filename.startsWith(join(root, e)))) { delete InMemoryAssets[`assets/${appMeta.name}.js`]; } @@ -209,14 +201,14 @@ export function assets(options?: { entryDirectories?: string[] }): Plugin { delete InMemoryAssets[`assets/test.js`]; } }); - watcher.on('change', (filename) => { + watcher.on('change', filename => { if (appIndex === filename) { delete InMemoryAssets['index.html']; } if (testsIndex === filename) { delete InMemoryAssets['tests/index.html']; server.ws.send({ - type: 'full-reload' + type: 'full-reload', }); } }); @@ -309,12 +301,12 @@ export function assets(options?: { entryDirectories?: string[] }): Plugin { async writeBundle(options) { const { compatAppBuilder } = getCompatAppBuilder({ rewrittenPackageCache: resolverLoader.resolver.packageCache, - root: options.dir || join(cwd, 'dist') + root: options.dir || join(cwd, 'dist'), }); const assets = compatAppBuilder['gatherAssets']({ publicTree: 'public', - } as any) + } as any); await compatAppBuilder['updateAssets'](assets, [], {}); }, - } + }; } diff --git a/packages/vite/src/build.ts b/packages/vite/src/build.ts index e1a3453ee..5ac90a705 100644 --- a/packages/vite/src/build.ts +++ b/packages/vite/src/build.ts @@ -2,7 +2,7 @@ import { join } from 'path'; import { createHash } from 'crypto'; import { fork } from 'child_process'; import { existsSync, readdirSync, readFileSync, writeFileSync } from 'fs'; -import { Plugin } from 'vite'; +import type { Plugin } from 'vite'; const cwd = process.cwd(); const embroiderDir = join(cwd, 'node_modules', '.embroider'); @@ -45,7 +45,7 @@ export function emberBuild(): Promise { } export async function buildIfFileChanged(path: string | null | undefined): Promise { - if (path && (lockFiles.includes(path))) { + if (path && lockFiles.includes(path)) { const key = computeCacheKeyForFile(path); if (key !== getCacheKey(path)) { console.log(path + ' change requires rebuild, rebuilding...'); diff --git a/packages/vite/src/optimize-deps.ts b/packages/vite/src/optimize-deps.ts index 4d04b1041..c6f8bae5c 100644 --- a/packages/vite/src/optimize-deps.ts +++ b/packages/vite/src/optimize-deps.ts @@ -8,10 +8,7 @@ export interface OptimizeDeps { export function optimizeDeps(root: string): OptimizeDeps { return { - exclude: [ - '@embroider/macros', - ...addons(root) - ], + exclude: ['@embroider/macros', ...addons(root)], extensions: ['.hbs', '.gjs'], esbuildOptions: { plugins: [esBuildResolver()], diff --git a/packages/vite/src/resolver.ts b/packages/vite/src/resolver.ts index fd15fedeb..9c63c2a09 100644 --- a/packages/vite/src/resolver.ts +++ b/packages/vite/src/resolver.ts @@ -18,12 +18,12 @@ type Options = { export function resolver(_options?: Options): Plugin { const resolverLoader = new ResolverLoader(process.cwd()); - resolverLoader.resolver.options.engines.forEach((engine) => { + resolverLoader.resolver.options.engines.forEach(engine => { engine.root = engine.root.replace(rewrittenApp, root); engine.activeAddons.forEach(addon => { addon.canResolveFromFile = addon.canResolveFromFile.replace(rewrittenApp, cwd); }); - }) + }); const pkg = resolverLoader.resolver.packageCache.get(cwd); pkg.packageJSON['ember-addon'] = pkg.packageJSON['ember-addon'] || {}; pkg.packageJSON['keywords'] = pkg.packageJSON['keywords'] || []; @@ -100,15 +100,19 @@ function defaultResolve(context: PluginContext): ResolverFunction Date: Fri, 8 Dec 2023 15:44:58 +0100 Subject: [PATCH 30/55] better windows compat --- packages/vite/src/assets.ts | 43 +++++++++++++++++++++++------------ packages/vite/src/build.ts | 2 +- packages/vite/src/hbs.ts | 2 +- packages/vite/src/resolver.ts | 2 +- packages/vite/src/scripts.ts | 2 +- 5 files changed, 32 insertions(+), 19 deletions(-) diff --git a/packages/vite/src/assets.ts b/packages/vite/src/assets.ts index 1126b5941..e11098e18 100644 --- a/packages/vite/src/assets.ts +++ b/packages/vite/src/assets.ts @@ -1,6 +1,6 @@ import type { Asset, EmberAsset, Engine, RewrittenPackageCache } from '@embroider/core'; -import { extensionsPattern, getAppMeta, locateEmbroiderWorkingDir, ResolverLoader } from '@embroider/core'; -import { join, dirname } from 'path'; +import {extensionsPattern, getAppMeta, locateEmbroiderWorkingDir, Resolver, ResolverLoader} from '@embroider/core'; +import { join, dirname } from 'path/posix'; import { existsSync, readFileSync, writeFileSync } from 'fs'; import { AppFiles } from '@embroider/core/src/app-files'; import glob from 'fast-glob'; @@ -11,6 +11,7 @@ import { readJSONSync } from 'fs-extra'; type Options = { root: string; + compatAppDir?: string; rewrittenPackageCache: RewrittenPackageCache; }; @@ -18,7 +19,7 @@ let InMemoryAssets: Record = {}; let environment = 'production'; -function getCompatAppBuilder({ rewrittenPackageCache, root }: Options) { +function getCompatAppBuilder({ rewrittenPackageCache, root, compatAppDir }: Options) { const workingDir = locateEmbroiderWorkingDir(dirname(root)); const rewrittenApp = join(workingDir, 'rewritten-app'); const options = readJSONSync(join(workingDir, 'resolver.json')); @@ -28,8 +29,9 @@ function getCompatAppBuilder({ rewrittenPackageCache, root }: Options) { legacyApp.tests = true; const compatApp = new CompatApp(legacyApp, options); compatApp['config']['lastConfig'] = env; + console.log('rew', rewrittenApp) - const compatAppBuilder = compatApp['instantiate'](rewrittenApp, rewrittenPackageCache, compatApp['config']); + const compatAppBuilder = compatApp['instantiate'](compatAppDir || rewrittenApp, rewrittenPackageCache, compatApp['config']); compatAppBuilder['assetIsValid'] = () => false; @@ -143,7 +145,8 @@ async function generateTestEntries({ rewrittenPackageCache, root }: Options) { return InMemoryAssets[`assets/test.js`]; } -function findPublicAsset(relativePath: string, packageCache: RewrittenPackageCache) { +function findPublicAsset(relativePath: string, resolver: Resolver, embroiderWorkingDir: string) { + const packageCache = resolver.packageCache; const cwd = process.cwd(); const publicDir = join(cwd, 'public'); // check public path @@ -152,16 +155,25 @@ function findPublicAsset(relativePath: string, packageCache: RewrittenPackageCac if (pkg && pkg.isV2App() && existsSync(p)) { return '/' + p; } - // check node_modules - p = join('node_modules', relativePath); - pkg = packageCache.ownerOfFile(p); - if (pkg && pkg.meta && pkg.isV2Addon() && pkg.meta['public-assets']) { - const asset = Object.entries(pkg.meta['public-assets']).find(([_key, a]) => a === relativePath)?.[0]; - const local = asset ? join(cwd, p) : null; - if (local && existsSync(local)) { - return '/' + p; + + for (const engine of resolver.options.engines) { + for (const addon of engine.activeAddons) { + pkg = packageCache.ownerOfFile(addon.root); + if (pkg && pkg.meta && pkg.isV2Addon() && pkg.meta['public-assets']) { + const asset = Object.entries(pkg.meta['public-assets']).find(([_key, a]) => a === relativePath)?.[0]; + let local = asset ? join(addon.root, asset) : null; + if (!local?.includes(embroiderWorkingDir) && asset) { + // remap to local path without symlinks so vite can find it + const localNodeModulePath = local?.split('/node_modules/').slice(-1)[0]!; + local = join('node_modules', localNodeModulePath); + } + if (local && existsSync(local)) { + return '/' + local; + } + } } } + } export function assets(options?: { entryDirectories?: string[] }): Plugin { @@ -239,7 +251,7 @@ export function assets(options?: { entryDirectories?: string[] }): Plugin { return next(); } if (req.originalUrl && req.originalUrl.length > 1) { - const newUrl = findPublicAsset(req.originalUrl, resolverLoader.resolver.packageCache); + const newUrl = findPublicAsset(req.originalUrl, resolverLoader.resolver, embroiderWorkingDir); if (newUrl) { req.originalUrl = newUrl; (req as any).url = newUrl; @@ -301,7 +313,8 @@ export function assets(options?: { entryDirectories?: string[] }): Plugin { async writeBundle(options) { const { compatAppBuilder } = getCompatAppBuilder({ rewrittenPackageCache: resolverLoader.resolver.packageCache, - root: options.dir || join(cwd, 'dist'), + root, + compatAppDir: options.dir || join(cwd, 'dist'), }); const assets = compatAppBuilder['gatherAssets']({ publicTree: 'public', diff --git a/packages/vite/src/build.ts b/packages/vite/src/build.ts index 5ac90a705..f30b16a0c 100644 --- a/packages/vite/src/build.ts +++ b/packages/vite/src/build.ts @@ -1,4 +1,4 @@ -import { join } from 'path'; +import { join } from 'path/posix'; import { createHash } from 'crypto'; import { fork } from 'child_process'; import { existsSync, readdirSync, readFileSync, writeFileSync } from 'fs'; diff --git a/packages/vite/src/hbs.ts b/packages/vite/src/hbs.ts index fbba45582..01091b6e1 100644 --- a/packages/vite/src/hbs.ts +++ b/packages/vite/src/hbs.ts @@ -6,7 +6,7 @@ import type { Plugin } from 'vite'; import { readFileSync } from 'fs'; import { hbsToJS } from '@embroider/core'; import assertNever from 'assert-never'; -import { parse as pathParse } from 'path'; +import { parse as pathParse } from 'path/posix'; import makeDebug from 'debug'; const debug = makeDebug('embroider:hbs-plugin'); diff --git a/packages/vite/src/resolver.ts b/packages/vite/src/resolver.ts index 9c63c2a09..ce6b2e6c3 100644 --- a/packages/vite/src/resolver.ts +++ b/packages/vite/src/resolver.ts @@ -1,6 +1,6 @@ import type { PluginContext, ResolveIdResult } from 'rollup'; import type { Plugin } from 'vite'; -import { join, resolve } from 'path'; +import { join, resolve } from 'path/posix'; import type { Resolution, ResolverFunction } from '@embroider/core'; import { ResolverLoader, virtualContent } from '@embroider/core'; import { readFileSync } from 'fs'; diff --git a/packages/vite/src/scripts.ts b/packages/vite/src/scripts.ts index 81e402ead..332cce652 100644 --- a/packages/vite/src/scripts.ts +++ b/packages/vite/src/scripts.ts @@ -2,7 +2,7 @@ import type { Plugin } from 'vite'; import type { EmittedFile } from 'rollup'; import { JSDOM } from 'jsdom'; import { readFileSync, readJSONSync } from 'fs-extra'; -import { dirname, posix, resolve } from 'path'; +import { dirname, posix, resolve } from 'path/posix'; // This is a type-only import, so it gets compiled away. At runtime, we load // terser lazily so it's only loaded for production builds that use it. Don't From 460bf6e9b5ed3ca22241969573d4e88bd28f54f1 Mon Sep 17 00:00:00 2001 From: patrickpircher Date: Fri, 8 Dec 2023 16:23:31 +0100 Subject: [PATCH 31/55] add tests with vite --- package.json | 1 + packages/macros/tests/babel/helpers.ts | 5 +- packages/vite/package.json | 4 +- packages/vite/src/bin/run-tests.mjs | 83 ++++++ pnpm-lock.yaml | 342 ++++++++++++++++++++++++- tests/vite-app/package.json | 10 +- tests/vite-app/tests/setup-harness.js | 60 +++++ tests/vite-app/tests/test-helper.js | 3 +- tests/vite-app/vite.config.mts | 2 - 9 files changed, 487 insertions(+), 23 deletions(-) create mode 100644 packages/vite/src/bin/run-tests.mjs create mode 100644 tests/vite-app/tests/setup-harness.js diff --git a/package.json b/package.json index 92ed17395..511476f87 100644 --- a/package.json +++ b/package.json @@ -7,6 +7,7 @@ "scripts": { "clean": "git clean -x -f", "compile": "tsc", + "dev": "tsc --watch", "lint": "concurrently 'npm:lint:*(!fix)' --names 'lint:'", "lint:fix": "concurrently 'npm:lint:*:fix' --names 'fix:'", "lint:eslint": "eslint . --cache --report-unused-disable-directives", diff --git a/packages/macros/tests/babel/helpers.ts b/packages/macros/tests/babel/helpers.ts index 1d69bca37..043c244e8 100644 --- a/packages/macros/tests/babel/helpers.ts +++ b/packages/macros/tests/babel/helpers.ts @@ -6,6 +6,7 @@ import { Project } from 'scenario-tester'; import { readFileSync } from 'fs'; import { Script, createContext } from 'vm'; import { explicitRelative } from '@embroider/shared-internals'; +import It = jest.It; export { runDefault, Project }; @@ -69,10 +70,10 @@ interface ModeTestHooks { } type CreateModeTests = (transform: Transform, hooks: ModeTestHooks) => void; -function disabledTest(_name: string, _impl: jest.ProvidesCallback | undefined) {} +const disabledTest = function (_name: string, _impl: jest.ProvidesCallback | undefined) {} as It; disabledTest.only = disabledTest; disabledTest.skip = disabledTest; -disabledTest.todo = (_name: string): void => {}; +disabledTest.todo = ((_name: string): void => {}) as It; disabledTest.concurrent = disabledTest; disabledTest.each = test.each; disabledTest.failing = disabledTest; diff --git a/packages/vite/package.json b/packages/vite/package.json index 631d2ae68..e669c1f76 100644 --- a/packages/vite/package.json +++ b/packages/vite/package.json @@ -23,7 +23,8 @@ "fs-extra": "^10.0.0", "jsdom": "^16.6.0", "source-map-url": "^0.4.1", - "terser": "^5.7.0" + "terser": "^5.7.0", + "puppeteer-chromium-resolver": "^21.0.0" }, "devDependencies": { "@types/babel__core": "^7.20.1", @@ -37,6 +38,7 @@ "index.mjs", "index.d.ts", "src/**/*.js", + "bin/**/*.js", "src/**/*.d.ts", "src/**/*.js.map" ] diff --git a/packages/vite/src/bin/run-tests.mjs b/packages/vite/src/bin/run-tests.mjs new file mode 100644 index 000000000..22f099ef3 --- /dev/null +++ b/packages/vite/src/bin/run-tests.mjs @@ -0,0 +1,83 @@ +import child from 'child_process'; +import { resolve } from 'path'; +import PCR from 'puppeteer-chromium-resolver'; + +const __root = process.cwd(); + +async function run() { + // eslint-disable-next-line new-cap + const { puppeteer, executablePath } = await PCR({}); + console.log('[ci] starting'); + + await /** @type {Promise} */ ( + new Promise((fulfill) => { + const runvite = child.spawn( + resolve(__root, 'node_modules', '.bin', 'vite'), + ['--port', '60173', '--no-open'], + { + stdio: 'pipe', + } + ); + + process.on('exit', () => runvite.kill()); + + runvite.stderr.on('data', (data) => { + console.log('stderr', String(data)); + }); + + runvite.stdout.on('data', (data) => { + const chunk = String(data); + console.log('stdout', chunk); + if (chunk.includes('Local') && chunk.includes('60173')) { + fulfill(1); + } + }); + + console.log('[ci] spawning'); + }) + ); + + console.log('[ci] spawned'); + + const browser = await puppeteer.launch({ + headless: 'new', + executablePath, + args: ['--no-sandbox', '--disable-setuid-sandbox'], + }); + + console.log('[ci] puppeteer launched'); + + const result = await /** @type {Promise} */ ( + // eslint-disable-next-line no-async-promise-executor + new Promise(async (fulfill) => { + const page = await browser.newPage(); + + page.on('console', (msg) => { + const location = msg.location(); + const text = msg.text(); + + if (location.url?.includes(`/qunit.js`)) { + console.log(text); + } else { + try { + const parsed = JSON.parse(text); + if (parsed.type === '[HARNESS] done') { + return fulfill(parsed.failed); + } + } catch (e) { + + } + + } + }); + + await page.goto('http://localhost:60173/tests?hidepassed&ci'); + }) + ); + + await browser.close(); + + process.exit(result); +} + +run(); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 20b6a9a93..bb9aac52c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -950,6 +950,9 @@ importers: jsdom: specifier: ^16.6.0 version: 16.7.0(supports-color@8.1.1) + puppeteer-chromium-resolver: + specifier: ^21.0.0 + version: 21.0.0 source-map-url: specifier: ^0.4.1 version: 0.4.1 @@ -974,7 +977,7 @@ importers: version: 3.29.4 vite: specifier: ^4.3.9 - version: 4.5.0(terser@5.24.0) + version: 4.5.1(terser@5.24.0) packages/webpack: dependencies: @@ -2033,12 +2036,21 @@ importers: eslint-plugin-qunit: specifier: ^7.3.4 version: 7.3.4(eslint@8.54.0) + http_server: + specifier: ^1.0.12 + version: 1.0.12 + js-reporters: + specifier: ^2.1.0 + version: 2.1.0 loader.js: specifier: ^4.7.0 version: 4.7.0 prettier: specifier: ^2.8.8 version: 2.8.8 + puppeteer-chromium-resolver: + specifier: ^21.0.0 + version: 21.0.0 qunit: specifier: ^2.19.4 version: 2.20.0 @@ -2062,7 +2074,7 @@ importers: version: 5.3.2 vite: specifier: ^4.3.9 - version: 4.5.0(terser@5.24.0) + version: 4.5.1(terser@5.24.0) types/broccoli: {} @@ -6256,6 +6268,21 @@ packages: resolution: {integrity: sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==} dev: true + /@puppeteer/browsers@1.9.0: + resolution: {integrity: sha512-QwguOLy44YBGC8vuPP2nmpX4MUN2FzWbsnvZJtiCzecU3lHmVZkaC1tq6rToi9a200m8RzlVtDyxCS0UIDrxUg==} + engines: {node: '>=16.3.0'} + hasBin: true + dependencies: + debug: 4.3.4(supports-color@8.1.1) + extract-zip: 2.0.1 + progress: 2.0.3 + proxy-agent: 6.3.1 + tar-fs: 3.0.4 + unbzip2-stream: 1.4.3 + yargs: 17.7.2 + transitivePeerDependencies: + - supports-color + /@rollup/plugin-babel@5.3.1(@babel/core@7.23.3)(rollup@3.29.4): resolution: {integrity: sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==} engines: {node: '>= 10.0.0'} @@ -6413,6 +6440,9 @@ packages: resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==} engines: {node: '>= 10'} + /@tootallnate/quickjs-emscripten@0.23.0: + resolution: {integrity: sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==} + /@tsconfig/ember@1.0.1: resolution: {integrity: sha512-aPzLw5BfQxsFPrh5fNDOK4SbSkp2q5fMlrKVeniVjMz1lAcyOh2eH5THkKKcBi1YN1/fbMdAWN/dKGW6lg2+8g==} dev: true @@ -6794,6 +6824,13 @@ packages: dependencies: '@types/yargs-parser': 21.0.3 + /@types/yauzl@2.10.3: + resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==} + requiresBuild: true + dependencies: + '@types/node': 15.14.9 + optional: true + /@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0)(eslint@7.32.0)(typescript@5.2.2): resolution: {integrity: sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -7341,6 +7378,14 @@ packages: transitivePeerDependencies: - supports-color + /agent-base@7.1.0: + resolution: {integrity: sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==} + engines: {node: '>= 14'} + dependencies: + debug: 4.3.4(supports-color@8.1.1) + transitivePeerDependencies: + - supports-color + /agentkeepalive@3.5.2: resolution: {integrity: sha512-e0L/HNe6qkQ7H19kTlRRqUibEAwDK5AFk6y3PtMsuut2VAH6+Q4xZml1tNDJD7kSAyqmbG/K08K5WEJYtUrSlQ==} engines: {node: '>= 4.0.0'} @@ -7679,6 +7724,12 @@ packages: resolution: {integrity: sha512-XTZ7xGML849LkQP86sWdQzfhwbt3YwIO6MqbX9mUNYY98VKaaVZP7YNNm70IpwecbkkxmfC5IYAzOQ/2p29zRA==} engines: {node: '>=4'} + /ast-types@0.13.4: + resolution: {integrity: sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==} + engines: {node: '>=4'} + dependencies: + tslib: 2.6.2 + /astral-regex@1.0.0: resolution: {integrity: sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==} engines: {node: '>=4'} @@ -7748,6 +7799,9 @@ packages: resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==} engines: {node: '>= 0.4'} + /b4a@1.6.4: + resolution: {integrity: sha512-fpWrvyVHEKyeEvbKZTVOeZF3VSKKWtJxFIxX/jaVPf+cLbGUSitjb49pHLqPV2BUNNZ0LcoeEGfE/YCpyDYHIw==} + /babel-code-frame@6.26.0: resolution: {integrity: sha512-XqYMR2dfdGMW+hd0IUZ2PwK+fGeFkOxZJ0wY+JaQAHzt1Zx8LcvpiZD2NiGkEG8qx0CfkAOr5xt76d1e8vG90g==} dependencies: @@ -8500,7 +8554,6 @@ packages: /base64-js@1.5.1: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} - dev: true /base64id@2.0.0: resolution: {integrity: sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==} @@ -8524,6 +8577,10 @@ packages: dependencies: safe-buffer: 5.1.2 + /basic-ftp@5.0.3: + resolution: {integrity: sha512-QHX8HLlncOLpy54mh+k/sWIFd0ThmRqwe9ZjELybGZK+tZ8rUb9VO0saKJUROTbE+KhzDUT7xziGpGrW8Kmd+g==} + engines: {node: '>=10.0.0'} + /before-after-hook@2.2.3: resolution: {integrity: sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==} dev: true @@ -9393,6 +9450,9 @@ packages: dependencies: node-int64: 0.4.0 + /buffer-crc32@0.2.13: + resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} + /buffer-from@1.1.2: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} @@ -9401,7 +9461,6 @@ packages: dependencies: base64-js: 1.5.1 ieee754: 1.2.1 - dev: true /builtin-modules@3.3.0: resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} @@ -9618,6 +9677,15 @@ packages: resolution: {integrity: sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==} engines: {node: '>=6.0'} + /chromium-bidi@0.5.1(devtools-protocol@0.0.1203626): + resolution: {integrity: sha512-dcCqOgq9fHKExc2R4JZs/oKbOghWpUNFAJODS8WKRtLhp3avtIH5UDCBrutdqZdh3pARogH8y1ObXm87emwb3g==} + peerDependencies: + devtools-protocol: '*' + dependencies: + devtools-protocol: 0.0.1203626 + mitt: 3.0.1 + urlpattern-polyfill: 9.0.0 + /ci-info@2.0.0: resolution: {integrity: sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==} @@ -10313,6 +10381,13 @@ packages: cross-spawn: 7.0.3 dev: true + /cross-fetch@4.0.0: + resolution: {integrity: sha512-e4a5N8lVvuLgAWgnCrLr2PP0YyDOTHa9H/Rj54dirp61qXnNq46m82bRhNqIA5VccJtWBvPTFRV3TtvHUKPB1g==} + dependencies: + node-fetch: 2.7.0 + transitivePeerDependencies: + - encoding + /cross-spawn@6.0.5: resolution: {integrity: sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==} engines: {node: '>=4.8'} @@ -10453,6 +10528,10 @@ packages: /dag-map@2.0.2: resolution: {integrity: sha512-xnsprIzYuDeiyu5zSKwilV/ajRHxnoMlAhEREfyfTgTSViMVY2fGP1ZcHJbtwup26oCkofySU/m6oKJ3HrkW7w==} + /data-uri-to-buffer@6.0.1: + resolution: {integrity: sha512-MZd3VlchQkp8rdend6vrx7MmVDJzSNTBvghvKjirLkD+WTChA3KUf0jkE68Q4UyctNqI11zZO9/x2Yx+ub5Cvg==} + engines: {node: '>= 14'} + /data-urls@2.0.0: resolution: {integrity: sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==} engines: {node: '>=10'} @@ -10626,6 +10705,14 @@ packages: is-descriptor: 1.0.3 isobject: 3.0.1 + /degenerator@5.0.1: + resolution: {integrity: sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==} + engines: {node: '>= 14'} + dependencies: + ast-types: 0.13.4 + escodegen: 2.1.0 + esprima: 4.0.1 + /del@5.1.0: resolution: {integrity: sha512-wH9xOVHnczo9jN2IW68BabcecVPxacIA3g/7z6vhSU/4stOKQzeCRK0yD0A24WiAAUJmmVpWqrERcTxnLo3AnA==} engines: {node: '>=8'} @@ -10687,6 +10774,9 @@ packages: resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==} engines: {node: '>=8'} + /devtools-protocol@0.0.1203626: + resolution: {integrity: sha512-nEzHZteIUZfGCZtTiS1fRpC8UZmsfD1SiyPvaUNvS13dvKf666OAm8YTi0+Ca3n1nLEyu49Cy4+dPWpaHFJk9g==} + /diff-sequences@29.6.3: resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -10801,6 +10891,9 @@ packages: /ee-first@1.1.1: resolution: {integrity: sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=} + /eight-colors@1.0.3: + resolution: {integrity: sha512-x6JCcDbcpZq78oWP5cFqhhM5kIBeGcGTKNkWzRcJnNgxfUKaj3EsWhFi0f4UQxhYhgtqPXVF++Q4hEd0ZX/taw==} + /electron-to-chromium@1.4.595: resolution: {integrity: sha512-+ozvXuamBhDOKvMNUQvecxfbyICmIAwS4GpLmR0bsiSBlGnLaOcs2Cj7J8XSbW+YEaN3Xl3ffgpm+srTUWFwFQ==} @@ -15180,6 +15273,19 @@ packages: resolution: {integrity: sha512-AEo4zm+TenK7zQorGK1f9mJ8L14hnTDi2ZQPR+Mub1NX8zimka1mXpV5LpH8x9HoUmFSHZCfLHqWvp0Y4FxxzQ==} engines: {node: '>=8'} + /extract-zip@2.0.1: + resolution: {integrity: sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==} + engines: {node: '>= 10.17.0'} + hasBin: true + dependencies: + debug: 4.3.4(supports-color@8.1.1) + get-stream: 5.2.0 + yauzl: 2.10.0 + optionalDependencies: + '@types/yauzl': 2.10.3 + transitivePeerDependencies: + - supports-color + /fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} @@ -15187,6 +15293,9 @@ packages: resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==} dev: true + /fast-fifo@1.3.2: + resolution: {integrity: sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==} + /fast-glob@3.3.2: resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} engines: {node: '>=8.6.0'} @@ -15297,6 +15406,11 @@ packages: dependencies: bser: 2.1.1 + /fd-slicer@1.1.0: + resolution: {integrity: sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==} + dependencies: + pend: 1.2.0 + /figgy-pudding@3.5.2: resolution: {integrity: sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==} dev: true @@ -15865,6 +15979,19 @@ packages: strip-ansi: 6.0.1 wide-align: 1.1.5 + /gauge@5.0.1: + resolution: {integrity: sha512-CmykPMJGuNan/3S4kZOpvvPYSNqSHANiWnh9XcMU2pSjtBfF0XzZ2p1bFAxTbnFxyBuPxQYHhzwaoOmUdqzvxQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + dependencies: + aproba: 2.0.0 + color-support: 1.1.3 + console-control-strings: 1.1.0 + has-unicode: 2.0.1 + signal-exit: 4.1.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + wide-align: 1.1.5 + /gensync@1.0.0-beta.2: resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} engines: {node: '>=6.9.0'} @@ -15938,6 +16065,17 @@ packages: resolve-pkg-maps: 1.0.0 dev: true + /get-uri@6.0.2: + resolution: {integrity: sha512-5KLucCJobh8vBY1K07EFV4+cPZH3mrV9YeAruUseCQKHB58SGjjT2l9/eA9LD082IiuMjSlFJEcdJ27TXvbZNw==} + engines: {node: '>= 14'} + dependencies: + basic-ftp: 5.0.3 + data-uri-to-buffer: 6.0.1 + debug: 4.3.4(supports-color@8.1.1) + fs-extra: 8.1.0 + transitivePeerDependencies: + - supports-color + /get-value@2.0.6: resolution: {integrity: sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==} engines: {node: '>=0.10.0'} @@ -16460,6 +16598,15 @@ packages: transitivePeerDependencies: - supports-color + /http-proxy-agent@7.0.0: + resolution: {integrity: sha512-+ZT+iBxVUQ1asugqnD6oWoRiS25AkjNfG085dKJGtGxkdwLQrMKU5wJr2bOOFAXzKcTuqq+7fZlTMgG3SRfIYQ==} + engines: {node: '>= 14'} + dependencies: + agent-base: 7.1.0 + debug: 4.3.4(supports-color@8.1.1) + transitivePeerDependencies: + - supports-color + /http-proxy@1.18.1: resolution: {integrity: sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==} engines: {node: '>=8.0.0'} @@ -16470,6 +16617,13 @@ packages: transitivePeerDependencies: - debug + /http_server@1.0.12: + resolution: {integrity: sha512-jmG+FmLajeMkZlIVgsbzeUgJ05NXUdkCpaYOYThbWVWaXoXEEQ+tE0sLYqa55W+v1lY0ATdotS65Upe9/YhHmA==} + hasBin: true + dependencies: + mime: 1.6.0 + dev: true + /https-proxy-agent@2.2.4: resolution: {integrity: sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg==} engines: {node: '>= 4.5.0'} @@ -16489,6 +16643,15 @@ packages: transitivePeerDependencies: - supports-color + /https-proxy-agent@7.0.2: + resolution: {integrity: sha512-NmLNjm6ucYwtcUmL7JQC1ZQ57LmHP4lT15FQ8D61nak1rO6DH+fz5qNK2Ap5UN4ZapYICE3/0KodcLYSPsPbaA==} + engines: {node: '>= 14'} + dependencies: + agent-base: 7.1.0 + debug: 4.3.4(supports-color@8.1.1) + transitivePeerDependencies: + - supports-color + /https@1.0.0: resolution: {integrity: sha512-4EC57ddXrkaF0x83Oj8sM6SLQHAWXw90Skqu2M4AEWENZ3F02dFJE/GARA8igO79tcgYqGrD7ae4f5L3um2lgg==} @@ -16533,7 +16696,6 @@ packages: /ieee754@1.2.1: resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} - dev: true /iferr@0.1.5: resolution: {integrity: sha512-DUNFN5j7Tln0D+TxzloUjKB+CtVu6myn0JEFak6dG18mNt9YkQ6lzGCdafwofISZ1lLF3xRHJ98VKy9ynkcFaA==} @@ -16733,6 +16895,12 @@ packages: resolution: {integrity: sha512-rBtCAQAJm8A110nbwn6YdveUnuZH3WrC36IwkRXxDnq53JvXA2NVQvB7IHyKomxK1MJ4VDNw3UtFDdXQ+AvLYA==} dev: true + /ip@1.1.8: + resolution: {integrity: sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==} + + /ip@2.0.0: + resolution: {integrity: sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==} + /ipaddr.js@1.9.1: resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} engines: {node: '>= 0.10'} @@ -17577,6 +17745,11 @@ packages: /jquery@3.7.1: resolution: {integrity: sha512-m4avr8yL8kmFN8psrbFFFmB/If14iN5o9nw/NgnnM+kybDJpRsAynV2BsfpTYrTRysYUdADVD7CkUUizgkpLfg==} + /js-reporters@2.1.0: + resolution: {integrity: sha512-Q4GcEcPSb6ovhqp91claM3WPbSntQxbIn+3JiJgEXturys2ttWgs31VC60Yja+2unpNOH2A2qyjWFU2thCQ8sg==} + engines: {node: '>=10'} + dev: true + /js-string-escape@1.0.1: resolution: {integrity: sha512-Smw4xcfIQ5LVjAOuJCvN/zIodzA/BBSsluuoSykP+lUvScIi4U6RJLfwHet5cxFnCswUjISV8oAXaqaJDY3chg==} engines: {node: '>= 0.8'} @@ -18182,7 +18355,6 @@ packages: /lru-cache@7.18.3: resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==} engines: {node: '>=12'} - dev: true /magic-string@0.24.1: resolution: {integrity: sha512-YBfNxbJiixMzxW40XqJEIldzHyh5f7CZKalo1uZffevyrPEX8Qgo9s0dmcORLHdV47UyvJg8/zD+6hQG3qvJrA==} @@ -18605,6 +18777,9 @@ packages: through2: 2.0.5 dev: true + /mitt@3.0.1: + resolution: {integrity: sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==} + /mixin-deep@1.3.2: resolution: {integrity: sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==} engines: {node: '>=0.10.0'} @@ -18612,6 +18787,9 @@ packages: for-in: 1.0.2 is-extendable: 1.0.1 + /mkdirp-classic@0.5.3: + resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==} + /mkdirp-infer-owner@2.0.0: resolution: {integrity: sha512-sdqtiFt3lkOaYvTXSRIUjkIdPTcxgv5+fgqYE/5qgwdw12cOrAuzzgzvVExIkH/ul1oeHN3bCLOWSG3XOqbKKw==} engines: {node: '>=10'} @@ -18745,6 +18923,10 @@ packages: /neo-async@2.6.2: resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} + /netmask@2.0.2: + resolution: {integrity: sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==} + engines: {node: '>= 0.4.0'} + /nice-try@1.0.5: resolution: {integrity: sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==} @@ -19317,6 +19499,29 @@ packages: resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} engines: {node: '>=6'} + /pac-proxy-agent@7.0.1: + resolution: {integrity: sha512-ASV8yU4LLKBAjqIPMbrgtaKIvxQri/yh2OpI+S6hVa9JRkUI3Y3NPFbfngDtY7oFtSMD3w31Xns89mDa3Feo5A==} + engines: {node: '>= 14'} + dependencies: + '@tootallnate/quickjs-emscripten': 0.23.0 + agent-base: 7.1.0 + debug: 4.3.4(supports-color@8.1.1) + get-uri: 6.0.2 + http-proxy-agent: 7.0.0 + https-proxy-agent: 7.0.2 + pac-resolver: 7.0.0 + socks-proxy-agent: 8.0.2 + transitivePeerDependencies: + - supports-color + + /pac-resolver@7.0.0: + resolution: {integrity: sha512-Fd9lT9vJbHYRACT8OhCbZBbxr6KRSawSovFpy8nDGshaK99S/EBhVIHp9+crhxrsZOuvLpgL1n23iyPg6Rl2hg==} + engines: {node: '>= 14'} + dependencies: + degenerator: 5.0.1 + ip: 1.1.8 + netmask: 2.0.2 + /package-json@6.5.0: resolution: {integrity: sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==} engines: {node: '>=8'} @@ -19468,6 +19673,9 @@ packages: resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} engines: {node: '>=8'} + /pend@1.2.0: + resolution: {integrity: sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==} + /picocolors@1.0.0: resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} @@ -19608,6 +19816,15 @@ packages: picocolors: 1.0.0 source-map-js: 1.0.2 + /postcss@8.4.32: + resolution: {integrity: sha512-D/kj5JNu6oo2EIy+XL/26JEDTlIbB8hw85G8StOE6L74RQAVVP5rej6wxCNqyMbR4RkPfqvezVbPw81Ngd6Kcw==} + engines: {node: ^10 || ^12 || >=14} + dependencies: + nanoid: 3.3.7 + picocolors: 1.0.0 + source-map-js: 1.0.2 + dev: true + /prelude-ls@1.1.2: resolution: {integrity: sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==} engines: {node: '>= 0.8.0'} @@ -19686,7 +19903,6 @@ packages: /progress@2.0.3: resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==} engines: {node: '>=0.4.0'} - dev: true /promise-inflight@1.0.1(bluebird@3.7.2): resolution: {integrity: sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==} @@ -19762,6 +19978,24 @@ packages: forwarded: 0.2.0 ipaddr.js: 1.9.1 + /proxy-agent@6.3.1: + resolution: {integrity: sha512-Rb5RVBy1iyqOtNl15Cw/llpeLH8bsb37gM1FUfKQ+Wck6xHlbAhWGUFiTRHtkjqGTA5pSHz6+0hrPW/oECihPQ==} + engines: {node: '>= 14'} + dependencies: + agent-base: 7.1.0 + debug: 4.3.4(supports-color@8.1.1) + http-proxy-agent: 7.0.0 + https-proxy-agent: 7.0.2 + lru-cache: 7.18.3 + pac-proxy-agent: 7.0.1 + proxy-from-env: 1.1.0 + socks-proxy-agent: 8.0.2 + transitivePeerDependencies: + - supports-color + + /proxy-from-env@1.1.0: + resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} + /psl@1.9.0: resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==} @@ -19790,6 +20024,36 @@ packages: resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} + /puppeteer-chromium-resolver@21.0.0: + resolution: {integrity: sha512-sjOX4ACPz4KgYuoHBPEwpDlcFY6W4n13dXhJh+cV449YzeO0diNpLgAQqTfaTJr/GFA6sLt4eNb0h+VJkuvGgg==} + requiresBuild: true + dependencies: + '@puppeteer/browsers': 1.9.0 + eight-colors: 1.0.3 + gauge: 5.0.1 + puppeteer-core: 21.6.0 + transitivePeerDependencies: + - bufferutil + - encoding + - supports-color + - utf-8-validate + + /puppeteer-core@21.6.0: + resolution: {integrity: sha512-1vrzbp2E1JpBwtIIrriWkN+A0afUxkqRuFTC3uASc5ql6iuK9ppOdIU/CPGKwOyB4YFIQ16mRbK0PK19mbXnaQ==} + engines: {node: '>=16.13.2'} + dependencies: + '@puppeteer/browsers': 1.9.0 + chromium-bidi: 0.5.1(devtools-protocol@0.0.1203626) + cross-fetch: 4.0.0 + debug: 4.3.4(supports-color@8.1.1) + devtools-protocol: 0.0.1203626 + ws: 8.14.2 + transitivePeerDependencies: + - bufferutil + - encoding + - supports-color + - utf-8-validate + /pure-rand@6.0.4: resolution: {integrity: sha512-LA0Y9kxMYv47GIPJy6MI84fqTd2HmYZI83W/kM/SkKfDlajnZYfmXFTxkbY+xSBPkLJxltMa9hIkmdc29eguMA==} dev: true @@ -19826,6 +20090,9 @@ packages: /queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + /queue-tick@1.0.1: + resolution: {integrity: sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==} + /quick-lru@5.1.1: resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} engines: {node: '>=10'} @@ -20708,7 +20975,6 @@ packages: /signal-exit@4.1.0: resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} engines: {node: '>=14'} - dev: true /silent-error@1.1.1: resolution: {integrity: sha512-n4iEKyNcg4v6/jpb3c0/iyH2G1nzUNl7Gpqtn/mHIJK9S/q/7MCfoO4rwVOoO59qPFIc0hVHvMbiOJ0NdtxKKw==} @@ -20768,7 +21034,6 @@ packages: /smart-buffer@4.2.0: resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} - dev: true /snake-case@3.0.4: resolution: {integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==} @@ -20847,6 +21112,16 @@ packages: socks: 2.3.3 dev: true + /socks-proxy-agent@8.0.2: + resolution: {integrity: sha512-8zuqoLv1aP/66PHF5TqwJ7Czm3Yv32urJQHrVyhD7mmA6d61Zv8cIXQYPTWwmg6qlupnPvs/QKDmfa4P/qct2g==} + engines: {node: '>= 14'} + dependencies: + agent-base: 7.1.0 + debug: 4.3.4(supports-color@8.1.1) + socks: 2.7.1 + transitivePeerDependencies: + - supports-color + /socks@2.3.3: resolution: {integrity: sha512-o5t52PCNtVdiOvzMry7wU4aOqYWL0PeCXRWBEiJow4/i/wr+wpsJQ9awEu1EonLIqsfGd5qSgDdxEOvCdmBEpA==} engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} @@ -20855,6 +21130,13 @@ packages: smart-buffer: 4.2.0 dev: true + /socks@2.7.1: + resolution: {integrity: sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==} + engines: {node: '>= 10.13.0', npm: '>= 3.0.0'} + dependencies: + ip: 2.0.0 + smart-buffer: 4.2.0 + /sort-keys@2.0.0: resolution: {integrity: sha512-/dPCrG1s3ePpWm6yBbxZq5Be1dXGLyLn9Z791chDC3NFrpkVbWGzkBwPN1knaciexFXgRJ7hzdnwZ4stHSDmjg==} engines: {node: '>=4'} @@ -21051,6 +21333,12 @@ packages: resolution: {integrity: sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==} dev: true + /streamx@2.15.5: + resolution: {integrity: sha512-9thPGMkKC2GctCzyCUjME3yR03x2xNo0GPKGkRw2UMYN+gqWa9uqpyNWhmsNCutU5zHmkUum0LsCRQTXUgUCAg==} + dependencies: + fast-fifo: 1.3.2 + queue-tick: 1.0.1 + /strict-uri-encode@1.1.0: resolution: {integrity: sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ==} engines: {node: '>=0.10.0'} @@ -21496,6 +21784,20 @@ packages: resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} engines: {node: '>=6'} + /tar-fs@3.0.4: + resolution: {integrity: sha512-5AFQU8b9qLfZCX9zp2duONhPmZv0hGYiBPJsyUdqMjzq/mqVpy/rEUSeHk1+YitmxugaptgBh5oDGU3VsAJq4w==} + dependencies: + mkdirp-classic: 0.5.3 + pump: 3.0.0 + tar-stream: 3.1.6 + + /tar-stream@3.1.6: + resolution: {integrity: sha512-B/UyjYwPpMBv+PaFSWAmtYjwdrlEaZQEhMIBFNC5oEG8lpiW8XjcSdmEaClj28ArfKScKHs2nshz3k2le6crsg==} + dependencies: + b4a: 1.6.4 + fast-fifo: 1.3.2 + streamx: 2.15.5 + /temp@0.9.4: resolution: {integrity: sha512-yYrrsWnrXMcdsnu/7YMYAofM1ktpL5By7vZhf15CrXijWWrEYZks5AXBudalfSWJLlnen/QUJUB5aoB0kqZUGA==} engines: {node: '>=6.0.0'} @@ -21926,7 +22228,6 @@ packages: /tslib@2.6.2: resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} - dev: true /tsutils@3.21.0(typescript@5.2.2): resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} @@ -22072,6 +22373,12 @@ packages: has-symbols: 1.0.3 which-boxed-primitive: 1.0.2 + /unbzip2-stream@1.4.3: + resolution: {integrity: sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==} + dependencies: + buffer: 5.7.1 + through: 2.3.8 + /underscore.string@3.3.6: resolution: {integrity: sha512-VoC83HWXmCrF6rgkyxS9GHv8W9Q5nhMKho+OadDJGzL2oDYbYEppBaCMH6pFlwLeqj2QS+hhkw2kpXkSdD1JxQ==} dependencies: @@ -22206,6 +22513,9 @@ packages: engines: {node: '>= 4'} dev: true + /urlpattern-polyfill@9.0.0: + resolution: {integrity: sha512-WHN8KDQblxd32odxeIgo83rdVDE2bvdkb86it7bMhYZwWKJz0+O0RK/eZiHYnM+zgt/U7hAHOlCQGfjjvSkw2g==} + /use@3.1.1: resolution: {integrity: sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==} engines: {node: '>=0.10.0'} @@ -22312,8 +22622,8 @@ packages: resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} engines: {node: '>= 0.8'} - /vite@4.5.0(terser@5.24.0): - resolution: {integrity: sha512-ulr8rNLA6rkyFAlVWw2q5YJ91v098AFQ2R0PRFwPzREXOUJQPtFUG0t+/ZikhaOCDqFoDhN6/v8Sq0o4araFAw==} + /vite@4.5.1(terser@5.24.0): + resolution: {integrity: sha512-AXXFaAJ8yebyqzoNB9fu2pHoo/nWX+xZlaRwoeYUxEqBO+Zj4msE5G+BhGBll9lYEKv9Hfks52PAF2X7qDYXQA==} engines: {node: ^14.18.0 || >=16.0.0} hasBin: true peerDependencies: @@ -22341,7 +22651,7 @@ packages: optional: true dependencies: esbuild: 0.18.20 - postcss: 8.4.31 + postcss: 8.4.32 rollup: 3.29.4 terser: 5.24.0 optionalDependencies: @@ -22852,6 +23162,12 @@ packages: y18n: 5.0.8 yargs-parser: 21.1.1 + /yauzl@2.10.0: + resolution: {integrity: sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==} + dependencies: + buffer-crc32: 0.2.13 + fd-slicer: 1.1.0 + /yn@3.1.1: resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} engines: {node: '>=6'} diff --git a/tests/vite-app/package.json b/tests/vite-app/package.json index e26a47122..1f8b43423 100644 --- a/tests/vite-app/package.json +++ b/tests/vite-app/package.json @@ -22,8 +22,9 @@ "lint:js:fix": "eslint . --fix", "start:prebuild": "ember b", "start:dev": "vite", + "start:test": "vite --open /tests", "test": "concurrently \"npm:lint\" \"npm:test:*\" --names \"lint,test:\"", - "test:ember": "ember test" + "test:ember": "node ./node_modules/@embroider/vite/src/bin/run-tests.mjs" }, "devDependencies": { "@babel/core": "^7.22.6", @@ -74,7 +75,10 @@ "stylelint-prettier": "^3.0.0", "tracked-built-ins": "^3.1.1", "typescript": "^5.1.6", - "vite": "^4.3.9" + "vite": "^4.3.9", + "http_server": "^1.0.12", + "js-reporters": "^2.1.0", + "puppeteer-chromium-resolver": "^21.0.0" }, "engines": { "node": "16.* || >= 18" @@ -84,5 +88,3 @@ }, "main": "package.json" } - - diff --git a/tests/vite-app/tests/setup-harness.js b/tests/vite-app/tests/setup-harness.js new file mode 100644 index 000000000..ee9c6785f --- /dev/null +++ b/tests/vite-app/tests/setup-harness.js @@ -0,0 +1,60 @@ +/* eslint-disable no-console */ +import { autoRegister } from 'js-reporters'; + +export async function setupQunit() { + const qunit = await import('qunit'); + + const runner = autoRegister(); + const tap = qunit.reporters.tap; + tap.init(runner, { log: console.info }); + + QUnit.config.urlConfig.push({ + id: 'smoke_tests', + label: 'Enable Smoke Tests', + tooltip: 'Enable Smoke Tests', + }); + + QUnit.config.urlConfig.push({ + id: 'ci', + label: 'Enable CI Mode', + tooltip: 'CI mode makes tests run faster by sacrificing UI responsiveness', + }); + + await Promise.resolve(); + + console.log(`[HARNESS] ci=${hasFlag('ci')}`); + + if (!hasFlag('ci')) { + // since all of our tests are synchronous, the QUnit + // UI never has a chance to rerender / update. This + // leads to a very long "white screen" when running + // the tests + // + // this adds a very small amount of async, just to allow + // the QUnit UI to rerender once per module completed + const pause = () => + new Promise((res) => { + setTimeout(res, 1); + }); + + let start = performance.now(); + qunit.testDone(async () => { + let gap = performance.now() - start; + if (gap > 200) { + await pause(); + start = performance.now(); + } + }); + + qunit.moduleDone(pause); + } + + qunit.done((details) => { + console.log(JSON.stringify({...details, type: '[HARNESS] done'})); + }); +} + +function hasFlag(flag) { + let location = typeof window !== 'undefined' && window.location; + return location && new RegExp(`[?&]${flag}`).test(location.search); +} diff --git a/tests/vite-app/tests/test-helper.js b/tests/vite-app/tests/test-helper.js index 283a1126e..b0acb7d54 100644 --- a/tests/vite-app/tests/test-helper.js +++ b/tests/vite-app/tests/test-helper.js @@ -4,9 +4,10 @@ import * as QUnit from 'qunit'; import { setApplication } from '@ember/test-helpers'; import { setup } from 'qunit-dom'; import { start } from 'ember-qunit'; +import { setupQunit } from "./setup-harness"; setApplication(Application.create(config.APP)); setup(QUnit.assert); -start(); +setupQunit().then(() => start()); diff --git a/tests/vite-app/vite.config.mts b/tests/vite-app/vite.config.mts index 047704207..5e79a08ca 100644 --- a/tests/vite-app/vite.config.mts +++ b/tests/vite-app/vite.config.mts @@ -11,8 +11,6 @@ import { import { resolve } from "path"; import { babel } from "@rollup/plugin-babel"; -const root = "app"; - export default defineConfig({ root: ".", plugins: [ From c67aa71130396b07ed4a7b216026b3818a8ff321 Mon Sep 17 00:00:00 2001 From: patrickpircher Date: Fri, 8 Dec 2023 17:23:31 +0100 Subject: [PATCH 32/55] fix --- packages/vite/src/assets.ts | 1 + packages/vite/src/hbs.ts | 16 +++++++--------- packages/vite/src/optimize-deps.ts | 6 +----- packages/vite/src/template-tag.ts | 9 +++------ 4 files changed, 12 insertions(+), 20 deletions(-) diff --git a/packages/vite/src/assets.ts b/packages/vite/src/assets.ts index e11098e18..76c5c0f8a 100644 --- a/packages/vite/src/assets.ts +++ b/packages/vite/src/assets.ts @@ -311,6 +311,7 @@ export function assets(options?: { entryDirectories?: string[] }): Plugin { } }, async writeBundle(options) { + return const { compatAppBuilder } = getCompatAppBuilder({ rewrittenPackageCache: resolverLoader.resolver.packageCache, root, diff --git a/packages/vite/src/hbs.ts b/packages/vite/src/hbs.ts index 01091b6e1..5ea407db0 100644 --- a/packages/vite/src/hbs.ts +++ b/packages/vite/src/hbs.ts @@ -1,12 +1,11 @@ // TODO: I copied this from @embroider/addon-dev, it needs to be its own package // (or be in shared-internals or core) -import { createFilter } from '@rollup/pluginutils'; -import type { PluginContext, ResolvedId } from 'rollup'; -import type { Plugin } from 'vite'; -import { readFileSync } from 'fs'; -import { hbsToJS } from '@embroider/core'; +import {createFilter} from '@rollup/pluginutils'; +import type {PluginContext, ResolvedId} from 'rollup'; +import type {Plugin} from 'vite'; +import {hbsToJS} from '@embroider/core'; import assertNever from 'assert-never'; -import { parse as pathParse } from 'path/posix'; +import {parse as pathParse} from 'path/posix'; import makeDebug from 'debug'; const debug = makeDebug('embroider:hbs-plugin'); @@ -32,7 +31,7 @@ export function hbs(): Plugin { } }, - load(id: string) { + transform(source: string, id: string) { const meta = getMeta(this, id); if (!meta) { return; @@ -40,8 +39,7 @@ export function hbs(): Plugin { switch (meta.type) { case 'template': - let input = readFileSync(id.replace(/\.hbs\?.*/, '.hbs'), 'utf8'); - let code = hbsToJS(input); + let code = hbsToJS(source); return { code, }; diff --git a/packages/vite/src/optimize-deps.ts b/packages/vite/src/optimize-deps.ts index c6f8bae5c..e4cbd2333 100644 --- a/packages/vite/src/optimize-deps.ts +++ b/packages/vite/src/optimize-deps.ts @@ -8,10 +8,6 @@ export interface OptimizeDeps { export function optimizeDeps(root: string): OptimizeDeps { return { - exclude: ['@embroider/macros', ...addons(root)], - extensions: ['.hbs', '.gjs'], - esbuildOptions: { - plugins: [esBuildResolver()], - }, + exclude: ['@embroider/macros', ...addons(root)] }; } diff --git a/packages/vite/src/template-tag.ts b/packages/vite/src/template-tag.ts index a66adbc3f..9ae9f2197 100644 --- a/packages/vite/src/template-tag.ts +++ b/packages/vite/src/template-tag.ts @@ -1,6 +1,5 @@ import { createFilter } from '@rollup/pluginutils'; import type { Plugin } from 'vite'; -import { readFileSync } from 'fs'; import { Preprocessor } from 'content-tag'; const gjsFilter = createFilter('**/*.{gjs,gts}?(\\?)*'); @@ -20,7 +19,7 @@ export function templateTag(): Plugin { async resolveId(id: string, importer: string | undefined) { // prevent resolve loop during vite build - if (id.endsWith('.hbs')) return null; + if (id.split('/').slice(-1)[0].split('.')[1]) return null; let resolution; try { resolution = await this.resolve(id, importer, { @@ -53,13 +52,11 @@ export function templateTag(): Plugin { } }, - load(id: string) { + transform(code: string, id: string) { if (!gjsFilter(id)) { return null; } - id = id.replace(/\.gjs\?.*/, '.gjs'); - id = id.replace(/\.gts\?.*/, '.gts'); - return preprocessor.process(readFileSync(id, 'utf8'), id); + return preprocessor.process(code, id); }, }; } From 08741084121810287e5fa0b070f913a3cee77eba Mon Sep 17 00:00:00 2001 From: patrickpircher Date: Fri, 8 Dec 2023 17:23:58 +0100 Subject: [PATCH 33/55] fix --- packages/vite/src/assets.ts | 1 - packages/vite/src/optimize-deps.ts | 6 +++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/packages/vite/src/assets.ts b/packages/vite/src/assets.ts index 76c5c0f8a..e11098e18 100644 --- a/packages/vite/src/assets.ts +++ b/packages/vite/src/assets.ts @@ -311,7 +311,6 @@ export function assets(options?: { entryDirectories?: string[] }): Plugin { } }, async writeBundle(options) { - return const { compatAppBuilder } = getCompatAppBuilder({ rewrittenPackageCache: resolverLoader.resolver.packageCache, root, diff --git a/packages/vite/src/optimize-deps.ts b/packages/vite/src/optimize-deps.ts index e4cbd2333..c6f8bae5c 100644 --- a/packages/vite/src/optimize-deps.ts +++ b/packages/vite/src/optimize-deps.ts @@ -8,6 +8,10 @@ export interface OptimizeDeps { export function optimizeDeps(root: string): OptimizeDeps { return { - exclude: ['@embroider/macros', ...addons(root)] + exclude: ['@embroider/macros', ...addons(root)], + extensions: ['.hbs', '.gjs'], + esbuildOptions: { + plugins: [esBuildResolver()], + }, }; } From e3b62272df1e39e2e234436a4a17bc8786e06d93 Mon Sep 17 00:00:00 2001 From: patrickpircher Date: Fri, 8 Dec 2023 23:26:49 +0100 Subject: [PATCH 34/55] fix --- packages/vite/src/assets.ts | 71 ++++++++++++++++----------- packages/vite/src/template-tag.ts | 3 +- tests/vite-app/tests/setup-harness.js | 3 +- 3 files changed, 45 insertions(+), 32 deletions(-) diff --git a/packages/vite/src/assets.ts b/packages/vite/src/assets.ts index e11098e18..419a5d785 100644 --- a/packages/vite/src/assets.ts +++ b/packages/vite/src/assets.ts @@ -6,8 +6,8 @@ import { AppFiles } from '@embroider/core/src/app-files'; import glob from 'fast-glob'; import CompatApp from '@embroider/compat/src/compat-app'; import type { InMemoryAsset } from '@embroider/core/src/asset'; -import type { Plugin } from 'vite'; -import { readJSONSync } from 'fs-extra'; +import type { Plugin, ViteDevServer} from 'vite'; +import {readJSONSync} from 'fs-extra'; type Options = { root: string; @@ -19,7 +19,7 @@ let InMemoryAssets: Record = {}; let environment = 'production'; -function getCompatAppBuilder({ rewrittenPackageCache, root, compatAppDir }: Options) { +function getCompatAppBuilder({rewrittenPackageCache, root, compatAppDir}: Options) { const workingDir = locateEmbroiderWorkingDir(dirname(root)); const rewrittenApp = join(workingDir, 'rewritten-app'); const options = readJSONSync(join(workingDir, 'resolver.json')); @@ -48,11 +48,11 @@ function getCompatAppBuilder({ rewrittenPackageCache, root, compatAppDir }: Opti } files.push('config/environment.js'); return new AppFiles( - engine, - new Set(files), - new Set(), - extensionsPattern(extensions), - compatAppBuilder['podModulePrefix']() + engine, + new Set(files), + new Set(), + extensionsPattern(extensions), + compatAppBuilder['podModulePrefix']() ); }); const assets: Asset[] = []; @@ -65,10 +65,10 @@ function getCompatAppBuilder({ rewrittenPackageCache, root, compatAppDir }: Opti } assets.push(asset); } - return { compatAppBuilder, assets, appFiles }; + return {compatAppBuilder, assets, appFiles}; } -function generateEmberHtml({ root }: Options) { +function generateEmberHtml({root}: Options) { const cwd = dirname(root); const workingDir = locateEmbroiderWorkingDir(cwd); const legacyApp = readJSONSync(join(workingDir, 'legacy-app-info.json')); @@ -86,13 +86,13 @@ function generateEmberHtml({ root }: Options) { writeFileSync(join(workingDir, 'ember-test-index.html'), testhtml); } -async function generateHtml({ rewrittenPackageCache, root }: Options, appOrTest: 'app' | 'test') { +async function generateHtml({rewrittenPackageCache, root}: Options, appOrTest: 'app' | 'test') { const file = appOrTest === 'app' ? 'index.html' : 'tests/index.html'; if (InMemoryAssets[file]) { return InMemoryAssets[file]; } - generateEmberHtml({ rewrittenPackageCache, root }); - const { compatAppBuilder, assets, appFiles } = getCompatAppBuilder({ rewrittenPackageCache, root }); + generateEmberHtml({rewrittenPackageCache, root}); + const {compatAppBuilder, assets, appFiles} = getCompatAppBuilder({rewrittenPackageCache, root}); const emberENV = compatAppBuilder['configTree'].readConfig().EmberENV; @@ -103,12 +103,12 @@ async function generateHtml({ rewrittenPackageCache, root }: Options, appOrTest: return InMemoryAssets[file]; } -async function generateAppEntries({ rewrittenPackageCache, root }: Options) { +async function generateAppEntries({rewrittenPackageCache, root}: Options) { const pkg = rewrittenPackageCache.get(root); if (InMemoryAssets[`assets/${pkg.name}.js`]) { return InMemoryAssets[`assets/${pkg.name}.js`]; } - const { compatAppBuilder, assets, appFiles } = getCompatAppBuilder({ rewrittenPackageCache, root }); + const {compatAppBuilder, assets, appFiles} = getCompatAppBuilder({rewrittenPackageCache, root}); const emberENV = compatAppBuilder['configTree'].readConfig().EmberENV; // TODO: improve code to only rebuild app asset @@ -118,30 +118,34 @@ async function generateAppEntries({ rewrittenPackageCache, root }: Options) { InMemoryAssets[`assets/${pkg.name}.js`] = (appFile as InMemoryAsset).source.toString(); InMemoryAssets[`assets/${pkg.name}.js`] += ` import buildAppEnv from '../../config/environment.js'; - function merge(source, target) { - for (const [key, val] of Object.entries(source)) { - if (val !== null && typeof val === \`object\`) { - target[key] ??=new val.__proto__.constructor(); - merge(val, target[key]); - } else { - target[key] = val; + if (!runningTests) { + function merge(source, target) { + for (const [key, val] of Object.entries(source)) { + if (val !== null && typeof val === \`object\`) { + target[key] ??=new val.__proto__.constructor(); + merge(val, target[key]); + } else { + target[key] = val; + } } + return target; // we're replacing in-situ, so this is more for chaining than anything else } - return target; // we're replacing in-situ, so this is more for chaining than anything else + merge(buildAppEnv('${environment}'), require('${pkg.name}/config/environment').default); } - merge(buildAppEnv('${environment}'), require('${pkg.name}/config/environment').default) `; return InMemoryAssets[`assets/${pkg.name}.js`]; } -async function generateTestEntries({ rewrittenPackageCache, root }: Options) { - const { compatAppBuilder, assets, appFiles } = getCompatAppBuilder({ rewrittenPackageCache, root }); +async function generateTestEntries({rewrittenPackageCache, root}: Options) { + //const pkg = rewrittenPackageCache.get(root); + const {compatAppBuilder, assets, appFiles} = getCompatAppBuilder({rewrittenPackageCache, root}); const emberENV = compatAppBuilder['configTree'].readConfig().EmberENV; const internalAssets = await compatAppBuilder['updateAssets'](assets, appFiles, emberENV); const appFile = internalAssets.find(a => (a as any).relativePath === `assets/test.js`)!; InMemoryAssets[`assets/test.js`] = (appFile as InMemoryAsset).source.toString(); + return InMemoryAssets[`assets/test.js`]; } @@ -188,11 +192,13 @@ export function assets(options?: { entryDirectories?: string[] }): Plugin { const testsIndex = join(tests, 'index.html').replace(/\\/g, '/'); const entries = ['routes', 'templates', 'controllers'].concat(options?.entryDirectories || []); + let viteDevServer: ViteDevServer; return { name: 'assets', enforce: 'pre', configureServer(server) { + viteDevServer = server; const watcher = server.watcher; // this is required because we do not open the /tests url directly and via the middleware watcher.on('add', filename => { @@ -224,12 +230,10 @@ export function assets(options?: { entryDirectories?: string[] }): Plugin { }); } }); - environment = 'development'; server.middlewares.use((req, _res, next) => { // this is necessary so that /tests will load tests/index // otherwise this would only happen when /tests/ or /tests/index.html is opened if (req.originalUrl?.match(/\/tests($|\?)/) || req.originalUrl?.startsWith('/tests/index.html')) { - environment = 'test'; req.originalUrl = '/tests/index.html'; (req as any).url = '/tests/index.html'; if (InMemoryAssets['index.html']) { @@ -265,9 +269,18 @@ export function assets(options?: { entryDirectories?: string[] }): Plugin { order: 'pre', async handler(_html, ctx) { if (ctx.filename === appIndex) { + if (viteDevServer) environment = 'development'; return await generateHtml({ rewrittenPackageCache: resolverLoader.resolver.packageCache, root }, 'app'); } if (ctx.filename === testsIndex) { + if (viteDevServer && environment !== 'test') { + delete InMemoryAssets[`assets/${appMeta.name}.js`]; + const module = viteDevServer.moduleGraph.getModuleById(join(root, `assets/${appMeta.name}.js`))!; + if (module) { + viteDevServer.moduleGraph.invalidateModule(module); + } + environment = 'test'; + } return await generateHtml({ rewrittenPackageCache: resolverLoader.resolver.packageCache, root }, 'test'); } }, @@ -292,7 +305,7 @@ export function assets(options?: { entryDirectories?: string[] }): Plugin { return ` // fix for qunit import '/assets/test-setup.js'; - import '/assets/test-entries.js' + import '/assets/test-entries.js'; `; } if (id.endsWith('/assets/test-setup.js')) { diff --git a/packages/vite/src/template-tag.ts b/packages/vite/src/template-tag.ts index 9ae9f2197..c79397911 100644 --- a/packages/vite/src/template-tag.ts +++ b/packages/vite/src/template-tag.ts @@ -19,7 +19,8 @@ export function templateTag(): Plugin { async resolveId(id: string, importer: string | undefined) { // prevent resolve loop during vite build - if (id.split('/').slice(-1)[0].split('.')[1]) return null; + if (id.endsWith('.gts')) return null; + if (id.endsWith('.gjs')) return null; let resolution; try { resolution = await this.resolve(id, importer, { diff --git a/tests/vite-app/tests/setup-harness.js b/tests/vite-app/tests/setup-harness.js index ee9c6785f..16a212ba4 100644 --- a/tests/vite-app/tests/setup-harness.js +++ b/tests/vite-app/tests/setup-harness.js @@ -1,9 +1,8 @@ /* eslint-disable no-console */ import { autoRegister } from 'js-reporters'; +import qunit from 'qunit'; export async function setupQunit() { - const qunit = await import('qunit'); - const runner = autoRegister(); const tap = qunit.reporters.tap; tap.init(runner, { log: console.info }); From 16d1dd832241a0d06894848379c71a552d557887 Mon Sep 17 00:00:00 2001 From: patrickpircher Date: Fri, 8 Dec 2023 23:52:36 +0100 Subject: [PATCH 35/55] fix --- packages/vite/src/assets.ts | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/packages/vite/src/assets.ts b/packages/vite/src/assets.ts index 419a5d785..d296400af 100644 --- a/packages/vite/src/assets.ts +++ b/packages/vite/src/assets.ts @@ -118,8 +118,7 @@ async function generateAppEntries({rewrittenPackageCache, root}: Options) { InMemoryAssets[`assets/${pkg.name}.js`] = (appFile as InMemoryAsset).source.toString(); InMemoryAssets[`assets/${pkg.name}.js`] += ` import buildAppEnv from '../../config/environment.js'; - if (!runningTests) { - function merge(source, target) { + function merge(source, target) { for (const [key, val] of Object.entries(source)) { if (val !== null && typeof val === \`object\`) { target[key] ??=new val.__proto__.constructor(); @@ -130,8 +129,7 @@ async function generateAppEntries({rewrittenPackageCache, root}: Options) { } return target; // we're replacing in-situ, so this is more for chaining than anything else } - merge(buildAppEnv('${environment}'), require('${pkg.name}/config/environment').default); - } + merge(buildAppEnv(runningTests ? 'test' : '${environment}'), require('${pkg.name}/config/environment').default); `; return InMemoryAssets[`assets/${pkg.name}.js`]; } From b9ddc233ea16e3e904ceb479e4f5009f2482aa54 Mon Sep 17 00:00:00 2001 From: patrickpircher Date: Sat, 9 Dec 2023 00:48:30 +0100 Subject: [PATCH 36/55] fix env --- packages/compat/src/compat-app-builder.ts | 49 ++++++++++++++--------- packages/vite/src/assets.ts | 9 ++++- 2 files changed, 37 insertions(+), 21 deletions(-) diff --git a/packages/compat/src/compat-app-builder.ts b/packages/compat/src/compat-app-builder.ts index 5fc3c61a5..2a8c99de5 100644 --- a/packages/compat/src/compat-app-builder.ts +++ b/packages/compat/src/compat-app-builder.ts @@ -1103,12 +1103,36 @@ export class CompatAppBuilder { } private addLegacyAppInfo() { - const config = this.configTree.readConfig() as any; + const project = this.compatApp.legacyEmberAppInstance.project as any; + const prod = project.config('production') + const dev = project.config('development'); + const test = project.config('test'); const options = { ...this.compatApp.legacyEmberAppInstance.options, addons: this.compatApp.legacyEmberAppInstance.project.addons, }; const patterns = configReplacePatterns(options); + function replacemnts(env: any) { + + return [ + '{{rootURL}}', + '{{content-for "head"}}', + '{{content-for "head-footer"}}', + '{{content-for "body"}}', + '{{content-for "body-footer"}}', + '{{content-for "test-head"}}', + '{{content-for "test-head-footer"}}', + '{{content-for "test-body"}}', + '{{content-for "test-body-footer"}}', + ].map(str => { + const pattern = patterns.find(p => p.match.test(str))!; + return { + match: pattern?.match.source, + exact: str, + replacement: str.replace(pattern.match, pattern.replacement.bind(null, env)), + }; + }); + } outputJSONSync( join(locateEmbroiderWorkingDir(this.compatApp.root), 'legacy-app-info.json'), { @@ -1122,24 +1146,11 @@ export class CompatAppBuilder { root: this.compatApp.legacyEmberAppInstance.project.root, pkg: this.compatApp.legacyEmberAppInstance.project.pkg, }, - configReplacePatterns: [ - '{{rootURL}}', - '{{content-for "head"}}', - '{{content-for "head-footer"}}', - '{{content-for "body"}}', - '{{content-for "body-footer"}}', - '{{content-for "test-head"}}', - '{{content-for "test-head-footer"}}', - '{{content-for "test-body"}}', - '{{content-for "test-body-footer"}}', - ].map(str => { - const pattern = patterns.find(p => p.match.test(str))!; - return { - match: pattern?.match.source, - exact: str, - replacement: str.replace(pattern.match, pattern.replacement.bind(this, config)), - }; - }), + configReplacePatterns: { + production: replacemnts(prod), + development: replacemnts(dev), + test: replacemnts(test), + } }, { spaces: 2 } ); diff --git a/packages/vite/src/assets.ts b/packages/vite/src/assets.ts index d296400af..353a98a55 100644 --- a/packages/vite/src/assets.ts +++ b/packages/vite/src/assets.ts @@ -74,12 +74,17 @@ function generateEmberHtml({root}: Options) { const legacyApp = readJSONSync(join(workingDir, 'legacy-app-info.json')); let html = readFileSync(join(cwd, 'index.html')).toString(); let testhtml = readFileSync(join(cwd, 'tests', 'index.html')).toString(); - legacyApp.configReplacePatterns.forEach((pattern: any) => { + const env = environment === 'production' ? 'prodcution' : 'development'; + legacyApp.configReplacePatterns[env].forEach((pattern: any) => { html = html.replace(new RegExp(pattern.exact, 'g'), pattern.replacement); + }); + legacyApp.configReplacePatterns.test.forEach((pattern: any) => { testhtml = testhtml.replace(new RegExp(pattern.exact, 'g'), pattern.replacement); }); - legacyApp.configReplacePatterns.forEach((pattern: any) => { + legacyApp.configReplacePatterns[env].forEach((pattern: any) => { html = html.replace(new RegExp(pattern.match, 'g'), pattern.replacement); + }); + legacyApp.configReplacePatterns.test.forEach((pattern: any) => { testhtml = testhtml.replace(new RegExp(pattern.match, 'g'), pattern.replacement); }); writeFileSync(join(workingDir, 'ember-index.html'), html); From 7f160ac522e64b0c51f994a31d003cb012e31cf6 Mon Sep 17 00:00:00 2001 From: patrickpircher Date: Sun, 10 Dec 2023 00:26:35 +0100 Subject: [PATCH 37/55] re-add addons, otherwise I get duplicates for glimmer-vm, which does not like it --- packages/vite/src/addons.ts | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 packages/vite/src/addons.ts diff --git a/packages/vite/src/addons.ts b/packages/vite/src/addons.ts new file mode 100644 index 000000000..1a5d29101 --- /dev/null +++ b/packages/vite/src/addons.ts @@ -0,0 +1,20 @@ +import { ResolverLoader, packageName } from '@embroider/core'; + +export function addons(root: string): string[] { + let rloader = new ResolverLoader(root); + let { options } = rloader.resolver; + let names = new Set(); + for (let from of Object.keys(options.renameModules)) { + let pName = packageName(from); + if (pName) { + names.add(pName); + } + } + for (let from of Object.keys(options.renamePackages)) { + names.add(from); + } + for (let name of options.engines.map(e => e.activeAddons).flat().map(a => a.name)) { + names.add(name); + } + return [...names]; +} From a58c41b81db8e756ba650b2c5d0008d7662f5bbb Mon Sep 17 00:00:00 2001 From: patrickpircher Date: Sun, 10 Dec 2023 00:27:23 +0100 Subject: [PATCH 38/55] resolve ts gjs gts extensions --- packages/compat/src/compat-app-builder.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/compat/src/compat-app-builder.ts b/packages/compat/src/compat-app-builder.ts index 2a8c99de5..679bea3f1 100644 --- a/packages/compat/src/compat-app-builder.ts +++ b/packages/compat/src/compat-app-builder.ts @@ -202,7 +202,7 @@ export class CompatAppBuilder { // For TS, we defer to ember-cli-babel, and the setting for // "enableTypescriptTransform" can be set with and without // ember-cli-typescript - return ['.wasm', '.mjs', '.js', '.json', '.ts', '.hbs', '.hbs.js']; + return ['.wasm', '.mjs', '.js', '.json', '.ts', '.hbs', '.hbs.js', '.gjs', '.gts']; } private *emberEntrypoints(htmlTreePath: string): IterableIterator { From a12e437d97844e148cccbc6bb78a25c9a44fd781 Mon Sep 17 00:00:00 2001 From: patrickpircher Date: Sun, 10 Dec 2023 00:32:25 +0100 Subject: [PATCH 39/55] resolve components helpers with explicit extensions --- packages/core/src/module-resolver.ts | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/packages/core/src/module-resolver.ts b/packages/core/src/module-resolver.ts index c534036a3..192326822 100644 --- a/packages/core/src/module-resolver.ts +++ b/packages/core/src/module-resolver.ts @@ -532,22 +532,25 @@ export class Resolver { } private *componentTemplateCandidates(inPackageName: string) { - yield { prefix: '/templates/components/', suffix: '' }; - yield { prefix: '/components/', suffix: '/template' }; + yield { prefix: '/templates/components/', suffix: '.hbs' }; + yield { prefix: '/components/', suffix: '/template.hbs' }; let pods = this.podPrefix(inPackageName); if (pods) { - yield { prefix: `${pods}/components/`, suffix: '/template' }; + yield { prefix: `${pods}/components/`, suffix: '/template.hbs' }; } } private *componentJSCandidates(inPackageName: string) { - yield { prefix: '/components/', suffix: '' }; - yield { prefix: '/components/', suffix: '/component' }; + yield { prefix: '/components/', suffix: '.js' }; + yield { prefix: '/components/', suffix: '.ts' }; + yield { prefix: '/components/', suffix: '/component.js' }; + yield { prefix: '/components/', suffix: '/component.ts' }; let pods = this.podPrefix(inPackageName); if (pods) { - yield { prefix: `${pods}/components/`, suffix: '/component' }; + yield { prefix: `${pods}/components/`, suffix: '/component.js' }; + yield { prefix: `${pods}/components/`, suffix: '/component.ts' }; } } @@ -1152,7 +1155,7 @@ export class Resolver { if (filename.match(/\.(hbs|js|hbs\.js)$/)) { yield filename; } else { - for (let ext of ['.js', '.hbs.js', '.hbs']) { + for (let ext of ['.js', '.hbs.js', '.hbs', '.ts']) { yield `${filename}${ext}`; } } From 8aabfacaa2ca414d51899d7f5534de351e42154d Mon Sep 17 00:00:00 2001 From: patrickpircher Date: Sun, 10 Dec 2023 00:41:36 +0100 Subject: [PATCH 40/55] ts resolving --- pnpm-lock.yaml | 3 +++ tests/vite-app/app/components/example.hbs | 2 +- tests/vite-app/app/helpers/say-hello.ts | 4 ++++ tests/vite-app/app/routes/{application.js => application.ts} | 0 4 files changed, 8 insertions(+), 1 deletion(-) create mode 100644 tests/vite-app/app/helpers/say-hello.ts rename tests/vite-app/app/routes/{application.js => application.ts} (100%) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index bb9aac52c..4c672b1fe 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -972,6 +972,9 @@ importers: '@types/jsdom': specifier: ^16.2.11 version: 16.2.15 + '@types/resolve': + specifier: ^1.20.0 + version: 1.20.6 rollup: specifier: ^3.23.0 version: 3.29.4 diff --git a/tests/vite-app/app/components/example.hbs b/tests/vite-app/app/components/example.hbs index cde1c788b..f6973675c 100644 --- a/tests/vite-app/app/components/example.hbs +++ b/tests/vite-app/app/components/example.hbs @@ -1 +1 @@ -
hey {{@message}}
\ No newline at end of file +
hey {{@message}} {{(say-hello)}}
\ No newline at end of file diff --git a/tests/vite-app/app/helpers/say-hello.ts b/tests/vite-app/app/helpers/say-hello.ts new file mode 100644 index 000000000..61d5bffc7 --- /dev/null +++ b/tests/vite-app/app/helpers/say-hello.ts @@ -0,0 +1,4 @@ + +export default function () { + return 'hello'; +} diff --git a/tests/vite-app/app/routes/application.js b/tests/vite-app/app/routes/application.ts similarity index 100% rename from tests/vite-app/app/routes/application.js rename to tests/vite-app/app/routes/application.ts From 0b2d0d779b3d35a529ae62272edae958f694a4b4 Mon Sep 17 00:00:00 2001 From: patrick Date: Mon, 11 Dec 2023 12:33:51 +0100 Subject: [PATCH 41/55] update --- packages/compat/package.json | 3 +- packages/compat/src/compat-app-builder.ts | 233 ++++++++++++++++------ packages/compat/src/compat-app.ts | 47 +++-- packages/core/src/asset.ts | 1 + packages/core/src/ember-html.ts | 2 +- packages/core/src/module-resolver.ts | 3 + packages/vite/src/assets.ts | 215 +++----------------- pnpm-lock.yaml | 6 +- tests/vite-app/package.json | 3 +- 9 files changed, 245 insertions(+), 268 deletions(-) diff --git a/packages/compat/package.json b/packages/compat/package.json index 03c7a87ab..ff587850d 100644 --- a/packages/compat/package.json +++ b/packages/compat/package.json @@ -63,7 +63,8 @@ "tree-sync": "^2.1.0", "typescript-memoize": "^1.0.1", "walk-sync": "^3.0.0", - "yargs": "^17.0.1" + "yargs": "^17.0.1", + "fast-glob": "^3.3.2" }, "devDependencies": { "@embroider/core": "workspace:^", diff --git a/packages/compat/src/compat-app-builder.ts b/packages/compat/src/compat-app-builder.ts index 679bea3f1..22b304b19 100644 --- a/packages/compat/src/compat-app-builder.ts +++ b/packages/compat/src/compat-app-builder.ts @@ -18,7 +18,7 @@ import { cacheBustingPluginVersion, cacheBustingPluginPath, Resolver, - locateEmbroiderWorkingDir, + locateEmbroiderWorkingDir, RewrittenPackageCache, } from '@embroider/core'; import walkSync from 'walk-sync'; import { resolve as resolvePath, posix } from 'path'; @@ -61,6 +61,8 @@ import { configReplacePatterns } from 'ember-cli/lib/utilities/ember-app-utils'; import type CompatApp from './compat-app'; import { SyncDir } from './sync-dir'; +import glob from 'fast-glob'; +import { readFileSync } from 'fs'; // This exists during the actual broccoli build step. As opposed to CompatApp, // which also exists during pipeline-construction time. @@ -328,8 +330,8 @@ export class CompatAppBuilder { private impliedAssets( type: keyof ImplicitAssetPaths, engine: AppFiles, - emberENV?: EmberENV ): (OnDiskAsset | InMemoryAsset)[] { + const appName = engine.engine.package.name; let result: (OnDiskAsset | InMemoryAsset)[] = this.impliedAddonAssets(type, engine).map( (sourcePath: string): OnDiskAsset => { let stats = statSync(sourcePath); @@ -353,7 +355,24 @@ export class CompatAppBuilder { result.unshift({ kind: 'in-memory', relativePath: '_ember_env_.js', - source: `window.EmberENV={ ...(window.EmberENV || {}), ...${JSON.stringify(emberENV, null, 2)} };`, + source: ` + (function() { + function merge(e, t) { + for (var r in t) + e[r] = t[r] + return e + } + try { + var metaName = '${appName}' + '/config/environment'; + var rawConfig = document.querySelector('meta[name="' + metaName + '"]').getAttribute('content'); + var config = JSON.parse(decodeURIComponent(rawConfig)); + window.EmberENV = merge(window.EmberENV || {}, config.EmberENV); + } catch (e) { + window.EmberENV = {}; + console.error('Could not read config from meta tag with name "${appName}"'); + } + })(); + `, }); result.push({ @@ -369,7 +388,9 @@ export class CompatAppBuilder { kind: 'in-memory', relativePath: '_testing_suffix_.js', source: ` - var runningTests=true; + import * as EmberTesting from 'ember-testing'; + define('ember-testing', () => EmberTesting); + runningTests=true; if (typeof Testem !== 'undefined' && (typeof QUnit !== 'undefined' || typeof Mocha !== 'undefined')) { Testem.hookIntoTestFramework(); }`, @@ -495,8 +516,7 @@ export class CompatAppBuilder { private insertEmberApp( asset: ParsedEmberAsset, appFiles: AppFiles[], - prepared: Map, - emberENV: EmberENV + prepared: Map ) { let html = asset.html; @@ -527,7 +547,7 @@ export class CompatAppBuilder { html.insertStyleLink(html.styles, `assets/${this.origAppPackage.name}.css`); const parentEngine = appFiles.find(e => !e.engine.parent)!; - let vendorJS = this.implicitScriptsAsset(prepared, parentEngine, emberENV); + let vendorJS = this.implicitScriptsAsset(prepared, parentEngine); if (vendorJS) { html.insertScriptTag(html.implicitScripts, vendorJS.relativePath); } @@ -557,7 +577,7 @@ export class CompatAppBuilder { let implicitTestScriptsAsset = this.implicitTestScriptsAsset(prepared, parentEngine); if (implicitTestScriptsAsset) { - html.insertScriptTag(html.implicitTestScripts, implicitTestScriptsAsset.relativePath); + html.insertScriptTag(html.implicitTestScripts, implicitTestScriptsAsset.relativePath, { type: 'module' }); } let implicitTestStylesAsset = this.implicitTestStylesAsset(prepared, parentEngine); @@ -568,12 +588,11 @@ export class CompatAppBuilder { private implicitScriptsAsset( prepared: Map, - application: AppFiles, - emberENV: EmberENV + application: AppFiles ): InternalAsset | undefined { let asset = prepared.get('assets/vendor.js'); if (!asset) { - let implicitScripts = this.impliedAssets('implicit-scripts', application, emberENV); + let implicitScripts = this.impliedAssets('implicit-scripts', application); if (implicitScripts.length > 0) { asset = new ConcatenatedAsset('assets/vendor.js', implicitScripts, this.resolvableExtensionsPattern); prepared.set(asset.relativePath, asset); @@ -768,7 +787,7 @@ export class CompatAppBuilder { ); } - private prepareAsset(asset: Asset, appFiles: AppFiles[], prepared: Map, emberENV: EmberENV) { + private prepareAsset(asset: Asset, appFiles: AppFiles[], prepared: Map) { if (asset.kind === 'ember') { let prior = this.assets.get(asset.relativePath); let parsed: ParsedEmberAsset; @@ -779,7 +798,7 @@ export class CompatAppBuilder { } else { parsed = new ParsedEmberAsset(asset); } - this.insertEmberApp(parsed, appFiles, prepared, emberENV); + this.insertEmberApp(parsed, appFiles, prepared); prepared.set(asset.relativePath, new BuiltEmberAsset(parsed)); } else { prepared.set(asset.relativePath, asset); @@ -788,12 +807,11 @@ export class CompatAppBuilder { private prepareAssets( requestedAssets: Asset[], - appFiles: AppFiles[], - emberENV: EmberENV + appFiles: AppFiles[] ): Map { let prepared: Map = new Map(); for (let asset of requestedAssets) { - this.prepareAsset(asset, appFiles, prepared, emberENV); + this.prepareAsset(asset, appFiles, prepared); } return prepared; } @@ -821,38 +839,38 @@ export class CompatAppBuilder { } } - private updateOnDiskAsset(asset: OnDiskAsset) { - let destination = join(this.root, asset.relativePath); + private updateOnDiskAsset(dst: string, asset: OnDiskAsset) { + let destination = join(dst, asset.relativePath); ensureDirSync(dirname(destination)); copySync(asset.sourcePath, destination, { dereference: true }); } - private updateInMemoryAsset(asset: InMemoryAsset) { - let destination = join(this.root, asset.relativePath); + private updateInMemoryAsset(dst: string, asset: InMemoryAsset) { + let destination = join(dst, asset.relativePath); ensureDirSync(dirname(destination)); writeFileSync(destination, asset.source, 'utf8'); } - private updateBuiltEmberAsset(asset: BuiltEmberAsset) { - let destination = join(this.root, asset.relativePath); + private updateBuiltEmberAsset(dst: string, asset: BuiltEmberAsset) { + let destination = join(dst, asset.relativePath); ensureDirSync(dirname(destination)); writeFileSync(destination, asset.source, 'utf8'); } - private async updateConcatenatedAsset(asset: ConcatenatedAsset) { + private async updateConcatenatedAsset(dst: string, asset: ConcatenatedAsset) { let concat = new SourceMapConcat({ - outputFile: join(this.root, asset.relativePath), + outputFile: join(dst, asset.relativePath), mapCommentType: asset.relativePath.endsWith('.js') ? 'line' : 'block', - baseDir: this.root, + baseDir: dst, }); if (process.env.EMBROIDER_CONCAT_STATS) { let MeasureConcat = (await import('@embroider/core/src/measure-concat')).default; - concat = new MeasureConcat(asset.relativePath, concat, this.root); + concat = new MeasureConcat(asset.relativePath, concat, dst); } for (let source of asset.sources) { switch (source.kind) { case 'on-disk': - concat.addFile(explicitRelative(this.root, source.sourcePath)); + concat.addFile(explicitRelative(dst, source.sourcePath)); break; case 'in-memory': if (typeof source.source !== 'string') { @@ -867,25 +885,25 @@ export class CompatAppBuilder { await concat.end(); } - private async updateAssets(requestedAssets: Asset[], appFiles: AppFiles[], emberENV: EmberENV) { - let assets = this.prepareAssets(requestedAssets, appFiles, emberENV); + private async updateAssets(requestedAssets: Asset[], appFiles: AppFiles[], noWrite?: boolean, dst: string = this.root) { + let assets = this.prepareAssets(requestedAssets, appFiles); for (let asset of assets.values()) { - if (this.assetIsValid(asset, this.assets.get(asset.relativePath))) { + if (noWrite || this.assetIsValid(asset, this.assets.get(asset.relativePath))) { continue; } debug('rebuilding %s', asset.relativePath); switch (asset.kind) { case 'on-disk': - this.updateOnDiskAsset(asset); + this.updateOnDiskAsset(dst, asset); break; case 'in-memory': - this.updateInMemoryAsset(asset); + this.updateInMemoryAsset(dst, asset); break; case 'built-ember': - this.updateBuiltEmberAsset(asset); + this.updateBuiltEmberAsset(dst, asset); break; case 'concatenated-asset': - await this.updateConcatenatedAsset(asset); + await this.updateConcatenatedAsset(dst, asset); break; default: assertNever(asset); @@ -953,10 +971,9 @@ export class CompatAppBuilder { } let appFiles = this.updateAppJS(inputPaths.appJS); - let emberENV = this.configTree.readConfig().EmberENV; let assets = this.gatherAssets(inputPaths); - let finalAssets = await this.updateAssets(assets, appFiles, emberENV); + let finalAssets = await this.updateAssets(assets, appFiles); let assetPaths = assets.map(asset => asset.relativePath); @@ -995,7 +1012,6 @@ export class CompatAppBuilder { let resolverConfig = this.resolverConfig(appFiles); this.addResolverConfig(resolverConfig); - this.addEnvironment(); this.addLegacyAppInfo(); let babelConfig = this.babelConfig(resolverConfig); this.addBabelConfig(babelConfig); @@ -1005,6 +1021,92 @@ export class CompatAppBuilder { ); } + prepareHtml(htmlPath: string, env: string) { + const workingDir = locateEmbroiderWorkingDir(this.root); + const legacyApp = readJSONSync(join(workingDir, 'legacy-app-info.json')); + let html = readFileSync(join(this.root, htmlPath)).toString(); + legacyApp.configReplacePatterns[env].forEach((pattern: any) => { + html = html.replace(new RegExp(pattern.match, 'g'), pattern.replacement); + }); + + const emberENV = legacyApp.environments[env]; + + html.replace(new RegExp(``), (match, content) => { + return match.replace(content, encodeURIComponent(JSON.stringify(emberENV))); + }); + return html; + } + + async rebuildHtml(root: string, environment: 'production' | 'development', appOrTestHtml: 'app' | 'test') { + const file = appOrTestHtml === 'app' ? 'index.html' : 'tests/index.html'; + const env = appOrTestHtml === 'test' ? 'test' : (environment === 'production' ? 'production' : 'development'); + const html = this.prepareHtml(file, env); + + + const assets: Asset[] = []; + for (let asset of this.emberEntrypoints('.')) { + if (asset.relativePath === file) { + (asset as EmberAsset).source = html; + assets.push(asset); + } + } + + const engines = this.partitionEngines(root); + const appFiles = engines.map((engine: Engine) => { + return new AppFiles( + engine, + new Set(), + new Set(), + extensionsPattern(this.resolvableExtensions()), + this.podModulePrefix() + ); + }); + + const internalAssets = await this.updateAssets(assets, appFiles, true); + const indexFile = internalAssets.find(a => (a as any).relativePath === file)!; + return (indexFile as BuiltEmberAsset).source; + } + + async rebuildEntryFile(root: string) { + const engines = this.partitionEngines(root); + const rewrittenPackageCache = RewrittenPackageCache.shared('embroider', this.root); + const pkg = rewrittenPackageCache.get(this.root); + const relativePath = root.endsWith('/tests') ? 'assets/test.js' : `assets/${pkg.name}.js`; + + const appFiles = engines.map((engine: Engine) => { + const isTest = engine.sourcePath.endsWith('/tests'); + let files = glob.sync(`**/*{${this.resolvableExtensions().join(',')}}`, { + cwd: engine.sourcePath, + }) as string[]; + if (isTest) { + files = files.map(f => `tests/${f}`); + } + files.push('config/environment.js'); + return new AppFiles( + engine, + new Set(files), + new Set(), + extensionsPattern(this.resolvableExtensions()), + this.podModulePrefix() + ); + }); + const assets: Asset[] = []; + for (let asset of this.emberEntrypoints('.')) { + (asset as EmberAsset).source = this.prepareHtml(asset.relativePath, 'development'); + assets.push(asset); + } + const internalAssets = await this.updateAssets(assets, appFiles, true); + const indexFile = internalAssets.find(a => (a as any).relativePath === relativePath)!; + return (indexFile as BuiltEmberAsset).source; + } + + async copyPublicAssetsToDir(dir: string) { + const assets = this.gatherAssets({ + publicTree: 'public' + } as any); + await this.updateAssets(assets, [], false, dir); + } + private combinePackageJSON(meta: AppMeta): object { let pkgLayers: any[] = [this.origAppPackage.packageJSON]; let fastbootConfig = this.fastbootConfig; @@ -1094,41 +1196,40 @@ export class CompatAppBuilder { outputJSONSync(join(locateEmbroiderWorkingDir(this.compatApp.root), 'resolver.json'), config, { spaces: 2 }); } - private addEnvironment() { - outputJSONSync( - join(locateEmbroiderWorkingDir(this.compatApp.root), 'environment.json'), - this.configTree.readConfig(), - { spaces: 2 } - ); - } - private addLegacyAppInfo() { const project = this.compatApp.legacyEmberAppInstance.project as any; - const prod = project.config('production') - const dev = project.config('development'); + const production = project.config('production') + const development = project.config('development'); const test = project.config('test'); const options = { ...this.compatApp.legacyEmberAppInstance.options, addons: this.compatApp.legacyEmberAppInstance.project.addons, }; const patterns = configReplacePatterns(options); - function replacemnts(env: any) { - + function replacements(env: any) { + const contentFor = [ + 'head', + 'head-footer', + 'body', + 'body-footer', + 'test-head', + 'test-head-footer', + 'test-body', + 'test-body-footer', + ] + const match: Record = { + '{{rootURL}}': /{{\s?rootURL\s?}}/g.source + }; + contentFor.forEach(c => { + match[`{{content-for "${c}"}}`] = /{{content-for ['"]xxx["']}}/g.source.replace('xxx', c); + }) return [ '{{rootURL}}', - '{{content-for "head"}}', - '{{content-for "head-footer"}}', - '{{content-for "body"}}', - '{{content-for "body-footer"}}', - '{{content-for "test-head"}}', - '{{content-for "test-head-footer"}}', - '{{content-for "test-body"}}', - '{{content-for "test-body-footer"}}', + ...contentFor.map(c => `{{content-for "${c}"}}`) ].map(str => { const pattern = patterns.find(p => p.match.test(str))!; return { - match: pattern?.match.source, - exact: str, + match: match[str], replacement: str.replace(pattern.match, pattern.replacement.bind(null, env)), }; }); @@ -1146,10 +1247,16 @@ export class CompatAppBuilder { root: this.compatApp.legacyEmberAppInstance.project.root, pkg: this.compatApp.legacyEmberAppInstance.project.pkg, }, + tests: true, + environments: { + production, + development, + test + }, configReplacePatterns: { - production: replacemnts(prod), - development: replacemnts(dev), - test: replacemnts(test), + production: replacements(production), + development: replacements(development), + test: replacements(test), } }, { spaces: 2 } @@ -1623,8 +1730,6 @@ interface TreeNames { configTree: BroccoliNode; } -type EmberENV = unknown; - type InternalAsset = OnDiskAsset | InMemoryAsset | BuiltEmberAsset | ConcatenatedAsset; class ParsedEmberAsset { diff --git a/packages/compat/src/compat-app.ts b/packages/compat/src/compat-app.ts index aeca7523e..f203f6883 100644 --- a/packages/compat/src/compat-app.ts +++ b/packages/compat/src/compat-app.ts @@ -1,25 +1,34 @@ import type { Node as BroccoliNode } from 'broccoli-node-api'; -import type { Stage, Package } from '@embroider/core'; -import { PackageCache, WaitForTrees, RewrittenPackageCache, locateEmbroiderWorkingDir } from '@embroider/core'; +import type { + AddonInstance, + AddonMeta, + EmberAppInstance, + OutputFileToInputFileMap, + Package, + PackageInfo, + Stage +} from '@embroider/core'; +import { locateEmbroiderWorkingDir, PackageCache, RewrittenPackageCache, WaitForTrees } from '@embroider/core'; import type Options from './options'; import { optionsWithDefaults } from './options'; import { Memoize } from 'typescript-memoize'; import { sync as pkgUpSync } from 'pkg-up'; -import { join, dirname, isAbsolute, sep } from 'path'; +import { dirname, isAbsolute, join, sep } from 'path'; import buildFunnel from 'broccoli-funnel'; import mergeTrees from 'broccoli-merge-trees'; import { WatchedDir } from 'broccoli-source'; import resolve from 'resolve'; import { V1Config, WriteV1Config } from './v1-config'; -import { WriteV1AppBoot, ReadV1AppBoot } from './v1-appboot'; -import type { - AddonMeta, - EmberAppInstance, - OutputFileToInputFileMap, - PackageInfo, - AddonInstance, -} from '@embroider/core'; -import { writeJSONSync, ensureDirSync, copySync, readdirSync, pathExistsSync, existsSync } from 'fs-extra'; +import { ReadV1AppBoot, WriteV1AppBoot } from './v1-appboot'; +import { + copySync, + ensureDirSync, + existsSync, + pathExistsSync, + readdirSync, + readJSONSync, + writeJSONSync +} from 'fs-extra'; import AddToTree from './add-to-tree'; import DummyPackage from './dummy-package'; import type { TransformOptions } from '@babel/core'; @@ -801,6 +810,20 @@ export default class CompatApp { }); } + static getCachedBuilderInstance(root: string) { + const workingDir = locateEmbroiderWorkingDir(root); + const options = readJSONSync(join(workingDir, 'resolver.json')); + const legacyApp = readJSONSync(join(workingDir, 'legacy-app-info.json')); + legacyApp.project.configPath = () => ''; + const compatApp = new CompatApp(legacyApp, options); + compatApp.config['lastConfig'] = legacyApp.environments.development; + return compatApp.instantiate( + root, + RewrittenPackageCache.shared('embroider', root), + compatApp.config + ); + } + private inTrees(prevStageTree: BroccoliNode) { let publicTree = this.publicTree; let configTree = this.config; diff --git a/packages/core/src/asset.ts b/packages/core/src/asset.ts index da4ca018e..9f421373e 100644 --- a/packages/core/src/asset.ts +++ b/packages/core/src/asset.ts @@ -35,6 +35,7 @@ export interface EmberAsset extends BaseAsset { // absolute path to where we will find the html file sourcePath: string; + source?: string; // these describe the file at sourcePath so we can avoid rebuilding when it // hasn't changed diff --git a/packages/core/src/ember-html.ts b/packages/core/src/ember-html.ts index 99108a9a8..9f7e21809 100644 --- a/packages/core/src/ember-html.ts +++ b/packages/core/src/ember-html.ts @@ -83,7 +83,7 @@ export class PreparedEmberHTML { implicitTestStyles: Placeholder; constructor(private asset: EmberAsset) { - this.dom = new JSDOM(readFileSync(asset.sourcePath, 'utf8')); + this.dom = new JSDOM(asset.source || readFileSync(asset.sourcePath, 'utf8')); let html = asset.prepare(this.dom); this.javascript = Placeholder.replacing(html.javascript); this.styles = Placeholder.replacing(html.styles); diff --git a/packages/core/src/module-resolver.ts b/packages/core/src/module-resolver.ts index 192326822..e64b4e979 100644 --- a/packages/core/src/module-resolver.ts +++ b/packages/core/src/module-resolver.ts @@ -533,6 +533,7 @@ export class Resolver { private *componentTemplateCandidates(inPackageName: string) { yield { prefix: '/templates/components/', suffix: '.hbs' }; + yield { prefix: '/templates/components/', suffix: '/index.hbs' }; yield { prefix: '/components/', suffix: '/template.hbs' }; let pods = this.podPrefix(inPackageName); @@ -543,7 +544,9 @@ export class Resolver { private *componentJSCandidates(inPackageName: string) { yield { prefix: '/components/', suffix: '.js' }; + yield { prefix: '/components/', suffix: '/index.js' }; yield { prefix: '/components/', suffix: '.ts' }; + yield { prefix: '/components/', suffix: '/index.ts' }; yield { prefix: '/components/', suffix: '/component.js' }; yield { prefix: '/components/', suffix: '/component.ts' }; diff --git a/packages/vite/src/assets.ts b/packages/vite/src/assets.ts index 353a98a55..965ab87ea 100644 --- a/packages/vite/src/assets.ts +++ b/packages/vite/src/assets.ts @@ -1,13 +1,10 @@ -import type { Asset, EmberAsset, Engine, RewrittenPackageCache } from '@embroider/core'; -import {extensionsPattern, getAppMeta, locateEmbroiderWorkingDir, Resolver, ResolverLoader} from '@embroider/core'; -import { join, dirname } from 'path/posix'; -import { existsSync, readFileSync, writeFileSync } from 'fs'; -import { AppFiles } from '@embroider/core/src/app-files'; -import glob from 'fast-glob'; +import type { RewrittenPackageCache } from '@embroider/core'; +import { getAppMeta, locateEmbroiderWorkingDir, Resolver, ResolverLoader } from '@embroider/core'; +import { join } from 'path/posix'; +import { existsSync, readFileSync } from 'fs'; import CompatApp from '@embroider/compat/src/compat-app'; -import type { InMemoryAsset } from '@embroider/core/src/asset'; -import type { Plugin, ViteDevServer} from 'vite'; -import {readJSONSync} from 'fs-extra'; +import type { Plugin } from 'vite'; +import * as process from 'process'; type Options = { root: string; @@ -17,138 +14,29 @@ type Options = { let InMemoryAssets: Record = {}; -let environment = 'production'; +let environment: 'production' | 'development' = 'production'; -function getCompatAppBuilder({rewrittenPackageCache, root, compatAppDir}: Options) { - const workingDir = locateEmbroiderWorkingDir(dirname(root)); - const rewrittenApp = join(workingDir, 'rewritten-app'); - const options = readJSONSync(join(workingDir, 'resolver.json')); - const env = readJSONSync(join(workingDir, 'environment.json')); - const legacyApp = readJSONSync(join(workingDir, 'legacy-app-info.json')); - legacyApp.project.configPath = () => join(root, 'config', 'environment.js'); - legacyApp.tests = true; - const compatApp = new CompatApp(legacyApp, options); - compatApp['config']['lastConfig'] = env; - console.log('rew', rewrittenApp) - - const compatAppBuilder = compatApp['instantiate'](compatAppDir || rewrittenApp, rewrittenPackageCache, compatApp['config']); - - compatAppBuilder['assetIsValid'] = () => false; - - const engines = compatAppBuilder['partitionEngines'](root); - const extensions = compatAppBuilder['resolvableExtensions']().concat(['.ts', '.gts']); - - const appFiles = engines.map((engine: Engine) => { - const isTest = engine.sourcePath.endsWith('/tests'); - let files = glob.sync(`**/*{${extensions.join(',')}}`, { - cwd: engine.sourcePath, - }); - if (isTest) { - files = files.map(f => `tests/${f}`); - } - files.push('config/environment.js'); - return new AppFiles( - engine, - new Set(files), - new Set(), - extensionsPattern(extensions), - compatAppBuilder['podModulePrefix']() - ); - }); - const assets: Asset[] = []; - for (let asset of compatAppBuilder['emberEntrypoints']('.')) { - if (asset.relativePath === 'index.html') { - (asset as EmberAsset).sourcePath = join(workingDir, 'ember-index.html'); - } - if (asset.relativePath === 'tests/index.html') { - (asset as EmberAsset).sourcePath = join(workingDir, 'ember-test-index.html'); - } - assets.push(asset); - } - return {compatAppBuilder, assets, appFiles}; -} - -function generateEmberHtml({root}: Options) { - const cwd = dirname(root); - const workingDir = locateEmbroiderWorkingDir(cwd); - const legacyApp = readJSONSync(join(workingDir, 'legacy-app-info.json')); - let html = readFileSync(join(cwd, 'index.html')).toString(); - let testhtml = readFileSync(join(cwd, 'tests', 'index.html')).toString(); - const env = environment === 'production' ? 'prodcution' : 'development'; - legacyApp.configReplacePatterns[env].forEach((pattern: any) => { - html = html.replace(new RegExp(pattern.exact, 'g'), pattern.replacement); - }); - legacyApp.configReplacePatterns.test.forEach((pattern: any) => { - testhtml = testhtml.replace(new RegExp(pattern.exact, 'g'), pattern.replacement); - }); - legacyApp.configReplacePatterns[env].forEach((pattern: any) => { - html = html.replace(new RegExp(pattern.match, 'g'), pattern.replacement); - }); - legacyApp.configReplacePatterns.test.forEach((pattern: any) => { - testhtml = testhtml.replace(new RegExp(pattern.match, 'g'), pattern.replacement); - }); - writeFileSync(join(workingDir, 'ember-index.html'), html); - writeFileSync(join(workingDir, 'ember-test-index.html'), testhtml); -} - -async function generateHtml({rewrittenPackageCache, root}: Options, appOrTest: 'app' | 'test') { +async function generateHtml(root: string, appOrTest: 'app' | 'test') { const file = appOrTest === 'app' ? 'index.html' : 'tests/index.html'; - if (InMemoryAssets[file]) { - return InMemoryAssets[file]; + if (!InMemoryAssets[file]) { + InMemoryAssets[file] = await CompatApp.getCachedBuilderInstance(process.cwd()).rebuildHtml(root, environment, appOrTest); } - generateEmberHtml({rewrittenPackageCache, root}); - const {compatAppBuilder, assets, appFiles} = getCompatAppBuilder({rewrittenPackageCache, root}); - - const emberENV = compatAppBuilder['configTree'].readConfig().EmberENV; - // TODO: improve internal code to only rebuild html file and not assets - const internalAssets = await compatAppBuilder['updateAssets'](assets, appFiles, emberENV); - const indexFile = internalAssets.find(a => (a as any).relativePath === file)!; - InMemoryAssets[file] = (indexFile as InMemoryAsset).source.toString(); return InMemoryAssets[file]; } async function generateAppEntries({rewrittenPackageCache, root}: Options) { const pkg = rewrittenPackageCache.get(root); - if (InMemoryAssets[`assets/${pkg.name}.js`]) { - return InMemoryAssets[`assets/${pkg.name}.js`]; + if (!InMemoryAssets[`assets/${pkg.name}.js`]) { + InMemoryAssets[`assets/${pkg.name}.js`] = await CompatApp.getCachedBuilderInstance(process.cwd()).rebuildEntryFile(root); } - const {compatAppBuilder, assets, appFiles} = getCompatAppBuilder({rewrittenPackageCache, root}); - - const emberENV = compatAppBuilder['configTree'].readConfig().EmberENV; - // TODO: improve code to only rebuild app asset - // const asset = assets.filter(a => (a as OnDiskAsset).relativePath.endsWith(`assets/${pkg.name}.js`)); - const internalAssets = await compatAppBuilder['updateAssets'](assets, appFiles, emberENV); - const appFile = internalAssets.find(a => (a as any).relativePath === `assets/${pkg.name}.js`)!; - InMemoryAssets[`assets/${pkg.name}.js`] = (appFile as InMemoryAsset).source.toString(); - InMemoryAssets[`assets/${pkg.name}.js`] += ` - import buildAppEnv from '../../config/environment.js'; - function merge(source, target) { - for (const [key, val] of Object.entries(source)) { - if (val !== null && typeof val === \`object\`) { - target[key] ??=new val.__proto__.constructor(); - merge(val, target[key]); - } else { - target[key] = val; - } - } - return target; // we're replacing in-situ, so this is more for chaining than anything else - } - merge(buildAppEnv(runningTests ? 'test' : '${environment}'), require('${pkg.name}/config/environment').default); - `; return InMemoryAssets[`assets/${pkg.name}.js`]; } -async function generateTestEntries({rewrittenPackageCache, root}: Options) { - //const pkg = rewrittenPackageCache.get(root); - const {compatAppBuilder, assets, appFiles} = getCompatAppBuilder({rewrittenPackageCache, root}); - - const emberENV = compatAppBuilder['configTree'].readConfig().EmberENV; - const internalAssets = await compatAppBuilder['updateAssets'](assets, appFiles, emberENV); - - const appFile = internalAssets.find(a => (a as any).relativePath === `assets/test.js`)!; - InMemoryAssets[`assets/test.js`] = (appFile as InMemoryAsset).source.toString(); - +async function generateTestEntries(testFolder: string) { + if (!InMemoryAssets[`assets/test.js`]) { + InMemoryAssets[`assets/test.js`] = await CompatApp.getCachedBuilderInstance(process.cwd()).rebuildEntryFile(testFolder); + } return InMemoryAssets[`assets/test.js`]; } @@ -191,17 +79,16 @@ export function assets(options?: { entryDirectories?: string[] }): Plugin { const resolverLoader = new ResolverLoader(cwd); const appMeta = getAppMeta(cwd); const tests = join(cwd, 'tests'); - const appIndex = join(cwd, 'index.html').replace(/\\/g, '/'); - const testsIndex = join(tests, 'index.html').replace(/\\/g, '/'); + const appIndex = join(cwd, 'index.html'); + const config = join(cwd, 'config', 'environment.js'); + const testsIndex = join(tests, 'index.html'); const entries = ['routes', 'templates', 'controllers'].concat(options?.entryDirectories || []); - let viteDevServer: ViteDevServer; return { name: 'assets', enforce: 'pre', configureServer(server) { - viteDevServer = server; const watcher = server.watcher; // this is required because we do not open the /tests url directly and via the middleware watcher.on('add', filename => { @@ -232,26 +119,17 @@ export function assets(options?: { entryDirectories?: string[] }): Plugin { type: 'full-reload', }); } + if (filename === config) { + const module = server.moduleGraph.getModuleById(config)!; + server.moduleGraph.invalidateModule(module); + } }); server.middlewares.use((req, _res, next) => { // this is necessary so that /tests will load tests/index // otherwise this would only happen when /tests/ or /tests/index.html is opened - if (req.originalUrl?.match(/\/tests($|\?)/) || req.originalUrl?.startsWith('/tests/index.html')) { + if (req.originalUrl?.match(/\/tests($|\?)/)) { req.originalUrl = '/tests/index.html'; (req as any).url = '/tests/index.html'; - if (InMemoryAssets['index.html']) { - // need to invalidate modules when switching between app and tests - server.moduleGraph.invalidateAll(); - InMemoryAssets = {}; - } - return next(); - } - if (req.originalUrl === '/' || req.originalUrl === '/index.html') { - // need to invalidate modules when switching between app and tests - if (InMemoryAssets['tests/index.html']) { - server.moduleGraph.invalidateAll(); - InMemoryAssets = {}; - } return next(); } if (req.originalUrl?.includes('?')) { @@ -272,19 +150,10 @@ export function assets(options?: { entryDirectories?: string[] }): Plugin { order: 'pre', async handler(_html, ctx) { if (ctx.filename === appIndex) { - if (viteDevServer) environment = 'development'; - return await generateHtml({ rewrittenPackageCache: resolverLoader.resolver.packageCache, root }, 'app'); + return await generateHtml(root, 'app'); } if (ctx.filename === testsIndex) { - if (viteDevServer && environment !== 'test') { - delete InMemoryAssets[`assets/${appMeta.name}.js`]; - const module = viteDevServer.moduleGraph.getModuleById(join(root, `assets/${appMeta.name}.js`))!; - if (module) { - viteDevServer.moduleGraph.invalidateModule(module); - } - environment = 'test'; - } - return await generateHtml({ rewrittenPackageCache: resolverLoader.resolver.packageCache, root }, 'test'); + return await generateHtml(root, 'test'); } }, }, @@ -293,7 +162,7 @@ export function assets(options?: { entryDirectories?: string[] }): Plugin { if (id.endsWith('/testem.js')) { return ''; } - if (id === join(cwd, 'config', 'environment.js').replace(/\\/g, '/')) { + if (id === join(cwd, 'config', 'environment.js')) { const code = readFileSync(id).toString(); return code.replace('module.exports = ', 'export default '); } @@ -304,38 +173,14 @@ export function assets(options?: { entryDirectories?: string[] }): Plugin { rewrittenPackageCache: resolverLoader.resolver.packageCache, }); } - if (id.endsWith('/test.js')) { - return ` - // fix for qunit - import '/assets/test-setup.js'; - import '/assets/test-entries.js'; - `; - } - if (id.endsWith('/assets/test-setup.js')) { - return ` - import * as EmberTesting from 'ember-testing'; - define('ember-testing', () => EmberTesting); - `; - } - if (id.endsWith('/assets/test-entries.js')) { - return generateTestEntries({ - root: tests, - rewrittenPackageCache: resolverLoader.resolver.packageCache, - }); + if (id.endsWith('/assets/test.js')) { + return generateTestEntries(tests); } return readFileSync(rewrittenApp + id.replace(root + '/assets/', '/assets/').split('?')[0]).toString(); } }, async writeBundle(options) { - const { compatAppBuilder } = getCompatAppBuilder({ - rewrittenPackageCache: resolverLoader.resolver.packageCache, - root, - compatAppDir: options.dir || join(cwd, 'dist'), - }); - const assets = compatAppBuilder['gatherAssets']({ - publicTree: 'public', - } as any); - await compatAppBuilder['updateAssets'](assets, [], {}); + await CompatApp.getCachedBuilderInstance(root).copyPublicAssetsToDir(options.dir || join(cwd, 'dist')); }, }; } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4c672b1fe..16d7a805f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -241,6 +241,9 @@ importers: escape-string-regexp: specifier: ^4.0.0 version: 4.0.0 + fast-glob: + specifier: ^3.3.2 + version: 3.3.2 fast-sourcemap-concat: specifier: ^1.4.0 version: 1.4.0 @@ -972,9 +975,6 @@ importers: '@types/jsdom': specifier: ^16.2.11 version: 16.2.15 - '@types/resolve': - specifier: ^1.20.0 - version: 1.20.6 rollup: specifier: ^3.23.0 version: 3.29.4 diff --git a/tests/vite-app/package.json b/tests/vite-app/package.json index 1f8b43423..ad05220c2 100644 --- a/tests/vite-app/package.json +++ b/tests/vite-app/package.json @@ -85,6 +85,5 @@ }, "ember": { "edition": "octane" - }, - "main": "package.json" + } } From a0f5f6412f9775f2dc8431c3d62e604b70fc61e1 Mon Sep 17 00:00:00 2001 From: patrick Date: Mon, 11 Dec 2023 13:20:17 +0100 Subject: [PATCH 42/55] fix lint --- packages/compat/src/compat-app-builder.ts | 98 +++++++-------- packages/compat/src/compat-app.ts | 10 +- packages/vite/src/addons.ts | 5 +- packages/vite/src/assets.ts | 21 ++-- packages/vite/src/bin/run-tests.mjs | 139 ++++++++++------------ packages/vite/src/hbs.ts | 10 +- tests/vite-app/app/helpers/say-hello.ts | 1 - tests/vite-app/package.json | 1 - tests/vite-app/tests/setup-harness.js | 94 +++++++-------- tests/vite-app/tests/test-helper.js | 2 +- 10 files changed, 185 insertions(+), 196 deletions(-) diff --git a/packages/compat/src/compat-app-builder.ts b/packages/compat/src/compat-app-builder.ts index 22b304b19..75e7aeff4 100644 --- a/packages/compat/src/compat-app-builder.ts +++ b/packages/compat/src/compat-app-builder.ts @@ -18,7 +18,8 @@ import { cacheBustingPluginVersion, cacheBustingPluginPath, Resolver, - locateEmbroiderWorkingDir, RewrittenPackageCache, + locateEmbroiderWorkingDir, + RewrittenPackageCache, } from '@embroider/core'; import walkSync from 'walk-sync'; import { resolve as resolvePath, posix } from 'path'; @@ -327,10 +328,7 @@ export class CompatAppBuilder { return extensionsPattern(this.resolvableExtensions()); } - private impliedAssets( - type: keyof ImplicitAssetPaths, - engine: AppFiles, - ): (OnDiskAsset | InMemoryAsset)[] { + private impliedAssets(type: keyof ImplicitAssetPaths, engine: AppFiles): (OnDiskAsset | InMemoryAsset)[] { const appName = engine.engine.package.name; let result: (OnDiskAsset | InMemoryAsset)[] = this.impliedAddonAssets(type, engine).map( (sourcePath: string): OnDiskAsset => { @@ -513,11 +511,7 @@ export class CompatAppBuilder { return portable; } - private insertEmberApp( - asset: ParsedEmberAsset, - appFiles: AppFiles[], - prepared: Map - ) { + private insertEmberApp(asset: ParsedEmberAsset, appFiles: AppFiles[], prepared: Map) { let html = asset.html; if (this.fastbootConfig) { @@ -586,10 +580,7 @@ export class CompatAppBuilder { } } - private implicitScriptsAsset( - prepared: Map, - application: AppFiles - ): InternalAsset | undefined { + private implicitScriptsAsset(prepared: Map, application: AppFiles): InternalAsset | undefined { let asset = prepared.get('assets/vendor.js'); if (!asset) { let implicitScripts = this.impliedAssets('implicit-scripts', application); @@ -805,10 +796,7 @@ export class CompatAppBuilder { } } - private prepareAssets( - requestedAssets: Asset[], - appFiles: AppFiles[] - ): Map { + private prepareAssets(requestedAssets: Asset[], appFiles: AppFiles[]): Map { let prepared: Map = new Map(); for (let asset of requestedAssets) { this.prepareAsset(asset, appFiles, prepared); @@ -885,7 +873,12 @@ export class CompatAppBuilder { await concat.end(); } - private async updateAssets(requestedAssets: Asset[], appFiles: AppFiles[], noWrite?: boolean, dst: string = this.root) { + private async updateAssets( + requestedAssets: Asset[], + appFiles: AppFiles[], + noWrite?: boolean, + dst: string = this.root + ) { let assets = this.prepareAssets(requestedAssets, appFiles); for (let asset of assets.values()) { if (noWrite || this.assetIsValid(asset, this.assets.get(asset.relativePath))) { @@ -1031,18 +1024,20 @@ export class CompatAppBuilder { const emberENV = legacyApp.environments[env]; - html.replace(new RegExp(``), (match, content) => { - return match.replace(content, encodeURIComponent(JSON.stringify(emberENV))); - }); + html.replace( + new RegExp(``), + (match, content) => { + return match.replace(content, encodeURIComponent(JSON.stringify(emberENV))); + } + ); return html; } async rebuildHtml(root: string, environment: 'production' | 'development', appOrTestHtml: 'app' | 'test') { const file = appOrTestHtml === 'app' ? 'index.html' : 'tests/index.html'; - const env = appOrTestHtml === 'test' ? 'test' : (environment === 'production' ? 'production' : 'development'); + const env = appOrTestHtml === 'test' ? 'test' : environment === 'production' ? 'production' : 'development'; const html = this.prepareHtml(file, env); - const assets: Asset[] = []; for (let asset of this.emberEntrypoints('.')) { if (asset.relativePath === file) { @@ -1054,11 +1049,11 @@ export class CompatAppBuilder { const engines = this.partitionEngines(root); const appFiles = engines.map((engine: Engine) => { return new AppFiles( - engine, - new Set(), - new Set(), - extensionsPattern(this.resolvableExtensions()), - this.podModulePrefix() + engine, + new Set(), + new Set(), + extensionsPattern(this.resolvableExtensions()), + this.podModulePrefix() ); }); @@ -1083,11 +1078,11 @@ export class CompatAppBuilder { } files.push('config/environment.js'); return new AppFiles( - engine, - new Set(files), - new Set(), - extensionsPattern(this.resolvableExtensions()), - this.podModulePrefix() + engine, + new Set(files), + new Set(), + extensionsPattern(this.resolvableExtensions()), + this.podModulePrefix() ); }); const assets: Asset[] = []; @@ -1102,7 +1097,7 @@ export class CompatAppBuilder { async copyPublicAssetsToDir(dir: string) { const assets = this.gatherAssets({ - publicTree: 'public' + publicTree: 'public', } as any); await this.updateAssets(assets, [], false, dir); } @@ -1198,7 +1193,7 @@ export class CompatAppBuilder { private addLegacyAppInfo() { const project = this.compatApp.legacyEmberAppInstance.project as any; - const production = project.config('production') + const production = project.config('production'); const development = project.config('development'); const test = project.config('test'); const options = { @@ -1208,25 +1203,22 @@ export class CompatAppBuilder { const patterns = configReplacePatterns(options); function replacements(env: any) { const contentFor = [ - 'head', - 'head-footer', - 'body', - 'body-footer', - 'test-head', - 'test-head-footer', - 'test-body', - 'test-body-footer', - ] + 'head', + 'head-footer', + 'body', + 'body-footer', + 'test-head', + 'test-head-footer', + 'test-body', + 'test-body-footer', + ]; const match: Record = { - '{{rootURL}}': /{{\s?rootURL\s?}}/g.source + '{{rootURL}}': /{{\s?rootURL\s?}}/g.source, }; contentFor.forEach(c => { match[`{{content-for "${c}"}}`] = /{{content-for ['"]xxx["']}}/g.source.replace('xxx', c); - }) - return [ - '{{rootURL}}', - ...contentFor.map(c => `{{content-for "${c}"}}`) - ].map(str => { + }); + return ['{{rootURL}}', ...contentFor.map(c => `{{content-for "${c}"}}`)].map(str => { const pattern = patterns.find(p => p.match.test(str))!; return { match: match[str], @@ -1251,13 +1243,13 @@ export class CompatAppBuilder { environments: { production, development, - test + test, }, configReplacePatterns: { production: replacements(production), development: replacements(development), test: replacements(test), - } + }, }, { spaces: 2 } ); diff --git a/packages/compat/src/compat-app.ts b/packages/compat/src/compat-app.ts index f203f6883..73a86bb93 100644 --- a/packages/compat/src/compat-app.ts +++ b/packages/compat/src/compat-app.ts @@ -6,7 +6,7 @@ import type { OutputFileToInputFileMap, Package, PackageInfo, - Stage + Stage, } from '@embroider/core'; import { locateEmbroiderWorkingDir, PackageCache, RewrittenPackageCache, WaitForTrees } from '@embroider/core'; import type Options from './options'; @@ -27,7 +27,7 @@ import { pathExistsSync, readdirSync, readJSONSync, - writeJSONSync + writeJSONSync, } from 'fs-extra'; import AddToTree from './add-to-tree'; import DummyPackage from './dummy-package'; @@ -817,11 +817,7 @@ export default class CompatApp { legacyApp.project.configPath = () => ''; const compatApp = new CompatApp(legacyApp, options); compatApp.config['lastConfig'] = legacyApp.environments.development; - return compatApp.instantiate( - root, - RewrittenPackageCache.shared('embroider', root), - compatApp.config - ); + return compatApp.instantiate(root, RewrittenPackageCache.shared('embroider', root), compatApp.config); } private inTrees(prevStageTree: BroccoliNode) { diff --git a/packages/vite/src/addons.ts b/packages/vite/src/addons.ts index 1a5d29101..11c2f4ac8 100644 --- a/packages/vite/src/addons.ts +++ b/packages/vite/src/addons.ts @@ -13,7 +13,10 @@ export function addons(root: string): string[] { for (let from of Object.keys(options.renamePackages)) { names.add(from); } - for (let name of options.engines.map(e => e.activeAddons).flat().map(a => a.name)) { + for (let name of options.engines + .map(e => e.activeAddons) + .flat() + .map(a => a.name)) { names.add(name); } return [...names]; diff --git a/packages/vite/src/assets.ts b/packages/vite/src/assets.ts index 965ab87ea..74bf8cfcc 100644 --- a/packages/vite/src/assets.ts +++ b/packages/vite/src/assets.ts @@ -1,5 +1,5 @@ -import type { RewrittenPackageCache } from '@embroider/core'; -import { getAppMeta, locateEmbroiderWorkingDir, Resolver, ResolverLoader } from '@embroider/core'; +import type { RewrittenPackageCache, Resolver } from '@embroider/core'; +import { getAppMeta, locateEmbroiderWorkingDir, ResolverLoader } from '@embroider/core'; import { join } from 'path/posix'; import { existsSync, readFileSync } from 'fs'; import CompatApp from '@embroider/compat/src/compat-app'; @@ -19,23 +19,31 @@ let environment: 'production' | 'development' = 'production'; async function generateHtml(root: string, appOrTest: 'app' | 'test') { const file = appOrTest === 'app' ? 'index.html' : 'tests/index.html'; if (!InMemoryAssets[file]) { - InMemoryAssets[file] = await CompatApp.getCachedBuilderInstance(process.cwd()).rebuildHtml(root, environment, appOrTest); + InMemoryAssets[file] = await CompatApp.getCachedBuilderInstance(process.cwd()).rebuildHtml( + root, + environment, + appOrTest + ); } return InMemoryAssets[file]; } -async function generateAppEntries({rewrittenPackageCache, root}: Options) { +async function generateAppEntries({ rewrittenPackageCache, root }: Options) { const pkg = rewrittenPackageCache.get(root); if (!InMemoryAssets[`assets/${pkg.name}.js`]) { - InMemoryAssets[`assets/${pkg.name}.js`] = await CompatApp.getCachedBuilderInstance(process.cwd()).rebuildEntryFile(root); + InMemoryAssets[`assets/${pkg.name}.js`] = await CompatApp.getCachedBuilderInstance(process.cwd()).rebuildEntryFile( + root + ); } return InMemoryAssets[`assets/${pkg.name}.js`]; } async function generateTestEntries(testFolder: string) { if (!InMemoryAssets[`assets/test.js`]) { - InMemoryAssets[`assets/test.js`] = await CompatApp.getCachedBuilderInstance(process.cwd()).rebuildEntryFile(testFolder); + InMemoryAssets[`assets/test.js`] = await CompatApp.getCachedBuilderInstance(process.cwd()).rebuildEntryFile( + testFolder + ); } return InMemoryAssets[`assets/test.js`]; } @@ -68,7 +76,6 @@ function findPublicAsset(relativePath: string, resolver: Resolver, embroiderWork } } } - } export function assets(options?: { entryDirectories?: string[] }): Plugin { diff --git a/packages/vite/src/bin/run-tests.mjs b/packages/vite/src/bin/run-tests.mjs index 22f099ef3..d7a6ad14e 100644 --- a/packages/vite/src/bin/run-tests.mjs +++ b/packages/vite/src/bin/run-tests.mjs @@ -5,79 +5,72 @@ import PCR from 'puppeteer-chromium-resolver'; const __root = process.cwd(); async function run() { - // eslint-disable-next-line new-cap - const { puppeteer, executablePath } = await PCR({}); - console.log('[ci] starting'); - - await /** @type {Promise} */ ( - new Promise((fulfill) => { - const runvite = child.spawn( - resolve(__root, 'node_modules', '.bin', 'vite'), - ['--port', '60173', '--no-open'], - { - stdio: 'pipe', - } - ); - - process.on('exit', () => runvite.kill()); - - runvite.stderr.on('data', (data) => { - console.log('stderr', String(data)); - }); - - runvite.stdout.on('data', (data) => { - const chunk = String(data); - console.log('stdout', chunk); - if (chunk.includes('Local') && chunk.includes('60173')) { - fulfill(1); - } - }); - - console.log('[ci] spawning'); - }) - ); - - console.log('[ci] spawned'); - - const browser = await puppeteer.launch({ - headless: 'new', - executablePath, - args: ['--no-sandbox', '--disable-setuid-sandbox'], - }); - - console.log('[ci] puppeteer launched'); - - const result = await /** @type {Promise} */ ( - // eslint-disable-next-line no-async-promise-executor - new Promise(async (fulfill) => { - const page = await browser.newPage(); - - page.on('console', (msg) => { - const location = msg.location(); - const text = msg.text(); - - if (location.url?.includes(`/qunit.js`)) { - console.log(text); - } else { - try { - const parsed = JSON.parse(text); - if (parsed.type === '[HARNESS] done') { - return fulfill(parsed.failed); - } - } catch (e) { - - } - - } - }); - - await page.goto('http://localhost:60173/tests?hidepassed&ci'); - }) - ); - - await browser.close(); - - process.exit(result); + // eslint-disable-next-line new-cap + const { puppeteer, executablePath } = await PCR({}); + console.log('[ci] starting'); + + await /** @type {Promise} */ ( + new Promise(fulfill => { + const runvite = child.spawn(resolve(__root, 'node_modules', '.bin', 'vite'), ['--port', '60173', '--no-open'], { + stdio: 'pipe', + }); + + process.on('exit', () => runvite.kill()); + + runvite.stderr.on('data', data => { + console.log('stderr', String(data)); + }); + + runvite.stdout.on('data', data => { + const chunk = String(data); + console.log('stdout', chunk); + if (chunk.includes('Local') && chunk.includes('60173')) { + fulfill(1); + } + }); + + console.log('[ci] spawning'); + }) + ); + + console.log('[ci] spawned'); + + const browser = await puppeteer.launch({ + headless: 'new', + executablePath, + args: ['--no-sandbox', '--disable-setuid-sandbox'], + }); + + console.log('[ci] puppeteer launched'); + + const result = await /** @type {Promise} */ ( + // eslint-disable-next-line no-async-promise-executor + new Promise(async fulfill => { + const page = await browser.newPage(); + + page.on('console', msg => { + const location = msg.location(); + const text = msg.text(); + + if (location.url?.includes(`/qunit.js`)) { + console.log(text); + } else { + try { + const parsed = JSON.parse(text); + if (parsed.type === '[HARNESS] done') { + return fulfill(parsed.failed); + } + } catch (e) {} + } + }); + + await page.goto('http://localhost:60173/tests?hidepassed&ci'); + }) + ); + + await browser.close(); + + process.exit(result); } run(); diff --git a/packages/vite/src/hbs.ts b/packages/vite/src/hbs.ts index 5ea407db0..1aacfd53d 100644 --- a/packages/vite/src/hbs.ts +++ b/packages/vite/src/hbs.ts @@ -1,11 +1,11 @@ // TODO: I copied this from @embroider/addon-dev, it needs to be its own package // (or be in shared-internals or core) -import {createFilter} from '@rollup/pluginutils'; -import type {PluginContext, ResolvedId} from 'rollup'; -import type {Plugin} from 'vite'; -import {hbsToJS} from '@embroider/core'; +import { createFilter } from '@rollup/pluginutils'; +import type { PluginContext, ResolvedId } from 'rollup'; +import type { Plugin } from 'vite'; +import { hbsToJS } from '@embroider/core'; import assertNever from 'assert-never'; -import {parse as pathParse} from 'path/posix'; +import { parse as pathParse } from 'path/posix'; import makeDebug from 'debug'; const debug = makeDebug('embroider:hbs-plugin'); diff --git a/tests/vite-app/app/helpers/say-hello.ts b/tests/vite-app/app/helpers/say-hello.ts index 61d5bffc7..3c069e660 100644 --- a/tests/vite-app/app/helpers/say-hello.ts +++ b/tests/vite-app/app/helpers/say-hello.ts @@ -1,4 +1,3 @@ - export default function () { return 'hello'; } diff --git a/tests/vite-app/package.json b/tests/vite-app/package.json index ad05220c2..29abd19b3 100644 --- a/tests/vite-app/package.json +++ b/tests/vite-app/package.json @@ -20,7 +20,6 @@ "lint:hbs:fix": "ember-template-lint . --fix", "lint:js": "eslint . --cache", "lint:js:fix": "eslint . --fix", - "start:prebuild": "ember b", "start:dev": "vite", "start:test": "vite --open /tests", "test": "concurrently \"npm:lint\" \"npm:test:*\" --names \"lint,test:\"", diff --git a/tests/vite-app/tests/setup-harness.js b/tests/vite-app/tests/setup-harness.js index 16a212ba4..bf1663a92 100644 --- a/tests/vite-app/tests/setup-harness.js +++ b/tests/vite-app/tests/setup-harness.js @@ -3,57 +3,57 @@ import { autoRegister } from 'js-reporters'; import qunit from 'qunit'; export async function setupQunit() { - const runner = autoRegister(); - const tap = qunit.reporters.tap; - tap.init(runner, { log: console.info }); - - QUnit.config.urlConfig.push({ - id: 'smoke_tests', - label: 'Enable Smoke Tests', - tooltip: 'Enable Smoke Tests', + const runner = autoRegister(); + const tap = qunit.reporters.tap; + tap.init(runner, { log: console.info }); + + QUnit.config.urlConfig.push({ + id: 'smoke_tests', + label: 'Enable Smoke Tests', + tooltip: 'Enable Smoke Tests', + }); + + QUnit.config.urlConfig.push({ + id: 'ci', + label: 'Enable CI Mode', + tooltip: 'CI mode makes tests run faster by sacrificing UI responsiveness', + }); + + await Promise.resolve(); + + console.log(`[HARNESS] ci=${hasFlag('ci')}`); + + if (!hasFlag('ci')) { + // since all of our tests are synchronous, the QUnit + // UI never has a chance to rerender / update. This + // leads to a very long "white screen" when running + // the tests + // + // this adds a very small amount of async, just to allow + // the QUnit UI to rerender once per module completed + const pause = () => + new Promise((res) => { + setTimeout(res, 1); + }); + + let start = performance.now(); + qunit.testDone(async () => { + let gap = performance.now() - start; + if (gap > 200) { + await pause(); + start = performance.now(); + } }); - QUnit.config.urlConfig.push({ - id: 'ci', - label: 'Enable CI Mode', - tooltip: 'CI mode makes tests run faster by sacrificing UI responsiveness', - }); + qunit.moduleDone(pause); + } - await Promise.resolve(); - - console.log(`[HARNESS] ci=${hasFlag('ci')}`); - - if (!hasFlag('ci')) { - // since all of our tests are synchronous, the QUnit - // UI never has a chance to rerender / update. This - // leads to a very long "white screen" when running - // the tests - // - // this adds a very small amount of async, just to allow - // the QUnit UI to rerender once per module completed - const pause = () => - new Promise((res) => { - setTimeout(res, 1); - }); - - let start = performance.now(); - qunit.testDone(async () => { - let gap = performance.now() - start; - if (gap > 200) { - await pause(); - start = performance.now(); - } - }); - - qunit.moduleDone(pause); - } - - qunit.done((details) => { - console.log(JSON.stringify({...details, type: '[HARNESS] done'})); - }); + qunit.done((details) => { + console.log(JSON.stringify({ ...details, type: '[HARNESS] done' })); + }); } function hasFlag(flag) { - let location = typeof window !== 'undefined' && window.location; - return location && new RegExp(`[?&]${flag}`).test(location.search); + let location = typeof window !== 'undefined' && window.location; + return location && new RegExp(`[?&]${flag}`).test(location.search); } diff --git a/tests/vite-app/tests/test-helper.js b/tests/vite-app/tests/test-helper.js index b0acb7d54..0d96f6d4a 100644 --- a/tests/vite-app/tests/test-helper.js +++ b/tests/vite-app/tests/test-helper.js @@ -4,7 +4,7 @@ import * as QUnit from 'qunit'; import { setApplication } from '@ember/test-helpers'; import { setup } from 'qunit-dom'; import { start } from 'ember-qunit'; -import { setupQunit } from "./setup-harness"; +import { setupQunit } from './setup-harness'; setApplication(Application.create(config.APP)); From 6c38e0f71c79dbd00f229a3bed261ef121aec39d Mon Sep 17 00:00:00 2001 From: patrick Date: Mon, 11 Dec 2023 14:27:06 +0100 Subject: [PATCH 43/55] remove package hack --- packages/compat/tests/audit.test.ts | 2 +- packages/core/src/module-resolver.ts | 15 +++- .../shared-internals/src/package-cache.ts | 3 + packages/shared-internals/src/package.ts | 12 +++- packages/vite/src/assets.ts | 2 +- packages/vite/src/hbs.ts | 12 +++- packages/vite/src/resolver.ts | 71 ++++++++----------- 7 files changed, 67 insertions(+), 50 deletions(-) diff --git a/packages/compat/tests/audit.test.ts b/packages/compat/tests/audit.test.ts index 6de154578..d8474cf03 100644 --- a/packages/compat/tests/audit.test.ts +++ b/packages/compat/tests/audit.test.ts @@ -317,7 +317,7 @@ describe('audit', function () { }); let result = await audit(); expect(result.findings).toEqual([]); - expect(Object.keys(result.modules).length).toBe(3); + expect(Object.keys(result.modules).length).toBe(2); }); test('finds missing component in standalone hbs', async function () { diff --git a/packages/core/src/module-resolver.ts b/packages/core/src/module-resolver.ts index e64b4e979..623eec8d3 100644 --- a/packages/core/src/module-resolver.ts +++ b/packages/core/src/module-resolver.ts @@ -536,9 +536,13 @@ export class Resolver { yield { prefix: '/templates/components/', suffix: '/index.hbs' }; yield { prefix: '/components/', suffix: '/template.hbs' }; + yield { prefix: '/app/templates/components/', suffix: '.hbs' }; + yield { prefix: '/app/templates/components/', suffix: '/index.hbs' }; + yield { prefix: '/app/components/', suffix: '/template.hbs' }; + let pods = this.podPrefix(inPackageName); if (pods) { - yield { prefix: `${pods}/components/`, suffix: '/template.hbs' }; + yield { prefix: `/app${pods}/components/`, suffix: '/template.hbs' }; } } @@ -550,10 +554,19 @@ export class Resolver { yield { prefix: '/components/', suffix: '/component.js' }; yield { prefix: '/components/', suffix: '/component.ts' }; + yield { prefix: '/app/components/', suffix: '.js' }; + yield { prefix: '/app/components/', suffix: '/index.js' }; + yield { prefix: '/app/components/', suffix: '.ts' }; + yield { prefix: '/app/components/', suffix: '/index.ts' }; + yield { prefix: '/app/components/', suffix: '/component.js' }; + yield { prefix: '/app/components/', suffix: '/component.ts' }; + let pods = this.podPrefix(inPackageName); if (pods) { yield { prefix: `${pods}/components/`, suffix: '/component.js' }; yield { prefix: `${pods}/components/`, suffix: '/component.ts' }; + yield { prefix: `${pods}/components/`, suffix: '/app/component.js' }; + yield { prefix: `${pods}/components/`, suffix: '/app/component.ts' }; } } diff --git a/packages/shared-internals/src/package-cache.ts b/packages/shared-internals/src/package-cache.ts index 870727dbf..fb4056313 100644 --- a/packages/shared-internals/src/package-cache.ts +++ b/packages/shared-internals/src/package-cache.ts @@ -60,6 +60,9 @@ export default class PackageCache { get(packageRoot: string) { let root = getCachedRealpath(packageRoot); + if (!getCachedExists([root, 'package.json'].join(sep))) { + throw new Error('bad package for '+ packageRoot); + } let p = getOrCreate(this.rootCache, root, () => { return new Package(root, this, root === this.appRoot); }); diff --git a/packages/shared-internals/src/package.ts b/packages/shared-internals/src/package.ts index 344be75eb..478310f0f 100644 --- a/packages/shared-internals/src/package.ts +++ b/packages/shared-internals/src/package.ts @@ -43,7 +43,13 @@ export default class Package { } get meta(): AddonMeta | AppMeta | undefined { - let m = this.packageJSON['ember-addon']; + let m = this.packageJSON['ember-addon'] || {}; + if (this.isApp) { + const meta = m as AppMeta; + meta['type'] = 'app'; + meta['version'] = 2; + meta['auto-upgraded'] = true; + } if (this.isV2App()) { return m as unknown as AppMeta; } @@ -53,6 +59,7 @@ export default class Package { } isEmberPackage(): boolean { + if (this.isApp) return true; let keywords = this.packageJSON.keywords; return Boolean(keywords && (keywords as string[]).includes('ember-addon')); } @@ -71,14 +78,17 @@ export default class Package { } isV2Ember(): this is V2Package { + if (this.isApp) return true; return this.isEmberPackage() && get(this.packageJSON, 'ember-addon.version') === 2; } isV2App(): this is V2AppPackage { + if (this.isApp) return true; return this.isV2Ember() && this.packageJSON['ember-addon'].type === 'app'; } isV2Addon(): this is V2AddonPackage { + if (this.isApp) return false; return this.isV2Ember() && this.packageJSON['ember-addon'].type === 'addon'; } diff --git a/packages/vite/src/assets.ts b/packages/vite/src/assets.ts index 74bf8cfcc..dfa99366d 100644 --- a/packages/vite/src/assets.ts +++ b/packages/vite/src/assets.ts @@ -30,7 +30,7 @@ async function generateHtml(root: string, appOrTest: 'app' | 'test') { } async function generateAppEntries({ rewrittenPackageCache, root }: Options) { - const pkg = rewrittenPackageCache.get(root); + const pkg = rewrittenPackageCache.get(process.cwd()); if (!InMemoryAssets[`assets/${pkg.name}.js`]) { InMemoryAssets[`assets/${pkg.name}.js`] = await CompatApp.getCachedBuilderInstance(process.cwd()).rebuildEntryFile( root diff --git a/packages/vite/src/hbs.ts b/packages/vite/src/hbs.ts index 1aacfd53d..7628f85b9 100644 --- a/packages/vite/src/hbs.ts +++ b/packages/vite/src/hbs.ts @@ -19,9 +19,15 @@ export function hbs(): Plugin { if (source.match(/\.(gjs|gts)$/)) { return null; } - let resolution = await this.resolve(source, importer, { - skipSelf: true, - }); + let resolution; + + try { + resolution = await this.resolve(source, importer, { + skipSelf: true, + }); + } catch (e) { + return null; + } if (!resolution) { if (source.endsWith('.hbs')) return null; diff --git a/packages/vite/src/resolver.ts b/packages/vite/src/resolver.ts index ce6b2e6c3..0a6e236d6 100644 --- a/packages/vite/src/resolver.ts +++ b/packages/vite/src/resolver.ts @@ -3,7 +3,6 @@ import type { Plugin } from 'vite'; import { join, resolve } from 'path/posix'; import type { Resolution, ResolverFunction } from '@embroider/core'; import { ResolverLoader, virtualContent } from '@embroider/core'; -import { readFileSync } from 'fs'; import { RollupModuleRequest, virtualPrefix } from './request'; import assertNever from 'assert-never'; @@ -19,28 +18,11 @@ type Options = { export function resolver(_options?: Options): Plugin { const resolverLoader = new ResolverLoader(process.cwd()); resolverLoader.resolver.options.engines.forEach(engine => { - engine.root = engine.root.replace(rewrittenApp, root); + engine.root = engine.root.replace(rewrittenApp, cwd); engine.activeAddons.forEach(addon => { addon.canResolveFromFile = addon.canResolveFromFile.replace(rewrittenApp, cwd); }); }); - const pkg = resolverLoader.resolver.packageCache.get(cwd); - pkg.packageJSON['ember-addon'] = pkg.packageJSON['ember-addon'] || {}; - pkg.packageJSON['keywords'] = pkg.packageJSON['keywords'] || []; - pkg.packageJSON['ember-addon'].version = 2; - pkg.packageJSON['ember-addon'].type = 'app'; - pkg.packageJSON['keywords'].push('ember-addon', 'ember-engine'); - pkg.meta!['auto-upgraded'] = true; - (pkg as any).plainPkg.root = root; - const json = pkg.packageJSON; - Object.defineProperty(Object.getPrototypeOf((pkg as any).plainPkg), 'internalPackageJSON', { - get() { - if (this.isApp || this.root === root) { - return json; - } - return JSON.parse(readFileSync(join(this.root, 'package.json'), 'utf8')); - }, - }); return { name: 'embroider-resolver', enforce: 'pre', @@ -90,32 +72,20 @@ function defaultResolve(context: PluginContext): ResolverFunction Date: Mon, 11 Dec 2023 16:08:21 +0100 Subject: [PATCH 44/55] fix env update --- packages/compat/src/compat-app-builder.ts | 23 +++++++++++++++++++++-- packages/vite/src/assets.ts | 8 ++++++-- 2 files changed, 27 insertions(+), 4 deletions(-) diff --git a/packages/compat/src/compat-app-builder.ts b/packages/compat/src/compat-app-builder.ts index 75e7aeff4..f84101ed8 100644 --- a/packages/compat/src/compat-app-builder.ts +++ b/packages/compat/src/compat-app-builder.ts @@ -1017,15 +1017,34 @@ export class CompatAppBuilder { prepareHtml(htmlPath: string, env: string) { const workingDir = locateEmbroiderWorkingDir(this.root); const legacyApp = readJSONSync(join(workingDir, 'legacy-app-info.json')); + const configPath = require.resolve(join(this.root, 'config', 'environment.js')); + delete require.cache[require.resolve(configPath)] + const buildAppEnv = require(configPath); let html = readFileSync(join(this.root, htmlPath)).toString(); legacyApp.configReplacePatterns[env].forEach((pattern: any) => { html = html.replace(new RegExp(pattern.match, 'g'), pattern.replacement); }); + function merge(source: any, target: any) { + for (const [key, val] of Object.entries(source)) { + if (val !== null && typeof val === `object`) { + target[key] ??=new (val as any).__proto__.constructor(); + merge(val, target[key]); + } else { + target[key] = val; + } + } + return target; // we're replacing in-situ, so this is more for chaining than anything else + } + const emberENV = legacyApp.environments[env]; + const newestEnv = buildAppEnv(env); + merge(newestEnv, emberENV); + emberENV.APP = newestEnv.APP; + - html.replace( - new RegExp(``), + html = html.replace( + new RegExp(``), (match, content) => { return match.replace(content, encodeURIComponent(JSON.stringify(emberENV))); } diff --git a/packages/vite/src/assets.ts b/packages/vite/src/assets.ts index dfa99366d..dd7a1aa3d 100644 --- a/packages/vite/src/assets.ts +++ b/packages/vite/src/assets.ts @@ -96,6 +96,7 @@ export function assets(options?: { entryDirectories?: string[] }): Plugin { name: 'assets', enforce: 'pre', configureServer(server) { + environment = 'development'; const watcher = server.watcher; // this is required because we do not open the /tests url directly and via the middleware watcher.on('add', filename => { @@ -127,8 +128,11 @@ export function assets(options?: { entryDirectories?: string[] }): Plugin { }); } if (filename === config) { - const module = server.moduleGraph.getModuleById(config)!; - server.moduleGraph.invalidateModule(module); + delete InMemoryAssets['index.html']; + delete InMemoryAssets['tests/index.html']; + server.ws.send({ + type: 'full-reload', + }); } }); server.middlewares.use((req, _res, next) => { From 0b596f6c565fda977396d446d8ca2ac19f1ffb4b Mon Sep 17 00:00:00 2001 From: patrick Date: Mon, 11 Dec 2023 16:10:49 +0100 Subject: [PATCH 45/55] fix lint --- packages/compat/src/compat-app-builder.ts | 9 +++++---- .../shared-internals/src/package-cache.ts | 2 +- packages/vite/src/resolver.ts | 20 +++++++++---------- 3 files changed, 16 insertions(+), 15 deletions(-) diff --git a/packages/compat/src/compat-app-builder.ts b/packages/compat/src/compat-app-builder.ts index f84101ed8..590b5471e 100644 --- a/packages/compat/src/compat-app-builder.ts +++ b/packages/compat/src/compat-app-builder.ts @@ -1018,7 +1018,7 @@ export class CompatAppBuilder { const workingDir = locateEmbroiderWorkingDir(this.root); const legacyApp = readJSONSync(join(workingDir, 'legacy-app-info.json')); const configPath = require.resolve(join(this.root, 'config', 'environment.js')); - delete require.cache[require.resolve(configPath)] + delete require.cache[require.resolve(configPath)]; const buildAppEnv = require(configPath); let html = readFileSync(join(this.root, htmlPath)).toString(); legacyApp.configReplacePatterns[env].forEach((pattern: any) => { @@ -1028,7 +1028,7 @@ export class CompatAppBuilder { function merge(source: any, target: any) { for (const [key, val] of Object.entries(source)) { if (val !== null && typeof val === `object`) { - target[key] ??=new (val as any).__proto__.constructor(); + target[key] ??= new (val as any).__proto__.constructor(); merge(val, target[key]); } else { target[key] = val; @@ -1042,9 +1042,10 @@ export class CompatAppBuilder { merge(newestEnv, emberENV); emberENV.APP = newestEnv.APP; - html = html.replace( - new RegExp(``), + new RegExp( + `` + ), (match, content) => { return match.replace(content, encodeURIComponent(JSON.stringify(emberENV))); } diff --git a/packages/shared-internals/src/package-cache.ts b/packages/shared-internals/src/package-cache.ts index fb4056313..03f71f056 100644 --- a/packages/shared-internals/src/package-cache.ts +++ b/packages/shared-internals/src/package-cache.ts @@ -61,7 +61,7 @@ export default class PackageCache { get(packageRoot: string) { let root = getCachedRealpath(packageRoot); if (!getCachedExists([root, 'package.json'].join(sep))) { - throw new Error('bad package for '+ packageRoot); + throw new Error('bad package for ' + packageRoot); } let p = getOrCreate(this.rootCache, root, () => { return new Package(root, this, root === this.appRoot); diff --git a/packages/vite/src/resolver.ts b/packages/vite/src/resolver.ts index 0a6e236d6..4dbeeecef 100644 --- a/packages/vite/src/resolver.ts +++ b/packages/vite/src/resolver.ts @@ -97,17 +97,17 @@ function defaultResolve(context: PluginContext): ResolverFunction Date: Mon, 11 Dec 2023 16:12:45 +0100 Subject: [PATCH 46/55] revert --- packages/macros/tests/babel/helpers.ts | 5 ++--- packages/shared-internals/src/package-cache.ts | 3 --- packages/util/package.json | 1 - tests/scenarios/package.json | 3 +-- tests/scenarios/static-app-test.ts | 9 +-------- 5 files changed, 4 insertions(+), 17 deletions(-) diff --git a/packages/macros/tests/babel/helpers.ts b/packages/macros/tests/babel/helpers.ts index 043c244e8..1d69bca37 100644 --- a/packages/macros/tests/babel/helpers.ts +++ b/packages/macros/tests/babel/helpers.ts @@ -6,7 +6,6 @@ import { Project } from 'scenario-tester'; import { readFileSync } from 'fs'; import { Script, createContext } from 'vm'; import { explicitRelative } from '@embroider/shared-internals'; -import It = jest.It; export { runDefault, Project }; @@ -70,10 +69,10 @@ interface ModeTestHooks { } type CreateModeTests = (transform: Transform, hooks: ModeTestHooks) => void; -const disabledTest = function (_name: string, _impl: jest.ProvidesCallback | undefined) {} as It; +function disabledTest(_name: string, _impl: jest.ProvidesCallback | undefined) {} disabledTest.only = disabledTest; disabledTest.skip = disabledTest; -disabledTest.todo = ((_name: string): void => {}) as It; +disabledTest.todo = (_name: string): void => {}; disabledTest.concurrent = disabledTest; disabledTest.each = test.each; disabledTest.failing = disabledTest; diff --git a/packages/shared-internals/src/package-cache.ts b/packages/shared-internals/src/package-cache.ts index 03f71f056..870727dbf 100644 --- a/packages/shared-internals/src/package-cache.ts +++ b/packages/shared-internals/src/package-cache.ts @@ -60,9 +60,6 @@ export default class PackageCache { get(packageRoot: string) { let root = getCachedRealpath(packageRoot); - if (!getCachedExists([root, 'package.json'].join(sep))) { - throw new Error('bad package for ' + packageRoot); - } let p = getOrCreate(this.rootCache, root, () => { return new Package(root, this, root === this.appRoot); }); diff --git a/packages/util/package.json b/packages/util/package.json index 95f7a50c1..bd31dde3e 100644 --- a/packages/util/package.json +++ b/packages/util/package.json @@ -52,7 +52,6 @@ "@ember/test-helpers": "^2.9.1", "@embroider/compat": "workspace:*", "@embroider/core": "workspace:*", - "@embroider/shared-internals": "workspace:*", "@embroider/test-setup": "workspace:*", "@embroider/test-support": "workspace:*", "@embroider/webpack": "workspace:*", diff --git a/tests/scenarios/package.json b/tests/scenarios/package.json index 97d3fa270..ba4cb96c6 100644 --- a/tests/scenarios/package.json +++ b/tests/scenarios/package.json @@ -25,14 +25,13 @@ "ts-node": "^10.9.1" }, "scripts": { - "test": "node ./node_modules/qunit/bin/qunit.js --require ts-node/register *-test.ts", + "test": "qunit --require ts-node/register *-test.ts", "test:list": "scenario-tester list --require ts-node/register --files=*-test.ts", "test:output": "scenario-tester output --require ts-node/register --files=*-test.ts" }, "private": true, "license": "MIT", "devDependencies": { - "qunit": "^2.20.0", "@babel/core": "^7.17.5", "@babel/plugin-proposal-decorators": "^7.17.2", "@babel/plugin-syntax-dynamic-import": "^7.8.3", diff --git a/tests/scenarios/static-app-test.ts b/tests/scenarios/static-app-test.ts index 94cdb8c7e..4d8026aa2 100644 --- a/tests/scenarios/static-app-test.ts +++ b/tests/scenarios/static-app-test.ts @@ -404,14 +404,7 @@ appScenarios function emberBootstrap() { // https://github.com/kaliber5/ember-bootstrap/pull/1750 - let modifiers = Project.fromDir( - dirname( - require.resolve('@ember/render-modifiers', { - paths: [dirname(require.resolve('ember-bootstrap'))], - }) - ), - { linkDeps: true } - ); + let modifiers = Project.fromDir(dirname(require.resolve('@ember/render-modifiers')), { linkDeps: true }); modifiers.removeDependency('ember-source'); let eb = Project.fromDir(dirname(require.resolve('ember-bootstrap')), { linkDeps: true }); eb.addDependency(modifiers); From 15a1f5357037c2c6dc0f404678b054486d53cc46 Mon Sep 17 00:00:00 2001 From: patrick Date: Mon, 11 Dec 2023 16:14:16 +0100 Subject: [PATCH 47/55] fix lock --- pnpm-lock.yaml | 3 --- 1 file changed, 3 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 16d7a805f..3eb83afd5 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -788,9 +788,6 @@ importers: '@embroider/core': specifier: workspace:* version: link:../core - '@embroider/shared-internals': - specifier: workspace:* - version: link:../shared-internals '@embroider/test-setup': specifier: workspace:* version: link:../test-setup From dfbdf35c51a7f2902d6d09d930f2ed64216cfcdf Mon Sep 17 00:00:00 2001 From: patrick Date: Mon, 11 Dec 2023 16:15:34 +0100 Subject: [PATCH 48/55] fix lock --- pnpm-lock.yaml | 3 --- 1 file changed, 3 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3eb83afd5..d317cc083 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -902,9 +902,6 @@ importers: qunit-dom: specifier: ^2.0.0 version: 2.0.0 - semver: - specifier: ^7.5.4 - version: 7.5.4 typescript: specifier: ^5.1.6 version: 5.3.2 From 74b64d0f2e466f357242f99a54fc65fc99025ea6 Mon Sep 17 00:00:00 2001 From: patrick Date: Mon, 11 Dec 2023 16:16:48 +0100 Subject: [PATCH 49/55] fix types --- packages/macros/tests/babel/helpers.ts | 5 +++-- packages/util/package.json | 3 +-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/macros/tests/babel/helpers.ts b/packages/macros/tests/babel/helpers.ts index 1d69bca37..043c244e8 100644 --- a/packages/macros/tests/babel/helpers.ts +++ b/packages/macros/tests/babel/helpers.ts @@ -6,6 +6,7 @@ import { Project } from 'scenario-tester'; import { readFileSync } from 'fs'; import { Script, createContext } from 'vm'; import { explicitRelative } from '@embroider/shared-internals'; +import It = jest.It; export { runDefault, Project }; @@ -69,10 +70,10 @@ interface ModeTestHooks { } type CreateModeTests = (transform: Transform, hooks: ModeTestHooks) => void; -function disabledTest(_name: string, _impl: jest.ProvidesCallback | undefined) {} +const disabledTest = function (_name: string, _impl: jest.ProvidesCallback | undefined) {} as It; disabledTest.only = disabledTest; disabledTest.skip = disabledTest; -disabledTest.todo = (_name: string): void => {}; +disabledTest.todo = ((_name: string): void => {}) as It; disabledTest.concurrent = disabledTest; disabledTest.each = test.each; disabledTest.failing = disabledTest; diff --git a/packages/util/package.json b/packages/util/package.json index bd31dde3e..b782e3eb2 100644 --- a/packages/util/package.json +++ b/packages/util/package.json @@ -91,8 +91,7 @@ "qunit": "^2.19.1", "qunit-dom": "^2.0.0", "typescript": "^5.1.6", - "webpack": "^5.74.0", - "semver": "^7.5.4" + "webpack": "^5.74.0" }, "engines": { "node": "12.* || 14.* || >= 16" From a25434c1ad4ff9fa474aa6376291d8ebf287af9f Mon Sep 17 00:00:00 2001 From: patrick Date: Mon, 11 Dec 2023 16:20:21 +0100 Subject: [PATCH 50/55] fix eslint --- packages/compat/src/compat-app-builder.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/compat/src/compat-app-builder.ts b/packages/compat/src/compat-app-builder.ts index 590b5471e..8e85138db 100644 --- a/packages/compat/src/compat-app-builder.ts +++ b/packages/compat/src/compat-app-builder.ts @@ -1019,6 +1019,7 @@ export class CompatAppBuilder { const legacyApp = readJSONSync(join(workingDir, 'legacy-app-info.json')); const configPath = require.resolve(join(this.root, 'config', 'environment.js')); delete require.cache[require.resolve(configPath)]; + // eslint-disable-next-line @typescript-eslint/no-require-imports const buildAppEnv = require(configPath); let html = readFileSync(join(this.root, htmlPath)).toString(); legacyApp.configReplacePatterns[env].forEach((pattern: any) => { From a2980e7a4df5eafaccc4b7487e5ead16a0c5bf1b Mon Sep 17 00:00:00 2001 From: patrick Date: Tue, 12 Dec 2023 14:16:13 +0100 Subject: [PATCH 51/55] fix --- packages/core/src/module-resolver.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/core/src/module-resolver.ts b/packages/core/src/module-resolver.ts index 623eec8d3..b9da64337 100644 --- a/packages/core/src/module-resolver.ts +++ b/packages/core/src/module-resolver.ts @@ -1060,10 +1060,10 @@ export class Resolver { // but then come back to the original location here in the fallback when the // rehomed request fails let movedPkg = this.packageCache.maybeMoved(pkg); - if (movedPkg !== pkg) { + if (movedPkg !== pkg && !pkg.isV2App()) { let originalFromFile = request.meta?.originalFromFile; if (typeof originalFromFile !== 'string') { - throw new Error(`bug: embroider resolver's meta is not propagating`); + throw new Error(`bug: embroider resolver's meta is not propagating for ${request.specifier} form ${request.fromFile}`); } request = request.rehome(originalFromFile); pkg = movedPkg; From 149d5b76737703a2bf79e8c71de22a3fe36d0e36 Mon Sep 17 00:00:00 2001 From: patrick Date: Wed, 13 Dec 2023 12:42:26 +0100 Subject: [PATCH 52/55] virtualize --- packages/compat/src/compat-app-builder.ts | 133 ++++++++++------------ packages/compat/src/compat-app.ts | 2 +- packages/compat/src/v1-config.ts | 1 + packages/core/src/asset.ts | 46 ++++++++ packages/core/src/measure-concat.ts | 8 ++ packages/core/src/module-resolver.ts | 27 ++++- packages/core/src/virtual-content.ts | 29 +++++ packages/shared-internals/package.json | 4 +- packages/vite/src/assets.ts | 115 ++++++++----------- packages/vite/src/resolver.ts | 47 ++------ pnpm-lock.yaml | 7 ++ tests/vite-app/package.json | 2 + tests/vite-app/tests/setup-harness.js | 4 +- tests/vite-app/tests/test-helper.js | 4 +- types/fast-sourcemap-concat/index.d.ts | 10 +- 15 files changed, 253 insertions(+), 186 deletions(-) diff --git a/packages/compat/src/compat-app-builder.ts b/packages/compat/src/compat-app-builder.ts index 8e85138db..afe493566 100644 --- a/packages/compat/src/compat-app-builder.ts +++ b/packages/compat/src/compat-app-builder.ts @@ -40,8 +40,8 @@ import { outputJSONSync, readJSONSync, rmSync, statSync, unlinkSync, writeFileSy import type { Options as EtcOptions } from 'babel-plugin-ember-template-compilation'; import type { Options as ResolverTransformOptions } from './resolver-transform'; import type { Options as AdjustImportsOptions } from './babel-plugin-adjust-imports'; -import { PreparedEmberHTML } from '@embroider/core/src/ember-html'; import type { InMemoryAsset, OnDiskAsset, ImplicitAssetPaths } from '@embroider/core/src/asset'; +import { ConcatenatedAsset, ParsedEmberAsset, BuiltEmberAsset } from '@embroider/core/src/asset'; import { makePortable } from '@embroider/core/src/portable-babel-config'; import type { RouteFiles } from '@embroider/core/src/app-files'; import { AppFiles } from '@embroider/core/src/app-files'; @@ -64,6 +64,7 @@ import type CompatApp from './compat-app'; import { SyncDir } from './sync-dir'; import glob from 'fast-glob'; import { readFileSync } from 'fs'; +import MeasureConcat from '@embroider/core/src/measure-concat'; // This exists during the actual broccoli build step. As opposed to CompatApp, // which also exists during pipeline-construction time. @@ -727,7 +728,7 @@ export class CompatAppBuilder { private engines: { engine: Engine; appSync: SyncDir; fastbootSync: SyncDir | undefined }[] | undefined; - private updateAppJS(appJSPath: string): AppFiles[] { + private updateAppJS(appJSPath: string, root: string|null = this.root): AppFiles[] { if (!this.engines) { this.engines = this.partitionEngines(appJSPath).map(engine => { if (engine.sourcePath === appJSPath) { @@ -737,12 +738,12 @@ export class CompatAppBuilder { if (this.activeFastboot) { let fastbootDir = this.fastbootJSSrcDir(); if (fastbootDir) { - fastbootSync = new SyncDir(fastbootDir, resolvePath(this.root, '_fastboot_')); + fastbootSync = new SyncDir(fastbootDir, root && resolvePath(root, '_fastboot_') || undefined); } } return { engine, - appSync: new SyncDir(appJSPath, this.root), + appSync: new SyncDir(appJSPath, root || undefined), fastbootSync, }; } else { @@ -833,26 +834,14 @@ export class CompatAppBuilder { copySync(asset.sourcePath, destination, { dereference: true }); } - private updateInMemoryAsset(dst: string, asset: InMemoryAsset) { - let destination = join(dst, asset.relativePath); - ensureDirSync(dirname(destination)); - writeFileSync(destination, asset.source, 'utf8'); - } - - private updateBuiltEmberAsset(dst: string, asset: BuiltEmberAsset) { - let destination = join(dst, asset.relativePath); - ensureDirSync(dirname(destination)); - writeFileSync(destination, asset.source, 'utf8'); - } - - private async updateConcatenatedAsset(dst: string, asset: ConcatenatedAsset) { + private updateConcatenatedAsset(dst: string, asset: ConcatenatedAsset) { let concat = new SourceMapConcat({ - outputFile: join(dst, asset.relativePath), + mapURL: join(dst, asset.relativePath), + file: join(dst, asset.relativePath), mapCommentType: asset.relativePath.endsWith('.js') ? 'line' : 'block', baseDir: dst, }); if (process.env.EMBROIDER_CONCAT_STATS) { - let MeasureConcat = (await import('@embroider/core/src/measure-concat')).default; concat = new MeasureConcat(asset.relativePath, concat, dst); } for (let source of asset.sources) { @@ -870,10 +859,14 @@ export class CompatAppBuilder { assertNever(source); } } - await concat.end(); + // since we are using in-memory streams, its synchronous + void concat.end(); + asset.code = concat.stream.toString(); + const sourceMapComment = '\n' + '/*# sourceMappingURL=data:application/json;base64,' + Buffer.from(JSON.stringify(concat.content)).toString('base64') + '*/'; + asset.code += sourceMapComment; } - private async updateAssets( + private updateAssets( requestedAssets: Asset[], appFiles: AppFiles[], noWrite?: boolean, @@ -890,13 +883,13 @@ export class CompatAppBuilder { this.updateOnDiskAsset(dst, asset); break; case 'in-memory': - this.updateInMemoryAsset(dst, asset); + //this.updateInMemoryAsset(dst, asset); break; case 'built-ember': - this.updateBuiltEmberAsset(dst, asset); + // this.updateBuiltEmberAsset(dst, asset); break; case 'concatenated-asset': - await this.updateConcatenatedAsset(dst, asset); + this.updateConcatenatedAsset(dst, asset); break; default: assertNever(asset); @@ -952,7 +945,29 @@ export class CompatAppBuilder { private firstBuild = true; - async build(inputPaths: OutputPaths) { + buildCachedAssets(environment: 'production' | 'development') { + const appJS = this.root; + let appFiles = this.updateAppJS(appJS, null); + let assets = this.gatherAssets({ + htmlTree: this.root, + publicTree: 'public' + } as any); + + assets.forEach((asset) => { + if (asset.relativePath.endsWith('index.html')) { + let env = environment as 'production'|'development'|'test'; + if (asset.relativePath.endsWith('tests/index.html')) { + env = 'test'; + } + const html = this.prepareHtml(asset.relativePath, env); + (asset as EmberAsset).source = html; + } + }) + + return this.updateAssets(assets, appFiles); + } + + build(inputPaths: OutputPaths) { // on the first build, we lock down the macros config. on subsequent builds, // this doesn't do anything anyway because it's idempotent. this.compatApp.macrosConfig.finalize(); @@ -966,7 +981,7 @@ export class CompatAppBuilder { let appFiles = this.updateAppJS(inputPaths.appJS); let assets = this.gatherAssets(inputPaths); - let finalAssets = await this.updateAssets(assets, appFiles); + let finalAssets = this.updateAssets(assets, appFiles); let assetPaths = assets.map(asset => asset.relativePath); @@ -1006,6 +1021,7 @@ export class CompatAppBuilder { let resolverConfig = this.resolverConfig(appFiles); this.addResolverConfig(resolverConfig); this.addLegacyAppInfo(); + this.addAssetInfo(finalAssets, inputPaths); let babelConfig = this.babelConfig(resolverConfig); this.addBabelConfig(babelConfig); writeFileSync( @@ -1054,7 +1070,7 @@ export class CompatAppBuilder { return html; } - async rebuildHtml(root: string, environment: 'production' | 'development', appOrTestHtml: 'app' | 'test') { + rebuildHtml(root: string, environment: 'production' | 'development', appOrTestHtml: 'app' | 'test') { const file = appOrTestHtml === 'app' ? 'index.html' : 'tests/index.html'; const env = appOrTestHtml === 'test' ? 'test' : environment === 'production' ? 'production' : 'development'; const html = this.prepareHtml(file, env); @@ -1078,12 +1094,12 @@ export class CompatAppBuilder { ); }); - const internalAssets = await this.updateAssets(assets, appFiles, true); + const internalAssets = this.updateAssets(assets, appFiles, true); const indexFile = internalAssets.find(a => (a as any).relativePath === file)!; return (indexFile as BuiltEmberAsset).source; } - async rebuildEntryFile(root: string) { + rebuildEntryFile(root: string) { const engines = this.partitionEngines(root); const rewrittenPackageCache = RewrittenPackageCache.shared('embroider', this.root); const pkg = rewrittenPackageCache.get(this.root); @@ -1111,7 +1127,7 @@ export class CompatAppBuilder { (asset as EmberAsset).source = this.prepareHtml(asset.relativePath, 'development'); assets.push(asset); } - const internalAssets = await this.updateAssets(assets, appFiles, true); + const internalAssets = this.updateAssets(assets, appFiles, true); const indexFile = internalAssets.find(a => (a as any).relativePath === relativePath)!; return (indexFile as BuiltEmberAsset).source; } @@ -1120,7 +1136,7 @@ export class CompatAppBuilder { const assets = this.gatherAssets({ publicTree: 'public', } as any); - await this.updateAssets(assets, [], false, dir); + this.updateAssets(assets, [], false, dir); } private combinePackageJSON(meta: AppMeta): object { @@ -1212,6 +1228,20 @@ export class CompatAppBuilder { outputJSONSync(join(locateEmbroiderWorkingDir(this.compatApp.root), 'resolver.json'), config, { spaces: 2 }); } + private addAssetInfo(finalAssets: InternalAsset[], inputPaths: OutputPaths) { + outputJSONSync( + join(locateEmbroiderWorkingDir(this.compatApp.root), 'asset-info.json'), + { + assets: finalAssets.map((a) => ({ + kind: a.kind, + relativePath: a.relativePath, + sourcePath: (a as OnDiskAsset).sourcePath, + })), + inputPaths: inputPaths + } + ); + } + private addLegacyAppInfo() { const project = this.compatApp.legacyEmberAppInstance.project as any; const production = project.config('production'); @@ -1745,44 +1775,3 @@ interface TreeNames { type InternalAsset = OnDiskAsset | InMemoryAsset | BuiltEmberAsset | ConcatenatedAsset; -class ParsedEmberAsset { - kind: 'parsed-ember' = 'parsed-ember'; - relativePath: string; - fileAsset: EmberAsset; - html: PreparedEmberHTML; - - constructor(asset: EmberAsset) { - this.fileAsset = asset; - this.html = new PreparedEmberHTML(asset); - this.relativePath = asset.relativePath; - } - - validFor(other: EmberAsset) { - return this.fileAsset.mtime === other.mtime && this.fileAsset.size === other.size; - } -} - -class BuiltEmberAsset { - kind: 'built-ember' = 'built-ember'; - relativePath: string; - parsedAsset: ParsedEmberAsset; - source: string; - - constructor(asset: ParsedEmberAsset) { - this.parsedAsset = asset; - this.source = asset.html.dom.serialize(); - this.relativePath = asset.relativePath; - } -} - -class ConcatenatedAsset { - kind: 'concatenated-asset' = 'concatenated-asset'; - constructor( - public relativePath: string, - public sources: (OnDiskAsset | InMemoryAsset)[], - private resolvableExtensions: RegExp - ) {} - get sourcemapPath() { - return this.relativePath.replace(this.resolvableExtensions, '') + '.map'; - } -} diff --git a/packages/compat/src/compat-app.ts b/packages/compat/src/compat-app.ts index 73a86bb93..d806b19a7 100644 --- a/packages/compat/src/compat-app.ts +++ b/packages/compat/src/compat-app.ts @@ -810,7 +810,7 @@ export default class CompatApp { }); } - static getCachedBuilderInstance(root: string) { + static getCachedBuilderInstance(root: string): CompatAppBuilder { const workingDir = locateEmbroiderWorkingDir(root); const options = readJSONSync(join(workingDir, 'resolver.json')); const legacyApp = readJSONSync(join(workingDir, 'legacy-app-info.json')); diff --git a/packages/compat/src/v1-config.ts b/packages/compat/src/v1-config.ts index 43344a66e..2fd3c8c6b 100644 --- a/packages/compat/src/v1-config.ts +++ b/packages/compat/src/v1-config.ts @@ -9,6 +9,7 @@ export interface ConfigContents { EmberENV: unknown; APP: unknown; rootURL: string; + environment: string; } export class V1Config extends Plugin { diff --git a/packages/core/src/asset.ts b/packages/core/src/asset.ts index 9f421373e..d8d69652e 100644 --- a/packages/core/src/asset.ts +++ b/packages/core/src/asset.ts @@ -1,5 +1,6 @@ import type { JSDOM } from 'jsdom'; import type { EmberHTML } from './ember-html'; +import { PreparedEmberHTML } from './ember-html'; export interface ImplicitAssetPaths { 'implicit-scripts': string[]; @@ -54,4 +55,49 @@ export interface EmberAsset extends BaseAsset { prepare(dom: JSDOM): EmberHTML; } + +export class BuiltEmberAsset { + kind: 'built-ember' = 'built-ember'; + relativePath: string; + parsedAsset: ParsedEmberAsset; + source: string; + + constructor(asset: ParsedEmberAsset) { + this.parsedAsset = asset; + this.source = asset.html.dom.serialize(); + this.relativePath = asset.relativePath; + } +} + +export class ConcatenatedAsset { + kind: 'concatenated-asset' = 'concatenated-asset'; + code?: string; + constructor( + public relativePath: string, + public sources: (OnDiskAsset | InMemoryAsset)[], + private resolvableExtensions: RegExp + ) {} + get sourcemapPath() { + return this.relativePath.replace(this.resolvableExtensions, '') + '.map'; + } +} + +export class ParsedEmberAsset { + kind: 'parsed-ember' = 'parsed-ember'; + relativePath: string; + fileAsset: EmberAsset; + html: PreparedEmberHTML; + + constructor(asset: EmberAsset) { + this.fileAsset = asset; + this.html = new PreparedEmberHTML(asset); + this.relativePath = asset.relativePath; + } + + validFor(other: EmberAsset) { + return this.fileAsset.mtime === other.mtime && this.fileAsset.size === other.size; + } +} + + export type Asset = OnDiskAsset | InMemoryAsset | EmberAsset; diff --git a/packages/core/src/measure-concat.ts b/packages/core/src/measure-concat.ts index 245ed83d9..7b48ead8c 100644 --- a/packages/core/src/measure-concat.ts +++ b/packages/core/src/measure-concat.ts @@ -24,4 +24,12 @@ export default class MeasureConcat { ); return await this.concat.end(); } + + get content() { + return this.concat.content; + } + + get stream() { + return this.concat.stream; + } } diff --git a/packages/core/src/module-resolver.ts b/packages/core/src/module-resolver.ts index b9da64337..0d711243e 100644 --- a/packages/core/src/module-resolver.ts +++ b/packages/core/src/module-resolver.ts @@ -1,7 +1,7 @@ import { emberVirtualPackages, emberVirtualPeerDeps, - extensionsPattern, + extensionsPattern, locateEmbroiderWorkingDir, packageName as getPackageName, packageName, } from '@embroider/shared-internals'; @@ -12,6 +12,7 @@ import makeDebug from 'debug'; import assertNever from 'assert-never'; import reversePackageExports from '@embroider/reverse-exports'; + import { virtualExternalESModule, virtualExternalCJSModule, @@ -19,12 +20,15 @@ import { fastbootSwitch, decodeFastbootSwitch, decodeImplicitModules, + decodeVirtualAsset } from './virtual-content'; import { Memoize } from 'typescript-memoize'; import { describeExports } from './describe-exports'; import { readFileSync } from 'fs'; import type UserOptions from './options'; import { nodeResolve } from './node-resolve'; +import { join } from 'path/posix'; +import { readJSONSync } from 'fs-extra'; const debug = makeDebug('embroider:resolver'); @@ -82,6 +86,7 @@ export interface Options { }; resolvableExtensions: string[]; appRoot: string; + environment?: 'production' | 'development'; engines: EngineConfig[]; modulePrefix: string; podModulePrefix?: string; @@ -179,6 +184,7 @@ export class Resolver { // we expect the specifier to be app relative at this point - must be after handleRenaming request = this.generateFastbootSwitch(request); request = this.preHandleExternal(request); + request = this.handleVirtualAssets(request); // this should probably stay the last step in beforeResolve, because it can // rehome requests to their un-rewritten locations, and for the most part we @@ -968,6 +974,25 @@ export class Resolver { return request; } + private handleVirtualAssets(request: R): R { + if (request.isVirtual || request.isNotFound) { + return request; + } + const info = readJSONSync(join(locateEmbroiderWorkingDir(this.options.appRoot), 'asset-info.json')) as { + assets:{ + relativePath: string + }[] + }; + const assets = info.assets; + if (dirname(request.fromFile) === this.options.appRoot || request.fromFile === '') { + const asset = assets.find((a) => request.specifier === join(this.options.appRoot, a.relativePath) || request.specifier === '/' + a.relativePath); + if (asset) { + return request.virtualize('/@embroider/assets/' + request.specifier); + } + } + return request; + } + private locateActiveAddon(packageName: string): { root: string; canResolveFromFile: string } | undefined { if (packageName === this.options.modulePrefix) { // the app itself is something that addon's can classically resolve if they know it's name. diff --git a/packages/core/src/virtual-content.ts b/packages/core/src/virtual-content.ts index 02d428d28..f6b5bc84f 100644 --- a/packages/core/src/virtual-content.ts +++ b/packages/core/src/virtual-content.ts @@ -2,15 +2,19 @@ import { dirname, basename, resolve, posix, sep, join } from 'path'; import type { Resolver, AddonPackage, Package } from '.'; import { explicitRelative, extensionsPattern } from '.'; import { compile } from './js-handlebars'; +import { BuiltEmberAsset, ConcatenatedAsset, InMemoryAsset } from './asset'; const externalESPrefix = '/@embroider/ext-es/'; const externalCJSPrefix = '/@embroider/ext-cjs/'; +const assetPrefix = '/@embroider/assets/'; // Given a filename that was passed to your ModuleRequest's `virtualize()`, // this produces the corresponding contents. It's a static, stateless function // because we recognize that that process that did resolution might not be the // same one that loads the content. export function virtualContent(filename: string, resolver: Resolver): string { + const CompatApp = require('../../compat/src/compat-app').default; + const compatAppBuilder = CompatApp.getCachedBuilderInstance(resolver.options.appRoot); let cjsExtern = decodeVirtualExternalCJSModule(filename); if (cjsExtern) { return renderCJSExternalShim(cjsExtern); @@ -35,6 +39,25 @@ export function virtualContent(filename: string, resolver: Resolver): string { return renderImplicitModules(im, resolver); } + let asset = decodeVirtualAsset(filename); + if (asset) { + if (asset.moduleName === join(resolver.options.appRoot, 'assets', resolver.options.modulePrefix + '.js')) { + return compatAppBuilder.rebuildEntryFile(resolver.options.appRoot); + } + if (asset.moduleName === join(resolver.options.appRoot, 'assets', 'test.js')) { + return compatAppBuilder.rebuildEntryFile(join(resolver.options.appRoot, 'tests')); + } + if (asset.moduleName === join(resolver.options.appRoot, 'index.html')) { + return compatAppBuilder.rebuildHtml(resolver.options.appRoot, resolver.options.environment!, 'app'); + } + if (asset.moduleName === join(resolver.options.appRoot, 'tests', 'index.html')) { + return compatAppBuilder.rebuildHtml(join(resolver.options.appRoot, 'tests'), resolver.options.environment!, 'app'); + } + const finalAssets = compatAppBuilder.buildCachedAssets(resolver.options.environment!); + const found = finalAssets.find(a => a.relativePath === asset!.moduleName.slice(resolver.options.appRoot.length)); + return (found as (InMemoryAsset|BuiltEmberAsset)).source.toString() || (found as ConcatenatedAsset).code! + } + throw new Error(`not an @embroider/core virtual file: ${filename}`); } @@ -107,6 +130,12 @@ function decodeVirtualExternalCJSModule(filename: string) { } } +export function decodeVirtualAsset(filename: string) { + if (filename.startsWith(assetPrefix)) { + return { moduleName: filename.slice(assetPrefix.length) }; + } +} + const pairComponentMarker = '/embroider-pair-component'; const pairComponentPattern = /^(?.*)\/(?[^\/]*)\/embroider-pair-component$/; diff --git a/packages/shared-internals/package.json b/packages/shared-internals/package.json index f04b74c6d..c1535b2e9 100644 --- a/packages/shared-internals/package.json +++ b/packages/shared-internals/package.json @@ -36,7 +36,9 @@ "typescript-memoize": "^1.0.1", "fs-extra": "^9.1.0", "lodash": "^4.17.21", - "semver": "^7.3.5" + "semver": "^7.3.5", + "walk-sync": "^3.0.0", + "resolve": "^1.22.8" }, "devDependencies": { "broccoli-node-api": "^1.7.0", diff --git a/packages/vite/src/assets.ts b/packages/vite/src/assets.ts index dd7a1aa3d..a7557bd6d 100644 --- a/packages/vite/src/assets.ts +++ b/packages/vite/src/assets.ts @@ -1,52 +1,53 @@ -import type { RewrittenPackageCache, Resolver } from '@embroider/core'; -import { getAppMeta, locateEmbroiderWorkingDir, ResolverLoader } from '@embroider/core'; +import type { Resolver } from '@embroider/core'; +import { getAppMeta, locateEmbroiderWorkingDir, ResolverLoader, virtualContent } from '@embroider/core'; import { join } from 'path/posix'; -import { existsSync, readFileSync } from 'fs'; +import { existsSync } from 'fs'; import CompatApp from '@embroider/compat/src/compat-app'; import type { Plugin } from 'vite'; import * as process from 'process'; +import { RollupModuleRequest, virtualPrefix } from './request'; -type Options = { - root: string; - compatAppDir?: string; - rewrittenPackageCache: RewrittenPackageCache; -}; +// type Options = { +// root: string; +// compatAppDir?: string; +// rewrittenPackageCache: RewrittenPackageCache; +// }; let InMemoryAssets: Record = {}; let environment: 'production' | 'development' = 'production'; - -async function generateHtml(root: string, appOrTest: 'app' | 'test') { - const file = appOrTest === 'app' ? 'index.html' : 'tests/index.html'; - if (!InMemoryAssets[file]) { - InMemoryAssets[file] = await CompatApp.getCachedBuilderInstance(process.cwd()).rebuildHtml( - root, - environment, - appOrTest - ); - } - - return InMemoryAssets[file]; -} - -async function generateAppEntries({ rewrittenPackageCache, root }: Options) { - const pkg = rewrittenPackageCache.get(process.cwd()); - if (!InMemoryAssets[`assets/${pkg.name}.js`]) { - InMemoryAssets[`assets/${pkg.name}.js`] = await CompatApp.getCachedBuilderInstance(process.cwd()).rebuildEntryFile( - root - ); - } - return InMemoryAssets[`assets/${pkg.name}.js`]; -} - -async function generateTestEntries(testFolder: string) { - if (!InMemoryAssets[`assets/test.js`]) { - InMemoryAssets[`assets/test.js`] = await CompatApp.getCachedBuilderInstance(process.cwd()).rebuildEntryFile( - testFolder - ); - } - return InMemoryAssets[`assets/test.js`]; -} +// +// async function generateHtml(root: string, appOrTest: 'app' | 'test') { +// const file = appOrTest === 'app' ? 'index.html' : 'tests/index.html'; +// if (!InMemoryAssets[file]) { +// InMemoryAssets[file] = await CompatApp.getCachedBuilderInstance(process.cwd()).rebuildHtml( +// root, +// environment, +// appOrTest +// ); +// } +// +// return InMemoryAssets[file]; +// } +// +// async function generateAppEntries({ rewrittenPackageCache, root }: Options) { +// const pkg = rewrittenPackageCache.get(process.cwd()); +// if (!InMemoryAssets[`assets/${pkg.name}.js`]) { +// InMemoryAssets[`assets/${pkg.name}.js`] = await CompatApp.getCachedBuilderInstance(process.cwd()).rebuildEntryFile( +// root +// ); +// } +// return InMemoryAssets[`assets/${pkg.name}.js`]; +// } +// +// async function generateTestEntries(testFolder: string) { +// if (!InMemoryAssets[`assets/test.js`]) { +// InMemoryAssets[`assets/test.js`] = await CompatApp.getCachedBuilderInstance(process.cwd()).rebuildEntryFile( +// testFolder +// ); +// } +// return InMemoryAssets[`assets/test.js`]; +// } function findPublicAsset(relativePath: string, resolver: Resolver, embroiderWorkingDir: string) { const packageCache = resolver.packageCache; @@ -82,8 +83,8 @@ export function assets(options?: { entryDirectories?: string[] }): Plugin { const cwd = process.cwd(); const root = join(cwd, 'app'); const embroiderWorkingDir = locateEmbroiderWorkingDir(cwd); - const rewrittenApp = join(embroiderWorkingDir, 'rewritten-app'); const resolverLoader = new ResolverLoader(cwd); + resolverLoader.resolver.options.environment = environment; const appMeta = getAppMeta(cwd); const tests = join(cwd, 'tests'); const appIndex = join(cwd, 'index.html'); @@ -97,6 +98,7 @@ export function assets(options?: { entryDirectories?: string[] }): Plugin { enforce: 'pre', configureServer(server) { environment = 'development'; + resolverLoader.resolver.options.environment = environment; const watcher = server.watcher; // this is required because we do not open the /tests url directly and via the middleware watcher.on('add', filename => { @@ -160,36 +162,13 @@ export function assets(options?: { entryDirectories?: string[] }): Plugin { transformIndexHtml: { order: 'pre', async handler(_html, ctx) { - if (ctx.filename === appIndex) { - return await generateHtml(root, 'app'); - } - if (ctx.filename === testsIndex) { - return await generateHtml(root, 'test'); + const request = RollupModuleRequest.from(ctx.filename, '', {})!; + const resolution = resolverLoader.resolver.resolveSync(request, (req) => ({ type: 'found', result: req.specifier })); + if (resolution.result.startsWith(virtualPrefix)) { + return virtualContent(resolution.result.slice(virtualPrefix.length), resolverLoader.resolver); } }, }, - load(id) { - id = id.split('?')[0]; - if (id.endsWith('/testem.js')) { - return ''; - } - if (id === join(cwd, 'config', 'environment.js')) { - const code = readFileSync(id).toString(); - return code.replace('module.exports = ', 'export default '); - } - if (id.startsWith(root + '/assets/')) { - if (id.endsWith(appMeta.name + '.js')) { - return generateAppEntries({ - root, - rewrittenPackageCache: resolverLoader.resolver.packageCache, - }); - } - if (id.endsWith('/assets/test.js')) { - return generateTestEntries(tests); - } - return readFileSync(rewrittenApp + id.replace(root + '/assets/', '/assets/').split('?')[0]).toString(); - } - }, async writeBundle(options) { await CompatApp.getCachedBuilderInstance(root).copyPublicAssetsToDir(options.dir || join(cwd, 'dist')); }, diff --git a/packages/vite/src/resolver.ts b/packages/vite/src/resolver.ts index 4dbeeecef..4433f649f 100644 --- a/packages/vite/src/resolver.ts +++ b/packages/vite/src/resolver.ts @@ -1,13 +1,12 @@ import type { PluginContext, ResolveIdResult } from 'rollup'; import type { Plugin } from 'vite'; -import { join, resolve } from 'path/posix'; +import { join } from 'path/posix'; import type { Resolution, ResolverFunction } from '@embroider/core'; import { ResolverLoader, virtualContent } from '@embroider/core'; import { RollupModuleRequest, virtualPrefix } from './request'; import assertNever from 'assert-never'; const cwd = process.cwd(); -const root = join(cwd, 'app'); const embroiderDir = join(cwd, 'node_modules', '.embroider'); const rewrittenApp = join(embroiderDir, 'rewritten-app'); @@ -27,20 +26,6 @@ export function resolver(_options?: Options): Plugin { name: 'embroider-resolver', enforce: 'pre', async resolveId(source, importer, options) { - if (source.startsWith('/assets/')) { - return resolve(root, '.' + source); - } - if (importer?.includes(`${root}/assets/`) && !source.match(/-embroider-implicit-.*modules.js$/)) { - if (source.startsWith('../tests')) { - source = resolve(root, source); - } - if (source.startsWith('.')) { - source = resolve(root, 'assets', source); - } - if (source.includes('/app/assets/')) { - return source; - } - } let request = RollupModuleRequest.from(source, importer, options.custom); if (!request) { // fallthrough to other rollup plugins @@ -72,29 +57,15 @@ function defaultResolve(context: PluginContext): ResolverFunction=10'} diff --git a/tests/vite-app/package.json b/tests/vite-app/package.json index 29abd19b3..d6250a316 100644 --- a/tests/vite-app/package.json +++ b/tests/vite-app/package.json @@ -22,6 +22,7 @@ "lint:js:fix": "eslint . --fix", "start:dev": "vite", "start:test": "vite --open /tests", + "start:prebuild": "ember b", "test": "concurrently \"npm:lint\" \"npm:test:*\" --names \"lint,test:\"", "test:ember": "node ./node_modules/@embroider/vite/src/bin/run-tests.mjs" }, @@ -69,6 +70,7 @@ "prettier": "^2.8.8", "qunit": "^2.19.4", "qunit-dom": "^2.0.0", + "qunit-theme-ember": "^0.2.0", "stylelint": "^15.7.0", "stylelint-config-standard": "^33.0.0", "stylelint-prettier": "^3.0.0", diff --git a/tests/vite-app/tests/setup-harness.js b/tests/vite-app/tests/setup-harness.js index bf1663a92..cc979ae2a 100644 --- a/tests/vite-app/tests/setup-harness.js +++ b/tests/vite-app/tests/setup-harness.js @@ -2,7 +2,7 @@ import { autoRegister } from 'js-reporters'; import qunit from 'qunit'; -export async function setupQunit() { +export function setupQunit() { const runner = autoRegister(); const tap = qunit.reporters.tap; tap.init(runner, { log: console.info }); @@ -19,8 +19,6 @@ export async function setupQunit() { tooltip: 'CI mode makes tests run faster by sacrificing UI responsiveness', }); - await Promise.resolve(); - console.log(`[HARNESS] ci=${hasFlag('ci')}`); if (!hasFlag('ci')) { diff --git a/tests/vite-app/tests/test-helper.js b/tests/vite-app/tests/test-helper.js index 0d96f6d4a..65f966a46 100644 --- a/tests/vite-app/tests/test-helper.js +++ b/tests/vite-app/tests/test-helper.js @@ -10,4 +10,6 @@ setApplication(Application.create(config.APP)); setup(QUnit.assert); -setupQunit().then(() => start()); +setupQunit(); + +start(); diff --git a/types/fast-sourcemap-concat/index.d.ts b/types/fast-sourcemap-concat/index.d.ts index e6a5c7f57..c92e09145 100644 --- a/types/fast-sourcemap-concat/index.d.ts +++ b/types/fast-sourcemap-concat/index.d.ts @@ -1,7 +1,15 @@ declare module 'fast-sourcemap-concat' { // this is not exhaustive, just what we're using export default class { - constructor(opts: { outputFile?: string; mapCommentType?: 'line' | 'block'; baseDir?: string }); + content: string; + stream: ReadableStream; + constructor(opts: { + outputFile?: string; + mapURL?: string; + file?: string; + mapCommentType?: 'line' | 'block'; + baseDir?: string + }); addFile(filename: string): void; addSpace(source: string): void; end(): Promise; From a9c28697e8ae039f00f8cad250e07e0bef65b30d Mon Sep 17 00:00:00 2001 From: patrick Date: Wed, 13 Dec 2023 14:29:15 +0100 Subject: [PATCH 53/55] wip --- packages/compat/src/compat-app-builder.ts | 7 ++++--- packages/core/src/module-resolver.ts | 3 ++- packages/core/src/virtual-content.ts | 12 ++++++------ packages/vite/src/resolver.ts | 4 ++++ 4 files changed, 16 insertions(+), 10 deletions(-) diff --git a/packages/compat/src/compat-app-builder.ts b/packages/compat/src/compat-app-builder.ts index afe493566..231c6be91 100644 --- a/packages/compat/src/compat-app-builder.ts +++ b/packages/compat/src/compat-app-builder.ts @@ -946,8 +946,9 @@ export class CompatAppBuilder { private firstBuild = true; buildCachedAssets(environment: 'production' | 'development') { - const appJS = this.root; - let appFiles = this.updateAppJS(appJS, null); + const workingDir = locateEmbroiderWorkingDir(this.root); + const rewrittenApp = join(workingDir, 'rewritten-app'); + let appFiles = this.updateAppJS(rewrittenApp, null); let assets = this.gatherAssets({ htmlTree: this.root, publicTree: 'public' @@ -1387,7 +1388,7 @@ export class CompatAppBuilder { return this.appJSAsset(relativePath, app, childEngines, prepared, { autoRun: this.compatApp.autoRun, appBoot: !this.compatApp.autoRun ? this.compatApp.appBoot.readAppBoot() : '', - mainModule: explicitRelative(dirname(relativePath), 'app'), + mainModule: explicitRelative(relativePath, 'app/app'), appConfig: this.configTree.readConfig().APP, }); } diff --git a/packages/core/src/module-resolver.ts b/packages/core/src/module-resolver.ts index 0d711243e..dd1d43a35 100644 --- a/packages/core/src/module-resolver.ts +++ b/packages/core/src/module-resolver.ts @@ -987,7 +987,8 @@ export class Resolver { if (dirname(request.fromFile) === this.options.appRoot || request.fromFile === '') { const asset = assets.find((a) => request.specifier === join(this.options.appRoot, a.relativePath) || request.specifier === '/' + a.relativePath); if (asset) { - return request.virtualize('/@embroider/assets/' + request.specifier); + let specifier = request.specifier; + return request.virtualize(`@embroider-assets:${specifier}`); } } return request; diff --git a/packages/core/src/virtual-content.ts b/packages/core/src/virtual-content.ts index f6b5bc84f..5c686606a 100644 --- a/packages/core/src/virtual-content.ts +++ b/packages/core/src/virtual-content.ts @@ -6,7 +6,7 @@ import { BuiltEmberAsset, ConcatenatedAsset, InMemoryAsset } from './asset'; const externalESPrefix = '/@embroider/ext-es/'; const externalCJSPrefix = '/@embroider/ext-cjs/'; -const assetPrefix = '/@embroider/assets/'; +const assetPrefix = '@embroider-assets:'; // Given a filename that was passed to your ModuleRequest's `virtualize()`, // this produces the corresponding contents. It's a static, stateless function @@ -41,10 +41,10 @@ export function virtualContent(filename: string, resolver: Resolver): string { let asset = decodeVirtualAsset(filename); if (asset) { - if (asset.moduleName === join(resolver.options.appRoot, 'assets', resolver.options.modulePrefix + '.js')) { - return compatAppBuilder.rebuildEntryFile(resolver.options.appRoot); + if (asset.moduleName === '/' + join('assets', resolver.options.modulePrefix + '.js')) { + return compatAppBuilder.rebuildEntryFile(join(resolver.options.appRoot, 'app')); } - if (asset.moduleName === join(resolver.options.appRoot, 'assets', 'test.js')) { + if (asset.moduleName === '/' + join('assets', 'test.js')) { return compatAppBuilder.rebuildEntryFile(join(resolver.options.appRoot, 'tests')); } if (asset.moduleName === join(resolver.options.appRoot, 'index.html')) { @@ -54,8 +54,8 @@ export function virtualContent(filename: string, resolver: Resolver): string { return compatAppBuilder.rebuildHtml(join(resolver.options.appRoot, 'tests'), resolver.options.environment!, 'app'); } const finalAssets = compatAppBuilder.buildCachedAssets(resolver.options.environment!); - const found = finalAssets.find(a => a.relativePath === asset!.moduleName.slice(resolver.options.appRoot.length)); - return (found as (InMemoryAsset|BuiltEmberAsset)).source.toString() || (found as ConcatenatedAsset).code! + const found = finalAssets.find(a => '/' + a.relativePath === asset!.moduleName.replace(resolver.options.appRoot, '') || a.relativePath === asset!.moduleName); + return (found as (InMemoryAsset|BuiltEmberAsset)).source?.toString() || (found as ConcatenatedAsset).code! } throw new Error(`not an @embroider/core virtual file: ${filename}`); diff --git a/packages/vite/src/resolver.ts b/packages/vite/src/resolver.ts index 4433f649f..c069fdbd2 100644 --- a/packages/vite/src/resolver.ts +++ b/packages/vite/src/resolver.ts @@ -16,6 +16,7 @@ type Options = { export function resolver(_options?: Options): Plugin { const resolverLoader = new ResolverLoader(process.cwd()); + resolverLoader.resolver.options.environment = 'production'; resolverLoader.resolver.options.engines.forEach(engine => { engine.root = engine.root.replace(rewrittenApp, cwd); engine.activeAddons.forEach(addon => { @@ -25,6 +26,9 @@ export function resolver(_options?: Options): Plugin { return { name: 'embroider-resolver', enforce: 'pre', + configureServer() { + resolverLoader.resolver.options.environment = 'development'; + }, async resolveId(source, importer, options) { let request = RollupModuleRequest.from(source, importer, options.custom); if (!request) { From 475ca54752205f087091f1317e577c39bb817c6f Mon Sep 17 00:00:00 2001 From: Patrick Date: Wed, 13 Dec 2023 22:56:27 +0100 Subject: [PATCH 54/55] fix --- packages/compat/src/compat-app-builder.ts | 6 ++-- packages/core/src/module-resolver.ts | 3 +- packages/core/src/virtual-content.ts | 2 +- packages/vite/src/resolver.ts | 37 ++++++++++++++++++----- tests/vite-app/package.json | 1 - 5 files changed, 34 insertions(+), 15 deletions(-) diff --git a/packages/compat/src/compat-app-builder.ts b/packages/compat/src/compat-app-builder.ts index 231c6be91..55517a249 100644 --- a/packages/compat/src/compat-app-builder.ts +++ b/packages/compat/src/compat-app-builder.ts @@ -1388,7 +1388,7 @@ export class CompatAppBuilder { return this.appJSAsset(relativePath, app, childEngines, prepared, { autoRun: this.compatApp.autoRun, appBoot: !this.compatApp.autoRun ? this.compatApp.appBoot.readAppBoot() : '', - mainModule: explicitRelative(relativePath, 'app/app'), + mainModule: `${this.compatApp.name}/app`, appConfig: this.configTree.readConfig().APP, }); } @@ -1564,7 +1564,7 @@ export class CompatAppBuilder { // packagers to understand. It's better to express it here as a direct // module dependency. let eagerModules: string[] = [ - explicitRelative(dirname(myName), this.topAppJSAsset(appFiles, prepared).relativePath), + '/' + this.topAppJSAsset(appFiles, prepared).relativePath ]; let amdModules: { runtime: string; buildtime: string }[] = []; @@ -1674,7 +1674,7 @@ if (!runningTests) { {{!- this is the traditional tests-suffix.js -}} - i('../tests/test-helper'); + i('./tests/test-helper'); EmberENV.TESTS_FILE_LOADED = true; {{/if}} `) as (params: { diff --git a/packages/core/src/module-resolver.ts b/packages/core/src/module-resolver.ts index dd1d43a35..9e48c2389 100644 --- a/packages/core/src/module-resolver.ts +++ b/packages/core/src/module-resolver.ts @@ -20,7 +20,6 @@ import { fastbootSwitch, decodeFastbootSwitch, decodeImplicitModules, - decodeVirtualAsset } from './virtual-content'; import { Memoize } from 'typescript-memoize'; import { describeExports } from './describe-exports'; @@ -984,7 +983,7 @@ export class Resolver { }[] }; const assets = info.assets; - if (dirname(request.fromFile) === this.options.appRoot || request.fromFile === '') { + if (dirname(request.fromFile) === this.options.appRoot || request.fromFile === '' || request.fromFile.startsWith('@embroider-assets:')) { const asset = assets.find((a) => request.specifier === join(this.options.appRoot, a.relativePath) || request.specifier === '/' + a.relativePath); if (asset) { let specifier = request.specifier; diff --git a/packages/core/src/virtual-content.ts b/packages/core/src/virtual-content.ts index 5c686606a..515c95161 100644 --- a/packages/core/src/virtual-content.ts +++ b/packages/core/src/virtual-content.ts @@ -51,7 +51,7 @@ export function virtualContent(filename: string, resolver: Resolver): string { return compatAppBuilder.rebuildHtml(resolver.options.appRoot, resolver.options.environment!, 'app'); } if (asset.moduleName === join(resolver.options.appRoot, 'tests', 'index.html')) { - return compatAppBuilder.rebuildHtml(join(resolver.options.appRoot, 'tests'), resolver.options.environment!, 'app'); + return compatAppBuilder.rebuildHtml(join(resolver.options.appRoot, 'tests'), resolver.options.environment!, 'test'); } const finalAssets = compatAppBuilder.buildCachedAssets(resolver.options.environment!); const found = finalAssets.find(a => '/' + a.relativePath === asset!.moduleName.replace(resolver.options.appRoot, '') || a.relativePath === asset!.moduleName); diff --git a/packages/vite/src/resolver.ts b/packages/vite/src/resolver.ts index c069fdbd2..8737c10e2 100644 --- a/packages/vite/src/resolver.ts +++ b/packages/vite/src/resolver.ts @@ -61,15 +61,36 @@ function defaultResolve(context: PluginContext): ResolverFunction Date: Thu, 14 Dec 2023 09:40:02 +0100 Subject: [PATCH 55/55] fix --- packages/compat/src/compat-app-builder.ts | 7 ++-- packages/core/src/module-resolver.ts | 8 ++--- packages/core/src/virtual-content.ts | 16 ++++++--- tests/vite-app/testem.js | 42 ++++++++++------------- 4 files changed, 39 insertions(+), 34 deletions(-) diff --git a/packages/compat/src/compat-app-builder.ts b/packages/compat/src/compat-app-builder.ts index 55517a249..42fc536b4 100644 --- a/packages/compat/src/compat-app-builder.ts +++ b/packages/compat/src/compat-app-builder.ts @@ -945,7 +945,7 @@ export class CompatAppBuilder { private firstBuild = true; - buildCachedAssets(environment: 'production' | 'development') { + buildCachedAssets(environment: 'production' | 'development'): InternalAsset[] { const workingDir = locateEmbroiderWorkingDir(this.root); const rewrittenApp = join(workingDir, 'rewritten-app'); let appFiles = this.updateAppJS(rewrittenApp, null); @@ -1577,6 +1577,7 @@ export class CompatAppBuilder { } let source = entryTemplate({ + mainModule: `${this.compatApp.name}/tests/test-helper`, amdModules, eagerModules, testSuffix: true, @@ -1674,7 +1675,7 @@ if (!runningTests) { {{!- this is the traditional tests-suffix.js -}} - i('./tests/test-helper'); + i("{{js-string-escape mainModule}}") EmberENV.TESTS_FILE_LOADED = true; {{/if}} `) as (params: { @@ -1774,5 +1775,5 @@ interface TreeNames { configTree: BroccoliNode; } -type InternalAsset = OnDiskAsset | InMemoryAsset | BuiltEmberAsset | ConcatenatedAsset; +export type InternalAsset = OnDiskAsset | InMemoryAsset | BuiltEmberAsset | ConcatenatedAsset; diff --git a/packages/core/src/module-resolver.ts b/packages/core/src/module-resolver.ts index 9e48c2389..912b7f950 100644 --- a/packages/core/src/module-resolver.ts +++ b/packages/core/src/module-resolver.ts @@ -983,11 +983,11 @@ export class Resolver { }[] }; const assets = info.assets; - if (dirname(request.fromFile) === this.options.appRoot || request.fromFile === '' || request.fromFile.startsWith('@embroider-assets:')) { - const asset = assets.find((a) => request.specifier === join(this.options.appRoot, a.relativePath) || request.specifier === '/' + a.relativePath); + if (request.specifier.startsWith('/')) { + const specifier = request.specifier.split('?')[0]; + const asset = assets.find((a) => specifier === join(this.options.appRoot, a.relativePath) || specifier === '/' + a.relativePath); if (asset) { - let specifier = request.specifier; - return request.virtualize(`@embroider-assets:${specifier}`); + return request.virtualize(`@embroider-assets:${request.specifier}`); } } return request; diff --git a/packages/core/src/virtual-content.ts b/packages/core/src/virtual-content.ts index 515c95161..285b62d05 100644 --- a/packages/core/src/virtual-content.ts +++ b/packages/core/src/virtual-content.ts @@ -2,7 +2,8 @@ import { dirname, basename, resolve, posix, sep, join } from 'path'; import type { Resolver, AddonPackage, Package } from '.'; import { explicitRelative, extensionsPattern } from '.'; import { compile } from './js-handlebars'; -import { BuiltEmberAsset, ConcatenatedAsset, InMemoryAsset } from './asset'; +import { BuiltEmberAsset, ConcatenatedAsset, InMemoryAsset, OnDiskAsset } from './asset'; +import { existsSync, readFileSync } from 'fs'; const externalESPrefix = '/@embroider/ext-es/'; const externalCJSPrefix = '/@embroider/ext-cjs/'; @@ -13,7 +14,7 @@ const assetPrefix = '@embroider-assets:'; // because we recognize that that process that did resolution might not be the // same one that loads the content. export function virtualContent(filename: string, resolver: Resolver): string { - const CompatApp = require('../../compat/src/compat-app').default; + const CompatApp = require('../../compat/src/compat-app').default as typeof import('../../compat/src/compat-app').default; const compatAppBuilder = CompatApp.getCachedBuilderInstance(resolver.options.appRoot); let cjsExtern = decodeVirtualExternalCJSModule(filename); if (cjsExtern) { @@ -55,7 +56,14 @@ export function virtualContent(filename: string, resolver: Resolver): string { } const finalAssets = compatAppBuilder.buildCachedAssets(resolver.options.environment!); const found = finalAssets.find(a => '/' + a.relativePath === asset!.moduleName.replace(resolver.options.appRoot, '') || a.relativePath === asset!.moduleName); - return (found as (InMemoryAsset|BuiltEmberAsset)).source?.toString() || (found as ConcatenatedAsset).code! + const source = (found as (InMemoryAsset|BuiltEmberAsset)).source?.toString() || (found as ConcatenatedAsset).code! + if (source) { + return source; + } + const onDisk = (found as OnDiskAsset); + if (onDisk.sourcePath && existsSync(onDisk.sourcePath)) { + return readFileSync(onDisk.sourcePath).toString(); + } } throw new Error(`not an @embroider/core virtual file: ${filename}`); @@ -132,7 +140,7 @@ function decodeVirtualExternalCJSModule(filename: string) { export function decodeVirtualAsset(filename: string) { if (filename.startsWith(assetPrefix)) { - return { moduleName: filename.slice(assetPrefix.length) }; + return { moduleName: filename.slice(assetPrefix.length).split('?')[0] }; } } diff --git a/tests/vite-app/testem.js b/tests/vite-app/testem.js index ed2f37124..cb666df67 100644 --- a/tests/vite-app/testem.js +++ b/tests/vite-app/testem.js @@ -1,23 +1,19 @@ -'use strict'; - -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), - }, - }, -}; +/* + * This is dummy file that exists for the sole purpose + * of allowing tests to run directly in the browser as + * well as by Testem. + * + * Testem is configured to run tests directly against + * the test build of index.html, which requires a + * snippet to load the testem.js file: + * + * This has to go before the qunit framework and app + * tests are loaded. + * + * Testem internally supplies this file. However, if you + * run the tests directly in the browser (localhost:8000/tests), + * this file does not exist. + * + * Hence the purpose of this fake file. This file is served + * directly from the express server to satisify the script load. + */