diff --git a/packages/devextreme-cli/src/applications/application.angular.js b/packages/devextreme-cli/src/applications/application.angular.js index d48312fee..c67bd6022 100644 --- a/packages/devextreme-cli/src/applications/application.angular.js +++ b/packages/devextreme-cli/src/applications/application.angular.js @@ -12,8 +12,8 @@ const { getPackageJsonPath } = require('../utility/package-json-utils'); const modifyJson = require('../utility/modify-json-file'); const schematicsVersion = latestVersions['devextreme-schematics'] || 'latest'; -const minNgCliVersion = new semver('20.0.0'); -const ngCliWithZoneless = new semver('20.0.0'); +const minNgCliVersion = new semver('21.0.0'); +const ngCliWithZoneless = new semver('21.0.0'); async function runSchematicCommand(schematicCommand, options, evaluatingOptions) { const collectionName = 'devextreme-schematics'; diff --git a/packages/devextreme-cli/src/utility/ng-version.js b/packages/devextreme-cli/src/utility/ng-version.js index 7b7a4ae92..e9330e919 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 version = execSync('npm view @angular/cli@v20-lts version').toString(); + const version = execSync('npm view @angular/cli@v21-lts version').toString(); return new semver(version); }; diff --git a/packages/devextreme-cli/testing/env.angular.js b/packages/devextreme-cli/testing/env.angular.js index f06cea19f..1983342de 100644 --- a/packages/devextreme-cli/testing/env.angular.js +++ b/packages/devextreme-cli/testing/env.angular.js @@ -34,6 +34,7 @@ exports.fileExtension = 'ts'; exports.createApp = async(depsVersionTag) => { await rimraf(sandboxPath); fs.mkdirSync(sandboxPath, { recursive: true }); + fs.writeFileSync(path.join(sandboxPath, 'package-lock.json'), '{}'); await prepareSchematics(); const additionalArguments = depsVersionTag && [`--${depsVersionTagOptionName} ${depsVersionTag}`] || []; diff --git a/packages/devextreme-schematics/package.json b/packages/devextreme-schematics/package.json index 3d6063635..e1c29e6c6 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": "^20.3.37", - "@angular-devkit/schematics": "^20.3.37", - "@schematics/angular": "^20.3.37", + "@angular-devkit/core": "^21.2.23", + "@angular-devkit/schematics": "^21.2.23", + "@schematics/angular": "^21.2.23", "parse5": "^7.3.0", "picomatch": "^4.0.5", "semver": "^7.8.5" diff --git a/packages/devextreme-schematics/src/add-layout/index.ts b/packages/devextreme-schematics/src/add-layout/index.ts index 2b9cb687d..7bcea8d94 100644 --- a/packages/devextreme-schematics/src/add-layout/index.ts +++ b/packages/devextreme-schematics/src/add-layout/index.ts @@ -288,7 +288,7 @@ function addPackagesToDependency(globalNgCliVersion: string) { addPackageJsonDependency(host, { type: NodeDependencyType.Default, name: 'zone.js', - version: version.major > 18 ? '~0.15.0' : '~0.14.0' + version: version.major > 18 ? '~0.16.0' : '~0.14.0' }); } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7cec5a0b3..531ae5aaa 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -145,14 +145,14 @@ importers: packages/devextreme-schematics: dependencies: '@angular-devkit/core': - specifier: ^20.3.37 - version: 20.3.37(chokidar@4.0.3) + specifier: ^21.2.23 + version: 21.2.26(chokidar@5.0.0) '@angular-devkit/schematics': - specifier: ^20.3.37 - version: 20.3.37(chokidar@4.0.3) + specifier: ^21.2.23 + version: 21.2.26(chokidar@5.0.0) '@schematics/angular': - specifier: ^20.3.37 - version: 20.3.37(chokidar@4.0.3) + specifier: ^21.2.23 + version: 21.2.26(chokidar@5.0.0) parse5: specifier: ^7.3.0 version: 7.3.0 @@ -199,11 +199,11 @@ packages: chokidar: optional: true - '@angular-devkit/core@20.3.37': - resolution: {integrity: sha512-Mkh0QLXGdzPEqimmhhXn6nS2hoDQhWc7qrQrkvKVLaU9mh0ltd2U/3yOIIeZsRqgKRjbNW+VFlyC0z2unuiXxA==} + '@angular-devkit/core@21.2.26': + resolution: {integrity: sha512-9X6hwij620GDWJtzuZ1awGolx42Zt0kY9IRhyTAE/UyLvIdcj5+eKbKeAv43KR9wbFIHIwWPWZ+R+8ehiOetow==} 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 + chokidar: ^5.0.0 peerDependenciesMeta: chokidar: optional: true @@ -212,8 +212,8 @@ packages: 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-devkit/schematics@20.3.37': - resolution: {integrity: sha512-cut471ALIuZR+WyoQLFfypZDNTxwG35O7fEj6wTh65EliNISTkmZaqUOgqNjTT6xJ/YaDwZ9+CuSfTdyO0hMCg==} + '@angular-devkit/schematics@21.2.26': + resolution: {integrity: sha512-ZT7/R4OaBw2uST76SOZsf7W+wXQ6WF2xKb78AxRKRZMkqUqwSj9xhKVUeqz+jeUDnwwVw4GdzfOJvX3kdyoeAA==} 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': @@ -738,8 +738,8 @@ packages: yauzl: optional: true - '@schematics/angular@20.3.37': - resolution: {integrity: sha512-NF5uNKge+1CuvSbn2cig3AXPsWLSBazh4N0PGUSFy+9QYdlpP00CUFimI2iV2DoFJWA5+z7hQlOMZ9sa7XJmmg==} + '@schematics/angular@21.2.26': + resolution: {integrity: sha512-kDhwozMH8KNWuMh07TA/1y192kvUj6YF+BA+e5zFW7Rqy3KwUOz3C3eSFICU3+waO5i4E8S6p80PGeXRiQioDA==} 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': @@ -1167,6 +1167,10 @@ packages: resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==} engines: {node: '>=6'} + cli-spinners@3.4.0: + resolution: {integrity: sha512-bXfOC4QcT1tKXGorxL3wbJm6XJPDqEnij2gQ2m7ESQuE+/z9YFIWnl/5RpTiKWbMq3EVKR4fRLJGn6DVfu0mpw==} + engines: {node: '>=18.20'} + cliui@8.0.1: resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} engines: {node: '>=12'} @@ -2239,6 +2243,10 @@ packages: resolution: {integrity: sha512-i24m8rpwhmPIS4zscNzK6MSEhk0DUWa/8iYQWxhffV8jkI4Phvs3F+quL5xvS0gdQR0FyTCMMH33Y78dDTzzIw==} engines: {node: '>=18'} + log-symbols@7.0.1: + resolution: {integrity: sha512-ja1E3yCr9i/0hmBVaM0bfwDjnGy8I/s6PP4DFp+yP+a+mrHO4Rm7DtmnqROTUkHIkqffC84YY7AeqX6oFk0WFg==} + engines: {node: '>=18'} + loose-envify@1.4.0: resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} hasBin: true @@ -2249,6 +2257,9 @@ packages: magic-string@0.30.17: resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==} + magic-string@0.30.21: + resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==} + make-dir@4.0.0: resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} engines: {node: '>=10'} @@ -2413,6 +2424,10 @@ packages: resolution: {integrity: sha512-weP+BZ8MVNnlCm8c0Qdc1WSWq4Qn7I+9CJGm7Qali6g44e/PUzbjNqJX5NJ9ljlNMosfJvg1fKEGILklK9cwnw==} engines: {node: '>=18'} + ora@9.3.0: + resolution: {integrity: sha512-lBX72MWFduWEf7v7uWf5DHp9Jn5BI8bNPGuFgtXMmr2uDz2Gz2749y3am3agSDdkhHPHYmmxEGSKH85ZLGzgXw==} + engines: {node: '>=20'} + os-shim@0.1.3: resolution: {integrity: sha512-jd0cvB8qQ5uVt0lvCIexBaROw1KyKm5sbulg2fWOHjETisuCzWyt+eTZKEMs8v6HwzoGs8xik26jg7eCM6pS+A==} engines: {node: '>= 0.4.0'} @@ -2811,6 +2826,10 @@ packages: resolution: {integrity: sha512-UhDfHmA92YAlNnCfhmq0VeNL5bDbiZGg7sZ2IvPsXubGkiNa9EC+tUTsjBRsYUAz87btI6/1wf4XoVvQ3uRnmQ==} engines: {node: '>=18'} + stdin-discarder@0.3.2: + resolution: {integrity: sha512-eCPu1qRxPVkl5605OTWF8Wz40b4Mf45NY5LQmVPQ599knfs5QhASUm9GbJ5BDMDOXgrnh0wyEdvzmL//YMlw0A==} + engines: {node: '>=18'} + stop-iteration-iterator@1.1.0: resolution: {integrity: sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==} engines: {node: '>= 0.4'} @@ -3125,6 +3144,10 @@ 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==} @@ -3141,7 +3164,7 @@ snapshots: optionalDependencies: chokidar: 4.0.3 - '@angular-devkit/core@20.3.37(chokidar@4.0.3)': + '@angular-devkit/core@21.2.26(chokidar@5.0.0)': dependencies: ajv: 8.18.0 ajv-formats: 3.0.1(ajv@8.18.0) @@ -3150,7 +3173,7 @@ snapshots: rxjs: 7.8.2 source-map: 0.7.6 optionalDependencies: - chokidar: 4.0.3 + chokidar: 5.0.0 '@angular-devkit/schematics@20.3.35(chokidar@4.0.3)': dependencies: @@ -3162,12 +3185,12 @@ snapshots: transitivePeerDependencies: - chokidar - '@angular-devkit/schematics@20.3.37(chokidar@4.0.3)': + '@angular-devkit/schematics@21.2.26(chokidar@5.0.0)': dependencies: - '@angular-devkit/core': 20.3.37(chokidar@4.0.3) + '@angular-devkit/core': 21.2.26(chokidar@5.0.0) jsonc-parser: 3.3.1 - magic-string: 0.30.17 - ora: 8.2.0 + magic-string: 0.30.21 + ora: 9.3.0 rxjs: 7.8.2 transitivePeerDependencies: - chokidar @@ -3816,10 +3839,10 @@ snapshots: optionalDependencies: yauzl: 2.10.0 - '@schematics/angular@20.3.37(chokidar@4.0.3)': + '@schematics/angular@21.2.26(chokidar@5.0.0)': dependencies: - '@angular-devkit/core': 20.3.37(chokidar@4.0.3) - '@angular-devkit/schematics': 20.3.37(chokidar@4.0.3) + '@angular-devkit/core': 21.2.26(chokidar@5.0.0) + '@angular-devkit/schematics': 21.2.26(chokidar@5.0.0) jsonc-parser: 3.3.1 transitivePeerDependencies: - chokidar @@ -4422,6 +4445,8 @@ snapshots: cli-spinners@2.9.2: {} + cli-spinners@3.4.0: {} + cliui@8.0.1: dependencies: string-width: 4.2.3 @@ -5771,6 +5796,11 @@ snapshots: chalk: 5.6.2 is-unicode-supported: 1.3.0 + log-symbols@7.0.1: + dependencies: + is-unicode-supported: 2.1.0 + yoctocolors: 2.2.0 + loose-envify@1.4.0: dependencies: js-tokens: 4.0.0 @@ -5783,6 +5813,10 @@ snapshots: dependencies: '@jridgewell/sourcemap-codec': 1.6.0 + magic-string@0.30.21: + dependencies: + '@jridgewell/sourcemap-codec': 1.6.0 + make-dir@4.0.0: dependencies: semver: 7.8.5 @@ -5955,6 +5989,17 @@ snapshots: string-width: 7.2.0 strip-ansi: 7.2.0 + ora@9.3.0: + dependencies: + chalk: 5.6.2 + cli-cursor: 5.0.0 + cli-spinners: 3.4.0 + 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 + os-shim@0.1.3: {} own-keys@1.0.1: @@ -6367,6 +6412,8 @@ snapshots: stdin-discarder@0.2.2: {} + stdin-discarder@0.3.2: {} + stop-iteration-iterator@1.1.0: dependencies: es-errors: 1.3.0 @@ -6761,4 +6808,6 @@ snapshots: yocto-queue@0.1.0: {} + yoctocolors@2.2.0: {} + zod@3.25.76: {}