diff --git a/CHANGELOG.md b/CHANGELOG.md index 2cec0737..063e7e7f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ ### [@coreui/angular](https://coreui.io/angular/) changelog +#### `5.2.11` + +- feat(schematics): ng-add basic integration +- chore(dependencies): update + +--- + #### `5.2.7` - chore(dependencies): update diff --git a/angular.json b/angular.json index a1c89c92..7e289525 100644 --- a/angular.json +++ b/angular.json @@ -163,6 +163,16 @@ }, "@angular-eslint/schematics:library": { "setParserOptionsProject": true + }, + "@schematics/angular:component": { + "standalone": true, + "style": "scss" + }, + "@schematics/angular:directive": { + "standalone": true + }, + "@schematics/angular:pipe": { + "standalone": true } } } diff --git a/package-lock.json b/package-lock.json index 67cc67e8..e061e209 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,24 +1,24 @@ { "name": "coreui-angular-dev", - "version": "5.2.7", + "version": "5.2.11", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "coreui-angular-dev", - "version": "5.2.7", - "license": "MIT", - "dependencies": { - "@angular/animations": "^18.1.1", - "@angular/cdk": "^18.1.1", - "@angular/common": "^18.1.1", - "@angular/compiler": "^18.1.1", - "@angular/core": "^18.1.1", - "@angular/forms": "^18.1.1", - "@angular/localize": "^18.1.1", - "@angular/platform-browser": "^18.1.1", - "@angular/platform-browser-dynamic": "^18.1.1", - "@angular/router": "^18.1.1", + "version": "5.2.11", + "license": "MIT", + "dependencies": { + "@angular/animations": "^18.1.2", + "@angular/cdk": "^18.1.2", + "@angular/common": "^18.1.2", + "@angular/compiler": "^18.1.2", + "@angular/core": "^18.1.2", + "@angular/forms": "^18.1.2", + "@angular/localize": "^18.1.2", + "@angular/platform-browser": "^18.1.2", + "@angular/platform-browser-dynamic": "^18.1.2", + "@angular/router": "^18.1.2", "@coreui/chartjs": "^4.0.0", "@coreui/icons": "^3.0.1", "@popperjs/core": "~2.11.8", @@ -29,22 +29,24 @@ "zone.js": "~0.14.8" }, "devDependencies": { - "@angular-devkit/build-angular": "^18.1.1", + "@angular-devkit/build-angular": "^18.1.2", + "@angular-devkit/schematics": "^18.1.2", "@angular-eslint/builder": "18.1.0", "@angular-eslint/eslint-plugin": "18.1.0", "@angular-eslint/eslint-plugin-template": "18.1.0", "@angular-eslint/schematics": "18.1.0", "@angular-eslint/template-parser": "18.1.0", - "@angular/cli": "^18.1.1", - "@angular/compiler-cli": "^18.1.1", - "@angular/language-service": "^18.1.1", + "@angular/cli": "^18.1.2", + "@angular/compiler-cli": "^18.1.2", + "@angular/language-service": "^18.1.2", "@types/jasmine": "^5.1.4", "@types/lodash-es": "^4.17.12", - "@types/node": "^20.14.11", - "@typescript-eslint/eslint-plugin": "^7.16.1", - "@typescript-eslint/parser": "^7.16.1", + "@types/node": "^20.14.12", + "@typescript-eslint/eslint-plugin": "^7.17.0", + "@typescript-eslint/parser": "^7.17.0", + "copyfiles": "^2.4.1", "eslint": "^8.57.0", - "jasmine-core": "^5.1.2", + "jasmine-core": "^5.2.0", "karma": "^6.4.3", "karma-chrome-launcher": "^3.2.0", "karma-coverage": "^2.2.1", @@ -55,7 +57,7 @@ "typescript": "~5.4.5" }, "engines": { - "node": "^18.19.0 || ^20.9.0", + "node": "^18.19.1 || ^20.11.1 || >=22.0.0", "npm": ">=9" } }, @@ -73,13 +75,13 @@ } }, "node_modules/@angular-devkit/architect": { - "version": "0.1801.1", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1801.1.tgz", - "integrity": "sha512-7dIQ++D5PTzLgs4sEvi7pMpG4nY4CTnzLKbqKDI++fJKa7FEpVjje1tsr1r8ap8xD0QXr6sIxmQ4hdLeWwPhDQ==", + "version": "0.1801.2", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1801.2.tgz", + "integrity": "sha512-y2rV8wRwTnmCH/dUo632wHi6r41Gs9XucyGm/ybzB/5tN3x6dS+O3c3zajRpdqTUr8YcD6os6sT+Ay6zS31tOw==", "dev": true, "license": "MIT", "dependencies": { - "@angular-devkit/core": "18.1.1", + "@angular-devkit/core": "18.1.2", "rxjs": "7.8.1" }, "engines": { @@ -89,17 +91,17 @@ } }, "node_modules/@angular-devkit/build-angular": { - "version": "18.1.1", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-18.1.1.tgz", - "integrity": "sha512-sd/eOzitC8yN9xl/TbbuDxXL1LRZCX3gwKAddV1fJSrXJHEmDM7PhdQbNEPd2O58evMKSiMZK91WnYN0lhTZtw==", + "version": "18.1.2", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-18.1.2.tgz", + "integrity": "sha512-f4X6UOOHghofMwsYK/3ZAskI3ocSyw14J2SExz7hBPIQicoJgnrzloOkYUkXBWv2q0n11m9wjOlQV+4KPGqJQw==", "dev": true, "license": "MIT", "dependencies": { "@ampproject/remapping": "2.3.0", - "@angular-devkit/architect": "0.1801.1", - "@angular-devkit/build-webpack": "0.1801.1", - "@angular-devkit/core": "18.1.1", - "@angular/build": "18.1.1", + "@angular-devkit/architect": "0.1801.2", + "@angular-devkit/build-webpack": "0.1801.2", + "@angular-devkit/core": "18.1.2", + "@angular/build": "18.1.2", "@babel/core": "7.24.7", "@babel/generator": "7.24.7", "@babel/helper-annotate-as-pure": "7.24.7", @@ -110,7 +112,7 @@ "@babel/preset-env": "7.24.7", "@babel/runtime": "7.24.7", "@discoveryjs/json-ext": "0.5.7", - "@ngtools/webpack": "18.1.1", + "@ngtools/webpack": "18.1.2", "@vitejs/plugin-basic-ssl": "1.1.0", "ansi-colors": "4.1.3", "autoprefixer": "10.4.19", @@ -219,13 +221,13 @@ } }, "node_modules/@angular-devkit/build-webpack": { - "version": "0.1801.1", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1801.1.tgz", - "integrity": "sha512-9qImQciytrf433+h1aAWMD/Qn9cx7amlLtHX9j6ToBMWxY3L9ZKzwlCZ3Q+d6VWs7QrN/X9j8VkJl913yuXeCQ==", + "version": "0.1801.2", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1801.2.tgz", + "integrity": "sha512-S960l/BPfEAgiYs35PpqXKwg+vJbdnOAXD6MCLTMz+T/h3go/D+FtQWLLV4kP6222BMFJHl3/sd4Q6cvpEo0eg==", "dev": true, "license": "MIT", "dependencies": { - "@angular-devkit/architect": "0.1801.1", + "@angular-devkit/architect": "0.1801.2", "rxjs": "7.8.1" }, "engines": { @@ -239,9 +241,9 @@ } }, "node_modules/@angular-devkit/core": { - "version": "18.1.1", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-18.1.1.tgz", - "integrity": "sha512-YFzn/+8LezX7ZJhMQisvrqfkxJm6+JOtbWFj8K/luK0rTDmE8Z9n9r6kJ36FnHcLJ5MvvVaBc7n1v1wnzdqXpg==", + "version": "18.1.2", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-18.1.2.tgz", + "integrity": "sha512-WYkdKT/Ime5seBX7S7S4aWQbgCG5U3otCvAg/XiMn6scexTo3EZe2jrJl8nxGGFHNWrePoD86LvJOxhnCkEKEA==", "dev": true, "license": "MIT", "dependencies": { @@ -267,13 +269,13 @@ } }, "node_modules/@angular-devkit/schematics": { - "version": "18.1.1", - "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-18.1.1.tgz", - "integrity": "sha512-r+DAvVvv+hOuhh19PefPOKa/zDkvzLHz/YOLGq/k1KfJRtNtjCKiDsXp1s6HSzYdJD1H10wnzUIh48uvxfwH5Q==", + "version": "18.1.2", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-18.1.2.tgz", + "integrity": "sha512-v8aCJ1tPPzXsdiCoZxkc6YzLGhzJgC/6QauT03/Z6wWo8uI6DKibQQwQBawRE5FN5lKDpuGlNDv40EDtVYkQSA==", "dev": true, "license": "MIT", "dependencies": { - "@angular-devkit/core": "18.1.1", + "@angular-devkit/core": "18.1.2", "jsonc-parser": "3.3.1", "magic-string": "0.30.10", "ora": "5.4.1", @@ -392,9 +394,9 @@ } }, "node_modules/@angular/animations": { - "version": "18.1.1", - "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-18.1.1.tgz", - "integrity": "sha512-3BdB6lB7TT1BQFb8C3XyJ5A9YSrOx951NzcXnzFfTNiq1C+VeR455LtdNiDTPa9Vf5Df1cJb6ReJ1z17ztx+6Q==", + "version": "18.1.2", + "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-18.1.2.tgz", + "integrity": "sha512-Gbqp3TSrkDOQgxCMK7qm+IBFxw8+IgyA//S5ZgXt2qrrhQWVDF4uQJbzusqDSUcHpdtOD05X81NFgUc8f13UFA==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -403,18 +405,18 @@ "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/core": "18.1.1" + "@angular/core": "18.1.2" } }, "node_modules/@angular/build": { - "version": "18.1.1", - "resolved": "https://registry.npmjs.org/@angular/build/-/build-18.1.1.tgz", - "integrity": "sha512-DbgFqpaZE6g8VZaPboB54cVuERlZV6SAkNPEaMT/53cnCxL4QdSQs1aT9Wy8G1Ksr4WI5AZMdPic/TVF0KBGGQ==", + "version": "18.1.2", + "resolved": "https://registry.npmjs.org/@angular/build/-/build-18.1.2.tgz", + "integrity": "sha512-DuXXjE4x3tDedZQTsZBRuMCkYfYSdChtnxyf2F0CywKIfcsogbhyt8bYoUyC8yJp2CLyTamdvJGcI1Gh1678Zw==", "dev": true, "license": "MIT", "dependencies": { "@ampproject/remapping": "2.3.0", - "@angular-devkit/architect": "0.1801.1", + "@angular-devkit/architect": "0.1801.2", "@babel/core": "7.24.7", "@babel/helper-annotate-as-pure": "7.24.7", "@babel/helper-split-export-declaration": "7.24.7", @@ -478,9 +480,9 @@ } }, "node_modules/@angular/cdk": { - "version": "18.1.1", - "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-18.1.1.tgz", - "integrity": "sha512-IaDjvRUgAoKnEeafrnBX+hjTR+1M3O3fV3AybBCjN4NuiPtuyOJiTMg0cTv6RbluJ/SenbT4MQq3tMpOsa9i4w==", + "version": "18.1.2", + "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-18.1.2.tgz", + "integrity": "sha512-yiAJ/9AMVF2zk7VLEuyJxNJwpV84xLlf0zCaXiYIs6Z8xU6m8N9KR2nqxC59gQc4nTjItmoO/Sgk7XH0X4yGOQ==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -495,18 +497,18 @@ } }, "node_modules/@angular/cli": { - "version": "18.1.1", - "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-18.1.1.tgz", - "integrity": "sha512-sRmc5meBLRQgFKq6te1UM4JPHWPERrg1pjYStft/qRKkOyvgpNzq3Ol6hN3zNb2ds2bAgjKhEAlOwSOZuw1cqQ==", + "version": "18.1.2", + "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-18.1.2.tgz", + "integrity": "sha512-5H0scWgJcDE3NSM6/j/xSwNfAQBVOhVjXuj+nZOaEkJC0Bxh6AoEdWpQdzmZ6qSlx4LMlJYI6P/sH0kiBlFfgA==", "dev": true, "license": "MIT", "dependencies": { - "@angular-devkit/architect": "0.1801.1", - "@angular-devkit/core": "18.1.1", - "@angular-devkit/schematics": "18.1.1", + "@angular-devkit/architect": "0.1801.2", + "@angular-devkit/core": "18.1.2", + "@angular-devkit/schematics": "18.1.2", "@inquirer/prompts": "5.0.7", "@listr2/prompt-adapter-inquirer": "2.0.13", - "@schematics/angular": "18.1.1", + "@schematics/angular": "18.1.2", "@yarnpkg/lockfile": "1.1.0", "ini": "4.1.3", "jsonc-parser": "3.3.1", @@ -529,9 +531,9 @@ } }, "node_modules/@angular/common": { - "version": "18.1.1", - "resolved": "https://registry.npmjs.org/@angular/common/-/common-18.1.1.tgz", - "integrity": "sha512-qNfYAapvIi8JyQToSqbg3O5dRXaElv/yNp2evvBGn4UO/liHjdNV/DzgCdyKP7uVbYrR0W3bzj++SxVR3mrATQ==", + "version": "18.1.2", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-18.1.2.tgz", + "integrity": "sha512-PXzRH5fCSmjGwNvopPfwAxcMqQPFLamyIjVJa5mwTyk5FLhKNrNecSo7m6ZpsfLPsW5Ipk/ups9RJD0Mep82Hw==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -540,14 +542,14 @@ "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/core": "18.1.1", + "@angular/core": "18.1.2", "rxjs": "^6.5.3 || ^7.4.0" } }, "node_modules/@angular/compiler": { - "version": "18.1.1", - "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-18.1.1.tgz", - "integrity": "sha512-Nc2GZhXXi3O2otZIWgOJoGZ+88+R6YXGc70dibEpMvmDjKfYpc4pBjuYzaGntdiTYAzVOVTTv09dwTP6YOpPRA==", + "version": "18.1.2", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-18.1.2.tgz", + "integrity": "sha512-ePoSW4S899bN+QKYFCDUHX8tSvycPxncduqsG403IHzawelG8cRMjtxNAN01tJvN1KcKwR6YUYdWt8PYgipBhw==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -556,7 +558,7 @@ "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/core": "18.1.1" + "@angular/core": "18.1.2" }, "peerDependenciesMeta": { "@angular/core": { @@ -565,12 +567,12 @@ } }, "node_modules/@angular/compiler-cli": { - "version": "18.1.1", - "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-18.1.1.tgz", - "integrity": "sha512-TMPrN4HLa5raxW133bY3AxH1Gar36nmy0ikttMeSotLSlC5Y4SCYaiMY7QaPytD1iEGvqAd/rP+YuXzOIuCM/w==", + "version": "18.1.2", + "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-18.1.2.tgz", + "integrity": "sha512-u8VMgPFECfu+Usl8nrl6zVPDEjnXK0XH5DdQPVo4c3NDI6zStugLJbQ+OLIsHYfzJHdxxVSsF56URG5OcVTLEw==", "license": "MIT", "dependencies": { - "@babel/core": "7.24.7", + "@babel/core": "7.24.9", "@jridgewell/sourcemap-codec": "^1.4.14", "chokidar": "^3.0.0", "convert-source-map": "^1.5.1", @@ -588,14 +590,74 @@ "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/compiler": "18.1.1", + "@angular/compiler": "18.1.2", "typescript": ">=5.4 <5.6" } }, + "node_modules/@angular/compiler-cli/node_modules/@babel/core": { + "version": "7.24.9", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.9.tgz", + "integrity": "sha512-5e3FI4Q3M3Pbr21+5xJwCv6ZT6KmGkI0vw3Tozy5ODAQFTIWe37iT8Cr7Ice2Ntb+M3iSKCEWMB1MBgKrW3whg==", + "license": "MIT", + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.24.7", + "@babel/generator": "^7.24.9", + "@babel/helper-compilation-targets": "^7.24.8", + "@babel/helper-module-transforms": "^7.24.9", + "@babel/helpers": "^7.24.8", + "@babel/parser": "^7.24.8", + "@babel/template": "^7.24.7", + "@babel/traverse": "^7.24.8", + "@babel/types": "^7.24.9", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@angular/compiler-cli/node_modules/@babel/core/node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "license": "MIT" + }, + "node_modules/@angular/compiler-cli/node_modules/@babel/core/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@angular/compiler-cli/node_modules/@babel/generator": { + "version": "7.24.10", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.10.tgz", + "integrity": "sha512-o9HBZL1G2129luEUlG1hB4N/nlYNWHnpwlND9eOMclRqqu1YDy2sSYVCFUZwl8I1Gxh+QSRrP2vD7EpUmFVXxg==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.24.9", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@angular/core": { - "version": "18.1.1", - "resolved": "https://registry.npmjs.org/@angular/core/-/core-18.1.1.tgz", - "integrity": "sha512-/JFQ49fVIthZzdggl7FOCYAjaynbkRcCyiri85kAyTIvJ6aMSIiEKwJCw45WI5ICf2HtC9kz6dr0OKhMR6SeiA==", + "version": "18.1.2", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-18.1.2.tgz", + "integrity": "sha512-/wiewpA8KpEkXf3E/Q0+0H3Dgg5zCG/+vzAUVIOGP+0tYk8no0NUecHyXLjz0hRQOJ6a3zMKVtZO3wYl8WNGEg==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -609,9 +671,9 @@ } }, "node_modules/@angular/forms": { - "version": "18.1.1", - "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-18.1.1.tgz", - "integrity": "sha512-CceH57IKeH2Zq8QFFkcJMvBbjxVRCtqzAqSETfShWzrt+ITrz4c6EnUMbj30iz+ntn/R+qGAp3n/t0D7HtTS6Q==", + "version": "18.1.2", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-18.1.2.tgz", + "integrity": "sha512-R0drnkmiU74XHMKUnrgxJNW3WHtKKsVMualyUANR26+SH07ZZFvuvXTx7u0pbh0d1JFK3hlWvZO7X52x1bH37w==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -620,16 +682,16 @@ "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/common": "18.1.1", - "@angular/core": "18.1.1", - "@angular/platform-browser": "18.1.1", + "@angular/common": "18.1.2", + "@angular/core": "18.1.2", + "@angular/platform-browser": "18.1.2", "rxjs": "^6.5.3 || ^7.4.0" } }, "node_modules/@angular/language-service": { - "version": "18.1.1", - "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-18.1.1.tgz", - "integrity": "sha512-SK9mKBB+fWXBXgdDLPZQI/peHqeQLheseSUPhZQyARDR6CrUvhB7MSRWERhn8832fZ6BoCE01p1obsYLWeXNbw==", + "version": "18.1.2", + "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-18.1.2.tgz", + "integrity": "sha512-2siwL+SFeAtNLjumFNmiHY1JI9/N30L2NCk/Z3ytfytZwMICunXOlMrnNare3YD9l097e4pWdniM7z8v04r2Nw==", "dev": true, "license": "MIT", "engines": { @@ -637,12 +699,12 @@ } }, "node_modules/@angular/localize": { - "version": "18.1.1", - "resolved": "https://registry.npmjs.org/@angular/localize/-/localize-18.1.1.tgz", - "integrity": "sha512-KuUXPWq91XrSsYPvi0tVp+dlG2F+doxXN/FOg+RhUh3X4Qdxy93OWPTMmkWxJ6U9rbXFBKqxfd0+Vnt/BypMmg==", + "version": "18.1.2", + "resolved": "https://registry.npmjs.org/@angular/localize/-/localize-18.1.2.tgz", + "integrity": "sha512-QwDCuTxqEYarngcgItbHEDYvA9/q84FRqKEf7ctZkcFuARAoGtJuOmcvHgRxvTDLLsgljikDAEWeXbVuqVfBiA==", "license": "MIT", "dependencies": { - "@babel/core": "7.24.7", + "@babel/core": "7.24.9", "@types/babel__core": "7.20.5", "fast-glob": "3.3.2", "yargs": "^17.2.1" @@ -656,14 +718,74 @@ "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/compiler": "18.1.1", - "@angular/compiler-cli": "18.1.1" + "@angular/compiler": "18.1.2", + "@angular/compiler-cli": "18.1.2" + } + }, + "node_modules/@angular/localize/node_modules/@babel/core": { + "version": "7.24.9", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.9.tgz", + "integrity": "sha512-5e3FI4Q3M3Pbr21+5xJwCv6ZT6KmGkI0vw3Tozy5ODAQFTIWe37iT8Cr7Ice2Ntb+M3iSKCEWMB1MBgKrW3whg==", + "license": "MIT", + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.24.7", + "@babel/generator": "^7.24.9", + "@babel/helper-compilation-targets": "^7.24.8", + "@babel/helper-module-transforms": "^7.24.9", + "@babel/helpers": "^7.24.8", + "@babel/parser": "^7.24.8", + "@babel/template": "^7.24.7", + "@babel/traverse": "^7.24.8", + "@babel/types": "^7.24.9", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@angular/localize/node_modules/@babel/generator": { + "version": "7.24.10", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.10.tgz", + "integrity": "sha512-o9HBZL1G2129luEUlG1hB4N/nlYNWHnpwlND9eOMclRqqu1YDy2sSYVCFUZwl8I1Gxh+QSRrP2vD7EpUmFVXxg==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.24.9", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@angular/localize/node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "license": "MIT" + }, + "node_modules/@angular/localize/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" } }, "node_modules/@angular/platform-browser": { - "version": "18.1.1", - "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-18.1.1.tgz", - "integrity": "sha512-9FG2+NSWJXo+zu/W7VQE0UpaWejbV62AXW7218FBZXOdkdID5oNxHf0QdJ3hCaIJw1dKZEG49BTq005d9yQbew==", + "version": "18.1.2", + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-18.1.2.tgz", + "integrity": "sha512-G/9dU6J+RyJ4qfWcxgVdUsVEF/2lQKCpC24spongOwn7yCTrORkopFEmuuwftZXaFoduxE2Q1i4GCiQkqcHRwQ==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -672,9 +794,9 @@ "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/animations": "18.1.1", - "@angular/common": "18.1.1", - "@angular/core": "18.1.1" + "@angular/animations": "18.1.2", + "@angular/common": "18.1.2", + "@angular/core": "18.1.2" }, "peerDependenciesMeta": { "@angular/animations": { @@ -683,9 +805,9 @@ } }, "node_modules/@angular/platform-browser-dynamic": { - "version": "18.1.1", - "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-18.1.1.tgz", - "integrity": "sha512-+nnWGLz7dhkRbel8qGIgfQa5PoE4ZMl0ClDw8HR0R5T3w+v0K6trPSjWIPDHm5ex25RvuLNmoUGu29drlHN3Fw==", + "version": "18.1.2", + "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-18.1.2.tgz", + "integrity": "sha512-97sQTZbkOOQONSgJ/WsEfkH7FEaLShqJUaHiWaT00W95h+qmOhM2M00JtxZoREUK2HmH+Hoq/Triu1DC4RrtnQ==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -694,16 +816,16 @@ "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/common": "18.1.1", - "@angular/compiler": "18.1.1", - "@angular/core": "18.1.1", - "@angular/platform-browser": "18.1.1" + "@angular/common": "18.1.2", + "@angular/compiler": "18.1.2", + "@angular/core": "18.1.2", + "@angular/platform-browser": "18.1.2" } }, "node_modules/@angular/router": { - "version": "18.1.1", - "resolved": "https://registry.npmjs.org/@angular/router/-/router-18.1.1.tgz", - "integrity": "sha512-XaPL+jzmanQa3y9JSMpyxcTqHTNLiGLW6yzcZ0hiKDRpCJ044cKLMK5Ruk84LfzvVDS//tGj46OYAwrPGmBFMg==", + "version": "18.1.2", + "resolved": "https://registry.npmjs.org/@angular/router/-/router-18.1.2.tgz", + "integrity": "sha512-2+3IbCsnD+PukwrdD2oW7H69hPNs4raMzmiufD0HyTz8C75G1mYvRCzaf8qN41e9r/AsIGzwrczw30AgnCEmzw==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -712,9 +834,9 @@ "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/common": "18.1.1", - "@angular/core": "18.1.1", - "@angular/platform-browser": "18.1.1", + "@angular/common": "18.1.2", + "@angular/core": "18.1.2", + "@angular/platform-browser": "18.1.2", "rxjs": "^6.5.3 || ^7.4.0" } }, @@ -2605,9 +2727,9 @@ } }, "node_modules/@coreui/coreui": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@coreui/coreui/-/coreui-5.0.2.tgz", - "integrity": "sha512-ox3nnVxEvitgSMKbn5+DXMMLWgjoRKL0fnWXwA4B4eTLhnzyYBUZZAs+xHWIGRK0/PfP6cMiliYdC4Swhw/5xQ==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@coreui/coreui/-/coreui-5.1.0.tgz", + "integrity": "sha512-3t8Ekib5pUVYp6mpCvXL9oGyFJ9znFqWWHwxUjKD8QHW0JMJ2znjS5oADICQ+xvWaK6ATgwIipjQGi7lQ819MA==", "funding": [ { "type": "opencollective", @@ -3274,15 +3396,15 @@ "license": "BSD-3-Clause" }, "node_modules/@inquirer/checkbox": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@inquirer/checkbox/-/checkbox-2.4.0.tgz", - "integrity": "sha512-XHOCmntitRBD8SJcrv+6X9YakxO1wfsvezOnU5MBIXeTlSBRCVk9DOIrx6Cgi9BS3qkcy7oQb+fUGEKrP6xecQ==", + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/@inquirer/checkbox/-/checkbox-2.4.2.tgz", + "integrity": "sha512-iZRNbTlSB9xXt/+jdMFViBdxw1ILWu3365rzfM5OLwAyOScbDFFGSH7LEUwoq1uOIo48ymOEwYSqP5y8hQMlmA==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/core": "^9.0.3", - "@inquirer/figures": "^1.0.4", - "@inquirer/type": "^1.5.0", + "@inquirer/core": "^9.0.5", + "@inquirer/figures": "^1.0.5", + "@inquirer/type": "^1.5.1", "ansi-escapes": "^4.3.2", "yoctocolors-cjs": "^2.1.2" }, @@ -3291,14 +3413,14 @@ } }, "node_modules/@inquirer/checkbox/node_modules/@inquirer/core": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-9.0.3.tgz", - "integrity": "sha512-p2BRZv/vMmpwlU4ZR966vKQzGVCi4VhLjVofwnFLziTQia541T7i1Ar8/LPh+LzjkXzocme+g5Io6MRtzlCcNA==", + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-9.0.5.tgz", + "integrity": "sha512-QWG41I7vn62O9stYKg/juKXt1PEbr/4ZZCPb4KgXDQGwgA9M5NBTQ7FnOvT1ridbxkm/wTxLCNraUs7y47pIRQ==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/figures": "^1.0.4", - "@inquirer/type": "^1.5.0", + "@inquirer/figures": "^1.0.5", + "@inquirer/type": "^1.5.1", "@types/mute-stream": "^0.0.4", "@types/node": "^20.14.11", "@types/wrap-ansi": "^3.0.0", @@ -3355,14 +3477,14 @@ } }, "node_modules/@inquirer/editor": { - "version": "2.1.15", - "resolved": "https://registry.npmjs.org/@inquirer/editor/-/editor-2.1.15.tgz", - "integrity": "sha512-UmtZnY36rGLS/4cCzvdRmk0xxsGgH2AsF0v1SSlBZ3C5JK/Bxm2gNW8fmUVzQ5vm8kpdWASXPapbUx4iV49ScA==", + "version": "2.1.17", + "resolved": "https://registry.npmjs.org/@inquirer/editor/-/editor-2.1.17.tgz", + "integrity": "sha512-hwx3VpFQzOY2hFWnY+XPsUGCIUVQ5kYxH6+CExv/RbMiAoN3zXtzj8DyrWBOHami0vBrrnPS8CTq3uQWc7N2BA==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/core": "^9.0.3", - "@inquirer/type": "^1.5.0", + "@inquirer/core": "^9.0.5", + "@inquirer/type": "^1.5.1", "external-editor": "^3.1.0" }, "engines": { @@ -3370,14 +3492,14 @@ } }, "node_modules/@inquirer/editor/node_modules/@inquirer/core": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-9.0.3.tgz", - "integrity": "sha512-p2BRZv/vMmpwlU4ZR966vKQzGVCi4VhLjVofwnFLziTQia541T7i1Ar8/LPh+LzjkXzocme+g5Io6MRtzlCcNA==", + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-9.0.5.tgz", + "integrity": "sha512-QWG41I7vn62O9stYKg/juKXt1PEbr/4ZZCPb4KgXDQGwgA9M5NBTQ7FnOvT1ridbxkm/wTxLCNraUs7y47pIRQ==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/figures": "^1.0.4", - "@inquirer/type": "^1.5.0", + "@inquirer/figures": "^1.0.5", + "@inquirer/type": "^1.5.1", "@types/mute-stream": "^0.0.4", "@types/node": "^20.14.11", "@types/wrap-ansi": "^3.0.0", @@ -3395,14 +3517,14 @@ } }, "node_modules/@inquirer/expand": { - "version": "2.1.15", - "resolved": "https://registry.npmjs.org/@inquirer/expand/-/expand-2.1.15.tgz", - "integrity": "sha512-aBnnrBw9vbFJROUlDCsbq8H/plX6JHfPwLmSphxaVqOR+b1hgLdw+oRhZkpcJhG2AZOlc8IKzGdZhji93gQg4w==", + "version": "2.1.17", + "resolved": "https://registry.npmjs.org/@inquirer/expand/-/expand-2.1.17.tgz", + "integrity": "sha512-s4V/dC+GeE5s97xoTtZSmC440uNKePKqZgzqEf0XM63ciilnXAtKGvoAWOePFdlK+oGTz0d8bhbPKwpKGvRYfg==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/core": "^9.0.3", - "@inquirer/type": "^1.5.0", + "@inquirer/core": "^9.0.5", + "@inquirer/type": "^1.5.1", "yoctocolors-cjs": "^2.1.2" }, "engines": { @@ -3410,14 +3532,14 @@ } }, "node_modules/@inquirer/expand/node_modules/@inquirer/core": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-9.0.3.tgz", - "integrity": "sha512-p2BRZv/vMmpwlU4ZR966vKQzGVCi4VhLjVofwnFLziTQia541T7i1Ar8/LPh+LzjkXzocme+g5Io6MRtzlCcNA==", + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-9.0.5.tgz", + "integrity": "sha512-QWG41I7vn62O9stYKg/juKXt1PEbr/4ZZCPb4KgXDQGwgA9M5NBTQ7FnOvT1ridbxkm/wTxLCNraUs7y47pIRQ==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/figures": "^1.0.4", - "@inquirer/type": "^1.5.0", + "@inquirer/figures": "^1.0.5", + "@inquirer/type": "^1.5.1", "@types/mute-stream": "^0.0.4", "@types/node": "^20.14.11", "@types/wrap-ansi": "^3.0.0", @@ -3435,9 +3557,9 @@ } }, "node_modules/@inquirer/figures": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@inquirer/figures/-/figures-1.0.4.tgz", - "integrity": "sha512-R7Gsg6elpuqdn55fBH2y9oYzrU/yKrSmIsDX4ROT51vohrECFzTf2zw9BfUbOW8xjfmM2QbVoVYdTwhrtEKWSQ==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@inquirer/figures/-/figures-1.0.5.tgz", + "integrity": "sha512-79hP/VWdZ2UVc9bFGJnoQ/lQMpL74mGgzSYX1xUqCVk7/v73vJCMw1VuyWN1jGkZ9B3z7THAbySqGbCNefcjfA==", "dev": true, "license": "MIT", "engines": { @@ -3445,28 +3567,28 @@ } }, "node_modules/@inquirer/input": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/@inquirer/input/-/input-2.2.2.tgz", - "integrity": "sha512-VjkzYSVH0606nLi9HHiSb4QYs2idwRgneiMoFoTAIwQ1Qwx6OIDugOYLtLta3gP8AWZx7qUvgDtj+/SJuiiKuQ==", + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/@inquirer/input/-/input-2.2.4.tgz", + "integrity": "sha512-wvYnDITPQn+ltktj/O9kQjPxOvpmwcpxLWh8brAyD+jlEbihxtrx9cZdZcxqaCVQj3caw4eZa2Uq5xELo4yXkA==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/core": "^9.0.3", - "@inquirer/type": "^1.5.0" + "@inquirer/core": "^9.0.5", + "@inquirer/type": "^1.5.1" }, "engines": { "node": ">=18" } }, "node_modules/@inquirer/input/node_modules/@inquirer/core": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-9.0.3.tgz", - "integrity": "sha512-p2BRZv/vMmpwlU4ZR966vKQzGVCi4VhLjVofwnFLziTQia541T7i1Ar8/LPh+LzjkXzocme+g5Io6MRtzlCcNA==", + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-9.0.5.tgz", + "integrity": "sha512-QWG41I7vn62O9stYKg/juKXt1PEbr/4ZZCPb4KgXDQGwgA9M5NBTQ7FnOvT1ridbxkm/wTxLCNraUs7y47pIRQ==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/figures": "^1.0.4", - "@inquirer/type": "^1.5.0", + "@inquirer/figures": "^1.0.5", + "@inquirer/type": "^1.5.1", "@types/mute-stream": "^0.0.4", "@types/node": "^20.14.11", "@types/wrap-ansi": "^3.0.0", @@ -3484,14 +3606,14 @@ } }, "node_modules/@inquirer/password": { - "version": "2.1.15", - "resolved": "https://registry.npmjs.org/@inquirer/password/-/password-2.1.15.tgz", - "integrity": "sha512-/JmiTtIcSYbZdPucEW5q2rhC71vGKPivm3LFqNDQEI6lJyffq7hlfKKFC+R1Qp19dMqkaG+O5L1XmcHpmlAUUQ==", + "version": "2.1.17", + "resolved": "https://registry.npmjs.org/@inquirer/password/-/password-2.1.17.tgz", + "integrity": "sha512-/u6DM/fDHXoBWyA+9aRhghkeo5smE7wO9k4E2UoJbgiRCkt3JjBEuBqLOJNrz8E16M0ez4UM1vd5cXrmICHW+A==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/core": "^9.0.3", - "@inquirer/type": "^1.5.0", + "@inquirer/core": "^9.0.5", + "@inquirer/type": "^1.5.1", "ansi-escapes": "^4.3.2" }, "engines": { @@ -3499,14 +3621,14 @@ } }, "node_modules/@inquirer/password/node_modules/@inquirer/core": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-9.0.3.tgz", - "integrity": "sha512-p2BRZv/vMmpwlU4ZR966vKQzGVCi4VhLjVofwnFLziTQia541T7i1Ar8/LPh+LzjkXzocme+g5Io6MRtzlCcNA==", + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-9.0.5.tgz", + "integrity": "sha512-QWG41I7vn62O9stYKg/juKXt1PEbr/4ZZCPb4KgXDQGwgA9M5NBTQ7FnOvT1ridbxkm/wTxLCNraUs7y47pIRQ==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/figures": "^1.0.4", - "@inquirer/type": "^1.5.0", + "@inquirer/figures": "^1.0.5", + "@inquirer/type": "^1.5.1", "@types/mute-stream": "^0.0.4", "@types/node": "^20.14.11", "@types/wrap-ansi": "^3.0.0", @@ -3544,14 +3666,14 @@ } }, "node_modules/@inquirer/rawlist": { - "version": "2.1.15", - "resolved": "https://registry.npmjs.org/@inquirer/rawlist/-/rawlist-2.1.15.tgz", - "integrity": "sha512-zwU6aWDMyuQNiY5Z0iYXkxi7pliRFXqUmiS7vG6lAGxqcbOSptYgIxGJnd3AU4Y91N0Tbt57+koJL0S2p6vSkA==", + "version": "2.1.17", + "resolved": "https://registry.npmjs.org/@inquirer/rawlist/-/rawlist-2.1.17.tgz", + "integrity": "sha512-RFrw34xU5aVlMA3ZJCaeKGxYjhu3j4i46O2GMmaRRGeLObCRM1yOKQOsRclSTzjd4A7+M5QleR2iuW/68J9Kwg==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/core": "^9.0.3", - "@inquirer/type": "^1.5.0", + "@inquirer/core": "^9.0.5", + "@inquirer/type": "^1.5.1", "yoctocolors-cjs": "^2.1.2" }, "engines": { @@ -3559,14 +3681,14 @@ } }, "node_modules/@inquirer/rawlist/node_modules/@inquirer/core": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-9.0.3.tgz", - "integrity": "sha512-p2BRZv/vMmpwlU4ZR966vKQzGVCi4VhLjVofwnFLziTQia541T7i1Ar8/LPh+LzjkXzocme+g5Io6MRtzlCcNA==", + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-9.0.5.tgz", + "integrity": "sha512-QWG41I7vn62O9stYKg/juKXt1PEbr/4ZZCPb4KgXDQGwgA9M5NBTQ7FnOvT1ridbxkm/wTxLCNraUs7y47pIRQ==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/figures": "^1.0.4", - "@inquirer/type": "^1.5.0", + "@inquirer/figures": "^1.0.5", + "@inquirer/type": "^1.5.1", "@types/mute-stream": "^0.0.4", "@types/node": "^20.14.11", "@types/wrap-ansi": "^3.0.0", @@ -3584,15 +3706,15 @@ } }, "node_modules/@inquirer/select": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@inquirer/select/-/select-2.4.0.tgz", - "integrity": "sha512-iU1eRkHirVNs43zWk6anMIMKc7tCXlJ+I5DcpIV7JzMe+45TuPPOGGCgeGIkZ4xYJ3cXdFoh7GJpm84PNC8veg==", + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/@inquirer/select/-/select-2.4.2.tgz", + "integrity": "sha512-r78JlgShqRxyAtBDeBHSDtfrOhSQwm2ecWGGaxe7kD9JwgL3UN563G1ncVRYdsWD7/tigflcskfipVeoDLhLJg==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/core": "^9.0.3", - "@inquirer/figures": "^1.0.4", - "@inquirer/type": "^1.5.0", + "@inquirer/core": "^9.0.5", + "@inquirer/figures": "^1.0.5", + "@inquirer/type": "^1.5.1", "ansi-escapes": "^4.3.2", "yoctocolors-cjs": "^2.1.2" }, @@ -3601,14 +3723,14 @@ } }, "node_modules/@inquirer/select/node_modules/@inquirer/core": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-9.0.3.tgz", - "integrity": "sha512-p2BRZv/vMmpwlU4ZR966vKQzGVCi4VhLjVofwnFLziTQia541T7i1Ar8/LPh+LzjkXzocme+g5Io6MRtzlCcNA==", + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-9.0.5.tgz", + "integrity": "sha512-QWG41I7vn62O9stYKg/juKXt1PEbr/4ZZCPb4KgXDQGwgA9M5NBTQ7FnOvT1ridbxkm/wTxLCNraUs7y47pIRQ==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/figures": "^1.0.4", - "@inquirer/type": "^1.5.0", + "@inquirer/figures": "^1.0.5", + "@inquirer/type": "^1.5.1", "@types/mute-stream": "^0.0.4", "@types/node": "^20.14.11", "@types/wrap-ansi": "^3.0.0", @@ -3626,9 +3748,9 @@ } }, "node_modules/@inquirer/type": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-1.5.0.tgz", - "integrity": "sha512-L/UdayX9Z1lLN+itoTKqJ/X4DX5DaWu2Sruwt4XgZzMNv32x4qllbzMX4MbJlz0yxAQtU19UvABGOjmdq1u3qA==", + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-1.5.1.tgz", + "integrity": "sha512-m3YgGQlKNS0BM+8AFiJkCsTqHEFCWn6s/Rqye3mYwvqY6LdfUv12eSwbsgNzrYyrLXiy7IrrjDLPysaSBwEfhw==", "dev": true, "license": "MIT", "dependencies": { @@ -4090,9 +4212,9 @@ } }, "node_modules/@ngtools/webpack": { - "version": "18.1.1", - "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-18.1.1.tgz", - "integrity": "sha512-mjlfnWcHtBZJUJaVyffJZZL8U1o1XUQwrFIKeiFUeatLDsjtv8EbLW9Ed1v3eAJyVuaTNKpsdZma1XdxzeLONw==", + "version": "18.1.2", + "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-18.1.2.tgz", + "integrity": "sha512-oIpkr1oeRMO0CVdEaxiLqqZ7E8RgDR8rf3LrM5sVOBX4aXAbzVkOZf9yZejmrXaLxj7SU/Fhkljr49ErlpB20g==", "dev": true, "license": "MIT", "engines": { @@ -4409,23 +4531,23 @@ } }, "node_modules/@nrwl/devkit": { - "version": "19.5.1", - "resolved": "https://registry.npmjs.org/@nrwl/devkit/-/devkit-19.5.1.tgz", - "integrity": "sha512-ZsckDZszLTv3oshNsY5fZ86g8a/VcGvgDpdiP/z/A/krtOHL8iUjdT/72Eo5DIult5WcSFjnifyWcyWIGe1PeA==", + "version": "19.5.3", + "resolved": "https://registry.npmjs.org/@nrwl/devkit/-/devkit-19.5.3.tgz", + "integrity": "sha512-kd6eIQjWuFHdO14wVu0rzGtoPbO3EdYM/3gATOupxBzlqD+7dmkvv1Olbri9v598mDApXQNo8q81L2masTAhvg==", "dev": true, "license": "MIT", "dependencies": { - "@nx/devkit": "19.5.1" + "@nx/devkit": "19.5.3" } }, "node_modules/@nrwl/tao": { - "version": "19.5.1", - "resolved": "https://registry.npmjs.org/@nrwl/tao/-/tao-19.5.1.tgz", - "integrity": "sha512-gAitJkexzI36jCNIHru1PAqNcFe17KlSwb3F4VoCArcZSJmSh5cTbxaAAWup8aavxHT6nF6G1Zm1+N0RmzRMRQ==", + "version": "19.5.3", + "resolved": "https://registry.npmjs.org/@nrwl/tao/-/tao-19.5.3.tgz", + "integrity": "sha512-SHtPlQi7zofDdbFjqcrTb/A0Mo9tT8S88H8nJa1+GzhKpGUB9rykHtq0qoYdiRBnQfmfR5LoKfe/jft61Ktvdg==", "dev": true, "license": "MIT", "dependencies": { - "nx": "19.5.1", + "nx": "19.5.3", "tslib": "^2.3.0" }, "bin": { @@ -4433,13 +4555,13 @@ } }, "node_modules/@nx/devkit": { - "version": "19.5.1", - "resolved": "https://registry.npmjs.org/@nx/devkit/-/devkit-19.5.1.tgz", - "integrity": "sha512-Vj8wwzNIR5VIWmuLHhOi4aUVq7eVV5YTbctnEewKT+V/O4LZj+hClGyVNyT8s6b8JIjNWoIO4HXStLnH8rDOlw==", + "version": "19.5.3", + "resolved": "https://registry.npmjs.org/@nx/devkit/-/devkit-19.5.3.tgz", + "integrity": "sha512-OUi8OJkoT+y3LwXACO6ugF9l6QppUyHrBIZYOTffBa1ZrnkpJrw03smy+GhAt+BDoeNGEuOPHGvOSV4AmRxnmg==", "dev": true, "license": "MIT", "dependencies": { - "@nrwl/devkit": "19.5.1", + "@nrwl/devkit": "19.5.3", "ejs": "^3.1.7", "enquirer": "~2.3.6", "ignore": "^5.0.4", @@ -4454,9 +4576,9 @@ } }, "node_modules/@nx/nx-darwin-arm64": { - "version": "19.5.1", - "resolved": "https://registry.npmjs.org/@nx/nx-darwin-arm64/-/nx-darwin-arm64-19.5.1.tgz", - "integrity": "sha512-mdFSnwf+cEGZQ0HDJIzHBOWmho66VUN44qsDRPVSwpaEqlHSlcbiqKzM0+oVx9CRDLNQoYtYs1Y3hGlnag1sCQ==", + "version": "19.5.3", + "resolved": "https://registry.npmjs.org/@nx/nx-darwin-arm64/-/nx-darwin-arm64-19.5.3.tgz", + "integrity": "sha512-DacVfnhx7wiglDXRAdbrmaP4s3ZQXMs8Mk0fGoQYjv1uwWajDOPxMYJUZH0CGysIDADSrku4AIqogGX/CZjSuQ==", "cpu": [ "arm64" ], @@ -4471,9 +4593,9 @@ } }, "node_modules/@nx/nx-darwin-x64": { - "version": "19.5.1", - "resolved": "https://registry.npmjs.org/@nx/nx-darwin-x64/-/nx-darwin-x64-19.5.1.tgz", - "integrity": "sha512-ficF0T6vN0LkkYoPyEgdXEOfIR9ss0hXeG2s32SwqfjNZlbisO4fvrHM8f8WPujEJ+5nCIJ9o4jJiWBHkfUTBg==", + "version": "19.5.3", + "resolved": "https://registry.npmjs.org/@nx/nx-darwin-x64/-/nx-darwin-x64-19.5.3.tgz", + "integrity": "sha512-AfY1g8nYJbBGiR2SDt/Q8YcQyuwtRmGxfJIrzCu+2+hFFds7RF9iaqeKedWeHN9wAsaTbDnBuDwwojT9LMOxaA==", "cpu": [ "x64" ], @@ -4488,9 +4610,9 @@ } }, "node_modules/@nx/nx-freebsd-x64": { - "version": "19.5.1", - "resolved": "https://registry.npmjs.org/@nx/nx-freebsd-x64/-/nx-freebsd-x64-19.5.1.tgz", - "integrity": "sha512-UjquUf8N06DlAyhpvEm1D57WXWQnvvVq6vIxq6rTmK+alWjMyOUs90sPYrqvV3TARAsdkos763S8T5rAOB/xYQ==", + "version": "19.5.3", + "resolved": "https://registry.npmjs.org/@nx/nx-freebsd-x64/-/nx-freebsd-x64-19.5.3.tgz", + "integrity": "sha512-dWwxFs9bp67n/l1QhI41pSJk+mpwDNh7RY+WQBUldWbIyh8c4/wYk3VaqjALPCcGUky/RCME6rdLkqxFRAIs4A==", "cpu": [ "x64" ], @@ -4505,9 +4627,9 @@ } }, "node_modules/@nx/nx-linux-arm-gnueabihf": { - "version": "19.5.1", - "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm-gnueabihf/-/nx-linux-arm-gnueabihf-19.5.1.tgz", - "integrity": "sha512-UXBXiLEZVgHlz/iO634JQwQU/MP0Kx0tKwEzucjAryIUFTBRAZos76wTF8glBQaH4dTwWtQQObxaEVGGu+J4dA==", + "version": "19.5.3", + "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm-gnueabihf/-/nx-linux-arm-gnueabihf-19.5.3.tgz", + "integrity": "sha512-7l79OXwKVqnTr6/85mVPU+h3nnxGDAWgY6kTJNdmuaFlDgbHKbcNo9FFSu2srdqr1x84UsU49w8ZBJbdwA5YSg==", "cpu": [ "arm" ], @@ -4522,9 +4644,9 @@ } }, "node_modules/@nx/nx-linux-arm64-gnu": { - "version": "19.5.1", - "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm64-gnu/-/nx-linux-arm64-gnu-19.5.1.tgz", - "integrity": "sha512-UlBq3ImnFHMsI6jLxQA97ntgBvMvtnVmL/eluGOcUres9q0IqzTOWmBDccpR3ZLbI3NBrmDRrS79aid3SuBKwA==", + "version": "19.5.3", + "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm64-gnu/-/nx-linux-arm64-gnu-19.5.3.tgz", + "integrity": "sha512-aFCuoUiEI20tGCxdUDO0JWCWli3RH0LPCXjnQ4H4pNMzT8zpvjvu+Js7FtwFG+NZWOdlmtiDlthnVAd+5ex6Wg==", "cpu": [ "arm64" ], @@ -4539,9 +4661,9 @@ } }, "node_modules/@nx/nx-linux-arm64-musl": { - "version": "19.5.1", - "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm64-musl/-/nx-linux-arm64-musl-19.5.1.tgz", - "integrity": "sha512-sw0zdO9CLjDY9qiweZm5p5zrkOeRPagimHCtHw/YIuPfkBrtoazi9adD+f8OXou/jrL/f1UE2/CA3gQKDOT35Q==", + "version": "19.5.3", + "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm64-musl/-/nx-linux-arm64-musl-19.5.3.tgz", + "integrity": "sha512-gcjdlGvgQ4ahSfPpMw32cr7GrCYhr/58D1R/bbyem0QQg+EdLbLlhhdS2pAHBCoENfpSnknQZhMrUN1LR8Qmpw==", "cpu": [ "arm64" ], @@ -4556,9 +4678,9 @@ } }, "node_modules/@nx/nx-linux-x64-gnu": { - "version": "19.5.1", - "resolved": "https://registry.npmjs.org/@nx/nx-linux-x64-gnu/-/nx-linux-x64-gnu-19.5.1.tgz", - "integrity": "sha512-tHPcBgsyyLNRfJLWnDQLcWZZ69xn4Ocfnquxs30Q5gk5CZTNSVm/yA4ibYn9JGvSu0dNjzM+nJwmtEaudhtgSg==", + "version": "19.5.3", + "resolved": "https://registry.npmjs.org/@nx/nx-linux-x64-gnu/-/nx-linux-x64-gnu-19.5.3.tgz", + "integrity": "sha512-Jwu6peOyaV9WTR1ihzfIIqEBYsbOSy0cH8H36ce17zpemq6l/Cz5EJ7blVXut1qksMFvC/QbkTWqTlfO5XEHIw==", "cpu": [ "x64" ], @@ -4573,9 +4695,9 @@ } }, "node_modules/@nx/nx-linux-x64-musl": { - "version": "19.5.1", - "resolved": "https://registry.npmjs.org/@nx/nx-linux-x64-musl/-/nx-linux-x64-musl-19.5.1.tgz", - "integrity": "sha512-dHP8GrqK05gHwq6kSjuZqaN0CQrID2OspuJ4vKd+WoelioFNmdRAQWkOyqXA5dlrJfWs/IqV+WvnexYlxG1quw==", + "version": "19.5.3", + "resolved": "https://registry.npmjs.org/@nx/nx-linux-x64-musl/-/nx-linux-x64-musl-19.5.3.tgz", + "integrity": "sha512-84KnkghjbInJAoWvCJB34lHq9iGCgo5KjcxUFZJFNDYTQh/VBTp/OhH8bFyPRwQTPVSToLeBhoFvGB1bqBekrA==", "cpu": [ "x64" ], @@ -4590,9 +4712,9 @@ } }, "node_modules/@nx/nx-win32-arm64-msvc": { - "version": "19.5.1", - "resolved": "https://registry.npmjs.org/@nx/nx-win32-arm64-msvc/-/nx-win32-arm64-msvc-19.5.1.tgz", - "integrity": "sha512-YNhVje0gSmt7bLWDCR1Ea3vbvqF+iIeDhtpJuK7kXMbWAujZrA5sGW/xdPPShV8omlQuu1Ggms0BUCwr8Aiyig==", + "version": "19.5.3", + "resolved": "https://registry.npmjs.org/@nx/nx-win32-arm64-msvc/-/nx-win32-arm64-msvc-19.5.3.tgz", + "integrity": "sha512-q19m59cm+VTZzlHh+/dSHism7hgKfGHR+nW5xtxIF00rZQpJpv0ve7GVvyXPFw7NXvceYRK1THes1MljYXyslQ==", "cpu": [ "arm64" ], @@ -4607,9 +4729,9 @@ } }, "node_modules/@nx/nx-win32-x64-msvc": { - "version": "19.5.1", - "resolved": "https://registry.npmjs.org/@nx/nx-win32-x64-msvc/-/nx-win32-x64-msvc-19.5.1.tgz", - "integrity": "sha512-bxj12iAuyEwBCV6A+C8nXQ55KNji4L0VrL3y2KeH0wOeBMgTeKQxoMNk0/Ty2O6354YkAgwaKRHJMnM/LfO+og==", + "version": "19.5.3", + "resolved": "https://registry.npmjs.org/@nx/nx-win32-x64-msvc/-/nx-win32-x64-msvc-19.5.3.tgz", + "integrity": "sha512-DOdO7K6ySiwrXsnJNjJXxng427n5+nXIDt4L81ltCdr6oE8wUiUpRTt1dfl65rHknojB/b1at3V6+x450F0/2A==", "cpu": [ "x64" ], @@ -4952,9 +5074,9 @@ ] }, "node_modules/@rollup/wasm-node": { - "version": "4.18.1", - "resolved": "https://registry.npmjs.org/@rollup/wasm-node/-/wasm-node-4.18.1.tgz", - "integrity": "sha512-/5JNIo7af3BkPdsm0omZTwi/KcEiknR3/bs2HEdmudgey+xDyX0qtcM7Q8MFbpqddzR6+FleUjyGVv1ykL3v1Q==", + "version": "4.19.0", + "resolved": "https://registry.npmjs.org/@rollup/wasm-node/-/wasm-node-4.19.0.tgz", + "integrity": "sha512-VrWeEGsuUzEfNPWKtSinPU59l2tfcQPm9eV5ngnM36X2l9JNCXtutzEEy8xtjMWXOXVe9IjE8037AmBJIuQA+w==", "dev": true, "license": "MIT", "dependencies": { @@ -4972,14 +5094,14 @@ } }, "node_modules/@schematics/angular": { - "version": "18.1.1", - "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-18.1.1.tgz", - "integrity": "sha512-6nQUSuFSP7un5Bmm6/MpQXq3jnkdEYg2MUPv7JStsqnT1YYzUsDjkUv7Hsci0xQmeUAzVz3ueg4znviJoQxWdg==", + "version": "18.1.2", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-18.1.2.tgz", + "integrity": "sha512-lTY9twQ30vEm3hjArUKQjKiYlbDUOHqbyY7MlynY5+T8XtYreMo20KHofxv5t5xZfPwj1z6/ppcMU2xZ4WbGUA==", "dev": true, "license": "MIT", "dependencies": { - "@angular-devkit/core": "18.1.1", - "@angular-devkit/schematics": "18.1.1", + "@angular-devkit/core": "18.1.2", + "@angular-devkit/schematics": "18.1.2", "jsonc-parser": "3.3.1" }, "engines": { @@ -5246,9 +5368,9 @@ } }, "node_modules/@types/eslint": { - "version": "8.56.10", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.10.tgz", - "integrity": "sha512-Shavhk87gCtY2fhXDctcfS3e6FdxWkCx1iUZ9eEUbh7rTqlZT0/IzOkCOVt0fCjcFuZ9FPYfuezTBImfHCDBGQ==", + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-9.6.0.tgz", + "integrity": "sha512-gi6WQJ7cHRgZxtkQEoyHMppPjq9Kxo5Tjn2prSKDSmZrCz8TZ3jSRCeTJm+WoM+oB0WG37bRqLzaaU3q7JypGg==", "dev": true, "license": "MIT", "dependencies": { @@ -5366,9 +5488,9 @@ } }, "node_modules/@types/node": { - "version": "20.14.11", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.14.11.tgz", - "integrity": "sha512-kprQpL8MMeszbz6ojB5/tU8PLN4kesnN8Gjzw349rDlNgsSzg90lAVj3llK99Dh7JON+t9AuscPPFW6mPbTnSA==", + "version": "20.14.12", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.14.12.tgz", + "integrity": "sha512-r7wNXakLeSsGT0H1AU863vS2wa5wBOK4bWMjZz2wj+8nBx+m5PeIn0k8AloSLpRuiwdRQZwarZqHE4FNArPuJQ==", "dev": true, "license": "MIT", "dependencies": { @@ -5474,17 +5596,17 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "7.16.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.16.1.tgz", - "integrity": "sha512-SxdPak/5bO0EnGktV05+Hq8oatjAYVY3Zh2bye9pGZy6+jwyR3LG3YKkV4YatlsgqXP28BTeVm9pqwJM96vf2A==", + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.17.0.tgz", + "integrity": "sha512-pyiDhEuLM3PuANxH7uNYan1AaFs5XE0zw1hq69JBvGvE7gSuEoQl1ydtEe/XQeoC3GQxLXyOVa5kNOATgM638A==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "7.16.1", - "@typescript-eslint/type-utils": "7.16.1", - "@typescript-eslint/utils": "7.16.1", - "@typescript-eslint/visitor-keys": "7.16.1", + "@typescript-eslint/scope-manager": "7.17.0", + "@typescript-eslint/type-utils": "7.17.0", + "@typescript-eslint/utils": "7.17.0", + "@typescript-eslint/visitor-keys": "7.17.0", "graphemer": "^1.4.0", "ignore": "^5.3.1", "natural-compare": "^1.4.0", @@ -5508,16 +5630,16 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "7.16.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.16.1.tgz", - "integrity": "sha512-u+1Qx86jfGQ5i4JjK33/FnawZRpsLxRnKzGE6EABZ40KxVT/vWsiZFEBBHjFOljmmV3MBYOHEKi0Jm9hbAOClA==", + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.17.0.tgz", + "integrity": "sha512-puiYfGeg5Ydop8eusb/Hy1k7QmOU6X3nvsqCgzrB2K4qMavK//21+PzNE8qeECgNOIoertJPUC1SpegHDI515A==", "dev": true, "license": "BSD-2-Clause", "dependencies": { - "@typescript-eslint/scope-manager": "7.16.1", - "@typescript-eslint/types": "7.16.1", - "@typescript-eslint/typescript-estree": "7.16.1", - "@typescript-eslint/visitor-keys": "7.16.1", + "@typescript-eslint/scope-manager": "7.17.0", + "@typescript-eslint/types": "7.17.0", + "@typescript-eslint/typescript-estree": "7.17.0", + "@typescript-eslint/visitor-keys": "7.17.0", "debug": "^4.3.4" }, "engines": { @@ -5537,14 +5659,14 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "7.16.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.16.1.tgz", - "integrity": "sha512-nYpyv6ALte18gbMz323RM+vpFpTjfNdyakbf3nsLvF43uF9KeNC289SUEW3QLZ1xPtyINJ1dIsZOuWuSRIWygw==", + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.17.0.tgz", + "integrity": "sha512-0P2jTTqyxWp9HiKLu/Vemr2Rg1Xb5B7uHItdVZ6iAenXmPo4SZ86yOPCJwMqpCyaMiEHTNqizHfsbmCFT1x9SA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "7.16.1", - "@typescript-eslint/visitor-keys": "7.16.1" + "@typescript-eslint/types": "7.17.0", + "@typescript-eslint/visitor-keys": "7.17.0" }, "engines": { "node": "^18.18.0 || >=20.0.0" @@ -5555,14 +5677,14 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "7.16.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.16.1.tgz", - "integrity": "sha512-rbu/H2MWXN4SkjIIyWcmYBjlp55VT+1G3duFOIukTNFxr9PI35pLc2ydwAfejCEitCv4uztA07q0QWanOHC7dA==", + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.17.0.tgz", + "integrity": "sha512-XD3aaBt+orgkM/7Cei0XNEm1vwUxQ958AOLALzPlbPqb8C1G8PZK85tND7Jpe69Wualri81PLU+Zc48GVKIMMA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/typescript-estree": "7.16.1", - "@typescript-eslint/utils": "7.16.1", + "@typescript-eslint/typescript-estree": "7.17.0", + "@typescript-eslint/utils": "7.17.0", "debug": "^4.3.4", "ts-api-utils": "^1.3.0" }, @@ -5583,9 +5705,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "7.16.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.16.1.tgz", - "integrity": "sha512-AQn9XqCzUXd4bAVEsAXM/Izk11Wx2u4H3BAfQVhSfzfDOm/wAON9nP7J5rpkCxts7E5TELmN845xTUCQrD1xIQ==", + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.17.0.tgz", + "integrity": "sha512-a29Ir0EbyKTKHnZWbNsrc/gqfIBqYPwj3F2M+jWE/9bqfEHg0AMtXzkbUkOG6QgEScxh2+Pz9OXe11jHDnHR7A==", "dev": true, "license": "MIT", "engines": { @@ -5597,14 +5719,14 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "7.16.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.16.1.tgz", - "integrity": "sha512-0vFPk8tMjj6apaAZ1HlwM8w7jbghC8jc1aRNJG5vN8Ym5miyhTQGMqU++kuBFDNKe9NcPeZ6x0zfSzV8xC1UlQ==", + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.17.0.tgz", + "integrity": "sha512-72I3TGq93t2GoSBWI093wmKo0n6/b7O4j9o8U+f65TVD0FS6bI2180X5eGEr8MA8PhKMvYe9myZJquUT2JkCZw==", "dev": true, "license": "BSD-2-Clause", "dependencies": { - "@typescript-eslint/types": "7.16.1", - "@typescript-eslint/visitor-keys": "7.16.1", + "@typescript-eslint/types": "7.17.0", + "@typescript-eslint/visitor-keys": "7.17.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -5642,16 +5764,16 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "7.16.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.16.1.tgz", - "integrity": "sha512-WrFM8nzCowV0he0RlkotGDujx78xudsxnGMBHI88l5J8wEhED6yBwaSLP99ygfrzAjsQvcYQ94quDwI0d7E1fA==", + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.17.0.tgz", + "integrity": "sha512-r+JFlm5NdB+JXc7aWWZ3fKSm1gn0pkswEwIYsrGPdsT2GjsRATAKXiNtp3vgAAO1xZhX8alIOEQnNMl3kbTgJw==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "7.16.1", - "@typescript-eslint/types": "7.16.1", - "@typescript-eslint/typescript-estree": "7.16.1" + "@typescript-eslint/scope-manager": "7.17.0", + "@typescript-eslint/types": "7.17.0", + "@typescript-eslint/typescript-estree": "7.17.0" }, "engines": { "node": "^18.18.0 || >=20.0.0" @@ -5665,13 +5787,13 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "7.16.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.16.1.tgz", - "integrity": "sha512-Qlzzx4sE4u3FsHTPQAAQFJFNOuqtuY0LFrZHwQ8IHK705XxBiWOFkfKRWu6niB7hwfgnwIpO4jTC75ozW1PHWg==", + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.17.0.tgz", + "integrity": "sha512-RVGC9UhPOCsfCdI9pU++K4nD7to+jTcMIbXTSOcrLqUEW6gF2pU1UUbYJKc9cvcRSK1UDeMJ7pdMxf4bhMpV/A==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "7.16.1", + "@typescript-eslint/types": "7.17.0", "eslint-visitor-keys": "^3.4.3" }, "engines": { @@ -6445,6 +6567,31 @@ "readable-stream": "^3.4.0" } }, + "node_modules/bl/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/bl/node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, "node_modules/body-parser": { "version": "1.20.2", "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", @@ -6729,9 +6876,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001642", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001642.tgz", - "integrity": "sha512-3XQ0DoRgLijXJErLSl+bLnJ+Et4KqV1PY6JJBGAFlsNsz31zeAIncyeZfLCabHK/jtSh+671RM9YMldxjUPZtA==", + "version": "1.0.30001643", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001643.tgz", + "integrity": "sha512-ERgWGNleEilSrHM6iUz/zJNSQTP8Mr21wDWpdgvRwcTXGAq6jMtOUPP4dqFPTdKqZ2wKTdtB+uucZ3MRpAUSmg==", "funding": [ { "type": "opencollective", @@ -7328,6 +7475,177 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/copyfiles": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/copyfiles/-/copyfiles-2.4.1.tgz", + "integrity": "sha512-fereAvAvxDrQDOXybk3Qu3dPbOoKoysFMWtkY3mv5BsL8//OSZVL5DCLYqgRfY5cWirgRzlC+WSrxp6Bo3eNZg==", + "dev": true, + "license": "MIT", + "dependencies": { + "glob": "^7.0.5", + "minimatch": "^3.0.3", + "mkdirp": "^1.0.4", + "noms": "0.0.0", + "through2": "^2.0.1", + "untildify": "^4.0.0", + "yargs": "^16.1.0" + }, + "bin": { + "copyfiles": "copyfiles", + "copyup": "copyfiles" + } + }, + "node_modules/copyfiles/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/copyfiles/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/copyfiles/node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/copyfiles/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/copyfiles/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/copyfiles/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/copyfiles/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/copyfiles/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/copyfiles/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/copyfiles/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/copyfiles/node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "license": "MIT", + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/copyfiles/node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, "node_modules/core-js-compat": { "version": "3.37.1", "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.37.1.tgz", @@ -7977,9 +8295,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.4.829", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.829.tgz", - "integrity": "sha512-5qp1N2POAfW0u1qGAxXEtz6P7bO1m6gpZr5hdf5ve6lxpLM7MpiM4jIPz7xcrNlClQMafbyUDDWjlIQZ1Mw0Rw==", + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.1.tgz", + "integrity": "sha512-FKbOCOQ5QRB3VlIbl1LZQefWIYwszlBloaXcY2rbfpu9ioJnNh3TK03YtIDKDo3WKBi8u+YV4+Fn2CkEozgf4w==", "license": "ISC" }, "node_modules/emoji-regex": { @@ -8077,9 +8395,9 @@ } }, "node_modules/enhanced-resolve": { - "version": "5.17.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.0.tgz", - "integrity": "sha512-dwDPwZL0dmye8Txp2gzFmA6sxALaSvdRDjPH0viLcKrtlOL3tw62nWWweVD1SdILDTJrbrL6tdWVN58Wo6U3eA==", + "version": "5.17.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz", + "integrity": "sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==", "dev": true, "license": "MIT", "dependencies": { @@ -9562,6 +9880,13 @@ "wbuf": "^1.1.0" } }, + "node_modules/hpack.js/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true, + "license": "MIT" + }, "node_modules/hpack.js/node_modules/readable-stream": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", @@ -9853,9 +10178,9 @@ } }, "node_modules/immutable": { - "version": "4.3.6", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.6.tgz", - "integrity": "sha512-Ju0+lEMyzMVZarkTn/gqRpdqd5dOPaz1mCZ0SH3JV6iFw81PldE/PEB1hWVEA288HPt4WXW8O7AWxB10M+03QQ==", + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.7.tgz", + "integrity": "sha512-1hqclzwYwjRDFLjcFxOM5AYkkG0rpFPpr1RLPMEuGczoS7YA8gLhy8SWXYRAA/XwfEHpfo3cw5JGioS32fnMRw==", "dev": true, "license": "MIT" }, @@ -10211,9 +10536,9 @@ } }, "node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", "dev": true, "license": "MIT" }, @@ -10368,9 +10693,9 @@ } }, "node_modules/jake": { - "version": "10.9.1", - "resolved": "https://registry.npmjs.org/jake/-/jake-10.9.1.tgz", - "integrity": "sha512-61btcOHNnLnsOdtLgA5efqQWjnSi/vow5HbI7HMdKKWqvrKR1bLK3BPlJn9gcSaP2ewuamUSMB5XEy76KUIS2w==", + "version": "10.9.2", + "resolved": "https://registry.npmjs.org/jake/-/jake-10.9.2.tgz", + "integrity": "sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -10487,9 +10812,9 @@ } }, "node_modules/jasmine-core": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-5.1.2.tgz", - "integrity": "sha512-2oIUMGn00FdUiqz6epiiJr7xcFyNYj3rDcfmnzfkBnHyBQ3cBQUs4mmyGsOb7TTLb9kxk7dBcmEmqhDKkBoDyA==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-5.2.0.tgz", + "integrity": "sha512-tSAtdrvWybZkQmmaIoDgnvHG8ORUNw5kEVlO5CvrXj02Jjr9TZrmjFq7FUiOUzJiOP2wLGYT6PgrQgQF4R1xiw==", "dev": true, "license": "MIT" }, @@ -11022,6 +11347,19 @@ "node": "*" } }, + "node_modules/karma/node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, "node_modules/karma/node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", @@ -11752,9 +12090,9 @@ } }, "node_modules/memfs": { - "version": "4.9.3", - "resolved": "https://registry.npmjs.org/memfs/-/memfs-4.9.3.tgz", - "integrity": "sha512-bsYSSnirtYTWi1+OPMFb0M048evMKyUYe0EbtuGQgq6BVQM1g1W8/KIUJCCvjgI/El0j6Q4WsmMiBwLUBSw8LA==", + "version": "4.9.4", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-4.9.4.tgz", + "integrity": "sha512-Xlj8b2rU11nM6+KU6wC7cuWcHQhVINWCUgdPS4Ar9nPxLaOya3RghqK7ALyDW2QtGebYAYs6uEdEVnwPVT942A==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -12104,16 +12442,16 @@ "license": "ISC" }, "node_modules/mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", "dev": true, "license": "MIT", - "dependencies": { - "minimist": "^1.2.6" - }, "bin": { "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" } }, "node_modules/mrmime": { @@ -13031,11 +13369,22 @@ "license": "MIT" }, "node_modules/node-releases": { - "version": "2.0.17", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.17.tgz", - "integrity": "sha512-Ww6ZlOiEQfPfXM45v17oabk77Z7mg5bOt7AjDyzy7RjK9OrLrLC8dyZQoAPEOtFX9SaNf1Tdvr5gRJWdTJj7GA==", + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz", + "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==", "license": "MIT" }, + "node_modules/noms": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/noms/-/noms-0.0.0.tgz", + "integrity": "sha512-lNDU9VJaOPxUmXcLb+HQFeUgQQPtMI24Gt6hgfuMHRJgMRHMF/qZ4HJD3GDru4sSw9IQl2jPjAYnQrdIeLbwow==", + "dev": true, + "license": "ISC", + "dependencies": { + "inherits": "^2.0.1", + "readable-stream": "~1.0.31" + } + }, "node_modules/nopt": { "version": "7.2.1", "resolved": "https://registry.npmjs.org/nopt/-/nopt-7.2.1.tgz", @@ -13214,15 +13563,15 @@ } }, "node_modules/nx": { - "version": "19.5.1", - "resolved": "https://registry.npmjs.org/nx/-/nx-19.5.1.tgz", - "integrity": "sha512-aKctNLiK2hXl2536/qwnAqvSzNlIGwJdTBl2ajOnSyNrGWuLDMllTNTdp0/lU0QBJ2NSod3JbBQFV7cc9ILs4w==", + "version": "19.5.3", + "resolved": "https://registry.npmjs.org/nx/-/nx-19.5.3.tgz", + "integrity": "sha512-ZUrnRwPdRWXeo8IuLj16Oo9IfiDjd8C6xKWC4F6wcTNZ9ZS7ZErrfqaQr04zdO89ASF9brbkqm0UkMyDPc6kPQ==", "dev": true, "hasInstallScript": true, "license": "MIT", "dependencies": { "@napi-rs/wasm-runtime": "0.2.4", - "@nrwl/tao": "19.5.1", + "@nrwl/tao": "19.5.3", "@yarnpkg/lockfile": "^1.1.0", "@yarnpkg/parsers": "3.0.0-rc.46", "@zkochan/js-yaml": "0.0.7", @@ -13262,16 +13611,16 @@ "nx-cloud": "bin/nx-cloud.js" }, "optionalDependencies": { - "@nx/nx-darwin-arm64": "19.5.1", - "@nx/nx-darwin-x64": "19.5.1", - "@nx/nx-freebsd-x64": "19.5.1", - "@nx/nx-linux-arm-gnueabihf": "19.5.1", - "@nx/nx-linux-arm64-gnu": "19.5.1", - "@nx/nx-linux-arm64-musl": "19.5.1", - "@nx/nx-linux-x64-gnu": "19.5.1", - "@nx/nx-linux-x64-musl": "19.5.1", - "@nx/nx-win32-arm64-msvc": "19.5.1", - "@nx/nx-win32-x64-msvc": "19.5.1" + "@nx/nx-darwin-arm64": "19.5.3", + "@nx/nx-darwin-x64": "19.5.3", + "@nx/nx-freebsd-x64": "19.5.3", + "@nx/nx-linux-arm-gnueabihf": "19.5.3", + "@nx/nx-linux-arm64-gnu": "19.5.3", + "@nx/nx-linux-arm64-musl": "19.5.3", + "@nx/nx-linux-x64-gnu": "19.5.3", + "@nx/nx-linux-x64-musl": "19.5.3", + "@nx/nx-win32-arm64-msvc": "19.5.3", + "@nx/nx-win32-x64-msvc": "19.5.3" }, "peerDependencies": { "@swc-node/register": "^1.8.0", @@ -14629,18 +14978,16 @@ "license": "MIT" }, "node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==", "dev": true, "license": "MIT", "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" } }, "node_modules/readdirp": { @@ -15743,6 +16090,31 @@ "wbuf": "^1.7.3" } }, + "node_modules/spdy-transport/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/spdy-transport/node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, "node_modules/sprintf-js": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", @@ -15824,14 +16196,11 @@ } }, "node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==", "dev": true, - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.2.0" - } + "license": "MIT" }, "node_modules/string-width": { "version": "7.2.0", @@ -16070,6 +16439,31 @@ "node": ">=6" } }, + "node_modules/tar-stream/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/tar-stream/node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, "node_modules/tar/node_modules/fs-minipass": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", @@ -16106,19 +16500,6 @@ "node": ">=8" } }, - "node_modules/tar/node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true, - "license": "MIT", - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/tar/node_modules/yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", @@ -16267,6 +16648,57 @@ "dev": true, "license": "MIT" }, + "node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "node_modules/through2/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/through2/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/through2/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true, + "license": "MIT" + }, + "node_modules/through2/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, "node_modules/thunky": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", @@ -16595,6 +17027,16 @@ "node": ">= 0.8" } }, + "node_modules/untildify": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", + "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/update-browserslist-db": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.0.tgz", @@ -17417,6 +17859,16 @@ } } }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.4" + } + }, "node_modules/y18n": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", diff --git a/package.json b/package.json index d30e07c8..2e09a6aa 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "coreui-angular-dev", - "version": "5.2.7", + "version": "5.2.11", "description": "CoreUI Components Library for Angular", "copyright": "Copyright 2024 creativeLabs Łukasz Holeczek", "license": "MIT", @@ -9,43 +9,46 @@ "lib": "ng", "watch:lib:dev": "ng build coreui-angular --watch --configuration production", "build:lib:prod": "ng build coreui-angular", + "postbuild:lib:prod": "npm run build --prefix projects/coreui-angular", "test:lib:dev": "ng test coreui-angular", "test:lib:prod": "ng test coreui-angular --karma-config=projects/coreui-angular/karma.conf.github.js", - "prepublish:lib": "npm run prepublish:icons && ng lint coreui-angular && ng test coreui-angular --watch=false && ng build coreui-angular", + "prepublish:lib": "npm run prepublish:icons && ng lint coreui-angular && ng test coreui-angular --watch=false && npm run build:lib:prod", "publish:lib": "cd dist/coreui-angular/ && npm publish --tag next --dry-run", "lint:lib": "ng lint coreui-angular", "link:lib": "cd dist/coreui-angular/ && npm link", "chartjs": "ng", "watch:chartjs:dev": "ng build coreui-angular-chartjs --watch --configuration development", "build:chartjs:prod": "ng build coreui-angular-chartjs", + "postbuild:chartjs:prod": "npm run build --prefix projects/coreui-angular-chartjs", "test:chartjs:dev": "ng test coreui-angular-chartjs", "test:chartjs:prod": "ng test coreui-angular-chartjs --karma-config=projects/coreui-angular-chartjs/karma.conf.github.js", - "prepublish:chartjs": "ng lint coreui-angular-chartjs && ng test coreui-angular-chartjs --watch=false && ng build coreui-angular-chartjs", + "prepublish:chartjs": "ng lint coreui-angular-chartjs && ng test coreui-angular-chartjs --watch=false && npm run build:chartjs:prod", "publish:chartjs": "cd dist/coreui-angular-chartjs/ && npm publish --tag next --dry-run", "lint:chartjs": "ng lint coreui-angular-chartjs", "link:chartjs": "cd dist/coreui-angular-chartjs/ && npm link", "icons": "ng", "watch:icons:dev": "ng build coreui-icons-angular --watch --configuration production", "build:icons:prod": "ng build coreui-icons-angular", + "postbuild:icons:prod": "npm run build --prefix projects/coreui-icons-angular", "test:icons:dev": "ng test coreui-icons-angular", "test:icons:prod": "ng test coreui-icons-angular --karma-config=projects/coreui-icons-angular/karma.conf.github.js", - "prepublish:icons": "ng lint coreui-icons-angular && ng test coreui-icons-angular --watch=false && ng build coreui-icons-angular", + "prepublish:icons": "ng lint coreui-icons-angular && ng test coreui-icons-angular --watch=false && npm run build:icons:prod", "publish:icons": "cd dist/coreui-icons-angular/ && npm publish --tag next --dry-run", "lint:icons": "ng lint coreui-icons-angular", "link:icons": "cd dist/coreui-icons-angular/ && npm link" }, "private": true, "dependencies": { - "@angular/animations": "^18.1.1", - "@angular/cdk": "^18.1.1", - "@angular/common": "^18.1.1", - "@angular/compiler": "^18.1.1", - "@angular/core": "^18.1.1", - "@angular/forms": "^18.1.1", - "@angular/localize": "^18.1.1", - "@angular/platform-browser": "^18.1.1", - "@angular/platform-browser-dynamic": "^18.1.1", - "@angular/router": "^18.1.1", + "@angular/animations": "^18.1.2", + "@angular/cdk": "^18.1.2", + "@angular/common": "^18.1.2", + "@angular/compiler": "^18.1.2", + "@angular/core": "^18.1.2", + "@angular/forms": "^18.1.2", + "@angular/localize": "^18.1.2", + "@angular/platform-browser": "^18.1.2", + "@angular/platform-browser-dynamic": "^18.1.2", + "@angular/router": "^18.1.2", "@coreui/chartjs": "^4.0.0", "@coreui/icons": "^3.0.1", "@popperjs/core": "~2.11.8", @@ -56,22 +59,24 @@ "zone.js": "~0.14.8" }, "devDependencies": { - "@angular-devkit/build-angular": "^18.1.1", + "@angular-devkit/build-angular": "^18.1.2", + "@angular-devkit/schematics": "^18.1.2", "@angular-eslint/builder": "18.1.0", "@angular-eslint/eslint-plugin": "18.1.0", "@angular-eslint/eslint-plugin-template": "18.1.0", "@angular-eslint/schematics": "18.1.0", "@angular-eslint/template-parser": "18.1.0", - "@angular/cli": "^18.1.1", - "@angular/compiler-cli": "^18.1.1", - "@angular/language-service": "^18.1.1", + "@angular/cli": "^18.1.2", + "@angular/compiler-cli": "^18.1.2", + "@angular/language-service": "^18.1.2", "@types/jasmine": "^5.1.4", "@types/lodash-es": "^4.17.12", - "@types/node": "^20.14.11", - "@typescript-eslint/eslint-plugin": "^7.16.1", - "@typescript-eslint/parser": "^7.16.1", + "@types/node": "^20.14.12", + "@typescript-eslint/eslint-plugin": "^7.17.0", + "@typescript-eslint/parser": "^7.17.0", + "copyfiles": "^2.4.1", "eslint": "^8.57.0", - "jasmine-core": "^5.1.2", + "jasmine-core": "^5.2.0", "karma": "^6.4.3", "karma-chrome-launcher": "^3.2.0", "karma-coverage": "^2.2.1", @@ -105,7 +110,7 @@ "version_short": "5.2" }, "engines": { - "node": "^18.19.0 || ^20.9.0", + "node": "^18.19.1 || ^20.11.1 || >=22.0.0", "npm": ">=9" } } diff --git a/projects/coreui-angular-chartjs/package.json b/projects/coreui-angular-chartjs/package.json index 577d82ac..8021964f 100644 --- a/projects/coreui-angular-chartjs/package.json +++ b/projects/coreui-angular-chartjs/package.json @@ -1,6 +1,6 @@ { "name": "@coreui/angular-chartjs", - "version": "5.2.7", + "version": "5.2.11", "description": "Angular wrapper component for Chart.js", "copyright": "Copyright 2024 creativeLabs Łukasz Holeczek", "license": "MIT", @@ -41,5 +41,17 @@ "component", "chartjs", "angular" - ] + ], + "devDependencies": { + "copyfiles": "file:../../node_modules/copyfiles", + "typescript": "file:../../node_modules/typescript" + }, + "schematics": "./schematics/collection.json", + "scripts": { + "build": "tsc -p tsconfig.schematics.json", + "postbuild": "copyfiles schematics/*/files/** schematics/collection.json ../../dist/coreui-angular-chartjs/" + }, + "ng-add": { + "save": true + } } diff --git a/projects/coreui-angular-chartjs/schematics/collection.json b/projects/coreui-angular-chartjs/schematics/collection.json new file mode 100644 index 00000000..7f426a32 --- /dev/null +++ b/projects/coreui-angular-chartjs/schematics/collection.json @@ -0,0 +1,9 @@ +{ + "$schema": "../../../node_modules/@angular-devkit/schematics/collection-schema.json", + "schematics": { + "ng-add": { + "description": "Add @coreui/angular-chartjs library to the project.", + "factory": "./ng-add/index#ngAdd" + } + } +} diff --git a/projects/coreui-angular-chartjs/schematics/ng-add/index.ts b/projects/coreui-angular-chartjs/schematics/ng-add/index.ts new file mode 100644 index 00000000..e2d9677e --- /dev/null +++ b/projects/coreui-angular-chartjs/schematics/ng-add/index.ts @@ -0,0 +1,59 @@ +import { Rule, SchematicContext, SchematicsException, Tree } from '@angular-devkit/schematics'; +import { NodePackageInstallTask } from '@angular-devkit/schematics/tasks'; +import { addPackageJsonDependency, NodeDependency, NodeDependencyType } from '@schematics/angular/utility/dependencies'; +import { getPackageVersionFromPackageJson, PackageJson } from './package-config'; +import * as pkgJson from '../../package.json'; + +export function ngAdd(): Rule { + return (tree: Tree, context: SchematicContext) => { + const pkg = pkgJson as unknown as PackageJson; + + context.logger.info(``); + context.logger.info(`Installing ${pkg.name} dependencies...`); + + const ngCoreVersionTag = getPackageVersionFromPackageJson(tree, '@angular/core'); + context.logger.info(`@angular/core version ${ngCoreVersionTag}`); + if (!ngCoreVersionTag) { + throw new SchematicsException('@angular/core version not found'); + } + + const libraryDeps: NodeDependency[] = [ + { + name: '@coreui/chartjs', + type: NodeDependencyType.Default, + version: pkg.peerDependencies['@coreui/chartjs'], + overwrite: true + }, + { + name: 'chart.js', + type: NodeDependencyType.Default, + version: pkg.peerDependencies['chart.js'], + overwrite: true + }, + { + name: 'lodash-es', + type: NodeDependencyType.Default, + version: pkg.dependencies['lodash-es'], + overwrite: true + } + ]; + + libraryDeps.forEach((dep) => { + addPackageJsonDependency(tree, dep); + context.logger.info(`Added dependency: ${dep.name}@${dep.version}`); + }); + + const library: NodeDependency = { + name: pkg.name, + type: NodeDependencyType.Default, + version: `~${pkg.version}`, + overwrite: true + }; + + addPackageJsonDependency(tree, library); + context.logger.info(`Installing ${library.name}@${library.version}`); + context.addTask(new NodePackageInstallTask()); + + return tree; + }; +} diff --git a/projects/coreui-angular-chartjs/schematics/ng-add/package-config.ts b/projects/coreui-angular-chartjs/schematics/ng-add/package-config.ts new file mode 100644 index 00000000..95c3c1d1 --- /dev/null +++ b/projects/coreui-angular-chartjs/schematics/ng-add/package-config.ts @@ -0,0 +1,68 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ + +import { Tree } from '@angular-devkit/schematics'; + +export interface PackageJson { + dependencies: Record; + name: string; + peerDependencies: Record; + version: string; +} + +/** + * Sorts the keys of the given object. + * @returns A new object instance with sorted keys + */ +function sortObjectByKeys(obj: Record) { + return Object.keys(obj) + .sort() + .reduce( + (result, key) => { + result[key] = obj[key]; + return result; + }, + {} as Record + ); +} + +/** Adds a package to the package.json in the given host tree. */ +export function addPackageToPackageJson(host: Tree, pkg: string, version: string): Tree { + if (host.exists('package.json')) { + const sourceText = host.read('package.json')!.toString('utf-8'); + const json = JSON.parse(sourceText) as PackageJson; + + if (!json.dependencies) { + json.dependencies = {}; + } + + if (!json.dependencies[pkg]) { + json.dependencies[pkg] = version; + json.dependencies = sortObjectByKeys(json.dependencies); + } + + host.overwrite('package.json', JSON.stringify(json, null, 2)); + } + + return host; +} + +/** Gets the version of the specified package by looking at the package.json in the given tree. */ +export function getPackageVersionFromPackageJson(tree: Tree, name: string): string | null { + if (!tree.exists('package.json')) { + return null; + } + + const packageJson = JSON.parse(tree.read('package.json')!.toString('utf8')) as PackageJson; + + if (packageJson.dependencies && packageJson.dependencies[name]) { + return packageJson.dependencies[name]; + } + + return null; +} diff --git a/projects/coreui-angular-chartjs/tsconfig.schematics.json b/projects/coreui-angular-chartjs/tsconfig.schematics.json new file mode 100644 index 00000000..acbc130f --- /dev/null +++ b/projects/coreui-angular-chartjs/tsconfig.schematics.json @@ -0,0 +1,36 @@ +{ + "compilerOptions": { + "baseUrl": ".", + "lib": [ + "ES2022", + "dom" + ], + "declaration": true, + "module": "commonjs", + "moduleResolution": "node", + "noEmitOnError": true, + "noFallthroughCasesInSwitch": true, + "noImplicitAny": true, + "noImplicitThis": true, + "noUnusedParameters": true, + "noUnusedLocals": true, + "rootDir": "schematics", + "outDir": "../../dist/coreui-angular-chartjs/schematics", + "resolveJsonModule": true, + "skipDefaultLibCheck": true, + "skipLibCheck": true, + "sourceMap": true, + "strictNullChecks": true, + "target": "ES2022", + "types": [ + "jasmine", + "node" + ] + }, + "include": [ + "schematics/**/*" + ], + "exclude": [ + "schematics/*/files/**/*" + ] +} diff --git a/projects/coreui-angular/package.json b/projects/coreui-angular/package.json index b7841831..d9528148 100644 --- a/projects/coreui-angular/package.json +++ b/projects/coreui-angular/package.json @@ -1,6 +1,6 @@ { "name": "@coreui/angular", - "version": "5.2.7", + "version": "5.2.11", "description": "CoreUI Components Library for Angular", "copyright": "Copyright 2024 creativeLabs Łukasz Holeczek", "license": "MIT", @@ -28,8 +28,8 @@ "@angular/common": "^18.1.0", "@angular/core": "^18.1.0", "@angular/router": "^18.1.0", - "@coreui/coreui": "^5.0.0", - "@coreui/icons-angular": "~5.2.0", + "@coreui/coreui": "^5.1.0", + "@coreui/icons-angular": "~5.2.11", "rxjs": "^7.8.1" }, "repository": { @@ -49,5 +49,17 @@ "component", "components" ], - "eslintConfig": {} + "eslintConfig": {}, + "devDependencies": { + "copyfiles": "file:../../node_modules/copyfiles", + "typescript": "file:../../node_modules/typescript" + }, + "schematics": "./schematics/collection.json", + "scripts": { + "build": "tsc -p tsconfig.schematics.json", + "postbuild": "copyfiles schematics/*/files/** schematics/collection.json ../../dist/coreui-angular/" + }, + "ng-add": { + "save": true + } } diff --git a/projects/coreui-angular/schematics/collection.json b/projects/coreui-angular/schematics/collection.json new file mode 100644 index 00000000..a1cb4b7f --- /dev/null +++ b/projects/coreui-angular/schematics/collection.json @@ -0,0 +1,9 @@ +{ + "$schema": "../../../node_modules/@angular-devkit/schematics/collection-schema.json", + "schematics": { + "ng-add": { + "description": "Add @coreui/angular library to the project.", + "factory": "./ng-add/index#ngAdd" + } + } +} diff --git a/projects/coreui-angular/schematics/ng-add/index.ts b/projects/coreui-angular/schematics/ng-add/index.ts new file mode 100644 index 00000000..54ce8f91 --- /dev/null +++ b/projects/coreui-angular/schematics/ng-add/index.ts @@ -0,0 +1,77 @@ +import { Rule, SchematicContext, SchematicsException, Tree } from '@angular-devkit/schematics'; +import { NodePackageInstallTask } from '@angular-devkit/schematics/tasks'; +import { addPackageJsonDependency, NodeDependency, NodeDependencyType } from '@schematics/angular/utility/dependencies'; +import { getPackageVersionFromPackageJson, PackageJson } from './package-config'; +import * as pkgJson from '../../package.json'; + +export function ngAdd(): Rule { + return (tree: Tree, context: SchematicContext) => { + const pkg = pkgJson as unknown as PackageJson; + + context.logger.info(``); + context.logger.info(`Installing ${pkg.name} dependencies...`); + + const ngCoreVersionTag = getPackageVersionFromPackageJson(tree, '@angular/core'); + context.logger.info(`@angular/core version ${ngCoreVersionTag}`); + if (!ngCoreVersionTag) { + throw new SchematicsException('@angular/core version not found'); + } + + const projectDeps: NodeDependency[] = [ + { name: '@angular/animations', type: NodeDependencyType.Default, version: ngCoreVersionTag, overwrite: false }, + { name: '@angular/common', type: NodeDependencyType.Default, version: ngCoreVersionTag, overwrite: false }, + { name: '@angular/core', type: NodeDependencyType.Default, version: ngCoreVersionTag, overwrite: false }, + { name: '@angular/router', type: NodeDependencyType.Default, version: ngCoreVersionTag, overwrite: false } + ]; + + projectDeps.forEach((dep) => { + addPackageJsonDependency(tree, dep); + context.logger.info(`Added dependency: ${dep.name}@${dep.version}`); + }); + + const libraryDeps: NodeDependency[] = [ + { + name: '@angular/cdk', + type: NodeDependencyType.Default, + version: pkg.peerDependencies['@angular/cdk'], + overwrite: false + }, + { + name: '@coreui/coreui', + type: NodeDependencyType.Default, + version: pkg.peerDependencies['@coreui/coreui'], + overwrite: true + }, + { + name: '@coreui/icons-angular', + type: NodeDependencyType.Default, + version: pkg.peerDependencies['@coreui/icons-angular'], + overwrite: true + }, + { + name: '@popperjs/core', + type: NodeDependencyType.Default, + version: pkg.dependencies['@popperjs/core'], + overwrite: true + } + ]; + + libraryDeps.forEach((dep) => { + addPackageJsonDependency(tree, dep); + context.logger.info(`Added dependency: ${dep.name}@${dep.version}`); + }); + + const library: NodeDependency = { + name: pkg.name, + type: NodeDependencyType.Default, + version: `~${pkg.version}`, + overwrite: true + }; + + addPackageJsonDependency(tree, library); + context.logger.info(`Installing ${library.name}@${library.version}`); + context.addTask(new NodePackageInstallTask()); + + return tree; + }; +} diff --git a/projects/coreui-angular/schematics/ng-add/package-config.ts b/projects/coreui-angular/schematics/ng-add/package-config.ts new file mode 100644 index 00000000..95c3c1d1 --- /dev/null +++ b/projects/coreui-angular/schematics/ng-add/package-config.ts @@ -0,0 +1,68 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ + +import { Tree } from '@angular-devkit/schematics'; + +export interface PackageJson { + dependencies: Record; + name: string; + peerDependencies: Record; + version: string; +} + +/** + * Sorts the keys of the given object. + * @returns A new object instance with sorted keys + */ +function sortObjectByKeys(obj: Record) { + return Object.keys(obj) + .sort() + .reduce( + (result, key) => { + result[key] = obj[key]; + return result; + }, + {} as Record + ); +} + +/** Adds a package to the package.json in the given host tree. */ +export function addPackageToPackageJson(host: Tree, pkg: string, version: string): Tree { + if (host.exists('package.json')) { + const sourceText = host.read('package.json')!.toString('utf-8'); + const json = JSON.parse(sourceText) as PackageJson; + + if (!json.dependencies) { + json.dependencies = {}; + } + + if (!json.dependencies[pkg]) { + json.dependencies[pkg] = version; + json.dependencies = sortObjectByKeys(json.dependencies); + } + + host.overwrite('package.json', JSON.stringify(json, null, 2)); + } + + return host; +} + +/** Gets the version of the specified package by looking at the package.json in the given tree. */ +export function getPackageVersionFromPackageJson(tree: Tree, name: string): string | null { + if (!tree.exists('package.json')) { + return null; + } + + const packageJson = JSON.parse(tree.read('package.json')!.toString('utf8')) as PackageJson; + + if (packageJson.dependencies && packageJson.dependencies[name]) { + return packageJson.dependencies[name]; + } + + return null; +} diff --git a/projects/coreui-angular/tsconfig.json b/projects/coreui-angular/tsconfig.json index b3e0d01a..56f4fc9e 100644 --- a/projects/coreui-angular/tsconfig.json +++ b/projects/coreui-angular/tsconfig.json @@ -9,6 +9,9 @@ }, { "path": "./tsconfig.spec.json" + }, + { + "path": "./tsconfig.schematics.json" } ] } diff --git a/projects/coreui-angular/tsconfig.schematics.json b/projects/coreui-angular/tsconfig.schematics.json new file mode 100644 index 00000000..513e9c46 --- /dev/null +++ b/projects/coreui-angular/tsconfig.schematics.json @@ -0,0 +1,36 @@ +{ + "compilerOptions": { + "baseUrl": ".", + "lib": [ + "ES2022", + "dom" + ], + "declaration": true, + "module": "commonjs", + "moduleResolution": "node", + "noEmitOnError": true, + "noFallthroughCasesInSwitch": true, + "noImplicitAny": true, + "noImplicitThis": true, + "noUnusedParameters": true, + "noUnusedLocals": true, + "rootDir": "schematics", + "outDir": "../../dist/coreui-angular/schematics", + "resolveJsonModule": true, + "skipDefaultLibCheck": true, + "skipLibCheck": true, + "sourceMap": true, + "strictNullChecks": true, + "target": "ES2022", + "types": [ + "jasmine", + "node" + ] + }, + "include": [ + "schematics/**/*" + ], + "exclude": [ + "schematics/*/files/**/*" + ] +} diff --git a/projects/coreui-icons-angular/package.json b/projects/coreui-icons-angular/package.json index 0971f095..3293808d 100644 --- a/projects/coreui-icons-angular/package.json +++ b/projects/coreui-icons-angular/package.json @@ -1,6 +1,6 @@ { "name": "@coreui/icons-angular", - "version": "5.2.7", + "version": "5.2.11", "description": "CoreUI Icons Angular component and service", "copyright": "Copyright 2024 creativeLabs Łukasz Holeczek", "license": "MIT", @@ -43,5 +43,17 @@ "layout", "component", "angular" - ] + ], + "devDependencies": { + "copyfiles": "file:../../node_modules/copyfiles", + "typescript": "file:../../node_modules/typescript" + }, + "schematics": "./schematics/collection.json", + "scripts": { + "build": "tsc -p tsconfig.schematics.json", + "postbuild": "copyfiles schematics/*/files/** schematics/collection.json ../../dist/coreui-icons-angular/" + }, + "ng-add": { + "save": true + } } diff --git a/projects/coreui-icons-angular/schematics/collection.json b/projects/coreui-icons-angular/schematics/collection.json new file mode 100644 index 00000000..72b8543b --- /dev/null +++ b/projects/coreui-icons-angular/schematics/collection.json @@ -0,0 +1,9 @@ +{ + "$schema": "../../../node_modules/@angular-devkit/schematics/collection-schema.json", + "schematics": { + "ng-add": { + "description": "Add @coreui/icons-angular library to the project.", + "factory": "./ng-add/index#ngAdd" + } + } +} diff --git a/projects/coreui-icons-angular/schematics/ng-add/index.ts b/projects/coreui-icons-angular/schematics/ng-add/index.ts new file mode 100644 index 00000000..13b3188d --- /dev/null +++ b/projects/coreui-icons-angular/schematics/ng-add/index.ts @@ -0,0 +1,49 @@ +import { Rule, SchematicContext, SchematicsException, Tree } from '@angular-devkit/schematics'; +import { NodePackageInstallTask } from '@angular-devkit/schematics/tasks'; +import { addPackageJsonDependency, NodeDependency, NodeDependencyType } from '@schematics/angular/utility/dependencies'; +import { getPackageVersionFromPackageJson, PackageJson } from './package-config'; +import * as pkgJson from '../../package.json'; + +export function ngAdd(): Rule { + return (tree: Tree, context: SchematicContext) => { + const pkg = pkgJson as unknown as PackageJson; + + context.logger.info(``); + context.logger.info(`Installing ${pkg.name} dependencies...`); + + const ngCoreVersionTag = getPackageVersionFromPackageJson(tree, '@angular/core'); + context.logger.info(`@angular/core version ${ngCoreVersionTag}`); + if (!ngCoreVersionTag) { + throw new SchematicsException('@angular/core version not found'); + } + + const projectDeps: NodeDependency[] = [ + { name: '@angular/common', type: NodeDependencyType.Default, version: ngCoreVersionTag, overwrite: false }, + { name: '@angular/core', type: NodeDependencyType.Default, version: ngCoreVersionTag, overwrite: false }, + { + name: '@angular/platform-browser', + type: NodeDependencyType.Default, + version: ngCoreVersionTag, + overwrite: false + } + ]; + + projectDeps.forEach((dep) => { + addPackageJsonDependency(tree, dep); + context.logger.info(`Added dependency: ${dep.name}@${dep.version}`); + }); + + const library: NodeDependency = { + name: pkg.name, + type: NodeDependencyType.Default, + version: `~${pkg.version}`, + overwrite: true + }; + + addPackageJsonDependency(tree, library); + context.logger.info(`Installing ${library.name}@${library.version}`); + context.addTask(new NodePackageInstallTask()); + + return tree; + }; +} diff --git a/projects/coreui-icons-angular/schematics/ng-add/package-config.ts b/projects/coreui-icons-angular/schematics/ng-add/package-config.ts new file mode 100644 index 00000000..95c3c1d1 --- /dev/null +++ b/projects/coreui-icons-angular/schematics/ng-add/package-config.ts @@ -0,0 +1,68 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ + +import { Tree } from '@angular-devkit/schematics'; + +export interface PackageJson { + dependencies: Record; + name: string; + peerDependencies: Record; + version: string; +} + +/** + * Sorts the keys of the given object. + * @returns A new object instance with sorted keys + */ +function sortObjectByKeys(obj: Record) { + return Object.keys(obj) + .sort() + .reduce( + (result, key) => { + result[key] = obj[key]; + return result; + }, + {} as Record + ); +} + +/** Adds a package to the package.json in the given host tree. */ +export function addPackageToPackageJson(host: Tree, pkg: string, version: string): Tree { + if (host.exists('package.json')) { + const sourceText = host.read('package.json')!.toString('utf-8'); + const json = JSON.parse(sourceText) as PackageJson; + + if (!json.dependencies) { + json.dependencies = {}; + } + + if (!json.dependencies[pkg]) { + json.dependencies[pkg] = version; + json.dependencies = sortObjectByKeys(json.dependencies); + } + + host.overwrite('package.json', JSON.stringify(json, null, 2)); + } + + return host; +} + +/** Gets the version of the specified package by looking at the package.json in the given tree. */ +export function getPackageVersionFromPackageJson(tree: Tree, name: string): string | null { + if (!tree.exists('package.json')) { + return null; + } + + const packageJson = JSON.parse(tree.read('package.json')!.toString('utf8')) as PackageJson; + + if (packageJson.dependencies && packageJson.dependencies[name]) { + return packageJson.dependencies[name]; + } + + return null; +} diff --git a/projects/coreui-icons-angular/tsconfig.schematics.json b/projects/coreui-icons-angular/tsconfig.schematics.json new file mode 100644 index 00000000..13131e4f --- /dev/null +++ b/projects/coreui-icons-angular/tsconfig.schematics.json @@ -0,0 +1,36 @@ +{ + "compilerOptions": { + "baseUrl": ".", + "lib": [ + "ES2022", + "dom" + ], + "declaration": true, + "module": "commonjs", + "moduleResolution": "node", + "noEmitOnError": true, + "noFallthroughCasesInSwitch": true, + "noImplicitAny": true, + "noImplicitThis": true, + "noUnusedParameters": true, + "noUnusedLocals": true, + "rootDir": "schematics", + "outDir": "../../dist/coreui-icons-angular/schematics", + "resolveJsonModule": true, + "skipDefaultLibCheck": true, + "skipLibCheck": true, + "sourceMap": true, + "strictNullChecks": true, + "target": "ES2022", + "types": [ + "jasmine", + "node" + ] + }, + "include": [ + "schematics/**/*" + ], + "exclude": [ + "schematics/*/files/**/*" + ] +} diff --git a/tsconfig.json b/tsconfig.json index d452568c..5bebe447 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -27,6 +27,7 @@ "declaration": false, "experimentalDecorators": true, "moduleResolution": "bundler", + "resolveJsonModule": true, "importHelpers": true, "target": "ES2022", "module": "ES2022",