diff --git a/CHANGELOG.md b/CHANGELOG.md index 4aad93c2a..350837538 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,13 @@ +## 17.5.3 (2024-09-04) + +### 🩹 Fixes + +- switch to using angular-devkit directly for schematics and builder ([013e52e8](https://github.com/angular-eslint/angular-eslint/commit/013e52e8)) + +### ❤️ Thank You + +- James Henry @JamesHenry + ## 17.5.2 (2024-05-28) ### 🩹 Fixes diff --git a/packages/builder/CHANGELOG.md b/packages/builder/CHANGELOG.md index 58139542e..fa5ddb1f0 100644 --- a/packages/builder/CHANGELOG.md +++ b/packages/builder/CHANGELOG.md @@ -1,3 +1,13 @@ +## 17.5.3 (2024-09-04) + +### 🩹 Fixes + +- switch to using angular-devkit directly for schematics and builder + +### ❤️ Thank You + +- James Henry + ## 17.5.2 (2024-05-28) ### 🩹 Fixes diff --git a/packages/builder/package.json b/packages/builder/package.json index 2ee91ebec..5b476c567 100644 --- a/packages/builder/package.json +++ b/packages/builder/package.json @@ -1,6 +1,6 @@ { "name": "@angular-eslint/builder", - "version": "17.5.2", + "version": "17.5.3", "description": "Angular CLI builder for ESLint", "license": "MIT", "main": "dist/index.js", @@ -18,10 +18,6 @@ "LICENSE", "builders.json" ], - "dependencies": { - "@nx/devkit": "^17.2.8 || ^18.0.0 || ^19.0.0", - "nx": "^17.2.8 || ^18.0.0 || ^19.0.0" - }, "builders": "./builders.json", "peerDependencies": { "eslint": "^7.20.0 || ^8.0.0", diff --git a/packages/builder/src/lint.impl.ts b/packages/builder/src/lint.impl.ts index 6800b8502..6b3d68d26 100644 --- a/packages/builder/src/lint.impl.ts +++ b/packages/builder/src/lint.impl.ts @@ -1,25 +1,20 @@ -import type { BuilderOutput } from '@angular-devkit/architect'; -import { - convertNxExecutor, - joinPathFragments, - workspaceRoot, -} from '@nx/devkit'; +import { createBuilder, type BuilderOutput } from '@angular-devkit/architect'; import type { ESLint } from 'eslint'; import { existsSync, mkdirSync, writeFileSync } from 'fs'; import { dirname, join, resolve } from 'path'; import type { Schema } from './schema'; import { resolveAndInstantiateESLint } from './utils/eslint-utils'; -export default convertNxExecutor( +export default createBuilder( async (options: Schema, context): Promise => { - const systemRoot = context.root; + const systemRoot = context.workspaceRoot; // eslint resolves files relative to the current working directory. // We want these paths to always be resolved relative to the workspace // root to be able to run the lint executor from any subfolder. process.chdir(systemRoot); - const projectName = context.projectName || ''; + const projectName = context.target?.project ?? ''; const printInfo = options.format && !options.silent; if (printInfo) { @@ -43,9 +38,7 @@ export default convertNxExecutor( * we only want to support it if the user has explicitly opted into it by converting * their root ESLint config to use eslint.config.js */ - const useFlatConfig = existsSync( - joinPathFragments(workspaceRoot, 'eslint.config.js'), - ); + const useFlatConfig = existsSync(join(systemRoot, 'eslint.config.js')); const { eslint, ESLint } = await resolveAndInstantiateESLint( eslintConfigPath, options, @@ -74,8 +67,9 @@ export default convertNxExecutor( ) ) { let eslintConfigPathForError = `for ${projectName}`; - if (context.projectsConfigurations?.projects?.[projectName]?.root) { - const { root } = context.projectsConfigurations.projects[projectName]; + const projectMetadata = await context.getProjectMetadata(projectName); + if (projectMetadata?.root) { + const { root } = projectMetadata; eslintConfigPathForError = `\`${root}/.eslintrc.json\``; } @@ -168,7 +162,7 @@ For full guidance on how to resolve this issue, please see https://github.com/an const formattedResults = await formatter.format(finalLintResults); if (options.outputFile) { - const pathToOutputFile = join(context.root, options.outputFile); + const pathToOutputFile = join(systemRoot, options.outputFile); mkdirSync(dirname(pathToOutputFile), { recursive: true }); writeFileSync(pathToOutputFile, formattedResults); } else { diff --git a/packages/bundled-angular-compiler/CHANGELOG.md b/packages/bundled-angular-compiler/CHANGELOG.md index 2fd3a1d6a..d24a28055 100644 --- a/packages/bundled-angular-compiler/CHANGELOG.md +++ b/packages/bundled-angular-compiler/CHANGELOG.md @@ -1,3 +1,13 @@ +## 17.5.3 (2024-09-04) + +### 🩹 Fixes + +- switch to using angular-devkit directly for schematics and builder + +### ❤️ Thank You + +- James Henry + ## 17.5.2 (2024-05-28) ### 🩹 Fixes diff --git a/packages/bundled-angular-compiler/package.json b/packages/bundled-angular-compiler/package.json index ac948fd87..bd1a64884 100644 --- a/packages/bundled-angular-compiler/package.json +++ b/packages/bundled-angular-compiler/package.json @@ -1,6 +1,6 @@ { "name": "@angular-eslint/bundled-angular-compiler", - "version": "17.5.2", + "version": "17.5.3", "description": "A CJS bundled version of @angular/compiler", "license": "MIT", "main": "dist/index.js", diff --git a/packages/eslint-plugin-template/CHANGELOG.md b/packages/eslint-plugin-template/CHANGELOG.md index b1da0bba2..5023199c1 100644 --- a/packages/eslint-plugin-template/CHANGELOG.md +++ b/packages/eslint-plugin-template/CHANGELOG.md @@ -1,3 +1,13 @@ +## 17.5.3 (2024-09-04) + +### 🩹 Fixes + +- switch to using angular-devkit directly for schematics and builder + +### ❤️ Thank You + +- James Henry + ## 17.5.2 (2024-05-28) ### 🩹 Fixes diff --git a/packages/eslint-plugin-template/package.json b/packages/eslint-plugin-template/package.json index 487c55343..fed7d4ce8 100644 --- a/packages/eslint-plugin-template/package.json +++ b/packages/eslint-plugin-template/package.json @@ -1,6 +1,6 @@ { "name": "@angular-eslint/eslint-plugin-template", - "version": "17.5.2", + "version": "17.5.3", "description": "ESLint plugin for Angular Templates", "license": "MIT", "main": "dist/index.js", @@ -18,8 +18,8 @@ "LICENSE" ], "dependencies": { - "@angular-eslint/bundled-angular-compiler": "17.5.2", - "@angular-eslint/utils": "17.5.2", + "@angular-eslint/bundled-angular-compiler": "17.5.3", + "@angular-eslint/utils": "17.5.3", "@typescript-eslint/type-utils": "7.11.0", "@typescript-eslint/utils": "7.11.0", "aria-query": "5.3.0", diff --git a/packages/eslint-plugin/CHANGELOG.md b/packages/eslint-plugin/CHANGELOG.md index 33b9aad21..a4c446fdb 100644 --- a/packages/eslint-plugin/CHANGELOG.md +++ b/packages/eslint-plugin/CHANGELOG.md @@ -1,3 +1,13 @@ +## 17.5.3 (2024-09-04) + +### 🩹 Fixes + +- switch to using angular-devkit directly for schematics and builder + +### ❤️ Thank You + +- James Henry + ## 17.5.2 (2024-05-28) ### 🩹 Fixes diff --git a/packages/eslint-plugin/package.json b/packages/eslint-plugin/package.json index 5b1abb05c..94491261a 100644 --- a/packages/eslint-plugin/package.json +++ b/packages/eslint-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@angular-eslint/eslint-plugin", - "version": "17.5.2", + "version": "17.5.3", "description": "ESLint plugin for Angular applications, following angular.io/styleguide", "license": "MIT", "main": "dist/index.js", @@ -18,8 +18,8 @@ "LICENSE" ], "dependencies": { - "@angular-eslint/bundled-angular-compiler": "17.5.2", - "@angular-eslint/utils": "17.5.2", + "@angular-eslint/bundled-angular-compiler": "17.5.3", + "@angular-eslint/utils": "17.5.3", "@typescript-eslint/utils": "7.11.0" }, "peerDependencies": { diff --git a/packages/schematics/CHANGELOG.md b/packages/schematics/CHANGELOG.md index d931e90cc..825c3be11 100644 --- a/packages/schematics/CHANGELOG.md +++ b/packages/schematics/CHANGELOG.md @@ -1,3 +1,13 @@ +## 17.5.3 (2024-09-04) + +### 🩹 Fixes + +- switch to using angular-devkit directly for schematics and builder + +### ❤️ Thank You + +- James Henry + ## 17.5.2 (2024-05-28) ### 🩹 Fixes diff --git a/packages/schematics/package.json b/packages/schematics/package.json index 60c990230..9cdc8327c 100644 --- a/packages/schematics/package.json +++ b/packages/schematics/package.json @@ -1,6 +1,6 @@ { "name": "@angular-eslint/schematics", - "version": "17.5.2", + "version": "17.5.3", "description": "Angular Schematics for angular-eslint", "license": "MIT", "main": "dist/index.js", @@ -34,11 +34,9 @@ "save": "devDependencies" }, "dependencies": { - "@angular-eslint/eslint-plugin": "17.5.2", - "@angular-eslint/eslint-plugin-template": "17.5.2", - "@nx/devkit": "^17.2.8 || ^18.0.0 || ^19.0.0", + "@angular-eslint/eslint-plugin": "17.5.3", + "@angular-eslint/eslint-plugin-template": "17.5.3", "ignore": "5.3.1", - "nx": "^17.2.8 || ^18.0.0 || ^19.0.0", "strip-json-comments": "3.1.1", "tmp": "0.2.3" }, diff --git a/packages/schematics/src/add-eslint-to-project/index.ts b/packages/schematics/src/add-eslint-to-project/index.ts index cf8c57d42..dcce12a95 100644 --- a/packages/schematics/src/add-eslint-to-project/index.ts +++ b/packages/schematics/src/add-eslint-to-project/index.ts @@ -1,9 +1,9 @@ -import type { Tree } from '../devkit-imports'; -import { convertNxGenerator } from '../devkit-imports'; +import type { Rule, Tree } from '@angular-devkit/schematics'; +import { chain } from '@angular-devkit/schematics'; import { - addESLintTargetToProject__NX, - createESLintConfigForProject__NX, - determineTargetProjectName__NX, + addESLintTargetToProject, + createESLintConfigForProject, + determineTargetProjectName, } from '../utils'; interface Schema { @@ -11,25 +11,27 @@ interface Schema { setParserOptionsProject?: boolean; } -export default convertNxGenerator(async (tree: Tree, options: Schema) => { - const projectName = determineTargetProjectName__NX(tree, options.project); - if (!projectName) { - throw new Error( - '\n' + - ` +export default function addESLintToProject(schema: Schema): Rule { + return (tree: Tree) => { + const projectName = determineTargetProjectName(tree, schema.project); + if (!projectName) { + throw new Error( + '\n' + + ` Error: You must specify a project to add ESLint to because you have multiple projects in your angular.json E.g. npx ng g @angular-eslint/schematics:add-eslint-to-project {{YOUR_PROJECT_NAME_GOES_HERE}} - `.trim(), - ); - } - - // Update the lint builder and config in angular.json - addESLintTargetToProject__NX(tree, projectName, 'lint'); - - createESLintConfigForProject__NX( - tree, - projectName, - options.setParserOptionsProject ?? false, - ); -}); + `.trim(), + ); + } + return chain([ + // Create the ESLint config file for the project + createESLintConfigForProject( + projectName, + schema.setParserOptionsProject ?? false, + ), + // Set the lint builder and config in angular.json + addESLintTargetToProject(projectName, 'lint'), + ]); + }; +} diff --git a/packages/schematics/src/application/index.ts b/packages/schematics/src/application/index.ts index fe4f15bed..210710ea8 100644 --- a/packages/schematics/src/application/index.ts +++ b/packages/schematics/src/application/index.ts @@ -1,41 +1,41 @@ +import type { Rule, SchematicContext, Tree } from '@angular-devkit/schematics'; +import { chain, externalSchematic } from '@angular-devkit/schematics'; /** * We are able to use the full, unaltered Schema directly from @schematics/angular * The applicable json file is copied from node_modules as a prebuiid step to ensure * they stay in sync. */ import type { Schema as AngularSchema } from '@schematics/angular/application/schema'; -import type { Tree } from '../devkit-imports'; import { - convertNxGenerator, - wrapAngularDevkitSchematic, -} from '../devkit-imports'; -import { - addESLintTargetToProject__NX, - createESLintConfigForProject__NX, + addESLintTargetToProject, + createESLintConfigForProject, } from '../utils'; interface Schema extends AngularSchema { setParserOptionsProject?: boolean; } -export default convertNxGenerator(async (tree: Tree, options: Schema) => { - // Remove angular-eslint specific options before passing to the Angular schematic - // eslint-disable-next-line @typescript-eslint/no-unused-vars - const { setParserOptionsProject, ...angularOptions } = options; - - const applicationGenerator = wrapAngularDevkitSchematic( - '@schematics/angular', - 'application', - ); - - await applicationGenerator(tree, angularOptions); +function eslintRelatedChanges(options: Schema) { + return chain([ + // Create the ESLint config file for the project + createESLintConfigForProject( + options.name, + options.setParserOptionsProject ?? false, + ), + // Update the lint builder and config in angular.json + addESLintTargetToProject(options.name, 'lint'), + ]); +} - // Update the lint builder and config in angular.json - addESLintTargetToProject__NX(tree, options.name, 'lint'); +export default function (options: Schema): Rule { + return (host: Tree, context: SchematicContext) => { + // Remove angular-eslint specific options before passing to the Angular schematic + // eslint-disable-next-line @typescript-eslint/no-unused-vars + const { setParserOptionsProject, ...angularOptions } = options; - createESLintConfigForProject__NX( - tree, - options.name, - options.setParserOptionsProject ?? false, - ); -}); + return chain([ + externalSchematic('@schematics/angular', 'application', angularOptions), + eslintRelatedChanges(options), + ])(host, context); + }; +} diff --git a/packages/schematics/src/library/index.ts b/packages/schematics/src/library/index.ts index c5f0238bb..79b71bec3 100644 --- a/packages/schematics/src/library/index.ts +++ b/packages/schematics/src/library/index.ts @@ -1,41 +1,41 @@ +import type { Rule, SchematicContext, Tree } from '@angular-devkit/schematics'; +import { chain, externalSchematic } from '@angular-devkit/schematics'; /** * We are able to use the full, unaltered Schema directly from @schematics/angular * The applicable json file is copied from node_modules as a prebuiid step to ensure * they stay in sync. */ import type { Schema as AngularSchema } from '@schematics/angular/library/schema'; -import type { Tree } from '../devkit-imports'; import { - convertNxGenerator, - wrapAngularDevkitSchematic, -} from '../devkit-imports'; -import { - addESLintTargetToProject__NX, - createESLintConfigForProject__NX, + addESLintTargetToProject, + createESLintConfigForProject, } from '../utils'; interface Schema extends AngularSchema { setParserOptionsProject?: boolean; } -export default convertNxGenerator(async (tree: Tree, options: Schema) => { - // Remove angular-eslint specific options before passing to the Angular schematic - // eslint-disable-next-line @typescript-eslint/no-unused-vars - const { setParserOptionsProject, ...angularOptions } = options; - - const libraryGenerator = wrapAngularDevkitSchematic( - '@schematics/angular', - 'library', - ); - - await libraryGenerator(tree, angularOptions); +function eslintRelatedChanges(options: Schema) { + return chain([ + // Create the ESLint config file for the project + createESLintConfigForProject( + options.name, + options.setParserOptionsProject ?? false, + ), + // Update the lint builder and config in angular.json + addESLintTargetToProject(options.name, 'lint'), + ]); +} - // Update the lint builder and config in angular.json - addESLintTargetToProject__NX(tree, options.name, 'lint'); +export default function (options: Schema): Rule { + return (host: Tree, context: SchematicContext) => { + // Remove angular-eslint specific options before passing to the Angular schematic + // eslint-disable-next-line @typescript-eslint/no-unused-vars + const { setParserOptionsProject, ...angularOptions } = options; - createESLintConfigForProject__NX( - tree, - options.name, - options.setParserOptionsProject ?? false, - ); -}); + return chain([ + externalSchematic('@schematics/angular', 'library', angularOptions), + eslintRelatedChanges(options), + ])(host, context); + }; +} diff --git a/packages/schematics/src/utils.ts b/packages/schematics/src/utils.ts index 657728c17..a2d6f7911 100644 --- a/packages/schematics/src/utils.ts +++ b/packages/schematics/src/utils.ts @@ -11,12 +11,6 @@ import { callRule, chain } from '@angular-devkit/schematics'; import type { Ignore } from 'ignore'; import ignore from 'ignore'; import stripJsonComments from 'strip-json-comments'; -import type { Tree as NxTree, ProjectConfiguration } from './devkit-imports'; -import { - offsetFromRoot as offsetFromRoot__NX, - readJson, - writeJson, -} from './devkit-imports'; const DEFAULT_PREFIX = 'app'; @@ -109,7 +103,7 @@ function updateWorkspaceInTree( callback: (json: T, context: SchematicContext, host: Tree) => O, ): Rule { return (host: Tree, context: SchematicContext): Tree => { - const path = getWorkspacePath(host); + const path = 'angular.json'; host.overwrite( path, serializeJson(callback(readJsonInTree(host, path), context, host)), @@ -118,53 +112,6 @@ function updateWorkspaceInTree( }; } -function readProjectConfiguration(tree: NxTree, projectName: string) { - const angularJSON = readJson(tree, 'angular.json'); - return angularJSON.projects[projectName]; -} - -function updateProjectConfiguration( - tree: NxTree, - projectName: string, - projectConfig: ProjectConfiguration, -) { - const angularJSON = readJson(tree, 'angular.json'); - angularJSON.projects[projectName] = projectConfig; - writeJson(tree, 'angular.json', angularJSON); -} - -export function addESLintTargetToProject__NX( - tree: NxTree, - projectName: string, - targetName: 'eslint' | 'lint', -) { - const existingProjectConfig = readProjectConfiguration(tree, projectName); - - let lintFilePatternsRoot = ''; - - // Default Angular CLI project at the root of the workspace - if (existingProjectConfig.root === '') { - lintFilePatternsRoot = existingProjectConfig.sourceRoot || 'src'; - } else { - lintFilePatternsRoot = existingProjectConfig.root; - } - - const eslintTargetConfig = { - builder: '@angular-eslint/builder:lint', - options: { - lintFilePatterns: [ - `${lintFilePatternsRoot}/**/*.ts`, - `${lintFilePatternsRoot}/**/*.html`, - ], - }, - }; - - existingProjectConfig.architect = existingProjectConfig.architect || {}; - existingProjectConfig.architect[targetName] = eslintTargetConfig; - - updateProjectConfiguration(tree, projectName, existingProjectConfig); -} - export function addESLintTargetToProject( projectName: string, targetName: 'eslint' | 'lint', @@ -191,6 +138,7 @@ export function addESLintTargetToProject( }, }; + existingProjectConfig.architect = existingProjectConfig.architect || {}; existingProjectConfig.architect[targetName] = eslintTargetConfig; return workspaceJson; @@ -346,88 +294,6 @@ function createProjectESLintConfig( }; } -function createProjectESLintConfig__NX( - projectRoot: string, - projectType: ProjectType, - prefix: string, - setParserOptionsProject: boolean, - hasE2e: boolean, -) { - return { - extends: `${offsetFromRoot__NX(projectRoot)}.eslintrc.json`, - ignorePatterns: ['!**/*'], - overrides: [ - { - files: ['*.ts'], - ...(setParserOptionsProject - ? { - parserOptions: { - project: setESLintProjectBasedOnProjectType( - projectRoot, - projectType, - hasE2e, - ), - }, - } - : null), - rules: { - '@angular-eslint/directive-selector': [ - 'error', - { type: 'attribute', prefix, style: 'camelCase' }, - ], - '@angular-eslint/component-selector': [ - 'error', - { type: 'element', prefix, style: 'kebab-case' }, - ], - }, - }, - - { - files: ['*.html'], - rules: {}, - }, - ], - }; -} - -export function createESLintConfigForProject__NX( - tree: NxTree, - projectName: string, - setParserOptionsProject: boolean, -) { - const existingProjectConfig = readProjectConfiguration(tree, projectName); - const targets = - existingProjectConfig.architect || existingProjectConfig.targets; - const { root: projectRoot, projectType, prefix } = existingProjectConfig; - - const hasE2e = !!targets?.e2e; - - /** - * If the root is an empty string it must be the initial project created at the - * root by the Angular CLI's workspace schematic - */ - if (projectRoot === '') { - return createRootESLintConfigFile__NX(tree, prefix || DEFAULT_PREFIX); - } - - // If, for whatever reason, the root .eslintrc.json doesn't exist yet, create it - if (!tree.exists('.eslintrc.json')) { - createRootESLintConfigFile__NX(tree, prefix || DEFAULT_PREFIX); - } - - writeJson( - tree, - join(normalize(projectRoot), '.eslintrc.json'), - createProjectESLintConfig__NX( - projectRoot, - projectType || 'library', - prefix || DEFAULT_PREFIX, - setParserOptionsProject, - hasE2e, - ), - ); -} - export function createESLintConfigForProject( projectName: string, setParserOptionsProject: boolean, @@ -471,7 +337,7 @@ export function createESLintConfigForProject( function createRootESLintConfigFile(projectName: string): Rule { return (tree) => { const angularJSON = readJsonInTree(tree, getWorkspacePath(tree)); - let lintPrefix: string | null = null; + let lintPrefix = DEFAULT_PREFIX; if (angularJSON.projects?.[projectName]) { const { prefix } = angularJSON.projects[projectName]; @@ -484,10 +350,6 @@ function createRootESLintConfigFile(projectName: string): Rule { }; } -function createRootESLintConfigFile__NX(tree: NxTree, prefix: string) { - return writeJson(tree, '.eslintrc.json', createRootESLintConfig(prefix)); -} - export function sortObjectByKeys( obj: Record, ): Record { @@ -501,25 +363,6 @@ export function sortObjectByKeys( }, {}); } -/** - * To make certain schematic usage conversion more ergonomic, if the user does not specify a project - * and only has a single project in their angular.json we will just go ahead and use that one. - */ -export function determineTargetProjectName__NX( - tree: NxTree, - maybeProject?: string, -): string | null { - if (maybeProject) { - return maybeProject; - } - const workspaceJson = readJson(tree, 'angular.json'); - const projects = Object.keys(workspaceJson.projects); - if (projects.length === 1) { - return projects[0]; - } - return null; -} - /** * To make certain schematic usage conversion more ergonomic, if the user does not specify a project * and only has a single project in their angular.json we will just go ahead and use that one. @@ -531,7 +374,7 @@ export function determineTargetProjectName( if (maybeProject) { return maybeProject; } - const workspaceJson = readJsonInTree(tree, getWorkspacePath(tree)); + const workspaceJson = readJsonInTree(tree, 'angular.json'); const projects = Object.keys(workspaceJson.projects); if (projects.length === 1) { return projects[0]; diff --git a/packages/template-parser/CHANGELOG.md b/packages/template-parser/CHANGELOG.md index 86197ea89..89f6da83b 100644 --- a/packages/template-parser/CHANGELOG.md +++ b/packages/template-parser/CHANGELOG.md @@ -1,3 +1,13 @@ +## 17.5.3 (2024-09-04) + +### 🩹 Fixes + +- switch to using angular-devkit directly for schematics and builder + +### ❤️ Thank You + +- James Henry + ## 17.5.2 (2024-05-28) ### 🩹 Fixes diff --git a/packages/template-parser/package.json b/packages/template-parser/package.json index 62d1f45e4..3c7bfd74c 100644 --- a/packages/template-parser/package.json +++ b/packages/template-parser/package.json @@ -1,6 +1,6 @@ { "name": "@angular-eslint/template-parser", - "version": "17.5.2", + "version": "17.5.3", "description": "Angular Template parser for ESLint", "license": "MIT", "main": "dist/index.js", @@ -18,7 +18,7 @@ "LICENSE" ], "dependencies": { - "@angular-eslint/bundled-angular-compiler": "17.5.2", + "@angular-eslint/bundled-angular-compiler": "17.5.3", "eslint-scope": "^8.0.0" }, "peerDependencies": { diff --git a/packages/utils/CHANGELOG.md b/packages/utils/CHANGELOG.md index d65155af6..7df5557dc 100644 --- a/packages/utils/CHANGELOG.md +++ b/packages/utils/CHANGELOG.md @@ -1,3 +1,13 @@ +## 17.5.3 (2024-09-04) + +### 🩹 Fixes + +- switch to using angular-devkit directly for schematics and builder + +### ❤️ Thank You + +- James Henry + ## 17.5.2 (2024-05-28) ### 🩹 Fixes diff --git a/packages/utils/package.json b/packages/utils/package.json index 3055e9891..f837f79f5 100644 --- a/packages/utils/package.json +++ b/packages/utils/package.json @@ -1,6 +1,6 @@ { "name": "@angular-eslint/utils", - "version": "17.5.2", + "version": "17.5.3", "license": "MIT", "main": "dist/index.js", "types": "dist/index.d.ts", @@ -21,7 +21,7 @@ "typescript": "*" }, "dependencies": { - "@angular-eslint/bundled-angular-compiler": "17.5.2", + "@angular-eslint/bundled-angular-compiler": "17.5.3", "@typescript-eslint/utils": "7.11.0" }, "gitHead": "e2006e5e9c99e5a943d1a999e0efa5247d29ec24" diff --git a/yarn.lock b/yarn.lock index 5bfee003f..c392eaee9 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2109,13 +2109,6 @@ read-package-json-fast "^3.0.0" which "^4.0.0" -"@nrwl/devkit@19.0.3": - version "19.0.3" - resolved "https://registry.yarnpkg.com/@nrwl/devkit/-/devkit-19.0.3.tgz#47203bedca5aa484cabd0bc9c5df678bad006c70" - integrity sha512-v28C6v1NdfVdGtDETj10A4qiutEnSbbbR1/5LJYfNgamHQY7GDrFUC9tk+DYaPn2glcvOHLWXYvyQMGYOe+H6Q== - dependencies: - "@nx/devkit" "19.0.3" - "@nrwl/devkit@19.0.6": version "19.0.6" resolved "https://registry.yarnpkg.com/@nrwl/devkit/-/devkit-19.0.6.tgz#16936356f7a19b7fb23b91c71a671354fa607ac2" @@ -2151,14 +2144,6 @@ dependencies: "@nx/plugin" "19.0.6" -"@nrwl/tao@19.0.3": - version "19.0.3" - resolved "https://registry.yarnpkg.com/@nrwl/tao/-/tao-19.0.3.tgz#c373000a814f69b916c7d071229f4436242f5cbc" - integrity sha512-nBFCplOrix/BV32oLMkO+b3WM8HAb0E0B3wXOW2GDc/Pc+aKgRTsnkG/Kjcz6i2lIk+FjWvi7DewDIZzSUFFuA== - dependencies: - nx "19.0.3" - tslib "^2.3.0" - "@nrwl/tao@19.0.6": version "19.0.6" resolved "https://registry.yarnpkg.com/@nrwl/tao/-/tao-19.0.6.tgz#d98c6d64a3ea02def416c9ccf52ef9c3c836f623" @@ -2174,21 +2159,6 @@ dependencies: "@nx/workspace" "19.0.6" -"@nx/devkit@19.0.3", "@nx/devkit@^17.2.8 || ^18.0.0 || ^19.0.0": - version "19.0.3" - resolved "https://registry.yarnpkg.com/@nx/devkit/-/devkit-19.0.3.tgz#e70f1bfae314b058f0d88db555ad1500a350b22c" - integrity sha512-FxKsnN/PFFnhQtdOcHqEqnEpsfmIncYrzdA/aKgiZ/V6APuNuZBVNd5jO6EO39uvT413CHQs5+fdE+btc03AUA== - dependencies: - "@nrwl/devkit" "19.0.3" - ejs "^3.1.7" - enquirer "~2.3.6" - ignore "^5.0.4" - minimatch "9.0.3" - semver "^7.5.3" - tmp "~0.2.1" - tslib "^2.3.0" - yargs-parser "21.1.1" - "@nx/devkit@19.0.6": version "19.0.6" resolved "https://registry.yarnpkg.com/@nx/devkit/-/devkit-19.0.6.tgz#5a8bdbbc275c1576a9f8225d70559815fb5c2871" @@ -2295,101 +2265,51 @@ dependencies: "@nx/eslint" "19.0.6" -"@nx/nx-darwin-arm64@19.0.3": - version "19.0.3" - resolved "https://registry.yarnpkg.com/@nx/nx-darwin-arm64/-/nx-darwin-arm64-19.0.3.tgz#b8e8c118ea521a8e94b76e06891130cbc683ea0b" - integrity sha512-poY89jbL44l5WP18Y+JQImnJLZN8jBROtnB6cFhAc/pfAG4pjLTxMyRrXU9QD/nYubsPNZhrN8NyE3/7J0F8zw== - "@nx/nx-darwin-arm64@19.0.6": version "19.0.6" resolved "https://registry.yarnpkg.com/@nx/nx-darwin-arm64/-/nx-darwin-arm64-19.0.6.tgz#99037bd8e51f0ed165f5fb23eb195c9aa655830a" integrity sha512-tC0yJDFo7zfRKUR1CtwIpcGbaSqRVH+l82XnmJYP7YT/NnR1TZMVh/KM17jx4Jjyny/dWEp+qyqG9txgZxCG8g== -"@nx/nx-darwin-x64@19.0.3": - version "19.0.3" - resolved "https://registry.yarnpkg.com/@nx/nx-darwin-x64/-/nx-darwin-x64-19.0.3.tgz#4c7b6ebed9ec010c09d43c145f4c8b4ab9e01049" - integrity sha512-3CYt3hzP32Qrqo30C4YhhOn+eOePd3w5ibndJl94fhz5tDv2C32axuv0Md/3R5/28W0goB6pY6NfVtJwybXkKA== - "@nx/nx-darwin-x64@19.0.6": version "19.0.6" resolved "https://registry.yarnpkg.com/@nx/nx-darwin-x64/-/nx-darwin-x64-19.0.6.tgz#d99cd1b6dd69bfc168b52bfea35c3604edfe2c93" integrity sha512-JEl0lE2+hOwA5rjgXxqXDTskfWQU7LwuusarpZ5JuQFDVGFZPnhXZbBXaRKru8tPAJ4rJvPAV4Sh+xYM+opx4A== -"@nx/nx-freebsd-x64@19.0.3": - version "19.0.3" - resolved "https://registry.yarnpkg.com/@nx/nx-freebsd-x64/-/nx-freebsd-x64-19.0.3.tgz#35e5e5433d0ec8de9da2275d32b6fb554897d6ff" - integrity sha512-AaRhDmjUGHvNV6AzT87VCxOTENPxl+JVvFBv8jd8CGzqsouvU+vDEagJ9B2zz7+mx4NZUSyQNYUTF8os9p8fZw== - "@nx/nx-freebsd-x64@19.0.6": version "19.0.6" resolved "https://registry.yarnpkg.com/@nx/nx-freebsd-x64/-/nx-freebsd-x64-19.0.6.tgz#e335706fc4ecd54dc34ebaded5e4759e7bde364b" integrity sha512-Bg0p+Zygp25K0Lq5UiIQSY9FvqNsZm0XzZ3BU5guj5YCkBKABtRGgMArm8NJTxJ090EYmSAM+A+40oNroXGTFQ== -"@nx/nx-linux-arm-gnueabihf@19.0.3": - version "19.0.3" - resolved "https://registry.yarnpkg.com/@nx/nx-linux-arm-gnueabihf/-/nx-linux-arm-gnueabihf-19.0.3.tgz#14ec6fa69a82a96ae2a2f2bb9d35c0f9b4cf8ded" - integrity sha512-25jrFaWvzPP9aMMGMG4EXW2qeD6abxP9wcbXAK69jLjNatiwAfVTEvwWZCWZ+WZYGWPpondGQFyFv99lt4DivQ== - "@nx/nx-linux-arm-gnueabihf@19.0.6": version "19.0.6" resolved "https://registry.yarnpkg.com/@nx/nx-linux-arm-gnueabihf/-/nx-linux-arm-gnueabihf-19.0.6.tgz#24f6415119a6f2a293a18b16252d3c5acb6ee4dd" integrity sha512-8P54dFDPSwew+ZL+U4L3ERNjtBUkfBbJ7RCtwfVhFpNzTTi4Icy1Nw6UVUu/HUF6aJeDR/Wz+BYV3NyMkWys7w== -"@nx/nx-linux-arm64-gnu@19.0.3": - version "19.0.3" - resolved "https://registry.yarnpkg.com/@nx/nx-linux-arm64-gnu/-/nx-linux-arm64-gnu-19.0.3.tgz#1257f08b4f6f077c9a84b40c99a6351a14fb48d0" - integrity sha512-p3X1UEu8RkvQAl2Soc4sQw8aQIFDq/J7cx2sO44NWboswkm0uU8ZDnQLQ3gq3uYqurAwPkJgH37BNGOQKcUcGA== - "@nx/nx-linux-arm64-gnu@19.0.6": version "19.0.6" resolved "https://registry.yarnpkg.com/@nx/nx-linux-arm64-gnu/-/nx-linux-arm64-gnu-19.0.6.tgz#04fbdf78506268075be89c5d96f1c8e458ed7af6" integrity sha512-zKHC/MB1RQHpI2nw7AxyILN6qnofjpS6JA9ZtjVx3lkDS112PJuA/81Ffftdt5ubAOziczRA08xbQF73PprW8Q== -"@nx/nx-linux-arm64-musl@19.0.3": - version "19.0.3" - resolved "https://registry.yarnpkg.com/@nx/nx-linux-arm64-musl/-/nx-linux-arm64-musl-19.0.3.tgz#eaaec49e80d66441e7814f6a82d2e112818a04fd" - integrity sha512-kVHabpFZ7mfQ6gfzLetfmjJUfLGcijpwYHBe8QCqqoiWj/i9MAxE1/I8K5t32VIEr6vdPJsshmVJvXCUewtvxQ== - "@nx/nx-linux-arm64-musl@19.0.6": version "19.0.6" resolved "https://registry.yarnpkg.com/@nx/nx-linux-arm64-musl/-/nx-linux-arm64-musl-19.0.6.tgz#194539330cf4fe5bbaa99ca34e611810e2ac4edd" integrity sha512-BvmIBxsSnljOcUaiYSLZM2ePYcp8t/18q0hHgEPuXdEs0QBy46cleCXVy2ffqHJi20wWpC1hER0ByOGIMui1XQ== -"@nx/nx-linux-x64-gnu@19.0.3": - version "19.0.3" - resolved "https://registry.yarnpkg.com/@nx/nx-linux-x64-gnu/-/nx-linux-x64-gnu-19.0.3.tgz#7cf7891885aef85d52a5d229dc86a66ab3c50638" - integrity sha512-DnXWWN7xHXHA5ij8Dc09FS5vBjs4Ea2JvTttR98GT7+yLAgoxt8hDjUPzRNpbTQZUyf+bTSbpgmwTlHyXLquCQ== - "@nx/nx-linux-x64-gnu@19.0.6": version "19.0.6" resolved "https://registry.yarnpkg.com/@nx/nx-linux-x64-gnu/-/nx-linux-x64-gnu-19.0.6.tgz#4d229fce3cfc59f5f7bd9002f2e75e2f7b33ec76" integrity sha512-evpG6HTqFlAhFatdW0ueZpoH2Y1mHnk7cEojcNO1+aVflSGzndmdwO0ovUX4VKVutn0bK0PYt/v4/HR1+2XamA== -"@nx/nx-linux-x64-musl@19.0.3": - version "19.0.3" - resolved "https://registry.yarnpkg.com/@nx/nx-linux-x64-musl/-/nx-linux-x64-musl-19.0.3.tgz#fa9a64c4496856093fba62e055a4dc5082e2016d" - integrity sha512-RvyRHXpNDobseddECfLpPZ/AO/a2NQjNvJ/FDpj3Gdogle985qW/Wv7BzXBb4p4C2xyqBC6fgzi6kRV6P/s5IA== - "@nx/nx-linux-x64-musl@19.0.6": version "19.0.6" resolved "https://registry.yarnpkg.com/@nx/nx-linux-x64-musl/-/nx-linux-x64-musl-19.0.6.tgz#f9b9642b97ac71ffd8c5a14592e06c354a21a55b" integrity sha512-HEXq/85Eb6jlnxGLEwlyROp0/MkTfpmdUmyIr0lIf0RijDdAOL8MGdzrD21dcde2cUVUkBuTs2OQt6sB28hoTQ== -"@nx/nx-win32-arm64-msvc@19.0.3": - version "19.0.3" - resolved "https://registry.yarnpkg.com/@nx/nx-win32-arm64-msvc/-/nx-win32-arm64-msvc-19.0.3.tgz#1ad9df8c4e421c06671f3a4f4167b52aa40d7b4d" - integrity sha512-t/LYcwN5t8F9atzMszU0e6tOsYLZ5hmuuJUbLKLgzbpNhycvDI/t5m7zkOH8D8Ki7pRx6IjboZ27LAXeTqFhdA== - "@nx/nx-win32-arm64-msvc@19.0.6": version "19.0.6" resolved "https://registry.yarnpkg.com/@nx/nx-win32-arm64-msvc/-/nx-win32-arm64-msvc-19.0.6.tgz#4d25255fe082e8f290732378661ddaefdb9f6d67" integrity sha512-FS3oz2WRWoyxAxegQ/kJyR4qPLh0se6WOmG9bXttc16/n9a0b8trh6mzG2LPxP5/mxMdbJsRcOsphShHcIR9+A== -"@nx/nx-win32-x64-msvc@19.0.3": - version "19.0.3" - resolved "https://registry.yarnpkg.com/@nx/nx-win32-x64-msvc/-/nx-win32-x64-msvc-19.0.3.tgz#e2d88643ce049478519ec26437330965df279dc7" - integrity sha512-xoL12yHpWJAVtgpQAcDdX9Og42q3FXRCzTDnt2X/yBynbTF+bSoMh/LtsuYaZ8H8OZ0Q4NcfreSByMreh8/jWg== - "@nx/nx-win32-x64-msvc@19.0.6": version "19.0.6" resolved "https://registry.yarnpkg.com/@nx/nx-win32-x64-msvc/-/nx-win32-x64-msvc-19.0.6.tgz#bce2c93be34b9a82d1619b0b437666f3f7dded5e" @@ -3460,13 +3380,6 @@ js-yaml "^3.10.0" tslib "^2.4.0" -"@zkochan/js-yaml@0.0.6": - version "0.0.6" - resolved "https://registry.yarnpkg.com/@zkochan/js-yaml/-/js-yaml-0.0.6.tgz#975f0b306e705e28b8068a07737fa46d3fc04826" - integrity sha512-nzvgl3VfhcELQ8LyVrYOru+UtAy1nrygk2+AGbTm8a5YcO6o8lSjAT+pfg3vJWxIoZKOUhrK6UU7xW/+00kQrg== - dependencies: - argparse "^2.0.1" - JSONStream@1.3.5, JSONStream@^1.3.5: version "1.3.5" resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.5.tgz#3208c1f08d3a4d99261ab64f92302bc15e111ca0" @@ -8114,57 +8027,6 @@ npmlog@^6.0.0: gauge "^4.0.3" set-blocking "^2.0.0" -nx@19.0.3, "nx@^17.2.8 || ^18.0.0 || ^19.0.0": - version "19.0.3" - resolved "https://registry.yarnpkg.com/nx/-/nx-19.0.3.tgz#184ba380e852e65d4f2a754938bf19d63074d0c6" - integrity sha512-FJ+HhKHecKvc027iA4fjWGEv2DjKj4f4UrXpDEEKUoiOiip7dKXWmZPVGkmgZC+nCD4Nbw5WvkuXGFkEf5D/SA== - dependencies: - "@nrwl/tao" "19.0.3" - "@yarnpkg/lockfile" "^1.1.0" - "@yarnpkg/parsers" "3.0.0-rc.46" - "@zkochan/js-yaml" "0.0.6" - axios "^1.6.0" - chalk "^4.1.0" - cli-cursor "3.1.0" - cli-spinners "2.6.1" - cliui "^8.0.1" - dotenv "~16.3.1" - dotenv-expand "~10.0.0" - enquirer "~2.3.6" - figures "3.2.0" - flat "^5.0.2" - fs-extra "^11.1.0" - ignore "^5.0.4" - jest-diff "^29.4.1" - js-yaml "4.1.0" - jsonc-parser "3.2.0" - lines-and-columns "~2.0.3" - minimatch "9.0.3" - node-machine-id "1.1.12" - npm-run-path "^4.0.1" - open "^8.4.0" - ora "5.3.0" - semver "^7.5.3" - string-width "^4.2.3" - strong-log-transformer "^2.1.0" - tar-stream "~2.2.0" - tmp "~0.2.1" - tsconfig-paths "^4.1.2" - tslib "^2.3.0" - yargs "^17.6.2" - yargs-parser "21.1.1" - optionalDependencies: - "@nx/nx-darwin-arm64" "19.0.3" - "@nx/nx-darwin-x64" "19.0.3" - "@nx/nx-freebsd-x64" "19.0.3" - "@nx/nx-linux-arm-gnueabihf" "19.0.3" - "@nx/nx-linux-arm64-gnu" "19.0.3" - "@nx/nx-linux-arm64-musl" "19.0.3" - "@nx/nx-linux-x64-gnu" "19.0.3" - "@nx/nx-linux-x64-musl" "19.0.3" - "@nx/nx-win32-arm64-msvc" "19.0.3" - "@nx/nx-win32-x64-msvc" "19.0.3" - nx@19.0.6: version "19.0.6" resolved "https://registry.yarnpkg.com/nx/-/nx-19.0.6.tgz#d23abdd250ac884e5ee823293790b2cecca396b6"