From df7a800b03060fd491c829c193cf0d7ce9f00c05 Mon Sep 17 00:00:00 2001 From: dxvladislavvolkov Date: Thu, 3 Sep 2026 11:45:40 +0400 Subject: [PATCH 1/6] Update angular version --- package.json | 2 +- .../src/applications/application.angular.js | 20 +- .../devextreme-cli/src/utility/ng-version.js | 3 +- packages/devextreme-schematics/package.json | 8 +- .../src/add-layout/index.ts | 2 +- .../src/add-layout/index_spec.ts | 28 +- .../src/add-view/index.ts | 11 + .../src/add-view/index_spec.ts | 2 +- .../src/utility/change.ts | 8 +- .../src/utility/routing.ts | 2 +- .../src/utility/source.ts | 2 +- .../src/utility/typescript-resolver.ts | 10 +- packages/devextreme-schematics/tsconfig.json | 1 + pnpm-lock.yaml | 510 ++++++++---------- 14 files changed, 276 insertions(+), 333 deletions(-) diff --git a/package.json b/package.json index 897417ec9..f497c5f58 100644 --- a/package.json +++ b/package.json @@ -15,7 +15,7 @@ "lint-sandbox": "eslint --config .github/eslint-security.config.mjs" }, "devDependencies": { - "@angular-eslint/schematics": "0.2.0-beta.1", + "@angular-eslint/schematics": "^22.2.0", "@devexpress/eslint-plugin-dx-security": "^0.2.8", "@typescript-eslint/parser": "^8.63.0", "eslint": "^9.39.4", diff --git a/packages/devextreme-cli/src/applications/application.angular.js b/packages/devextreme-cli/src/applications/application.angular.js index 15fb36003..a791f8db2 100644 --- a/packages/devextreme-cli/src/applications/application.angular.js +++ b/packages/devextreme-cli/src/applications/application.angular.js @@ -12,7 +12,7 @@ const { getPackageJsonPath } = require('../utility/package-json-utils'); const modifyJson = require('../utility/modify-json-file'); const schematicsVersion = latestVersions['devextreme-schematics'] || 'latest'; -const minNgCliVersion = new semver('17.0.0'); +const minNgCliVersion = new semver('20.0.0'); const ngCliWithZoneless = new semver('20.0.0'); async function runSchematicCommand(schematicCommand, options, evaluatingOptions) { @@ -46,7 +46,7 @@ async function runNgCommand(commandArguments, commandOptions, commandConfig) { const ngCommandArguments = hasNg && !depsVersionTag ? [] - : ['-p', `@angular/cli@${depsVersionTag || `v${minCliLtsVersion}-lts`}`, 'ng']; + : ['-p', `@angular/cli@${depsVersionTag || minCliLtsVersion}`, 'ng']; ngCommandArguments.push(...commandArguments); return runCommand(npmCommandName, ngCommandArguments, commandConfig); @@ -74,6 +74,14 @@ const hasSutableNgCli = async() => { return isSupportVersion; }; +const getTargetNgCliVersion = () => { + const localVersion = ngVersion.getLocalNgVersion(); + + return localVersion && localVersion.compare(minNgCliVersion) >= 0 + ? localVersion + : ngVersion.getPublicNgVersion(); +}; + const install = async(options) => { runSchematicCommand('install', { ...options @@ -100,7 +108,7 @@ const bumpAngular = (appPath, versionTag) => { const create = async(appName, options) => { const layout = await getLayoutInfo(options.layout); - const currentNgVersion = ngVersion.getNgCliVersion().version; + const currentNgVersion = getTargetNgCliVersion().version; const depsVersionTag = extractDepsVersionTag(options); const commandArguments = [ @@ -111,7 +119,8 @@ const create = async(appName, options) => { '--skip-tests=true', '--skip-install=true', '--standalone=true', - '--ssr=false' + '--ssr=false', + '--ai-config=none' ]; if(ngCliWithZoneless.compare(currentNgVersion) <= 0) { @@ -129,6 +138,7 @@ const create = async(appName, options) => { options.resolveConflicts = 'override'; options.updateBudgets = true; options.layout = layout; + options.globalNgCliVersion = currentNgVersion; addTemplate(appName, options, { cwd: appPath }); @@ -140,7 +150,7 @@ const addTemplate = async(appName, options, evaluatingOptions) => { const schematicOptions = { ...(appName && { project: appName }), ...options, - globalNgCliVersion: ngVersion.getNgCliVersion().version + globalNgCliVersion: options.globalNgCliVersion || getTargetNgCliVersion().version }; runSchematicCommand('add-app-template', schematicOptions, evaluatingOptions); }; diff --git a/packages/devextreme-cli/src/utility/ng-version.js b/packages/devextreme-cli/src/utility/ng-version.js index 4327a0129..62f5ac94d 100644 --- a/packages/devextreme-cli/src/utility/ng-version.js +++ b/packages/devextreme-cli/src/utility/ng-version.js @@ -15,7 +15,8 @@ const getLocalNgVersion = () => { }; const getPublicNgVersion = () => { - const version = execSync('npm view @angular/cli@v16-lts version').toString(); + const versions = JSON.parse(execSync('npm view @angular/cli@22 version --json').toString()); + const version = Array.isArray(versions) ? versions[versions.length - 1] : versions; return new semver(version); }; diff --git a/packages/devextreme-schematics/package.json b/packages/devextreme-schematics/package.json index 04e0f4a6b..9c242c9b2 100644 --- a/packages/devextreme-schematics/package.json +++ b/packages/devextreme-schematics/package.json @@ -22,9 +22,9 @@ ], "schematics": "./src/collection.json", "dependencies": { - "@angular-devkit/core": "^19.2.27", - "@angular-devkit/schematics": "^19.2.27", - "@schematics/angular": "^19.2.27", + "@angular-devkit/core": "^22.1.7", + "@angular-devkit/schematics": "^22.1.7", + "@schematics/angular": "^22.1.7", "parse5": "^7.3.0", "picomatch": "^4.0.5", "semver": "^7.8.5" @@ -37,6 +37,6 @@ "jasmine": "^2.99.0", "rxjs": "^7.8.2", "tslint": "^5.20.1", - "typescript": "~5.6.3" + "typescript": "~6.0.3" } } diff --git a/packages/devextreme-schematics/src/add-layout/index.ts b/packages/devextreme-schematics/src/add-layout/index.ts index 7810eefd4..9b80a5577 100644 --- a/packages/devextreme-schematics/src/add-layout/index.ts +++ b/packages/devextreme-schematics/src/add-layout/index.ts @@ -16,7 +16,7 @@ import { import { SourceFile -} from '@schematics/angular/third_party/github.com/Microsoft/TypeScript/lib/typescript'; +} from 'typescript'; import { strings } from '@angular-devkit/core'; diff --git a/packages/devextreme-schematics/src/add-layout/index_spec.ts b/packages/devextreme-schematics/src/add-layout/index_spec.ts index 20615ef4f..00d6894c0 100644 --- a/packages/devextreme-schematics/src/add-layout/index_spec.ts +++ b/packages/devextreme-schematics/src/add-layout/index_spec.ts @@ -83,7 +83,7 @@ describe('layout', () => { expect(devextremeConfigContent).toContain('"inputFile": "src/themes/metadata.additional.json"'); expect(devextremeConfigContent).toMatch(/\n\s{2}\S/g); - const componentContent = tree.readContent('/src/app/app.component.html'); + const componentContent = tree.readContent('/src/app/app.html'); expect(componentContent).toContain('app-side-nav-outer-toolbar title="{{appInfo.title}}"'); const stylesContent = tree.readContent('/src/dx-styles.scss'); @@ -101,7 +101,7 @@ describe('layout', () => { expect(styles[3]).toBe('src/themes/generated/theme.additional.dark.css'); expect(styles[4]).toBe('src/themes/generated/theme.additional.css'); - const appContent = tree.readContent('/src/app/app.component.ts'); + const appContent = tree.readContent('/src/app/app.ts'); expect(appContent).toContain('import { DxHttpModule }'); expect(appContent) .toContain('import { SideNavOuterToolbarComponent as SideNavToolbarComponent }'); @@ -109,8 +109,8 @@ describe('layout', () => { .toContain(`import { AuthService, ScreenService, AppInfoService } from './shared/services';`); expect(appContent) .toContain('import { FooterComponent }'); - expect(appContent).toContain('templateUrl: \'./app.component.html\','); - expect(appContent).toContain('styleUrls: [\'./app.component.scss\']'); + expect(appContent).toContain('templateUrl: \'./app.html\','); + expect(appContent).toContain('styleUrls: [\'./app.scss\']'); expect(appContent).toContain('selector: \'app-root\','); const navigationMenu = tree.readContent( @@ -217,18 +217,18 @@ describe('layout', () => { options.resolveConflicts = 'createNew'; const tree = await runner.runSchematic('add-layout', options, appTree); - expect(tree.files).toContain('/src/app/app1.component.ts'); + expect(tree.files).toContain('/src/app/app1.ts'); - const componentContent = tree.readContent('/src/app/app1.component.html'); + const componentContent = tree.readContent('/src/app/app1.html'); expect(componentContent).toContain('app-side-nav-outer-toolbar title="{{appInfo.title}}"'); - const appContent = tree.readContent('/src/app/app.component.ts'); - expect(appContent).toMatch(/templateUrl: '.\/app.component.html',/); - expect(appContent).toMatch(/styleUrl: '.\/app.component.scss'/); + const appContent = tree.readContent('/src/app/app.ts'); + expect(appContent).toMatch(/templateUrl: '.\/app.html',/); + expect(appContent).toMatch(/styleUrl: '.\/app.scss'/); - const newAppContent = tree.readContent('/src/app/app1.component.ts'); - expect(newAppContent).toMatch(/templateUrl: '.\/app1.component.html',/); - expect(newAppContent).toMatch(/styleUrls: \['.\/app1.component.scss'\]/); + const newAppContent = tree.readContent('/src/app/app1.ts'); + expect(newAppContent).toMatch(/templateUrl: '.\/app1.html',/); + expect(newAppContent).toMatch(/styleUrls: \['.\/app1.scss'\]/); expect(newAppContent).toContain(`import { AuthService, ScreenService, AppInfoService } from './shared/services';`); const appInfo = tree.readContent('/src/app/shared/services/app-info.service.ts'); @@ -267,7 +267,7 @@ describe('layout', () => { options.layout = 'side-nav-inner-toolbar'; options.resolveConflicts = 'override'; const tree = await runner.runSchematic('add-layout', options, appTree); - const content = tree.readContent('/src/app/app.component.html'); + const content = tree.readContent('/src/app/app.html'); expect(content).toContain('app-side-nav-inner-toolbar title="{{appInfo.title}}"'); }); @@ -308,7 +308,7 @@ describe('layout', () => { project: 'testApp2' }, appTree); - const appContent = tree.readContent('projects/testApp2/src/app/app.component.ts'); + const appContent = tree.readContent('projects/testApp2/src/app/app.ts'); expect(appContent).toContain('selector: \'app2-root\','); const content = tree.readContent('/devextreme.json'); diff --git a/packages/devextreme-schematics/src/add-view/index.ts b/packages/devextreme-schematics/src/add-view/index.ts index 1d9a6207e..9172c78f1 100644 --- a/packages/devextreme-schematics/src/add-view/index.ts +++ b/packages/devextreme-schematics/src/add-view/index.ts @@ -34,6 +34,16 @@ import { humanize } from '../utility/string'; async function getPathToFile(host: Tree, projectName: string, moduleName: string) { const rootPath = await getApplicationPath(host, projectName); + const directCandidates = [ + `/${rootPath}/${moduleName}.ts`, + `/${rootPath}/${moduleName}.module.ts`, + `/${rootPath}/${moduleName}-module.ts`, + ]; + + const directMatch = directCandidates.find(candidate => host.exists(candidate)); + if (directMatch) { + return directMatch; + } try { return findModuleFromOptions(host, { name: moduleName, path: rootPath, module: moduleName }); @@ -185,6 +195,7 @@ export default function(options: any): Rule { skipTests: options.skipTests, inlineStyle: options.inlineStyle, prefix: options.prefix, + type: 'component', standalone: true }), addContentToView({ name, project }) as any, diff --git a/packages/devextreme-schematics/src/add-view/index_spec.ts b/packages/devextreme-schematics/src/add-view/index_spec.ts index 8d057ae16..c692746bf 100644 --- a/packages/devextreme-schematics/src/add-view/index_spec.ts +++ b/packages/devextreme-schematics/src/add-view/index_spec.ts @@ -94,7 +94,7 @@ describe('view', () => { }, tree); tree = await runner.runSchematic('add-view', options, tree); - const moduleContent = tree.readContent('/src/app/test/test-routing.module.ts'); + const moduleContent = tree.readContent('/src/app/test/test-routing-module.ts'); expect(moduleContent).toMatch(/component: TestComponent/); expect(moduleContent).toMatch(/path: 'pages\/test'/); diff --git a/packages/devextreme-schematics/src/utility/change.ts b/packages/devextreme-schematics/src/utility/change.ts index 09b4303b6..3f4c13cc3 100644 --- a/packages/devextreme-schematics/src/utility/change.ts +++ b/packages/devextreme-schematics/src/utility/change.ts @@ -3,7 +3,7 @@ import { InsertChange, Change } from '@schematics/angular/utility/change'; import { Node -} from '@schematics/angular/third_party/github.com/Microsoft/TypeScript/lib/typescript'; +} from 'typescript'; const newLine = ` `; @@ -11,8 +11,10 @@ const newLine = ` export function applyChanges(host: Tree, changes: Change[], filePath: string) { const recorder = host.beginUpdate(filePath); - changes.forEach((change: InsertChange) => { - recorder.insertLeft(change.pos, change.toAdd); + changes.forEach((change: Change) => { + if (change instanceof InsertChange) { + recorder.insertLeft(change.pos, change.toAdd); + } }); host.commitUpdate(recorder); diff --git a/packages/devextreme-schematics/src/utility/routing.ts b/packages/devextreme-schematics/src/utility/routing.ts index 153bd323a..ea1b558e9 100644 --- a/packages/devextreme-schematics/src/utility/routing.ts +++ b/packages/devextreme-schematics/src/utility/routing.ts @@ -2,7 +2,7 @@ import { Node, SourceFile, SyntaxKind -} from '@schematics/angular/third_party/github.com/Microsoft/TypeScript/lib/typescript'; +} from 'typescript'; import { strings, diff --git a/packages/devextreme-schematics/src/utility/source.ts b/packages/devextreme-schematics/src/utility/source.ts index 5c21713fb..e7bfd3e5c 100644 --- a/packages/devextreme-schematics/src/utility/source.ts +++ b/packages/devextreme-schematics/src/utility/source.ts @@ -3,7 +3,7 @@ import { createSourceFile, ScriptTarget, SourceFile -} from '@schematics/angular/third_party/github.com/Microsoft/TypeScript/lib/typescript'; +} from 'typescript'; export function getSourceFile(host: Tree, filePath: string): SourceFile | undefined { const buffer = host.read(filePath); diff --git a/packages/devextreme-schematics/src/utility/typescript-resolver.ts b/packages/devextreme-schematics/src/utility/typescript-resolver.ts index 316d46393..187fb2177 100644 --- a/packages/devextreme-schematics/src/utility/typescript-resolver.ts +++ b/packages/devextreme-schematics/src/utility/typescript-resolver.ts @@ -8,6 +8,10 @@ export interface TypeScriptResolutionResult { errors: string[]; } +function getErrorMessage(err: unknown): string { + return err instanceof Error ? err.message : String(err); +} + /** * Resolves TypeScript with a 3-level fallback strategy: * 1. Project search - look in the user's project node_modules @@ -27,7 +31,7 @@ export function resolveTypeScript(): TypeScriptResolutionResult { }; } } catch (err) { - errors.push(`Failed to import TypeScript from project: ${err?.message || err}`); + errors.push(`Failed to import TypeScript from project: ${getErrorMessage(err)}`); } try { @@ -40,7 +44,7 @@ export function resolveTypeScript(): TypeScriptResolutionResult { }; } } catch (err) { - errors.push(`Failed to import TypeScript from global node_modules: ${err?.message || err}`); + errors.push(`Failed to import TypeScript from global node_modules: ${getErrorMessage(err)}`); } try { @@ -53,7 +57,7 @@ export function resolveTypeScript(): TypeScriptResolutionResult { }; } } catch (err) { - errors.push(`Failed to import TypeScript from temporary installation (npm cache): ${err?.message || err}`); + errors.push(`Failed to import TypeScript from temporary installation (npm cache): ${getErrorMessage(err)}`); } return { diff --git a/packages/devextreme-schematics/tsconfig.json b/packages/devextreme-schematics/tsconfig.json index a458abe18..1ee839b4f 100644 --- a/packages/devextreme-schematics/tsconfig.json +++ b/packages/devextreme-schematics/tsconfig.json @@ -9,6 +9,7 @@ "module": "commonjs", "moduleResolution": "node", "esModuleInterop": true, + "ignoreDeprecations": "6.0", "resolveJsonModule": true, "noEmitOnError": true, "noFallthroughCasesInSwitch": true, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ed2b9bbd4..12f8792e6 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -13,7 +13,8 @@ overrides: brace-expansion@>=4: ^5.0.9 braces@<3.0.3: '>=3.0.3' cross-spawn: 7.0.6 - fast-uri@>=3.0.0 <3.1.5: ^3.1.5 + browserslist@<=4.28.6: '>=4.28.7' + fast-uri@>=3.0.0 <3.1.6: ^3.1.6 flatted: ^3.4.3 form-data@>=4.0.0 <4.0.4: '>=4.0.6' ip-address@<=10.3.0: '>=10.3.1' @@ -31,14 +32,14 @@ importers: .: devDependencies: '@angular-eslint/schematics': - specifier: 0.2.0-beta.1 - version: 0.2.0-beta.1(@angular-devkit/schematics@22.1.3(chokidar@5.0.0)) + specifier: ^22.2.0 + version: 22.2.0(@angular-eslint/template-parser@22.2.0(eslint@9.39.4)(typescript@6.0.3))(@typescript-eslint/types@8.63.0)(@typescript-eslint/utils@8.63.0(eslint@9.39.4)(typescript@6.0.3))(chokidar@5.0.0)(eslint@9.39.4)(typescript@6.0.3) '@devexpress/eslint-plugin-dx-security': specifier: ^0.2.8 version: 0.2.8(eslint@9.39.4) '@typescript-eslint/parser': specifier: ^8.63.0 - version: 8.63.0(eslint@9.39.4)(typescript@5.6.3) + version: 8.63.0(eslint@9.39.4)(typescript@6.0.3) eslint: specifier: ^9.39.4 version: 9.39.4 @@ -161,14 +162,14 @@ importers: packages/devextreme-schematics: dependencies: '@angular-devkit/core': - specifier: ^19.2.27 - version: 19.2.27(chokidar@4.0.3) + specifier: ^22.1.7 + version: 22.1.7(chokidar@5.0.0) '@angular-devkit/schematics': - specifier: ^19.2.27 - version: 19.2.27(chokidar@4.0.3) + specifier: ^22.1.7 + version: 22.1.7(chokidar@5.0.0) '@schematics/angular': - specifier: ^19.2.27 - version: 19.2.27(chokidar@4.0.3) + specifier: ^22.1.7 + version: 22.1.7(chokidar@5.0.0) parse5: specifier: ^7.3.0 version: 7.3.0 @@ -199,43 +200,60 @@ importers: version: 7.8.2 tslint: specifier: ^5.20.1 - version: 5.20.1(typescript@5.6.3) + version: 5.20.1(typescript@6.0.3) typescript: - specifier: ~5.6.3 - version: 5.6.3 + specifier: ~6.0.3 + version: 6.0.3 packages: - '@angular-devkit/core@19.2.27': - resolution: {integrity: sha512-3amNzoCVSKd7ah6l6lBQL4onwwJvqvam7FMoQBILrxtW5LB5ezh8gMSPuA4zJjKjoRzf9uoWdlzqv/84I52xZA==} - engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} + '@angular-devkit/core@22.1.7': + resolution: {integrity: sha512-RKayeOOjhcIe/iBOM1fmtI5pjXwBEJh+u55VnSeIwYvFNXyxI0/jdRw4T6uhwusQ+1bzyya4d8q1mT9oaOQ/5A==} + engines: {node: ^22.22.3 || ^24.15.0 || >=26.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} peerDependencies: - chokidar: ^4.0.0 + chokidar: ^5.0.0 peerDependenciesMeta: chokidar: optional: true - '@angular-devkit/core@22.1.3': - resolution: {integrity: sha512-ASK8oZVElt/Zpz5FrzJjLnnUbzp/fW57eFFSRgpA+n9KRnuFi6YvNdSS3HkG5049Jcukce+PiMBdfzw/jBVkEw==} + '@angular-devkit/schematics@22.1.7': + resolution: {integrity: sha512-KOcVeT4MCsoPt6AMnXH7AbWZnzlKXhMyua2ITWij4UbLaNWCDwfIug/xrZssYLHUFwebCIqsR8iuG/BPH8Cz2w==} engines: {node: ^22.22.3 || ^24.15.0 || >=26.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} + + '@angular-eslint/bundled-angular-compiler@22.2.0': + resolution: {integrity: sha512-JYjUXcnZCMg23HXvHnaGcMvVF0WP9b/n9I9Oz3zY+lH2A2HkcCUYnTg3lhDghZfCcermNaz+JvXp88NX+cgA6A==} + + '@angular-eslint/eslint-plugin-template@22.2.0': + resolution: {integrity: sha512-v/X8/QJXWXaOkU8chmIPWu/86JAca5Tje6EFIf3G2VOxxuGzDpCPPuAKLBclhK+dtFHuJnqKYKZOfcdXqzj9eg==} peerDependencies: - chokidar: ^5.0.0 - peerDependenciesMeta: - chokidar: - optional: true + '@angular-eslint/template-parser': 22.2.0 + '@typescript-eslint/types': ^8.0.0 + '@typescript-eslint/utils': ^8.0.0 + eslint: ^9.0.0 || ^10.0.0 + typescript: '*' + + '@angular-eslint/eslint-plugin@22.2.0': + resolution: {integrity: sha512-ceA/aluyI7LKii+IaIjhoVCqJ3oPKC+3kqUf/DpWrgVsCbbLoW+iXCQVqMnlDZG1lagpLaqe6cIbVaH897yjPA==} + peerDependencies: + '@typescript-eslint/utils': ^8.0.0 + eslint: ^9.0.0 || ^10.0.0 + typescript: '*' - '@angular-devkit/schematics@19.2.27': - resolution: {integrity: sha512-/PZmyAlb2NGWPikRRuiWLdfHQd8Wrx6lX4HqvTcaDhlU43M3T0ud4PH2T3QDp7BzHYY92xtD8iPxX2asg67G1A==} - engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} + '@angular-eslint/schematics@22.2.0': + resolution: {integrity: sha512-KDtjpkAUOO+wK9J5HtRQtS5lwn5UHGMLEPVFznwrK+5hrNGN9LzfAzDhAHA9y+YoplqGK/Romm4v0384e+BiWw==} - '@angular-devkit/schematics@22.1.3': - resolution: {integrity: sha512-ebY5bwZVB0onxxyTbJch//VidVVV8jo/F13n+TV5s/3ZywsC3/XZsfMHaxlFmpvP/G17+/C9JVoEXT+uwjT+/Q==} - engines: {node: ^22.22.3 || ^24.15.0 || >=26.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} + '@angular-eslint/template-parser@22.2.0': + resolution: {integrity: sha512-RCDEzYRFIV8UPWsAgj8v8ryKwXq+wAmEHqMJRqMdAGXRWrxziWvCxI7nCsj74u/11GXZKSAz3SQmwfkdWiZEQA==} + peerDependencies: + eslint: ^9.0.0 || ^10.0.0 + typescript: '*' - '@angular-eslint/schematics@0.2.0-beta.1': - resolution: {integrity: sha512-1UhJ9caYWF5U4YleQn5JoXW3rz5+UpkM62ijc+Lv/9NLaG2UcHZsXfWmocvWWgm4JBs5b2E5KK1jSj//DIGkhw==} + '@angular-eslint/utils@22.2.0': + resolution: {integrity: sha512-hAAMlPhaoLI0W4CmICrLp58Jm0pMs4OBL/DYvjFu7cdoey0fRMRBiHV1Fw5lT1oHtLjsFj0n6TzvpbjGYkaYvw==} peerDependencies: - '@angular-devkit/schematics': '*' + '@typescript-eslint/utils': ^8.0.0 + eslint: ^9.0.0 || ^10.0.0 + typescript: '*' '@babel/code-frame@7.29.0': resolution: {integrity: sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==} @@ -724,9 +742,9 @@ packages: yauzl: optional: true - '@schematics/angular@19.2.27': - resolution: {integrity: sha512-kJX5nyDjwo6iHQ+g/AJa+4SyHRSQyGgutpqXUIuYY2htGWVS1HUQlHfwAER5btjSNKe/iHgh4pzYGZfvJ2V6/A==} - engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} + '@schematics/angular@22.1.7': + resolution: {integrity: sha512-acBv147JjnwtWFgC8Af0KFBzPpb/TWaYxoWN/Ou3pXtUhYiEqnrdJeoFz3ssDw26eKFIdWnVBLB/dHORBykPBg==} + engines: {node: ^22.22.3 || ^24.15.0 || >=26.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} '@sinclair/typebox@0.27.10': resolution: {integrity: sha512-MTBk/3jGLNB2tVxv6uLlFh1iu64iYOQ2PbdOSK3NW8JZsmlaOh2q6sdtKowBhfw8QFLmYNzTW4/oK4uATIi6ZA==} @@ -752,6 +770,9 @@ packages: '@types/babel__traverse@7.28.0': resolution: {integrity: sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==} + '@types/esrecurse@4.3.1': + resolution: {integrity: sha512-xJBAbDifo5hpffDBuHl0Y8ywswbiAp/Wi7Y/GtAgSlZyIABppyurxVueOPE8LUQOxdlgi6Zqce7uoEpqNTeiUw==} + '@types/estree@1.0.9': resolution: {integrity: sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==} @@ -915,9 +936,6 @@ packages: ajv@6.15.0: resolution: {integrity: sha512-fgFx7Hfoq60ytK2c7DhnF8jIvzYgOMxfugjLOSMHjLIPgenqa7S7oaagATUq99mV6IYvN2tRmC0wnTYX6iPbMw==} - ajv@8.18.0: - resolution: {integrity: sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==} - ajv@8.20.0: resolution: {integrity: sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA==} @@ -956,6 +974,10 @@ packages: argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + aria-query@5.3.2: + resolution: {integrity: sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==} + engines: {node: '>= 0.4'} + array-buffer-byte-length@1.0.2: resolution: {integrity: sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==} engines: {node: '>= 0.4'} @@ -998,6 +1020,10 @@ packages: axios@1.18.1: resolution: {integrity: sha512-3nTvFlvpn9Zu/RkHUqtc7/+al4UpRW5az71ap5zccp6e8RAYEzhMTecX8Dz1wWDYrPpUoB1HAQEGEAEvUr7S9g==} + axobject-query@4.1.0: + resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} + engines: {node: '>= 0.4'} + babel-jest@29.7.0: resolution: {integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -1030,17 +1056,11 @@ packages: resolution: {integrity: sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==} engines: {node: 18 || 20 || >=22} - base64-js@1.5.1: - resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} - - baseline-browser-mapping@2.10.40: - resolution: {integrity: sha512-BSSLZ9/Cjjv7Gtj5B68ZzXcXUg8iOf3fme+FCuh8rC/Go+Kmh8cox7M3A8dolou16s64QjLPOSdngh7GxXvkSw==} + baseline-browser-mapping@2.11.20: + resolution: {integrity: sha512-H0ulySigv6icDJ1F7SjtdCD6PrhTpdYCmP0CactWy1+ekh0AFd0o1Wn5T8b+hnTmdBx19u9yhL6wvCylXMY7zw==} engines: {node: '>=6.0.0'} hasBin: true - bl@4.1.0: - resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} - boolbase@1.0.0: resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} @@ -1058,8 +1078,8 @@ packages: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} - browserslist@4.28.4: - resolution: {integrity: sha512-MTc8i/x9jBQd1iMw2CFGS+rwMa07eYjLR0CCTLDACl9xhxy+nIs3KeML/biicXtk9JrZ6dnnTatmc7ErPXIxqw==} + browserslist@4.28.8: + resolution: {integrity: sha512-V2NpofLblG64mfOtSgDhOJESZEGogzDMBv/q+W6oc4LXWP/q75eOXoOaaOu1EOadB9U4Bwx/e0yzbvwKH8zalA==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true @@ -1072,9 +1092,6 @@ packages: buffer-from@1.1.2: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} - buffer@5.7.1: - resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} - builtin-modules@1.1.1: resolution: {integrity: sha512-wxXCdllwGhI2kCC0MnvTGYTMvnVZTvqgypkiTI8Pa5tcz2i6VqsqwYGgqwXji+4RgCzms6EajE4IxiUH6HH8nQ==} engines: {node: '>=0.10.0'} @@ -1103,8 +1120,8 @@ packages: resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} engines: {node: '>=10'} - caniuse-lite@1.0.30001799: - resolution: {integrity: sha512-hG1bReV+OUU+MOqK4t/ZWI0tZOyz3rqS9XuhOUz1cIcbwBKjOyJEJuw9ER5JuNyqxNk8u/JUVbGibBOL1yrjFw==} + caniuse-lite@1.0.30001810: + resolution: {integrity: sha512-TITQPUkaz+aVk5GL6NhOdwk1aEaNTSDPsGFWrTuhKGtjTF70jL/Oht2W4c6rXUe5fu7Ie19VIahAXHIIiWWNeg==} chalk@2.4.2: resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} @@ -1122,10 +1139,6 @@ packages: resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==} engines: {node: '>=10'} - chokidar@4.0.3: - resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} - engines: {node: '>= 14.16.0'} - chokidar@5.0.0: resolution: {integrity: sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw==} engines: {node: '>= 20.19.0'} @@ -1143,18 +1156,10 @@ packages: cjs-module-lexer@1.4.3: resolution: {integrity: sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q==} - cli-cursor@3.1.0: - resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} - engines: {node: '>=8'} - cli-cursor@5.0.0: resolution: {integrity: sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==} engines: {node: '>=18'} - cli-spinners@2.9.2: - resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==} - engines: {node: '>=6'} - cli-spinners@3.4.0: resolution: {integrity: sha512-bXfOC4QcT1tKXGorxL3wbJm6XJPDqEnij2gQ2m7ESQuE+/z9YFIWnl/5RpTiKWbMq3EVKR4fRLJGn6DVfu0mpw==} engines: {node: '>=18.20'} @@ -1167,10 +1172,6 @@ packages: resolution: {integrity: sha512-k7ndgKhwoQveBL+/1tqGJYNz097I7WOvwbmmU2AR5+magtbjPWQTS1C5vzGkBC8Ym8UWRzfKUzUUqFLypY4Q+w==} engines: {node: '>=20'} - clone@1.0.4: - resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} - engines: {node: '>=0.8'} - co@4.6.0: resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==} engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} @@ -1291,9 +1292,6 @@ packages: resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} engines: {node: '>=0.10.0'} - defaults@1.0.4: - resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} - define-data-property@1.1.4: resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} engines: {node: '>= 0.4'} @@ -1333,8 +1331,8 @@ packages: resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} engines: {node: '>= 0.4'} - electron-to-chromium@1.5.380: - resolution: {integrity: sha512-W6d5AbuEoRayO447cqrg6lKJIlscgRnnxOZl/08kfV71BQDoEBC7Wwis68z87LjyK6f4kWyTaubuDbhHKrZkbA==} + electron-to-chromium@1.5.420: + resolution: {integrity: sha512-2yD6XreGusOfNV+dUcvipJEXc3n/n7fgr7996aszTG+YY5E4mqM4tOq/3uhP129cazL9YHbVWSpc79ePotWtPA==} emittery@0.13.1: resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==} @@ -1506,6 +1504,10 @@ packages: resolution: {integrity: sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + eslint-scope@9.1.2: + resolution: {integrity: sha512-xS90H51cKw0jltxmvmHy2Iai1LIqrfbw57b79w/J7MfvDfkIkFZ+kj6zC3BjtUwh150HsSSdxXZcsuv72miDFQ==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} + eslint-visitor-keys@3.4.3: resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -1521,6 +1523,7 @@ packages: eslint@9.39.4: resolution: {integrity: sha512-XoMjdBOwe/esVgEvLmNsD3IRHkm7fbKIUGvrleloJXUZgDHig2IPWNniv+GwjyJXzuNqVjlr5+4yVUZjycJwfQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options. hasBin: true peerDependencies: jiti: '*' @@ -1573,8 +1576,8 @@ packages: fast-levenshtein@2.0.6: resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} - fast-uri@3.1.5: - resolution: {integrity: sha512-gHwA1O9LDIcKunMKhObS/HimwtehO1nPUECKAu5TpKgaO19fcWEl4bliWe1jWxVFvIXztJjjQ4L8XQ1EU9f7Jw==} + fast-uri@3.1.6: + resolution: {integrity: sha512-7Ical1vFEMr0onbVzEDIreM22I4khW+fzyQPwvAFWBp1iwdshSZRsL4jjRvPG9JP1uiqMHRto+YU6R2/CzDz5Q==} fb-watchman@2.0.2: resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==} @@ -1780,9 +1783,6 @@ packages: resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} engines: {node: '>=0.10.0'} - ieee754@1.2.1: - resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} - ignore@5.3.2: resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} engines: {node: '>= 4'} @@ -1791,6 +1791,10 @@ packages: resolution: {integrity: sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==} engines: {node: '>= 4'} + ignore@7.0.6: + resolution: {integrity: sha512-BAg6QkE8W+TuQLrrw0Ugr7HegXduRuuj8/ti2kSOc+jz1dmx8/WNcjr6XGnq5YpDWxFwwaavqD0+jIUOKelTsw==} + engines: {node: '>= 4'} + immutable@5.1.9: resolution: {integrity: sha512-m8nVez3rwrgmWxtLMt1ZYXB2Lv7OKYn/disyxAlSDYAlKSlFoPPfIAmAM/M5xqL4m4C/wAPw7S2/CNaUii1Hxg==} @@ -1889,10 +1893,6 @@ packages: resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} engines: {node: '>=0.10.0'} - is-interactive@1.0.0: - resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==} - engines: {node: '>=8'} - is-interactive@2.0.0: resolution: {integrity: sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==} engines: {node: '>=12'} @@ -1941,10 +1941,6 @@ packages: resolution: {integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==} engines: {node: '>= 0.4'} - is-unicode-supported@0.1.0: - resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} - engines: {node: '>=10'} - is-unicode-supported@2.1.0: resolution: {integrity: sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==} engines: {node: '>=18'} @@ -2235,10 +2231,6 @@ packages: lodash@4.18.1: resolution: {integrity: sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==} - log-symbols@4.1.0: - resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} - engines: {node: '>=10'} - log-symbols@7.0.1: resolution: {integrity: sha512-ja1E3yCr9i/0hmBVaM0bfwDjnGy8I/s6PP4DFp+yP+a+mrHO4Rm7DtmnqROTUkHIkqffC84YY7AeqX6oFk0WFg==} engines: {node: '>=18'} @@ -2250,9 +2242,6 @@ packages: lru-cache@5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} - magic-string@0.30.17: - resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==} - magic-string@1.0.0: resolution: {integrity: sha512-CGvjzMN08iv6w1mm4/x3Gh1hLb4VnyRUA15FFpl6CsCIGGoe36k7kY5KNz9QDbSBN5I/fWHM6ZlIkUTa5xdUEA==} @@ -2358,8 +2347,8 @@ packages: node-int64@0.4.0: resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} - node-releases@2.0.50: - resolution: {integrity: sha512-J6l92tKHX6w8Jy5nO1Vuc01NoIiRGi/d6qBKVxh+IQ8Cr3b6HbVNfKiF8ZpFKufTwpwxMmce2W3iQZ861ZRyTg==} + node-releases@2.0.54: + resolution: {integrity: sha512-YHs7BmmcsdAI5Ozuf8JZo6PT0mv2GIWC9vMfvUC3dp65M8hn7Ux8CPL+2oBI7juNuj9d0ndhTcznq2ODBps9cQ==} engines: {node: '>=18'} normalize-path@3.0.0: @@ -2416,10 +2405,6 @@ packages: resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} engines: {node: '>= 0.8.0'} - ora@5.4.1: - resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==} - engines: {node: '>=10'} - ora@9.4.1: resolution: {integrity: sha512-6VlU9MLXbjVQD04AZCMX28hVtA5bUoadvUqO76MUCVA0ilwJbMiHsITRPfyVm6p/BC0Av/BXMujx39WCe1LEqw==} engines: {node: '>=20'} @@ -2585,14 +2570,6 @@ packages: readable-stream@2.3.8: resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} - readable-stream@3.6.2: - resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} - engines: {node: '>= 6'} - - readdirp@4.1.2: - resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==} - engines: {node: '>= 14.18.0'} - readdirp@5.0.0: resolution: {integrity: sha512-9u/XQ1pvrQtYyMpZe7DXKv2p5CNvyVwzUB6uhLAnQwHMSgKMBR62lc7AHljaeteeHXn11XTAaLLUVZYVZyuRBQ==} engines: {node: '>= 20.19.0'} @@ -2673,10 +2650,6 @@ packages: engines: {node: '>= 0.4'} hasBin: true - restore-cursor@3.1.0: - resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} - engines: {node: '>=8'} - restore-cursor@5.1.0: resolution: {integrity: sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==} engines: {node: '>=18'} @@ -2690,9 +2663,6 @@ packages: deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true - rxjs@7.8.1: - resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} - rxjs@7.8.2: resolution: {integrity: sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==} @@ -2703,9 +2673,6 @@ packages: safe-buffer@5.1.2: resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} - safe-buffer@5.2.1: - resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} - safe-push-apply@1.0.0: resolution: {integrity: sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==} engines: {node: '>= 0.4'} @@ -2811,10 +2778,6 @@ packages: resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} engines: {node: '>=0.10.0'} - source-map@0.7.4: - resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} - engines: {node: '>= 8'} - source-map@0.7.6: resolution: {integrity: sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==} engines: {node: '>= 12'} @@ -2878,9 +2841,6 @@ packages: string_decoder@1.1.1: resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} - string_decoder@1.3.0: - resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} - strip-ansi@6.0.1: resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} engines: {node: '>=8'} @@ -3014,8 +2974,8 @@ packages: engines: {node: '>=4.2.0'} hasBin: true - typescript@5.6.3: - resolution: {integrity: sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==} + typescript@6.0.3: + resolution: {integrity: sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw==} engines: {node: '>=14.17'} hasBin: true @@ -3026,11 +2986,11 @@ packages: undici-types@6.21.0: resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} - update-browserslist-db@1.2.3: - resolution: {integrity: sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==} + update-browserslist-db@1.3.2: + resolution: {integrity: sha512-UQ+MSxlhRm1bzjhU+DcuXfjFO1FzNtqhK5+9Yvlp90ItDLk5vT932A0rFu619nf7RVS+Y/VeaUW1jaRDqZ8VJw==} hasBin: true peerDependencies: - browserslist: '>= 4.21.0' + browserslist: '>=4.28.7' uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} @@ -3056,9 +3016,6 @@ packages: walker@1.0.8: resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==} - wcwidth@1.0.1: - resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} - webdriver-bidi-protocol@0.4.2: resolution: {integrity: sha512-VSV+fzfChirL3e7jay2yUC7B4HQCGtEWEg/MSSQbK+qWbqeGlRLlXTzPpYr3XGUvbpDHumWZBJxgesg4N7dbtA==} @@ -3161,18 +3118,7 @@ packages: snapshots: - '@angular-devkit/core@19.2.27(chokidar@4.0.3)': - dependencies: - ajv: 8.18.0 - ajv-formats: 3.0.1(ajv@8.18.0) - jsonc-parser: 3.3.1 - picomatch: 4.0.5 - rxjs: 7.8.1 - source-map: 0.7.4 - optionalDependencies: - chokidar: 4.0.3 - - '@angular-devkit/core@22.1.3(chokidar@5.0.0)': + '@angular-devkit/core@22.1.7(chokidar@5.0.0)': dependencies: ajv: 8.20.0 ajv-formats: 3.0.1(ajv@8.20.0) @@ -3183,19 +3129,9 @@ snapshots: optionalDependencies: chokidar: 5.0.0 - '@angular-devkit/schematics@19.2.27(chokidar@4.0.3)': + '@angular-devkit/schematics@22.1.7(chokidar@5.0.0)': dependencies: - '@angular-devkit/core': 19.2.27(chokidar@4.0.3) - jsonc-parser: 3.3.1 - magic-string: 0.30.17 - ora: 5.4.1 - rxjs: 7.8.1 - transitivePeerDependencies: - - chokidar - - '@angular-devkit/schematics@22.1.3(chokidar@5.0.0)': - dependencies: - '@angular-devkit/core': 22.1.3(chokidar@5.0.0) + '@angular-devkit/core': 22.1.7(chokidar@5.0.0) jsonc-parser: 3.3.1 magic-string: 1.0.0 ora: 9.4.1 @@ -3203,10 +3139,59 @@ snapshots: transitivePeerDependencies: - chokidar - '@angular-eslint/schematics@0.2.0-beta.1(@angular-devkit/schematics@22.1.3(chokidar@5.0.0))': + '@angular-eslint/bundled-angular-compiler@22.2.0': {} + + '@angular-eslint/eslint-plugin-template@22.2.0(@angular-eslint/template-parser@22.2.0(eslint@9.39.4)(typescript@6.0.3))(@typescript-eslint/types@8.63.0)(@typescript-eslint/utils@8.63.0(eslint@9.39.4)(typescript@6.0.3))(eslint@9.39.4)(typescript@6.0.3)': dependencies: - '@angular-devkit/schematics': 22.1.3(chokidar@5.0.0) + '@angular-eslint/bundled-angular-compiler': 22.2.0 + '@angular-eslint/template-parser': 22.2.0(eslint@9.39.4)(typescript@6.0.3) + '@angular-eslint/utils': 22.2.0(@typescript-eslint/utils@8.63.0(eslint@9.39.4)(typescript@6.0.3))(eslint@9.39.4)(typescript@6.0.3) + '@typescript-eslint/types': 8.63.0 + '@typescript-eslint/utils': 8.63.0(eslint@9.39.4)(typescript@6.0.3) + aria-query: 5.3.2 + axobject-query: 4.1.0 + eslint: 9.39.4 + typescript: 6.0.3 + + '@angular-eslint/eslint-plugin@22.2.0(@typescript-eslint/utils@8.63.0(eslint@9.39.4)(typescript@6.0.3))(eslint@9.39.4)(typescript@6.0.3)': + dependencies: + '@angular-eslint/bundled-angular-compiler': 22.2.0 + '@angular-eslint/utils': 22.2.0(@typescript-eslint/utils@8.63.0(eslint@9.39.4)(typescript@6.0.3))(eslint@9.39.4)(typescript@6.0.3) + '@typescript-eslint/utils': 8.63.0(eslint@9.39.4)(typescript@6.0.3) + eslint: 9.39.4 + ts-api-utils: 2.5.0(typescript@6.0.3) + typescript: 6.0.3 + + '@angular-eslint/schematics@22.2.0(@angular-eslint/template-parser@22.2.0(eslint@9.39.4)(typescript@6.0.3))(@typescript-eslint/types@8.63.0)(@typescript-eslint/utils@8.63.0(eslint@9.39.4)(typescript@6.0.3))(chokidar@5.0.0)(eslint@9.39.4)(typescript@6.0.3)': + dependencies: + '@angular-devkit/core': 22.1.7(chokidar@5.0.0) + '@angular-devkit/schematics': 22.1.7(chokidar@5.0.0) + '@angular-eslint/eslint-plugin': 22.2.0(@typescript-eslint/utils@8.63.0(eslint@9.39.4)(typescript@6.0.3))(eslint@9.39.4)(typescript@6.0.3) + '@angular-eslint/eslint-plugin-template': 22.2.0(@angular-eslint/template-parser@22.2.0(eslint@9.39.4)(typescript@6.0.3))(@typescript-eslint/types@8.63.0)(@typescript-eslint/utils@8.63.0(eslint@9.39.4)(typescript@6.0.3))(eslint@9.39.4)(typescript@6.0.3) + ignore: 7.0.6 + semver: 7.8.5 strip-json-comments: 3.1.1 + transitivePeerDependencies: + - '@angular-eslint/template-parser' + - '@typescript-eslint/types' + - '@typescript-eslint/utils' + - chokidar + - eslint + - typescript + + '@angular-eslint/template-parser@22.2.0(eslint@9.39.4)(typescript@6.0.3)': + dependencies: + '@angular-eslint/bundled-angular-compiler': 22.2.0 + eslint: 9.39.4 + eslint-scope: 9.1.2 + typescript: 6.0.3 + + '@angular-eslint/utils@22.2.0(@typescript-eslint/utils@8.63.0(eslint@9.39.4)(typescript@6.0.3))(eslint@9.39.4)(typescript@6.0.3)': + dependencies: + '@angular-eslint/bundled-angular-compiler': 22.2.0 + '@typescript-eslint/utils': 8.63.0(eslint@9.39.4)(typescript@6.0.3) + eslint: 9.39.4 + typescript: 6.0.3 '@babel/code-frame@7.29.0': dependencies: @@ -3262,7 +3247,7 @@ snapshots: dependencies: '@babel/compat-data': 7.29.7 '@babel/helper-validator-option': 7.29.7 - browserslist: 4.28.4 + browserslist: 4.28.8 lru-cache: 5.1.1 semver: 6.3.1 @@ -3798,11 +3783,12 @@ snapshots: optionalDependencies: yauzl: 2.10.0 - '@schematics/angular@19.2.27(chokidar@4.0.3)': + '@schematics/angular@22.1.7(chokidar@5.0.0)': dependencies: - '@angular-devkit/core': 19.2.27(chokidar@4.0.3) - '@angular-devkit/schematics': 19.2.27(chokidar@4.0.3) + '@angular-devkit/core': 22.1.7(chokidar@5.0.0) + '@angular-devkit/schematics': 22.1.7(chokidar@5.0.0) jsonc-parser: 3.3.1 + typescript: 6.0.3 transitivePeerDependencies: - chokidar @@ -3839,6 +3825,8 @@ snapshots: dependencies: '@babel/types': 7.29.0 + '@types/esrecurse@4.3.1': {} + '@types/estree@1.0.9': {} '@types/graceful-fs@4.1.9': @@ -3903,15 +3891,15 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.63.0(eslint@9.39.4)(typescript@5.6.3)': + '@typescript-eslint/parser@8.63.0(eslint@9.39.4)(typescript@6.0.3)': dependencies: '@typescript-eslint/scope-manager': 8.63.0 '@typescript-eslint/types': 8.63.0 - '@typescript-eslint/typescript-estree': 8.63.0(typescript@5.6.3) + '@typescript-eslint/typescript-estree': 8.63.0(typescript@6.0.3) '@typescript-eslint/visitor-keys': 8.63.0 debug: 4.4.3 eslint: 9.39.4 - typescript: 5.6.3 + typescript: 6.0.3 transitivePeerDependencies: - supports-color @@ -3933,12 +3921,12 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/project-service@8.63.0(typescript@5.6.3)': + '@typescript-eslint/project-service@8.63.0(typescript@6.0.3)': dependencies: - '@typescript-eslint/tsconfig-utils': 8.63.0(typescript@5.6.3) + '@typescript-eslint/tsconfig-utils': 8.63.0(typescript@6.0.3) '@typescript-eslint/types': 8.63.0 debug: 4.4.3 - typescript: 5.6.3 + typescript: 6.0.3 transitivePeerDependencies: - supports-color @@ -3960,9 +3948,9 @@ snapshots: dependencies: typescript: 4.9.5 - '@typescript-eslint/tsconfig-utils@8.63.0(typescript@5.6.3)': + '@typescript-eslint/tsconfig-utils@8.63.0(typescript@6.0.3)': dependencies: - typescript: 5.6.3 + typescript: 6.0.3 '@typescript-eslint/type-utils@8.63.0(eslint@9.39.4)(typescript@4.9.5)': dependencies: @@ -3988,7 +3976,7 @@ snapshots: '@typescript-eslint/visitor-keys': 8.61.1 debug: 4.4.3 minimatch: 10.2.5 - semver: 7.8.4 + semver: 7.8.5 tinyglobby: 0.2.16 ts-api-utils: 2.5.0(typescript@4.9.5) typescript: 4.9.5 @@ -4010,18 +3998,18 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/typescript-estree@8.63.0(typescript@5.6.3)': + '@typescript-eslint/typescript-estree@8.63.0(typescript@6.0.3)': dependencies: - '@typescript-eslint/project-service': 8.63.0(typescript@5.6.3) - '@typescript-eslint/tsconfig-utils': 8.63.0(typescript@5.6.3) + '@typescript-eslint/project-service': 8.63.0(typescript@6.0.3) + '@typescript-eslint/tsconfig-utils': 8.63.0(typescript@6.0.3) '@typescript-eslint/types': 8.63.0 '@typescript-eslint/visitor-keys': 8.63.0 debug: 4.4.3 minimatch: 10.2.5 semver: 7.8.5 tinyglobby: 0.2.16 - ts-api-utils: 2.5.0(typescript@5.6.3) - typescript: 5.6.3 + ts-api-utils: 2.5.0(typescript@6.0.3) + typescript: 6.0.3 transitivePeerDependencies: - supports-color @@ -4047,6 +4035,17 @@ snapshots: transitivePeerDependencies: - supports-color + '@typescript-eslint/utils@8.63.0(eslint@9.39.4)(typescript@6.0.3)': + dependencies: + '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.4) + '@typescript-eslint/scope-manager': 8.63.0 + '@typescript-eslint/types': 8.63.0 + '@typescript-eslint/typescript-estree': 8.63.0(typescript@6.0.3) + eslint: 9.39.4 + typescript: 6.0.3 + transitivePeerDependencies: + - supports-color + '@typescript-eslint/visitor-keys@8.61.1': dependencies: '@typescript-eslint/types': 8.61.1 @@ -4071,10 +4070,6 @@ snapshots: transitivePeerDependencies: - supports-color - ajv-formats@3.0.1(ajv@8.18.0): - optionalDependencies: - ajv: 8.18.0 - ajv-formats@3.0.1(ajv@8.20.0): optionalDependencies: ajv: 8.20.0 @@ -4086,17 +4081,10 @@ snapshots: json-schema-traverse: 0.4.1 uri-js: 4.4.1 - ajv@8.18.0: - dependencies: - fast-deep-equal: 3.1.3 - fast-uri: 3.1.5 - json-schema-traverse: 1.0.0 - require-from-string: 2.0.2 - ajv@8.20.0: dependencies: fast-deep-equal: 3.1.3 - fast-uri: 3.1.5 + fast-uri: 3.1.6 json-schema-traverse: 1.0.0 require-from-string: 2.0.2 @@ -4127,6 +4115,8 @@ snapshots: argparse@2.0.1: {} + aria-query@5.3.2: {} + array-buffer-byte-length@1.0.2: dependencies: call-bound: 1.0.4 @@ -4202,6 +4192,8 @@ snapshots: - debug - supports-color + axobject-query@4.1.0: {} + babel-jest@29.7.0(@babel/core@7.29.7): dependencies: '@babel/core': 7.29.7 @@ -4261,15 +4253,7 @@ snapshots: balanced-match@4.0.4: {} - base64-js@1.5.1: {} - - baseline-browser-mapping@2.10.40: {} - - bl@4.1.0: - dependencies: - buffer: 5.7.1 - inherits: 2.0.4 - readable-stream: 3.6.2 + baseline-browser-mapping@2.11.20: {} boolbase@1.0.0: {} @@ -4290,13 +4274,13 @@ snapshots: dependencies: fill-range: 7.1.1 - browserslist@4.28.4: + browserslist@4.28.8: dependencies: - baseline-browser-mapping: 2.10.40 - caniuse-lite: 1.0.30001799 - electron-to-chromium: 1.5.380 - node-releases: 2.0.50 - update-browserslist-db: 1.2.3(browserslist@4.28.4) + baseline-browser-mapping: 2.11.20 + caniuse-lite: 1.0.30001810 + electron-to-chromium: 1.5.420 + node-releases: 2.0.54 + update-browserslist-db: 1.3.2(browserslist@4.28.8) bser@2.1.1: dependencies: @@ -4307,11 +4291,6 @@ snapshots: buffer-from@1.1.2: {} - buffer@5.7.1: - dependencies: - base64-js: 1.5.1 - ieee754: 1.2.1 - builtin-modules@1.1.1: {} call-bind-apply-helpers@1.0.2: @@ -4337,7 +4316,7 @@ snapshots: camelcase@6.3.0: {} - caniuse-lite@1.0.30001799: {} + caniuse-lite@1.0.30001810: {} chalk@2.4.2: dependencies: @@ -4354,11 +4333,6 @@ snapshots: char-regex@1.0.2: {} - chokidar@4.0.3: - dependencies: - readdirp: 4.1.2 - optional: true - chokidar@5.0.0: dependencies: readdirp: 5.0.0 @@ -4373,16 +4347,10 @@ snapshots: cjs-module-lexer@1.4.3: {} - cli-cursor@3.1.0: - dependencies: - restore-cursor: 3.1.0 - cli-cursor@5.0.0: dependencies: restore-cursor: 5.1.0 - cli-spinners@2.9.2: {} - cli-spinners@3.4.0: {} cliui@8.0.1: @@ -4397,8 +4365,6 @@ snapshots: strip-ansi: 7.2.0 wrap-ansi: 9.0.2 - clone@1.0.4: {} - co@4.6.0: {} collect-v8-coverage@1.0.3: {} @@ -4505,10 +4471,6 @@ snapshots: deepmerge@4.3.1: {} - defaults@1.0.4: - dependencies: - clone: 1.0.4 - define-data-property@1.1.4: dependencies: es-define-property: 1.0.1 @@ -4544,7 +4506,7 @@ snapshots: es-errors: 1.3.0 gopd: 1.2.0 - electron-to-chromium@1.5.380: {} + electron-to-chromium@1.5.420: {} emittery@0.13.1: {} @@ -4811,6 +4773,13 @@ snapshots: esrecurse: 4.3.0 estraverse: 5.3.0 + eslint-scope@9.1.2: + dependencies: + '@types/esrecurse': 4.3.1 + '@types/estree': 1.0.9 + esrecurse: 4.3.0 + estraverse: 5.3.0 + eslint-visitor-keys@3.4.3: {} eslint-visitor-keys@4.2.1: {} @@ -4908,7 +4877,7 @@ snapshots: fast-levenshtein@2.0.6: {} - fast-uri@3.1.5: {} + fast-uri@3.1.6: {} fb-watchman@2.0.2: dependencies: @@ -5103,12 +5072,12 @@ snapshots: safer-buffer: 2.1.2 optional: true - ieee754@1.2.1: {} - ignore@5.3.2: {} ignore@7.0.5: {} + ignore@7.0.6: {} + immutable@5.1.9: {} import-cwd@3.0.0: @@ -5212,8 +5181,6 @@ snapshots: dependencies: is-extglob: 2.1.1 - is-interactive@1.0.0: {} - is-interactive@2.0.0: {} is-map@2.0.3: {} @@ -5257,8 +5224,6 @@ snapshots: dependencies: which-typed-array: 1.1.20 - is-unicode-supported@0.1.0: {} - is-unicode-supported@2.1.0: {} is-weakmap@2.0.2: {} @@ -5745,11 +5710,6 @@ snapshots: lodash@4.18.1: {} - log-symbols@4.1.0: - dependencies: - chalk: 4.1.2 - is-unicode-supported: 0.1.0 - log-symbols@7.0.1: dependencies: is-unicode-supported: 2.1.0 @@ -5763,10 +5723,6 @@ snapshots: dependencies: yallist: 3.1.1 - magic-string@0.30.17: - dependencies: - '@jridgewell/sourcemap-codec': 1.5.5 - magic-string@1.0.0: dependencies: '@jridgewell/sourcemap-codec': 1.5.5 @@ -5862,7 +5818,7 @@ snapshots: node-int64@0.4.0: {} - node-releases@2.0.50: {} + node-releases@2.0.54: {} normalize-path@3.0.0: {} @@ -5931,18 +5887,6 @@ snapshots: type-check: 0.4.0 word-wrap: 1.2.5 - ora@5.4.1: - dependencies: - bl: 4.1.0 - chalk: 4.1.2 - cli-cursor: 3.1.0 - cli-spinners: 2.9.2 - is-interactive: 1.0.0 - is-unicode-supported: 0.1.0 - log-symbols: 4.1.0 - strip-ansi: 6.0.1 - wcwidth: 1.0.1 - ora@9.4.1: dependencies: chalk: 5.6.2 @@ -6124,15 +6068,6 @@ snapshots: string_decoder: 1.1.1 util-deprecate: 1.0.2 - readable-stream@3.6.2: - dependencies: - inherits: 2.0.4 - string_decoder: 1.3.0 - util-deprecate: 1.0.2 - - readdirp@4.1.2: - optional: true - readdirp@5.0.0: {} recheck-jar@4.5.0: @@ -6214,11 +6149,6 @@ snapshots: path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 - restore-cursor@3.1.0: - dependencies: - onetime: 5.1.2 - signal-exit: 3.0.7 - restore-cursor@5.1.0: dependencies: onetime: 7.0.0 @@ -6230,10 +6160,6 @@ snapshots: dependencies: glob: 7.2.3 - rxjs@7.8.1: - dependencies: - tslib: 2.8.1 - rxjs@7.8.2: dependencies: tslib: 2.8.1 @@ -6248,8 +6174,6 @@ snapshots: safe-buffer@5.1.2: {} - safe-buffer@5.2.1: {} - safe-push-apply@1.0.0: dependencies: es-errors: 1.3.0 @@ -6364,8 +6288,6 @@ snapshots: source-map@0.6.1: {} - source-map@0.7.4: {} - source-map@0.7.6: {} spawn-sync@1.0.15: @@ -6463,10 +6385,6 @@ snapshots: dependencies: safe-buffer: 5.1.2 - string_decoder@1.3.0: - dependencies: - safe-buffer: 5.2.1 - strip-ansi@6.0.1: dependencies: ansi-regex: 5.0.1 @@ -6529,15 +6447,15 @@ snapshots: dependencies: typescript: 4.9.5 - ts-api-utils@2.5.0(typescript@5.6.3): + ts-api-utils@2.5.0(typescript@6.0.3): dependencies: - typescript: 5.6.3 + typescript: 6.0.3 tslib@1.14.1: {} tslib@2.8.1: {} - tslint@5.20.1(typescript@5.6.3): + tslint@5.20.1(typescript@6.0.3): dependencies: '@babel/code-frame': 7.29.0 builtin-modules: 1.1.1 @@ -6551,13 +6469,13 @@ snapshots: resolve: 1.22.12 semver: 7.8.5 tslib: 1.14.1 - tsutils: 2.29.0(typescript@5.6.3) - typescript: 5.6.3 + tsutils: 2.29.0(typescript@6.0.3) + typescript: 6.0.3 - tsutils@2.29.0(typescript@5.6.3): + tsutils@2.29.0(typescript@6.0.3): dependencies: tslib: 1.14.1 - typescript: 5.6.3 + typescript: 6.0.3 type-check@0.4.0: dependencies: @@ -6608,7 +6526,7 @@ snapshots: typescript@4.9.5: {} - typescript@5.6.3: {} + typescript@6.0.3: {} unbox-primitive@1.1.0: dependencies: @@ -6619,9 +6537,9 @@ snapshots: undici-types@6.21.0: {} - update-browserslist-db@1.2.3(browserslist@4.28.4): + update-browserslist-db@1.3.2(browserslist@4.28.8): dependencies: - browserslist: 4.28.4 + browserslist: 4.28.8 escalade: 3.2.0 picocolors: 1.1.1 @@ -6646,7 +6564,7 @@ snapshots: espree: 9.6.1 esquery: 1.7.0 lodash: 4.18.1 - semver: 7.8.4 + semver: 7.8.5 transitivePeerDependencies: - supports-color @@ -6665,10 +6583,6 @@ snapshots: dependencies: makeerror: 1.0.12 - wcwidth@1.0.1: - dependencies: - defaults: 1.0.4 - webdriver-bidi-protocol@0.4.2: {} which-boxed-primitive@1.1.1: From 357669323fe451f8a2aac69fc87d3b987ac79f62 Mon Sep 17 00:00:00 2001 From: dxvladislavvolkov Date: Thu, 3 Sep 2026 11:52:37 +0400 Subject: [PATCH 2/6] Add angular to minimumReleaseAgeExclude --- pnpm-workspace.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 5795c457e..364b4fff7 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -9,6 +9,9 @@ allowBuilds: minimumReleaseAgeExclude: - '@devexpress/eslint-plugin-dx-security@0.2.8' + - '@angular-devkit/core@22.1.7' + - '@angular-devkit/schematics@22.1.7' + - '@schematics/angular@22.1.7' overrides: "@babel/core@<=7.29.0": ">=7.29.7" From 363cf080dd48f7ab9cfc0545879f141b047c6bbf Mon Sep 17 00:00:00 2001 From: dxvladislavvolkov Date: Thu, 3 Sep 2026 11:56:00 +0400 Subject: [PATCH 3/6] Add overrides --- pnpm-workspace.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 364b4fff7..ef7ff9d2a 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -22,7 +22,8 @@ overrides: brace-expansion@>=4: "^5.0.9" braces@<3.0.3: ">=3.0.3" cross-spawn: 7.0.6 - fast-uri@>=3.0.0 <3.1.5: ^3.1.5 + browserslist@<=4.28.6: ">=4.28.7" + fast-uri@>=3.0.0 <3.1.6: ^3.1.6 flatted: "^3.4.3" form-data@>=4.0.0 <4.0.4: ">=4.0.6" ip-address@<=10.3.0: ">=10.3.1" From d42eef88987852e7581ad70a07c12eacc98b9bcf Mon Sep 17 00:00:00 2001 From: dxvladislavvolkov Date: Thu, 3 Sep 2026 12:11:05 +0400 Subject: [PATCH 4/6] Fix tests --- packages/devextreme-cli/testing/env.angular.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/devextreme-cli/testing/env.angular.js b/packages/devextreme-cli/testing/env.angular.js index a6b606a9c..f06cea19f 100644 --- a/packages/devextreme-cli/testing/env.angular.js +++ b/packages/devextreme-cli/testing/env.angular.js @@ -11,8 +11,8 @@ const sandboxPath = path.join(process.cwd(), './testing/sandbox/angular'); const appPath = path.join(sandboxPath, appName); const schematicsDirectory = '../../../../devextreme-schematics'; const schematicsPath = path.join(sandboxPath, schematicsDirectory); -const appComponentTemplatePath = path.join(appPath, 'src/app/app.component.html'); -const appComponentPath = path.join(appPath, 'src/app/app.component.ts'); +const appComponentTemplatePath = path.join(appPath, 'src/app/app.html'); +const appComponentPath = path.join(appPath, 'src/app/app.ts'); async function prepareSchematics() { await packageManager.runInstall({ From 0832e3e638e59be0fb91535509fdd688addf5fe7 Mon Sep 17 00:00:00 2001 From: dxvladislavvolkov Date: Thu, 3 Sep 2026 14:02:03 +0400 Subject: [PATCH 5/6] Change version of angular to 20 --- package.json | 2 +- .../src/applications/application.angular.js | 4 +- .../devextreme-cli/src/utility/ng-version.js | 2 +- packages/devextreme-schematics/package.json | 8 +- .../src/add-layout/index.ts | 2 +- .../src/utility/change.ts | 2 +- .../src/utility/routing.ts | 2 +- .../src/utility/source.ts | 2 +- packages/devextreme-schematics/tsconfig.json | 1 - pnpm-lock.yaml | 276 ++++++++++-------- pnpm-workspace.yaml | 6 +- 11 files changed, 171 insertions(+), 136 deletions(-) diff --git a/package.json b/package.json index f497c5f58..a378db293 100644 --- a/package.json +++ b/package.json @@ -15,7 +15,7 @@ "lint-sandbox": "eslint --config .github/eslint-security.config.mjs" }, "devDependencies": { - "@angular-eslint/schematics": "^22.2.0", + "@angular-eslint/schematics": "^20.7.0", "@devexpress/eslint-plugin-dx-security": "^0.2.8", "@typescript-eslint/parser": "^8.63.0", "eslint": "^9.39.4", diff --git a/packages/devextreme-cli/src/applications/application.angular.js b/packages/devextreme-cli/src/applications/application.angular.js index a791f8db2..b87867304 100644 --- a/packages/devextreme-cli/src/applications/application.angular.js +++ b/packages/devextreme-cli/src/applications/application.angular.js @@ -42,11 +42,9 @@ async function runNgCommand(commandArguments, commandOptions, commandConfig) { const hasNg = await hasSutableNgCli(); const depsVersionTag = extractDepsVersionTag(commandOptions); const npmCommandName = hasNg && !depsVersionTag ? 'ng' : 'npx'; - const [minCliLtsVersion] = minNgCliVersion.version.split('.'); - const ngCommandArguments = hasNg && !depsVersionTag ? [] - : ['-p', `@angular/cli@${depsVersionTag || minCliLtsVersion}`, 'ng']; + : ['-p', `@angular/cli@${depsVersionTag || 'latest'}`, 'ng']; ngCommandArguments.push(...commandArguments); return runCommand(npmCommandName, ngCommandArguments, commandConfig); diff --git a/packages/devextreme-cli/src/utility/ng-version.js b/packages/devextreme-cli/src/utility/ng-version.js index 62f5ac94d..4cfb43017 100644 --- a/packages/devextreme-cli/src/utility/ng-version.js +++ b/packages/devextreme-cli/src/utility/ng-version.js @@ -15,7 +15,7 @@ const getLocalNgVersion = () => { }; const getPublicNgVersion = () => { - const versions = JSON.parse(execSync('npm view @angular/cli@22 version --json').toString()); + const versions = JSON.parse(execSync('npm view @angular/cli@latest version --json').toString()); const version = Array.isArray(versions) ? versions[versions.length - 1] : versions; return new semver(version); }; diff --git a/packages/devextreme-schematics/package.json b/packages/devextreme-schematics/package.json index 9c242c9b2..a6ade11e0 100644 --- a/packages/devextreme-schematics/package.json +++ b/packages/devextreme-schematics/package.json @@ -22,9 +22,9 @@ ], "schematics": "./src/collection.json", "dependencies": { - "@angular-devkit/core": "^22.1.7", - "@angular-devkit/schematics": "^22.1.7", - "@schematics/angular": "^22.1.7", + "@angular-devkit/core": "^20.3.36", + "@angular-devkit/schematics": "^20.3.36", + "@schematics/angular": "^20.3.36", "parse5": "^7.3.0", "picomatch": "^4.0.5", "semver": "^7.8.5" @@ -37,6 +37,6 @@ "jasmine": "^2.99.0", "rxjs": "^7.8.2", "tslint": "^5.20.1", - "typescript": "~6.0.3" + "typescript": "~5.8.3" } } diff --git a/packages/devextreme-schematics/src/add-layout/index.ts b/packages/devextreme-schematics/src/add-layout/index.ts index 9b80a5577..7810eefd4 100644 --- a/packages/devextreme-schematics/src/add-layout/index.ts +++ b/packages/devextreme-schematics/src/add-layout/index.ts @@ -16,7 +16,7 @@ import { import { SourceFile -} from 'typescript'; +} from '@schematics/angular/third_party/github.com/Microsoft/TypeScript/lib/typescript'; import { strings } from '@angular-devkit/core'; diff --git a/packages/devextreme-schematics/src/utility/change.ts b/packages/devextreme-schematics/src/utility/change.ts index 3f4c13cc3..f48f0910c 100644 --- a/packages/devextreme-schematics/src/utility/change.ts +++ b/packages/devextreme-schematics/src/utility/change.ts @@ -3,7 +3,7 @@ import { InsertChange, Change } from '@schematics/angular/utility/change'; import { Node -} from 'typescript'; +} from '@schematics/angular/third_party/github.com/Microsoft/TypeScript/lib/typescript'; const newLine = ` `; diff --git a/packages/devextreme-schematics/src/utility/routing.ts b/packages/devextreme-schematics/src/utility/routing.ts index ea1b558e9..153bd323a 100644 --- a/packages/devextreme-schematics/src/utility/routing.ts +++ b/packages/devextreme-schematics/src/utility/routing.ts @@ -2,7 +2,7 @@ import { Node, SourceFile, SyntaxKind -} from 'typescript'; +} from '@schematics/angular/third_party/github.com/Microsoft/TypeScript/lib/typescript'; import { strings, diff --git a/packages/devextreme-schematics/src/utility/source.ts b/packages/devextreme-schematics/src/utility/source.ts index e7bfd3e5c..5c21713fb 100644 --- a/packages/devextreme-schematics/src/utility/source.ts +++ b/packages/devextreme-schematics/src/utility/source.ts @@ -3,7 +3,7 @@ import { createSourceFile, ScriptTarget, SourceFile -} from 'typescript'; +} from '@schematics/angular/third_party/github.com/Microsoft/TypeScript/lib/typescript'; export function getSourceFile(host: Tree, filePath: string): SourceFile | undefined { const buffer = host.read(filePath); diff --git a/packages/devextreme-schematics/tsconfig.json b/packages/devextreme-schematics/tsconfig.json index 1ee839b4f..a458abe18 100644 --- a/packages/devextreme-schematics/tsconfig.json +++ b/packages/devextreme-schematics/tsconfig.json @@ -9,7 +9,6 @@ "module": "commonjs", "moduleResolution": "node", "esModuleInterop": true, - "ignoreDeprecations": "6.0", "resolveJsonModule": true, "noEmitOnError": true, "noFallthroughCasesInSwitch": true, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 12f8792e6..fe9b89e16 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -32,8 +32,8 @@ importers: .: devDependencies: '@angular-eslint/schematics': - specifier: ^22.2.0 - version: 22.2.0(@angular-eslint/template-parser@22.2.0(eslint@9.39.4)(typescript@6.0.3))(@typescript-eslint/types@8.63.0)(@typescript-eslint/utils@8.63.0(eslint@9.39.4)(typescript@6.0.3))(chokidar@5.0.0)(eslint@9.39.4)(typescript@6.0.3) + specifier: ^20.7.0 + version: 20.7.0(@angular-eslint/template-parser@20.7.0(eslint@9.39.4)(typescript@6.0.3))(@typescript-eslint/types@8.63.0)(@typescript-eslint/utils@8.63.0(eslint@9.39.4)(typescript@6.0.3))(eslint@9.39.4)(typescript@6.0.3) '@devexpress/eslint-plugin-dx-security': specifier: ^0.2.8 version: 0.2.8(eslint@9.39.4) @@ -162,14 +162,14 @@ importers: packages/devextreme-schematics: dependencies: '@angular-devkit/core': - specifier: ^22.1.7 - version: 22.1.7(chokidar@5.0.0) + specifier: ^20.3.36 + version: 20.3.36 '@angular-devkit/schematics': - specifier: ^22.1.7 - version: 22.1.7(chokidar@5.0.0) + specifier: ^20.3.36 + version: 20.3.36 '@schematics/angular': - specifier: ^22.1.7 - version: 22.1.7(chokidar@5.0.0) + specifier: ^20.3.36 + version: 20.3.36 parse5: specifier: ^7.3.0 version: 7.3.0 @@ -200,59 +200,72 @@ importers: version: 7.8.2 tslint: specifier: ^5.20.1 - version: 5.20.1(typescript@6.0.3) + version: 5.20.1(typescript@5.8.3) typescript: - specifier: ~6.0.3 - version: 6.0.3 + specifier: ~5.8.3 + version: 5.8.3 packages: - '@angular-devkit/core@22.1.7': - resolution: {integrity: sha512-RKayeOOjhcIe/iBOM1fmtI5pjXwBEJh+u55VnSeIwYvFNXyxI0/jdRw4T6uhwusQ+1bzyya4d8q1mT9oaOQ/5A==} - engines: {node: ^22.22.3 || ^24.15.0 || >=26.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} + '@angular-devkit/core@20.3.35': + resolution: {integrity: sha512-RefMFJA7qRBxEDu3a6bVNK9o5vcHXxN8xKaCzENBrOIO6XamthoGMZIJrIT213KpHoEbLTcJjESqGFCpYmY6oA==} + engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} peerDependencies: - chokidar: ^5.0.0 + chokidar: ^4.0.0 peerDependenciesMeta: chokidar: optional: true - '@angular-devkit/schematics@22.1.7': - resolution: {integrity: sha512-KOcVeT4MCsoPt6AMnXH7AbWZnzlKXhMyua2ITWij4UbLaNWCDwfIug/xrZssYLHUFwebCIqsR8iuG/BPH8Cz2w==} - engines: {node: ^22.22.3 || ^24.15.0 || >=26.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} + '@angular-devkit/core@20.3.36': + resolution: {integrity: sha512-fEbY8VFXP5ODfkDQJ4pNCexvQU0lDxL7azI+qbGu7osGgORg/LJaEGAXRKBBGvpLDpHcGjdSD26/Tms7xXmMnQ==} + engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} + peerDependencies: + chokidar: ^4.0.0 + peerDependenciesMeta: + chokidar: + optional: true - '@angular-eslint/bundled-angular-compiler@22.2.0': - resolution: {integrity: sha512-JYjUXcnZCMg23HXvHnaGcMvVF0WP9b/n9I9Oz3zY+lH2A2HkcCUYnTg3lhDghZfCcermNaz+JvXp88NX+cgA6A==} + '@angular-devkit/schematics@20.3.35': + resolution: {integrity: sha512-7lzrY5pYCTvL9dR/pi4fzAl1BS8PdiplTd+QNFEJv7/rZWTmqt+7rmDHm/8vEl1aYEFmBckzb3PMK+NBMuQkaw==} + engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} - '@angular-eslint/eslint-plugin-template@22.2.0': - resolution: {integrity: sha512-v/X8/QJXWXaOkU8chmIPWu/86JAca5Tje6EFIf3G2VOxxuGzDpCPPuAKLBclhK+dtFHuJnqKYKZOfcdXqzj9eg==} + '@angular-devkit/schematics@20.3.36': + resolution: {integrity: sha512-SZ5n723pRWuiAy5MWMJFrMzIoX6X9mFRnEc0qAuGL/HjGgdVv3qT+FuNcpxX+pdt0tjtGVYKjhuwDtjtvNXxkA==} + engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} + + '@angular-eslint/bundled-angular-compiler@20.7.0': + resolution: {integrity: sha512-9KPz24YoiL0SvTtTX6sd1zmysU5cKOCcmpEiXkCoO3L2oYZGlVxmMT4hfSaHMt8qmfvV2KzQMoR6DZM84BwRzQ==} + + '@angular-eslint/eslint-plugin-template@20.7.0': + resolution: {integrity: sha512-WFmvW2vBR6ExsSKEaActQTteyw6ikWyuJau9XmWEPFd+2eusEt/+wO21ybjDn3uc5FTp1IcdhfYy+U5OdDjH5w==} peerDependencies: - '@angular-eslint/template-parser': 22.2.0 - '@typescript-eslint/types': ^8.0.0 - '@typescript-eslint/utils': ^8.0.0 - eslint: ^9.0.0 || ^10.0.0 + '@angular-eslint/template-parser': 20.7.0 + '@typescript-eslint/types': ^7.11.0 || ^8.0.0 + '@typescript-eslint/utils': ^7.11.0 || ^8.0.0 + eslint: ^8.57.0 || ^9.0.0 typescript: '*' - '@angular-eslint/eslint-plugin@22.2.0': - resolution: {integrity: sha512-ceA/aluyI7LKii+IaIjhoVCqJ3oPKC+3kqUf/DpWrgVsCbbLoW+iXCQVqMnlDZG1lagpLaqe6cIbVaH897yjPA==} + '@angular-eslint/eslint-plugin@20.7.0': + resolution: {integrity: sha512-aHH2YTiaonojsKN+y2z4IMugCwdsH/dYIjYBig6kfoSPyf9rGK4zx+gnNGq/pGRjF3bOYrmFgIviYpQVb80inQ==} peerDependencies: - '@typescript-eslint/utils': ^8.0.0 - eslint: ^9.0.0 || ^10.0.0 + '@typescript-eslint/utils': ^7.11.0 || ^8.0.0 + eslint: ^8.57.0 || ^9.0.0 typescript: '*' - '@angular-eslint/schematics@22.2.0': - resolution: {integrity: sha512-KDtjpkAUOO+wK9J5HtRQtS5lwn5UHGMLEPVFznwrK+5hrNGN9LzfAzDhAHA9y+YoplqGK/Romm4v0384e+BiWw==} + '@angular-eslint/schematics@20.7.0': + resolution: {integrity: sha512-S0onfRipDUIL6gFGTFjiWwUDhi42XYrBoi3kJ3wBbKBeIgYv9SP1ppTKDD4ZoDaDU9cQE8nToX7iPn9ifMw6eQ==} - '@angular-eslint/template-parser@22.2.0': - resolution: {integrity: sha512-RCDEzYRFIV8UPWsAgj8v8ryKwXq+wAmEHqMJRqMdAGXRWrxziWvCxI7nCsj74u/11GXZKSAz3SQmwfkdWiZEQA==} + '@angular-eslint/template-parser@20.7.0': + resolution: {integrity: sha512-CVskZnF38IIxVVlKWi1VCz7YH/gHMJu2IY9bD1AVoBBGIe0xA4FRXJkW2Y+EDs9vQqZTkZZljhK5gL65Ro1PeQ==} peerDependencies: - eslint: ^9.0.0 || ^10.0.0 + eslint: ^8.57.0 || ^9.0.0 typescript: '*' - '@angular-eslint/utils@22.2.0': - resolution: {integrity: sha512-hAAMlPhaoLI0W4CmICrLp58Jm0pMs4OBL/DYvjFu7cdoey0fRMRBiHV1Fw5lT1oHtLjsFj0n6TzvpbjGYkaYvw==} + '@angular-eslint/utils@20.7.0': + resolution: {integrity: sha512-B6EJHbsk2W/lnS3kS/gm56VGvX735419z/DzgbRDcOvqMGMLwD1ILzv5OTEcL1rzpnB0AHW+IxOu6y/aCzSNUA==} peerDependencies: - '@typescript-eslint/utils': ^8.0.0 - eslint: ^9.0.0 || ^10.0.0 + '@typescript-eslint/utils': ^7.11.0 || ^8.0.0 + eslint: ^8.57.0 || ^9.0.0 typescript: '*' '@babel/code-frame@7.29.0': @@ -742,9 +755,9 @@ packages: yauzl: optional: true - '@schematics/angular@22.1.7': - resolution: {integrity: sha512-acBv147JjnwtWFgC8Af0KFBzPpb/TWaYxoWN/Ou3pXtUhYiEqnrdJeoFz3ssDw26eKFIdWnVBLB/dHORBykPBg==} - engines: {node: ^22.22.3 || ^24.15.0 || >=26.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} + '@schematics/angular@20.3.36': + resolution: {integrity: sha512-PcQSd+RXOpsdRkcf1PBlTD6334ffxTC3F+nIZC/1912VBZoN4oFxAI70IVjkhxAXJEcgILrxJKusefC3xKcvsQ==} + engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} '@sinclair/typebox@0.27.10': resolution: {integrity: sha512-MTBk/3jGLNB2tVxv6uLlFh1iu64iYOQ2PbdOSK3NW8JZsmlaOh2q6sdtKowBhfw8QFLmYNzTW4/oK4uATIi6ZA==} @@ -936,8 +949,8 @@ packages: ajv@6.15.0: resolution: {integrity: sha512-fgFx7Hfoq60ytK2c7DhnF8jIvzYgOMxfugjLOSMHjLIPgenqa7S7oaagATUq99mV6IYvN2tRmC0wnTYX6iPbMw==} - ajv@8.20.0: - resolution: {integrity: sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA==} + ajv@8.18.0: + resolution: {integrity: sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==} ansi-escapes@4.3.2: resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} @@ -1160,9 +1173,9 @@ packages: resolution: {integrity: sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==} engines: {node: '>=18'} - cli-spinners@3.4.0: - resolution: {integrity: sha512-bXfOC4QcT1tKXGorxL3wbJm6XJPDqEnij2gQ2m7ESQuE+/z9YFIWnl/5RpTiKWbMq3EVKR4fRLJGn6DVfu0mpw==} - engines: {node: '>=18.20'} + cli-spinners@2.9.2: + resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==} + engines: {node: '>=6'} cliui@8.0.1: resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} @@ -1791,10 +1804,6 @@ packages: resolution: {integrity: sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==} engines: {node: '>= 4'} - ignore@7.0.6: - resolution: {integrity: sha512-BAg6QkE8W+TuQLrrw0Ugr7HegXduRuuj8/ti2kSOc+jz1dmx8/WNcjr6XGnq5YpDWxFwwaavqD0+jIUOKelTsw==} - engines: {node: '>= 4'} - immutable@5.1.9: resolution: {integrity: sha512-m8nVez3rwrgmWxtLMt1ZYXB2Lv7OKYn/disyxAlSDYAlKSlFoPPfIAmAM/M5xqL4m4C/wAPw7S2/CNaUii1Hxg==} @@ -1941,6 +1950,10 @@ packages: resolution: {integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==} engines: {node: '>= 0.4'} + is-unicode-supported@1.3.0: + resolution: {integrity: sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==} + engines: {node: '>=12'} + is-unicode-supported@2.1.0: resolution: {integrity: sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==} engines: {node: '>=18'} @@ -2231,8 +2244,8 @@ packages: lodash@4.18.1: resolution: {integrity: sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==} - log-symbols@7.0.1: - resolution: {integrity: sha512-ja1E3yCr9i/0hmBVaM0bfwDjnGy8I/s6PP4DFp+yP+a+mrHO4Rm7DtmnqROTUkHIkqffC84YY7AeqX6oFk0WFg==} + log-symbols@6.0.0: + resolution: {integrity: sha512-i24m8rpwhmPIS4zscNzK6MSEhk0DUWa/8iYQWxhffV8jkI4Phvs3F+quL5xvS0gdQR0FyTCMMH33Y78dDTzzIw==} engines: {node: '>=18'} loose-envify@1.4.0: @@ -2242,8 +2255,8 @@ packages: lru-cache@5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} - magic-string@1.0.0: - resolution: {integrity: sha512-CGvjzMN08iv6w1mm4/x3Gh1hLb4VnyRUA15FFpl6CsCIGGoe36k7kY5KNz9QDbSBN5I/fWHM6ZlIkUTa5xdUEA==} + magic-string@0.30.17: + resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==} make-dir@4.0.0: resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} @@ -2405,9 +2418,9 @@ packages: resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} engines: {node: '>= 0.8.0'} - ora@9.4.1: - resolution: {integrity: sha512-6VlU9MLXbjVQD04AZCMX28hVtA5bUoadvUqO76MUCVA0ilwJbMiHsITRPfyVm6p/BC0Av/BXMujx39WCe1LEqw==} - engines: {node: '>=20'} + ora@8.2.0: + resolution: {integrity: sha512-weP+BZ8MVNnlCm8c0Qdc1WSWq4Qn7I+9CJGm7Qali6g44e/PUzbjNqJX5NJ9ljlNMosfJvg1fKEGILklK9cwnw==} + engines: {node: '>=18'} os-shim@0.1.3: resolution: {integrity: sha512-jd0cvB8qQ5uVt0lvCIexBaROw1KyKm5sbulg2fWOHjETisuCzWyt+eTZKEMs8v6HwzoGs8xik26jg7eCM6pS+A==} @@ -2707,6 +2720,11 @@ packages: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true + semver@7.7.3: + resolution: {integrity: sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==} + engines: {node: '>=10'} + hasBin: true + semver@7.8.4: resolution: {integrity: sha512-rUCObTnP32Q08R2uuIrt7r9PlEonuTmtuXYcW6s5kjdlj3xbnwe+21yXptAUYcMAABLkYYTtnmzb3w3EDZfueA==} engines: {node: '>=10'} @@ -2792,8 +2810,8 @@ packages: resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} engines: {node: '>=10'} - stdin-discarder@0.3.2: - resolution: {integrity: sha512-eCPu1qRxPVkl5605OTWF8Wz40b4Mf45NY5LQmVPQ599knfs5QhASUm9GbJ5BDMDOXgrnh0wyEdvzmL//YMlw0A==} + stdin-discarder@0.2.2: + resolution: {integrity: sha512-UhDfHmA92YAlNnCfhmq0VeNL5bDbiZGg7sZ2IvPsXubGkiNa9EC+tUTsjBRsYUAz87btI6/1wf4XoVvQ3uRnmQ==} engines: {node: '>=18'} stop-iteration-iterator@1.1.0: @@ -2974,6 +2992,11 @@ packages: engines: {node: '>=4.2.0'} hasBin: true + typescript@5.8.3: + resolution: {integrity: sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==} + engines: {node: '>=14.17'} + hasBin: true + typescript@6.0.3: resolution: {integrity: sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw==} engines: {node: '>=14.17'} @@ -3109,43 +3132,56 @@ packages: resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} engines: {node: '>=10'} - yoctocolors@2.2.0: - resolution: {integrity: sha512-xYqdZFUK/VYazNl/oCDYN+3WloWQwMfZxBoiNt6qNyk+xfOdi598muWE42rNZFp1kNOiqW936q5RhUdnpqElSg==} - engines: {node: '>=18'} - zod@3.25.76: resolution: {integrity: sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==} snapshots: - '@angular-devkit/core@22.1.7(chokidar@5.0.0)': + '@angular-devkit/core@20.3.35': dependencies: - ajv: 8.20.0 - ajv-formats: 3.0.1(ajv@8.20.0) + ajv: 8.18.0 + ajv-formats: 3.0.1(ajv@8.18.0) + jsonc-parser: 3.3.1 + picomatch: 4.0.5 + rxjs: 7.8.2 + source-map: 0.7.6 + + '@angular-devkit/core@20.3.36': + dependencies: + ajv: 8.18.0 + ajv-formats: 3.0.1(ajv@8.18.0) jsonc-parser: 3.3.1 picomatch: 4.0.5 rxjs: 7.8.2 source-map: 0.7.6 - optionalDependencies: - chokidar: 5.0.0 - '@angular-devkit/schematics@22.1.7(chokidar@5.0.0)': + '@angular-devkit/schematics@20.3.35': dependencies: - '@angular-devkit/core': 22.1.7(chokidar@5.0.0) + '@angular-devkit/core': 20.3.35 jsonc-parser: 3.3.1 - magic-string: 1.0.0 - ora: 9.4.1 + magic-string: 0.30.17 + ora: 8.2.0 rxjs: 7.8.2 transitivePeerDependencies: - chokidar - '@angular-eslint/bundled-angular-compiler@22.2.0': {} + '@angular-devkit/schematics@20.3.36': + dependencies: + '@angular-devkit/core': 20.3.36 + jsonc-parser: 3.3.1 + magic-string: 0.30.17 + ora: 8.2.0 + rxjs: 7.8.2 + transitivePeerDependencies: + - chokidar + + '@angular-eslint/bundled-angular-compiler@20.7.0': {} - '@angular-eslint/eslint-plugin-template@22.2.0(@angular-eslint/template-parser@22.2.0(eslint@9.39.4)(typescript@6.0.3))(@typescript-eslint/types@8.63.0)(@typescript-eslint/utils@8.63.0(eslint@9.39.4)(typescript@6.0.3))(eslint@9.39.4)(typescript@6.0.3)': + '@angular-eslint/eslint-plugin-template@20.7.0(@angular-eslint/template-parser@20.7.0(eslint@9.39.4)(typescript@6.0.3))(@typescript-eslint/types@8.63.0)(@typescript-eslint/utils@8.63.0(eslint@9.39.4)(typescript@6.0.3))(eslint@9.39.4)(typescript@6.0.3)': dependencies: - '@angular-eslint/bundled-angular-compiler': 22.2.0 - '@angular-eslint/template-parser': 22.2.0(eslint@9.39.4)(typescript@6.0.3) - '@angular-eslint/utils': 22.2.0(@typescript-eslint/utils@8.63.0(eslint@9.39.4)(typescript@6.0.3))(eslint@9.39.4)(typescript@6.0.3) + '@angular-eslint/bundled-angular-compiler': 20.7.0 + '@angular-eslint/template-parser': 20.7.0(eslint@9.39.4)(typescript@6.0.3) + '@angular-eslint/utils': 20.7.0(@typescript-eslint/utils@8.63.0(eslint@9.39.4)(typescript@6.0.3))(eslint@9.39.4)(typescript@6.0.3) '@typescript-eslint/types': 8.63.0 '@typescript-eslint/utils': 8.63.0(eslint@9.39.4)(typescript@6.0.3) aria-query: 5.3.2 @@ -3153,23 +3189,23 @@ snapshots: eslint: 9.39.4 typescript: 6.0.3 - '@angular-eslint/eslint-plugin@22.2.0(@typescript-eslint/utils@8.63.0(eslint@9.39.4)(typescript@6.0.3))(eslint@9.39.4)(typescript@6.0.3)': + '@angular-eslint/eslint-plugin@20.7.0(@typescript-eslint/utils@8.63.0(eslint@9.39.4)(typescript@6.0.3))(eslint@9.39.4)(typescript@6.0.3)': dependencies: - '@angular-eslint/bundled-angular-compiler': 22.2.0 - '@angular-eslint/utils': 22.2.0(@typescript-eslint/utils@8.63.0(eslint@9.39.4)(typescript@6.0.3))(eslint@9.39.4)(typescript@6.0.3) + '@angular-eslint/bundled-angular-compiler': 20.7.0 + '@angular-eslint/utils': 20.7.0(@typescript-eslint/utils@8.63.0(eslint@9.39.4)(typescript@6.0.3))(eslint@9.39.4)(typescript@6.0.3) '@typescript-eslint/utils': 8.63.0(eslint@9.39.4)(typescript@6.0.3) eslint: 9.39.4 ts-api-utils: 2.5.0(typescript@6.0.3) typescript: 6.0.3 - '@angular-eslint/schematics@22.2.0(@angular-eslint/template-parser@22.2.0(eslint@9.39.4)(typescript@6.0.3))(@typescript-eslint/types@8.63.0)(@typescript-eslint/utils@8.63.0(eslint@9.39.4)(typescript@6.0.3))(chokidar@5.0.0)(eslint@9.39.4)(typescript@6.0.3)': + '@angular-eslint/schematics@20.7.0(@angular-eslint/template-parser@20.7.0(eslint@9.39.4)(typescript@6.0.3))(@typescript-eslint/types@8.63.0)(@typescript-eslint/utils@8.63.0(eslint@9.39.4)(typescript@6.0.3))(eslint@9.39.4)(typescript@6.0.3)': dependencies: - '@angular-devkit/core': 22.1.7(chokidar@5.0.0) - '@angular-devkit/schematics': 22.1.7(chokidar@5.0.0) - '@angular-eslint/eslint-plugin': 22.2.0(@typescript-eslint/utils@8.63.0(eslint@9.39.4)(typescript@6.0.3))(eslint@9.39.4)(typescript@6.0.3) - '@angular-eslint/eslint-plugin-template': 22.2.0(@angular-eslint/template-parser@22.2.0(eslint@9.39.4)(typescript@6.0.3))(@typescript-eslint/types@8.63.0)(@typescript-eslint/utils@8.63.0(eslint@9.39.4)(typescript@6.0.3))(eslint@9.39.4)(typescript@6.0.3) - ignore: 7.0.6 - semver: 7.8.5 + '@angular-devkit/core': 20.3.35 + '@angular-devkit/schematics': 20.3.35 + '@angular-eslint/eslint-plugin': 20.7.0(@typescript-eslint/utils@8.63.0(eslint@9.39.4)(typescript@6.0.3))(eslint@9.39.4)(typescript@6.0.3) + '@angular-eslint/eslint-plugin-template': 20.7.0(@angular-eslint/template-parser@20.7.0(eslint@9.39.4)(typescript@6.0.3))(@typescript-eslint/types@8.63.0)(@typescript-eslint/utils@8.63.0(eslint@9.39.4)(typescript@6.0.3))(eslint@9.39.4)(typescript@6.0.3) + ignore: 7.0.5 + semver: 7.7.3 strip-json-comments: 3.1.1 transitivePeerDependencies: - '@angular-eslint/template-parser' @@ -3179,16 +3215,16 @@ snapshots: - eslint - typescript - '@angular-eslint/template-parser@22.2.0(eslint@9.39.4)(typescript@6.0.3)': + '@angular-eslint/template-parser@20.7.0(eslint@9.39.4)(typescript@6.0.3)': dependencies: - '@angular-eslint/bundled-angular-compiler': 22.2.0 + '@angular-eslint/bundled-angular-compiler': 20.7.0 eslint: 9.39.4 eslint-scope: 9.1.2 typescript: 6.0.3 - '@angular-eslint/utils@22.2.0(@typescript-eslint/utils@8.63.0(eslint@9.39.4)(typescript@6.0.3))(eslint@9.39.4)(typescript@6.0.3)': + '@angular-eslint/utils@20.7.0(@typescript-eslint/utils@8.63.0(eslint@9.39.4)(typescript@6.0.3))(eslint@9.39.4)(typescript@6.0.3)': dependencies: - '@angular-eslint/bundled-angular-compiler': 22.2.0 + '@angular-eslint/bundled-angular-compiler': 20.7.0 '@typescript-eslint/utils': 8.63.0(eslint@9.39.4)(typescript@6.0.3) eslint: 9.39.4 typescript: 6.0.3 @@ -3783,12 +3819,11 @@ snapshots: optionalDependencies: yauzl: 2.10.0 - '@schematics/angular@22.1.7(chokidar@5.0.0)': + '@schematics/angular@20.3.36': dependencies: - '@angular-devkit/core': 22.1.7(chokidar@5.0.0) - '@angular-devkit/schematics': 22.1.7(chokidar@5.0.0) + '@angular-devkit/core': 20.3.36 + '@angular-devkit/schematics': 20.3.36 jsonc-parser: 3.3.1 - typescript: 6.0.3 transitivePeerDependencies: - chokidar @@ -4070,9 +4105,9 @@ snapshots: transitivePeerDependencies: - supports-color - ajv-formats@3.0.1(ajv@8.20.0): + ajv-formats@3.0.1(ajv@8.18.0): optionalDependencies: - ajv: 8.20.0 + ajv: 8.18.0 ajv@6.15.0: dependencies: @@ -4081,7 +4116,7 @@ snapshots: json-schema-traverse: 0.4.1 uri-js: 4.4.1 - ajv@8.20.0: + ajv@8.18.0: dependencies: fast-deep-equal: 3.1.3 fast-uri: 3.1.6 @@ -4351,7 +4386,7 @@ snapshots: dependencies: restore-cursor: 5.1.0 - cli-spinners@3.4.0: {} + cli-spinners@2.9.2: {} cliui@8.0.1: dependencies: @@ -5076,8 +5111,6 @@ snapshots: ignore@7.0.5: {} - ignore@7.0.6: {} - immutable@5.1.9: {} import-cwd@3.0.0: @@ -5224,6 +5257,8 @@ snapshots: dependencies: which-typed-array: 1.1.20 + is-unicode-supported@1.3.0: {} + is-unicode-supported@2.1.0: {} is-weakmap@2.0.2: {} @@ -5710,10 +5745,10 @@ snapshots: lodash@4.18.1: {} - log-symbols@7.0.1: + log-symbols@6.0.0: dependencies: - is-unicode-supported: 2.1.0 - yoctocolors: 2.2.0 + chalk: 5.6.2 + is-unicode-supported: 1.3.0 loose-envify@1.4.0: dependencies: @@ -5723,7 +5758,7 @@ snapshots: dependencies: yallist: 3.1.1 - magic-string@1.0.0: + magic-string@0.30.17: dependencies: '@jridgewell/sourcemap-codec': 1.5.5 @@ -5887,16 +5922,17 @@ snapshots: type-check: 0.4.0 word-wrap: 1.2.5 - ora@9.4.1: + ora@8.2.0: dependencies: chalk: 5.6.2 cli-cursor: 5.0.0 - cli-spinners: 3.4.0 + cli-spinners: 2.9.2 is-interactive: 2.0.0 is-unicode-supported: 2.1.0 - log-symbols: 7.0.1 - stdin-discarder: 0.3.2 - string-width: 8.2.2 + log-symbols: 6.0.0 + stdin-discarder: 0.2.2 + string-width: 7.2.0 + strip-ansi: 7.2.0 os-shim@0.1.3: {} @@ -6211,6 +6247,8 @@ snapshots: semver@6.3.1: {} + semver@7.7.3: {} + semver@7.8.4: {} semver@7.8.5: {} @@ -6301,7 +6339,7 @@ snapshots: dependencies: escape-string-regexp: 2.0.0 - stdin-discarder@0.3.2: {} + stdin-discarder@0.2.2: {} stop-iteration-iterator@1.1.0: dependencies: @@ -6455,7 +6493,7 @@ snapshots: tslib@2.8.1: {} - tslint@5.20.1(typescript@6.0.3): + tslint@5.20.1(typescript@5.8.3): dependencies: '@babel/code-frame': 7.29.0 builtin-modules: 1.1.1 @@ -6469,13 +6507,13 @@ snapshots: resolve: 1.22.12 semver: 7.8.5 tslib: 1.14.1 - tsutils: 2.29.0(typescript@6.0.3) - typescript: 6.0.3 + tsutils: 2.29.0(typescript@5.8.3) + typescript: 5.8.3 - tsutils@2.29.0(typescript@6.0.3): + tsutils@2.29.0(typescript@5.8.3): dependencies: tslib: 1.14.1 - typescript: 6.0.3 + typescript: 5.8.3 type-check@0.4.0: dependencies: @@ -6526,6 +6564,8 @@ snapshots: typescript@4.9.5: {} + typescript@5.8.3: {} + typescript@6.0.3: {} unbox-primitive@1.1.0: @@ -6694,6 +6734,4 @@ snapshots: yocto-queue@0.1.0: {} - yoctocolors@2.2.0: {} - zod@3.25.76: {} diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index ef7ff9d2a..a85a7aec4 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -9,9 +9,9 @@ allowBuilds: minimumReleaseAgeExclude: - '@devexpress/eslint-plugin-dx-security@0.2.8' - - '@angular-devkit/core@22.1.7' - - '@angular-devkit/schematics@22.1.7' - - '@schematics/angular@22.1.7' + - '@angular-devkit/core@20.3.36' + - '@angular-devkit/schematics@20.3.36' + - '@schematics/angular@20.3.36' overrides: "@babel/core@<=7.29.0": ">=7.29.7" From d47a0a2baf3aa58f57ccadc66d225d5b8f7433a6 Mon Sep 17 00:00:00 2001 From: dxvladislavvolkov Date: Thu, 3 Sep 2026 14:59:34 +0400 Subject: [PATCH 6/6] Wait for asynchronous methods to complete --- packages/devextreme-cli/src/application.js | 2 +- .../src/applications/application.angular.js | 10 +++++----- packages/devextreme-cli/testing/creating.js | 13 +++++-------- 3 files changed, 11 insertions(+), 14 deletions(-) diff --git a/packages/devextreme-cli/src/application.js b/packages/devextreme-cli/src/application.js index f690d296c..59f8f9b74 100644 --- a/packages/devextreme-cli/src/application.js +++ b/packages/devextreme-cli/src/application.js @@ -112,7 +112,7 @@ const run = async(commands, options, devextremeConfig) => { if(app) { if(commands[1] === 'view') { - app.addView(commands[2], options); + await app.addView(commands[2], options); } else { console.error('Invalid command'); printHelp(commands[0]); diff --git a/packages/devextreme-cli/src/applications/application.angular.js b/packages/devextreme-cli/src/applications/application.angular.js index b87867304..510d4cbfd 100644 --- a/packages/devextreme-cli/src/applications/application.angular.js +++ b/packages/devextreme-cli/src/applications/application.angular.js @@ -35,7 +35,7 @@ async function runSchematicCommand(schematicCommand, options, evaluatingOptions) commandArguments.push(`--${dasherize(option)}=${options[option]}`); } - runNgCommand(commandArguments, options, evaluatingOptions); + return runNgCommand(commandArguments, options, evaluatingOptions); } async function runNgCommand(commandArguments, commandOptions, commandConfig) { @@ -81,7 +81,7 @@ const getTargetNgCliVersion = () => { }; const install = async(options) => { - runSchematicCommand('install', { + return runSchematicCommand('install', { ...options }); }; @@ -137,7 +137,7 @@ const create = async(appName, options) => { options.updateBudgets = true; options.layout = layout; options.globalNgCliVersion = currentNgVersion; - addTemplate(appName, options, { + await addTemplate(appName, options, { cwd: appPath }); @@ -150,7 +150,7 @@ const addTemplate = async(appName, options, evaluatingOptions) => { ...options, globalNgCliVersion: options.globalNgCliVersion || getTargetNgCliVersion().version }; - runSchematicCommand('add-app-template', schematicOptions, evaluatingOptions); + return runSchematicCommand('add-app-template', schematicOptions, evaluatingOptions); }; const addView = (viewName, options) => { @@ -158,7 +158,7 @@ const addView = (viewName, options) => { name: viewName }, options); schematicOptions.name = viewName; - runSchematicCommand('add-view', schematicOptions); + return runSchematicCommand('add-view', schematicOptions); }; const migrateConfigComponents = async(options = {}) => { diff --git a/packages/devextreme-cli/testing/creating.js b/packages/devextreme-cli/testing/creating.js index 6718abe79..e386a072c 100644 --- a/packages/devextreme-cli/testing/creating.js +++ b/packages/devextreme-cli/testing/creating.js @@ -18,11 +18,8 @@ const args = minimist(process.argv.slice(2), { : envs.filter(e => e.engine === args.e); const depsVersionTag = args[depsVersionTagOptionName]; - filteredEnvs.forEach(async env => { - try { - await env.createApp(depsVersionTag); - } catch(e) { - process.exit(1); - } - }); -})().catch(reject => console.error(reject)); + await Promise.all(filteredEnvs.map(env => env.createApp(depsVersionTag))); +})().catch(reject => { + console.error(reject); + process.exitCode = 1; +});