diff --git a/.changeset/good-ravens-deny.md b/.changeset/good-ravens-deny.md new file mode 100644 index 00000000..56c3455b --- /dev/null +++ b/.changeset/good-ravens-deny.md @@ -0,0 +1,5 @@ +--- +"create-v2-addon-repo": minor +--- + +Updated blueprints diff --git a/configs/eslint/ember/package.json b/configs/eslint/ember/package.json index a0f94abe..07608cf0 100644 --- a/configs/eslint/ember/package.json +++ b/configs/eslint/ember/package.json @@ -12,11 +12,11 @@ }, "dependencies": { "@rushstack/eslint-patch": "^1.10.3", - "@typescript-eslint/eslint-plugin": "^8.1.0", - "@typescript-eslint/parser": "^8.1.0", + "@typescript-eslint/eslint-plugin": "^8.2.0", + "@typescript-eslint/parser": "^8.2.0", "eslint-config-prettier": "^9.1.0", "eslint-import-resolver-typescript": "^3.6.1", - "eslint-plugin-ember": "^12.1.1", + "eslint-plugin-ember": "^12.2.0", "eslint-plugin-import": "^2.29.1", "eslint-plugin-n": "^17.8.1", "eslint-plugin-prettier": "^5.1.3", diff --git a/configs/eslint/node/package.json b/configs/eslint/node/package.json index 9126be15..6597e374 100644 --- a/configs/eslint/node/package.json +++ b/configs/eslint/node/package.json @@ -5,8 +5,8 @@ "description": "Shared configuration for eslint (Node)", "main": "typescript/index.js", "scripts": { - "lint": "concurrently 'npm:lint:*(!fix)' --names 'lint:'", - "lint:fix": "concurrently 'npm:lint:*:fix' --names 'fix:'", + "lint": "concurrently 'pnpm:lint:*(!fix)' --names 'lint:'", + "lint:fix": "concurrently 'pnpm:lint:*:fix' --names 'fix:'", "lint:js": "prettier --check '**/*.js'", "lint:js:fix": "prettier --write '**/*.js'" }, @@ -14,8 +14,8 @@ "@babel/core": "^7.24.7", "@babel/eslint-parser": "7.25.1", "@rushstack/eslint-patch": "^1.10.3", - "@typescript-eslint/eslint-plugin": "^8.1.0", - "@typescript-eslint/parser": "^8.1.0", + "@typescript-eslint/eslint-plugin": "^8.2.0", + "@typescript-eslint/parser": "^8.2.0", "eslint-config-prettier": "^9.1.0", "eslint-import-resolver-typescript": "^3.6.1", "eslint-plugin-import": "^2.29.1", diff --git a/packages/blueprints-addon/src/steps/run-new/update-docs-and-test-apps/index.ts b/packages/blueprints-addon/src/steps/run-new/update-docs-and-test-apps/index.ts index df1e8797..b63ec4de 100644 --- a/packages/blueprints-addon/src/steps/run-new/update-docs-and-test-apps/index.ts +++ b/packages/blueprints-addon/src/steps/run-new/update-docs-and-test-apps/index.ts @@ -1,2 +1,3 @@ +export * from './update-ember-cli-build.js'; export * from './update-package-json.js'; export * from './update-types.js'; diff --git a/packages/blueprints-addon/src/steps/run-new/update-docs-and-test-apps/update-ember-cli-build.ts b/packages/blueprints-addon/src/steps/run-new/update-docs-and-test-apps/update-ember-cli-build.ts new file mode 100644 index 00000000..94f25392 --- /dev/null +++ b/packages/blueprints-addon/src/steps/run-new/update-docs-and-test-apps/update-ember-cli-build.ts @@ -0,0 +1,57 @@ +import { readFileSync, writeFileSync } from 'node:fs'; +import { join } from 'node:path'; + +import { AST } from '@codemod-utils/ast-javascript'; + +import type { Options } from '../../../types/run-new.js'; + +function updateSideWatch(file: string, options: Options): string { + const { addon } = options; + + const traverse = AST.traverse(true); + + const ast = traverse(file, { + visitCallExpression(path) { + if ( + path.value.callee.name !== 'sideWatch' || + path.value.arguments.length !== 2 + ) { + return false; + } + + const watching = path.value.arguments[1].properties?.find( + (property: { key: { name: string } }) => { + return property.key.name === 'watching'; + }, + ); + + if (!watching) { + return false; + } + + const paths = [ + ...watching.value.elements.map((element: { value: string }) => { + return element.value; + }), + join('..', addon.location, 'src'), + ].sort(); + + watching.value.elements = paths.map((path) => { + return AST.builders.stringLiteral(path); + }); + + return false; + }, + }); + + return AST.print(ast); +} + +export function updateEmberCliBuild(appRoot: string, options: Options): void { + const oldPath = join(appRoot, 'ember-cli-build.js'); + const oldFile = readFileSync(oldPath, 'utf8'); + + const newFile = updateSideWatch(oldFile, options); + + writeFileSync(oldPath, newFile, 'utf8'); +} diff --git a/packages/blueprints-addon/src/steps/run-new/update-docs-app.ts b/packages/blueprints-addon/src/steps/run-new/update-docs-app.ts index 7c21f9e9..25c685e8 100644 --- a/packages/blueprints-addon/src/steps/run-new/update-docs-app.ts +++ b/packages/blueprints-addon/src/steps/run-new/update-docs-app.ts @@ -2,6 +2,7 @@ import { join } from 'node:path'; import type { Options } from '../../types/run-new.js'; import { + updateEmberCliBuild, updatePackageJson, updateTypes, } from './update-docs-and-test-apps/index.js'; @@ -11,6 +12,7 @@ export function updateDocsApp(options: Options): void { const appRoot = join(projectRoot, docsApp.location); + updateEmberCliBuild(appRoot, options); updatePackageJson(appRoot, options); updateTypes(appRoot, options); } diff --git a/packages/blueprints-addon/tests/fixtures/run-new/input/docs-app/ember-cli-build.js b/packages/blueprints-addon/tests/fixtures/run-new/input/docs-app/ember-cli-build.js new file mode 100644 index 00000000..0f80059b --- /dev/null +++ b/packages/blueprints-addon/tests/fixtures/run-new/input/docs-app/ember-cli-build.js @@ -0,0 +1,93 @@ +'use strict'; + +const sideWatch = require('@embroider/broccoli-side-watch'); +const { Webpack } = require('@embroider/webpack'); +const EmberApp = require('ember-cli/lib/broccoli/ember-app'); + +function isProduction() { + return EmberApp.env() === 'production'; +} + +module.exports = function (defaults) { + const app = new EmberApp(defaults, { + autoImport: { + watchDependencies: [], + }, + + 'ember-cli-babel': { + enableTypeScriptTransform: true, + }, + + trees: { + app: sideWatch('app', { + watching: [], + }), + }, + + // Add options here + }); + + const options = { + packagerOptions: { + cssLoaderOptions: { + modules: { + localIdentName: isProduction() + ? '[sha512:hash:base64:5]' + : '[path][name]__[local]', + mode: (resourcePath) => { + // We want to enable the local mode only for our own host app. + // All other addons should be loaded in the global mode. + const hostAppLocation = + 'docs-app/node_modules/.embroider/rewritten-app'; + + return resourcePath.includes(hostAppLocation) ? 'local' : 'global'; + }, + }, + sourceMap: !isProduction(), + }, + publicAssetURL: '/', + webpackConfig: { + module: { + rules: [ + { + test: /(node_modules\/\.embroider\/rewritten-app\/)(.*\.css)$/i, + use: [ + { + loader: 'postcss-loader', + options: { + sourceMap: !isProduction(), + postcssOptions: { + config: './postcss.config.js', + }, + }, + }, + ], + }, + /* + Uncomment this rule to load asset files, e.g. fonts, icons, etc. + See https://webpack.js.org/guides/asset-modules/ for more information. + */ + // { + // test: /(node_modules\/\.embroider\/rewritten-app\/)(.*\.(ttf|woff))$/, + // type: 'asset/resource', + // }, + ], + }, + }, + }, + skipBabel: [ + { + package: 'qunit', + }, + ], + splitAtRoutes: [], + staticAddonTestSupportTrees: true, + staticAddonTrees: true, + staticComponents: true, + staticEmberSource: true, + staticHelpers: true, + staticModifiers: true, + }; + + return require('@embroider/compat').compatBuild(app, Webpack, options); +}; diff --git a/packages/blueprints-addon/tests/fixtures/run-new/output/docs-app/ember-cli-build.js b/packages/blueprints-addon/tests/fixtures/run-new/output/docs-app/ember-cli-build.js new file mode 100644 index 00000000..a9299002 --- /dev/null +++ b/packages/blueprints-addon/tests/fixtures/run-new/output/docs-app/ember-cli-build.js @@ -0,0 +1,93 @@ +'use strict'; + +const sideWatch = require('@embroider/broccoli-side-watch'); +const { Webpack } = require('@embroider/webpack'); +const EmberApp = require('ember-cli/lib/broccoli/ember-app'); + +function isProduction() { + return EmberApp.env() === 'production'; +} + +module.exports = function (defaults) { + const app = new EmberApp(defaults, { + autoImport: { + watchDependencies: [], + }, + + 'ember-cli-babel': { + enableTypeScriptTransform: true, + }, + + trees: { + app: sideWatch('app', { + watching: ['../packages/ui/form/src'], + }), + }, + + // Add options here + }); + + const options = { + packagerOptions: { + cssLoaderOptions: { + modules: { + localIdentName: isProduction() + ? '[sha512:hash:base64:5]' + : '[path][name]__[local]', + mode: (resourcePath) => { + // We want to enable the local mode only for our own host app. + // All other addons should be loaded in the global mode. + const hostAppLocation = + 'docs-app/node_modules/.embroider/rewritten-app'; + + return resourcePath.includes(hostAppLocation) ? 'local' : 'global'; + }, + }, + sourceMap: !isProduction(), + }, + publicAssetURL: '/', + webpackConfig: { + module: { + rules: [ + { + test: /(node_modules\/\.embroider\/rewritten-app\/)(.*\.css)$/i, + use: [ + { + loader: 'postcss-loader', + options: { + sourceMap: !isProduction(), + postcssOptions: { + config: './postcss.config.js', + }, + }, + }, + ], + }, + /* + Uncomment this rule to load asset files, e.g. fonts, icons, etc. + See https://webpack.js.org/guides/asset-modules/ for more information. + */ + // { + // test: /(node_modules\/\.embroider\/rewritten-app\/)(.*\.(ttf|woff))$/, + // type: 'asset/resource', + // }, + ], + }, + }, + }, + skipBabel: [ + { + package: 'qunit', + }, + ], + splitAtRoutes: [], + staticAddonTestSupportTrees: true, + staticAddonTrees: true, + staticComponents: true, + staticEmberSource: true, + staticHelpers: true, + staticModifiers: true, + }; + + return require('@embroider/compat').compatBuild(app, Webpack, options); +}; diff --git a/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/src/blueprints/run-new/__addonLocation__/__gitignore__ b/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/src/blueprints/run-new/__addonLocation__/__.gitignore__ similarity index 100% rename from packages/create-v2-addon-repo/src/blueprints/blueprints-addon/src/blueprints/run-new/__addonLocation__/__gitignore__ rename to packages/create-v2-addon-repo/src/blueprints/blueprints-addon/src/blueprints/run-new/__addonLocation__/__.gitignore__ diff --git a/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/src/steps/run-new/update-docs-and-test-apps/index.ts b/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/src/steps/run-new/update-docs-and-test-apps/index.ts index df1e8797..b63ec4de 100644 --- a/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/src/steps/run-new/update-docs-and-test-apps/index.ts +++ b/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/src/steps/run-new/update-docs-and-test-apps/index.ts @@ -1,2 +1,3 @@ +export * from './update-ember-cli-build.js'; export * from './update-package-json.js'; export * from './update-types.js'; diff --git a/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/src/steps/run-new/update-docs-and-test-apps/update-ember-cli-build.ts b/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/src/steps/run-new/update-docs-and-test-apps/update-ember-cli-build.ts new file mode 100644 index 00000000..a9b62fea --- /dev/null +++ b/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/src/steps/run-new/update-docs-and-test-apps/update-ember-cli-build.ts @@ -0,0 +1,50 @@ +import { readFileSync, writeFileSync } from 'node:fs'; +import { join } from 'node:path'; + +import { AST } from '@codemod-utils/ast-javascript'; + +import type { Options } from '../../../types/run-new.js'; + +function updateSideWatch(file: string, options: Options): string { + const { addon } = options; + + const traverse = AST.traverse(true); + + const ast = traverse(file, { + visitCallExpression(path) { + if ( + path.value.callee.name !== 'sideWatch' || + path.value.arguments.length !== 2 + ) { + return false; + } + + const watching = path.value.arguments[1].properties?.find( + (property: { key: { name: string } }) => { + return property.key.name === 'watching'; + }, + ); + + if (!watching) { + return false; + } + + watching.value.elements.push( + AST.builders.stringLiteral(join('..', addon.location, 'src')), + ); + + return false; + }, + }); + + return AST.print(ast); +} + +export function updateEmberCliBuild(appRoot: string, options: Options): void { + const oldPath = join(appRoot, 'ember-cli-build.js'); + const oldFile = readFileSync(oldPath, 'utf8'); + + const newFile = updateSideWatch(oldFile, options); + + writeFileSync(oldPath, newFile, 'utf8'); +} diff --git a/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/src/steps/run-new/update-docs-app.ts b/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/src/steps/run-new/update-docs-app.ts index 7c21f9e9..25c685e8 100644 --- a/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/src/steps/run-new/update-docs-app.ts +++ b/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/src/steps/run-new/update-docs-app.ts @@ -2,6 +2,7 @@ import { join } from 'node:path'; import type { Options } from '../../types/run-new.js'; import { + updateEmberCliBuild, updatePackageJson, updateTypes, } from './update-docs-and-test-apps/index.js'; @@ -11,6 +12,7 @@ export function updateDocsApp(options: Options): void { const appRoot = join(projectRoot, docsApp.location); + updateEmberCliBuild(appRoot, options); updatePackageJson(appRoot, options); updateTypes(appRoot, options); } diff --git a/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/tests/fixtures/run-new/input/docs-app/ember-cli-build.js b/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/tests/fixtures/run-new/input/docs-app/ember-cli-build.js new file mode 100644 index 00000000..0f80059b --- /dev/null +++ b/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/tests/fixtures/run-new/input/docs-app/ember-cli-build.js @@ -0,0 +1,93 @@ +'use strict'; + +const sideWatch = require('@embroider/broccoli-side-watch'); +const { Webpack } = require('@embroider/webpack'); +const EmberApp = require('ember-cli/lib/broccoli/ember-app'); + +function isProduction() { + return EmberApp.env() === 'production'; +} + +module.exports = function (defaults) { + const app = new EmberApp(defaults, { + autoImport: { + watchDependencies: [], + }, + + 'ember-cli-babel': { + enableTypeScriptTransform: true, + }, + + trees: { + app: sideWatch('app', { + watching: [], + }), + }, + + // Add options here + }); + + const options = { + packagerOptions: { + cssLoaderOptions: { + modules: { + localIdentName: isProduction() + ? '[sha512:hash:base64:5]' + : '[path][name]__[local]', + mode: (resourcePath) => { + // We want to enable the local mode only for our own host app. + // All other addons should be loaded in the global mode. + const hostAppLocation = + 'docs-app/node_modules/.embroider/rewritten-app'; + + return resourcePath.includes(hostAppLocation) ? 'local' : 'global'; + }, + }, + sourceMap: !isProduction(), + }, + publicAssetURL: '/', + webpackConfig: { + module: { + rules: [ + { + test: /(node_modules\/\.embroider\/rewritten-app\/)(.*\.css)$/i, + use: [ + { + loader: 'postcss-loader', + options: { + sourceMap: !isProduction(), + postcssOptions: { + config: './postcss.config.js', + }, + }, + }, + ], + }, + /* + Uncomment this rule to load asset files, e.g. fonts, icons, etc. + See https://webpack.js.org/guides/asset-modules/ for more information. + */ + // { + // test: /(node_modules\/\.embroider\/rewritten-app\/)(.*\.(ttf|woff))$/, + // type: 'asset/resource', + // }, + ], + }, + }, + }, + skipBabel: [ + { + package: 'qunit', + }, + ], + splitAtRoutes: [], + staticAddonTestSupportTrees: true, + staticAddonTrees: true, + staticComponents: true, + staticEmberSource: true, + staticHelpers: true, + staticModifiers: true, + }; + + return require('@embroider/compat').compatBuild(app, Webpack, options); +}; diff --git a/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/tests/fixtures/run-new/output/docs-app/ember-cli-build.js b/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/tests/fixtures/run-new/output/docs-app/ember-cli-build.js new file mode 100644 index 00000000..a9299002 --- /dev/null +++ b/packages/create-v2-addon-repo/src/blueprints/blueprints-addon/tests/fixtures/run-new/output/docs-app/ember-cli-build.js @@ -0,0 +1,93 @@ +'use strict'; + +const sideWatch = require('@embroider/broccoli-side-watch'); +const { Webpack } = require('@embroider/webpack'); +const EmberApp = require('ember-cli/lib/broccoli/ember-app'); + +function isProduction() { + return EmberApp.env() === 'production'; +} + +module.exports = function (defaults) { + const app = new EmberApp(defaults, { + autoImport: { + watchDependencies: [], + }, + + 'ember-cli-babel': { + enableTypeScriptTransform: true, + }, + + trees: { + app: sideWatch('app', { + watching: ['../packages/ui/form/src'], + }), + }, + + // Add options here + }); + + const options = { + packagerOptions: { + cssLoaderOptions: { + modules: { + localIdentName: isProduction() + ? '[sha512:hash:base64:5]' + : '[path][name]__[local]', + mode: (resourcePath) => { + // We want to enable the local mode only for our own host app. + // All other addons should be loaded in the global mode. + const hostAppLocation = + 'docs-app/node_modules/.embroider/rewritten-app'; + + return resourcePath.includes(hostAppLocation) ? 'local' : 'global'; + }, + }, + sourceMap: !isProduction(), + }, + publicAssetURL: '/', + webpackConfig: { + module: { + rules: [ + { + test: /(node_modules\/\.embroider\/rewritten-app\/)(.*\.css)$/i, + use: [ + { + loader: 'postcss-loader', + options: { + sourceMap: !isProduction(), + postcssOptions: { + config: './postcss.config.js', + }, + }, + }, + ], + }, + /* + Uncomment this rule to load asset files, e.g. fonts, icons, etc. + See https://webpack.js.org/guides/asset-modules/ for more information. + */ + // { + // test: /(node_modules\/\.embroider\/rewritten-app\/)(.*\.(ttf|woff))$/, + // type: 'asset/resource', + // }, + ], + }, + }, + }, + skipBabel: [ + { + package: 'qunit', + }, + ], + splitAtRoutes: [], + staticAddonTestSupportTrees: true, + staticAddonTrees: true, + staticComponents: true, + staticEmberSource: true, + staticHelpers: true, + staticModifiers: true, + }; + + return require('@embroider/compat').compatBuild(app, Webpack, options); +}; diff --git a/packages/create-v2-addon-repo/src/blueprints/configs/eslint/ember/package.json b/packages/create-v2-addon-repo/src/blueprints/configs/eslint/ember/package.json index a0f94abe..07608cf0 100644 --- a/packages/create-v2-addon-repo/src/blueprints/configs/eslint/ember/package.json +++ b/packages/create-v2-addon-repo/src/blueprints/configs/eslint/ember/package.json @@ -12,11 +12,11 @@ }, "dependencies": { "@rushstack/eslint-patch": "^1.10.3", - "@typescript-eslint/eslint-plugin": "^8.1.0", - "@typescript-eslint/parser": "^8.1.0", + "@typescript-eslint/eslint-plugin": "^8.2.0", + "@typescript-eslint/parser": "^8.2.0", "eslint-config-prettier": "^9.1.0", "eslint-import-resolver-typescript": "^3.6.1", - "eslint-plugin-ember": "^12.1.1", + "eslint-plugin-ember": "^12.2.0", "eslint-plugin-import": "^2.29.1", "eslint-plugin-n": "^17.8.1", "eslint-plugin-prettier": "^5.1.3", diff --git a/packages/create-v2-addon-repo/src/blueprints/configs/eslint/node/package.json b/packages/create-v2-addon-repo/src/blueprints/configs/eslint/node/package.json index 9126be15..6597e374 100644 --- a/packages/create-v2-addon-repo/src/blueprints/configs/eslint/node/package.json +++ b/packages/create-v2-addon-repo/src/blueprints/configs/eslint/node/package.json @@ -5,8 +5,8 @@ "description": "Shared configuration for eslint (Node)", "main": "typescript/index.js", "scripts": { - "lint": "concurrently 'npm:lint:*(!fix)' --names 'lint:'", - "lint:fix": "concurrently 'npm:lint:*:fix' --names 'fix:'", + "lint": "concurrently 'pnpm:lint:*(!fix)' --names 'lint:'", + "lint:fix": "concurrently 'pnpm:lint:*:fix' --names 'fix:'", "lint:js": "prettier --check '**/*.js'", "lint:js:fix": "prettier --write '**/*.js'" }, @@ -14,8 +14,8 @@ "@babel/core": "^7.24.7", "@babel/eslint-parser": "7.25.1", "@rushstack/eslint-patch": "^1.10.3", - "@typescript-eslint/eslint-plugin": "^8.1.0", - "@typescript-eslint/parser": "^8.1.0", + "@typescript-eslint/eslint-plugin": "^8.2.0", + "@typescript-eslint/parser": "^8.2.0", "eslint-config-prettier": "^9.1.0", "eslint-import-resolver-typescript": "^3.6.1", "eslint-plugin-import": "^2.29.1", diff --git a/packages/create-v2-addon-repo/src/blueprints/docs-app/config/ember-cli-update.json b/packages/create-v2-addon-repo/src/blueprints/docs-app/config/ember-cli-update.json index f1081226..91c288be 100644 --- a/packages/create-v2-addon-repo/src/blueprints/docs-app/config/ember-cli-update.json +++ b/packages/create-v2-addon-repo/src/blueprints/docs-app/config/ember-cli-update.json @@ -3,7 +3,7 @@ "packages": [ { "name": "ember-cli", - "version": "5.10.0", + "version": "5.11.0", "blueprints": [ { "name": "app", diff --git a/packages/create-v2-addon-repo/src/blueprints/docs-app/ember-cli-build.js b/packages/create-v2-addon-repo/src/blueprints/docs-app/ember-cli-build.js index 0aaa9e81..0f80059b 100644 --- a/packages/create-v2-addon-repo/src/blueprints/docs-app/ember-cli-build.js +++ b/packages/create-v2-addon-repo/src/blueprints/docs-app/ember-cli-build.js @@ -20,9 +20,7 @@ module.exports = function (defaults) { trees: { app: sideWatch('app', { - watching: [ - // '../packages/ui/form/src', - ], + watching: [], }), }, diff --git a/packages/create-v2-addon-repo/src/blueprints/docs-app/package.json b/packages/create-v2-addon-repo/src/blueprints/docs-app/package.json index 09073e04..047aef7f 100644 --- a/packages/create-v2-addon-repo/src/blueprints/docs-app/package.json +++ b/packages/create-v2-addon-repo/src/blueprints/docs-app/package.json @@ -52,7 +52,7 @@ "concurrently": "^8.2.2", "ember-a11y-testing": "^6.1.1", "ember-auto-import": "^2.7.4", - "ember-cli": "~5.10.0", + "ember-cli": "~5.11.0", "ember-cli-app-version": "^7.0.0", "ember-cli-babel": "^8.2.0", "ember-cli-clean-css": "^3.0.0", @@ -66,7 +66,7 @@ "ember-page-title": "^8.2.3", "ember-qunit": "^8.1.0", "ember-resolver": "^12.0.1", - "ember-source": "~5.10.2", + "ember-source": "~5.11.0", "ember-template-imports": "^4.1.1", "ember-template-lint": "^6.0.0", "ember-test-selectors": "^7.0.0", diff --git a/packages/create-v2-addon-repo/src/blueprints/test-app/config/ember-cli-update.json b/packages/create-v2-addon-repo/src/blueprints/test-app/config/ember-cli-update.json index f1081226..91c288be 100644 --- a/packages/create-v2-addon-repo/src/blueprints/test-app/config/ember-cli-update.json +++ b/packages/create-v2-addon-repo/src/blueprints/test-app/config/ember-cli-update.json @@ -3,7 +3,7 @@ "packages": [ { "name": "ember-cli", - "version": "5.10.0", + "version": "5.11.0", "blueprints": [ { "name": "app", diff --git a/packages/create-v2-addon-repo/src/blueprints/test-app/package.json b/packages/create-v2-addon-repo/src/blueprints/test-app/package.json index 246ff4af..5d1e5247 100644 --- a/packages/create-v2-addon-repo/src/blueprints/test-app/package.json +++ b/packages/create-v2-addon-repo/src/blueprints/test-app/package.json @@ -47,7 +47,7 @@ "concurrently": "^8.2.2", "ember-a11y-testing": "^6.1.1", "ember-auto-import": "^2.7.4", - "ember-cli": "~5.10.0", + "ember-cli": "~5.11.0", "ember-cli-app-version": "^7.0.0", "ember-cli-babel": "^8.2.0", "ember-cli-clean-css": "^3.0.0", @@ -61,7 +61,7 @@ "ember-page-title": "^8.2.3", "ember-qunit": "^8.1.0", "ember-resolver": "^12.0.1", - "ember-source": "~5.10.2", + "ember-source": "~5.11.0", "ember-template-imports": "^4.1.1", "ember-template-lint": "^6.0.0", "ember-test-selectors": "^7.0.0", diff --git a/packages/create-v2-addon-repo/src/steps/create-files-from-blueprints.ts b/packages/create-v2-addon-repo/src/steps/create-files-from-blueprints.ts index 81972bdc..5919a66c 100644 --- a/packages/create-v2-addon-repo/src/steps/create-files-from-blueprints.ts +++ b/packages/create-v2-addon-repo/src/steps/create-files-from-blueprints.ts @@ -10,7 +10,9 @@ import { blueprintsRoot } from '../utils/blueprints.js'; function resolveBlueprintFilePath(blueprintFilePath: string): string { return blueprintFilePath .replace('__gitignore__', '.gitignore') - .replace('__npmignore__', '.npmignore'); + .replace('__.gitignore__', '__gitignore__') + .replace('__npmignore__', '.npmignore') + .replace('__.npmignore__', '__npmignore__'); } function setExecutePermissions(options: Options) { diff --git a/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/src/blueprints/run-new/__addonLocation__/.gitignore b/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/src/blueprints/run-new/__addonLocation__/__gitignore__ similarity index 100% rename from packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/src/blueprints/run-new/__addonLocation__/.gitignore rename to packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/src/blueprints/run-new/__addonLocation__/__gitignore__ diff --git a/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/src/steps/run-new/update-docs-and-test-apps/index.ts b/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/src/steps/run-new/update-docs-and-test-apps/index.ts index df1e8797..b63ec4de 100644 --- a/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/src/steps/run-new/update-docs-and-test-apps/index.ts +++ b/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/src/steps/run-new/update-docs-and-test-apps/index.ts @@ -1,2 +1,3 @@ +export * from './update-ember-cli-build.js'; export * from './update-package-json.js'; export * from './update-types.js'; diff --git a/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/src/steps/run-new/update-docs-and-test-apps/update-ember-cli-build.ts b/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/src/steps/run-new/update-docs-and-test-apps/update-ember-cli-build.ts new file mode 100644 index 00000000..a9b62fea --- /dev/null +++ b/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/src/steps/run-new/update-docs-and-test-apps/update-ember-cli-build.ts @@ -0,0 +1,50 @@ +import { readFileSync, writeFileSync } from 'node:fs'; +import { join } from 'node:path'; + +import { AST } from '@codemod-utils/ast-javascript'; + +import type { Options } from '../../../types/run-new.js'; + +function updateSideWatch(file: string, options: Options): string { + const { addon } = options; + + const traverse = AST.traverse(true); + + const ast = traverse(file, { + visitCallExpression(path) { + if ( + path.value.callee.name !== 'sideWatch' || + path.value.arguments.length !== 2 + ) { + return false; + } + + const watching = path.value.arguments[1].properties?.find( + (property: { key: { name: string } }) => { + return property.key.name === 'watching'; + }, + ); + + if (!watching) { + return false; + } + + watching.value.elements.push( + AST.builders.stringLiteral(join('..', addon.location, 'src')), + ); + + return false; + }, + }); + + return AST.print(ast); +} + +export function updateEmberCliBuild(appRoot: string, options: Options): void { + const oldPath = join(appRoot, 'ember-cli-build.js'); + const oldFile = readFileSync(oldPath, 'utf8'); + + const newFile = updateSideWatch(oldFile, options); + + writeFileSync(oldPath, newFile, 'utf8'); +} diff --git a/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/src/steps/run-new/update-docs-app.ts b/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/src/steps/run-new/update-docs-app.ts index 7c21f9e9..25c685e8 100644 --- a/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/src/steps/run-new/update-docs-app.ts +++ b/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/src/steps/run-new/update-docs-app.ts @@ -2,6 +2,7 @@ import { join } from 'node:path'; import type { Options } from '../../types/run-new.js'; import { + updateEmberCliBuild, updatePackageJson, updateTypes, } from './update-docs-and-test-apps/index.js'; @@ -11,6 +12,7 @@ export function updateDocsApp(options: Options): void { const appRoot = join(projectRoot, docsApp.location); + updateEmberCliBuild(appRoot, options); updatePackageJson(appRoot, options); updateTypes(appRoot, options); } diff --git a/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/tests/fixtures/run-new/input/docs-app/ember-cli-build.js b/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/tests/fixtures/run-new/input/docs-app/ember-cli-build.js new file mode 100644 index 00000000..0f80059b --- /dev/null +++ b/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/tests/fixtures/run-new/input/docs-app/ember-cli-build.js @@ -0,0 +1,93 @@ +'use strict'; + +const sideWatch = require('@embroider/broccoli-side-watch'); +const { Webpack } = require('@embroider/webpack'); +const EmberApp = require('ember-cli/lib/broccoli/ember-app'); + +function isProduction() { + return EmberApp.env() === 'production'; +} + +module.exports = function (defaults) { + const app = new EmberApp(defaults, { + autoImport: { + watchDependencies: [], + }, + + 'ember-cli-babel': { + enableTypeScriptTransform: true, + }, + + trees: { + app: sideWatch('app', { + watching: [], + }), + }, + + // Add options here + }); + + const options = { + packagerOptions: { + cssLoaderOptions: { + modules: { + localIdentName: isProduction() + ? '[sha512:hash:base64:5]' + : '[path][name]__[local]', + mode: (resourcePath) => { + // We want to enable the local mode only for our own host app. + // All other addons should be loaded in the global mode. + const hostAppLocation = + 'docs-app/node_modules/.embroider/rewritten-app'; + + return resourcePath.includes(hostAppLocation) ? 'local' : 'global'; + }, + }, + sourceMap: !isProduction(), + }, + publicAssetURL: '/', + webpackConfig: { + module: { + rules: [ + { + test: /(node_modules\/\.embroider\/rewritten-app\/)(.*\.css)$/i, + use: [ + { + loader: 'postcss-loader', + options: { + sourceMap: !isProduction(), + postcssOptions: { + config: './postcss.config.js', + }, + }, + }, + ], + }, + /* + Uncomment this rule to load asset files, e.g. fonts, icons, etc. + See https://webpack.js.org/guides/asset-modules/ for more information. + */ + // { + // test: /(node_modules\/\.embroider\/rewritten-app\/)(.*\.(ttf|woff))$/, + // type: 'asset/resource', + // }, + ], + }, + }, + }, + skipBabel: [ + { + package: 'qunit', + }, + ], + splitAtRoutes: [], + staticAddonTestSupportTrees: true, + staticAddonTrees: true, + staticComponents: true, + staticEmberSource: true, + staticHelpers: true, + staticModifiers: true, + }; + + return require('@embroider/compat').compatBuild(app, Webpack, options); +}; diff --git a/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/tests/fixtures/run-new/output/docs-app/ember-cli-build.js b/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/tests/fixtures/run-new/output/docs-app/ember-cli-build.js new file mode 100644 index 00000000..a9299002 --- /dev/null +++ b/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/blueprints-addon/tests/fixtures/run-new/output/docs-app/ember-cli-build.js @@ -0,0 +1,93 @@ +'use strict'; + +const sideWatch = require('@embroider/broccoli-side-watch'); +const { Webpack } = require('@embroider/webpack'); +const EmberApp = require('ember-cli/lib/broccoli/ember-app'); + +function isProduction() { + return EmberApp.env() === 'production'; +} + +module.exports = function (defaults) { + const app = new EmberApp(defaults, { + autoImport: { + watchDependencies: [], + }, + + 'ember-cli-babel': { + enableTypeScriptTransform: true, + }, + + trees: { + app: sideWatch('app', { + watching: ['../packages/ui/form/src'], + }), + }, + + // Add options here + }); + + const options = { + packagerOptions: { + cssLoaderOptions: { + modules: { + localIdentName: isProduction() + ? '[sha512:hash:base64:5]' + : '[path][name]__[local]', + mode: (resourcePath) => { + // We want to enable the local mode only for our own host app. + // All other addons should be loaded in the global mode. + const hostAppLocation = + 'docs-app/node_modules/.embroider/rewritten-app'; + + return resourcePath.includes(hostAppLocation) ? 'local' : 'global'; + }, + }, + sourceMap: !isProduction(), + }, + publicAssetURL: '/', + webpackConfig: { + module: { + rules: [ + { + test: /(node_modules\/\.embroider\/rewritten-app\/)(.*\.css)$/i, + use: [ + { + loader: 'postcss-loader', + options: { + sourceMap: !isProduction(), + postcssOptions: { + config: './postcss.config.js', + }, + }, + }, + ], + }, + /* + Uncomment this rule to load asset files, e.g. fonts, icons, etc. + See https://webpack.js.org/guides/asset-modules/ for more information. + */ + // { + // test: /(node_modules\/\.embroider\/rewritten-app\/)(.*\.(ttf|woff))$/, + // type: 'asset/resource', + // }, + ], + }, + }, + }, + skipBabel: [ + { + package: 'qunit', + }, + ], + splitAtRoutes: [], + staticAddonTestSupportTrees: true, + staticAddonTrees: true, + staticComponents: true, + staticEmberSource: true, + staticHelpers: true, + staticModifiers: true, + }; + + return require('@embroider/compat').compatBuild(app, Webpack, options); +}; diff --git a/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/configs/eslint/ember/package.json b/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/configs/eslint/ember/package.json index a0f94abe..07608cf0 100644 --- a/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/configs/eslint/ember/package.json +++ b/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/configs/eslint/ember/package.json @@ -12,11 +12,11 @@ }, "dependencies": { "@rushstack/eslint-patch": "^1.10.3", - "@typescript-eslint/eslint-plugin": "^8.1.0", - "@typescript-eslint/parser": "^8.1.0", + "@typescript-eslint/eslint-plugin": "^8.2.0", + "@typescript-eslint/parser": "^8.2.0", "eslint-config-prettier": "^9.1.0", "eslint-import-resolver-typescript": "^3.6.1", - "eslint-plugin-ember": "^12.1.1", + "eslint-plugin-ember": "^12.2.0", "eslint-plugin-import": "^2.29.1", "eslint-plugin-n": "^17.8.1", "eslint-plugin-prettier": "^5.1.3", diff --git a/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/configs/eslint/node/package.json b/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/configs/eslint/node/package.json index 9126be15..6597e374 100644 --- a/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/configs/eslint/node/package.json +++ b/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/configs/eslint/node/package.json @@ -5,8 +5,8 @@ "description": "Shared configuration for eslint (Node)", "main": "typescript/index.js", "scripts": { - "lint": "concurrently 'npm:lint:*(!fix)' --names 'lint:'", - "lint:fix": "concurrently 'npm:lint:*:fix' --names 'fix:'", + "lint": "concurrently 'pnpm:lint:*(!fix)' --names 'lint:'", + "lint:fix": "concurrently 'pnpm:lint:*:fix' --names 'fix:'", "lint:js": "prettier --check '**/*.js'", "lint:js:fix": "prettier --write '**/*.js'" }, @@ -14,8 +14,8 @@ "@babel/core": "^7.24.7", "@babel/eslint-parser": "7.25.1", "@rushstack/eslint-patch": "^1.10.3", - "@typescript-eslint/eslint-plugin": "^8.1.0", - "@typescript-eslint/parser": "^8.1.0", + "@typescript-eslint/eslint-plugin": "^8.2.0", + "@typescript-eslint/parser": "^8.2.0", "eslint-config-prettier": "^9.1.0", "eslint-import-resolver-typescript": "^3.6.1", "eslint-plugin-import": "^2.29.1", diff --git a/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/docs-app/config/ember-cli-update.json b/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/docs-app/config/ember-cli-update.json index f1081226..91c288be 100644 --- a/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/docs-app/config/ember-cli-update.json +++ b/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/docs-app/config/ember-cli-update.json @@ -3,7 +3,7 @@ "packages": [ { "name": "ember-cli", - "version": "5.10.0", + "version": "5.11.0", "blueprints": [ { "name": "app", diff --git a/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/docs-app/ember-cli-build.js b/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/docs-app/ember-cli-build.js index 0aaa9e81..0f80059b 100644 --- a/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/docs-app/ember-cli-build.js +++ b/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/docs-app/ember-cli-build.js @@ -20,9 +20,7 @@ module.exports = function (defaults) { trees: { app: sideWatch('app', { - watching: [ - // '../packages/ui/form/src', - ], + watching: [], }), }, diff --git a/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/docs-app/package.json b/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/docs-app/package.json index aa917beb..f0af5bd8 100644 --- a/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/docs-app/package.json +++ b/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/docs-app/package.json @@ -52,7 +52,7 @@ "concurrently": "^8.2.2", "ember-a11y-testing": "^6.1.1", "ember-auto-import": "^2.7.4", - "ember-cli": "~5.10.0", + "ember-cli": "~5.11.0", "ember-cli-app-version": "^7.0.0", "ember-cli-babel": "^8.2.0", "ember-cli-clean-css": "^3.0.0", @@ -66,7 +66,7 @@ "ember-page-title": "^8.2.3", "ember-qunit": "^8.1.0", "ember-resolver": "^12.0.1", - "ember-source": "~5.10.2", + "ember-source": "~5.11.0", "ember-template-imports": "^4.1.1", "ember-template-lint": "^6.0.0", "ember-test-selectors": "^7.0.0", diff --git a/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/test-app/config/ember-cli-update.json b/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/test-app/config/ember-cli-update.json index f1081226..91c288be 100644 --- a/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/test-app/config/ember-cli-update.json +++ b/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/test-app/config/ember-cli-update.json @@ -3,7 +3,7 @@ "packages": [ { "name": "ember-cli", - "version": "5.10.0", + "version": "5.11.0", "blueprints": [ { "name": "app", diff --git a/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/test-app/package.json b/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/test-app/package.json index 705c7e06..116cdb08 100644 --- a/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/test-app/package.json +++ b/packages/create-v2-addon-repo/tests/fixtures/typescript/output/my-repo/test-app/package.json @@ -47,7 +47,7 @@ "concurrently": "^8.2.2", "ember-a11y-testing": "^6.1.1", "ember-auto-import": "^2.7.4", - "ember-cli": "~5.10.0", + "ember-cli": "~5.11.0", "ember-cli-app-version": "^7.0.0", "ember-cli-babel": "^8.2.0", "ember-cli-clean-css": "^3.0.0", @@ -61,7 +61,7 @@ "ember-page-title": "^8.2.3", "ember-qunit": "^8.1.0", "ember-resolver": "^12.0.1", - "ember-source": "~5.10.2", + "ember-source": "~5.11.0", "ember-template-imports": "^4.1.1", "ember-template-lint": "^6.0.0", "ember-test-selectors": "^7.0.0", diff --git a/packages/create-v2-addon-repo/update-blueprints-addon.sh b/packages/create-v2-addon-repo/update-blueprints-addon.sh index 64c11025..b1a3dd69 100755 --- a/packages/create-v2-addon-repo/update-blueprints-addon.sh +++ b/packages/create-v2-addon-repo/update-blueprints-addon.sh @@ -35,6 +35,8 @@ cp "../blueprints-addon/tsconfig.build.json" "src/blueprints/blueprints-addon/ts cp "../blueprints-addon/tsconfig.json" "src/blueprints/blueprints-addon/tsconfig.json" cp "../blueprints-addon/update-test-fixtures.sh" "src/blueprints/blueprints-addon/update-test-fixtures.sh" +mv "src/blueprints/blueprints-addon/src/blueprints/run-new/__addonLocation__/__gitignore__" "src/blueprints/blueprints-addon/src/blueprints/run-new/__addonLocation__/__.gitignore__" + # Escape delimiters find "src/blueprints/blueprints-addon" -type f \ -exec sed -i '' 's/<%=/\\\\<%=/g' {} \; \ diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 27274dbf..b5254d36 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -43,23 +43,23 @@ importers: specifier: ^1.10.3 version: 1.10.4 '@typescript-eslint/eslint-plugin': - specifier: ^8.1.0 - version: 8.1.0(@typescript-eslint/parser@8.1.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0)(typescript@5.5.4) + specifier: ^8.2.0 + version: 8.2.0(@typescript-eslint/parser@8.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0)(typescript@5.5.4) '@typescript-eslint/parser': - specifier: ^8.1.0 - version: 8.1.0(eslint@8.57.0)(typescript@5.5.4) + specifier: ^8.2.0 + version: 8.2.0(eslint@8.57.0)(typescript@5.5.4) eslint-config-prettier: specifier: ^9.1.0 version: 9.1.0(eslint@8.57.0) eslint-import-resolver-typescript: specifier: ^3.6.1 - version: 3.6.1(@typescript-eslint/parser@8.1.0(eslint@8.57.0)(typescript@5.5.4))(eslint-plugin-import@2.29.1)(eslint@8.57.0) + version: 3.6.1(@typescript-eslint/parser@8.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-plugin-import@2.29.1)(eslint@8.57.0) eslint-plugin-ember: - specifier: ^12.1.1 - version: 12.1.1(@babel/core@7.25.2)(@typescript-eslint/parser@8.1.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0) + specifier: ^12.2.0 + version: 12.2.0(@babel/core@7.25.2)(@typescript-eslint/parser@8.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0) eslint-plugin-import: specifier: ^2.29.1 - version: 2.29.1(@typescript-eslint/parser@8.1.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0) + version: 2.29.1(@typescript-eslint/parser@8.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0) eslint-plugin-n: specifier: ^17.8.1 version: 17.10.2(eslint@8.57.0) @@ -74,7 +74,7 @@ importers: version: 12.1.1(eslint@8.57.0) eslint-plugin-typescript-sort-keys: specifier: ^3.2.0 - version: 3.2.0(@typescript-eslint/parser@8.1.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0)(typescript@5.5.4) + version: 3.2.0(@typescript-eslint/parser@8.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0)(typescript@5.5.4) typescript: specifier: ^5.5.4 version: 5.5.4 @@ -107,20 +107,20 @@ importers: specifier: ^1.10.3 version: 1.10.4 '@typescript-eslint/eslint-plugin': - specifier: ^8.1.0 - version: 8.1.0(@typescript-eslint/parser@8.1.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0)(typescript@5.5.4) + specifier: ^8.2.0 + version: 8.2.0(@typescript-eslint/parser@8.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0)(typescript@5.5.4) '@typescript-eslint/parser': - specifier: ^8.1.0 - version: 8.1.0(eslint@8.57.0)(typescript@5.5.4) + specifier: ^8.2.0 + version: 8.2.0(eslint@8.57.0)(typescript@5.5.4) eslint-config-prettier: specifier: ^9.1.0 version: 9.1.0(eslint@8.57.0) eslint-import-resolver-typescript: specifier: ^3.6.1 - version: 3.6.1(@typescript-eslint/parser@8.1.0(eslint@8.57.0)(typescript@5.5.4))(eslint-plugin-import@2.29.1)(eslint@8.57.0) + version: 3.6.1(@typescript-eslint/parser@8.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-plugin-import@2.29.1)(eslint@8.57.0) eslint-plugin-import: specifier: ^2.29.1 - version: 2.29.1(@typescript-eslint/parser@8.1.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0) + version: 2.29.1(@typescript-eslint/parser@8.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0) eslint-plugin-n: specifier: ^17.8.1 version: 17.10.2(eslint@8.57.0) @@ -132,7 +132,7 @@ importers: version: 12.1.1(eslint@8.57.0) eslint-plugin-typescript-sort-keys: specifier: ^3.2.0 - version: 3.2.0(@typescript-eslint/parser@8.1.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0)(typescript@5.5.4) + version: 3.2.0(@typescript-eslint/parser@8.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0)(typescript@5.5.4) typescript: specifier: ^5.5.4 version: 5.5.4 @@ -773,8 +773,8 @@ packages: '@types/yargs@17.0.33': resolution: {integrity: sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==} - '@typescript-eslint/eslint-plugin@8.1.0': - resolution: {integrity: sha512-LlNBaHFCEBPHyD4pZXb35mzjGkuGKXU5eeCA1SxvHfiRES0E82dOounfVpL4DCqYvJEKab0bZIA0gCRpdLKkCw==} + '@typescript-eslint/eslint-plugin@8.2.0': + resolution: {integrity: sha512-02tJIs655em7fvt9gps/+4k4OsKULYGtLBPJfOsmOq1+3cdClYiF0+d6mHu6qDnTcg88wJBkcPLpQhq7FyDz0A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 @@ -790,8 +790,8 @@ packages: peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - '@typescript-eslint/parser@8.1.0': - resolution: {integrity: sha512-U7iTAtGgJk6DPX9wIWPPOlt1gO57097G06gIcl0N0EEnNw8RGD62c+2/DiP/zL7KrkqnnqF7gtFGR7YgzPllTA==} + '@typescript-eslint/parser@8.2.0': + resolution: {integrity: sha512-j3Di+o0lHgPrb7FxL3fdEy6LJ/j2NE8u+AP/5cQ9SKb+JLH6V6UHDqJ+e0hXBkHP1wn1YDFjYCS9LBQsZDlDEg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -804,12 +804,12 @@ packages: resolution: {integrity: sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - '@typescript-eslint/scope-manager@8.1.0': - resolution: {integrity: sha512-DsuOZQji687sQUjm4N6c9xABJa7fjvfIdjqpSIIVOgaENf2jFXiM9hIBZOL3hb6DHK9Nvd2d7zZnoMLf9e0OtQ==} + '@typescript-eslint/scope-manager@8.2.0': + resolution: {integrity: sha512-OFn80B38yD6WwpoHU2Tz/fTz7CgFqInllBoC3WP+/jLbTb4gGPTy9HBSTsbDWkMdN55XlVU0mMDYAtgvlUspGw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/type-utils@8.1.0': - resolution: {integrity: sha512-oLYvTxljVvsMnldfl6jIKxTaU7ok7km0KDrwOt1RHYu6nxlhN3TIx8k5Q52L6wR33nOwDgM7VwW1fT1qMNfFIA==} + '@typescript-eslint/type-utils@8.2.0': + resolution: {integrity: sha512-g1CfXGFMQdT5S+0PSO0fvGXUaiSkl73U1n9LTK5aRAFnPlJ8dLKkXr4AaLFvPedW8lVDoMgLLE3JN98ZZfsj0w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '*' @@ -821,8 +821,8 @@ packages: resolution: {integrity: sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - '@typescript-eslint/types@8.1.0': - resolution: {integrity: sha512-q2/Bxa0gMOu/2/AKALI0tCKbG2zppccnRIRCW6BaaTlRVaPKft4oVYPp7WOPpcnsgbr0qROAVCVKCvIQ0tbWog==} + '@typescript-eslint/types@8.2.0': + resolution: {integrity: sha512-6a9QSK396YqmiBKPkJtxsgZZZVjYQ6wQ/TlI0C65z7vInaETuC6HAHD98AGLC8DyIPqHytvNuS8bBVvNLKyqvQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@typescript-eslint/typescript-estree@5.62.0': @@ -834,8 +834,8 @@ packages: typescript: optional: true - '@typescript-eslint/typescript-estree@8.1.0': - resolution: {integrity: sha512-NTHhmufocEkMiAord/g++gWKb0Fr34e9AExBRdqgWdVBaKoei2dIyYKD9Q0jBnvfbEA5zaf8plUFMUH6kQ0vGg==} + '@typescript-eslint/typescript-estree@8.2.0': + resolution: {integrity: sha512-kiG4EDUT4dImplOsbh47B1QnNmXSoUqOjWDvCJw/o8LgfD0yr7k2uy54D5Wm0j4t71Ge1NkynGhpWdS0dEIAUA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '*' @@ -849,8 +849,8 @@ packages: peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - '@typescript-eslint/utils@8.1.0': - resolution: {integrity: sha512-ypRueFNKTIFwqPeJBfeIpxZ895PQhNyH4YID6js0UoBImWYoSjBsahUn9KMiJXh94uOjVBgHD9AmkyPsPnFwJA==} + '@typescript-eslint/utils@8.2.0': + resolution: {integrity: sha512-O46eaYKDlV3TvAVDNcoDzd5N550ckSe8G4phko++OCSC1dYIb9LTc3HDGYdWqWIAT5qDUKphO6sd9RrpIJJPfg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -859,8 +859,8 @@ packages: resolution: {integrity: sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - '@typescript-eslint/visitor-keys@8.1.0': - resolution: {integrity: sha512-ba0lNI19awqZ5ZNKh6wCModMwoZs457StTebQ0q1NP58zSi2F6MOZRXwfKZy+jB78JNJ/WH8GSh2IQNzXX8Nag==} + '@typescript-eslint/visitor-keys@8.2.0': + resolution: {integrity: sha512-sbgsPMW9yLvS7IhCi8IpuK1oBmtbWUNP+hBdwl/I9nzqVsszGnNGti5r9dUtF5RLivHUFFIdRvLiTsPhzSyJ3Q==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@ungap/structured-clone@1.2.0': @@ -1414,8 +1414,8 @@ packages: eslint-import-resolver-webpack: optional: true - eslint-plugin-ember@12.1.1: - resolution: {integrity: sha512-95YWz2nVWtFHwrNlW8kpBivudieTHkiW3vlG3X1P24IpQLigVtPe14LDcZ/vPtEV92Ccao4xcKPKWWOeG0hSNQ==} + eslint-plugin-ember@12.2.0: + resolution: {integrity: sha512-Pf0LB70qzrGqbxrieASFDqxvGu7/xgejM78Kj+VsH27XqkuoluF1M5fBU5xxNB7oRCpA5IFA5jdN9WnnSjLzKA==} engines: {node: 18.* || 20.* || >= 21} peerDependencies: '@typescript-eslint/parser': '*' @@ -3527,14 +3527,14 @@ snapshots: dependencies: '@types/yargs-parser': 21.0.3 - '@typescript-eslint/eslint-plugin@8.1.0(@typescript-eslint/parser@8.1.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0)(typescript@5.5.4)': + '@typescript-eslint/eslint-plugin@8.2.0(@typescript-eslint/parser@8.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0)(typescript@5.5.4)': dependencies: '@eslint-community/regexpp': 4.11.0 - '@typescript-eslint/parser': 8.1.0(eslint@8.57.0)(typescript@5.5.4) - '@typescript-eslint/scope-manager': 8.1.0 - '@typescript-eslint/type-utils': 8.1.0(eslint@8.57.0)(typescript@5.5.4) - '@typescript-eslint/utils': 8.1.0(eslint@8.57.0)(typescript@5.5.4) - '@typescript-eslint/visitor-keys': 8.1.0 + '@typescript-eslint/parser': 8.2.0(eslint@8.57.0)(typescript@5.5.4) + '@typescript-eslint/scope-manager': 8.2.0 + '@typescript-eslint/type-utils': 8.2.0(eslint@8.57.0)(typescript@5.5.4) + '@typescript-eslint/utils': 8.2.0(eslint@8.57.0)(typescript@5.5.4) + '@typescript-eslint/visitor-keys': 8.2.0 eslint: 8.57.0 graphemer: 1.4.0 ignore: 5.3.2 @@ -3553,12 +3553,12 @@ snapshots: - supports-color - typescript - '@typescript-eslint/parser@8.1.0(eslint@8.57.0)(typescript@5.5.4)': + '@typescript-eslint/parser@8.2.0(eslint@8.57.0)(typescript@5.5.4)': dependencies: - '@typescript-eslint/scope-manager': 8.1.0 - '@typescript-eslint/types': 8.1.0 - '@typescript-eslint/typescript-estree': 8.1.0(typescript@5.5.4) - '@typescript-eslint/visitor-keys': 8.1.0 + '@typescript-eslint/scope-manager': 8.2.0 + '@typescript-eslint/types': 8.2.0 + '@typescript-eslint/typescript-estree': 8.2.0(typescript@5.5.4) + '@typescript-eslint/visitor-keys': 8.2.0 debug: 4.3.6 eslint: 8.57.0 optionalDependencies: @@ -3571,15 +3571,15 @@ snapshots: '@typescript-eslint/types': 5.62.0 '@typescript-eslint/visitor-keys': 5.62.0 - '@typescript-eslint/scope-manager@8.1.0': + '@typescript-eslint/scope-manager@8.2.0': dependencies: - '@typescript-eslint/types': 8.1.0 - '@typescript-eslint/visitor-keys': 8.1.0 + '@typescript-eslint/types': 8.2.0 + '@typescript-eslint/visitor-keys': 8.2.0 - '@typescript-eslint/type-utils@8.1.0(eslint@8.57.0)(typescript@5.5.4)': + '@typescript-eslint/type-utils@8.2.0(eslint@8.57.0)(typescript@5.5.4)': dependencies: - '@typescript-eslint/typescript-estree': 8.1.0(typescript@5.5.4) - '@typescript-eslint/utils': 8.1.0(eslint@8.57.0)(typescript@5.5.4) + '@typescript-eslint/typescript-estree': 8.2.0(typescript@5.5.4) + '@typescript-eslint/utils': 8.2.0(eslint@8.57.0)(typescript@5.5.4) debug: 4.3.6 ts-api-utils: 1.3.0(typescript@5.5.4) optionalDependencies: @@ -3590,7 +3590,7 @@ snapshots: '@typescript-eslint/types@5.62.0': {} - '@typescript-eslint/types@8.1.0': {} + '@typescript-eslint/types@8.2.0': {} '@typescript-eslint/typescript-estree@5.62.0(typescript@5.5.4)': dependencies: @@ -3606,10 +3606,10 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/typescript-estree@8.1.0(typescript@5.5.4)': + '@typescript-eslint/typescript-estree@8.2.0(typescript@5.5.4)': dependencies: - '@typescript-eslint/types': 8.1.0 - '@typescript-eslint/visitor-keys': 8.1.0 + '@typescript-eslint/types': 8.2.0 + '@typescript-eslint/visitor-keys': 8.2.0 debug: 4.3.6 globby: 11.1.0 is-glob: 4.0.3 @@ -3636,12 +3636,12 @@ snapshots: - supports-color - typescript - '@typescript-eslint/utils@8.1.0(eslint@8.57.0)(typescript@5.5.4)': + '@typescript-eslint/utils@8.2.0(eslint@8.57.0)(typescript@5.5.4)': dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) - '@typescript-eslint/scope-manager': 8.1.0 - '@typescript-eslint/types': 8.1.0 - '@typescript-eslint/typescript-estree': 8.1.0(typescript@5.5.4) + '@typescript-eslint/scope-manager': 8.2.0 + '@typescript-eslint/types': 8.2.0 + '@typescript-eslint/typescript-estree': 8.2.0(typescript@5.5.4) eslint: 8.57.0 transitivePeerDependencies: - supports-color @@ -3652,9 +3652,9 @@ snapshots: '@typescript-eslint/types': 5.62.0 eslint-visitor-keys: 3.4.3 - '@typescript-eslint/visitor-keys@8.1.0': + '@typescript-eslint/visitor-keys@8.2.0': dependencies: - '@typescript-eslint/types': 8.1.0 + '@typescript-eslint/types': 8.2.0 eslint-visitor-keys: 3.4.3 '@ungap/structured-clone@1.2.0': {} @@ -4142,7 +4142,7 @@ snapshots: transitivePeerDependencies: - supports-color - ember-eslint-parser@0.4.3(@babel/core@7.25.2)(@typescript-eslint/parser@8.1.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0): + ember-eslint-parser@0.4.3(@babel/core@7.25.2)(@typescript-eslint/parser@8.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0): dependencies: '@babel/core': 7.25.2 '@babel/eslint-parser': 7.23.10(@babel/core@7.25.2)(eslint@8.57.0) @@ -4151,7 +4151,7 @@ snapshots: eslint-scope: 7.2.2 html-tags: 3.3.1 optionalDependencies: - '@typescript-eslint/parser': 8.1.0(eslint@8.57.0)(typescript@5.5.4) + '@typescript-eslint/parser': 8.2.0(eslint@8.57.0)(typescript@5.5.4) transitivePeerDependencies: - eslint @@ -4339,13 +4339,13 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@8.1.0(eslint@8.57.0)(typescript@5.5.4))(eslint-plugin-import@2.29.1)(eslint@8.57.0): + eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@8.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-plugin-import@2.29.1)(eslint@8.57.0): dependencies: debug: 4.3.6 enhanced-resolve: 5.17.1 eslint: 8.57.0 - eslint-module-utils: 2.8.1(@typescript-eslint/parser@8.1.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@8.1.0(eslint@8.57.0)(typescript@5.5.4))(eslint-plugin-import@2.29.1)(eslint@8.57.0))(eslint@8.57.0) - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@8.1.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0) + eslint-module-utils: 2.8.1(@typescript-eslint/parser@8.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@8.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-plugin-import@2.29.1)(eslint@8.57.0))(eslint@8.57.0) + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@8.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0) fast-glob: 3.3.2 get-tsconfig: 4.7.6 is-core-module: 2.15.0 @@ -4356,22 +4356,22 @@ snapshots: - eslint-import-resolver-webpack - supports-color - eslint-module-utils@2.8.1(@typescript-eslint/parser@8.1.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@8.1.0(eslint@8.57.0)(typescript@5.5.4))(eslint-plugin-import@2.29.1)(eslint@8.57.0))(eslint@8.57.0): + eslint-module-utils@2.8.1(@typescript-eslint/parser@8.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@8.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-plugin-import@2.29.1)(eslint@8.57.0))(eslint@8.57.0): dependencies: debug: 3.2.7 optionalDependencies: - '@typescript-eslint/parser': 8.1.0(eslint@8.57.0)(typescript@5.5.4) + '@typescript-eslint/parser': 8.2.0(eslint@8.57.0)(typescript@5.5.4) eslint: 8.57.0 eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@8.1.0(eslint@8.57.0)(typescript@5.5.4))(eslint-plugin-import@2.29.1)(eslint@8.57.0) + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@8.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-plugin-import@2.29.1)(eslint@8.57.0) transitivePeerDependencies: - supports-color - eslint-plugin-ember@12.1.1(@babel/core@7.25.2)(@typescript-eslint/parser@8.1.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0): + eslint-plugin-ember@12.2.0(@babel/core@7.25.2)(@typescript-eslint/parser@8.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0): dependencies: '@ember-data/rfc395-data': 0.0.4 css-tree: 2.3.1 - ember-eslint-parser: 0.4.3(@babel/core@7.25.2)(@typescript-eslint/parser@8.1.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0) + ember-eslint-parser: 0.4.3(@babel/core@7.25.2)(@typescript-eslint/parser@8.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0) ember-rfc176-data: 0.3.18 eslint: 8.57.0 eslint-utils: 3.0.0(eslint@8.57.0) @@ -4381,7 +4381,7 @@ snapshots: requireindex: 1.2.0 snake-case: 3.0.4 optionalDependencies: - '@typescript-eslint/parser': 8.1.0(eslint@8.57.0)(typescript@5.5.4) + '@typescript-eslint/parser': 8.2.0(eslint@8.57.0)(typescript@5.5.4) transitivePeerDependencies: - '@babel/core' @@ -4392,7 +4392,7 @@ snapshots: eslint: 8.57.0 eslint-compat-utils: 0.5.1(eslint@8.57.0) - eslint-plugin-import@2.29.1(@typescript-eslint/parser@8.1.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0): + eslint-plugin-import@2.29.1(@typescript-eslint/parser@8.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0): dependencies: array-includes: 3.1.8 array.prototype.findlastindex: 1.2.5 @@ -4402,7 +4402,7 @@ snapshots: doctrine: 2.1.0 eslint: 8.57.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.1(@typescript-eslint/parser@8.1.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@8.1.0(eslint@8.57.0)(typescript@5.5.4))(eslint-plugin-import@2.29.1)(eslint@8.57.0))(eslint@8.57.0) + eslint-module-utils: 2.8.1(@typescript-eslint/parser@8.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@8.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-plugin-import@2.29.1)(eslint@8.57.0))(eslint@8.57.0) hasown: 2.0.2 is-core-module: 2.15.0 is-glob: 4.0.3 @@ -4413,7 +4413,7 @@ snapshots: semver: 6.3.1 tsconfig-paths: 4.2.0 optionalDependencies: - '@typescript-eslint/parser': 8.1.0(eslint@8.57.0)(typescript@5.5.4) + '@typescript-eslint/parser': 8.2.0(eslint@8.57.0)(typescript@5.5.4) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack @@ -4452,10 +4452,10 @@ snapshots: dependencies: eslint: 8.57.0 - eslint-plugin-typescript-sort-keys@3.2.0(@typescript-eslint/parser@8.1.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0)(typescript@5.5.4): + eslint-plugin-typescript-sort-keys@3.2.0(@typescript-eslint/parser@8.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0)(typescript@5.5.4): dependencies: '@typescript-eslint/experimental-utils': 5.62.0(eslint@8.57.0)(typescript@5.5.4) - '@typescript-eslint/parser': 8.1.0(eslint@8.57.0)(typescript@5.5.4) + '@typescript-eslint/parser': 8.2.0(eslint@8.57.0)(typescript@5.5.4) eslint: 8.57.0 json-schema: 0.4.0 natural-compare-lite: 1.4.0