From 5594a30d0b290c69b7d0313808eccb458d21e4d3 Mon Sep 17 00:00:00 2001 From: Vasily Strelyaev Date: Fri, 27 Jun 2025 14:27:53 +0300 Subject: [PATCH 1/7] update devextreme to 25.1.3 + fix create-vue version --- package-lock.json | 839 +++++++++++++++++- packages/devextreme-cli/package-lock.json | 31 +- packages/devextreme-cli/package.json | 2 +- .../src/applications/application.vue.js | 2 +- .../src/utility/latest-versions.js | 11 +- .../src/add-app-template/schema.json | 2 +- .../src/install/schema.json | 2 +- .../src/utility/latest-versions.ts | 4 +- 8 files changed, 861 insertions(+), 32 deletions(-) diff --git a/package-lock.json b/package-lock.json index 02118673f..f0897c1c7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -15,6 +15,359 @@ "puppeteer": "^21.11.0" } }, + "node_modules/@angular-devkit/schematics": { + "version": "20.0.4", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-20.0.4.tgz", + "integrity": "sha512-NADJed7h4KYSqbbw91AKFvFp+CsDuPUBzuMrck38R0ql0ZeaLKJtwT+IQFs7Hb6bmE4xn1i0+Z/p7v8q6ZRrKw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@angular-devkit/core": "20.0.4", + "jsonc-parser": "3.3.1", + "magic-string": "0.30.17", + "ora": "8.2.0", + "rxjs": "7.8.2" + }, + "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" + } + }, + "node_modules/@angular-devkit/schematics/node_modules/@angular-devkit/core": { + "version": "20.0.4", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-20.0.4.tgz", + "integrity": "sha512-GmHBOEhdZn0Xh8JAdmnbSXtEMoAEqakEFy1JZmwuUo5e6uuuEp5xQY4O3MO0UQBVjYT+Wz8KNfonTvY91t/lNQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "ajv": "8.17.1", + "ajv-formats": "3.0.1", + "jsonc-parser": "3.3.1", + "picomatch": "4.0.2", + "rxjs": "7.8.2", + "source-map": "0.7.4" + }, + "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 + } + } + }, + "node_modules/@angular-devkit/schematics/node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@angular-devkit/schematics/node_modules/chalk": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.4.1.tgz", + "integrity": "sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@angular-devkit/schematics/node_modules/chokidar": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", + "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "readdirp": "^4.0.1" + }, + "engines": { + "node": ">= 14.16.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@angular-devkit/schematics/node_modules/cli-cursor": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-5.0.0.tgz", + "integrity": "sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "restore-cursor": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@angular-devkit/schematics/node_modules/cli-spinners": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz", + "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@angular-devkit/schematics/node_modules/emoji-regex": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.4.0.tgz", + "integrity": "sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/@angular-devkit/schematics/node_modules/is-interactive": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-2.0.0.tgz", + "integrity": "sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@angular-devkit/schematics/node_modules/is-unicode-supported": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-2.1.0.tgz", + "integrity": "sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@angular-devkit/schematics/node_modules/jsonc-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.3.1.tgz", + "integrity": "sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/@angular-devkit/schematics/node_modules/log-symbols": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-6.0.0.tgz", + "integrity": "sha512-i24m8rpwhmPIS4zscNzK6MSEhk0DUWa/8iYQWxhffV8jkI4Phvs3F+quL5xvS0gdQR0FyTCMMH33Y78dDTzzIw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "chalk": "^5.3.0", + "is-unicode-supported": "^1.3.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@angular-devkit/schematics/node_modules/log-symbols/node_modules/is-unicode-supported": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz", + "integrity": "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@angular-devkit/schematics/node_modules/onetime": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-7.0.0.tgz", + "integrity": "sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "mimic-function": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@angular-devkit/schematics/node_modules/ora": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/ora/-/ora-8.2.0.tgz", + "integrity": "sha512-weP+BZ8MVNnlCm8c0Qdc1WSWq4Qn7I+9CJGm7Qali6g44e/PUzbjNqJX5NJ9ljlNMosfJvg1fKEGILklK9cwnw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "chalk": "^5.3.0", + "cli-cursor": "^5.0.0", + "cli-spinners": "^2.9.2", + "is-interactive": "^2.0.0", + "is-unicode-supported": "^2.0.0", + "log-symbols": "^6.0.0", + "stdin-discarder": "^0.2.2", + "string-width": "^7.2.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@angular-devkit/schematics/node_modules/picomatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/@angular-devkit/schematics/node_modules/readdirp": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", + "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "engines": { + "node": ">= 14.18.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@angular-devkit/schematics/node_modules/restore-cursor": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-5.1.0.tgz", + "integrity": "sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "onetime": "^7.0.0", + "signal-exit": "^4.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@angular-devkit/schematics/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "license": "ISC", + "peer": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@angular-devkit/schematics/node_modules/source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "dev": true, + "license": "BSD-3-Clause", + "peer": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@angular-devkit/schematics/node_modules/string-width": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", + "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "emoji-regex": "^10.3.0", + "get-east-asian-width": "^1.0.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@angular-devkit/schematics/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, "node_modules/@angular-eslint/schematics": { "version": "0.2.0-beta.1", "resolved": "https://registry.npmjs.org/@angular-eslint/schematics/-/schematics-0.2.0-beta.1.tgz", @@ -145,6 +498,14 @@ "integrity": "sha512-SQ7Kzhh9+D+ZW9MA0zkYv3VXhIDNx+LzM6EJ+/65I3QY+enU6Itte7E5XX7EWrqLW2FN4n06GWzBnPoC3th2aQ==", "dev": true }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "dev": true, + "license": "MIT", + "peer": true + }, "node_modules/@lerna/add": { "version": "5.6.2", "resolved": "https://registry.npmjs.org/@lerna/add/-/add-5.6.2.tgz", @@ -1892,6 +2253,43 @@ "node": ">=8" } }, + "node_modules/ajv": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-3.0.1.tgz", + "integrity": "sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, "node_modules/ansi-colors": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", @@ -3250,6 +3648,14 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true, + "license": "MIT", + "peer": true + }, "node_modules/fast-fifo": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz", @@ -3272,6 +3678,24 @@ "node": ">=8.6.0" } }, + "node_modules/fast-uri": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.6.tgz", + "integrity": "sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], + "license": "BSD-3-Clause", + "peer": true + }, "node_modules/fastq": { "version": "1.13.0", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", @@ -3490,6 +3914,20 @@ "node": "6.* || 8.* || >= 10.*" } }, + "node_modules/get-east-asian-width": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.3.0.tgz", + "integrity": "sha512-vpeMIQKxczTD/0s2CdEWHcb0eeJe6TFjxb+J5xgX7hScxqrGuyjmv4c1D4A/gelKfyox0gJJwIHF+fLjeaM8kQ==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/get-pkg-repo": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/get-pkg-repo/-/get-pkg-repo-4.2.1.tgz", @@ -4434,6 +4872,14 @@ "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", "dev": true }, + "node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true, + "license": "MIT", + "peer": true + }, "node_modules/json-stringify-nice": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/json-stringify-nice/-/json-stringify-nice-1.1.4.tgz", @@ -4741,6 +5187,17 @@ "node": ">=12" } }, + "node_modules/magic-string": { + "version": "0.30.17", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz", + "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0" + } + }, "node_modules/make-dir": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", @@ -4976,6 +5433,20 @@ "node": ">=6" } }, + "node_modules/mimic-function": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/mimic-function/-/mimic-function-5.0.1.tgz", + "integrity": "sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/min-indent": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", @@ -6644,6 +7115,22 @@ } } }, + "node_modules/puppeteer/node_modules/typescript": { + "version": "5.8.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz", + "integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==", + "dev": true, + "license": "Apache-2.0", + "optional": true, + "peer": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, "node_modules/q": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", @@ -7013,6 +7500,17 @@ "node": ">=0.10.0" } }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/resolve": { "version": "1.22.1", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", @@ -7151,10 +7649,11 @@ } }, "node_modules/rxjs": { - "version": "7.8.1", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", - "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "version": "7.8.2", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.2.tgz", + "integrity": "sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==", "dev": true, + "license": "Apache-2.0", "dependencies": { "tslib": "^2.1.0" } @@ -7464,6 +7963,20 @@ "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, + "node_modules/stdin-discarder": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/stdin-discarder/-/stdin-discarder-0.2.2.tgz", + "integrity": "sha512-UhDfHmA92YAlNnCfhmq0VeNL5bDbiZGg7sZ2IvPsXubGkiNa9EC+tUTsjBRsYUAz87btI6/1wf4XoVvQ3uRnmQ==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/streamx": { "version": "2.15.5", "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.15.5.tgz", @@ -8257,6 +8770,217 @@ } }, "dependencies": { + "@angular-devkit/schematics": { + "version": "20.0.4", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-20.0.4.tgz", + "integrity": "sha512-NADJed7h4KYSqbbw91AKFvFp+CsDuPUBzuMrck38R0ql0ZeaLKJtwT+IQFs7Hb6bmE4xn1i0+Z/p7v8q6ZRrKw==", + "dev": true, + "peer": true, + "requires": { + "@angular-devkit/core": "20.0.4", + "jsonc-parser": "3.3.1", + "magic-string": "0.30.17", + "ora": "8.2.0", + "rxjs": "7.8.2" + }, + "dependencies": { + "@angular-devkit/core": { + "version": "20.0.4", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-20.0.4.tgz", + "integrity": "sha512-GmHBOEhdZn0Xh8JAdmnbSXtEMoAEqakEFy1JZmwuUo5e6uuuEp5xQY4O3MO0UQBVjYT+Wz8KNfonTvY91t/lNQ==", + "dev": true, + "peer": true, + "requires": { + "ajv": "8.17.1", + "ajv-formats": "3.0.1", + "jsonc-parser": "3.3.1", + "picomatch": "4.0.2", + "rxjs": "7.8.2", + "source-map": "0.7.4" + } + }, + "ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "dev": true, + "peer": true + }, + "chalk": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.4.1.tgz", + "integrity": "sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==", + "dev": true, + "peer": true + }, + "chokidar": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", + "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", + "dev": true, + "optional": true, + "peer": true, + "requires": { + "readdirp": "^4.0.1" + } + }, + "cli-cursor": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-5.0.0.tgz", + "integrity": "sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==", + "dev": true, + "peer": true, + "requires": { + "restore-cursor": "^5.0.0" + } + }, + "cli-spinners": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz", + "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", + "dev": true, + "peer": true + }, + "emoji-regex": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.4.0.tgz", + "integrity": "sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==", + "dev": true, + "peer": true + }, + "is-interactive": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-2.0.0.tgz", + "integrity": "sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==", + "dev": true, + "peer": true + }, + "is-unicode-supported": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-2.1.0.tgz", + "integrity": "sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==", + "dev": true, + "peer": true + }, + "jsonc-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.3.1.tgz", + "integrity": "sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==", + "dev": true, + "peer": true + }, + "log-symbols": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-6.0.0.tgz", + "integrity": "sha512-i24m8rpwhmPIS4zscNzK6MSEhk0DUWa/8iYQWxhffV8jkI4Phvs3F+quL5xvS0gdQR0FyTCMMH33Y78dDTzzIw==", + "dev": true, + "peer": true, + "requires": { + "chalk": "^5.3.0", + "is-unicode-supported": "^1.3.0" + }, + "dependencies": { + "is-unicode-supported": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz", + "integrity": "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==", + "dev": true, + "peer": true + } + } + }, + "onetime": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-7.0.0.tgz", + "integrity": "sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==", + "dev": true, + "peer": true, + "requires": { + "mimic-function": "^5.0.0" + } + }, + "ora": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/ora/-/ora-8.2.0.tgz", + "integrity": "sha512-weP+BZ8MVNnlCm8c0Qdc1WSWq4Qn7I+9CJGm7Qali6g44e/PUzbjNqJX5NJ9ljlNMosfJvg1fKEGILklK9cwnw==", + "dev": true, + "peer": true, + "requires": { + "chalk": "^5.3.0", + "cli-cursor": "^5.0.0", + "cli-spinners": "^2.9.2", + "is-interactive": "^2.0.0", + "is-unicode-supported": "^2.0.0", + "log-symbols": "^6.0.0", + "stdin-discarder": "^0.2.2", + "string-width": "^7.2.0", + "strip-ansi": "^7.1.0" + } + }, + "picomatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "dev": true, + "peer": true + }, + "readdirp": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", + "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", + "dev": true, + "optional": true, + "peer": true + }, + "restore-cursor": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-5.1.0.tgz", + "integrity": "sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==", + "dev": true, + "peer": true, + "requires": { + "onetime": "^7.0.0", + "signal-exit": "^4.1.0" + } + }, + "signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "peer": true + }, + "source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "dev": true, + "peer": true + }, + "string-width": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", + "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", + "dev": true, + "peer": true, + "requires": { + "emoji-regex": "^10.3.0", + "get-east-asian-width": "^1.0.0", + "strip-ansi": "^7.1.0" + } + }, + "strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "peer": true, + "requires": { + "ansi-regex": "^6.0.1" + } + } + } + }, "@angular-eslint/schematics": { "version": "0.2.0-beta.1", "resolved": "https://registry.npmjs.org/@angular-eslint/schematics/-/schematics-0.2.0-beta.1.tgz", @@ -8362,6 +9086,13 @@ "integrity": "sha512-SQ7Kzhh9+D+ZW9MA0zkYv3VXhIDNx+LzM6EJ+/65I3QY+enU6Itte7E5XX7EWrqLW2FN4n06GWzBnPoC3th2aQ==", "dev": true }, + "@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "dev": true, + "peer": true + }, "@lerna/add": { "version": "5.6.2", "resolved": "https://registry.npmjs.org/@lerna/add/-/add-5.6.2.tgz", @@ -9511,7 +10242,8 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/@octokit/plugin-request-log/-/plugin-request-log-1.0.4.tgz", "integrity": "sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA==", - "dev": true + "dev": true, + "requires": {} }, "@octokit/plugin-rest-endpoint-methods": { "version": "6.7.0", @@ -9787,6 +10519,29 @@ "indent-string": "^4.0.0" } }, + "ajv": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "dev": true, + "peer": true, + "requires": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + } + }, + "ajv-formats": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-3.0.1.tgz", + "integrity": "sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==", + "dev": true, + "peer": true, + "requires": { + "ajv": "^8.0.0" + } + }, "ansi-colors": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", @@ -10818,6 +11573,13 @@ } } }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true, + "peer": true + }, "fast-fifo": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz", @@ -10837,6 +11599,13 @@ "micromatch": "^4.0.4" } }, + "fast-uri": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.6.tgz", + "integrity": "sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==", + "dev": true, + "peer": true + }, "fastq": { "version": "1.13.0", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", @@ -11003,6 +11772,13 @@ "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "dev": true }, + "get-east-asian-width": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.3.0.tgz", + "integrity": "sha512-vpeMIQKxczTD/0s2CdEWHcb0eeJe6TFjxb+J5xgX7hScxqrGuyjmv4c1D4A/gelKfyox0gJJwIHF+fLjeaM8kQ==", + "dev": true, + "peer": true + }, "get-pkg-repo": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/get-pkg-repo/-/get-pkg-repo-4.2.1.tgz", @@ -11733,6 +12509,13 @@ "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", "dev": true }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true, + "peer": true + }, "json-stringify-nice": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/json-stringify-nice/-/json-stringify-nice-1.1.4.tgz", @@ -11981,6 +12764,16 @@ "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", "dev": true }, + "magic-string": { + "version": "0.30.17", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz", + "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==", + "dev": true, + "peer": true, + "requires": { + "@jridgewell/sourcemap-codec": "^1.5.0" + } + }, "make-dir": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", @@ -12161,6 +12954,13 @@ "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", "dev": true }, + "mimic-function": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/mimic-function/-/mimic-function-5.0.1.tgz", + "integrity": "sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==", + "dev": true, + "peer": true + }, "min-indent": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", @@ -13421,6 +14221,14 @@ "js-yaml": "^4.1.0", "parse-json": "^5.2.0" } + }, + "typescript": { + "version": "5.8.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz", + "integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==", + "dev": true, + "optional": true, + "peer": true } } }, @@ -13717,6 +14525,13 @@ "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", "dev": true }, + "require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "peer": true + }, "resolve": { "version": "1.22.1", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", @@ -13806,9 +14621,9 @@ } }, "rxjs": { - "version": "7.8.1", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", - "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "version": "7.8.2", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.2.tgz", + "integrity": "sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==", "dev": true, "requires": { "tslib": "^2.1.0" @@ -14057,6 +14872,13 @@ "minipass": "^3.1.1" } }, + "stdin-discarder": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/stdin-discarder/-/stdin-discarder-0.2.2.tgz", + "integrity": "sha512-UhDfHmA92YAlNnCfhmq0VeNL5bDbiZGg7sZ2IvPsXubGkiNa9EC+tUTsjBRsYUAz87btI6/1wf4XoVvQ3uRnmQ==", + "dev": true, + "peer": true + }, "streamx": { "version": "2.15.5", "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.15.5.tgz", @@ -14620,7 +15442,8 @@ "version": "8.16.0", "resolved": "https://registry.npmjs.org/ws/-/ws-8.16.0.tgz", "integrity": "sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==", - "dev": true + "dev": true, + "requires": {} }, "xtend": { "version": "4.0.2", diff --git a/packages/devextreme-cli/package-lock.json b/packages/devextreme-cli/package-lock.json index db763aae7..0e87c21da 100644 --- a/packages/devextreme-cli/package-lock.json +++ b/packages/devextreme-cli/package-lock.json @@ -26,7 +26,7 @@ "@typescript-eslint/eslint-plugin": "^4.33.0", "@typescript-eslint/parser": "^4.33.0", "babel-eslint": "^10.1.0", - "create-vite": "6.5.0", + "create-vite": "7.0.0", "cross-env": "^5.2.1", "eslint": "^7.32.0", "eslint-config-angular": "^0.5.0", @@ -2953,9 +2953,9 @@ } }, "node_modules/create-vite": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/create-vite/-/create-vite-6.5.0.tgz", - "integrity": "sha512-2GsVyyXPMsXeIHR9m61ANZ0YJkUojUbgACdzIAlYoKgw/b5M5GJAfzuBD56uJ4q82NxrAekt0k4OTtH1s+rfcQ==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/create-vite/-/create-vite-7.0.0.tgz", + "integrity": "sha512-ybKmTPtWP/w95c3ZC9QhxC2HjFvEcdeK26zlmeBkspjPytnFR7w/zqnj3CdayBY2Im/1qE764VgUpcwRwBCWaA==", "dev": true, "license": "MIT", "bin": { @@ -2963,7 +2963,7 @@ "cva": "index.js" }, "engines": { - "node": "^18.0.0 || ^20.0.0 || >=22.0.0" + "node": "^20.19.0 || >=22.12.0" }, "funding": { "url": "https://github.com/vitejs/vite?sponsor=1" @@ -11047,7 +11047,8 @@ "version": "5.3.2", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true + "dev": true, + "requires": {} }, "ajv": { "version": "6.12.6", @@ -11663,9 +11664,9 @@ } }, "create-vite": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/create-vite/-/create-vite-6.5.0.tgz", - "integrity": "sha512-2GsVyyXPMsXeIHR9m61ANZ0YJkUojUbgACdzIAlYoKgw/b5M5GJAfzuBD56uJ4q82NxrAekt0k4OTtH1s+rfcQ==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/create-vite/-/create-vite-7.0.0.tgz", + "integrity": "sha512-ybKmTPtWP/w95c3ZC9QhxC2HjFvEcdeK26zlmeBkspjPytnFR7w/zqnj3CdayBY2Im/1qE764VgUpcwRwBCWaA==", "dev": true }, "cross-env": { @@ -11736,7 +11737,8 @@ "version": "1.5.1", "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.1.tgz", "integrity": "sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg==", - "dev": true + "dev": true, + "requires": {} }, "deep-is": { "version": "0.1.4", @@ -12226,7 +12228,8 @@ "version": "8.10.0", "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.10.0.tgz", "integrity": "sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg==", - "dev": true + "dev": true, + "requires": {} }, "eslint-plugin-angular": { "version": "4.1.0", @@ -12355,7 +12358,8 @@ "version": "4.6.2", "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.2.tgz", "integrity": "sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==", - "dev": true + "dev": true, + "requires": {} }, "eslint-plugin-unused-imports": { "version": "1.1.5", @@ -14093,7 +14097,8 @@ "version": "1.2.3", "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", - "dev": true + "dev": true, + "requires": {} }, "jest-regex-util": { "version": "29.6.3", diff --git a/packages/devextreme-cli/package.json b/packages/devextreme-cli/package.json index 1e5c124c8..733879d39 100644 --- a/packages/devextreme-cli/package.json +++ b/packages/devextreme-cli/package.json @@ -52,7 +52,7 @@ "@typescript-eslint/parser": "^4.33.0", "babel-eslint": "^10.1.0", "cross-env": "^5.2.1", - "create-vite": "6.5.0", + "create-vite": "7.0.0", "eslint": "^7.32.0", "eslint-config-angular": "^0.5.0", "eslint-config-prettier": "^8.10.0", diff --git a/packages/devextreme-cli/src/applications/application.vue.js b/packages/devextreme-cli/src/applications/application.vue.js index 96b64cc2c..96af89ed8 100644 --- a/packages/devextreme-cli/src/applications/application.vue.js +++ b/packages/devextreme-cli/src/applications/application.vue.js @@ -37,7 +37,7 @@ const preparePackageJsonForTemplate = (appPath, appName) => { }; async function createVueApp(name, depsVersionTag) { - const argList = ['create', `vue${depsVersionTag ? `@${depsVersionTag}` : ''}`, name, '--registry', 'https://registry.npmjs.org/', '--', '--eslint', '--default', '--bare']; + const argList = ['create', `vue@${depsVersionTag ? depsVersionTag : latestVersions['create-vue']}`, name, '--registry', 'https://registry.npmjs.org/', '--', '--eslint', '--default', '--bare']; return runCommand('npm', argList); } diff --git a/packages/devextreme-cli/src/utility/latest-versions.js b/packages/devextreme-cli/src/utility/latest-versions.js index 6a49c80bf..69b8a4451 100644 --- a/packages/devextreme-cli/src/utility/latest-versions.js +++ b/packages/devextreme-cli/src/utility/latest-versions.js @@ -1,10 +1,11 @@ const packageJson = require('../../package.json'); module.exports = { - 'devextreme': '25.1.2-beta', - 'devextreme-react': '25.1.2-beta', - 'devextreme-vue': '25.1.2-beta', - 'create-vite': '6.5.0', - 'create-next-app': '15.3.3', + 'devextreme': '25.1.3', + 'devextreme-react': '25.1.3', + 'devextreme-vue': '25.1.3', + 'create-vite': '7.0.0', + 'create-vue': '3.17.0', + 'create-next-app': '15.3.4', 'jose': '6.0.11', 'devextreme-cli': packageJson.version, 'devextreme-schematics': 'latest' diff --git a/packages/devextreme-schematics/src/add-app-template/schema.json b/packages/devextreme-schematics/src/add-app-template/schema.json index e1a6ebe32..60cd9f8a5 100644 --- a/packages/devextreme-schematics/src/add-app-template/schema.json +++ b/packages/devextreme-schematics/src/add-app-template/schema.json @@ -39,7 +39,7 @@ "dxversion": { "type": "string", "description": "The DevExtreme version", - "default": "25.1.2-beta" + "default": "25.1.3" }, "globalNgCliVersion": { "type":"string", diff --git a/packages/devextreme-schematics/src/install/schema.json b/packages/devextreme-schematics/src/install/schema.json index 8fa646175..d079a7fd7 100644 --- a/packages/devextreme-schematics/src/install/schema.json +++ b/packages/devextreme-schematics/src/install/schema.json @@ -7,7 +7,7 @@ "dxversion": { "type": "string", "description": "The DevExtreme version", - "default": "25.1.2-beta" + "default": "25.1.3" }, "project": { "type": "string", diff --git a/packages/devextreme-schematics/src/utility/latest-versions.ts b/packages/devextreme-schematics/src/utility/latest-versions.ts index cb618c55a..2d1964e8e 100644 --- a/packages/devextreme-schematics/src/utility/latest-versions.ts +++ b/packages/devextreme-schematics/src/utility/latest-versions.ts @@ -1,6 +1,6 @@ // TODO: implement export const latestVersions = { - 'devextreme': '25.1.2-beta', - 'devextreme-angular': '25.1.2-beta', + 'devextreme': '25.1.3', + 'devextreme-angular': '25.1.3', 'devextreme-cli': 'latest' }; From e4189ec4593fab5cc7cdee9f8a0371fe7e3c4b2f Mon Sep 17 00:00:00 2001 From: Vasily Strelyaev Date: Fri, 27 Jun 2025 14:39:14 +0300 Subject: [PATCH 2/7] update engine in package.json --- packages/devextreme-cli/package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/devextreme-cli/package.json b/packages/devextreme-cli/package.json index 733879d39..dd7bb036c 100644 --- a/packages/devextreme-cli/package.json +++ b/packages/devextreme-cli/package.json @@ -14,8 +14,8 @@ "devextreme": "index.js" }, "engines": { - "node": ">12.6.0", - "npm": ">6.2.0", + "node": ">20.19.0", + "npm": ">9.6.0", "yarn": ">1.21" }, "files": [ From 896d6f405b59fb838d1b9d3e29709329932d3730 Mon Sep 17 00:00:00 2001 From: Vasily Strelyaev Date: Wed, 2 Jul 2025 19:45:42 +0400 Subject: [PATCH 3/7] try satisfy vite 7 linter --- .../src/applications/application.react.js | 2 +- .../templates/react/application/src/App.tsx | 3 ++- .../react/application/src/Content.tsx | 2 +- .../react/application/src/app-routes.tsx | 6 ++--- .../src/components/login-form/LoginForm.tsx | 2 +- .../SideNavigationMenu.tsx | 2 +- .../src/components/user-panel/UserPanel.tsx | 2 +- .../application/src/contexts/auth-helpers.ts | 8 +++++++ .../react/application/src/contexts/auth.tsx | 12 +++++----- .../src/contexts/navigation-helpers.ts | 22 +++++++++++++++++++ .../application/src/contexts/navigation.tsx | 20 +++-------------- .../src/templates/react/page/page.tsx | 2 +- .../react/sample-pages/home/home.tsx | 2 +- .../templates/react/sample-pages/index.tsx | 6 ++--- .../react/sample-pages/profile/profile.tsx | 2 +- .../react/sample-pages/tasks/tasks.tsx | 2 +- packages/devextreme-cli/src/utility/module.js | 4 ++-- 17 files changed, 59 insertions(+), 40 deletions(-) create mode 100644 packages/devextreme-cli/src/templates/react/application/src/contexts/auth-helpers.ts create mode 100644 packages/devextreme-cli/src/templates/react/application/src/contexts/navigation-helpers.ts diff --git a/packages/devextreme-cli/src/applications/application.react.js b/packages/devextreme-cli/src/applications/application.react.js index 1b3f8c36c..aa7ae5b63 100644 --- a/packages/devextreme-cli/src/applications/application.react.js +++ b/packages/devextreme-cli/src/applications/application.react.js @@ -214,7 +214,7 @@ const addView = (pageName, options) => { return fileExtension === '.tsx' ? extension : fileExtension; }; templateCreator.addPageToApp(pageName, pathToPage, pageTemplatePath, getCorrectExtension); - moduleUtils.insertExport(pathToPagesIndex(), componentName, `./${pageName}/${pageName}`); + moduleUtils.insertExport(pathToPagesIndex(), componentName, `./${pageName}/${pageName}`, 'Page'); moduleUtils.insertImport(routingModulePath, './pages', componentName); insertItemToArray(routingModulePath, navigationData.route); insertItemToArray(navigationModulePath, navigationData.navigation); diff --git a/packages/devextreme-cli/src/templates/react/application/src/App.tsx b/packages/devextreme-cli/src/templates/react/application/src/App.tsx index bbc2abfdc..c069cc0b3 100644 --- a/packages/devextreme-cli/src/templates/react/application/src/App.tsx +++ b/packages/devextreme-cli/src/templates/react/application/src/App.tsx @@ -2,7 +2,8 @@ import { HashRouter as Router } from 'react-router-dom'; import './dx-styles.scss'; import LoadPanel from 'devextreme-react/load-panel'; import { NavigationProvider } from './contexts/navigation'; -import { AuthProvider, useAuth } from './contexts/auth'; +import { AuthProvider } from './contexts/auth'; +import { useAuth } from './contexts/auth-helpers'; import { useScreenSizeClass } from './utils/media-query'; import Content from './Content'; import UnauthenticatedContent from './UnauthenticatedContent'; diff --git a/packages/devextreme-cli/src/templates/react/application/src/Content.tsx b/packages/devextreme-cli/src/templates/react/application/src/Content.tsx index c2b4513a5..9e4a6aff9 100644 --- a/packages/devextreme-cli/src/templates/react/application/src/Content.tsx +++ b/packages/devextreme-cli/src/templates/react/application/src/Content.tsx @@ -1,6 +1,6 @@ import { Routes, Route, Navigate } from 'react-router-dom'; import appInfo from './app-info'; -import routes from './app-routes'; +import { routes } from './app-routes'; import { <%=layout%> as SideNavBarLayout } from './layouts'; import { Footer } from './components'; diff --git a/packages/devextreme-cli/src/templates/react/application/src/app-routes.tsx b/packages/devextreme-cli/src/templates/react/application/src/app-routes.tsx index 035109cdb..75c489556 100644 --- a/packages/devextreme-cli/src/templates/react/application/src/app-routes.tsx +++ b/packages/devextreme-cli/src/templates/react/application/src/app-routes.tsx @@ -1,7 +1,7 @@ import { HomePage, TasksPage, ProfilePage } from './pages'; -import { withNavigationWatcher } from './contexts/navigation'; +import { withNavigationWatcher } from './contexts/navigation-helpers'; -const routes = [<%=^empty%> +const routeData = [<%=^empty%> { path: '/tasks', element: TasksPage @@ -16,7 +16,7 @@ const routes = [<%=^empty%> } <%=/empty%>]; -export default routes.map(route => { +export const routes = routeData.map(route => { return { ...route, element: withNavigationWatcher(route.element, route.path) diff --git a/packages/devextreme-cli/src/templates/react/application/src/components/login-form/LoginForm.tsx b/packages/devextreme-cli/src/templates/react/application/src/components/login-form/LoginForm.tsx index beadddd2e..a5a8ee7d5 100644 --- a/packages/devextreme-cli/src/templates/react/application/src/components/login-form/LoginForm.tsx +++ b/packages/devextreme-cli/src/templates/react/application/src/components/login-form/LoginForm.tsx @@ -11,7 +11,7 @@ import Form, { import LoadIndicator from 'devextreme-react/load-indicator'; import Button from 'devextreme-react/button'; import notify from 'devextreme/ui/notify'; -import { useAuth } from '../../contexts/auth'; +import { useAuth } from '../../contexts/auth-helpers'; import './LoginForm.scss'; diff --git a/packages/devextreme-cli/src/templates/react/application/src/components/side-navigation-menu/SideNavigationMenu.tsx b/packages/devextreme-cli/src/templates/react/application/src/components/side-navigation-menu/SideNavigationMenu.tsx index 4d524db59..8558448e5 100644 --- a/packages/devextreme-cli/src/templates/react/application/src/components/side-navigation-menu/SideNavigationMenu.tsx +++ b/packages/devextreme-cli/src/templates/react/application/src/components/side-navigation-menu/SideNavigationMenu.tsx @@ -2,7 +2,7 @@ import React, { useEffect, useRef, useCallback, useMemo, useContext } from 'reac import { TreeView<%=#isTypeScript%>, type TreeViewRef<%=/isTypeScript%> } from 'devextreme-react/tree-view'; import * as events from 'devextreme-react/common/core/events'; import { navigation } from '../../app-navigation'; -import { useNavigation } from '../../contexts/navigation'; +import { useNavigation } from '../../contexts/navigation-helpers'; import { useScreenSize } from '../../utils/media-query'; import './SideNavigationMenu.scss'; <%=#isTypeScript%>import type { SideNavigationMenuProps } from '../../types';<%=/isTypeScript%> diff --git a/packages/devextreme-cli/src/templates/react/application/src/components/user-panel/UserPanel.tsx b/packages/devextreme-cli/src/templates/react/application/src/components/user-panel/UserPanel.tsx index 50a5c2269..b2335aeff 100644 --- a/packages/devextreme-cli/src/templates/react/application/src/components/user-panel/UserPanel.tsx +++ b/packages/devextreme-cli/src/templates/react/application/src/components/user-panel/UserPanel.tsx @@ -2,7 +2,7 @@ import { useMemo, useCallback } from 'react'; import { useNavigate } from "react-router-dom"; import DropDownButton from 'devextreme-react/drop-down-button'; import List from 'devextreme-react/list'; -import { useAuth } from '../../contexts/auth'; +import { useAuth } from '../../contexts/auth-helpers'; import './UserPanel.scss'; <%=#isTypeScript%>import type { UserPanelProps } from '../../types';<%=/isTypeScript%> diff --git a/packages/devextreme-cli/src/templates/react/application/src/contexts/auth-helpers.ts b/packages/devextreme-cli/src/templates/react/application/src/contexts/auth-helpers.ts new file mode 100644 index 000000000..a9703f1ac --- /dev/null +++ b/packages/devextreme-cli/src/templates/react/application/src/contexts/auth-helpers.ts @@ -0,0 +1,8 @@ +import { useContext } from 'react'; +import { AuthContext } from './auth'; + +const useAuth = () => useContext(AuthContext); + +export { + useAuth +} diff --git a/packages/devextreme-cli/src/templates/react/application/src/contexts/auth.tsx b/packages/devextreme-cli/src/templates/react/application/src/contexts/auth.tsx index 5194d06de..4b42db7d4 100644 --- a/packages/devextreme-cli/src/templates/react/application/src/contexts/auth.tsx +++ b/packages/devextreme-cli/src/templates/react/application/src/contexts/auth.tsx @@ -1,7 +1,9 @@ -import React, { useState, useEffect, createContext, useContext, useCallback } from 'react'; +import React, { useState, useEffect, useCallback, createContext } from 'react'; import { getUser, signIn as sendSignInRequest } from '../api/auth'; <%=#isTypeScript%>import type { User, AuthContextType } from '../types';<%=/isTypeScript%> +const AuthContext = createContext<%=#isTypeScript%><%=/isTypeScript%>({ loading: false }<%=#isTypeScript%> as AuthContextType<%=/isTypeScript%>); + function AuthProvider(props<%=#isTypeScript%>: React.PropsWithChildren<%=/isTypeScript%>) { const [user, setUser] = useState<%=#isTypeScript%><%=/isTypeScript%>(); const [loading, setLoading] = useState(true); @@ -36,7 +38,7 @@ function AuthProvider(props<%=#isTypeScript%>: React.PropsWithChildren< ); } -const AuthContext = createContext<%=#isTypeScript%><%=/isTypeScript%>({ loading: false }<%=#isTypeScript%> as AuthContextType<%=/isTypeScript%>); -const useAuth = () => useContext(AuthContext); - -export { AuthProvider, useAuth } +export { + AuthProvider, + AuthContext, +}; diff --git a/packages/devextreme-cli/src/templates/react/application/src/contexts/navigation-helpers.ts b/packages/devextreme-cli/src/templates/react/application/src/contexts/navigation-helpers.ts new file mode 100644 index 000000000..c4ac0f03e --- /dev/null +++ b/packages/devextreme-cli/src/templates/react/application/src/contexts/navigation-helpers.ts @@ -0,0 +1,22 @@ +import React, { useContext, useEffect } from 'react'; +import { NavigationContext } from './navigation'; + +const useNavigation = () => useContext(NavigationContext); + +function withNavigationWatcher(Component<%=#isTypeScript%>: React.ElementType<%=/isTypeScript%>, path<%=#isTypeScript%>: string<%=/isTypeScript%>) { + const WrappedComponent = function (props<%=#isTypeScript%>: Record<%=/isTypeScript%>) { + const { setNavigationData } = useNavigation(); + + useEffect(() => { + setNavigationData<%=#isTypeScript%>!<%=/isTypeScript%>({ currentPath: path }); + }, [setNavigationData]); + + return ; + } + return ; +} + +export { + useNavigation, + withNavigationWatcher +} diff --git a/packages/devextreme-cli/src/templates/react/application/src/contexts/navigation.tsx b/packages/devextreme-cli/src/templates/react/application/src/contexts/navigation.tsx index 6af1b9f5d..30fc4c0cd 100644 --- a/packages/devextreme-cli/src/templates/react/application/src/contexts/navigation.tsx +++ b/packages/devextreme-cli/src/templates/react/application/src/contexts/navigation.tsx @@ -1,8 +1,8 @@ -import React, { useState, createContext, useContext, useEffect } from 'react'; +import React, { useState, createContext } from 'react'; <%=#isTypeScript%>import type { NavigationContextType } from '../types';<%=/isTypeScript%> + const NavigationContext = createContext<%=#isTypeScript%><%=/isTypeScript%>({}<%=#isTypeScript%> as NavigationContextType<%=/isTypeScript%>); -const useNavigation = () => useContext(NavigationContext); function NavigationProvider(props<%=#isTypeScript%>: React.PropsWithChildren<%=/isTypeScript%>) { const [navigationData, setNavigationData] = useState({ currentPath: '' }); @@ -15,21 +15,7 @@ function NavigationProvider(props<%=#isTypeScript%>: React.PropsWithChildren: React.ElementType<%=/isTypeScript%>, path<%=#isTypeScript%>: string<%=/isTypeScript%>) { - const WrappedComponent = function (props<%=#isTypeScript%>: Record<%=/isTypeScript%>) { - const { setNavigationData } = useNavigation(); - - useEffect(() => { - setNavigationData<%=#isTypeScript%>!<%=/isTypeScript%>({ currentPath: path }); - }, [setNavigationData]); - - return ; - } - return ; -} - export { NavigationProvider, - useNavigation, - withNavigationWatcher + NavigationContext, } diff --git a/packages/devextreme-cli/src/templates/react/page/page.tsx b/packages/devextreme-cli/src/templates/react/page/page.tsx index 7c01a9aa2..01c601b10 100644 --- a/packages/devextreme-cli/src/templates/react/page/page.tsx +++ b/packages/devextreme-cli/src/templates/react/page/page.tsx @@ -1,7 +1,7 @@ import React from 'react'; import './<%=pageName%>.scss'; -export default () => ( +export const Page = () => (

<%=title%>

diff --git a/packages/devextreme-cli/src/templates/react/sample-pages/home/home.tsx b/packages/devextreme-cli/src/templates/react/sample-pages/home/home.tsx index a79858f2a..3532ca7ce 100644 --- a/packages/devextreme-cli/src/templates/react/sample-pages/home/home.tsx +++ b/packages/devextreme-cli/src/templates/react/sample-pages/home/home.tsx @@ -1,7 +1,7 @@ import React from 'react'; import './home.scss'; -export default function Home() { +export function Home() { return (

Home

diff --git a/packages/devextreme-cli/src/templates/react/sample-pages/index.tsx b/packages/devextreme-cli/src/templates/react/sample-pages/index.tsx index 1e0686ec5..dc35875df 100644 --- a/packages/devextreme-cli/src/templates/react/sample-pages/index.tsx +++ b/packages/devextreme-cli/src/templates/react/sample-pages/index.tsx @@ -1,3 +1,3 @@ -export { default as HomePage } from './home/home'; -export { default as ProfilePage } from './profile/profile'; -export { default as TasksPage } from './tasks/tasks'; +export { Home as HomePage } from './home/home'; +export { Profile as ProfilePage } from './profile/profile'; +export { Tasks as TasksPage } from './tasks/tasks'; diff --git a/packages/devextreme-cli/src/templates/react/sample-pages/profile/profile.tsx b/packages/devextreme-cli/src/templates/react/sample-pages/profile/profile.tsx index 7455d150b..93e6336fe 100644 --- a/packages/devextreme-cli/src/templates/react/sample-pages/profile/profile.tsx +++ b/packages/devextreme-cli/src/templates/react/sample-pages/profile/profile.tsx @@ -2,7 +2,7 @@ import React, { useState } from 'react'; import './profile.scss'; import Form from 'devextreme-react/form'; -export default function Profile() { +export function Profile() { const [notes, setNotes] = useState( 'Sandra is a CPA and has been our controller since 2008. She loves to interact with staff so if you`ve not met her, be certain to say hi.\r\n\r\nSandra has 2 daughters both of whom are accomplished gymnasts.' ); diff --git a/packages/devextreme-cli/src/templates/react/sample-pages/tasks/tasks.tsx b/packages/devextreme-cli/src/templates/react/sample-pages/tasks/tasks.tsx index d768d19e0..2b4af0d08 100644 --- a/packages/devextreme-cli/src/templates/react/sample-pages/tasks/tasks.tsx +++ b/packages/devextreme-cli/src/templates/react/sample-pages/tasks/tasks.tsx @@ -9,7 +9,7 @@ import DataGrid, { } from 'devextreme-react/data-grid'; import './tasks.scss'; -export default function Task() { +export function Tasks() { return (

Tasks

diff --git a/packages/devextreme-cli/src/utility/module.js b/packages/devextreme-cli/src/utility/module.js index 7518a9100..558790c35 100644 --- a/packages/devextreme-cli/src/utility/module.js +++ b/packages/devextreme-cli/src/utility/module.js @@ -32,10 +32,10 @@ const insertImport = (filePath, moduleName, importName, isDefault) => { } }; -const insertExport = (filePath, exportName, modulePath) => { +const insertExport = (filePath, exportName, modulePath, importName = 'default') => { const fileContent = fs.readFileSync(filePath).toString(); - fs.writeFileSync(filePath, `${fileContent}export { default as ${exportName} } from \'${modulePath}\';\n`); + fs.writeFileSync(filePath, `${fileContent}export { ${importName} as ${exportName} } from \'${modulePath}\';\n`); }; module.exports = { From 38e48100123f04e2a13de8c94ce7ebb7389c0bd5 Mon Sep 17 00:00:00 2001 From: Vasily Strelyaev Date: Thu, 3 Jul 2025 12:09:48 +0400 Subject: [PATCH 4/7] improve file names --- .../devextreme-cli/src/templates/react/application/src/App.tsx | 2 +- .../src/templates/react/application/src/app-routes.tsx | 2 +- .../react/application/src/components/login-form/LoginForm.tsx | 2 +- .../src/components/side-navigation-menu/SideNavigationMenu.tsx | 2 +- .../react/application/src/components/user-panel/UserPanel.tsx | 2 +- .../application/src/contexts/{auth-helpers.ts => auth-hooks.ts} | 0 .../src/contexts/{navigation-helpers.ts => navigation-hooks.ts} | 0 7 files changed, 5 insertions(+), 5 deletions(-) rename packages/devextreme-cli/src/templates/react/application/src/contexts/{auth-helpers.ts => auth-hooks.ts} (100%) rename packages/devextreme-cli/src/templates/react/application/src/contexts/{navigation-helpers.ts => navigation-hooks.ts} (100%) diff --git a/packages/devextreme-cli/src/templates/react/application/src/App.tsx b/packages/devextreme-cli/src/templates/react/application/src/App.tsx index c069cc0b3..55f41a363 100644 --- a/packages/devextreme-cli/src/templates/react/application/src/App.tsx +++ b/packages/devextreme-cli/src/templates/react/application/src/App.tsx @@ -3,7 +3,7 @@ import './dx-styles.scss'; import LoadPanel from 'devextreme-react/load-panel'; import { NavigationProvider } from './contexts/navigation'; import { AuthProvider } from './contexts/auth'; -import { useAuth } from './contexts/auth-helpers'; +import { useAuth } from './contexts/auth-hooks'; import { useScreenSizeClass } from './utils/media-query'; import Content from './Content'; import UnauthenticatedContent from './UnauthenticatedContent'; diff --git a/packages/devextreme-cli/src/templates/react/application/src/app-routes.tsx b/packages/devextreme-cli/src/templates/react/application/src/app-routes.tsx index 75c489556..7fea2272f 100644 --- a/packages/devextreme-cli/src/templates/react/application/src/app-routes.tsx +++ b/packages/devextreme-cli/src/templates/react/application/src/app-routes.tsx @@ -1,5 +1,5 @@ import { HomePage, TasksPage, ProfilePage } from './pages'; -import { withNavigationWatcher } from './contexts/navigation-helpers'; +import { withNavigationWatcher } from './contexts/navigation-hooks'; const routeData = [<%=^empty%> { diff --git a/packages/devextreme-cli/src/templates/react/application/src/components/login-form/LoginForm.tsx b/packages/devextreme-cli/src/templates/react/application/src/components/login-form/LoginForm.tsx index a5a8ee7d5..148e70fb1 100644 --- a/packages/devextreme-cli/src/templates/react/application/src/components/login-form/LoginForm.tsx +++ b/packages/devextreme-cli/src/templates/react/application/src/components/login-form/LoginForm.tsx @@ -11,7 +11,7 @@ import Form, { import LoadIndicator from 'devextreme-react/load-indicator'; import Button from 'devextreme-react/button'; import notify from 'devextreme/ui/notify'; -import { useAuth } from '../../contexts/auth-helpers'; +import { useAuth } from '../../contexts/auth-hooks'; import './LoginForm.scss'; diff --git a/packages/devextreme-cli/src/templates/react/application/src/components/side-navigation-menu/SideNavigationMenu.tsx b/packages/devextreme-cli/src/templates/react/application/src/components/side-navigation-menu/SideNavigationMenu.tsx index 8558448e5..1b757ea20 100644 --- a/packages/devextreme-cli/src/templates/react/application/src/components/side-navigation-menu/SideNavigationMenu.tsx +++ b/packages/devextreme-cli/src/templates/react/application/src/components/side-navigation-menu/SideNavigationMenu.tsx @@ -2,7 +2,7 @@ import React, { useEffect, useRef, useCallback, useMemo, useContext } from 'reac import { TreeView<%=#isTypeScript%>, type TreeViewRef<%=/isTypeScript%> } from 'devextreme-react/tree-view'; import * as events from 'devextreme-react/common/core/events'; import { navigation } from '../../app-navigation'; -import { useNavigation } from '../../contexts/navigation-helpers'; +import { useNavigation } from '../../contexts/navigation-hooks'; import { useScreenSize } from '../../utils/media-query'; import './SideNavigationMenu.scss'; <%=#isTypeScript%>import type { SideNavigationMenuProps } from '../../types';<%=/isTypeScript%> diff --git a/packages/devextreme-cli/src/templates/react/application/src/components/user-panel/UserPanel.tsx b/packages/devextreme-cli/src/templates/react/application/src/components/user-panel/UserPanel.tsx index b2335aeff..38658694d 100644 --- a/packages/devextreme-cli/src/templates/react/application/src/components/user-panel/UserPanel.tsx +++ b/packages/devextreme-cli/src/templates/react/application/src/components/user-panel/UserPanel.tsx @@ -2,7 +2,7 @@ import { useMemo, useCallback } from 'react'; import { useNavigate } from "react-router-dom"; import DropDownButton from 'devextreme-react/drop-down-button'; import List from 'devextreme-react/list'; -import { useAuth } from '../../contexts/auth-helpers'; +import { useAuth } from '../../contexts/auth-hooks'; import './UserPanel.scss'; <%=#isTypeScript%>import type { UserPanelProps } from '../../types';<%=/isTypeScript%> diff --git a/packages/devextreme-cli/src/templates/react/application/src/contexts/auth-helpers.ts b/packages/devextreme-cli/src/templates/react/application/src/contexts/auth-hooks.ts similarity index 100% rename from packages/devextreme-cli/src/templates/react/application/src/contexts/auth-helpers.ts rename to packages/devextreme-cli/src/templates/react/application/src/contexts/auth-hooks.ts diff --git a/packages/devextreme-cli/src/templates/react/application/src/contexts/navigation-helpers.ts b/packages/devextreme-cli/src/templates/react/application/src/contexts/navigation-hooks.ts similarity index 100% rename from packages/devextreme-cli/src/templates/react/application/src/contexts/navigation-helpers.ts rename to packages/devextreme-cli/src/templates/react/application/src/contexts/navigation-hooks.ts From 1ea74aaaca43d2b6d0b4e1703f7d26f5ed572b16 Mon Sep 17 00:00:00 2001 From: Vasily Strelyaev Date: Thu, 3 Jul 2025 14:32:24 +0400 Subject: [PATCH 5/7] bump node in GHA --- .github/workflows/applications.yml | 4 ++-- .github/workflows/check-nextjs.yml | 2 +- .github/workflows/lint.yml | 2 +- .github/workflows/themebuilder.yml | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/applications.yml b/.github/workflows/applications.yml index aab90cad8..43e78c4a2 100644 --- a/.github/workflows/applications.yml +++ b/.github/workflows/applications.yml @@ -26,7 +26,7 @@ jobs: - nextjs - nextjs-ts NODE: - - 18 + - 20 OS: - ubuntu-latest @@ -108,7 +108,7 @@ jobs: - name: Set up Node.js and restore cache uses: actions/setup-node@v4 with: - node-version: 18 + node-version: 20 cache: 'npm' cache-dependency-path: '**/package-lock.json' diff --git a/.github/workflows/check-nextjs.yml b/.github/workflows/check-nextjs.yml index f3c5071ee..193847edc 100644 --- a/.github/workflows/check-nextjs.yml +++ b/.github/workflows/check-nextjs.yml @@ -14,7 +14,7 @@ jobs: SRC_DIR: [true, false] APP_ROUTER: [true, false] NODE: - - 18 + - 20 OS: - ubuntu-latest diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 3e2c78115..2a8ad8aec 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -19,7 +19,7 @@ jobs: - name: Use Node.js uses: actions/setup-node@v4 with: - node-version: '18' + node-version: '20' - name: Run npm install run: npm install --no-package-lock --no-audit --no-fund diff --git a/.github/workflows/themebuilder.yml b/.github/workflows/themebuilder.yml index 80052a02c..bd57dad6c 100644 --- a/.github/workflows/themebuilder.yml +++ b/.github/workflows/themebuilder.yml @@ -7,7 +7,7 @@ jobs: strategy: fail-fast: false matrix: - NODE: [ 18 ] + NODE: [ 20 ] runs-on: ubuntu-latest name: ThemeBuilder From df4bd0936dc16c7a35ff2533e217293de529eaf9 Mon Sep 17 00:00:00 2001 From: Vasily Strelyaev Date: Thu, 3 Jul 2025 15:45:07 +0400 Subject: [PATCH 6/7] remove no-package-lock --- .github/workflows/applications.yml | 2 +- .github/workflows/lint.yml | 2 +- .github/workflows/themebuilder.yml | 2 +- packages/devextreme-cli/package-lock.json | 4 ++-- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/applications.yml b/.github/workflows/applications.yml index 43e78c4a2..15959dbbd 100644 --- a/.github/workflows/applications.yml +++ b/.github/workflows/applications.yml @@ -115,7 +115,7 @@ jobs: - name: Run npm install env: PUPPETEER_SKIP_DOWNLOAD: true - run: npm install --no-package-lock --no-audit --no-fund + run: npm install --no-audit --no-fund - name: Run schematics tests run: cd packages/devextreme-schematics && npm run test diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 2a8ad8aec..074708806 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -22,7 +22,7 @@ jobs: node-version: '20' - name: Run npm install - run: npm install --no-package-lock --no-audit --no-fund + run: npm install --no-audit --no-fund - name: Run tests run: npm run lint diff --git a/.github/workflows/themebuilder.yml b/.github/workflows/themebuilder.yml index bd57dad6c..e4a27aa00 100644 --- a/.github/workflows/themebuilder.yml +++ b/.github/workflows/themebuilder.yml @@ -33,7 +33,7 @@ jobs: themebuilder-${{ runner.os }}-node- - name: Run npm install - run: npm install --no-package-lock --no-audit --no-fund + run: npm install --no-audit --no-fund - name: Run tests run: npm run test-themebuilder diff --git a/packages/devextreme-cli/package-lock.json b/packages/devextreme-cli/package-lock.json index 0e87c21da..bcae42f5d 100644 --- a/packages/devextreme-cli/package-lock.json +++ b/packages/devextreme-cli/package-lock.json @@ -50,8 +50,8 @@ "wait-on": "8.0.3" }, "engines": { - "node": ">12.6.0", - "npm": ">6.2.0", + "node": ">20.19.0", + "npm": ">9.6.0", "yarn": ">1.21" } }, From 022cc992c594ff7a2b723123ba2f9fa09753448a Mon Sep 17 00:00:00 2001 From: Vasily Strelyaev Date: Thu, 3 Jul 2025 16:20:20 +0400 Subject: [PATCH 7/7] try skip puppeteer --- .github/workflows/applications.yml | 2 +- .github/workflows/lint.yml | 4 +++- .github/workflows/themebuilder.yml | 4 +++- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/.github/workflows/applications.yml b/.github/workflows/applications.yml index 15959dbbd..43e78c4a2 100644 --- a/.github/workflows/applications.yml +++ b/.github/workflows/applications.yml @@ -115,7 +115,7 @@ jobs: - name: Run npm install env: PUPPETEER_SKIP_DOWNLOAD: true - run: npm install --no-audit --no-fund + run: npm install --no-package-lock --no-audit --no-fund - name: Run schematics tests run: cd packages/devextreme-schematics && npm run test diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 074708806..0d5940de8 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -22,7 +22,9 @@ jobs: node-version: '20' - name: Run npm install - run: npm install --no-audit --no-fund + env: + PUPPETEER_SKIP_DOWNLOAD: true + run: npm install --no-package-lock --no-audit --no-fund - name: Run tests run: npm run lint diff --git a/.github/workflows/themebuilder.yml b/.github/workflows/themebuilder.yml index e4a27aa00..3f4ef7c18 100644 --- a/.github/workflows/themebuilder.yml +++ b/.github/workflows/themebuilder.yml @@ -33,7 +33,9 @@ jobs: themebuilder-${{ runner.os }}-node- - name: Run npm install - run: npm install --no-audit --no-fund + env: + PUPPETEER_SKIP_DOWNLOAD: true + run: npm install --no-package-lock --no-audit --no-fund - name: Run tests run: npm run test-themebuilder