From a98e1ae399986ddb7aebd5a0868e3eb86b4de7d0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9CJamesHenry=E2=80=9D?= Date: Thu, 23 May 2024 17:54:56 +0400 Subject: [PATCH 1/4] feat: update to eslint 9 and typescript-eslint 8 --- ...ion-false-ng-add-then-project.test.ts.snap | 38 +- ...ion-false-project-then-ng-add.test.ts.snap | 38 +- .../__snapshots__/new-workspace.test.ts.snap | 49 +- ...lication-false-ng-add-then-project.test.ts | 21 +- ...lication-false-project-then-ng-add.test.ts | 21 +- e2e/src/new-workspace.test.ts | 21 +- e2e/utils/fixtures.ts | 2 +- .../start-and-publish-to-local-registry.ts | 3 +- package.json | 24 +- .../bundled-angular-compiler/project.json | 6 +- packages/eslint-plugin-template/package.json | 6 +- .../src/utils/create-eslint-rule.ts | 6 +- .../no-interpolation-in-attributes/cases.ts | 8 - packages/eslint-plugin/package.json | 2 +- .../src/utils/create-eslint-rule.ts | 6 +- .../sort-ngmodule-metadata-arrays/cases.ts | 16 +- .../rules/use-lifecycle-interface/cases.ts | 34 +- packages/schematics/package.json | 4 +- packages/utils/package.json | 2 +- ...onvert-annotated-source-to-failure-case.ts | 15 +- packages/utils/src/index.ts | 2 +- .../src/{rules-tester.ts => rule-tester.ts} | 5 +- ...pt-eslint+rule-tester+8.0.0-alpha.16.patch | 14 + tools/scripts/postinstall.sh | 3 + yarn.lock | 615 +++++++++++------- 25 files changed, 679 insertions(+), 282 deletions(-) rename packages/utils/src/{rules-tester.ts => rule-tester.ts} (93%) create mode 100644 tools/patches/@typescript-eslint+rule-tester+8.0.0-alpha.16.patch diff --git a/e2e/src/__snapshots__/new-workspace-create-application-false-ng-add-then-project.test.ts.snap b/e2e/src/__snapshots__/new-workspace-create-application-false-ng-add-then-project.test.ts.snap index 63f76b21d..6709837d0 100644 --- a/e2e/src/__snapshots__/new-workspace-create-application-false-ng-add-then-project.test.ts.snap +++ b/e2e/src/__snapshots__/new-workspace-create-application-false-ng-add-then-project.test.ts.snap @@ -1,6 +1,6 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -exports[`new-workspace-create-application-false-ng-add-then-project it should pass linting when adding a project before running ng-add 1`] = ` +exports[`new-workspace-create-application-false-ng-add-then-project it should pass linting when adding a project before running ng-add -> with eslint v8 and typescript-eslint v7 1`] = ` { "@angular-devkit/build-angular": "^18.X.X", "@angular-eslint/builder": "0.0.0-e2e", @@ -11,8 +11,8 @@ exports[`new-workspace-create-application-false-ng-add-then-project it should pa "@angular/cli": "^18.X.X", "@angular/compiler-cli": "^18.X.X", "@types/jasmine": "~5.1.0", - "@typescript-eslint/eslint-plugin": "7.10.0", - "@typescript-eslint/parser": "7.10.0", + "@typescript-eslint/eslint-plugin": "^7.10.0", + "@typescript-eslint/parser": "^7.10.0", "eslint": "^8.57.0", "jasmine-core": "~5.1.0", "karma": "~6.4.0", @@ -24,6 +24,38 @@ exports[`new-workspace-create-application-false-ng-add-then-project it should pa } `; +exports[`new-workspace-create-application-false-ng-add-then-project it should pass linting when adding a project before running ng-add -> with eslint v8 and typescript-eslint v7 2`] = ` +" +Linting \\"app-project\\"... + +All files pass linting. +" +`; + +exports[`new-workspace-create-application-false-ng-add-then-project it should pass linting when adding a project before running ng-add 1`] = ` +{ + "@angular-devkit/build-angular": "^18.X.X", + "@angular-eslint/builder": "0.0.0-e2e", + "@angular-eslint/eslint-plugin": "0.0.0-e2e", + "@angular-eslint/eslint-plugin-template": "0.0.0-e2e", + "@angular-eslint/schematics": "0.0.0-e2e", + "@angular-eslint/template-parser": "0.0.0-e2e", + "@angular/cli": "^18.X.X", + "@angular/compiler-cli": "^18.X.X", + "@types/jasmine": "~5.1.0", + "@typescript-eslint/eslint-plugin": "8.0.0-alpha.16", + "@typescript-eslint/parser": "8.0.0-alpha.16", + "eslint": "^9.3.0", + "jasmine-core": "~5.1.0", + "karma": "~6.4.0", + "karma-chrome-launcher": "~3.2.0", + "karma-coverage": "~2.2.0", + "karma-jasmine": "~5.1.0", + "karma-jasmine-html-reporter": "~2.1.0", + "typescript": "~5.X.X" +} +`; + exports[`new-workspace-create-application-false-ng-add-then-project it should pass linting when adding a project before running ng-add 2`] = ` "{ \\"root\\": true, diff --git a/e2e/src/__snapshots__/new-workspace-create-application-false-project-then-ng-add.test.ts.snap b/e2e/src/__snapshots__/new-workspace-create-application-false-project-then-ng-add.test.ts.snap index 9d836c8c7..6e91862a3 100644 --- a/e2e/src/__snapshots__/new-workspace-create-application-false-project-then-ng-add.test.ts.snap +++ b/e2e/src/__snapshots__/new-workspace-create-application-false-project-then-ng-add.test.ts.snap @@ -1,6 +1,6 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -exports[`new-workspace-create-application-false-project-then-ng-add it should pass linting when ng-add is run before adding a project 1`] = ` +exports[`new-workspace-create-application-false-project-then-ng-add it should pass linting when adding a project before running ng-add -> with eslint v8 and typescript-eslint v7 1`] = ` { "@angular-devkit/build-angular": "^18.X.X", "@angular-eslint/builder": "0.0.0-e2e", @@ -11,8 +11,8 @@ exports[`new-workspace-create-application-false-project-then-ng-add it should pa "@angular/cli": "^18.X.X", "@angular/compiler-cli": "^18.X.X", "@types/jasmine": "~5.1.0", - "@typescript-eslint/eslint-plugin": "7.10.0", - "@typescript-eslint/parser": "7.10.0", + "@typescript-eslint/eslint-plugin": "^7.10.0", + "@typescript-eslint/parser": "^7.10.0", "eslint": "^8.57.0", "jasmine-core": "~5.1.0", "karma": "~6.4.0", @@ -24,6 +24,38 @@ exports[`new-workspace-create-application-false-project-then-ng-add it should pa } `; +exports[`new-workspace-create-application-false-project-then-ng-add it should pass linting when adding a project before running ng-add -> with eslint v8 and typescript-eslint v7 2`] = ` +" +Linting \\"app-project\\"... + +All files pass linting. +" +`; + +exports[`new-workspace-create-application-false-project-then-ng-add it should pass linting when ng-add is run before adding a project 1`] = ` +{ + "@angular-devkit/build-angular": "^18.X.X", + "@angular-eslint/builder": "0.0.0-e2e", + "@angular-eslint/eslint-plugin": "0.0.0-e2e", + "@angular-eslint/eslint-plugin-template": "0.0.0-e2e", + "@angular-eslint/schematics": "0.0.0-e2e", + "@angular-eslint/template-parser": "0.0.0-e2e", + "@angular/cli": "^18.X.X", + "@angular/compiler-cli": "^18.X.X", + "@types/jasmine": "~5.1.0", + "@typescript-eslint/eslint-plugin": "8.0.0-alpha.16", + "@typescript-eslint/parser": "8.0.0-alpha.16", + "eslint": "^9.3.0", + "jasmine-core": "~5.1.0", + "karma": "~6.4.0", + "karma-chrome-launcher": "~3.2.0", + "karma-coverage": "~2.2.0", + "karma-jasmine": "~5.1.0", + "karma-jasmine-html-reporter": "~2.1.0", + "typescript": "~5.X.X" +} +`; + exports[`new-workspace-create-application-false-project-then-ng-add it should pass linting when ng-add is run before adding a project 2`] = ` "{ \\"root\\": true, diff --git a/e2e/src/__snapshots__/new-workspace.test.ts.snap b/e2e/src/__snapshots__/new-workspace.test.ts.snap index 990a4e901..4738587f0 100644 --- a/e2e/src/__snapshots__/new-workspace.test.ts.snap +++ b/e2e/src/__snapshots__/new-workspace.test.ts.snap @@ -11,9 +11,9 @@ exports[`new-workspace it should pass linting after creating a new workspace fro "@angular/cli": "^18.X.X", "@angular/compiler-cli": "^18.X.X", "@types/jasmine": "~5.1.0", - "@typescript-eslint/eslint-plugin": "7.10.0", - "@typescript-eslint/parser": "7.10.0", - "eslint": "^8.57.0", + "@typescript-eslint/eslint-plugin": "8.0.0-alpha.16", + "@typescript-eslint/parser": "8.0.0-alpha.16", + "eslint": "^9.3.0", "jasmine-core": "~5.1.0", "karma": "~6.4.0", "karma-chrome-launcher": "~3.2.0", @@ -206,6 +206,49 @@ Linting \\"another-app\\"... All files pass linting. +Linting \\"another-lib\\"... + +All files pass linting. +" +`; + +exports[`new-workspace it should pass linting when adding a project before running ng-add -> with eslint v8 and typescript-eslint v7 1`] = ` +{ + "@angular-devkit/build-angular": "^18.X.X", + "@angular-eslint/builder": "0.0.0-e2e", + "@angular-eslint/eslint-plugin": "0.0.0-e2e", + "@angular-eslint/eslint-plugin-template": "0.0.0-e2e", + "@angular-eslint/schematics": "0.0.0-e2e", + "@angular-eslint/template-parser": "0.0.0-e2e", + "@angular/cli": "^18.X.X", + "@angular/compiler-cli": "^18.X.X", + "@types/jasmine": "~5.1.0", + "@typescript-eslint/eslint-plugin": "^7.10.0", + "@typescript-eslint/parser": "^7.10.0", + "eslint": "^8.57.0", + "jasmine-core": "~5.1.0", + "karma": "~6.4.0", + "karma-chrome-launcher": "~3.2.0", + "karma-coverage": "~2.2.0", + "karma-jasmine": "~5.1.0", + "karma-jasmine-html-reporter": "~2.1.0", + "ng-packagr": "^18.X.X", + "typescript": "~5.X.X" +} +`; + +exports[`new-workspace it should pass linting when adding a project before running ng-add -> with eslint v8 and typescript-eslint v7 2`] = ` +" +Linting \\"new-workspace\\"... + +All files pass linting. + + +Linting \\"another-app\\"... + +All files pass linting. + + Linting \\"another-lib\\"... All files pass linting. diff --git a/e2e/src/new-workspace-create-application-false-ng-add-then-project.test.ts b/e2e/src/new-workspace-create-application-false-ng-add-then-project.test.ts index 1bfac2abc..73e046090 100644 --- a/e2e/src/new-workspace-create-application-false-ng-add-then-project.test.ts +++ b/e2e/src/new-workspace-create-application-false-ng-add-then-project.test.ts @@ -1,3 +1,4 @@ +import { execSync } from 'node:child_process'; import path from 'node:path'; import { setWorkspaceRoot } from 'nx/src/utils/workspace-root'; import { FIXTURES_DIR, Fixture } from '../utils/fixtures'; @@ -19,7 +20,7 @@ let fixture: Fixture; describe('new-workspace-create-application-false-ng-add-then-project', () => { jest.setTimeout(LONG_TIMEOUT_MS); - beforeEach(async () => { + beforeAll(async () => { process.chdir(FIXTURES_DIR); await runNgNew(fixtureDirectory, false); @@ -60,4 +61,22 @@ describe('new-workspace-create-application-false-ng-add-then-project', () => { const lintOutput = await runLint(fixtureDirectory); expect(lintOutput).toMatchSnapshot(); }); + + it('it should pass linting when adding a project before running ng-add -> with eslint v8 and typescript-eslint v7', async () => { + // Downgrade eslint to v8 and typescript-eslint to v7 + execSync( + 'npm install eslint@8 @typescript-eslint/{eslint-plugin,parser}@7 --force', + { + stdio: 'inherit', + cwd: fixture.root, + }, + ); + + expect( + JSON.stringify(fixture.readJson('package.json').devDependencies, null, 2), + ).toMatchSnapshot(); + + const lintOutput = await runLint(fixtureDirectory); + expect(lintOutput).toMatchSnapshot(); + }); }); diff --git a/e2e/src/new-workspace-create-application-false-project-then-ng-add.test.ts b/e2e/src/new-workspace-create-application-false-project-then-ng-add.test.ts index 245dad99f..3994a83d6 100644 --- a/e2e/src/new-workspace-create-application-false-project-then-ng-add.test.ts +++ b/e2e/src/new-workspace-create-application-false-project-then-ng-add.test.ts @@ -1,3 +1,4 @@ +import { execSync } from 'node:child_process'; import path from 'node:path'; import { setWorkspaceRoot } from 'nx/src/utils/workspace-root'; import { FIXTURES_DIR, Fixture } from '../utils/fixtures'; @@ -19,7 +20,7 @@ let fixture: Fixture; describe('new-workspace-create-application-false-project-then-ng-add', () => { jest.setTimeout(LONG_TIMEOUT_MS); - beforeEach(async () => { + beforeAll(async () => { process.chdir(FIXTURES_DIR); await runNgNew(fixtureDirectory, false); @@ -60,4 +61,22 @@ describe('new-workspace-create-application-false-project-then-ng-add', () => { const lintOutput = await runLint(fixtureDirectory); expect(lintOutput).toMatchSnapshot(); }); + + it('it should pass linting when adding a project before running ng-add -> with eslint v8 and typescript-eslint v7', async () => { + // Downgrade eslint to v8 and typescript-eslint to v7 + execSync( + 'npm install eslint@8 @typescript-eslint/{eslint-plugin,parser}@7 --force', + { + stdio: 'inherit', + cwd: fixture.root, + }, + ); + + expect( + JSON.stringify(fixture.readJson('package.json').devDependencies, null, 2), + ).toMatchSnapshot(); + + const lintOutput = await runLint(fixtureDirectory); + expect(lintOutput).toMatchSnapshot(); + }); }); diff --git a/e2e/src/new-workspace.test.ts b/e2e/src/new-workspace.test.ts index 0b0d52074..5efcb0d50 100644 --- a/e2e/src/new-workspace.test.ts +++ b/e2e/src/new-workspace.test.ts @@ -1,3 +1,4 @@ +import { execSync } from 'node:child_process'; import path from 'node:path'; import { setWorkspaceRoot } from 'nx/src/utils/workspace-root'; import { FIXTURES_DIR, Fixture } from '../utils/fixtures'; @@ -18,7 +19,7 @@ let fixture: Fixture; describe('new-workspace', () => { jest.setTimeout(LONG_TIMEOUT_MS); - beforeEach(async () => { + beforeAll(async () => { process.chdir(FIXTURES_DIR); await runNgNew(fixtureDirectory); @@ -74,4 +75,22 @@ describe('new-workspace', () => { const lintOutput = await runLint(fixtureDirectory); expect(lintOutput).toMatchSnapshot(); }); + + it('it should pass linting when adding a project before running ng-add -> with eslint v8 and typescript-eslint v7', async () => { + // Downgrade eslint to v8 and typescript-eslint to v7 + execSync( + 'npm install eslint@8 @typescript-eslint/{eslint-plugin,parser}@7 --force', + { + stdio: 'inherit', + cwd: fixture.root, + }, + ); + + expect( + JSON.stringify(fixture.readJson('package.json').devDependencies, null, 2), + ).toMatchSnapshot(); + + const lintOutput = await runLint(fixtureDirectory); + expect(lintOutput).toMatchSnapshot(); + }); }); diff --git a/e2e/utils/fixtures.ts b/e2e/utils/fixtures.ts index 2c031ede6..d5031bac4 100644 --- a/e2e/utils/fixtures.ts +++ b/e2e/utils/fixtures.ts @@ -23,7 +23,7 @@ export async function recreateFixturesDir(): Promise { } export class Fixture { - constructor(private root: string) {} + constructor(public root: string) {} directoryExists(filePath: string): boolean { try { diff --git a/e2e/utils/start-and-publish-to-local-registry.ts b/e2e/utils/start-and-publish-to-local-registry.ts index 60a8b927c..0096a25bf 100644 --- a/e2e/utils/start-and-publish-to-local-registry.ts +++ b/e2e/utils/start-and-publish-to-local-registry.ts @@ -33,7 +33,8 @@ export default async () => { cwd: workspaceRoot, }); - execNx(['release', 'version', E2E_VERSION]); + // Do not stage the changed package.json files + execNx(['release', 'version', E2E_VERSION, '--stage-changes=false']); // startLocalRegistry automatically configures the registry to point at the local registry execNx(['release', 'publish', '--tag', 'e2e']); diff --git a/package.json b/package.json index 81efbda25..9a67b1fc6 100644 --- a/package.json +++ b/package.json @@ -56,13 +56,13 @@ "@angular/compiler": "18.0.0", "@commitlint/cli": "19.3.0", "@commitlint/config-conventional": "19.2.2", - "@nx/devkit": "19.0.6", - "@nx/eslint": "19.0.6", - "@nx/eslint-plugin": "19.0.6", - "@nx/jest": "19.0.6", - "@nx/js": "19.0.6", - "@nx/plugin": "19.0.6", - "@nx/workspace": "19.0.6", + "@nx/devkit": "19.1.0", + "@nx/eslint": "19.1.0", + "@nx/eslint-plugin": "19.1.0", + "@nx/jest": "19.1.0", + "@nx/js": "19.1.0", + "@nx/plugin": "19.1.0", + "@nx/workspace": "19.1.0", "@rollup/plugin-commonjs": "^25.0.0", "@rollup/plugin-node-resolve": "^15.0.2", "@rollup/plugin-typescript": "^11.1.0", @@ -76,12 +76,13 @@ "@types/jest": "29.4.4", "@types/node": "20.12.12", "@types/prettier": "2.7.3", - "@typescript-eslint/eslint-plugin": "7.10.0", - "@typescript-eslint/parser": "7.10.0", + "@typescript-eslint/eslint-plugin": "8.0.0-alpha.16", + "@typescript-eslint/parser": "8.0.0-alpha.16", + "@typescript-eslint/rule-tester": "8.0.0-alpha.16", "commitizen": "4.3.0", "cz-conventional-changelog": "3.3.0", "env-cmd": "10.1.0", - "eslint": "8.57.0", + "eslint": "9.3.0", "eslint-config-prettier": "9.1.0", "execa": "5.1.1", "husky": "9.0.11", @@ -91,7 +92,8 @@ "jsonc-eslint-parser": "^2.1.0", "lint-staged": "15.2.4", "ncp": "2.0.0", - "nx": "19.0.6", + "nx": "19.1.0", + "patch-package": "^8.0.0", "prettier": "3.1.1", "prettier-v2-for-jest-inline-snapshots": "npm:prettier@^2", "rimraf": "5.0.7", diff --git a/packages/bundled-angular-compiler/project.json b/packages/bundled-angular-compiler/project.json index 841e22f5f..b4304d82a 100644 --- a/packages/bundled-angular-compiler/project.json +++ b/packages/bundled-angular-compiler/project.json @@ -9,7 +9,11 @@ "options": { "cwd": "packages/bundled-angular-compiler", "parallel": false, - "commands": ["npx rimraf ./dist", "npx rollup -c"] + "commands": [ + "npx rimraf ./dist", + "npx rimraf ./.rollup.cache", + "npx rollup -c" + ] } } }, diff --git a/packages/eslint-plugin-template/package.json b/packages/eslint-plugin-template/package.json index 483b5c864..250bb0b69 100644 --- a/packages/eslint-plugin-template/package.json +++ b/packages/eslint-plugin-template/package.json @@ -20,8 +20,8 @@ "dependencies": { "@angular-eslint/bundled-angular-compiler": "17.5.1", "@angular-eslint/utils": "17.5.1", - "@typescript-eslint/type-utils": "7.10.0", - "@typescript-eslint/utils": "7.10.0", + "@typescript-eslint/type-utils": "8.0.0-alpha.16", + "@typescript-eslint/utils": "8.0.0-alpha.16", "aria-query": "5.3.0", "axobject-query": "4.0.0" }, @@ -29,7 +29,7 @@ "@types/aria-query": "5.0.4" }, "peerDependencies": { - "eslint": "^8.57.0|| ^9.0.0", + "eslint": "^8.57.0 || ^9.0.0", "typescript": "*" }, "gitHead": "e2006e5e9c99e5a943d1a999e0efa5247d29ec24" diff --git a/packages/eslint-plugin-template/src/utils/create-eslint-rule.ts b/packages/eslint-plugin-template/src/utils/create-eslint-rule.ts index 7e2988aac..0e2d72426 100644 --- a/packages/eslint-plugin-template/src/utils/create-eslint-rule.ts +++ b/packages/eslint-plugin-template/src/utils/create-eslint-rule.ts @@ -1,5 +1,9 @@ import { ESLintUtils } from '@typescript-eslint/utils'; +export interface RuleDocs { + recommended?: string; +} + /** * We need to patch the RuleCreator in order to preserve the defaultOptions * to use as part of documentation generation. @@ -26,7 +30,7 @@ const patchedRuleCreator: typeof ESLintUtils.RuleCreator = (urlCreator) => { patchedRuleCreator.withoutDocs = ESLintUtils.RuleCreator.withoutDocs; -export const createESLintRule = patchedRuleCreator( +export const createESLintRule = patchedRuleCreator( (ruleName) => `https://github.com/angular-eslint/angular-eslint/blob/main/packages/eslint-plugin-template/docs/rules/${ruleName}.md`, ); diff --git a/packages/eslint-plugin-template/tests/rules/no-interpolation-in-attributes/cases.ts b/packages/eslint-plugin-template/tests/rules/no-interpolation-in-attributes/cases.ts index ef7fb7c73..edfa0170a 100644 --- a/packages/eslint-plugin-template/tests/rules/no-interpolation-in-attributes/cases.ts +++ b/packages/eslint-plugin-template/tests/rules/no-interpolation-in-attributes/cases.ts @@ -19,10 +19,6 @@ export const invalid = [ ~~~~~~~~~ `, messageId, - annotatedOutput: ` - - ~~~~~~~~~ - `, }), convertAnnotatedSourceToFailureCase({ description: @@ -32,9 +28,5 @@ export const invalid = [ ~~~~~~~~~~~~ `, messageId, - annotatedOutput: ` - - ~~~~~~~~~~~~ - `, }), ]; diff --git a/packages/eslint-plugin/package.json b/packages/eslint-plugin/package.json index 94d4e31ca..aa3faa501 100644 --- a/packages/eslint-plugin/package.json +++ b/packages/eslint-plugin/package.json @@ -20,7 +20,7 @@ "dependencies": { "@angular-eslint/bundled-angular-compiler": "17.5.1", "@angular-eslint/utils": "17.5.1", - "@typescript-eslint/utils": "7.10.0" + "@typescript-eslint/utils": "8.0.0-alpha.16" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0", diff --git a/packages/eslint-plugin/src/utils/create-eslint-rule.ts b/packages/eslint-plugin/src/utils/create-eslint-rule.ts index 78defdf15..9b10a7529 100644 --- a/packages/eslint-plugin/src/utils/create-eslint-rule.ts +++ b/packages/eslint-plugin/src/utils/create-eslint-rule.ts @@ -1,5 +1,9 @@ import { ESLintUtils } from '@typescript-eslint/utils'; +export interface RuleDocs { + recommended?: string; +} + /** * We need to patch the RuleCreator in order to preserve the defaultOptions * to use as part of documentation generation. @@ -26,7 +30,7 @@ const patchedRuleCreator: typeof ESLintUtils.RuleCreator = (urlCreator) => { patchedRuleCreator.withoutDocs = ESLintUtils.RuleCreator.withoutDocs; -export const createESLintRule = patchedRuleCreator( +export const createESLintRule = patchedRuleCreator( (ruleName) => `https://github.com/angular-eslint/angular-eslint/blob/main/packages/eslint-plugin/docs/rules/${ruleName}.md`, ); diff --git a/packages/eslint-plugin/tests/rules/sort-ngmodule-metadata-arrays/cases.ts b/packages/eslint-plugin/tests/rules/sort-ngmodule-metadata-arrays/cases.ts index ca8049b3a..8729a4f31 100644 --- a/packages/eslint-plugin/tests/rules/sort-ngmodule-metadata-arrays/cases.ts +++ b/packages/eslint-plugin/tests/rules/sort-ngmodule-metadata-arrays/cases.ts @@ -177,7 +177,9 @@ export const invalid = [ class Test {} `, messageId, - annotatedOutput: ` + // These are the result of each pass of the auto-fixer, with the final entry being the ultimate result the user sees + annotatedOutputs: [ + ` @NgModule({ [\`bootstrap\`]: [ AppModule2, @@ -188,6 +190,18 @@ export const invalid = [ }) class Test {} `, + ` + @NgModule({ + [\`bootstrap\`]: [ + AppModule1, + AppModule2, + AppModule3, + + ] + }) + class Test {} + `, + ], }), convertAnnotatedSourceToFailureCase({ description: 'should fail if `schemas` metadata arrays is not sorted ASC', diff --git a/packages/eslint-plugin/tests/rules/use-lifecycle-interface/cases.ts b/packages/eslint-plugin/tests/rules/use-lifecycle-interface/cases.ts index fdbe74db9..6a77bf645 100644 --- a/packages/eslint-plugin/tests/rules/use-lifecycle-interface/cases.ts +++ b/packages/eslint-plugin/tests/rules/use-lifecycle-interface/cases.ts @@ -141,8 +141,9 @@ export const invalid = [ }, }, ], - // NOTE: Only one case will be auto-fixed in the output because RuleTester executes once: https://github.com/eslint/eslint/issues/11187 - annotatedOutput: `import { DoBootstrap } from '@angular/core'; + // These are the result of each pass of the auto-fixer, with the final entry being the ultimate result the user sees + annotatedOutputs: [ + `import { DoBootstrap } from '@angular/core'; @Injectable() class Test implements DoBootstrap { @@ -156,6 +157,35 @@ export const invalid = [ } `, + `import { DoBootstrap, OnInit } from '@angular/core'; + + @Injectable() + class Test implements DoBootstrap, OnInit { + ngDoBootstrap() {} + + + ngOnInit() {} + + + ngOnDestroy() {} + + } + `, + `import { DoBootstrap, OnInit, OnDestroy } from '@angular/core'; + + @Injectable() + class Test implements DoBootstrap, OnInit, OnDestroy { + ngDoBootstrap() {} + + + ngOnInit() {} + + + ngOnDestroy() {} + + } + `, + ], }), convertAnnotatedSourceToFailureCase({ description: diff --git a/packages/schematics/package.json b/packages/schematics/package.json index 6dfab77f8..abae81f17 100644 --- a/packages/schematics/package.json +++ b/packages/schematics/package.json @@ -44,8 +44,8 @@ }, "devDependencies": { "@types/tmp": "0.2.6", - "@typescript-eslint/utils": "7.10.0", - "eslint": "8.57.0" + "@typescript-eslint/utils": "8.0.0-alpha.16", + "eslint": "9.3.0" }, "peerDependencies": { "@angular/cli": ">= 18.0.0 < 19.0.0" diff --git a/packages/utils/package.json b/packages/utils/package.json index fa0d91e00..7b84a17b3 100644 --- a/packages/utils/package.json +++ b/packages/utils/package.json @@ -22,7 +22,7 @@ }, "dependencies": { "@angular-eslint/bundled-angular-compiler": "17.5.1", - "@typescript-eslint/utils": "7.10.0" + "@typescript-eslint/utils": "8.0.0-alpha.16" }, "gitHead": "e2006e5e9c99e5a943d1a999e0efa5247d29ec24" } diff --git a/packages/utils/src/convert-annotated-source-to-failure-case.ts b/packages/utils/src/convert-annotated-source-to-failure-case.ts index c6a491731..f8f2ac663 100644 --- a/packages/utils/src/convert-annotated-source-to-failure-case.ts +++ b/packages/utils/src/convert-annotated-source-to-failure-case.ts @@ -31,6 +31,7 @@ type BaseErrorOptions = { readonly annotatedSource: string; readonly options?: readonly unknown[]; readonly annotatedOutput?: string; + readonly annotatedOutputs?: readonly string[]; readonly filename?: string; readonly only?: boolean; }; @@ -82,6 +83,12 @@ export function convertAnnotatedSourceToFailureCase( | SingleErrorOptions | MultipleErrorOptions, ): TSESLint.InvalidTestCase { + if (errorOptions.annotatedOutput && errorOptions.annotatedOutputs) { + throw new Error( + 'Only one of `annotatedOutput` and `annotatedOutputs` should be provided', + ); + } + const messages: MultipleErrorOptions['messages'] = 'messageId' in errorOptions ? [{ ...errorOptions, char: '~' }] @@ -127,9 +134,11 @@ export function convertAnnotatedSourceToFailureCase( options: errorOptions.options ?? [], errors, only: errorOptions.only ?? false, - output: errorOptions.annotatedOutput - ? parseInvalidSource(errorOptions.annotatedOutput).source - : null, + output: errorOptions.annotatedOutputs + ? errorOptions.annotatedOutputs.map((s) => parseInvalidSource(s).source) + : errorOptions.annotatedOutput + ? parseInvalidSource(errorOptions.annotatedOutput).source + : null, }; } diff --git a/packages/utils/src/index.ts b/packages/utils/src/index.ts index 43025487f..16847a076 100644 --- a/packages/utils/src/index.ts +++ b/packages/utils/src/index.ts @@ -1,5 +1,5 @@ export * from './convert-annotated-source-to-failure-case'; -export * from './rules-tester'; +export * from './rule-tester'; export { toHumanReadableText, diff --git a/packages/utils/src/rules-tester.ts b/packages/utils/src/rule-tester.ts similarity index 93% rename from packages/utils/src/rules-tester.ts rename to packages/utils/src/rule-tester.ts index 48fa3c570..c3a88aabc 100644 --- a/packages/utils/src/rules-tester.ts +++ b/packages/utils/src/rule-tester.ts @@ -1,4 +1,5 @@ -import { TSESLint } from '@typescript-eslint/utils'; +import { RuleTester as TSESLintRuleTester } from '@typescript-eslint/rule-tester'; +import type { TSESLint } from '@typescript-eslint/utils'; import * as path from 'path'; const VALID_PARSERS = [ @@ -20,7 +21,7 @@ function isValidParser( return VALID_PARSERS.includes(parser as (typeof VALID_PARSERS)[number]); } -export class RuleTester extends TSESLint.RuleTester { +export class RuleTester extends TSESLintRuleTester { private filename?: string = ''; // as of eslint 6 you have to provide an absolute path to the parser diff --git a/tools/patches/@typescript-eslint+rule-tester+8.0.0-alpha.16.patch b/tools/patches/@typescript-eslint+rule-tester+8.0.0-alpha.16.patch new file mode 100644 index 000000000..46818177b --- /dev/null +++ b/tools/patches/@typescript-eslint+rule-tester+8.0.0-alpha.16.patch @@ -0,0 +1,14 @@ +diff --git a/node_modules/@typescript-eslint/rule-tester/dist/RuleTester.js b/node_modules/@typescript-eslint/rule-tester/dist/RuleTester.js +index da81129..2e0c631 100644 +--- a/node_modules/@typescript-eslint/rule-tester/dist/RuleTester.js ++++ b/node_modules/@typescript-eslint/rule-tester/dist/RuleTester.js +@@ -598,7 +598,8 @@ _RuleTester_testerConfig = new WeakMap(), _RuleTester_rules = new WeakMap(), _Ru + (0, node_assert_1.default)(false, `Invalid messageId '${error.messageId}'. Expected one of ${friendlyIDList}.`); + } + node_assert_1.default.strictEqual(message.messageId, error.messageId, `messageId '${message.messageId}' does not match expected messageId '${error.messageId}'.`); +- const unsubstitutedPlaceholders = getUnsubstitutedMessagePlaceholders(message.message, rule.meta.messages[message.messageId], error.data); ++ const unsubstitutedPlaceholders = getUnsubstitutedMessagePlaceholders(message.message, rule.meta.messages[message.messageId], error.data) ++ .filter(name => name !== 'value'); + node_assert_1.default.ok(unsubstitutedPlaceholders.length === 0, `The reported message has ${unsubstitutedPlaceholders.length > 1 ? `unsubstituted placeholders: ${unsubstitutedPlaceholders.map(name => `'${name}'`).join(', ')}` : `an unsubstituted placeholder '${unsubstitutedPlaceholders[0]}'`}. Please provide the missing ${unsubstitutedPlaceholders.length > 1 ? 'values' : 'value'} via the 'data' property in the context.report() call.`); + if ((0, hasOwnProperty_1.hasOwnProperty)(error, 'data')) { + /* diff --git a/tools/scripts/postinstall.sh b/tools/scripts/postinstall.sh index dd9a8fa35..b4a6f898a 100755 --- a/tools/scripts/postinstall.sh +++ b/tools/scripts/postinstall.sh @@ -7,6 +7,9 @@ if [ -n "$SKIP_POSTINSTALL" ]; then exit 0 fi +# Apply patches +yarn patch-package --patch-dir ./tools/patches + # Build all the packages ready for use yarn build diff --git a/yarn.lock b/yarn.lock index 1579ff75d..9322e179d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1436,21 +1436,6 @@ resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.10.0.tgz#548f6de556857c8bb73bbee70c35dc82a2e74d63" integrity sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA== -"@eslint/eslintrc@^2.1.4": - version "2.1.4" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.4.tgz#388a269f0f25c1b6adc317b5a2c55714894c70ad" - integrity sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ== - dependencies: - ajv "^6.12.4" - debug "^4.3.2" - espree "^9.6.0" - globals "^13.19.0" - ignore "^5.2.0" - import-fresh "^3.2.1" - js-yaml "^4.1.0" - minimatch "^3.1.2" - strip-json-comments "^3.1.1" - "@eslint/eslintrc@^3.1.0": version "3.1.0" resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-3.1.0.tgz#dbd3482bfd91efa663cbe7aa1f506839868207b6" @@ -1466,11 +1451,6 @@ minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@eslint/js@8.57.0": - version "8.57.0" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.57.0.tgz#a5417ae8427873f1dd08b70b3574b453e67b5f7f" - integrity sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g== - "@eslint/js@9.3.0": version "9.3.0" resolved "https://registry.yarnpkg.com/@eslint/js/-/js-9.3.0.tgz#2e8f65c9c55227abc4845b1513c69c32c679d8fe" @@ -1481,15 +1461,6 @@ resolved "https://registry.yarnpkg.com/@fastify/busboy/-/busboy-2.1.1.tgz#b9da6a878a371829a0502c9b6c1c143ef6663f4d" integrity sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA== -"@humanwhocodes/config-array@^0.11.14": - version "0.11.14" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.14.tgz#d78e481a039f7566ecc9660b4ea7fe6b1fec442b" - integrity sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg== - dependencies: - "@humanwhocodes/object-schema" "^2.0.2" - debug "^4.3.1" - minimatch "^3.0.5" - "@humanwhocodes/config-array@^0.13.0": version "0.13.0" resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.13.0.tgz#fb907624df3256d04b9aa2df50d7aa97ec648748" @@ -1504,7 +1475,7 @@ resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== -"@humanwhocodes/object-schema@^2.0.2", "@humanwhocodes/object-schema@^2.0.3": +"@humanwhocodes/object-schema@^2.0.3": version "2.0.3" resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz#4a2868d75d6d6963e423bcf90b7fd1be343409d3" integrity sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA== @@ -1915,33 +1886,40 @@ dependencies: "@nx/devkit" "19.0.6" -"@nrwl/eslint-plugin-nx@19.0.6": - version "19.0.6" - resolved "https://registry.yarnpkg.com/@nrwl/eslint-plugin-nx/-/eslint-plugin-nx-19.0.6.tgz#b774823174a0d64ab4112ea8823c213454fe0e07" - integrity sha512-0qbpF4YS+aH2pomeipx+dBvC0npZtzv8oV5S9ALwhCiBaJwKLZBm9a0JTnJU3O3yY28V/XqPMTqSThNEwutZgA== +"@nrwl/devkit@19.1.0": + version "19.1.0" + resolved "https://registry.yarnpkg.com/@nrwl/devkit/-/devkit-19.1.0.tgz#5a3277f868f6329bc2766b7c42d118f76c6ea5af" + integrity sha512-n4YxtAMSdlXAmwcSKcLEX48kpcPGI/sX7lCfDeoSnTKud8Y1tlNeD8rf0YZV3ae+srE6j4lxfoJrRCpWweMcEQ== dependencies: - "@nx/eslint-plugin" "19.0.6" + "@nx/devkit" "19.1.0" -"@nrwl/jest@19.0.6": - version "19.0.6" - resolved "https://registry.yarnpkg.com/@nrwl/jest/-/jest-19.0.6.tgz#8ef72ce0ed285b9975f378b0ac71de9d097b6889" - integrity sha512-R0PxbOFtnLsEh8Ro1Z1Y6UTd9Pt0zxaew6yIRwBMAOaxRB+2zWgfR9Ol8RHxQBZvpvAtY77ZbapRnzscRnOJCw== +"@nrwl/eslint-plugin-nx@19.1.0": + version "19.1.0" + resolved "https://registry.yarnpkg.com/@nrwl/eslint-plugin-nx/-/eslint-plugin-nx-19.1.0.tgz#69dd9e8352bc84dbb1741b81d7cbcffe46e62964" + integrity sha512-ZH34DlUoWD7p9aDVu3Uor/+jROqEfBGI+XIzBLDLjnmHkobsFwmvjbvDqvFeTMM3qvVJih1GfezbVRAhh2f4ZA== dependencies: - "@nx/jest" "19.0.6" + "@nx/eslint-plugin" "19.1.0" -"@nrwl/js@19.0.6": - version "19.0.6" - resolved "https://registry.yarnpkg.com/@nrwl/js/-/js-19.0.6.tgz#5d9b597b54599531b6f99622265d6fa9e4cba380" - integrity sha512-+LH5g22qhfXGv6R4HAjZdnsed7cFigbLbJMHk9oUT3nO4Ct3/RQvb1LZgWcCB03QQj82J0Hlke3mMu3eZoB+Ug== +"@nrwl/jest@19.1.0": + version "19.1.0" + resolved "https://registry.yarnpkg.com/@nrwl/jest/-/jest-19.1.0.tgz#fe790f9ceb784198de07bd0d0d1e34e05622eeb8" + integrity sha512-UZzpxvmF411xlvYF0lNOddLn0ZSCmqF4sn21W3touPEvQZglszUFR5BKnuk/A2Me86wpKOiJUMeNp8GpL6pGUQ== dependencies: - "@nx/js" "19.0.6" + "@nx/jest" "19.1.0" -"@nrwl/nx-plugin@19.0.6": - version "19.0.6" - resolved "https://registry.yarnpkg.com/@nrwl/nx-plugin/-/nx-plugin-19.0.6.tgz#570f9f6bc4062ce1a21b4f1f03da33a44171eca1" - integrity sha512-88wNqKJ28NLICNMapiRh8/goLLeX90DUKFSG0QDnwjzc9BcE3VIXRPYE3PnQccDIjpD7bUzKVxHQcjKgxR+gOg== +"@nrwl/js@19.1.0": + version "19.1.0" + resolved "https://registry.yarnpkg.com/@nrwl/js/-/js-19.1.0.tgz#58bf19aeccf352c520f5409484d416915868439b" + integrity sha512-bzjHWDwOpQ/Xju6Kei4MFOJvsO6zhoHE94IRKJobj2yLewy0P2gStyp05XOE/bMpY4GJ6ggthINkaxgl6ae0DA== dependencies: - "@nx/plugin" "19.0.6" + "@nx/js" "19.1.0" + +"@nrwl/nx-plugin@19.1.0": + version "19.1.0" + resolved "https://registry.yarnpkg.com/@nrwl/nx-plugin/-/nx-plugin-19.1.0.tgz#35339b54f3cbbba42897ba52775b73ba82b121ed" + integrity sha512-Z20AFAGau60x8QGXabdQbNYG1KkiuyaozazZ2XappEkyThkURC0DvImp7Hxh8Kn9Jr7m3diNSE8vqFrOmhDuQA== + dependencies: + "@nx/plugin" "19.1.0" "@nrwl/tao@19.0.6": version "19.0.6" @@ -1951,12 +1929,20 @@ nx "19.0.6" tslib "^2.3.0" -"@nrwl/workspace@19.0.6": - version "19.0.6" - resolved "https://registry.yarnpkg.com/@nrwl/workspace/-/workspace-19.0.6.tgz#7f7b2b1fee0713b39ec0b38be1b0c8fbfa46773b" - integrity sha512-ONwdpDBsieL0aa7aDVh5q/3+tFtkKbDtCt+p4ri0EQZHylfPIxMZg0UYDknAxbFX1loWuKg4tRESy3E3hCMllg== +"@nrwl/tao@19.1.0": + version "19.1.0" + resolved "https://registry.yarnpkg.com/@nrwl/tao/-/tao-19.1.0.tgz#5bcfadda866b42f87998b1745c053a9991339003" + integrity sha512-Mayqkuh2EXkac5prri5fQFd19RBRxBQRjVwTcezk7yTKWI7V+bJzbgZANybtcKGsPCH34cpqrlV4inVwtyaVzw== + dependencies: + nx "19.1.0" + tslib "^2.3.0" + +"@nrwl/workspace@19.1.0": + version "19.1.0" + resolved "https://registry.yarnpkg.com/@nrwl/workspace/-/workspace-19.1.0.tgz#4c7c1414cd854906b26c75d2e00e7f04962e9ff6" + integrity sha512-NSscB84tRn0VRmqZ3W8Zn+tnowCrF0TNCNq8cTFLRqzmg8/kyKrJMEMJmUwPPR9F1u66ciYkbGPbGwGVlEGQSw== dependencies: - "@nx/workspace" "19.0.6" + "@nx/workspace" "19.1.0" "@nx/devkit@19.0.6", "@nx/devkit@^19.0.6": version "19.0.6" @@ -1973,14 +1959,29 @@ tslib "^2.3.0" yargs-parser "21.1.1" -"@nx/eslint-plugin@19.0.6": - version "19.0.6" - resolved "https://registry.yarnpkg.com/@nx/eslint-plugin/-/eslint-plugin-19.0.6.tgz#cc11a2fb8ee72bf819b5dcc0c0aa6ac4ab7571fc" - integrity sha512-G2DO6YvLXCyWC2Mg5vpbrFBH+rHljdE9bU866TowIRXZRSPv5NzCqf/7E15ecct6MKImlz6fziiTcP0wMl+hPA== +"@nx/devkit@19.1.0": + version "19.1.0" + resolved "https://registry.yarnpkg.com/@nx/devkit/-/devkit-19.1.0.tgz#32b02aed9105a69af89c35d50194912d493612a9" + integrity sha512-jn8uNgavpRhYZ1u63YFNWc2lEoAr3YA7bvPK9yaBmV++tFj+Ig+eFKkQxRou4tvOUnIyVPrs/fmi/TBLVQcpQg== dependencies: - "@nrwl/eslint-plugin-nx" "19.0.6" - "@nx/devkit" "19.0.6" - "@nx/js" "19.0.6" + "@nrwl/devkit" "19.1.0" + 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/eslint-plugin@19.1.0": + version "19.1.0" + resolved "https://registry.yarnpkg.com/@nx/eslint-plugin/-/eslint-plugin-19.1.0.tgz#64dcda8ba7c91fde0fb4db0a3b0cc7197b1e9795" + integrity sha512-lLWJvBCvpREBFIxNWk+d1Xfoe0RqH2+v6fkZB/pk/n/q9mHPvSE7JwFMxIw+QrIguAxKhAHGqDskTRH4llzz6w== + dependencies: + "@nrwl/eslint-plugin-nx" "19.1.0" + "@nx/devkit" "19.1.0" + "@nx/js" "19.1.0" "@typescript-eslint/type-utils" "^7.3.0" "@typescript-eslint/utils" "^7.3.0" chalk "^4.1.0" @@ -1989,28 +1990,28 @@ semver "^7.5.3" tslib "^2.3.0" -"@nx/eslint@19.0.6": - version "19.0.6" - resolved "https://registry.yarnpkg.com/@nx/eslint/-/eslint-19.0.6.tgz#376c2edf014f7e5953edd005672005811a13241f" - integrity sha512-zjeiF3RetmSUNxtZgW/joEK+khG47G/chYnP1DfatlUBMLURz4hwIOYTasl7oyns9rggHwNvYFeM9FyaV+GyyQ== +"@nx/eslint@19.1.0": + version "19.1.0" + resolved "https://registry.yarnpkg.com/@nx/eslint/-/eslint-19.1.0.tgz#f16bd877cb6c925298eca4ff8ed4d14b17fd53cd" + integrity sha512-UIeNUyUw9Dq21dXP+0vXplOtowgcWET7WnOLP9p4FD9LVMAS0mlR8noVwHjo6V9YgGhGisfzr/DFlJB7xqEDEw== dependencies: - "@nx/devkit" "19.0.6" - "@nx/js" "19.0.6" - "@nx/linter" "19.0.6" - eslint "^8.0.0 || ^9.0.0" + "@nx/devkit" "19.1.0" + "@nx/js" "19.1.0" + "@nx/linter" "19.1.0" + semver "^7.5.3" tslib "^2.3.0" typescript "~5.4.2" -"@nx/jest@19.0.6": - version "19.0.6" - resolved "https://registry.yarnpkg.com/@nx/jest/-/jest-19.0.6.tgz#c8f5f919aeabf30acc3248f557a575174d2fc800" - integrity sha512-uwK/ifClXNyp0PmKFkNNEamUWDFZKVdvQC26Gkpz+9iBJMEeszdBp2eoQxwIjfBYufZwGSkWjM7x3dedeykorg== +"@nx/jest@19.1.0": + version "19.1.0" + resolved "https://registry.yarnpkg.com/@nx/jest/-/jest-19.1.0.tgz#43f87112733cee016170eca9ec6f3a976eea8c65" + integrity sha512-US8oW/ZvRnVE47kTqGveuCd8A4z66qNOCcFAvtDuzHDPXn7BOOf7ZIPsAheSyIUIkzu2xr4Efb6YsuFub9p9fQ== dependencies: "@jest/reporters" "^29.4.1" "@jest/test-result" "^29.4.1" - "@nrwl/jest" "19.0.6" - "@nx/devkit" "19.0.6" - "@nx/js" "19.0.6" + "@nrwl/jest" "19.1.0" + "@nx/devkit" "19.1.0" + "@nx/js" "19.1.0" "@phenomnomnominal/tsquery" "~5.0.1" chalk "^4.1.0" identity-obj-proxy "3.0.0" @@ -2022,10 +2023,10 @@ tslib "^2.3.0" yargs-parser "21.1.1" -"@nx/js@19.0.6": - version "19.0.6" - resolved "https://registry.yarnpkg.com/@nx/js/-/js-19.0.6.tgz#f7a1eeb226e5a565fd54da200ef3334768caba62" - integrity sha512-QY79pW+43/h2qm85EI/kkVMfLr4q3nICp2ObJuIb0wTvIaViGP0lXi6E0yqk5UafYoT1sXwKwhaLyEyxnSOulw== +"@nx/js@19.1.0": + version "19.1.0" + resolved "https://registry.yarnpkg.com/@nx/js/-/js-19.1.0.tgz#ac69d1295b60d8fa68c7e05b0458329b35abd1ff" + integrity sha512-szEmGGMYMsl57LVe80V9ZAp8BIo41cQf11DGe72J2tHXVi2H7+hGN6VA0dqGWxfffbpHJyIDy/NXpB4Y0z1vPw== dependencies: "@babel/core" "^7.23.2" "@babel/plugin-proposal-decorators" "^7.22.7" @@ -2034,9 +2035,9 @@ "@babel/preset-env" "^7.23.2" "@babel/preset-typescript" "^7.22.5" "@babel/runtime" "^7.22.6" - "@nrwl/js" "19.0.6" - "@nx/devkit" "19.0.6" - "@nx/workspace" "19.0.6" + "@nrwl/js" "19.1.0" + "@nx/devkit" "19.1.0" + "@nx/workspace" "19.1.0" babel-plugin-const-enum "^1.0.1" babel-plugin-macros "^2.8.0" babel-plugin-transform-typescript-metadata "^0.3.1" @@ -2057,86 +2058,136 @@ tsconfig-paths "^4.1.2" tslib "^2.3.0" -"@nx/linter@19.0.6": - version "19.0.6" - resolved "https://registry.yarnpkg.com/@nx/linter/-/linter-19.0.6.tgz#47d0d0c7139bf2c28b272e948f1ebccebf7123e5" - integrity sha512-u/5cFx2/aUsZ1pLj0JZ+P1OEV4yVIYOlBQ1sBzfWuZOUtMgKnH6575LP/3Eces9lT/u2O+6TGfkZl3CIVe+0QQ== +"@nx/linter@19.1.0": + version "19.1.0" + resolved "https://registry.yarnpkg.com/@nx/linter/-/linter-19.1.0.tgz#bbccd264cafdb132177319c9877135a6a18d3207" + integrity sha512-se8akeKL7AHimBdE3ucVtWFi6fWwe8u0wkN6TOzS0IUDVS6JoCRwbbIhPy9yQYFtUokBxg/h/aVthwGwMMNWgw== dependencies: - "@nx/eslint" "19.0.6" + "@nx/eslint" "19.1.0" "@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-arm64@19.1.0": + version "19.1.0" + resolved "https://registry.yarnpkg.com/@nx/nx-darwin-arm64/-/nx-darwin-arm64-19.1.0.tgz#12ffea944e606fc885ea6c2f3e5713d7a1e05d27" + integrity sha512-qUPZmVusnYrgqwhIYKBbabB1RpVQZiTcKfBdW1XiBTk+dXOuIVyWVCsg2ohoBJpHJiENYjtCprxR3RWPaxFs5Q== + "@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-darwin-x64@19.1.0": + version "19.1.0" + resolved "https://registry.yarnpkg.com/@nx/nx-darwin-x64/-/nx-darwin-x64-19.1.0.tgz#cf041f7ff56cf713fbf7b409d194be9ec2318b83" + integrity sha512-0Gf45EQTq8Q9/inGDzX5SqNY4jXDtqqVsz6wAJ07M9CeyjwDIXOzPe36uoMUhcvXQMbMp3QUH2E/X9poxOOubg== + "@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-freebsd-x64@19.1.0": + version "19.1.0" + resolved "https://registry.yarnpkg.com/@nx/nx-freebsd-x64/-/nx-freebsd-x64-19.1.0.tgz#82805f555d17b971e69e2a0d085ebe8edbef337b" + integrity sha512-bw3sKpXy1R17OTStOkeRUE4EkPsvXjAEp26qmKX3G7a7bCVjH7cn+UXdgF8jsEyyiqb8WY1LG63abIlbyfecIA== + "@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-arm-gnueabihf@19.1.0": + version "19.1.0" + resolved "https://registry.yarnpkg.com/@nx/nx-linux-arm-gnueabihf/-/nx-linux-arm-gnueabihf-19.1.0.tgz#2d29583f555c6978890858a7426fba4c7881206e" + integrity sha512-jJzkPWptqFnl7Q7clTMGvI6OT1x8Jw7JHLCi6JgKBqb2ieF4vUCUsLHkrfS/95l9hCUeIHeBrfHJxEXLZIhOgQ== + "@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-gnu@19.1.0": + version "19.1.0" + resolved "https://registry.yarnpkg.com/@nx/nx-linux-arm64-gnu/-/nx-linux-arm64-gnu-19.1.0.tgz#61762282aad137951445524a279e7e2fe3705dac" + integrity sha512-zycD7+PbVStbjlPsxE3G+bdwFDzXE7LKWtQOrGLvBxG99pXbTr+Oq1GtqL68p2Jp4MEYjIO5qdxWdNt9bBsSwA== + "@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-arm64-musl@19.1.0": + version "19.1.0" + resolved "https://registry.yarnpkg.com/@nx/nx-linux-arm64-musl/-/nx-linux-arm64-musl-19.1.0.tgz#72cdabbbba64a98c88e0097484b54c467aae626a" + integrity sha512-NBUUbj/3NXHrqgkoLdMTnd8e9qduRVcSoGqpYDha0HBFc+Fspacw5+U26LjnmIuk/BT4yMtMrgFKU29Rq1a56w== + "@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-gnu@19.1.0": + version "19.1.0" + resolved "https://registry.yarnpkg.com/@nx/nx-linux-x64-gnu/-/nx-linux-x64-gnu-19.1.0.tgz#836cec2456c0578b2ae25d1f4adb67c2c2e07ccf" + integrity sha512-jaPrd1VIdz/dqcjEKUJ5BnU+ONSZmG1G/g1HrNb+SIl3Ztputrwz8yJ7CwpUryRo+xSwWhZXIiNJ5r7z09kaKw== + "@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-linux-x64-musl@19.1.0": + version "19.1.0" + resolved "https://registry.yarnpkg.com/@nx/nx-linux-x64-musl/-/nx-linux-x64-musl-19.1.0.tgz#dd0a6188e48ce9bfc9170c74f73f413c96519d44" + integrity sha512-gj3Bq81s1NWzjtWteyTgczbbd2yq6xmic4H3PGFZkA5THjFAD/MiYiS9b5oQVzPWONyFgtk+gsTWVbiM7dOhew== + "@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-arm64-msvc@19.1.0": + version "19.1.0" + resolved "https://registry.yarnpkg.com/@nx/nx-win32-arm64-msvc/-/nx-win32-arm64-msvc-19.1.0.tgz#8e0e642ebf8299c2be0460eeaf33e61e0b02ef8e" + integrity sha512-PIGy+uu8dzhWodIHXC0jbPtYcpi95NdtkghD1yZ32jcoVzAcHOohM07tTMHXbl7WyLqXw+De0XkmZadMJoVNAg== + "@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" integrity sha512-BGNAXvNvxzNqqjHb0Kba5m27Z6xYdMqnPGusAx3GYfEGzSe+K06yMQpTUxjQ4oKAQQrVJYq9Eyyf3lWrqmyeCg== -"@nx/plugin@19.0.6": - version "19.0.6" - resolved "https://registry.yarnpkg.com/@nx/plugin/-/plugin-19.0.6.tgz#111914fdab3910c8af55afb3fe6ec698605d0e06" - integrity sha512-+U+teb6GjYtS9ECifaU6FzJKNahwIPzpeKDTkcJnLLOgFupdFnpOgyux6k3qTeyLxKJFcNemLAN9x0YJnw/XIA== - dependencies: - "@nrwl/nx-plugin" "19.0.6" - "@nx/devkit" "19.0.6" - "@nx/eslint" "19.0.6" - "@nx/jest" "19.0.6" - "@nx/js" "19.0.6" +"@nx/nx-win32-x64-msvc@19.1.0": + version "19.1.0" + resolved "https://registry.yarnpkg.com/@nx/nx-win32-x64-msvc/-/nx-win32-x64-msvc-19.1.0.tgz#83a1e0af8977adfbf0244999690cf20d8df32a42" + integrity sha512-aTbwZLIpViWgMZqyDl+2fyO5LJjtz0J4a0+0qPpEW46BAZ/kcEuE7Xv33Yoob+KorLr27n6BpzTs+7Wg4dXXFw== + +"@nx/plugin@19.1.0": + version "19.1.0" + resolved "https://registry.yarnpkg.com/@nx/plugin/-/plugin-19.1.0.tgz#5a5a8ba43ae6e5c1fb602e414ff194639d31d7f7" + integrity sha512-nsPEPsAAa6vg4zzhN1RFLe1ndS+lgtAexk0x3bgIscm8JBIu2vfqXhJeboYgNHisKt6FJWSWYLNbOTGgS9Gxxg== + dependencies: + "@nrwl/nx-plugin" "19.1.0" + "@nx/devkit" "19.1.0" + "@nx/eslint" "19.1.0" + "@nx/jest" "19.1.0" + "@nx/js" "19.1.0" fs-extra "^11.1.0" tslib "^2.3.0" -"@nx/workspace@19.0.6": - version "19.0.6" - resolved "https://registry.yarnpkg.com/@nx/workspace/-/workspace-19.0.6.tgz#c20cca194aadac1307c60641f41d363decf2ac5c" - integrity sha512-Sw0g3YQN4JQa6OFb5e76/pf/iqdXzoyDAIH/bsAJ8FvY3aopnwr8GGn4TJstChpja9MTFb5OYStuqhdCtoh7/A== +"@nx/workspace@19.1.0": + version "19.1.0" + resolved "https://registry.yarnpkg.com/@nx/workspace/-/workspace-19.1.0.tgz#40c5f6551812291b84ae3feed222c583e90d8c5d" + integrity sha512-1W+zwRP4Uma0Ui0Za8qcd0rAt4InaLZ3yfAN66MaqQlyIPMsJDSqLBAVKEJfn4wS7zgoeeIwmQoXi6ACLKqZZA== dependencies: - "@nrwl/workspace" "19.0.6" - "@nx/devkit" "19.0.6" + "@nrwl/workspace" "19.1.0" + "@nx/devkit" "19.1.0" chalk "^4.1.0" enquirer "~2.3.6" - nx "19.0.6" + nx "19.1.0" tslib "^2.3.0" yargs-parser "21.1.1" @@ -2800,32 +2851,43 @@ dependencies: "@types/yargs-parser" "*" -"@typescript-eslint/eslint-plugin@7.10.0": - version "7.10.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.10.0.tgz#07854a236f107bb45cbf4f62b89474cbea617f50" - integrity sha512-PzCr+a/KAef5ZawX7nbyNwBDtM1HdLIT53aSA2DDlxmxMngZ43O8SIePOeX8H5S+FHXeI6t97mTt/dDdzY4Fyw== +"@typescript-eslint/eslint-plugin@8.0.0-alpha.16": + version "8.0.0-alpha.16" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.0.0-alpha.16.tgz#3f181894406b04c54e6a80341428e7bf701b00ff" + integrity sha512-ZDVgR/z28jg3CPzQJqFIOQ/gshqf3NDw7zCu2jTeAYqtyXpCsAkAivvkeuuuXCypRl53cK16qDPlCguUCZW5Ow== dependencies: "@eslint-community/regexpp" "^4.10.0" - "@typescript-eslint/scope-manager" "7.10.0" - "@typescript-eslint/type-utils" "7.10.0" - "@typescript-eslint/utils" "7.10.0" - "@typescript-eslint/visitor-keys" "7.10.0" + "@typescript-eslint/scope-manager" "8.0.0-alpha.16" + "@typescript-eslint/type-utils" "8.0.0-alpha.16" + "@typescript-eslint/utils" "8.0.0-alpha.16" + "@typescript-eslint/visitor-keys" "8.0.0-alpha.16" graphemer "^1.4.0" ignore "^5.3.1" natural-compare "^1.4.0" ts-api-utils "^1.3.0" -"@typescript-eslint/parser@7.10.0": - version "7.10.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-7.10.0.tgz#e6ac1cba7bc0400a4459e7eb5b23115bd71accfb" - integrity sha512-2EjZMA0LUW5V5tGQiaa2Gys+nKdfrn2xiTIBLR4fxmPmVSvgPcKNW+AE/ln9k0A4zDUti0J/GZXMDupQoI+e1w== +"@typescript-eslint/parser@8.0.0-alpha.16": + version "8.0.0-alpha.16" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-8.0.0-alpha.16.tgz#a06740aad4468cc2c20320a308b3d0bb33dac620" + integrity sha512-L8eX2ggDQqb986+P9FZVsl/4M0vPplvgVzPkFFtPtsP2rVRSFpzGidZGzNN73RBq2G5KnWo87sx2mUrJ+99OZQ== dependencies: - "@typescript-eslint/scope-manager" "7.10.0" - "@typescript-eslint/types" "7.10.0" - "@typescript-eslint/typescript-estree" "7.10.0" - "@typescript-eslint/visitor-keys" "7.10.0" + "@typescript-eslint/scope-manager" "8.0.0-alpha.16" + "@typescript-eslint/types" "8.0.0-alpha.16" + "@typescript-eslint/typescript-estree" "8.0.0-alpha.16" + "@typescript-eslint/visitor-keys" "8.0.0-alpha.16" debug "^4.3.4" +"@typescript-eslint/rule-tester@8.0.0-alpha.16": + version "8.0.0-alpha.16" + resolved "https://registry.yarnpkg.com/@typescript-eslint/rule-tester/-/rule-tester-8.0.0-alpha.16.tgz#f53401d0e9182126064294e470df72fbf2012d4f" + integrity sha512-Wb31pMBYIsDypETiWwJLp/FmgbKJfXbsF2cAKlR9V1nNIeQyinV6jjDCejreTuafmm4JskSO65xZ5WwDQIjrNw== + dependencies: + "@typescript-eslint/typescript-estree" "8.0.0-alpha.16" + "@typescript-eslint/utils" "8.0.0-alpha.16" + ajv "^6.12.6" + lodash.merge "4.6.2" + semver "^7.6.0" + "@typescript-eslint/scope-manager@7.10.0": version "7.10.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-7.10.0.tgz#054a27b1090199337a39cf755f83d9f2ce26546b" @@ -2834,7 +2896,25 @@ "@typescript-eslint/types" "7.10.0" "@typescript-eslint/visitor-keys" "7.10.0" -"@typescript-eslint/type-utils@7.10.0", "@typescript-eslint/type-utils@^7.3.0": +"@typescript-eslint/scope-manager@8.0.0-alpha.16": + version "8.0.0-alpha.16" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-8.0.0-alpha.16.tgz#82f63040173a45e84a9734f26265666a7b89e8de" + integrity sha512-SsN6Kf+sBK62CgDkW4XHZYDqCDwOY2d1Q4aUAOTcohhw06HiXYbY5xQ23GqOV2BL9TaKL+HuyyP+LLZ1aIG8FQ== + dependencies: + "@typescript-eslint/types" "8.0.0-alpha.16" + "@typescript-eslint/visitor-keys" "8.0.0-alpha.16" + +"@typescript-eslint/type-utils@8.0.0-alpha.16": + version "8.0.0-alpha.16" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-8.0.0-alpha.16.tgz#997998a0362b018a56f4d172d0e2395edb05c870" + integrity sha512-g5GJ0sB6WLu71fkPlMe9JV1o3p6AKAN0vUfg4XGyYPLSElRYdMMy4Nuq1Snq2Gqs1rceomHrogp5v/qH7Iq7ig== + dependencies: + "@typescript-eslint/typescript-estree" "8.0.0-alpha.16" + "@typescript-eslint/utils" "8.0.0-alpha.16" + debug "^4.3.4" + ts-api-utils "^1.3.0" + +"@typescript-eslint/type-utils@^7.3.0": version "7.10.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-7.10.0.tgz#8a75accce851d0a331aa9331268ef64e9b300270" integrity sha512-D7tS4WDkJWrVkuzgm90qYw9RdgBcrWmbbRkrLA4d7Pg3w0ttVGDsvYGV19SH8gPR5L7OtcN5J1hTtyenO9xE9g== @@ -2849,6 +2929,11 @@ resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-7.10.0.tgz#da92309c97932a3a033762fd5faa8b067de84e3b" integrity sha512-7fNj+Ya35aNyhuqrA1E/VayQX9Elwr8NKZ4WueClR3KwJ7Xx9jcCdOrLW04h51de/+gNbyFMs+IDxh5xIwfbNg== +"@typescript-eslint/types@8.0.0-alpha.16": + version "8.0.0-alpha.16" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.0.0-alpha.16.tgz#84e1a9782f5d8c1e958347e97c3c6adaf1e8aa9d" + integrity sha512-06m3u1WIT49iYLK2GJWdT7Lmx54pX8imcW06AFnmgMXYDQsTZDdNXpHM6vwwL29LAWDv44j8g+eDPjJ4UNNiCA== + "@typescript-eslint/typescript-estree@7.10.0": version "7.10.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-7.10.0.tgz#6dcdc5de3149916a6a599fa89dde5c471b88b8bb" @@ -2863,6 +2948,20 @@ semver "^7.6.0" ts-api-utils "^1.3.0" +"@typescript-eslint/typescript-estree@8.0.0-alpha.16": + version "8.0.0-alpha.16" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.0.0-alpha.16.tgz#a4a5608fda6232f0dfffc3b8456581b8d181952d" + integrity sha512-q5FvwPYGHmDF4/J7ssWMBHKDRY/3ar1PNoKTMYh/1foSCJ2e/Hv/GTuc63h03xi12IRyTn8R/M/56vH6qd+rSQ== + dependencies: + "@typescript-eslint/types" "8.0.0-alpha.16" + "@typescript-eslint/visitor-keys" "8.0.0-alpha.16" + debug "^4.3.4" + globby "^11.1.0" + is-glob "^4.0.3" + minimatch "^9.0.4" + semver "^7.6.0" + ts-api-utils "^1.3.0" + "@typescript-eslint/utils@7.10.0", "@typescript-eslint/utils@^7.3.0": version "7.10.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-7.10.0.tgz#8ee43e5608c9f439524eaaea8de5b358b15c51b3" @@ -2873,6 +2972,16 @@ "@typescript-eslint/types" "7.10.0" "@typescript-eslint/typescript-estree" "7.10.0" +"@typescript-eslint/utils@8.0.0-alpha.16": + version "8.0.0-alpha.16" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-8.0.0-alpha.16.tgz#078c38e5414ddf74c9f606c50309194e9a778d51" + integrity sha512-u7mFyhJ4/jX7VaGieK+BC+PynvCH8fdr4Gie4RXO9bclvGAvMTzk62UZ65t90KN25M9/tvodxUoaZS4W4MQSNg== + dependencies: + "@eslint-community/eslint-utils" "^4.4.0" + "@typescript-eslint/scope-manager" "8.0.0-alpha.16" + "@typescript-eslint/types" "8.0.0-alpha.16" + "@typescript-eslint/typescript-estree" "8.0.0-alpha.16" + "@typescript-eslint/visitor-keys@7.10.0": version "7.10.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-7.10.0.tgz#2af2e91e73a75dd6b70b4486c48ae9d38a485a78" @@ -2881,10 +2990,13 @@ "@typescript-eslint/types" "7.10.0" eslint-visitor-keys "^3.4.3" -"@ungap/structured-clone@^1.2.0": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.2.0.tgz#756641adb587851b5ccb3e095daf27ae581c8406" - integrity sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ== +"@typescript-eslint/visitor-keys@8.0.0-alpha.16": + version "8.0.0-alpha.16" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.0.0-alpha.16.tgz#5e7934ca2ac44cb0675bb126d7d94bb6b9c758ed" + integrity sha512-vSmfkS6FVBW1lhuf700XjcbQXtoXg3Aqbi+axsFYPNr/6oEkpLRonbKMxBzj4cGTnL/3sJl+gDVQSS7fVHWz3A== + dependencies: + "@typescript-eslint/types" "8.0.0-alpha.16" + eslint-visitor-keys "^3.4.3" "@verdaccio/auth@7.0.0-next-7.15": version "7.0.0-next-7.15" @@ -3091,6 +3203,13 @@ js-yaml "^3.10.0" tslib "^2.4.0" +"@zkochan/js-yaml@0.0.7": + version "0.0.7" + resolved "https://registry.yarnpkg.com/@zkochan/js-yaml/-/js-yaml-0.0.7.tgz#4b0cb785220d7c28ce0ec4d0804deb5d821eae89" + integrity sha512-nrUSn7hzt7J6JWgWGz78ZYI8wj+gdIJdk0Ynjpp8l+trkn58Uqsf6RYrYkEK+3X18EX+TNdtJI0WxAtc+L84SQ== + 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" @@ -3203,7 +3322,7 @@ ajv@8.13.0, ajv@^8.0.0, ajv@^8.11.0: require-from-string "^2.0.2" uri-js "^4.4.1" -ajv@^6.12.4: +ajv@^6.12.4, ajv@^6.12.6: version "6.12.6" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== @@ -3705,7 +3824,7 @@ cachedir@2.3.0: resolved "https://registry.yarnpkg.com/cachedir/-/cachedir-2.3.0.tgz#0c75892a052198f0b21c7c1804d8331edfcae0e8" integrity sha512-A+Fezp4zxnit6FanDmv9EqXNAi3vt9DWp51/71UEhXukb7QUuvtv9344h91dyAxuTLoSYJFU299qzR3tzwPAhw== -call-bind@^1.0.7: +call-bind@^1.0.5, call-bind@^1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.7.tgz#06016599c40c56498c18769d2730be242b6fa3b9" integrity sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w== @@ -3755,7 +3874,7 @@ chalk@^2.4.1, chalk@^2.4.2: escape-string-regexp "^1.0.5" supports-color "^5.3.0" -chalk@^4.0.0, chalk@^4.0.2, chalk@^4.1.0, chalk@^4.1.1: +chalk@^4.0.0, chalk@^4.0.2, chalk@^4.1.0, chalk@^4.1.1, chalk@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== @@ -3778,7 +3897,7 @@ chownr@^2.0.0: resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== -ci-info@^3.2.0: +ci-info@^3.2.0, ci-info@^3.7.0: version "3.9.0" resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.9.0.tgz#4279a62028a7b1f262f3473fc9605f5e218c59b4" integrity sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ== @@ -4332,13 +4451,6 @@ dir-glob@^3.0.1: dependencies: path-type "^4.0.0" -doctrine@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" - integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== - dependencies: - esutils "^2.0.2" - dot-prop@^5.1.0: version "5.3.0" resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.3.0.tgz#90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88" @@ -4597,14 +4709,6 @@ eslint-config-prettier@9.1.0: resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz#31af3d94578645966c082fcb71a5846d3c94867f" integrity sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw== -eslint-scope@^7.2.2: - version "7.2.2" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.2.tgz#deb4f92563390f32006894af62a22dba1c46423f" - integrity sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg== - dependencies: - esrecurse "^4.3.0" - estraverse "^5.2.0" - eslint-scope@^8.0.0, eslint-scope@^8.0.1: version "8.0.1" resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-8.0.1.tgz#a9601e4b81a0b9171657c343fb13111688963cfc" @@ -4623,51 +4727,7 @@ eslint-visitor-keys@^4.0.0: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-4.0.0.tgz#e3adc021aa038a2a8e0b2f8b0ce8f66b9483b1fb" integrity sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw== -eslint@8.57.0: - version "8.57.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.57.0.tgz#c786a6fd0e0b68941aaf624596fb987089195668" - integrity sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ== - dependencies: - "@eslint-community/eslint-utils" "^4.2.0" - "@eslint-community/regexpp" "^4.6.1" - "@eslint/eslintrc" "^2.1.4" - "@eslint/js" "8.57.0" - "@humanwhocodes/config-array" "^0.11.14" - "@humanwhocodes/module-importer" "^1.0.1" - "@nodelib/fs.walk" "^1.2.8" - "@ungap/structured-clone" "^1.2.0" - ajv "^6.12.4" - chalk "^4.0.0" - cross-spawn "^7.0.2" - debug "^4.3.2" - doctrine "^3.0.0" - escape-string-regexp "^4.0.0" - eslint-scope "^7.2.2" - eslint-visitor-keys "^3.4.3" - espree "^9.6.1" - esquery "^1.4.2" - esutils "^2.0.2" - fast-deep-equal "^3.1.3" - file-entry-cache "^6.0.1" - find-up "^5.0.0" - glob-parent "^6.0.2" - globals "^13.19.0" - graphemer "^1.4.0" - ignore "^5.2.0" - imurmurhash "^0.1.4" - is-glob "^4.0.0" - is-path-inside "^3.0.3" - js-yaml "^4.1.0" - json-stable-stringify-without-jsonify "^1.0.1" - levn "^0.4.1" - lodash.merge "^4.6.2" - minimatch "^3.1.2" - natural-compare "^1.4.0" - optionator "^0.9.3" - strip-ansi "^6.0.1" - text-table "^0.2.0" - -"eslint@^8.0.0 || ^9.0.0": +eslint@9.3.0: version "9.3.0" resolved "https://registry.yarnpkg.com/eslint/-/eslint-9.3.0.tgz#36a96db84592618d6ed9074d677e92f4e58c08b9" integrity sha512-5Iv4CsZW030lpUqHBapdPo3MJetAPtejVW8B84GIcIIv8+ohFaddXsrn1Gn8uD9ijDb+kcYKFUVmC8qG8B2ORQ== @@ -4726,7 +4786,7 @@ espree@^10.0.1: acorn-jsx "^5.3.2" eslint-visitor-keys "^4.0.0" -espree@^9.0.0, espree@^9.6.0, espree@^9.6.1: +espree@^9.0.0: version "9.6.1" resolved "https://registry.yarnpkg.com/espree/-/espree-9.6.1.tgz#a2a17b8e434690a5432f2f8018ce71d331a48c6f" integrity sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ== @@ -5076,13 +5136,6 @@ figures@3.2.0, figures@^3.0.0: dependencies: escape-string-regexp "^1.0.5" -file-entry-cache@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" - integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== - dependencies: - flat-cache "^3.0.4" - file-entry-cache@^8.0.0: version "8.0.0" resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-8.0.0.tgz#7787bddcf1131bffb92636c69457bbc0edd6d81f" @@ -5185,6 +5238,13 @@ find-versions@^5.0.0: dependencies: semver-regex "^4.0.5" +find-yarn-workspace-root@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/find-yarn-workspace-root/-/find-yarn-workspace-root-2.0.0.tgz#f47fb8d239c900eb78179aa81b66673eac88f7bd" + integrity sha512-1IMnbjt4KzsQfnhnzNd8wUEgXZ44IzZaZmnLYx7D5FZlaHt2gW20Cri8Q+E/t5tIj4+epTBub+2Zxu/vNILzqQ== + dependencies: + micromatch "^4.0.2" + findup-sync@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-4.0.0.tgz#956c9cdde804052b881b428512905c4a5f2cdef0" @@ -5195,15 +5255,6 @@ findup-sync@^4.0.0: micromatch "^4.0.2" resolve-dir "^1.0.1" -flat-cache@^3.0.4: - version "3.2.0" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.2.0.tgz#2c0c2d5040c99b1632771a9d105725c0115363ee" - integrity sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw== - dependencies: - flatted "^3.2.9" - keyv "^4.5.3" - rimraf "^3.0.2" - flat-cache@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-4.0.1.tgz#0ece39fcb14ee012f4b0410bd33dd9c1f011127c" @@ -5280,7 +5331,7 @@ fs-constants@^1.0.0: resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== -fs-extra@9.1.0: +fs-extra@9.1.0, fs-extra@^9.0.0: version "9.1.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== @@ -5495,13 +5546,6 @@ globals@^11.1.0: resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== -globals@^13.19.0: - version "13.24.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.24.0.tgz#8432a19d78ce0c1e833949c36adb345400bb1171" - integrity sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ== - dependencies: - type-fest "^0.20.2" - globals@^14.0.0: version "14.0.0" resolved "https://registry.yarnpkg.com/globals/-/globals-14.0.0.tgz#898d7413c29babcf6bafe56fcadded858ada724e" @@ -5543,7 +5587,7 @@ got@^11.8.5: p-cancelable "^2.0.0" responselike "^2.0.0" -graceful-fs@^4.1.3, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.6, graceful-fs@^4.2.9: +graceful-fs@^4.1.11, graceful-fs@^4.1.3, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.6, graceful-fs@^4.2.9: version "4.2.11" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== @@ -6004,13 +6048,18 @@ is-windows@^1.0.1: resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== -is-wsl@^2.2.0: +is-wsl@^2.1.1, is-wsl@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== dependencies: is-docker "^2.0.0" +isarray@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" + integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== + isexe@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" @@ -6562,6 +6611,16 @@ json-stable-stringify-without-jsonify@^1.0.1: resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== +json-stable-stringify@^1.0.2: + version "1.1.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.1.1.tgz#52d4361b47d49168bcc4e564189a42e5a7439454" + integrity sha512-SU/971Kt5qVQfJpyDveVhQ/vya+5hvrjClFOcr8c0Fq5aODJjMwutrOfCU+eCnVD5gpx1Q3fEqkyom77zH1iIg== + dependencies: + call-bind "^1.0.5" + isarray "^2.0.5" + jsonify "^0.0.1" + object-keys "^1.1.1" + json-stringify-safe@~5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" @@ -6601,6 +6660,11 @@ jsonfile@^6.0.1: optionalDependencies: graceful-fs "^4.1.6" +jsonify@^0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.1.tgz#2aa3111dae3d34a0f151c63f3a45d995d9420978" + integrity sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg== + jsonparse@^1.2.0, jsonparse@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" @@ -6649,13 +6713,20 @@ jws@^3.2.2: jwa "^1.4.1" safe-buffer "^5.0.1" -keyv@^4.0.0, keyv@^4.5.3, keyv@^4.5.4: +keyv@^4.0.0, keyv@^4.5.4: version "4.5.4" resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93" integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw== dependencies: json-buffer "3.0.1" +klaw-sync@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/klaw-sync/-/klaw-sync-6.0.0.tgz#1fd2cfd56ebb6250181114f0a581167099c2b28c" + integrity sha512-nIeuVSzdCCs6TDPTqI8w1Yre34sSq7AkZ4B3sfOBbI2CgVSB4Du4aLQijFU2+lhAFCwt9+42Hel6lQNIv6AntQ== + dependencies: + graceful-fs "^4.1.11" + kleur@4.1.5: version "4.1.5" resolved "https://registry.yarnpkg.com/kleur/-/kleur-4.1.5.tgz#95106101795f7050c6c650f350c683febddb1780" @@ -6810,7 +6881,7 @@ lodash.memoize@4.x: resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" integrity sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag== -lodash.merge@^4.6.2: +lodash.merge@4.6.2, lodash.merge@^4.6.2: version "4.6.2" resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== @@ -7530,6 +7601,56 @@ nx@19.0.6, nx@^19.0.6: "@nx/nx-win32-arm64-msvc" "19.0.6" "@nx/nx-win32-x64-msvc" "19.0.6" +nx@19.1.0: + version "19.1.0" + resolved "https://registry.yarnpkg.com/nx/-/nx-19.1.0.tgz#2cdf6d5a8f6d286297c2ad5a8e4b40d07694d771" + integrity sha512-ia9XIL4QWli02WNZ3tLSpWvIYJVOWcikeELJwouZOwHKT7RA9i6vCQjKsIKWSFlUs47WDwiYiLSsMxR5KTqk8Q== + dependencies: + "@nrwl/tao" "19.1.0" + "@yarnpkg/lockfile" "^1.1.0" + "@yarnpkg/parsers" "3.0.0-rc.46" + "@zkochan/js-yaml" "0.0.7" + 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" + 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.1.0" + "@nx/nx-darwin-x64" "19.1.0" + "@nx/nx-freebsd-x64" "19.1.0" + "@nx/nx-linux-arm-gnueabihf" "19.1.0" + "@nx/nx-linux-arm64-gnu" "19.1.0" + "@nx/nx-linux-arm64-musl" "19.1.0" + "@nx/nx-linux-x64-gnu" "19.1.0" + "@nx/nx-linux-x64-musl" "19.1.0" + "@nx/nx-win32-arm64-msvc" "19.1.0" + "@nx/nx-win32-x64-msvc" "19.1.0" + object-assign@^4, object-assign@^4.0.1: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" @@ -7540,6 +7661,11 @@ object-inspect@^1.13.1: resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.1.tgz#b96c6109324ccfef6b12216a956ca4dc2ff94bc2" integrity sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ== +object-keys@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== + on-exit-leak-free@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/on-exit-leak-free/-/on-exit-leak-free-0.2.0.tgz#b39c9e3bf7690d890f4861558b0d7b90a442d209" @@ -7583,6 +7709,14 @@ onetime@^6.0.0: dependencies: mimic-fn "^4.0.0" +open@^7.4.2: + version "7.4.2" + resolved "https://registry.yarnpkg.com/open/-/open-7.4.2.tgz#b8147e26dcf3e426316c730089fd71edd29c2321" + integrity sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q== + dependencies: + is-docker "^2.0.0" + is-wsl "^2.1.1" + open@^8.4.0: version "8.4.2" resolved "https://registry.yarnpkg.com/open/-/open-8.4.2.tgz#5b5ffe2a8f793dcd2aad73e550cb87b59cb084f9" @@ -7759,6 +7893,27 @@ parseurl@~1.3.3: resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== +patch-package@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/patch-package/-/patch-package-8.0.0.tgz#d191e2f1b6e06a4624a0116bcb88edd6714ede61" + integrity sha512-da8BVIhzjtgScwDJ2TtKsfT5JFWz1hYoBl9rUQ1f38MC2HwnEIkK8VN3dKMKcP7P7bvvgzNDbfNHtx3MsQb5vA== + dependencies: + "@yarnpkg/lockfile" "^1.1.0" + chalk "^4.1.2" + ci-info "^3.7.0" + cross-spawn "^7.0.3" + find-yarn-workspace-root "^2.0.0" + fs-extra "^9.0.0" + json-stable-stringify "^1.0.2" + klaw-sync "^6.0.0" + minimist "^1.2.6" + open "^7.4.2" + rimraf "^2.6.3" + semver "^7.5.3" + slash "^2.0.0" + tmp "^0.0.33" + yaml "^2.2.2" + path-exists@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" @@ -8305,10 +8460,10 @@ rimraf@5.0.7: dependencies: glob "^10.3.7" -rimraf@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" - integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== +rimraf@^2.6.3: + version "2.7.1" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" + integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== dependencies: glob "^7.1.3" @@ -8529,6 +8684,11 @@ slash@3.0.0, slash@^3.0.0: resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== +slash@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44" + integrity sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A== + slice-ansi@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-5.0.0.tgz#b73063c57aa96f9cd881654b15294d95d285c42a" @@ -9145,11 +9305,6 @@ type-detect@4.0.8: resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== -type-fest@^0.20.2: - version "0.20.2" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" - integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== - type-fest@^0.21.3: version "0.21.3" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" @@ -9556,7 +9711,7 @@ yallist@^4.0.0: resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== -yaml@2.4.2: +yaml@2.4.2, yaml@^2.2.2: version "2.4.2" resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.4.2.tgz#7a2b30f2243a5fc299e1f14ca58d475ed4bc5362" integrity sha512-B3VqDZ+JAg1nZpaEmWtTXUlBneoGx6CPM9b0TENK6aoSu5t73dItudwdgmi6tHlIZZId4dZ9skcAQ2UbcyAeVA== From 745ec530bc2e98731a8d090017a29c83fe0c921e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9CJamesHenry=E2=80=9D?= Date: Sun, 26 May 2024 18:20:47 +0400 Subject: [PATCH 2/4] chore: apply patches in agent setup --- .nx/workflows/agents.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.nx/workflows/agents.yaml b/.nx/workflows/agents.yaml index 69e0a5bbe..28585530a 100644 --- a/.nx/workflows/agents.yaml +++ b/.nx/workflows/agents.yaml @@ -17,5 +17,7 @@ launch-templates: uses: 'nrwl/nx-cloud-workflows/main/workflow-steps/install-node-modules/main.yaml' env: SKIP_POSTINSTALL: 'true' + - name: Apply patches + script: 'yarn patch-package --patch-dir ./tools/patches' - name: Clear Jest Cache script: 'npx jest --clearCache' From 077eb8853164a770045d007e122949d6514d0716 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9CJamesHenry=E2=80=9D?= Date: Sun, 26 May 2024 18:23:58 +0400 Subject: [PATCH 3/4] chore: apply patches for other node version --- .github/workflows/ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 9aa4e01ae..0d2f6d0cd 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -117,6 +117,7 @@ jobs: # We use --ignore-scripts to skip automatic postinstall and give us more control to distribute tasks run: | yarn --ignore-engines --frozen-lockfile --prefer-offline --ignore-scripts + yarn patch-package --patch-dir ./tools/patches - name: Run build targets on Node ${{ matrix.node }} (not distributable) env: From b97bdd296f310c4b63ab8a2e1540c0d4491faa09 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9CJamesHenry=E2=80=9D?= Date: Sun, 26 May 2024 18:30:43 +0400 Subject: [PATCH 4/4] chore: use full install command --- ...rkspace-create-application-false-ng-add-then-project.test.ts | 2 +- ...rkspace-create-application-false-project-then-ng-add.test.ts | 2 +- e2e/src/new-workspace.test.ts | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/e2e/src/new-workspace-create-application-false-ng-add-then-project.test.ts b/e2e/src/new-workspace-create-application-false-ng-add-then-project.test.ts index 73e046090..9b9ec9299 100644 --- a/e2e/src/new-workspace-create-application-false-ng-add-then-project.test.ts +++ b/e2e/src/new-workspace-create-application-false-ng-add-then-project.test.ts @@ -65,7 +65,7 @@ describe('new-workspace-create-application-false-ng-add-then-project', () => { it('it should pass linting when adding a project before running ng-add -> with eslint v8 and typescript-eslint v7', async () => { // Downgrade eslint to v8 and typescript-eslint to v7 execSync( - 'npm install eslint@8 @typescript-eslint/{eslint-plugin,parser}@7 --force', + 'npm install eslint@8 @typescript-eslint/eslint-plugin@7 @typescript-eslint/parser@7 --force', { stdio: 'inherit', cwd: fixture.root, diff --git a/e2e/src/new-workspace-create-application-false-project-then-ng-add.test.ts b/e2e/src/new-workspace-create-application-false-project-then-ng-add.test.ts index 3994a83d6..20c90aafc 100644 --- a/e2e/src/new-workspace-create-application-false-project-then-ng-add.test.ts +++ b/e2e/src/new-workspace-create-application-false-project-then-ng-add.test.ts @@ -65,7 +65,7 @@ describe('new-workspace-create-application-false-project-then-ng-add', () => { it('it should pass linting when adding a project before running ng-add -> with eslint v8 and typescript-eslint v7', async () => { // Downgrade eslint to v8 and typescript-eslint to v7 execSync( - 'npm install eslint@8 @typescript-eslint/{eslint-plugin,parser}@7 --force', + 'npm install eslint@8 @typescript-eslint/eslint-plugin@7 @typescript-eslint/parser@7 --force', { stdio: 'inherit', cwd: fixture.root, diff --git a/e2e/src/new-workspace.test.ts b/e2e/src/new-workspace.test.ts index 5efcb0d50..aa7573151 100644 --- a/e2e/src/new-workspace.test.ts +++ b/e2e/src/new-workspace.test.ts @@ -79,7 +79,7 @@ describe('new-workspace', () => { it('it should pass linting when adding a project before running ng-add -> with eslint v8 and typescript-eslint v7', async () => { // Downgrade eslint to v8 and typescript-eslint to v7 execSync( - 'npm install eslint@8 @typescript-eslint/{eslint-plugin,parser}@7 --force', + 'npm install eslint@8 @typescript-eslint/eslint-plugin@7 @typescript-eslint/parser@7 --force', { stdio: 'inherit', cwd: fixture.root,