diff --git a/CHANGELOG.md b/CHANGELOG.md index 0665fad97..b2ceeba88 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,28 @@ +## 19.4.0 (2025-05-08) + +### 🚀 Features + +- **eslint-plugin:** add rule prefer-output-emitter-ref ([#2324](https://github.com/angular-eslint/angular-eslint/pull/2324)) +- **eslint-plugin-template:** [no-interpolation-in-attributes] add allowSubstringInterpolation option ([#2373](https://github.com/angular-eslint/angular-eslint/pull/2373)) +- **eslint-plugin-template:** Add `prefer-template-literal` rule ([#2308](https://github.com/angular-eslint/angular-eslint/pull/2308)) + +### 🩹 Fixes + +- update dependency @angular/compiler to v19.2.10 ([#2394](https://github.com/angular-eslint/angular-eslint/pull/2394)) +- update dependency ignore to v7.0.4 ([#2396](https://github.com/angular-eslint/angular-eslint/pull/2396)) +- update typescript-eslint packages to v8.32.0 ([#2399](https://github.com/angular-eslint/angular-eslint/pull/2399)) +- update dependency eslint to v9.26.0 ([#2409](https://github.com/angular-eslint/angular-eslint/pull/2409)) +- **eslint-plugin-template:** [no-any] handle key reads ([#1701](https://github.com/angular-eslint/angular-eslint/pull/1701), [#2335](https://github.com/angular-eslint/angular-eslint/pull/2335)) +- **eslint-plugin-template:** correct column adjustment for inline template message locations ([#2358](https://github.com/angular-eslint/angular-eslint/pull/2358)) +- **eslint-plugin-template:** remove backticks from inline template with interpolation ([#2368](https://github.com/angular-eslint/angular-eslint/pull/2368)) + +### ❤️ Thank You + +- daiscog @daiscog +- Dave @reduckted +- Evgeny Stepanovych @undsoft +- Guillaume DROUARD + ## 19.3.0 (2025-03-22) ### 🚀 Features diff --git a/docs/CONFIGURING_FLAT_CONFIG.md b/docs/CONFIGURING_FLAT_CONFIG.md index 2d1a2ee3c..b988977a1 100644 --- a/docs/CONFIGURING_FLAT_CONFIG.md +++ b/docs/CONFIGURING_FLAT_CONFIG.md @@ -148,6 +148,68 @@ module.exports = tseslint.config( By setting up our config in this way, we have complete control over what rules etc apply to what file types and our separate concerns remain clearer and easier to maintain. The schematics provided by angular-eslint will already configure your project in this way. +## Notes for `eslint-plugin-prettier` users + +Prettier is an awesome code formatter which can be used entirely independently of linting. + +Some folks, however, like to apply prettier by using it inside of ESLint, using `eslint-plugin-prettier`. If this applies to you then you will want to read this section on how to apply it correctly for HTML templates. Make sure you read and fully understand the information above on the importance of `"overrides"` before reading this section. + +If you choose to use `eslint-plugin-prettier`, **please ensure that you are using version 5.1.0 or later**, and apply the following configuration to ESLint and prettier: + +**.prettierrc** + +```json +{ + "overrides": [ + { + "files": "*.html", + "options": { + "parser": "angular" + } + } + ] +} +``` + +Project level **eslint.config.js** + +```js +// @ts-check + +// Allows us to use the typed utility for our config +const tseslint = require('typescript-eslint'); +const prettierRecommended = require('eslint-plugin-prettier/recommended'); + +// Require our workspace root level config and extend from it +const rootConfig = require('../../eslint.config.js'); + +module.exports = tseslint.config([ + // Apply the root config first + ...rootConfig, + { + // Any project level overrides or additional rules for TypeScript files can go here + // (we don't need to extend from any typescript-eslint or angular-eslint configs because + // we already applied the rootConfig above which has them) + files: ['**/*.ts'], + extends: [prettierRecommended], // here we inherit from the recommended setup from eslint-plugin-prettier for TS + rules: { + { + // Any project level overrides or additional rules for HTML files can go here + // (we don't need to extend from any angular-eslint configs because + // we already applied the rootConfig above which has them) + files: ['**/*.html'], + extends: [prettierRecommended], // here we inherit from the recommended setup from eslint-plugin-prettier for HTML + rules: {}, + }, +]); +``` + +With this setup, you have covered the following scenarios: + +- ESLint + prettier together work on Components with external templates (and all other source TS files) +- ESLint + prettier together work on the external template HTML files themselves +- ESLint + prettier together work on Components with inline templates + ## Premade configs provided by this project We have several premade configs within this project which you can extend from (and indeed the configs generated by our schematics do just that). For more information about the configs, check out the README here: diff --git a/e2e/src/__snapshots__/inline-template-fixer.test.ts.snap b/e2e/src/__snapshots__/inline-template-fixer.test.ts.snap index da2541f64..92fb75f40 100644 --- a/e2e/src/__snapshots__/inline-template-fixer.test.ts.snap +++ b/e2e/src/__snapshots__/inline-template-fixer.test.ts.snap @@ -22,7 +22,7 @@ exports[`inline-template-fixer should generate the expected inline template fixe "@angular/compiler-cli": "^19.X.X", "@types/jasmine": "~5.1.0", "angular-eslint": "0.0.0-e2e", - "eslint": "^9.23.0", + "eslint": "^9.26.0", "jasmine-core": "~5.6.0", "karma": "~6.4.0", "karma-chrome-launcher": "~3.2.0", @@ -30,6 +30,6 @@ exports[`inline-template-fixer should generate the expected inline template fixe "karma-jasmine": "~5.1.0", "karma-jasmine-html-reporter": "~2.1.0", "typescript": "~5.X.X", - "typescript-eslint": "8.27.0" + "typescript-eslint": "8.32.0" } `; diff --git a/e2e/src/__snapshots__/new-workspace-create-application-false-ng-add-then-project.test.ts.snap b/e2e/src/__snapshots__/new-workspace-create-application-false-ng-add-then-project.test.ts.snap index 723a40975..63b0418df 100644 --- a/e2e/src/__snapshots__/new-workspace-create-application-false-ng-add-then-project.test.ts.snap +++ b/e2e/src/__snapshots__/new-workspace-create-application-false-ng-add-then-project.test.ts.snap @@ -7,7 +7,7 @@ exports[`new-workspace-create-application-false-ng-add-then-project should pass "@angular/compiler-cli": "^19.X.X", "@types/jasmine": "~5.1.0", "angular-eslint": "0.0.0-e2e", - "eslint": "^9.23.0", + "eslint": "^9.26.0", "jasmine-core": "~5.6.0", "karma": "~6.4.0", "karma-chrome-launcher": "~3.2.0", @@ -15,7 +15,7 @@ exports[`new-workspace-create-application-false-ng-add-then-project should pass "karma-jasmine": "~5.1.0", "karma-jasmine-html-reporter": "~2.1.0", "typescript": "~5.X.X", - "typescript-eslint": "8.27.0" + "typescript-eslint": "8.32.0" } `; diff --git a/e2e/src/__snapshots__/new-workspace-create-application-false-project-then-ng-add.test.ts.snap b/e2e/src/__snapshots__/new-workspace-create-application-false-project-then-ng-add.test.ts.snap index deb887f65..b9ee1500d 100644 --- a/e2e/src/__snapshots__/new-workspace-create-application-false-project-then-ng-add.test.ts.snap +++ b/e2e/src/__snapshots__/new-workspace-create-application-false-project-then-ng-add.test.ts.snap @@ -7,7 +7,7 @@ exports[`new-workspace-create-application-false-project-then-ng-add should pass "@angular/compiler-cli": "^19.X.X", "@types/jasmine": "~5.1.0", "angular-eslint": "0.0.0-e2e", - "eslint": "^9.23.0", + "eslint": "^9.26.0", "jasmine-core": "~5.6.0", "karma": "~6.4.0", "karma-chrome-launcher": "~3.2.0", @@ -15,7 +15,7 @@ exports[`new-workspace-create-application-false-project-then-ng-add should pass "karma-jasmine": "~5.1.0", "karma-jasmine-html-reporter": "~2.1.0", "typescript": "~5.X.X", - "typescript-eslint": "8.27.0" + "typescript-eslint": "8.32.0" } `; diff --git a/e2e/src/__snapshots__/new-workspace-type-module.test.ts.snap b/e2e/src/__snapshots__/new-workspace-type-module.test.ts.snap index 1ae2e2bfd..cffb198ee 100644 --- a/e2e/src/__snapshots__/new-workspace-type-module.test.ts.snap +++ b/e2e/src/__snapshots__/new-workspace-type-module.test.ts.snap @@ -7,7 +7,7 @@ exports[`new-workspace-type-module should pass linting after creating a new work "@angular/compiler-cli": "^19.X.X", "@types/jasmine": "~5.1.0", "angular-eslint": "0.0.0-e2e", - "eslint": "^9.23.0", + "eslint": "^9.26.0", "jasmine-core": "~5.6.0", "karma": "~6.4.0", "karma-chrome-launcher": "~3.2.0", @@ -16,7 +16,7 @@ exports[`new-workspace-type-module should pass linting after creating a new work "karma-jasmine-html-reporter": "~2.1.0", "ng-packagr": "^19.X.X", "typescript": "~5.X.X", - "typescript-eslint": "8.27.0" + "typescript-eslint": "8.32.0" } `; diff --git a/e2e/src/__snapshots__/new-workspace.test.ts.snap b/e2e/src/__snapshots__/new-workspace.test.ts.snap index 5d3ae85a0..8b66528c8 100644 --- a/e2e/src/__snapshots__/new-workspace.test.ts.snap +++ b/e2e/src/__snapshots__/new-workspace.test.ts.snap @@ -7,7 +7,7 @@ exports[`new-workspace should pass linting after creating a new workspace from s "@angular/compiler-cli": "^19.X.X", "@types/jasmine": "~5.1.0", "angular-eslint": "0.0.0-e2e", - "eslint": "^9.23.0", + "eslint": "^9.26.0", "jasmine-core": "~5.6.0", "karma": "~6.4.0", "karma-chrome-launcher": "~3.2.0", @@ -16,7 +16,7 @@ exports[`new-workspace should pass linting after creating a new workspace from s "karma-jasmine-html-reporter": "~2.1.0", "ng-packagr": "^19.X.X", "typescript": "~5.X.X", - "typescript-eslint": "8.27.0" + "typescript-eslint": "8.32.0" } `; diff --git a/nx.json b/nx.json index 693f4392a..2ee63d848 100644 --- a/nx.json +++ b/nx.json @@ -42,7 +42,6 @@ "release": { "projects": ["packages/*", "!nx-plugin"], "version": { - "useLegacyVersioning": false, "conventionalCommits": true }, "changelog": { @@ -161,6 +160,5 @@ "!{projectRoot}/eslint.config.js" ], "projectSpecificFiles": [] - }, - "bust": 1 + } } diff --git a/package.json b/package.json index c8acd20cb..567b204b5 100644 --- a/package.json +++ b/package.json @@ -3,9 +3,9 @@ "private": true, "description": "The tooling which enables ESLint to work with Angular projects", "volta": { - "node": "20.19.0" + "node": "20.19.1" }, - "packageManager": "pnpm@10.6.5", + "packageManager": "pnpm@10.10.0", "contributors": [ "James Henry " ], @@ -48,46 +48,46 @@ ] }, "devDependencies": { - "@angular/cli": "19.2.4", - "@angular/compiler": "19.2.3", - "@commitlint/cli": "19.8.0", - "@commitlint/config-conventional": "19.8.0", - "@mdn/browser-compat-data": "5.7.5", - "@nx/devkit": "0.0.0-pr-30418-4f79396", - "@nx/esbuild": "0.0.0-pr-30418-4f79396", - "@nx/eslint": "0.0.0-pr-30418-4f79396", - "@nx/eslint-plugin": "0.0.0-pr-30418-4f79396", - "@nx/jest": "0.0.0-pr-30418-4f79396", - "@nx/js": "0.0.0-pr-30418-4f79396", - "@nx/plugin": "0.0.0-pr-30418-4f79396", - "@nx/workspace": "0.0.0-pr-30418-4f79396", - "@schematics/angular": "19.2.4", + "@angular/cli": "19.2.11", + "@angular/compiler": "19.2.10", + "@commitlint/cli": "19.8.1", + "@commitlint/config-conventional": "19.8.1", + "@mdn/browser-compat-data": "6.0.12", + "@nx/devkit": "21.0.2", + "@nx/esbuild": "21.0.2", + "@nx/eslint": "21.0.2", + "@nx/eslint-plugin": "21.0.2", + "@nx/jest": "21.0.2", + "@nx/js": "21.0.2", + "@nx/plugin": "21.0.2", + "@nx/workspace": "21.0.2", + "@schematics/angular": "19.2.11", "@swc-node/register": "1.10.10", - "@swc/cli": "0.6.0", - "@swc/core": "1.11.11", - "@swc/helpers": "0.5.15", + "@swc/cli": "0.7.5", + "@swc/core": "1.11.24", + "@swc/helpers": "0.5.17", "@types/eslint": "9.6.1", "@types/eslint-scope": "3.7.7", - "@types/jest": "29.5.12", - "@types/node": "20.17.25", + "@types/jest": "29.5.14", + "@types/node": "20.17.45", "@types/semver": "^7.5.8", "@types/yargs": "^17.0.33", - "@typescript-eslint/rule-tester": "8.27.0", - "@typescript-eslint/types": "8.27.0", - "@typescript-eslint/utils": "8.27.0", + "@typescript-eslint/rule-tester": "8.32.0", + "@typescript-eslint/types": "8.32.0", + "@typescript-eslint/utils": "8.32.0", "cz-conventional-changelog": "3.3.0", "esbuild": "^0.25.0", - "eslint": "9.23.0", - "eslint-config-prettier": "10.1.1", + "eslint": "9.26.0", + "eslint-config-prettier": "10.1.3", "execa": "5.1.1", "husky": "9.1.7", "jest": "29.7.0", "json-schema-to-typescript": "15.0.4", "json-schema-traverse": "1.0.0", "jsonc-eslint-parser": "^2.1.0", - "lint-staged": "15.5.0", + "lint-staged": "15.5.2", "ncp": "2.0.0", - "nx": "0.0.0-pr-30418-4f79396", + "nx": "21.0.2", "picocolors": "1.1.1", "prettier": "3.5.3", "prettier-v2-for-jest-inline-snapshots": "npm:prettier@^2", @@ -97,9 +97,9 @@ "ts-jest": "29.2.4", "tslib": "^2.4.1", "tsx": "^4.7.3", - "typescript": "5.7.3", - "typescript-eslint": "8.27.0", - "verdaccio": "6.0.5", + "typescript": "5.8.3", + "typescript-eslint": "8.32.0", + "verdaccio": "6.1.2", "yargs": "17.7.2" }, "pnpm": { diff --git a/packages/angular-eslint/CHANGELOG.md b/packages/angular-eslint/CHANGELOG.md index 4385ad976..ec32a79d7 100644 --- a/packages/angular-eslint/CHANGELOG.md +++ b/packages/angular-eslint/CHANGELOG.md @@ -1,3 +1,15 @@ +## 19.4.0 (2025-05-08) + +### 🚀 Features + +- **eslint-plugin-template:** Add `prefer-template-literal` rule ([#2308](https://github.com/angular-eslint/angular-eslint/pull/2308)) +- **eslint-plugin:** add rule prefer-output-emitter-ref ([#2324](https://github.com/angular-eslint/angular-eslint/pull/2324)) + +### ❤️ Thank You + +- Dave @reduckted +- Guillaume DROUARD + ## 19.3.0 (2025-03-22) ### 🚀 Features diff --git a/packages/angular-eslint/package.json b/packages/angular-eslint/package.json index c8bb8b202..6c876df59 100644 --- a/packages/angular-eslint/package.json +++ b/packages/angular-eslint/package.json @@ -1,6 +1,6 @@ { "name": "angular-eslint", - "version": "19.3.0", + "version": "19.4.0", "description": "The tooling which enables ESLint to work with Angular projects", "license": "MIT", "main": "dist/index.js", diff --git a/packages/angular-eslint/src/configs/template-all.ts b/packages/angular-eslint/src/configs/template-all.ts index dc6bf4894..8598dd46b 100644 --- a/packages/angular-eslint/src/configs/template-all.ts +++ b/packages/angular-eslint/src/configs/template-all.ts @@ -43,6 +43,7 @@ export default ( '@angular-eslint/template/prefer-ngsrc': 'error', '@angular-eslint/template/prefer-self-closing-tags': 'error', '@angular-eslint/template/prefer-static-string-properties': 'error', + '@angular-eslint/template/prefer-template-literal': 'error', '@angular-eslint/template/role-has-required-aria': 'error', '@angular-eslint/template/table-scope': 'error', '@angular-eslint/template/use-track-by-function': 'error', diff --git a/packages/angular-eslint/src/configs/ts-all.ts b/packages/angular-eslint/src/configs/ts-all.ts index f8afc489b..2be622fa7 100644 --- a/packages/angular-eslint/src/configs/ts-all.ts +++ b/packages/angular-eslint/src/configs/ts-all.ts @@ -42,6 +42,7 @@ export default ( '@angular-eslint/no-queries-metadata-property': 'error', '@angular-eslint/pipe-prefix': 'error', '@angular-eslint/prefer-on-push-component-change-detection': 'error', + '@angular-eslint/prefer-output-emitter-ref': 'error', '@angular-eslint/prefer-output-readonly': 'error', '@angular-eslint/prefer-signals': 'error', '@angular-eslint/prefer-standalone': 'error', diff --git a/packages/builder/CHANGELOG.md b/packages/builder/CHANGELOG.md index ced2faf71..eab9ad61e 100644 --- a/packages/builder/CHANGELOG.md +++ b/packages/builder/CHANGELOG.md @@ -1,3 +1,7 @@ +## 19.4.0 (2025-05-08) + +This was a version bump only for builder to align it with other projects, there were no code changes. + ## 19.3.0 (2025-03-22) This was a version bump only for builder to align it with other projects, there were no code changes. diff --git a/packages/builder/package.json b/packages/builder/package.json index 0e05f2014..93cf90b9c 100644 --- a/packages/builder/package.json +++ b/packages/builder/package.json @@ -1,6 +1,6 @@ { "name": "@angular-eslint/builder", - "version": "19.3.0", + "version": "19.4.0", "description": "Angular CLI builder for ESLint", "license": "MIT", "main": "dist/index.js", diff --git a/packages/bundled-angular-compiler/CHANGELOG.md b/packages/bundled-angular-compiler/CHANGELOG.md index 321251afd..fc51d5781 100644 --- a/packages/bundled-angular-compiler/CHANGELOG.md +++ b/packages/bundled-angular-compiler/CHANGELOG.md @@ -1,3 +1,7 @@ +## 19.4.0 (2025-05-08) + +This was a version bump only for bundled-angular-compiler to align it with other projects, there were no code changes. + ## 19.3.0 (2025-03-22) This was a version bump only for bundled-angular-compiler to align it with other projects, there were no code changes. diff --git a/packages/bundled-angular-compiler/package.json b/packages/bundled-angular-compiler/package.json index beaf359af..e851e2f9c 100644 --- a/packages/bundled-angular-compiler/package.json +++ b/packages/bundled-angular-compiler/package.json @@ -1,6 +1,6 @@ { "name": "@angular-eslint/bundled-angular-compiler", - "version": "19.3.0", + "version": "19.4.0", "description": "A CJS bundled version of @angular/compiler", "license": "MIT", "main": "dist/index.js", diff --git a/packages/eslint-plugin-template/CHANGELOG.md b/packages/eslint-plugin-template/CHANGELOG.md index 4f54c5668..c3adb7cd9 100644 --- a/packages/eslint-plugin-template/CHANGELOG.md +++ b/packages/eslint-plugin-template/CHANGELOG.md @@ -1,3 +1,23 @@ +## 19.4.0 (2025-05-08) + +### 🚀 Features + +- **eslint-plugin-template:** Add `prefer-template-literal` rule ([#2308](https://github.com/angular-eslint/angular-eslint/pull/2308)) +- **eslint-plugin-template:** [no-interpolation-in-attributes] add allowSubstringInterpolation option ([#2373](https://github.com/angular-eslint/angular-eslint/pull/2373)) + +### 🩹 Fixes + +- **eslint-plugin-template:** remove backticks from inline template with interpolation ([#2368](https://github.com/angular-eslint/angular-eslint/pull/2368)) +- **eslint-plugin-template:** correct column adjustment for inline template message locations ([#2358](https://github.com/angular-eslint/angular-eslint/pull/2358)) +- **eslint-plugin-template:** [no-any] handle key reads ([#1701](https://github.com/angular-eslint/angular-eslint/pull/1701), [#2335](https://github.com/angular-eslint/angular-eslint/pull/2335)) + +### ❤️ Thank You + +- daiscog @daiscog +- Dave @reduckted +- Evgeny Stepanovych @undsoft +- Guillaume DROUARD + ## 19.3.0 (2025-03-22) ### 🚀 Features diff --git a/packages/eslint-plugin-template/README.md b/packages/eslint-plugin-template/README.md index 8002ed741..f28cb7178 100644 --- a/packages/eslint-plugin-template/README.md +++ b/packages/eslint-plugin-template/README.md @@ -64,6 +64,7 @@ Please see https://github.com/angular-eslint/angular-eslint for full usage instr | [`prefer-contextual-for-variables`](https://github.com/angular-eslint/angular-eslint/blob/main/packages/eslint-plugin-template/docs/rules/prefer-contextual-for-variables.md) | Ensures that contextual variables are used in @for blocks where possible instead of aliasing them. | | :wrench: | | | | [`prefer-control-flow`](https://github.com/angular-eslint/angular-eslint/blob/main/packages/eslint-plugin-template/docs/rules/prefer-control-flow.md) | Ensures that the built-in control flow is used. | | | | | | [`prefer-ngsrc`](https://github.com/angular-eslint/angular-eslint/blob/main/packages/eslint-plugin-template/docs/rules/prefer-ngsrc.md) | Ensures ngSrc is used instead of src for img elements | | | | | +| [`prefer-template-literal`](https://github.com/angular-eslint/angular-eslint/blob/main/packages/eslint-plugin-template/docs/rules/prefer-template-literal.md) | Ensure that template literals are used instead of concatenating strings or expressions. | | :wrench: | | | | [`role-has-required-aria`](https://github.com/angular-eslint/angular-eslint/blob/main/packages/eslint-plugin-template/docs/rules/role-has-required-aria.md) | [Accessibility] Ensures elements with ARIA roles have all required properties for that role. | | | :bulb: | :accessibility: | | [`table-scope`](https://github.com/angular-eslint/angular-eslint/blob/main/packages/eslint-plugin-template/docs/rules/table-scope.md) | [Accessibility] Ensures that the `scope` attribute is only used on the `` element | | :wrench: | | :accessibility: | | [`use-track-by-function`](https://github.com/angular-eslint/angular-eslint/blob/main/packages/eslint-plugin-template/docs/rules/use-track-by-function.md) | Ensures trackBy function is used | | | | | diff --git a/packages/eslint-plugin-template/docs/rules/no-any.md b/packages/eslint-plugin-template/docs/rules/no-any.md index e8625c7f4..92d9b9822 100644 --- a/packages/eslint-plugin-template/docs/rules/no-any.md +++ b/packages/eslint-plugin-template/docs/rules/no-any.md @@ -137,6 +137,114 @@ The rule does not have any configuration options. #### ❌ Invalid Code +```html +
Content
+ ~~~~~~~~~~~~~~~~~~~ +``` + +
+ +--- + +
+ +#### Default Config + +```json +{ + "rules": { + "@angular-eslint/template/no-any": [ + "error" + ] + } +} +``` + +
+ +#### ❌ Invalid Code + +```html +
{{ $any(attributeList)['NPSScore'] }}
+ ~~~~~~~~~~~~~~~~~~~ +``` + +
+ +--- + +
+ +#### Default Config + +```json +{ + "rules": { + "@angular-eslint/template/no-any": [ + "error" + ] + } +} +``` + +
+ +#### ❌ Invalid Code + +```html +
{{ this.$any(attributeList)['NPSScore'] }}
+ ~~~~~~~~~~~~~~~~~~~~~~~~ +``` + +
+ +--- + +
+ +#### Default Config + +```json +{ + "rules": { + "@angular-eslint/template/no-any": [ + "error" + ] + } +} +``` + +
+ +#### ❌ Invalid Code + +```html +
{{ $any(attributeList)['NPSScore']['another'] }}
+ ~~~~~~~~~~~~~~~~~~~ +``` + +
+ +--- + +
+ +#### Default Config + +```json +{ + "rules": { + "@angular-eslint/template/no-any": [ + "error" + ] + } +} +``` + +
+ +#### ❌ Invalid Code + ```html {{ $any(framework).name }} ~~~~~~~~~~~~~~~ @@ -255,6 +363,162 @@ The rule does not have any configuration options. #### ✅ Valid Code +```html +{{ obj[read][$any] }} +``` + +
+ +--- + +
+ +#### Default Config + +```json +{ + "rules": { + "@angular-eslint/template/no-any": [ + "error" + ] + } +} +``` + +
+ +#### ✅ Valid Code + +```html +{{ $any['test'] }} +``` + +
+ +--- + +
+ +#### Default Config + +```json +{ + "rules": { + "@angular-eslint/template/no-any": [ + "error" + ] + } +} +``` + +
+ +#### ✅ Valid Code + +```html +{{ obj['test'].$any }} +``` + +
+ +--- + +
+ +#### Default Config + +```json +{ + "rules": { + "@angular-eslint/template/no-any": [ + "error" + ] + } +} +``` + +
+ +#### ✅ Valid Code + +```html +{{ obj['test'].$any() }} +``` + +
+ +--- + +
+ +#### Default Config + +```json +{ + "rules": { + "@angular-eslint/template/no-any": [ + "error" + ] + } +} +``` + +
+ +#### ✅ Valid Code + +```html +{{ obj.$any()['test'] }} +``` + +
+ +--- + +
+ +#### Default Config + +```json +{ + "rules": { + "@angular-eslint/template/no-any": [ + "error" + ] + } +} +``` + +
+ +#### ✅ Valid Code + +```html +{{ test()['value'] }} +``` + +
+ +--- + +
+ +#### Default Config + +```json +{ + "rules": { + "@angular-eslint/template/no-any": [ + "error" + ] + } +} +``` + +
+ +#### ✅ Valid Code + ```html Click here ``` diff --git a/packages/eslint-plugin-template/docs/rules/no-interpolation-in-attributes.md b/packages/eslint-plugin-template/docs/rules/no-interpolation-in-attributes.md index f63ac3471..22a3da70f 100644 --- a/packages/eslint-plugin-template/docs/rules/no-interpolation-in-attributes.md +++ b/packages/eslint-plugin-template/docs/rules/no-interpolation-in-attributes.md @@ -23,7 +23,26 @@ Ensures that property-binding is used instead of interpolation in attributes. ## Rule Options -The rule does not have any configuration options. +The rule accepts an options object with the following properties: + +````ts +interface Options { + /** + * When `true`, only attribute values that are entirely interpolations will fail, whereas values with interpolations that form part of larger strings will be allowed. + * + * For example, when set to `true` the following code will not fail for the `alt` attribute but will still fail for the `src` attribute: + * + * ```html + * Poke user {{ username }} + * ``` + * + * + * Default: `false` + */ + allowSubstringInterpolation?: boolean; +} + +````
@@ -86,6 +105,66 @@ The rule does not have any configuration options. ~~~~~~~~~~~~ ``` +
+ +--- + +
+ +#### Custom Config + +```json +{ + "rules": { + "@angular-eslint/template/no-interpolation-in-attributes": [ + "error", + { + "allowSubstringInterpolation": false + } + ] + } +} +``` + +
+ +#### ❌ Invalid Code + +```html + + ~~~~~~~~~~~~ +``` + +
+ +--- + +
+ +#### Custom Config + +```json +{ + "rules": { + "@angular-eslint/template/no-interpolation-in-attributes": [ + "error", + { + "allowSubstringInterpolation": true + } + ] + } +} +``` + +
+ +#### ❌ Invalid Code + +```html +{{username}} is online + ~~~~~~~ +``` +
@@ -223,6 +302,35 @@ The rule does not have any configuration options.
{{ content }}
``` +
+ +--- + +
+ +#### Custom Config + +```json +{ + "rules": { + "@angular-eslint/template/no-interpolation-in-attributes": [ + "error", + { + "allowSubstringInterpolation": true + } + ] + } +} +``` + +
+ +#### ✅ Valid Code + +```html +{{username}} is online +``` +
diff --git a/packages/eslint-plugin-template/docs/rules/prefer-template-literal.md b/packages/eslint-plugin-template/docs/rules/prefer-template-literal.md new file mode 100644 index 000000000..c8f23457f --- /dev/null +++ b/packages/eslint-plugin-template/docs/rules/prefer-template-literal.md @@ -0,0 +1,1894 @@ + + +
+ +# `@angular-eslint/template/prefer-template-literal` + +Ensure that template literals are used instead of concatenating strings or expressions. + +- Type: suggestion +- 🔧 Supports autofix (`--fix`) + +
+ +## Rule Options + +The rule does not have any configuration options. + +
+ +## Usage Examples + +> The following examples are generated automatically from the actual unit tests within the plugin, so you can be assured that their behavior is accurate based on the current commit. + +
+ +
+❌ - Toggle examples of incorrect code for this rule + +
+ +#### Default Config + +```json +{ + "rules": { + "@angular-eslint/template/prefer-template-literal": [ + "error" + ] + } +} +``` + +
+ +#### ❌ Invalid Code + +```html +{{ 'pre"fix-' + '-suf\'fix' }} + ~~~~~~~~~~~~~~~~~~~~~~~~ +``` + +
+ +--- + +
+ +#### Default Config + +```json +{ + "rules": { + "@angular-eslint/template/prefer-template-literal": [ + "error" + ] + } +} +``` + +
+ +#### ❌ Invalid Code + +```html +{{ "pre'fix-" + "-suf\"fix" }} + ~~~~~~~~~~~~~~~~~~~~~~~~ +``` + +
+ +--- + +
+ +#### Default Config + +```json +{ + "rules": { + "@angular-eslint/template/prefer-template-literal": [ + "error" + ] + } +} +``` + +
+ +#### ❌ Invalid Code + +```html +{{ `prefix-${value}-suffix` + `-prefix2-${value2}-suffix2` }} + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +``` + +
+ +--- + +
+ +#### Default Config + +```json +{ + "rules": { + "@angular-eslint/template/prefer-template-literal": [ + "error" + ] + } +} +``` + +
+ +#### ❌ Invalid Code + +```html +{{ 'pre"fix-' + "-suf'fix" }} + ~~~~~~~~~~~~~~~~~~~~~~~ +``` + +
+ +--- + +
+ +#### Default Config + +```json +{ + "rules": { + "@angular-eslint/template/prefer-template-literal": [ + "error" + ] + } +} +``` + +
+ +#### ❌ Invalid Code + +```html +{{ 'pre`fix-' + `'pre\`fix"-${value}-"suf\`fix'` }} + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +``` + +
+ +--- + +
+ +#### Default Config + +```json +{ + "rules": { + "@angular-eslint/template/prefer-template-literal": [ + "error" + ] + } +} +``` + +
+ +#### ❌ Invalid Code + +```html +{{ "pre'fix-" + '-suf"fix' }} + ~~~~~~~~~~~~~~~~~~~~~~~ +``` + +
+ +--- + +
+ +#### Default Config + +```json +{ + "rules": { + "@angular-eslint/template/prefer-template-literal": [ + "error" + ] + } +} +``` + +
+ +#### ❌ Invalid Code + +```html +{{ "pre`fix-" + `'pre\`fix"-${value}-"suf\`fix'` }} + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +``` + +
+ +--- + +
+ +#### Default Config + +```json +{ + "rules": { + "@angular-eslint/template/prefer-template-literal": [ + "error" + ] + } +} +``` + +
+ +#### ❌ Invalid Code + +```html + + ~~~~~~~~~~~~~~~~~~~ +``` + +
+ +--- + +
+ +#### Default Config + +```json +{ + "rules": { + "@angular-eslint/template/prefer-template-literal": [ + "error" + ] + } +} +``` + +
+ +#### ❌ Invalid Code + +```html +@if (value() + "-suffix" | pipe) {} + ~~~~~~~~~~~~~~~~~~~ +``` + +
+ +--- + +
+ +#### Default Config + +```json +{ + "rules": { + "@angular-eslint/template/prefer-template-literal": [ + "error" + ] + } +} +``` + +
+ +#### ❌ Invalid Code + +```html +@defer (when value() + '-suffix' | pipe) {} + ~~~~~~~~~~~~~~~~~~~ +``` + +
+ +--- + +
+ +#### Default Config + +```json +{ + "rules": { + "@angular-eslint/template/prefer-template-literal": [ + "error" + ] + } +} +``` + +
+ +#### ❌ Invalid Code + +```html +@let letValue = value() + '-suffix'; + ~~~~~~~~~~~~~~~~~~~ +``` + +
+ +--- + +
+ +#### Default Config + +```json +{ + "rules": { + "@angular-eslint/template/prefer-template-literal": [ + "error" + ] + } +} +``` + +
+ +#### ❌ Invalid Code + +```html +{{ 'prefix-' + 42 }} + ~~~~~~~~~~~~~~ +``` + +
+ +--- + +
+ +#### Default Config + +```json +{ + "rules": { + "@angular-eslint/template/prefer-template-literal": [ + "error" + ] + } +} +``` + +
+ +#### ❌ Invalid Code + +```html +{{ 'prefix-' + null }} + ~~~~~~~~~~~~~~~~ +``` + +
+ +--- + +
+ +#### Default Config + +```json +{ + "rules": { + "@angular-eslint/template/prefer-template-literal": [ + "error" + ] + } +} +``` + +
+ +#### ❌ Invalid Code + +```html +{{ 'prefix-' + undefined }} + ~~~~~~~~~~~~~~~~~~~~~ +``` + +
+ +--- + +
+ +#### Default Config + +```json +{ + "rules": { + "@angular-eslint/template/prefer-template-literal": [ + "error" + ] + } +} +``` + +
+ +#### ❌ Invalid Code + +```html +{{ 'prefix-' + true }} + ~~~~~~~~~~~~~~~~ +``` + +
+ +--- + +
+ +#### Default Config + +```json +{ + "rules": { + "@angular-eslint/template/prefer-template-literal": [ + "error" + ] + } +} +``` + +
+ +#### ❌ Invalid Code + +```html +{{ 'prefix-' + value }} + ~~~~~~~~~~~~~~~~~ +``` + +
+ +--- + +
+ +#### Default Config + +```json +{ + "rules": { + "@angular-eslint/template/prefer-template-literal": [ + "error" + ] + } +} +``` + +
+ +#### ❌ Invalid Code + +```html +{{ 'prefix-' + value() }} + ~~~~~~~~~~~~~~~~~~~ +``` + +
+ +--- + +
+ +#### Default Config + +```json +{ + "rules": { + "@angular-eslint/template/prefer-template-literal": [ + "error" + ] + } +} +``` + +
+ +#### ❌ Invalid Code + +```html +{{ 'prefix-' + [42] }} + ~~~~~~~~~~~~~~~~ +``` + +
+ +--- + +
+ +#### Default Config + +```json +{ + "rules": { + "@angular-eslint/template/prefer-template-literal": [ + "error" + ] + } +} +``` + +
+ +#### ❌ Invalid Code + +```html +{{ "prefix-" + 42 }} + ~~~~~~~~~~~~~~ +``` + +
+ +--- + +
+ +#### Default Config + +```json +{ + "rules": { + "@angular-eslint/template/prefer-template-literal": [ + "error" + ] + } +} +``` + +
+ +#### ❌ Invalid Code + +```html +{{ "prefix-" + null }} + ~~~~~~~~~~~~~~~~ +``` + +
+ +--- + +
+ +#### Default Config + +```json +{ + "rules": { + "@angular-eslint/template/prefer-template-literal": [ + "error" + ] + } +} +``` + +
+ +#### ❌ Invalid Code + +```html +{{ "prefix-" + undefined }} + ~~~~~~~~~~~~~~~~~~~~~ +``` + +
+ +--- + +
+ +#### Default Config + +```json +{ + "rules": { + "@angular-eslint/template/prefer-template-literal": [ + "error" + ] + } +} +``` + +
+ +#### ❌ Invalid Code + +```html +{{ "prefix-" + true }} + ~~~~~~~~~~~~~~~~ +``` + +
+ +--- + +
+ +#### Default Config + +```json +{ + "rules": { + "@angular-eslint/template/prefer-template-literal": [ + "error" + ] + } +} +``` + +
+ +#### ❌ Invalid Code + +```html +{{ "prefix-" + value }} + ~~~~~~~~~~~~~~~~~ +``` + +
+ +--- + +
+ +#### Default Config + +```json +{ + "rules": { + "@angular-eslint/template/prefer-template-literal": [ + "error" + ] + } +} +``` + +
+ +#### ❌ Invalid Code + +```html +{{ "prefix-" + value() }} + ~~~~~~~~~~~~~~~~~~~ +``` + +
+ +--- + +
+ +#### Default Config + +```json +{ + "rules": { + "@angular-eslint/template/prefer-template-literal": [ + "error" + ] + } +} +``` + +
+ +#### ❌ Invalid Code + +```html +{{ "prefix-" + [42] }} + ~~~~~~~~~~~~~~~~ +``` + +
+ +--- + +
+ +#### Default Config + +```json +{ + "rules": { + "@angular-eslint/template/prefer-template-literal": [ + "error" + ] + } +} +``` + +
+ +#### ❌ Invalid Code + +```html +{{ `prefix-${value}-suffix` + 42 }} + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +``` + +
+ +--- + +
+ +#### Default Config + +```json +{ + "rules": { + "@angular-eslint/template/prefer-template-literal": [ + "error" + ] + } +} +``` + +
+ +#### ❌ Invalid Code + +```html +{{ `prefix-${value}-suffix` + null }} + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +``` + +
+ +--- + +
+ +#### Default Config + +```json +{ + "rules": { + "@angular-eslint/template/prefer-template-literal": [ + "error" + ] + } +} +``` + +
+ +#### ❌ Invalid Code + +```html +{{ `prefix-${value}-suffix` + undefined }} + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +``` + +
+ +--- + +
+ +#### Default Config + +```json +{ + "rules": { + "@angular-eslint/template/prefer-template-literal": [ + "error" + ] + } +} +``` + +
+ +#### ❌ Invalid Code + +```html +{{ `prefix-${value}-suffix` + false }} + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +``` + +
+ +--- + +
+ +#### Default Config + +```json +{ + "rules": { + "@angular-eslint/template/prefer-template-literal": [ + "error" + ] + } +} +``` + +
+ +#### ❌ Invalid Code + +```html +{{ `prefix-${value}-suffix` + value2 }} + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +``` + +
+ +--- + +
+ +#### Default Config + +```json +{ + "rules": { + "@angular-eslint/template/prefer-template-literal": [ + "error" + ] + } +} +``` + +
+ +#### ❌ Invalid Code + +```html +{{ `prefix-${value}-suffix` + value2() }} + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +``` + +
+ +--- + +
+ +#### Default Config + +```json +{ + "rules": { + "@angular-eslint/template/prefer-template-literal": [ + "error" + ] + } +} +``` + +
+ +#### ❌ Invalid Code + +```html +{{ `prefix-${value}-suffix` + [42] }} + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +``` + +
+ +--- + +
+ +#### Default Config + +```json +{ + "rules": { + "@angular-eslint/template/prefer-template-literal": [ + "error" + ] + } +} +``` + +
+ +#### ❌ Invalid Code + +```html +{{ 42 + '-suffix' }} + ~~~~~~~~~~~~~~ +``` + +
+ +--- + +
+ +#### Default Config + +```json +{ + "rules": { + "@angular-eslint/template/prefer-template-literal": [ + "error" + ] + } +} +``` + +
+ +#### ❌ Invalid Code + +```html +{{ null + '-suffix' }} + ~~~~~~~~~~~~~~~~ +``` + +
+ +--- + +
+ +#### Default Config + +```json +{ + "rules": { + "@angular-eslint/template/prefer-template-literal": [ + "error" + ] + } +} +``` + +
+ +#### ❌ Invalid Code + +```html +{{ undefined + '-suffix' }} + ~~~~~~~~~~~~~~~~~~~~~ +``` + +
+ +--- + +
+ +#### Default Config + +```json +{ + "rules": { + "@angular-eslint/template/prefer-template-literal": [ + "error" + ] + } +} +``` + +
+ +#### ❌ Invalid Code + +```html +{{ true + '-suffix' }} + ~~~~~~~~~~~~~~~~ +``` + +
+ +--- + +
+ +#### Default Config + +```json +{ + "rules": { + "@angular-eslint/template/prefer-template-literal": [ + "error" + ] + } +} +``` + +
+ +#### ❌ Invalid Code + +```html +{{ value + '-suffix' }} + ~~~~~~~~~~~~~~~~~ +``` + +
+ +--- + +
+ +#### Default Config + +```json +{ + "rules": { + "@angular-eslint/template/prefer-template-literal": [ + "error" + ] + } +} +``` + +
+ +#### ❌ Invalid Code + +```html +{{ value() + '-suffix' }} + ~~~~~~~~~~~~~~~~~~~ +``` + +
+ +--- + +
+ +#### Default Config + +```json +{ + "rules": { + "@angular-eslint/template/prefer-template-literal": [ + "error" + ] + } +} +``` + +
+ +#### ❌ Invalid Code + +```html +{{ [42] + '-suffix' }} + ~~~~~~~~~~~~~~~~ +``` + +
+ +--- + +
+ +#### Default Config + +```json +{ + "rules": { + "@angular-eslint/template/prefer-template-literal": [ + "error" + ] + } +} +``` + +
+ +#### ❌ Invalid Code + +```html +{{ `'pre\`fix"-${value}-"suf\`fix'` + '-suf`fix' }} + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +``` + +
+ +--- + +
+ +#### Default Config + +```json +{ + "rules": { + "@angular-eslint/template/prefer-template-literal": [ + "error" + ] + } +} +``` + +
+ +#### ❌ Invalid Code + +```html +{{ 42 + "-suffix" }} + ~~~~~~~~~~~~~~ +``` + +
+ +--- + +
+ +#### Default Config + +```json +{ + "rules": { + "@angular-eslint/template/prefer-template-literal": [ + "error" + ] + } +} +``` + +
+ +#### ❌ Invalid Code + +```html +{{ null + "-suffix" }} + ~~~~~~~~~~~~~~~~ +``` + +
+ +--- + +
+ +#### Default Config + +```json +{ + "rules": { + "@angular-eslint/template/prefer-template-literal": [ + "error" + ] + } +} +``` + +
+ +#### ❌ Invalid Code + +```html +{{ undefined + "-suffix" }} + ~~~~~~~~~~~~~~~~~~~~~ +``` + +
+ +--- + +
+ +#### Default Config + +```json +{ + "rules": { + "@angular-eslint/template/prefer-template-literal": [ + "error" + ] + } +} +``` + +
+ +#### ❌ Invalid Code + +```html +{{ true + "-suffix" }} + ~~~~~~~~~~~~~~~~ +``` + +
+ +--- + +
+ +#### Default Config + +```json +{ + "rules": { + "@angular-eslint/template/prefer-template-literal": [ + "error" + ] + } +} +``` + +
+ +#### ❌ Invalid Code + +```html +{{ value + "-suffix" }} + ~~~~~~~~~~~~~~~~~ +``` + +
+ +--- + +
+ +#### Default Config + +```json +{ + "rules": { + "@angular-eslint/template/prefer-template-literal": [ + "error" + ] + } +} +``` + +
+ +#### ❌ Invalid Code + +```html +{{ value() + "-suffix" }} + ~~~~~~~~~~~~~~~~~~~ +``` + +
+ +--- + +
+ +#### Default Config + +```json +{ + "rules": { + "@angular-eslint/template/prefer-template-literal": [ + "error" + ] + } +} +``` + +
+ +#### ❌ Invalid Code + +```html +{{ [42] + "-suffix" }} + ~~~~~~~~~~~~~~~~ +``` + +
+ +--- + +
+ +#### Default Config + +```json +{ + "rules": { + "@angular-eslint/template/prefer-template-literal": [ + "error" + ] + } +} +``` + +
+ +#### ❌ Invalid Code + +```html +{{ `'pre\`fix"-${value}-"suf\`fix'` + "-suf`fix" }} + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +``` + +
+ +--- + +
+ +#### Default Config + +```json +{ + "rules": { + "@angular-eslint/template/prefer-template-literal": [ + "error" + ] + } +} +``` + +
+ +#### ❌ Invalid Code + +```html +{{ 42 + `prefix-${value}-suffix` }} + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +``` + +
+ +--- + +
+ +#### Default Config + +```json +{ + "rules": { + "@angular-eslint/template/prefer-template-literal": [ + "error" + ] + } +} +``` + +
+ +#### ❌ Invalid Code + +```html +{{ null + `prefix-${value}-suffix` }} + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +``` + +
+ +--- + +
+ +#### Default Config + +```json +{ + "rules": { + "@angular-eslint/template/prefer-template-literal": [ + "error" + ] + } +} +``` + +
+ +#### ❌ Invalid Code + +```html +{{ undefined + `prefix-${value}-suffix` }} + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +``` + +
+ +--- + +
+ +#### Default Config + +```json +{ + "rules": { + "@angular-eslint/template/prefer-template-literal": [ + "error" + ] + } +} +``` + +
+ +#### ❌ Invalid Code + +```html +{{ false + `prefix-${value}-suffix` }} + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +``` + +
+ +--- + +
+ +#### Default Config + +```json +{ + "rules": { + "@angular-eslint/template/prefer-template-literal": [ + "error" + ] + } +} +``` + +
+ +#### ❌ Invalid Code + +```html +{{ value2 + `prefix-${value}-suffix` }} + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +``` + +
+ +--- + +
+ +#### Default Config + +```json +{ + "rules": { + "@angular-eslint/template/prefer-template-literal": [ + "error" + ] + } +} +``` + +
+ +#### ❌ Invalid Code + +```html +{{ value2() + `prefix-${value}-suffix` }} + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +``` + +
+ +--- + +
+ +#### Default Config + +```json +{ + "rules": { + "@angular-eslint/template/prefer-template-literal": [ + "error" + ] + } +} +``` + +
+ +#### ❌ Invalid Code + +```html +{{ [42] + `prefix-${value}-suffix` }} + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +``` + +
+ +
+ +--- + +
+ +
+✅ - Toggle examples of correct code for this rule + +
+ +#### Default Config + +```json +{ + "rules": { + "@angular-eslint/template/prefer-template-literal": [ + "error" + ] + } +} +``` + +
+ +#### ✅ Valid Code + +```html +{{ `prefix-${value}-suffix` }} +``` + +
+ +--- + +
+ +#### Default Config + +```json +{ + "rules": { + "@angular-eslint/template/prefer-template-literal": [ + "error" + ] + } +} +``` + +
+ +#### ✅ Valid Code + +```html +{{ 42 + 42 }} +``` + +
+ +--- + +
+ +#### Default Config + +```json +{ + "rules": { + "@angular-eslint/template/prefer-template-literal": [ + "error" + ] + } +} +``` + +
+ +#### ✅ Valid Code + +```html +{{ value + value2 }} +``` + +
+ +--- + +
+ +#### Default Config + +```json +{ + "rules": { + "@angular-eslint/template/prefer-template-literal": [ + "error" + ] + } +} +``` + +
+ +#### ✅ Valid Code + +```html +{{ value() + value2() }} +``` + +
+ +--- + +
+ +#### Default Config + +```json +{ + "rules": { + "@angular-eslint/template/prefer-template-literal": [ + "error" + ] + } +} +``` + +
+ +#### ✅ Valid Code + +```html +{{ 'simple-quote' | pipe }} +``` + +
+ +--- + +
+ +#### Default Config + +```json +{ + "rules": { + "@angular-eslint/template/prefer-template-literal": [ + "error" + ] + } +} +``` + +
+ +#### ✅ Valid Code + +```html +{{ "double-quote" }}" +``` + +
+ +--- + +
+ +#### Default Config + +```json +{ + "rules": { + "@angular-eslint/template/prefer-template-literal": [ + "error" + ] + } +} +``` + +
+ +#### ✅ Valid Code + +```html +{{ `backquote` }} +``` + +
+ +--- + +
+ +#### Default Config + +```json +{ + "rules": { + "@angular-eslint/template/prefer-template-literal": [ + "error" + ] + } +} +``` + +
+ +#### ✅ Valid Code + +```html +@if (`prefix-${value}-suffix`) {} +``` + +
+ +--- + +
+ +#### Default Config + +```json +{ + "rules": { + "@angular-eslint/template/prefer-template-literal": [ + "error" + ] + } +} +``` + +
+ +#### ✅ Valid Code + +```html +@defer (when `prefix-${value}-suffix`) {} +``` + +
+ +--- + +
+ +#### Default Config + +```json +{ + "rules": { + "@angular-eslint/template/prefer-template-literal": [ + "error" + ] + } +} +``` + +
+ +#### ✅ Valid Code + +```html +@let letValue = `prefix-${value}-suffix` +``` + +
+ +--- + +
+ +#### Default Config + +```json +{ + "rules": { + "@angular-eslint/template/prefer-template-literal": [ + "error" + ] + } +} +``` + +
+ +#### ✅ Valid Code + +```html +

{{ `prefix-${value}-suffix` }}

+``` + +
+ +--- + +
+ +#### Default Config + +```json +{ + "rules": { + "@angular-eslint/template/prefer-template-literal": [ + "error" + ] + } +} +``` + +
+ +#### ✅ Valid Code + +```html + +``` + +
+ +--- + +
+ +#### Default Config + +```json +{ + "rules": { + "@angular-eslint/template/prefer-template-literal": [ + "error" + ] + } +} +``` + +
+ +#### ✅ Valid Code + +```html + +``` + +
+ +--- + +
+ +#### Default Config + +```json +{ + "rules": { + "@angular-eslint/template/prefer-template-literal": [ + "error" + ] + } +} +``` + +
+ +#### ✅ Valid Code + +```html + +``` + +
+ +
diff --git a/packages/eslint-plugin-template/package.json b/packages/eslint-plugin-template/package.json index c64fcc813..683ff1c6b 100644 --- a/packages/eslint-plugin-template/package.json +++ b/packages/eslint-plugin-template/package.json @@ -1,6 +1,6 @@ { "name": "@angular-eslint/eslint-plugin-template", - "version": "19.3.0", + "version": "19.4.0", "description": "ESLint plugin for Angular Templates", "license": "MIT", "main": "dist/index.js", diff --git a/packages/eslint-plugin-template/src/configs/all.json b/packages/eslint-plugin-template/src/configs/all.json index ef987c2aa..5fcd30d67 100644 --- a/packages/eslint-plugin-template/src/configs/all.json +++ b/packages/eslint-plugin-template/src/configs/all.json @@ -29,6 +29,7 @@ "@angular-eslint/template/prefer-ngsrc": "error", "@angular-eslint/template/prefer-self-closing-tags": "error", "@angular-eslint/template/prefer-static-string-properties": "error", + "@angular-eslint/template/prefer-template-literal": "error", "@angular-eslint/template/role-has-required-aria": "error", "@angular-eslint/template/table-scope": "error", "@angular-eslint/template/use-track-by-function": "error", diff --git a/packages/eslint-plugin-template/src/index.ts b/packages/eslint-plugin-template/src/index.ts index cb2b1ce72..45db70eb0 100644 --- a/packages/eslint-plugin-template/src/index.ts +++ b/packages/eslint-plugin-template/src/index.ts @@ -76,6 +76,9 @@ import preferSelfClosingTags, { import preferStaticStringProperties, { RULE_NAME as preferStaticStringPropertiesRuleName, } from './rules/prefer-static-string-properties'; +import preferTemplateLiteral, { + RULE_NAME as preferTemplateLiteralRuleName, +} from './rules/prefer-template-literal'; import roleHasRequiredAria, { RULE_NAME as roleHasRequiredAriaRuleName, } from './rules/role-has-required-aria'; @@ -123,6 +126,7 @@ export = { [preferSelfClosingTagsRuleName]: preferSelfClosingTags, [preferStaticStringPropertiesRuleName]: preferStaticStringProperties, [preferNgsrcRuleName]: preferNgsrc, + [preferTemplateLiteralRuleName]: preferTemplateLiteral, [roleHasRequiredAriaRuleName]: roleHasRequiredAria, [tableScopeRuleName]: tableScope, [useTrackByFunctionRuleName]: useTrackByFunction, diff --git a/packages/eslint-plugin-template/src/processors.ts b/packages/eslint-plugin-template/src/processors.ts index d64a5ba68..2bd73c67d 100644 --- a/packages/eslint-plugin-template/src/processors.ts +++ b/packages/eslint-plugin-template/src/processors.ts @@ -144,7 +144,9 @@ export function preprocessComponentFile( } if (ts.isTemplateExpression(templatePropertyInitializer)) { - templateText = templatePropertyInitializer.getText(); + // The text includes the opening and closing + // backtick, so trim the first and last characters. + templateText = templatePropertyInitializer.getText().slice(1, -1); } if (ts.isStringLiteral(templatePropertyInitializer)) { @@ -302,12 +304,28 @@ export function postprocessComponentFile( } return messagesFromInlineTemplateHTML.map((message) => { - message.line = message.line + rangeData.lineAndCharacter.start.line; + // The first line of the inline template starts at the column after + // the opening quote in the TypeScript file, so we need to adjust + // the message's column by that amount when the message starts on + // the first line. The character we recorded was the quote's column, + // so add one to get the column where the actual string starts. + if (message.line === 1) { + message.column += rangeData.lineAndCharacter.start.character + 1; + } + + // The same thing applies to the end column + // if it also ends on the first line. + if (message.endLine === 1) { + message.endColumn += rangeData.lineAndCharacter.start.character + 1; + } - message.endLine = - message.endLine + rangeData.lineAndCharacter.start.line; + message.line += rangeData.lineAndCharacter.start.line; + message.endLine += rangeData.lineAndCharacter.start.line; if (message.fix) { + // The range defines the range of the value that initializes + // the `template` property, which includes the opening and + // closing quotes. Add one to move past the opening quote. const startOffset = rangeData.range[0] + 1; message.fix.range = [ startOffset + message.fix.range[0], diff --git a/packages/eslint-plugin-template/src/rules/eqeqeq.ts b/packages/eslint-plugin-template/src/rules/eqeqeq.ts index 60779fcc1..060b8ed2d 100644 --- a/packages/eslint-plugin-template/src/rules/eqeqeq.ts +++ b/packages/eslint-plugin-template/src/rules/eqeqeq.ts @@ -8,6 +8,10 @@ import { ensureTemplateParser } from '@angular-eslint/utils'; import type { TSESLint } from '@typescript-eslint/utils'; import { createESLintRule } from '../utils/create-eslint-rule'; import { getNearestNodeFrom } from '../utils/get-nearest-node-from'; +import { + isLiteralPrimitive, + isStringLiteralPrimitive, +} from '../utils/literal-primitive'; export type Options = [{ readonly allowNullOrUndefined?: boolean }]; export type MessageIds = 'eqeqeq' | 'suggestStrictEquality'; @@ -142,10 +146,6 @@ function isASTWithSource(node: unknown): node is ASTWithSource { return node instanceof ASTWithSource; } -function isLiteralPrimitive(node: unknown): node is LiteralPrimitive { - return node instanceof LiteralPrimitive; -} - function isInterpolation(node: unknown): node is Interpolation { return node instanceof Interpolation; } @@ -157,16 +157,10 @@ function isNumeric(value: unknown): value is number | string { ); } -function isString(value: unknown): value is string { - return typeof value === 'string'; -} - function isStringNonNumericValue( ast: AST, ): ast is LiteralPrimitive & { value: string } { - return ( - isLiteralPrimitive(ast) && isString(ast.value) && !isNumeric(ast.value) - ); + return isStringLiteralPrimitive(ast) && !isNumeric(ast.value); } function isNilValue( diff --git a/packages/eslint-plugin-template/src/rules/no-any.ts b/packages/eslint-plugin-template/src/rules/no-any.ts index 486068da3..288c1ac8b 100644 --- a/packages/eslint-plugin-template/src/rules/no-any.ts +++ b/packages/eslint-plugin-template/src/rules/no-any.ts @@ -1,8 +1,10 @@ -import type { Call } from '@angular-eslint/bundled-angular-compiler'; import { ImplicitReceiver, PropertyRead, ThisReceiver, + KeyedRead, + Call, + AST, } from '@angular-eslint/bundled-angular-compiler'; import { ensureTemplateParser } from '@angular-eslint/utils'; import { createESLintRule } from '../utils/create-eslint-rule'; @@ -31,42 +33,74 @@ export default createESLintRule({ ensureTemplateParser(context); const sourceCode = context.sourceCode; - return { - [`Call[receiver.name="${ANY_TYPE_CAST_FUNCTION_NAME}"]`]({ - receiver, - sourceSpan: { end, start }, - }: Call) { - if (!(receiver instanceof PropertyRead)) { - return; - } - if ( - !( - // this.$any() is also valid usage of the native Angular $any() - ( - receiver.receiver instanceof ThisReceiver || - receiver.receiver instanceof ImplicitReceiver - ) + const isAnyCall = (node: Call): boolean => { + if (!(node.receiver instanceof PropertyRead)) { + return false; + } + + if (node.receiver.name !== ANY_TYPE_CAST_FUNCTION_NAME) { + return false; + } + + if ( + !( + // this.$any() is also valid usage of the native Angular $any() + ( + node.receiver.receiver instanceof ThisReceiver || + node.receiver.receiver instanceof ImplicitReceiver ) - ) { + ) + ) { + return false; + } + + return true; + }; + + const reportAnyCall = (node: Call): void => { + const { start, end } = node.sourceSpan; + const nameSpan = (node.receiver as PropertyRead).nameSpan; + + context.report({ + messageId: 'noAny', + loc: { + start: sourceCode.getLocFromIndex(start), + end: sourceCode.getLocFromIndex(end), + }, + suggest: [ + { + messageId: 'suggestRemoveAny', + fix: (fixer) => [ + fixer.removeRange([nameSpan.start, nameSpan.end + 1]), + fixer.removeRange([end - 1, end]), + ], + }, + ], + }); + }; + + /** + * Handles KeyedRead.KeyedRead cases like + * $any(attributeList)['NPSScore']['another'] + */ + const findAndReportAnyCalls = (node: AST): void => { + if (node instanceof Call && isAnyCall(node)) { + reportAnyCall(node); + } else if (node instanceof KeyedRead) { + findAndReportAnyCalls(node.receiver); + } + }; + + return { + [`Call[receiver.name="${ANY_TYPE_CAST_FUNCTION_NAME}"]`](node: Call) { + if (!isAnyCall(node)) { return; } - const nameSpan = receiver.nameSpan; - context.report({ - messageId: 'noAny', - loc: { - start: sourceCode.getLocFromIndex(start), - end: sourceCode.getLocFromIndex(end), - }, - suggest: [ - { - messageId: 'suggestRemoveAny', - fix: (fixer) => [ - fixer.removeRange([nameSpan.start, nameSpan.end + 1]), - fixer.removeRange([end - 1, end]), - ], - }, - ], - }); + + reportAnyCall(node); + }, + KeyedRead(node: KeyedRead) { + findAndReportAnyCalls(node); }, }; }, diff --git a/packages/eslint-plugin-template/src/rules/no-interpolation-in-attributes.ts b/packages/eslint-plugin-template/src/rules/no-interpolation-in-attributes.ts index e37256323..4315de334 100644 --- a/packages/eslint-plugin-template/src/rules/no-interpolation-in-attributes.ts +++ b/packages/eslint-plugin-template/src/rules/no-interpolation-in-attributes.ts @@ -1,10 +1,20 @@ import type { Interpolation } from '@angular-eslint/bundled-angular-compiler'; import { createESLintRule } from '../utils/create-eslint-rule'; -export type Options = []; +export type Options = [{ allowSubstringInterpolation: boolean }]; export type MessageIds = 'noInterpolationInAttributes'; export const RULE_NAME = 'no-interpolation-in-attributes'; +const allowSubstringInterpolationDescription = `\ +When \`true\`, only attribute values that are entirely interpolations will fail, whereas values with interpolations that form part of larger strings will be allowed. + +For example, when set to \`true\` the following code will not fail for the \`alt\` attribute but will still fail for the \`src\` attribute: + +\`\`\`html +Poke user {{ username }} +\`\`\` +`; + export default createESLintRule({ name: RULE_NAME, meta: { @@ -13,18 +23,35 @@ export default createESLintRule({ description: 'Ensures that property-binding is used instead of interpolation in attributes.', }, - schema: [], + schema: [ + { + type: 'object', + properties: { + allowSubstringInterpolation: { + type: 'boolean', + description: allowSubstringInterpolationDescription, + }, + }, + additionalProperties: false, + }, + ], messages: { noInterpolationInAttributes: 'Use property binding [attribute]="value" instead of interpolation {{ value }} for an attribute.', }, }, - defaultOptions: [], - create(context) { + defaultOptions: [{ allowSubstringInterpolation: false }], + create(context, [{ allowSubstringInterpolation }]) { const sourceCode = context.sourceCode; return { ['BoundAttribute Interpolation'](interpolation: Interpolation) { + if ( + allowSubstringInterpolation && + interpolation.strings.some((str) => str !== '') + ) { + return; + } const { sourceSpan: { start, end }, } = interpolation; diff --git a/packages/eslint-plugin-template/src/rules/prefer-template-literal.ts b/packages/eslint-plugin-template/src/rules/prefer-template-literal.ts new file mode 100644 index 000000000..22a896453 --- /dev/null +++ b/packages/eslint-plugin-template/src/rules/prefer-template-literal.ts @@ -0,0 +1,156 @@ +import { + AST, + LiteralPrimitive, + TemplateLiteral, + type Binary, +} from '@angular-eslint/bundled-angular-compiler'; +import { ensureTemplateParser } from '@angular-eslint/utils'; +import { createESLintRule } from '../utils/create-eslint-rule'; +import { + getLiteralPrimitiveStringValue, + isLiteralPrimitive, + isStringLiteralPrimitive, +} from '../utils/literal-primitive'; +import { RuleFix, RuleFixer } from '@typescript-eslint/utils/ts-eslint'; + +const messageId = 'preferTemplateLiteral'; + +export type Options = []; +export type MessageIds = typeof messageId; +export const RULE_NAME = 'prefer-template-literal'; + +export default createESLintRule({ + name: RULE_NAME, + meta: { + type: 'suggestion', + docs: { + description: + 'Ensure that template literals are used instead of concatenating strings or expressions.', + }, + fixable: 'code', + schema: [], + messages: { + preferTemplateLiteral: + 'Prefer using template literal instead of concatenating strings or expressions', + }, + }, + defaultOptions: [], + create(context) { + ensureTemplateParser(context); + const { sourceCode } = context; + + return { + 'Binary[operation="+"]'(node: Binary) { + const { left, right } = node; + + const isLeftString = + isStringLiteralPrimitive(left) || left instanceof TemplateLiteral; + const isRightString = + isStringLiteralPrimitive(right) || right instanceof TemplateLiteral; + + // If both sides are not strings, we don't report anything + if (!isLeftString && !isRightString) { + return; + } + + const { + sourceSpan: { start, end }, + } = node; + + function getQuote(): '"' | "'" | '`' { + const leftValue = sourceCode.text.at(left.sourceSpan.start); + if (leftValue === "'" || leftValue === '"') { + return leftValue; + } + const rightValue = sourceCode.text.at(right.sourceSpan.start); + if (rightValue === "'" || rightValue === '"') { + return rightValue; + } + return '`'; + } + + context.report({ + loc: { + start: sourceCode.getLocFromIndex(start), + end: sourceCode.getLocFromIndex(end), + }, + messageId, + fix: (fixer) => { + // If both sides are literals, we remove the `+` sign, escape if necessary and concatenate them + if ( + left instanceof LiteralPrimitive && + right instanceof LiteralPrimitive + ) { + const quote = getQuote(); + return fixer.replaceTextRange( + [start, end], + `${quote}${getLiteralPrimitiveStringValue(left, quote)}${getLiteralPrimitiveStringValue(right, quote)}${quote}`, + ); + } + + const fixes = new Array(); + + // Fix the left side + fixes.push(...getLeftSideFixes(fixer, left)); + + // Remove the `+` sign + fixes.push( + fixer.removeRange([left.sourceSpan.end, right.sourceSpan.start]), + ); + + // Fix the right side + fixes.push(...getRightSideFixes(fixer, right)); + + return fixes; + }, + }); + }, + }; + }, +}); + +function getLeftSideFixes(fixer: RuleFixer, left: AST): readonly RuleFix[] { + const { start, end } = left.sourceSpan; + + if (left instanceof TemplateLiteral) { + // Remove the end ` sign from the left side + return [fixer.removeRange([end - 1, end])]; + } else if (isLiteralPrimitive(left)) { + // Transform left side to template literal + return [ + fixer.replaceTextRange( + [start, end], + `\`${getLiteralPrimitiveStringValue(left, '`')}`, + ), + ]; + } else { + // Transform left side to template literal + return [ + fixer.insertTextBeforeRange([start, end], '`${'), + fixer.insertTextAfterRange([start, end], '}'), + ]; + } +} + +function getRightSideFixes(fixer: RuleFixer, right: AST): readonly RuleFix[] { + const { start, end } = right.sourceSpan; + + if (right instanceof TemplateLiteral) { + // Remove the start ` sign from the right side + return [fixer.removeRange([start, start + 1])]; + } else if (isLiteralPrimitive(right)) { + // Transform right side to template literal if it's a string + return [ + fixer.replaceTextRange( + [start, end], + `${getLiteralPrimitiveStringValue(right, '`')}\``, + ), + ]; + } else { + // Transform right side to template literal + return [ + fixer.insertTextBeforeRange([start, end], '${'), + fixer.insertTextAfterRange([start, end], '}`'), + ]; + } +} diff --git a/packages/eslint-plugin-template/src/utils/literal-primitive.ts b/packages/eslint-plugin-template/src/utils/literal-primitive.ts new file mode 100644 index 000000000..337be06ca --- /dev/null +++ b/packages/eslint-plugin-template/src/utils/literal-primitive.ts @@ -0,0 +1,23 @@ +import { + AST, + LiteralPrimitive, +} from '@angular-eslint/bundled-angular-compiler'; + +export function isLiteralPrimitive(node: AST): node is LiteralPrimitive { + return node instanceof LiteralPrimitive; +} + +export function isStringLiteralPrimitive( + node: AST, +): node is Omit & { value: string } { + return isLiteralPrimitive(node) && typeof node.value === 'string'; +} + +export function getLiteralPrimitiveStringValue( + node: LiteralPrimitive, + quote: "'" | '"' | '`', +): string { + return typeof node.value === 'string' + ? `${node.value.replaceAll(quote, `\\${quote}`)}` + : String(node.value); +} diff --git a/packages/eslint-plugin-template/tests/processors.spec.ts b/packages/eslint-plugin-template/tests/processors.spec.ts index 49d71d357..8d2a643e7 100644 --- a/packages/eslint-plugin-template/tests/processors.spec.ts +++ b/packages/eslint-plugin-template/tests/processors.spec.ts @@ -140,6 +140,27 @@ describe('extract-inline-html', () => { }, ]); }); + + it(`should exclude the backticks from the template literal with interpolations`, () => { + const input = ` + @Component({ + template: \`hello \${name}\`, + }) + export class ExampleComponent {} + `; + expect( + processors['extract-inline-html'].preprocess( + input, + 'test.component.ts', + ), + ).toEqual([ + input, + { + filename: `inline-template-test.component.ts-1.component.html`, + text: 'hello ${name}', + }, + ]); + }); }); describe('components with inline templates', () => { @@ -545,7 +566,7 @@ describe('extract-inline-html', () => { }); describe('messages from inline template HTML', () => { - it('should adjust message locations from the inline templates', () => { + it('should adjust message locations on the first line from the inline templates', () => { const fileContent = ` @Component({ template: '
', @@ -563,18 +584,104 @@ describe('extract-inline-html', () => { severity: 2, message: 'Invalid binding syntax. Use [(expr)] instead', line: 1, - column: 28, + column: 6, nodeType: 'Literal', messageId: 'bananaInBox', endLine: 1, - endColumn: 39, - fix: { range: [5, 16], text: '[(ngModel)]' }, + endColumn: 17, + fix: { range: [6, 17], text: '[(ngModel)]' }, }; const expectedMessage = { ...mockError, line: 3, + column: 29, endLine: 3, - fix: { range: [52, 63], text: '[(ngModel)]' }, + endColumn: 40, + fix: { range: [53, 64], text: '[(ngModel)]' }, + }; + + expect( + processors['extract-inline-html'].postprocess( + [[], [mockError]], + 'test.component.ts', + ), + ).toEqual([expectedMessage]); + }); + + it('should not adjust the columns for locations after the first line', () => { + const fileContent = ` + @Component({ + template: \` +
+ \`, + }) + export class Component { + value = ''; + } + `; + processors['extract-inline-html'].preprocess( + fileContent, + 'test.component.ts', + ); + const mockError = { + ruleId: 'banana-in-box', + severity: 2, + message: 'Invalid binding syntax. Use [(expr)] instead', + line: 2, + column: 20, + nodeType: 'Literal', + messageId: 'bananaInBox', + endLine: 2, + endColumn: 31, + fix: { range: [21, 32], text: '[(ngModel)]' }, + }; + const expectedMessage = { + ...mockError, + line: 4, + endLine: 4, + fix: { range: [68, 79], text: '[(ngModel)]' }, + }; + + expect( + processors['extract-inline-html'].postprocess( + [[], [mockError]], + 'test.component.ts', + ), + ).toEqual([expectedMessage]); + }); + + it('should adjust the start column but not the end column when the message location starts on the first line and ends on the second', () => { + const fileContent = ` + @Component({ + template: \`
Hello + World
\`, + }) + export class Component { + value = ''; + } + `; + processors['extract-inline-html'].preprocess( + fileContent, + 'test.component.ts', + ); + const mockError = { + ruleId: 'test', + severity: 2, + message: 'test', + line: 1, + column: 6, + nodeType: 'test', + messageId: 'test', + endLine: 2, + endColumn: 17, + fix: { range: [6, 28], text: '' }, + }; + const expectedMessage = { + ...mockError, + line: 3, + column: 29, + endLine: 4, + fix: { range: [53, 75], text: '' }, }; expect( diff --git a/packages/eslint-plugin-template/tests/rules/no-any/cases.ts b/packages/eslint-plugin-template/tests/rules/no-any/cases.ts index 19ae90f22..70ec65db2 100644 --- a/packages/eslint-plugin-template/tests/rules/no-any/cases.ts +++ b/packages/eslint-plugin-template/tests/rules/no-any/cases.ts @@ -18,6 +18,24 @@ export const valid: readonly (string | ValidTestCase)[] = [ ` {{ obj?.x?.y!.z!.$any() }} `, + ` + {{ obj[read][$any] }} + `, + ` + {{ $any['test'] }} + `, + ` + {{ obj['test'].$any }} + `, + ` + {{ obj['test'].$any() }} + `, + ` + {{ obj.$any()['test'] }} + `, + ` + {{ test()['value'] }} + `, ` Click here `, @@ -84,6 +102,78 @@ export const invalid: readonly InvalidTestCase[] = [ }, ], }), + convertAnnotatedSourceToFailureCase({ + description: + 'it should fail with call expression and square bracket notation in property binding', + annotatedSource: ` +
Content
+ ~~~~~~~~~~~~~~~~~~~ + `, + messageId, + suggestions: [ + { + messageId: suggestRemoveAny, + output: ` +
Content
+ + `, + }, + ], + }), + convertAnnotatedSourceToFailureCase({ + description: + 'it should fail with call expression and square bracket notation in interpolation', + annotatedSource: ` +
{{ $any(attributeList)['NPSScore'] }}
+ ~~~~~~~~~~~~~~~~~~~ + `, + messageId, + suggestions: [ + { + messageId: suggestRemoveAny, + output: ` +
{{ attributeList['NPSScore'] }}
+ + `, + }, + ], + }), + convertAnnotatedSourceToFailureCase({ + description: + 'it should fail with call expression, square bracket notation and this in interpolation', + annotatedSource: ` +
{{ this.$any(attributeList)['NPSScore'] }}
+ ~~~~~~~~~~~~~~~~~~~~~~~~ + `, + messageId, + suggestions: [ + { + messageId: suggestRemoveAny, + output: ` +
{{ this.attributeList['NPSScore'] }}
+ + `, + }, + ], + }), + convertAnnotatedSourceToFailureCase({ + description: + 'it should fail with call expression and square bracket notation in interpolation with multiple nested reads', + annotatedSource: ` +
{{ $any(attributeList)['NPSScore']['another'] }}
+ ~~~~~~~~~~~~~~~~~~~ + `, + messageId, + suggestions: [ + { + messageId: suggestRemoveAny, + output: ` +
{{ attributeList['NPSScore']['another'] }}
+ + `, + }, + ], + }), convertAnnotatedSourceToFailureCase({ description: 'it should fail for multiple cases', annotatedSource: ` diff --git a/packages/eslint-plugin-template/tests/rules/no-interpolation-in-attributes/cases.ts b/packages/eslint-plugin-template/tests/rules/no-interpolation-in-attributes/cases.ts index fff75144f..afd28d856 100644 --- a/packages/eslint-plugin-template/tests/rules/no-interpolation-in-attributes/cases.ts +++ b/packages/eslint-plugin-template/tests/rules/no-interpolation-in-attributes/cases.ts @@ -16,6 +16,10 @@ export const valid: readonly (string | ValidTestCase)[] = [ '', '', '
{{ content }}
', + { + options: [{ allowSubstringInterpolation: true }], + code: `{{username}} is online`, + }, ]; export const invalid: readonly InvalidTestCase[] = [ @@ -36,4 +40,24 @@ export const invalid: readonly InvalidTestCase[] = [ `, messageId, }), + convertAnnotatedSourceToFailureCase({ + description: + 'it should fail when interpolation is used as part of attribute value and this is explicitly configured as disallowed', + annotatedSource: ` + + ~~~~~~~~~~~~ + `, + messageId, + options: [{ allowSubstringInterpolation: false }], + }), + convertAnnotatedSourceToFailureCase({ + description: + 'it should fail if the entire value of an attribute is an interpolation when allowSubstringInterpolation is true', + annotatedSource: ` + {{username}} is online + ~~~~~~~ + `, + messageId, + options: [{ allowSubstringInterpolation: true }], + }), ]; diff --git a/packages/eslint-plugin-template/tests/rules/prefer-template-literal/cases.ts b/packages/eslint-plugin-template/tests/rules/prefer-template-literal/cases.ts new file mode 100644 index 000000000..ed154e09a --- /dev/null +++ b/packages/eslint-plugin-template/tests/rules/prefer-template-literal/cases.ts @@ -0,0 +1,739 @@ +import type { + InvalidTestCase, + ValidTestCase, +} from '@typescript-eslint/rule-tester'; +import type { + MessageIds, + Options, +} from '../../../src/rules/prefer-template-literal'; +import { convertAnnotatedSourceToFailureCase } from '@angular-eslint/test-utils'; + +const messageId: MessageIds = 'preferTemplateLiteral'; + +export const valid: readonly (string | ValidTestCase)[] = [ + '{{ `prefix-${value}-suffix` }}', + '{{ 42 + 42 }}', + '{{ value + value2 }}', + '{{ value() + value2() }}', + "{{ 'simple-quote' | pipe }}", + '{{ "double-quote" }}"', + '{{ `backquote` }}', + '@if (`prefix-${value}-suffix`) {}', + '@defer (when `prefix-${value}-suffix`) {}', + '@let letValue = `prefix-${value}-suffix`', + '

{{ `prefix-${value}-suffix` }}

', + '', + '', + '', +]; + +export const invalid: readonly InvalidTestCase[] = [ + convertAnnotatedSourceToFailureCase({ + messageId, + description: + 'should fail concatenation (left: simple quote, right: simple quote)', + annotatedSource: ` + {{ 'pre"fix-' + '-suf\\'fix' }} + ~~~~~~~~~~~~~~~~~~~~~~~~ + `, + annotatedOutput: ` + {{ 'pre"fix--suf\\'fix' }} + + `, + }), + + convertAnnotatedSourceToFailureCase({ + messageId, + description: + 'should fail concatenation (left: double quote, right: double quote)', + annotatedSource: ` + {{ "pre'fix-" + "-suf\\"fix" }} + ~~~~~~~~~~~~~~~~~~~~~~~~ + `, + annotatedOutput: ` + {{ "pre'fix--suf\\"fix" }} + + `, + }), + + convertAnnotatedSourceToFailureCase({ + messageId, + description: 'should fail concatenation (left: template, right: template)', + annotatedSource: ` + {{ \`prefix-\${value}-suffix\` + \`-prefix2-\${value2}-suffix2\` }} + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + `, + annotatedOutput: ` + {{ \`prefix-\${value}-suffix-prefix2-\${value2}-suffix2\` }} + + `, + }), + + convertAnnotatedSourceToFailureCase({ + messageId, + description: + 'should fail concatenation (left: simple quote, right: double quote)', + annotatedSource: ` + {{ 'pre"fix-' + "-suf'fix" }} + ~~~~~~~~~~~~~~~~~~~~~~~ + `, + annotatedOutput: ` + {{ 'pre"fix--suf\\'fix' }} + + `, + }), + + convertAnnotatedSourceToFailureCase({ + messageId, + description: + 'should fail concatenation (left: simple quote, right: template)', + annotatedSource: ` + {{ 'pre\`fix-' + \`'pre\\\`fix"-\${value}-"suf\\\`fix'\` }} + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + `, + annotatedOutput: ` + {{ \`pre\\\`fix-'pre\\\`fix"-\${value}-"suf\\\`fix'\` }} + + `, + }), + + convertAnnotatedSourceToFailureCase({ + messageId, + description: + 'should fail concatenation (left: double quote, right: simple quote)', + annotatedSource: ` + {{ "pre'fix-" + '-suf"fix' }} + ~~~~~~~~~~~~~~~~~~~~~~~ + `, + annotatedOutput: ` + {{ "pre'fix--suf\\"fix" }} + + `, + }), + + convertAnnotatedSourceToFailureCase({ + messageId, + description: + 'should fail concatenation (left: double quote, right: template)', + annotatedSource: ` + {{ "pre\`fix-" + \`'pre\\\`fix"-\${value}-"suf\\\`fix'\` }} + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + `, + annotatedOutput: ` + {{ \`pre\\\`fix-'pre\\\`fix"-\${value}-"suf\\\`fix'\` }} + + `, + }), + + convertAnnotatedSourceToFailureCase({ + messageId, + description: 'should fail concatenation with binding attribute', + annotatedSource: ` + + ~~~~~~~~~~~~~~~~~~~ + `, + annotatedOutput: ` + + + `, + }), + + convertAnnotatedSourceToFailureCase({ + messageId, + description: 'should fail concatenation with if and pipe', + annotatedSource: ` + @if (value() + "-suffix" | pipe) {} + ~~~~~~~~~~~~~~~~~~~ + `, + annotatedOutput: ` + @if (\`\${value()}-suffix\` | pipe) {} + + `, + }), + + convertAnnotatedSourceToFailureCase({ + messageId, + description: 'should fail concatenation with defer', + annotatedSource: ` + @defer (when value() + '-suffix' | pipe) {} + ~~~~~~~~~~~~~~~~~~~ + `, + annotatedOutput: ` + @defer (when \`\${value()}-suffix\` | pipe) {} + + `, + }), + + convertAnnotatedSourceToFailureCase({ + messageId, + description: 'should fail concatenation with let', + annotatedSource: ` + @let letValue = value() + '-suffix'; + ~~~~~~~~~~~~~~~~~~~ + `, + annotatedOutput: ` + @let letValue = \`\${value()}-suffix\`; + + `, + }), + + // Left : simple quote + convertAnnotatedSourceToFailureCase({ + messageId, + description: + 'should fail concatenation (left: simple quote, right: number)', + annotatedSource: ` + {{ 'prefix-' + 42 }} + ~~~~~~~~~~~~~~ + `, + annotatedOutput: ` + {{ 'prefix-42' }} + + `, + }), + convertAnnotatedSourceToFailureCase({ + messageId, + description: 'should fail concatenation (left: simple quote, right: null)', + annotatedSource: ` + {{ 'prefix-' + null }} + ~~~~~~~~~~~~~~~~ + `, + annotatedOutput: ` + {{ 'prefix-null' }} + + `, + }), + convertAnnotatedSourceToFailureCase({ + messageId, + description: + 'should fail concatenation (left: simple quote, right: undefined)', + annotatedSource: ` + {{ 'prefix-' + undefined }} + ~~~~~~~~~~~~~~~~~~~~~ + `, + annotatedOutput: ` + {{ 'prefix-undefined' }} + + `, + }), + convertAnnotatedSourceToFailureCase({ + messageId, + description: + 'should fail concatenation (left: simple quote, right: boolean)', + annotatedSource: ` + {{ 'prefix-' + true }} + ~~~~~~~~~~~~~~~~ + `, + annotatedOutput: ` + {{ 'prefix-true' }} + + `, + }), + convertAnnotatedSourceToFailureCase({ + messageId, + description: + 'should fail concatenation (left: simple quote, right: property read)', + annotatedSource: ` + {{ 'prefix-' + value }} + ~~~~~~~~~~~~~~~~~ + `, + annotatedOutput: ` + {{ \`prefix-\${value}\` }} + + `, + }), + convertAnnotatedSourceToFailureCase({ + messageId, + description: 'should fail concatenation (left: simple quote, right: call)', + annotatedSource: ` + {{ 'prefix-' + value() }} + ~~~~~~~~~~~~~~~~~~~ + `, + annotatedOutput: ` + {{ \`prefix-\${value()}\` }} + + `, + }), + convertAnnotatedSourceToFailureCase({ + messageId, + description: 'should fail concatenation (left: simple quote, right: array)', + annotatedSource: ` + {{ 'prefix-' + [42] }} + ~~~~~~~~~~~~~~~~ + `, + annotatedOutput: ` + {{ \`prefix-\${[42]}\` }} + + `, + }), + + // Left : double quote + convertAnnotatedSourceToFailureCase({ + messageId, + description: + 'should fail concatenation (left: double quote, right: number)', + annotatedSource: ` + {{ "prefix-" + 42 }} + ~~~~~~~~~~~~~~ + `, + annotatedOutput: ` + {{ "prefix-42" }} + + `, + }), + convertAnnotatedSourceToFailureCase({ + messageId, + description: 'should fail concatenation (left: double quote, right: null)', + annotatedSource: ` + {{ "prefix-" + null }} + ~~~~~~~~~~~~~~~~ + `, + annotatedOutput: ` + {{ "prefix-null" }} + + `, + }), + convertAnnotatedSourceToFailureCase({ + messageId, + description: + 'should fail concatenation (left: double quote, right: undefined)', + annotatedSource: ` + {{ "prefix-" + undefined }} + ~~~~~~~~~~~~~~~~~~~~~ + `, + annotatedOutput: ` + {{ "prefix-undefined" }} + + `, + }), + convertAnnotatedSourceToFailureCase({ + messageId, + description: + 'should fail concatenation (left: double quote, right: boolean)', + annotatedSource: ` + {{ "prefix-" + true }} + ~~~~~~~~~~~~~~~~ + `, + annotatedOutput: ` + {{ "prefix-true" }} + + `, + }), + convertAnnotatedSourceToFailureCase({ + messageId, + description: + 'should fail concatenation (left: double quote, right: property read)', + annotatedSource: ` + {{ "prefix-" + value }} + ~~~~~~~~~~~~~~~~~ + `, + annotatedOutput: ` + {{ \`prefix-\${value}\` }} + + `, + }), + convertAnnotatedSourceToFailureCase({ + messageId, + description: 'should fail concatenation (left: double quote, right: call)', + annotatedSource: ` + {{ "prefix-" + value() }} + ~~~~~~~~~~~~~~~~~~~ + `, + annotatedOutput: ` + {{ \`prefix-\${value()}\` }} + + `, + }), + convertAnnotatedSourceToFailureCase({ + messageId, + description: 'should fail concatenation (left: double quote, right: array)', + annotatedSource: ` + {{ "prefix-" + [42] }} + ~~~~~~~~~~~~~~~~ + `, + annotatedOutput: ` + {{ \`prefix-\${[42]}\` }} + + `, + }), + + // Left : template + convertAnnotatedSourceToFailureCase({ + messageId, + description: 'should fail concatenation (left: template, right: number)', + annotatedSource: ` + {{ \`prefix-\${value}-suffix\` + 42 }} + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + `, + annotatedOutput: ` + {{ \`prefix-\${value}-suffix42\` }} + + `, + }), + convertAnnotatedSourceToFailureCase({ + messageId, + description: 'should fail concatenation (left: template, right: null)', + annotatedSource: ` + {{ \`prefix-\${value}-suffix\` + null }} + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + `, + annotatedOutput: ` + {{ \`prefix-\${value}-suffixnull\` }} + + `, + }), + convertAnnotatedSourceToFailureCase({ + messageId, + description: 'should fail concatenation (left: template, right: undefined)', + annotatedSource: ` + {{ \`prefix-\${value}-suffix\` + undefined }} + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + `, + annotatedOutput: ` + {{ \`prefix-\${value}-suffixundefined\` }} + + `, + }), + convertAnnotatedSourceToFailureCase({ + messageId, + description: 'should fail concatenation (left: template, right: boolean)', + annotatedSource: ` + {{ \`prefix-\${value}-suffix\` + false }} + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + `, + annotatedOutput: ` + {{ \`prefix-\${value}-suffixfalse\` }} + + `, + }), + convertAnnotatedSourceToFailureCase({ + messageId, + description: + 'should fail concatenation (left: template, right: property read)', + annotatedSource: ` + {{ \`prefix-\${value}-suffix\` + value2 }} + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + `, + annotatedOutput: ` + {{ \`prefix-\${value}-suffix\${value2}\` }} + + `, + }), + convertAnnotatedSourceToFailureCase({ + messageId, + description: 'should fail concatenation (left: template, right: call)', + annotatedSource: ` + {{ \`prefix-\${value}-suffix\` + value2() }} + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + `, + annotatedOutput: ` + {{ \`prefix-\${value}-suffix\${value2()}\` }} + + `, + }), + convertAnnotatedSourceToFailureCase({ + messageId, + description: 'should fail concatenation (left: template, right: array)', + annotatedSource: ` + {{ \`prefix-\${value}-suffix\` + [42] }} + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + `, + annotatedOutput: ` + {{ \`prefix-\${value}-suffix\${[42]}\` }} + + `, + }), + + // Right : simple quote + convertAnnotatedSourceToFailureCase({ + messageId, + description: + 'should fail concatenation (left: number, right: simple quote)', + annotatedSource: ` + {{ 42 + '-suffix' }} + ~~~~~~~~~~~~~~ + `, + annotatedOutput: ` + {{ '42-suffix' }} + + `, + }), + convertAnnotatedSourceToFailureCase({ + messageId, + description: 'should fail concatenation (left: null, right: simple quote)', + annotatedSource: ` + {{ null + '-suffix' }} + ~~~~~~~~~~~~~~~~ + `, + annotatedOutput: ` + {{ 'null-suffix' }} + + `, + }), + convertAnnotatedSourceToFailureCase({ + messageId, + description: + 'should fail concatenation (left: undefined, right: simple quote)', + annotatedSource: ` + {{ undefined + '-suffix' }} + ~~~~~~~~~~~~~~~~~~~~~ + `, + annotatedOutput: ` + {{ 'undefined-suffix' }} + + `, + }), + convertAnnotatedSourceToFailureCase({ + messageId, + description: + 'should fail concatenation (left: boolean, right: simple quote)', + annotatedSource: ` + {{ true + '-suffix' }} + ~~~~~~~~~~~~~~~~ + `, + annotatedOutput: ` + {{ 'true-suffix' }} + + `, + }), + convertAnnotatedSourceToFailureCase({ + messageId, + description: + 'should fail concatenation (left: property read, right: simple quote)', + annotatedSource: ` + {{ value + '-suffix' }} + ~~~~~~~~~~~~~~~~~ + `, + annotatedOutput: ` + {{ \`\${value}-suffix\` }} + + `, + }), + convertAnnotatedSourceToFailureCase({ + messageId, + description: 'should fail concatenation (left: call, right: simple quote)', + annotatedSource: ` + {{ value() + '-suffix' }} + ~~~~~~~~~~~~~~~~~~~ + `, + annotatedOutput: ` + {{ \`\${value()}-suffix\` }} + + `, + }), + convertAnnotatedSourceToFailureCase({ + messageId, + description: 'should fail concatenation (left: array, right: simple quote)', + annotatedSource: ` + {{ [42] + '-suffix' }} + ~~~~~~~~~~~~~~~~ + `, + annotatedOutput: ` + {{ \`\${[42]}-suffix\` }} + + `, + }), + convertAnnotatedSourceToFailureCase({ + messageId, + description: + 'should fail concatenation (left: template, right: simple quote)', + annotatedSource: ` + {{ \`'pre\\\`fix"-\${value}-"suf\\\`fix'\` + '-suf\`fix' }} + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + `, + annotatedOutput: ` + {{ \`'pre\\\`fix"-\${value}-"suf\\\`fix'-suf\\\`fix\` }} + + `, + }), + + // Right : double quote + convertAnnotatedSourceToFailureCase({ + messageId, + description: + 'should fail concatenation (left: number, right: double quote)', + annotatedSource: ` + {{ 42 + "-suffix" }} + ~~~~~~~~~~~~~~ + `, + annotatedOutput: ` + {{ "42-suffix" }} + + `, + }), + convertAnnotatedSourceToFailureCase({ + messageId, + description: 'should fail concatenation (left: null, right: double quote)', + annotatedSource: ` + {{ null + "-suffix" }} + ~~~~~~~~~~~~~~~~ + `, + annotatedOutput: ` + {{ "null-suffix" }} + + `, + }), + convertAnnotatedSourceToFailureCase({ + messageId, + description: + 'should fail concatenation (left: undefined, right: double quote)', + annotatedSource: ` + {{ undefined + "-suffix" }} + ~~~~~~~~~~~~~~~~~~~~~ + `, + annotatedOutput: ` + {{ "undefined-suffix" }} + + `, + }), + convertAnnotatedSourceToFailureCase({ + messageId, + description: + 'should fail concatenation (left: boolean, right: double quote)', + annotatedSource: ` + {{ true + "-suffix" }} + ~~~~~~~~~~~~~~~~ + `, + annotatedOutput: ` + {{ "true-suffix" }} + + `, + }), + convertAnnotatedSourceToFailureCase({ + messageId, + description: + 'should fail concatenation (left: property read, right: double quote)', + annotatedSource: ` + {{ value + "-suffix" }} + ~~~~~~~~~~~~~~~~~ + `, + annotatedOutput: ` + {{ \`\${value}-suffix\` }} + + `, + }), + convertAnnotatedSourceToFailureCase({ + messageId, + description: 'should fail concatenation (left: call, right: double quote)', + annotatedSource: ` + {{ value() + "-suffix" }} + ~~~~~~~~~~~~~~~~~~~ + `, + annotatedOutput: ` + {{ \`\${value()}-suffix\` }} + + `, + }), + convertAnnotatedSourceToFailureCase({ + messageId, + description: 'should fail concatenation (left: array, right: double quote)', + annotatedSource: ` + {{ [42] + "-suffix" }} + ~~~~~~~~~~~~~~~~ + `, + annotatedOutput: ` + {{ \`\${[42]}-suffix\` }} + + `, + }), + convertAnnotatedSourceToFailureCase({ + messageId, + description: + 'should fail concatenation (left: template, right: double quote)', + annotatedSource: ` + {{ \`'pre\\\`fix"-\${value}-"suf\\\`fix'\` + "-suf\`fix" }} + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + `, + annotatedOutput: ` + {{ \`'pre\\\`fix"-\${value}-"suf\\\`fix'-suf\\\`fix\` }} + + `, + }), + + // Right : template + convertAnnotatedSourceToFailureCase({ + messageId, + description: 'should fail concatenation (left: number, right: template)', + annotatedSource: ` + {{ 42 + \`prefix-\${value}-suffix\` }} + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + `, + annotatedOutput: ` + {{ \`42prefix-\${value}-suffix\` }} + + `, + }), + convertAnnotatedSourceToFailureCase({ + messageId, + description: 'should fail concatenation (left: null, right: template)', + annotatedSource: ` + {{ null + \`prefix-\${value}-suffix\` }} + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + `, + annotatedOutput: ` + {{ \`nullprefix-\${value}-suffix\` }} + + `, + }), + convertAnnotatedSourceToFailureCase({ + messageId, + description: 'should fail concatenation (left: undefined, right: template)', + annotatedSource: ` + {{ undefined + \`prefix-\${value}-suffix\` }} + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + `, + annotatedOutput: ` + {{ \`undefinedprefix-\${value}-suffix\` }} + + `, + }), + convertAnnotatedSourceToFailureCase({ + messageId, + description: 'should fail concatenation (left: boolean, right: template)', + annotatedSource: ` + {{ false + \`prefix-\${value}-suffix\` }} + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + `, + annotatedOutput: ` + {{ \`falseprefix-\${value}-suffix\` }} + + `, + }), + convertAnnotatedSourceToFailureCase({ + messageId, + description: + 'should fail concatenation (left: property read, right: template)', + annotatedSource: ` + {{ value2 + \`prefix-\${value}-suffix\` }} + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + `, + annotatedOutput: ` + {{ \`\${value2}prefix-\${value}-suffix\` }} + + `, + }), + convertAnnotatedSourceToFailureCase({ + messageId, + description: 'should fail concatenation (left: call, right: template)', + annotatedSource: ` + {{ value2() + \`prefix-\${value}-suffix\` }} + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + `, + annotatedOutput: ` + {{ \`\${value2()}prefix-\${value}-suffix\` }} + + `, + }), + convertAnnotatedSourceToFailureCase({ + messageId, + description: 'should fail concatenation (left: array, right: template)', + annotatedSource: ` + {{ [42] + \`prefix-\${value}-suffix\` }} + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + `, + annotatedOutput: ` + {{ \`\${[42]}prefix-\${value}-suffix\` }} + + `, + }), +]; diff --git a/packages/eslint-plugin-template/tests/rules/prefer-template-literal/spec.ts b/packages/eslint-plugin-template/tests/rules/prefer-template-literal/spec.ts new file mode 100644 index 000000000..3cddbd990 --- /dev/null +++ b/packages/eslint-plugin-template/tests/rules/prefer-template-literal/spec.ts @@ -0,0 +1,14 @@ +import { RuleTester } from '@angular-eslint/test-utils'; +import rule, { RULE_NAME } from '../../../src/rules/prefer-template-literal'; +import { invalid, valid } from './cases'; + +const ruleTester = new RuleTester({ + languageOptions: { + parser: require('@angular-eslint/template-parser'), + }, +}); + +ruleTester.run(RULE_NAME, rule, { + valid, + invalid, +}); diff --git a/packages/eslint-plugin/CHANGELOG.md b/packages/eslint-plugin/CHANGELOG.md index e57c8f1bb..bba2f8782 100644 --- a/packages/eslint-plugin/CHANGELOG.md +++ b/packages/eslint-plugin/CHANGELOG.md @@ -1,3 +1,13 @@ +## 19.4.0 (2025-05-08) + +### 🚀 Features + +- **eslint-plugin:** add rule prefer-output-emitter-ref ([#2324](https://github.com/angular-eslint/angular-eslint/pull/2324)) + +### ❤️ Thank You + +- Dave @reduckted + ## 19.3.0 (2025-03-22) This was a version bump only for eslint-plugin to align it with other projects, there were no code changes. diff --git a/packages/eslint-plugin/README.md b/packages/eslint-plugin/README.md index 67d6134bf..1058e5c6d 100644 --- a/packages/eslint-plugin/README.md +++ b/packages/eslint-plugin/README.md @@ -66,6 +66,7 @@ Please see https://github.com/angular-eslint/angular-eslint for full usage instr | [`no-queries-metadata-property`](https://github.com/angular-eslint/angular-eslint/blob/main/packages/eslint-plugin/docs/rules/no-queries-metadata-property.md) | Disallows usage of the `queries` metadata property. See more at https://angular.dev/style-guide#style-05-12. | | | | | [`pipe-prefix`](https://github.com/angular-eslint/angular-eslint/blob/main/packages/eslint-plugin/docs/rules/pipe-prefix.md) | Enforce consistent prefix for pipes. | | | | | [`prefer-on-push-component-change-detection`](https://github.com/angular-eslint/angular-eslint/blob/main/packages/eslint-plugin/docs/rules/prefer-on-push-component-change-detection.md) | Ensures component's `changeDetection` is set to `ChangeDetectionStrategy.OnPush` | | | :bulb: | +| [`prefer-output-emitter-ref`](https://github.com/angular-eslint/angular-eslint/blob/main/packages/eslint-plugin/docs/rules/prefer-output-emitter-ref.md) | Use `OutputEmitterRef` instead of `@Output()` | | | | | [`prefer-output-readonly`](https://github.com/angular-eslint/angular-eslint/blob/main/packages/eslint-plugin/docs/rules/prefer-output-readonly.md) | Prefer to declare `@Output`, `OutputEmitterRef` and `OutputRef` as `readonly` since they are not supposed to be reassigned | | | :bulb: | | [`prefer-signals`](https://github.com/angular-eslint/angular-eslint/blob/main/packages/eslint-plugin/docs/rules/prefer-signals.md) | Use readonly signals instead of `@Input()`, `@ViewChild()` and other legacy decorators | | :wrench: | | | [`prefer-standalone`](https://github.com/angular-eslint/angular-eslint/blob/main/packages/eslint-plugin/docs/rules/prefer-standalone.md) | Ensures Components, Directives and Pipes do not opt out of standalone | :white_check_mark: | :wrench: | | diff --git a/packages/eslint-plugin/docs/rules/prefer-output-emitter-ref.md b/packages/eslint-plugin/docs/rules/prefer-output-emitter-ref.md new file mode 100644 index 000000000..59bf90cd1 --- /dev/null +++ b/packages/eslint-plugin/docs/rules/prefer-output-emitter-ref.md @@ -0,0 +1,186 @@ + + +
+ +# `@angular-eslint/prefer-output-emitter-ref` + +Use `OutputEmitterRef` instead of `@Output()` + +- Type: suggestion + +
+ +## Rule Options + +The rule does not have any configuration options. + +
+ +## Usage Examples + +> The following examples are generated automatically from the actual unit tests within the plugin, so you can be assured that their behavior is accurate based on the current commit. + +
+ +
+❌ - Toggle examples of incorrect code for this rule + +
+ +#### Default Config + +```json +{ + "rules": { + "@angular-eslint/prefer-output-emitter-ref": [ + "error" + ] + } +} +``` + +
+ +#### ❌ Invalid Code + +```ts +class Test { + @Output() + ~~~~~~~~~ + readonly change: EventEmitter; +} +``` + +
+ +
+ +--- + +
+ +
+✅ - Toggle examples of correct code for this rule + +
+ +#### Default Config + +```json +{ + "rules": { + "@angular-eslint/prefer-output-emitter-ref": [ + "error" + ] + } +} +``` + +
+ +#### ✅ Valid Code + +```ts +class Test { + change = outputValue(); +} +``` + +
+ +--- + +
+ +#### Default Config + +```json +{ + "rules": { + "@angular-eslint/prefer-output-emitter-ref": [ + "error" + ] + } +} +``` + +
+ +#### ✅ Valid Code + +```ts +class Test { + change = new EventEmitter(); +} +``` + +
+ +--- + +
+ +#### Default Config + +```json +{ + "rules": { + "@angular-eslint/prefer-output-emitter-ref": [ + "error" + ] + } +} +``` + +
+ +#### ✅ Valid Code + +```ts +class Test { + readonly change = output(); +} +``` + +
+ +--- + +
+ +#### Default Config + +```json +{ + "rules": { + "@angular-eslint/prefer-output-emitter-ref": [ + "error" + ] + } +} +``` + +
+ +#### ✅ Valid Code + +```ts +class Test { + readonly change = output(); +} +``` + +
+ +
diff --git a/packages/eslint-plugin/package.json b/packages/eslint-plugin/package.json index 68fae903f..c43aad63f 100644 --- a/packages/eslint-plugin/package.json +++ b/packages/eslint-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@angular-eslint/eslint-plugin", - "version": "19.3.0", + "version": "19.4.0", "description": "ESLint plugin for Angular applications, following https://angular.dev/style-guide", "license": "MIT", "main": "dist/index.js", diff --git a/packages/eslint-plugin/src/configs/all.json b/packages/eslint-plugin/src/configs/all.json index 4cd036f49..433f79d34 100644 --- a/packages/eslint-plugin/src/configs/all.json +++ b/packages/eslint-plugin/src/configs/all.json @@ -28,6 +28,7 @@ "@angular-eslint/no-queries-metadata-property": "error", "@angular-eslint/pipe-prefix": "error", "@angular-eslint/prefer-on-push-component-change-detection": "error", + "@angular-eslint/prefer-output-emitter-ref": "error", "@angular-eslint/prefer-output-readonly": "error", "@angular-eslint/prefer-signals": "error", "@angular-eslint/prefer-standalone": "error", diff --git a/packages/eslint-plugin/src/index.ts b/packages/eslint-plugin/src/index.ts index 0c0fbe8e7..65c28d877 100644 --- a/packages/eslint-plugin/src/index.ts +++ b/packages/eslint-plugin/src/index.ts @@ -76,6 +76,9 @@ import pipePrefix, { import preferOnPushComponentChangeDetection, { RULE_NAME as preferOnPushComponentChangeDetectionRuleName, } from './rules/prefer-on-push-component-change-detection'; +import preferOutputEmitterRef, { + RULE_NAME as preferOutputEmitterRefRuleName, +} from './rules/prefer-output-emitter-ref'; import preferOutputReadonly, { RULE_NAME as preferOutputReadonlyRuleName, } from './rules/prefer-output-readonly'; @@ -154,6 +157,7 @@ export = { preferOnPushComponentChangeDetection, [preferSignalsRuleName]: preferSignals, [preferStandaloneRuleName]: preferStandalone, + [preferOutputEmitterRefRuleName]: preferOutputEmitterRef, [preferOutputReadonlyRuleName]: preferOutputReadonly, [relativeUrlPrefixRuleName]: relativeUrlPrefix, [requireLifecycleOnPrototypeRuleName]: requireLifecycleOnPrototype, diff --git a/packages/eslint-plugin/src/rules/prefer-output-emitter-ref.ts b/packages/eslint-plugin/src/rules/prefer-output-emitter-ref.ts new file mode 100644 index 000000000..7f3820964 --- /dev/null +++ b/packages/eslint-plugin/src/rules/prefer-output-emitter-ref.ts @@ -0,0 +1,30 @@ +import { Selectors } from '@angular-eslint/utils'; +import { createESLintRule } from '../utils/create-eslint-rule'; + +type Options = []; + +export type MessageIds = 'preferOutputEmitterRef'; +export const RULE_NAME = 'prefer-output-emitter-ref'; + +export default createESLintRule({ + name: RULE_NAME, + meta: { + type: 'suggestion', + docs: { + description: 'Use `OutputEmitterRef` instead of `@Output()`', + }, + schema: [], + messages: { + preferOutputEmitterRef: + 'Use `OutputEmitterRef` via `output()` for Component and Directive outputs rather than the legacy `@Output()` decorator', + }, + }, + defaultOptions: [], + create(context) { + return { + [Selectors.OUTPUT_DECORATOR]: (node) => { + context.report({ node, messageId: 'preferOutputEmitterRef' }); + }, + }; + }, +}); diff --git a/packages/eslint-plugin/tests/rules/prefer-output-emitter-ref/cases.ts b/packages/eslint-plugin/tests/rules/prefer-output-emitter-ref/cases.ts new file mode 100644 index 000000000..b2e4c58f4 --- /dev/null +++ b/packages/eslint-plugin/tests/rules/prefer-output-emitter-ref/cases.ts @@ -0,0 +1,41 @@ +import { convertAnnotatedSourceToFailureCase } from '@angular-eslint/test-utils'; +import type { MessageIds } from '../../../src/rules/prefer-output-emitter-ref'; + +const messageIdPreferOutputEmitterRef: MessageIds = 'preferOutputEmitterRef'; + +export const valid = [ + ` + class Test { + change = outputValue(); + } + `, + ` + class Test { + change = new EventEmitter(); + } + `, + ` + class Test { + readonly change = output(); + } + `, + ` + class Test { + readonly change = output(); + } + `, +]; + +export const invalid = [ + convertAnnotatedSourceToFailureCase({ + description: 'should fail when an @Output is used', + annotatedSource: ` + class Test { + @Output() + ~~~~~~~~~ + readonly change: EventEmitter; + } + `, + messageId: messageIdPreferOutputEmitterRef, + }), +]; diff --git a/packages/eslint-plugin/tests/rules/prefer-output-emitter-ref/spec.ts b/packages/eslint-plugin/tests/rules/prefer-output-emitter-ref/spec.ts new file mode 100644 index 000000000..4d6aa3121 --- /dev/null +++ b/packages/eslint-plugin/tests/rules/prefer-output-emitter-ref/spec.ts @@ -0,0 +1,10 @@ +import { RuleTester } from '@angular-eslint/test-utils'; +import rule, { RULE_NAME } from '../../../src/rules/prefer-output-emitter-ref'; +import { invalid, valid } from './cases'; + +const ruleTester = new RuleTester(); + +ruleTester.run(RULE_NAME, rule, { + valid, + invalid, +}); diff --git a/packages/schematics/CHANGELOG.md b/packages/schematics/CHANGELOG.md index b75953ef5..8492e09af 100644 --- a/packages/schematics/CHANGELOG.md +++ b/packages/schematics/CHANGELOG.md @@ -1,3 +1,17 @@ +## 19.4.0 (2025-05-08) + +### 🩹 Fixes + +- update dependency eslint to v9.26.0 ([#2409](https://github.com/angular-eslint/angular-eslint/pull/2409)) +- update typescript-eslint packages to v8.32.0 ([#2399](https://github.com/angular-eslint/angular-eslint/pull/2399)) +- update dependency ignore to v7.0.4 ([#2396](https://github.com/angular-eslint/angular-eslint/pull/2396)) +- update typescript-eslint packages to v8.31.0 ([#2386](https://github.com/angular-eslint/angular-eslint/pull/2386)) +- update dependency eslint to v9.25.1 ([#2385](https://github.com/angular-eslint/angular-eslint/pull/2385)) +- update dependency eslint to v9.25.0 ([#2382](https://github.com/angular-eslint/angular-eslint/pull/2382)) +- update typescript-eslint packages to v8.30.1 ([#2374](https://github.com/angular-eslint/angular-eslint/pull/2374)) +- update typescript-eslint packages to v8.29.1 ([#2339](https://github.com/angular-eslint/angular-eslint/pull/2339)) +- update dependency eslint to v9.24.0 ([#2353](https://github.com/angular-eslint/angular-eslint/pull/2353)) + ## 19.3.0 (2025-03-22) ### 🩹 Fixes diff --git a/packages/schematics/package.json b/packages/schematics/package.json index cebc5a625..213bc6e6f 100644 --- a/packages/schematics/package.json +++ b/packages/schematics/package.json @@ -1,6 +1,6 @@ { "name": "@angular-eslint/schematics", - "version": "19.3.0", + "version": "19.4.0", "description": "Angular Schematics for angular-eslint", "license": "MIT", "main": "dist/index.js", @@ -40,13 +40,13 @@ "@angular-devkit/schematics": ">= 19.0.0 < 20.0.0", "@angular-eslint/eslint-plugin": "workspace:*", "@angular-eslint/eslint-plugin-template": "workspace:*", - "ignore": "7.0.3", + "ignore": "7.0.4", "semver": "7.7.1", "strip-json-comments": "3.1.1" }, "devDependencies": { - "@typescript-eslint/utils": "8.27.0", - "eslint": "9.23.0" + "@typescript-eslint/utils": "8.32.0", + "eslint": "9.26.0" }, "gitHead": "e2006e5e9c99e5a943d1a999e0efa5247d29ec24" } diff --git a/packages/template-parser/CHANGELOG.md b/packages/template-parser/CHANGELOG.md index 92676366e..81bfd014f 100644 --- a/packages/template-parser/CHANGELOG.md +++ b/packages/template-parser/CHANGELOG.md @@ -1,3 +1,7 @@ +## 19.4.0 (2025-05-08) + +This was a version bump only for template-parser to align it with other projects, there were no code changes. + ## 19.3.0 (2025-03-22) ### 🚀 Features diff --git a/packages/template-parser/package.json b/packages/template-parser/package.json index a361130a6..bba9a77b1 100644 --- a/packages/template-parser/package.json +++ b/packages/template-parser/package.json @@ -1,6 +1,6 @@ { "name": "@angular-eslint/template-parser", - "version": "19.3.0", + "version": "19.4.0", "description": "Angular Template parser for ESLint", "license": "MIT", "main": "dist/index.js", diff --git a/packages/test-utils/CHANGELOG.md b/packages/test-utils/CHANGELOG.md index 8b9c89c23..8cc5df289 100644 --- a/packages/test-utils/CHANGELOG.md +++ b/packages/test-utils/CHANGELOG.md @@ -1,3 +1,7 @@ +## 19.4.0 (2025-05-08) + +This was a version bump only for @angular-eslint/test-utils to align it with other projects, there were no code changes. + ## 19.3.0 (2025-03-22) This was a version bump only for @angular-eslint/test-utils to align it with other projects, there were no code changes. diff --git a/packages/test-utils/package.json b/packages/test-utils/package.json index ff591ce0c..0bad5023b 100644 --- a/packages/test-utils/package.json +++ b/packages/test-utils/package.json @@ -1,6 +1,6 @@ { "name": "@angular-eslint/test-utils", - "version": "19.3.0", + "version": "19.4.0", "license": "MIT", "main": "dist/index.js", "types": "dist/index.d.ts", diff --git a/packages/utils/CHANGELOG.md b/packages/utils/CHANGELOG.md index 3b7374ca9..89660e978 100644 --- a/packages/utils/CHANGELOG.md +++ b/packages/utils/CHANGELOG.md @@ -1,3 +1,7 @@ +## 19.4.0 (2025-05-08) + +This was a version bump only for @angular-eslint/utils to align it with other projects, there were no code changes. + ## 19.3.0 (2025-03-22) This was a version bump only for @angular-eslint/utils to align it with other projects, there were no code changes. diff --git a/packages/utils/package.json b/packages/utils/package.json index 9543d2dac..200f725a1 100644 --- a/packages/utils/package.json +++ b/packages/utils/package.json @@ -1,6 +1,6 @@ { "name": "@angular-eslint/utils", - "version": "19.3.0", + "version": "19.4.0", "license": "MIT", "main": "dist/index.js", "types": "dist/index.d.ts", diff --git a/packages/utils/src/eslint-plugin/get-native-event-names.ts b/packages/utils/src/eslint-plugin/get-native-event-names.ts index 6cdd45384..3642c4ae5 100644 --- a/packages/utils/src/eslint-plugin/get-native-event-names.ts +++ b/packages/utils/src/eslint-plugin/get-native-event-names.ts @@ -9,7 +9,7 @@ let nativeEventNames: ReadonlySet | null = null; /** * Check MDN events page for details https://developer.mozilla.org/en-US/docs/Web/Events * - * Event names sourced from @mdn/browser-compat-data@5.7.5 + * Event names sourced from @mdn/browser-compat-data@6.0.12 */ export function getNativeEventNames(): ReadonlySet { return ( diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c05e2806a..c7adcfa9a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -5,9 +5,9 @@ settings: excludeLinksFromLockfile: false overrides: - '@typescript-eslint/parser': 8.27.0 - '@typescript-eslint/rule-tester': 8.27.0 - '@typescript-eslint/utils': 8.27.0 + '@typescript-eslint/parser': 8.32.0 + '@typescript-eslint/rule-tester': 8.32.0 + '@typescript-eslint/utils': 8.32.0 patchedDependencies: '@typescript-eslint/rule-tester': @@ -19,59 +19,59 @@ importers: .: devDependencies: '@angular/cli': - specifier: 19.2.4 - version: 19.2.4(@types/node@20.17.25) + specifier: 19.2.11 + version: 19.2.11(@types/node@20.17.45) '@angular/compiler': - specifier: 19.2.3 - version: 19.2.3 + specifier: 19.2.10 + version: 19.2.10 '@commitlint/cli': - specifier: 19.8.0 - version: 19.8.0(@types/node@20.17.25)(typescript@5.7.3) + specifier: 19.8.1 + version: 19.8.1(@types/node@20.17.45)(typescript@5.8.3) '@commitlint/config-conventional': - specifier: 19.8.0 - version: 19.8.0 + specifier: 19.8.1 + version: 19.8.1 '@mdn/browser-compat-data': - specifier: 5.7.5 - version: 5.7.5 + specifier: 6.0.12 + version: 6.0.12 '@nx/devkit': - specifier: 0.0.0-pr-30418-4f79396 - version: 0.0.0-pr-30418-4f79396(nx@0.0.0-pr-30418-4f79396(@swc-node/register@1.10.10(@swc/core@1.11.11(@swc/helpers@0.5.15))(@swc/types@0.1.19)(typescript@5.7.3))(@swc/core@1.11.11(@swc/helpers@0.5.15))) + specifier: 21.0.2 + version: 21.0.2(nx@21.0.2(@swc-node/register@1.10.10(@swc/core@1.11.24(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@swc/core@1.11.24(@swc/helpers@0.5.17))) '@nx/esbuild': - specifier: 0.0.0-pr-30418-4f79396 - version: 0.0.0-pr-30418-4f79396(@babel/traverse@7.25.9)(@swc-node/register@1.10.10(@swc/core@1.11.11(@swc/helpers@0.5.15))(@swc/types@0.1.19)(typescript@5.7.3))(@swc/core@1.11.11(@swc/helpers@0.5.15))(@types/node@20.17.25)(esbuild@0.25.1)(nx@0.0.0-pr-30418-4f79396(@swc-node/register@1.10.10(@swc/core@1.11.11(@swc/helpers@0.5.15))(@swc/types@0.1.19)(typescript@5.7.3))(@swc/core@1.11.11(@swc/helpers@0.5.15)))(typescript@5.7.3)(verdaccio@6.0.5(encoding@0.1.13)(typanion@3.14.0)) + specifier: 21.0.2 + version: 21.0.2(@babel/traverse@7.25.9)(@swc-node/register@1.10.10(@swc/core@1.11.24(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@swc/core@1.11.24(@swc/helpers@0.5.17))(esbuild@0.25.4)(nx@21.0.2(@swc-node/register@1.10.10(@swc/core@1.11.24(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@swc/core@1.11.24(@swc/helpers@0.5.17)))(verdaccio@6.1.2(encoding@0.1.13)(typanion@3.14.0)) '@nx/eslint': - specifier: 0.0.0-pr-30418-4f79396 - version: 0.0.0-pr-30418-4f79396(@babel/traverse@7.25.9)(@swc-node/register@1.10.10(@swc/core@1.11.11(@swc/helpers@0.5.15))(@swc/types@0.1.19)(typescript@5.7.3))(@swc/core@1.11.11(@swc/helpers@0.5.15))(@types/node@20.17.25)(@zkochan/js-yaml@0.0.7)(eslint@9.23.0(jiti@2.4.2))(nx@0.0.0-pr-30418-4f79396(@swc-node/register@1.10.10(@swc/core@1.11.11(@swc/helpers@0.5.15))(@swc/types@0.1.19)(typescript@5.7.3))(@swc/core@1.11.11(@swc/helpers@0.5.15)))(verdaccio@6.0.5(encoding@0.1.13)(typanion@3.14.0)) + specifier: 21.0.2 + version: 21.0.2(@babel/traverse@7.25.9)(@swc-node/register@1.10.10(@swc/core@1.11.24(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@swc/core@1.11.24(@swc/helpers@0.5.17))(@zkochan/js-yaml@0.0.7)(eslint@9.26.0(jiti@2.4.2))(nx@21.0.2(@swc-node/register@1.10.10(@swc/core@1.11.24(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@swc/core@1.11.24(@swc/helpers@0.5.17)))(verdaccio@6.1.2(encoding@0.1.13)(typanion@3.14.0)) '@nx/eslint-plugin': - specifier: 0.0.0-pr-30418-4f79396 - version: 0.0.0-pr-30418-4f79396(@babel/traverse@7.25.9)(@swc-node/register@1.10.10(@swc/core@1.11.11(@swc/helpers@0.5.15))(@swc/types@0.1.19)(typescript@5.7.3))(@swc/core@1.11.11(@swc/helpers@0.5.15))(@types/node@20.17.25)(@typescript-eslint/parser@8.27.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.7.3))(eslint-config-prettier@10.1.1(eslint@9.23.0(jiti@2.4.2)))(eslint@9.23.0(jiti@2.4.2))(nx@0.0.0-pr-30418-4f79396(@swc-node/register@1.10.10(@swc/core@1.11.11(@swc/helpers@0.5.15))(@swc/types@0.1.19)(typescript@5.7.3))(@swc/core@1.11.11(@swc/helpers@0.5.15)))(typescript@5.7.3)(verdaccio@6.0.5(encoding@0.1.13)(typanion@3.14.0)) + specifier: 21.0.2 + version: 21.0.2(@babel/traverse@7.25.9)(@swc-node/register@1.10.10(@swc/core@1.11.24(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@swc/core@1.11.24(@swc/helpers@0.5.17))(@typescript-eslint/parser@8.32.0(eslint@9.26.0(jiti@2.4.2))(typescript@5.8.3))(eslint-config-prettier@10.1.3(eslint@9.26.0(jiti@2.4.2)))(eslint@9.26.0(jiti@2.4.2))(nx@21.0.2(@swc-node/register@1.10.10(@swc/core@1.11.24(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@swc/core@1.11.24(@swc/helpers@0.5.17)))(typescript@5.8.3)(verdaccio@6.1.2(encoding@0.1.13)(typanion@3.14.0)) '@nx/jest': - specifier: 0.0.0-pr-30418-4f79396 - version: 0.0.0-pr-30418-4f79396(@babel/traverse@7.25.9)(@swc-node/register@1.10.10(@swc/core@1.11.11(@swc/helpers@0.5.15))(@swc/types@0.1.19)(typescript@5.7.3))(@swc/core@1.11.11(@swc/helpers@0.5.15))(@types/node@20.17.25)(babel-plugin-macros@3.1.0)(nx@0.0.0-pr-30418-4f79396(@swc-node/register@1.10.10(@swc/core@1.11.11(@swc/helpers@0.5.15))(@swc/types@0.1.19)(typescript@5.7.3))(@swc/core@1.11.11(@swc/helpers@0.5.15)))(ts-node@10.9.1(@swc/core@1.11.11(@swc/helpers@0.5.15))(@types/node@20.17.25)(typescript@5.7.3))(typescript@5.7.3)(verdaccio@6.0.5(encoding@0.1.13)(typanion@3.14.0)) + specifier: 21.0.2 + version: 21.0.2(@babel/traverse@7.25.9)(@swc-node/register@1.10.10(@swc/core@1.11.24(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@swc/core@1.11.24(@swc/helpers@0.5.17))(@types/node@20.17.45)(babel-plugin-macros@3.1.0)(nx@21.0.2(@swc-node/register@1.10.10(@swc/core@1.11.24(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@swc/core@1.11.24(@swc/helpers@0.5.17)))(ts-node@10.9.1(@swc/core@1.11.24(@swc/helpers@0.5.17))(@types/node@20.17.45)(typescript@5.8.3))(typescript@5.8.3)(verdaccio@6.1.2(encoding@0.1.13)(typanion@3.14.0)) '@nx/js': - specifier: 0.0.0-pr-30418-4f79396 - version: 0.0.0-pr-30418-4f79396(@babel/traverse@7.25.9)(@swc-node/register@1.10.10(@swc/core@1.11.11(@swc/helpers@0.5.15))(@swc/types@0.1.19)(typescript@5.7.3))(@swc/core@1.11.11(@swc/helpers@0.5.15))(@types/node@20.17.25)(nx@0.0.0-pr-30418-4f79396(@swc-node/register@1.10.10(@swc/core@1.11.11(@swc/helpers@0.5.15))(@swc/types@0.1.19)(typescript@5.7.3))(@swc/core@1.11.11(@swc/helpers@0.5.15)))(typescript@5.7.3)(verdaccio@6.0.5(encoding@0.1.13)(typanion@3.14.0)) + specifier: 21.0.2 + version: 21.0.2(@babel/traverse@7.25.9)(@swc-node/register@1.10.10(@swc/core@1.11.24(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@swc/core@1.11.24(@swc/helpers@0.5.17))(nx@21.0.2(@swc-node/register@1.10.10(@swc/core@1.11.24(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@swc/core@1.11.24(@swc/helpers@0.5.17)))(verdaccio@6.1.2(encoding@0.1.13)(typanion@3.14.0)) '@nx/plugin': - specifier: 0.0.0-pr-30418-4f79396 - version: 0.0.0-pr-30418-4f79396(@babel/traverse@7.25.9)(@swc-node/register@1.10.10(@swc/core@1.11.11(@swc/helpers@0.5.15))(@swc/types@0.1.19)(typescript@5.7.3))(@swc/core@1.11.11(@swc/helpers@0.5.15))(@types/node@20.17.25)(@zkochan/js-yaml@0.0.7)(babel-plugin-macros@3.1.0)(eslint@9.23.0(jiti@2.4.2))(nx@0.0.0-pr-30418-4f79396(@swc-node/register@1.10.10(@swc/core@1.11.11(@swc/helpers@0.5.15))(@swc/types@0.1.19)(typescript@5.7.3))(@swc/core@1.11.11(@swc/helpers@0.5.15)))(ts-node@10.9.1(@swc/core@1.11.11(@swc/helpers@0.5.15))(@types/node@20.17.25)(typescript@5.7.3))(typescript@5.7.3)(verdaccio@6.0.5(encoding@0.1.13)(typanion@3.14.0)) + specifier: 21.0.2 + version: 21.0.2(@babel/traverse@7.25.9)(@swc-node/register@1.10.10(@swc/core@1.11.24(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@swc/core@1.11.24(@swc/helpers@0.5.17))(@types/node@20.17.45)(@zkochan/js-yaml@0.0.7)(babel-plugin-macros@3.1.0)(eslint@9.26.0(jiti@2.4.2))(nx@21.0.2(@swc-node/register@1.10.10(@swc/core@1.11.24(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@swc/core@1.11.24(@swc/helpers@0.5.17)))(ts-node@10.9.1(@swc/core@1.11.24(@swc/helpers@0.5.17))(@types/node@20.17.45)(typescript@5.8.3))(typescript@5.8.3)(verdaccio@6.1.2(encoding@0.1.13)(typanion@3.14.0)) '@nx/workspace': - specifier: 0.0.0-pr-30418-4f79396 - version: 0.0.0-pr-30418-4f79396(@swc-node/register@1.10.10(@swc/core@1.11.11(@swc/helpers@0.5.15))(@swc/types@0.1.19)(typescript@5.7.3))(@swc/core@1.11.11(@swc/helpers@0.5.15)) + specifier: 21.0.2 + version: 21.0.2(@swc-node/register@1.10.10(@swc/core@1.11.24(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@swc/core@1.11.24(@swc/helpers@0.5.17)) '@schematics/angular': - specifier: 19.2.4 - version: 19.2.4 + specifier: 19.2.11 + version: 19.2.11 '@swc-node/register': specifier: 1.10.10 - version: 1.10.10(@swc/core@1.11.11(@swc/helpers@0.5.15))(@swc/types@0.1.19)(typescript@5.7.3) + version: 1.10.10(@swc/core@1.11.24(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3) '@swc/cli': - specifier: 0.6.0 - version: 0.6.0(@swc/core@1.11.11(@swc/helpers@0.5.15)) + specifier: 0.7.5 + version: 0.7.5(@swc/core@1.11.24(@swc/helpers@0.5.17)) '@swc/core': - specifier: 1.11.11 - version: 1.11.11(@swc/helpers@0.5.15) + specifier: 1.11.24 + version: 1.11.24(@swc/helpers@0.5.17) '@swc/helpers': - specifier: 0.5.15 - version: 0.5.15 + specifier: 0.5.17 + version: 0.5.17 '@types/eslint': specifier: 9.6.1 version: 9.6.1 @@ -79,38 +79,38 @@ importers: specifier: 3.7.7 version: 3.7.7 '@types/jest': - specifier: 29.5.12 - version: 29.5.12 + specifier: 29.5.14 + version: 29.5.14 '@types/node': - specifier: 20.17.25 - version: 20.17.25 + specifier: 20.17.45 + version: 20.17.45 '@types/semver': specifier: ^7.5.8 - version: 7.5.8 + version: 7.7.0 '@types/yargs': specifier: ^17.0.33 version: 17.0.33 '@typescript-eslint/rule-tester': - specifier: 8.27.0 - version: 8.27.0(patch_hash=0395d56159bca55b94596b2ce1a79005dd964f4b648c29e0c04c6dfcb85e13cf)(eslint@9.23.0(jiti@2.4.2))(typescript@5.7.3) + specifier: 8.32.0 + version: 8.32.0(patch_hash=0395d56159bca55b94596b2ce1a79005dd964f4b648c29e0c04c6dfcb85e13cf)(eslint@9.26.0(jiti@2.4.2))(typescript@5.8.3) '@typescript-eslint/types': - specifier: 8.27.0 - version: 8.27.0 + specifier: 8.32.0 + version: 8.32.0 '@typescript-eslint/utils': - specifier: 8.27.0 - version: 8.27.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.7.3) + specifier: 8.32.0 + version: 8.32.0(eslint@9.26.0(jiti@2.4.2))(typescript@5.8.3) cz-conventional-changelog: specifier: 3.3.0 - version: 3.3.0(@types/node@20.17.25)(typescript@5.7.3) + version: 3.3.0(@types/node@20.17.45)(typescript@5.8.3) esbuild: specifier: ^0.25.0 - version: 0.25.1 + version: 0.25.4 eslint: - specifier: 9.23.0 - version: 9.23.0(jiti@2.4.2) + specifier: 9.26.0 + version: 9.26.0(jiti@2.4.2) eslint-config-prettier: - specifier: 10.1.1 - version: 10.1.1(eslint@9.23.0(jiti@2.4.2)) + specifier: 10.1.3 + version: 10.1.3(eslint@9.26.0(jiti@2.4.2)) execa: specifier: 5.1.1 version: 5.1.1 @@ -119,7 +119,7 @@ importers: version: 9.1.7 jest: specifier: 29.7.0 - version: 29.7.0(@types/node@20.17.25)(babel-plugin-macros@3.1.0)(ts-node@10.9.1(@swc/core@1.11.11(@swc/helpers@0.5.15))(@types/node@20.17.25)(typescript@5.7.3)) + version: 29.7.0(@types/node@20.17.45)(babel-plugin-macros@3.1.0)(ts-node@10.9.1(@swc/core@1.11.24(@swc/helpers@0.5.17))(@types/node@20.17.45)(typescript@5.8.3)) json-schema-to-typescript: specifier: 15.0.4 version: 15.0.4 @@ -130,14 +130,14 @@ importers: specifier: ^2.1.0 version: 2.4.0 lint-staged: - specifier: 15.5.0 - version: 15.5.0 + specifier: 15.5.2 + version: 15.5.2 ncp: specifier: 2.0.0 version: 2.0.0 nx: - specifier: 0.0.0-pr-30418-4f79396 - version: 0.0.0-pr-30418-4f79396(@swc-node/register@1.10.10(@swc/core@1.11.11(@swc/helpers@0.5.15))(@swc/types@0.1.19)(typescript@5.7.3))(@swc/core@1.11.11(@swc/helpers@0.5.15)) + specifier: 21.0.2 + version: 21.0.2(@swc-node/register@1.10.10(@swc/core@1.11.24(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@swc/core@1.11.24(@swc/helpers@0.5.17)) picocolors: specifier: 1.1.1 version: 1.1.1 @@ -152,28 +152,28 @@ importers: version: 5.0.10 semver: specifier: ^7.6.2 - version: 7.6.3 + version: 7.7.1 tree-kill: specifier: 1.2.2 version: 1.2.2 ts-jest: specifier: 29.2.4 - version: 29.2.4(@babel/core@7.26.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.0))(esbuild@0.25.1)(jest@29.7.0(@types/node@20.17.25)(babel-plugin-macros@3.1.0)(ts-node@10.9.1(@swc/core@1.11.11(@swc/helpers@0.5.15))(@types/node@20.17.25)(typescript@5.7.3)))(typescript@5.7.3) + version: 29.2.4(@babel/core@7.26.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.0))(esbuild@0.25.4)(jest@29.7.0(@types/node@20.17.45)(babel-plugin-macros@3.1.0)(ts-node@10.9.1(@swc/core@1.11.24(@swc/helpers@0.5.17))(@types/node@20.17.45)(typescript@5.8.3)))(typescript@5.8.3) tslib: specifier: ^2.4.1 version: 2.8.1 tsx: specifier: ^4.7.3 - version: 4.19.3 + version: 4.19.4 typescript: - specifier: 5.7.3 - version: 5.7.3 + specifier: 5.8.3 + version: 5.8.3 typescript-eslint: - specifier: 8.27.0 - version: 8.27.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.7.3) + specifier: 8.32.0 + version: 8.32.0(eslint@9.26.0(jiti@2.4.2))(typescript@5.8.3) verdaccio: - specifier: 6.0.5 - version: 6.0.5(encoding@0.1.13)(typanion@3.14.0) + specifier: 6.1.2 + version: 6.1.2(encoding@0.1.13)(typanion@3.14.0) yargs: specifier: 17.7.2 version: 17.7.2 @@ -182,10 +182,10 @@ importers: dependencies: '@angular-devkit/core': specifier: '>= 19.0.0 < 20.0.0' - version: 19.0.2 + version: 19.2.11 '@angular-devkit/schematics': specifier: '>= 19.0.0 < 20.0.0' - version: 19.0.2 + version: 19.2.11 '@angular-eslint/builder': specifier: workspace:* version: link:../builder @@ -203,34 +203,34 @@ importers: version: link:../template-parser '@typescript-eslint/types': specifier: ^8.0.0 - version: 8.27.0 + version: 8.32.0 '@typescript-eslint/utils': - specifier: 8.27.0 - version: 8.27.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.7.3) + specifier: 8.32.0 + version: 8.32.0(eslint@9.26.0(jiti@2.4.2))(typescript@5.8.3) eslint: specifier: ^8.57.0 || ^9.0.0 - version: 9.22.0(jiti@2.4.2) + version: 9.26.0(jiti@2.4.2) typescript: specifier: '*' - version: 5.7.3 + version: 5.8.3 typescript-eslint: specifier: ^8.0.0 - version: 8.16.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.7.3) + version: 8.32.0(eslint@9.26.0(jiti@2.4.2))(typescript@5.8.3) packages/builder: dependencies: '@angular-devkit/architect': specifier: '>= 0.1900.0 < 0.2000.0' - version: 0.1900.0 + version: 0.1902.11 '@angular-devkit/core': specifier: '>= 19.0.0 < 20.0.0' - version: 19.0.0 + version: 19.2.11 eslint: specifier: ^8.57.0 || ^9.0.0 - version: 9.15.0(jiti@2.4.2) + version: 9.26.0(jiti@2.4.2) typescript: specifier: '*' - version: 5.5.4 + version: 5.8.3 packages/bundled-angular-compiler: {} @@ -243,14 +243,14 @@ importers: specifier: workspace:* version: link:../utils '@typescript-eslint/utils': - specifier: 8.27.0 - version: 8.27.0(eslint@9.15.0(jiti@2.4.2))(typescript@5.5.4) + specifier: 8.32.0 + version: 8.32.0(eslint@9.26.0(jiti@2.4.2))(typescript@5.8.3) eslint: specifier: ^8.57.0 || ^9.0.0 - version: 9.15.0(jiti@2.4.2) + version: 9.26.0(jiti@2.4.2) typescript: specifier: '*' - version: 5.5.4 + version: 5.8.3 devDependencies: '@angular-eslint/test-utils': specifier: workspace:* @@ -266,10 +266,10 @@ importers: version: link:../utils '@typescript-eslint/types': specifier: ^7.11.0 || ^8.0.0 - version: 8.16.0 + version: 8.32.0 '@typescript-eslint/utils': - specifier: 8.27.0 - version: 8.27.0(eslint@9.15.0(jiti@2.4.2))(typescript@5.5.4) + specifier: 8.32.0 + version: 8.32.0(eslint@9.26.0(jiti@2.4.2))(typescript@5.8.3) aria-query: specifier: 5.3.2 version: 5.3.2 @@ -278,10 +278,10 @@ importers: version: 4.1.0 eslint: specifier: ^8.57.0 || ^9.0.0 - version: 9.15.0(jiti@2.4.2) + version: 9.26.0(jiti@2.4.2) typescript: specifier: '*' - version: 5.5.4 + version: 5.8.3 devDependencies: '@angular-eslint/template-parser': specifier: workspace:* @@ -299,10 +299,10 @@ importers: dependencies: '@angular-devkit/core': specifier: '>= 19.0.0 < 20.0.0' - version: 19.0.0 + version: 19.2.11 '@angular-devkit/schematics': specifier: '>= 19.0.0 < 20.0.0' - version: 19.0.0 + version: 19.2.11 '@angular-eslint/eslint-plugin': specifier: workspace:* version: link:../eslint-plugin @@ -310,8 +310,8 @@ importers: specifier: workspace:* version: link:../eslint-plugin-template ignore: - specifier: 7.0.3 - version: 7.0.3 + specifier: 7.0.4 + version: 7.0.4 semver: specifier: 7.7.1 version: 7.7.1 @@ -320,11 +320,11 @@ importers: version: 3.1.1 devDependencies: '@typescript-eslint/utils': - specifier: 8.27.0 - version: 8.27.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.7.3) + specifier: 8.32.0 + version: 8.32.0(eslint@9.26.0(jiti@2.4.2))(typescript@5.8.3) eslint: - specifier: 9.23.0 - version: 9.23.0(jiti@2.4.2) + specifier: 9.26.0 + version: 9.26.0(jiti@2.4.2) packages/template-parser: dependencies: @@ -333,13 +333,13 @@ importers: version: link:../bundled-angular-compiler eslint: specifier: ^8.57.0 || ^9.0.0 - version: 9.15.0(jiti@2.4.2) + version: 9.26.0(jiti@2.4.2) eslint-scope: specifier: ^8.0.2 version: 8.3.0 typescript: specifier: '*' - version: 5.5.4 + version: 5.8.3 packages/test-utils: dependencies: @@ -347,20 +347,20 @@ importers: specifier: workspace:* version: link:../template-parser '@typescript-eslint/parser': - specifier: 8.27.0 - version: 8.27.0(eslint@9.15.0(jiti@2.4.2))(typescript@5.5.4) + specifier: 8.32.0 + version: 8.32.0(eslint@9.26.0(jiti@2.4.2))(typescript@5.8.3) '@typescript-eslint/rule-tester': - specifier: 8.27.0 - version: 8.27.0(patch_hash=0395d56159bca55b94596b2ce1a79005dd964f4b648c29e0c04c6dfcb85e13cf)(eslint@9.15.0(jiti@2.4.2))(typescript@5.5.4) + specifier: 8.32.0 + version: 8.32.0(patch_hash=0395d56159bca55b94596b2ce1a79005dd964f4b648c29e0c04c6dfcb85e13cf)(eslint@9.26.0(jiti@2.4.2))(typescript@5.8.3) '@typescript-eslint/utils': - specifier: 8.27.0 - version: 8.27.0(eslint@9.15.0(jiti@2.4.2))(typescript@5.5.4) + specifier: 8.32.0 + version: 8.32.0(eslint@9.26.0(jiti@2.4.2))(typescript@5.8.3) eslint: specifier: ^8.57.0 || ^9.0.0 - version: 9.15.0(jiti@2.4.2) + version: 9.26.0(jiti@2.4.2) typescript: specifier: '*' - version: 5.5.4 + version: 5.8.3 packages/utils: dependencies: @@ -368,14 +368,14 @@ importers: specifier: workspace:* version: link:../bundled-angular-compiler '@typescript-eslint/utils': - specifier: 8.27.0 - version: 8.27.0(eslint@9.15.0(jiti@2.4.2))(typescript@5.5.4) + specifier: 8.32.0 + version: 8.32.0(eslint@9.26.0(jiti@2.4.2))(typescript@5.8.3) eslint: specifier: ^8.57.0 || ^9.0.0 - version: 9.15.0(jiti@2.4.2) + version: 9.26.0(jiti@2.4.2) typescript: specifier: '*' - version: 5.5.4 + version: 5.8.3 packages: @@ -383,34 +383,12 @@ packages: resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} - '@angular-devkit/architect@0.1900.0': - resolution: {integrity: sha512-oC2CyKf9olKvthEwp2wmkKw+H9NhpnK9cWYHvajWeCRJ8A4DLaKwfMuZ9lioi92QPourrJzoikgp7C6m2AuuZQ==} - engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} - - '@angular-devkit/architect@0.1902.4': - resolution: {integrity: sha512-YTLiJ7uVItZTAxRuSgASP0M5qILESWH8xGmfR+YWR1JiJem09DWEOpWeLdha1BFzUui5L+6j1btzh4FUHJOtAg==} - engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} - - '@angular-devkit/core@19.0.0': - resolution: {integrity: sha512-/EJQOKVFb9vsFbPR+57C7fJHFVr7le9Ru6aormIKw24xyZZHtt5X4rwdeN7l6Zkv8F0cJ2EoTSiQoY17090DLQ==} - engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} - peerDependencies: - chokidar: ^4.0.0 - peerDependenciesMeta: - chokidar: - optional: true - - '@angular-devkit/core@19.0.2': - resolution: {integrity: sha512-p5pTx9rAtJUfoa7BP6R5U7dGFWHrrgpYpVyF3jwqYIu0h1C0rJIyY8q/HlkvzFxgfWag1qRf15oANq3G9fqdwg==} + '@angular-devkit/architect@0.1902.11': + resolution: {integrity: sha512-Zz/4ySZ4i8WXU4U4WwUGQm8wjwAyrMo5kjFt7O2SGmHQx7L/hChvcMLCGVkpHr27Xdsmrl//OXfbjkPgb6DFBg==} engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} - peerDependencies: - chokidar: ^4.0.0 - peerDependenciesMeta: - chokidar: - optional: true - '@angular-devkit/core@19.2.4': - resolution: {integrity: sha512-dL6AmCQsKh+CFVvO/jxX8qZpamVwt9r4iIo7fYcAI2+mTSDGxxBGWbS+onIfdPFuRp2HgKa+AT6WiHmRqu63AA==} + '@angular-devkit/core@19.2.11': + resolution: {integrity: sha512-hXacCEbLbVo/PYPHBhaU2LThFm0Q1tIGTsWSkQjtsQpW8e4xqgSnFIWaHdsPiiGryxtdtvNE2cr9qa0ddAJOnA==} engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} peerDependencies: chokidar: ^4.0.0 @@ -418,25 +396,17 @@ packages: chokidar: optional: true - '@angular-devkit/schematics@19.0.0': - resolution: {integrity: sha512-90pGZtpZgjDk1UgRBatfeqYP6qUZL9fLh+8zIpavOr2ey5bW2lADO7mS2Qrc7U1SmGqnxQXQQ7uIS+50gYm0tQ==} - engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} - - '@angular-devkit/schematics@19.0.2': - resolution: {integrity: sha512-bwq8ReC92gGFTd2BeNBWCnOqIKu2YKNvwMVc7dl+D154WO2gzCaK2J5nL97qm5EjoUoXgvFRs84ysSAnLFzBxQ==} - engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} - - '@angular-devkit/schematics@19.2.4': - resolution: {integrity: sha512-WaFe95ncm1A+QTlUHxQcFyGKIn67xgqGX7WCj8R0QlKOS0hLKx97SG4p19uwHlww0lmAcwk/QJP6G6sPL/CJ9w==} + '@angular-devkit/schematics@19.2.11': + resolution: {integrity: sha512-R5g18xBhMHRtti5kDd2tlEMMxfRi8gQZ6LoT5xbox3w2kGSt7NtkSa3SUoF7Ns7JfPLrKsTQbVLFd5AggBLbHQ==} engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} - '@angular/cli@19.2.4': - resolution: {integrity: sha512-YmZYrxdGBwSZsrnpS6vr9gQ8+PrZHzwyYW/3jU2NRAMtl0ZlipDyfpLIDgrfqYPeumzr7+SKtJYVvlsMnjkN4g==} + '@angular/cli@19.2.11': + resolution: {integrity: sha512-U+Sapv4S1v+LEywyCImhQf12c6vmhuJhBS58nBxWDUVn1kmYzdUCAKNDDgMQqWQmg/Dek1YI88XYDToUvEdD1g==} engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} hasBin: true - '@angular/compiler@19.2.3': - resolution: {integrity: sha512-TL/JIU7vzSWD+IrMq2PAiHZi7IUFSRhdHo8q6/WuZ8SQmbuXCK2pJvHZpTtUdLswdPeD/UVhkhTAhQzEyEdZVg==} + '@angular/compiler@19.2.10': + resolution: {integrity: sha512-XI4VVaTHIsvDu25b/hOqFBIub4RoEVqVrBYo1rKRF9NI+mxg2Wy30qyJ7rYGbF7qUPomC54pen0qQgw359YhMA==} engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0} '@apidevtools/json-schema-ref-parser@11.7.2': @@ -1054,258 +1024,258 @@ packages: '@bcoe/v8-coverage@0.2.3': resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} - '@commitlint/cli@19.8.0': - resolution: {integrity: sha512-t/fCrLVu+Ru01h0DtlgHZXbHV2Y8gKocTR5elDOqIRUzQd0/6hpt2VIWOj9b3NDo7y4/gfxeR2zRtXq/qO6iUg==} + '@commitlint/cli@19.8.1': + resolution: {integrity: sha512-LXUdNIkspyxrlV6VDHWBmCZRtkEVRpBKxi2Gtw3J54cGWhLCTouVD/Q6ZSaSvd2YaDObWK8mDjrz3TIKtaQMAA==} engines: {node: '>=v18'} hasBin: true - '@commitlint/config-conventional@19.8.0': - resolution: {integrity: sha512-9I2kKJwcAPwMoAj38hwqFXG0CzS2Kj+SAByPUQ0SlHTfb7VUhYVmo7G2w2tBrqmOf7PFd6MpZ/a1GQJo8na8kw==} + '@commitlint/config-conventional@19.8.1': + resolution: {integrity: sha512-/AZHJL6F6B/G959CsMAzrPKKZjeEiAVifRyEwXxcT6qtqbPwGw+iQxmNS+Bu+i09OCtdNRW6pNpBvgPrtMr9EQ==} engines: {node: '>=v18'} '@commitlint/config-validator@19.5.0': resolution: {integrity: sha512-CHtj92H5rdhKt17RmgALhfQt95VayrUo2tSqY9g2w+laAXyk7K/Ef6uPm9tn5qSIwSmrLjKaXK9eiNuxmQrDBw==} engines: {node: '>=v18'} - '@commitlint/config-validator@19.8.0': - resolution: {integrity: sha512-+r5ZvD/0hQC3w5VOHJhGcCooiAVdynFlCe2d6I9dU+PvXdV3O+fU4vipVg+6hyLbQUuCH82mz3HnT/cBQTYYuA==} + '@commitlint/config-validator@19.8.1': + resolution: {integrity: sha512-0jvJ4u+eqGPBIzzSdqKNX1rvdbSU1lPNYlfQQRIFnBgLy26BtC0cFnr7c/AyuzExMxWsMOte6MkTi9I3SQ3iGQ==} engines: {node: '>=v18'} - '@commitlint/ensure@19.8.0': - resolution: {integrity: sha512-kNiNU4/bhEQ/wutI1tp1pVW1mQ0QbAjfPRo5v8SaxoVV+ARhkB8Wjg3BSseNYECPzWWfg/WDqQGIfV1RaBFQZg==} + '@commitlint/ensure@19.8.1': + resolution: {integrity: sha512-mXDnlJdvDzSObafjYrOSvZBwkD01cqB4gbnnFuVyNpGUM5ijwU/r/6uqUmBXAAOKRfyEjpkGVZxaDsCVnHAgyw==} engines: {node: '>=v18'} '@commitlint/execute-rule@19.5.0': resolution: {integrity: sha512-aqyGgytXhl2ejlk+/rfgtwpPexYyri4t8/n4ku6rRJoRhGZpLFMqrZ+YaubeGysCP6oz4mMA34YSTaSOKEeNrg==} engines: {node: '>=v18'} - '@commitlint/execute-rule@19.8.0': - resolution: {integrity: sha512-fuLeI+EZ9x2v/+TXKAjplBJWI9CNrHnyi5nvUQGQt4WRkww/d95oVRsc9ajpt4xFrFmqMZkd/xBQHZDvALIY7A==} + '@commitlint/execute-rule@19.8.1': + resolution: {integrity: sha512-YfJyIqIKWI64Mgvn/sE7FXvVMQER/Cd+s3hZke6cI1xgNT/f6ZAz5heND0QtffH+KbcqAwXDEE1/5niYayYaQA==} engines: {node: '>=v18'} - '@commitlint/format@19.8.0': - resolution: {integrity: sha512-EOpA8IERpQstxwp/WGnDArA7S+wlZDeTeKi98WMOvaDLKbjptuHWdOYYr790iO7kTCif/z971PKPI2PkWMfOxg==} + '@commitlint/format@19.8.1': + resolution: {integrity: sha512-kSJj34Rp10ItP+Eh9oCItiuN/HwGQMXBnIRk69jdOwEW9llW9FlyqcWYbHPSGofmjsqeoxa38UaEA5tsbm2JWw==} engines: {node: '>=v18'} - '@commitlint/is-ignored@19.8.0': - resolution: {integrity: sha512-L2Jv9yUg/I+jF3zikOV0rdiHUul9X3a/oU5HIXhAJLE2+TXTnEBfqYP9G5yMw/Yb40SnR764g4fyDK6WR2xtpw==} + '@commitlint/is-ignored@19.8.1': + resolution: {integrity: sha512-AceOhEhekBUQ5dzrVhDDsbMaY5LqtN8s1mqSnT2Kz1ERvVZkNihrs3Sfk1Je/rxRNbXYFzKZSHaPsEJJDJV8dg==} engines: {node: '>=v18'} - '@commitlint/lint@19.8.0': - resolution: {integrity: sha512-+/NZKyWKSf39FeNpqhfMebmaLa1P90i1Nrb1SrA7oSU5GNN/lksA4z6+ZTnsft01YfhRZSYMbgGsARXvkr/VLQ==} + '@commitlint/lint@19.8.1': + resolution: {integrity: sha512-52PFbsl+1EvMuokZXLRlOsdcLHf10isTPlWwoY1FQIidTsTvjKXVXYb7AvtpWkDzRO2ZsqIgPK7bI98x8LRUEw==} engines: {node: '>=v18'} '@commitlint/load@19.5.0': resolution: {integrity: sha512-INOUhkL/qaKqwcTUvCE8iIUf5XHsEPCLY9looJ/ipzi7jtGhgmtH7OOFiNvwYgH7mA8osUWOUDV8t4E2HAi4xA==} engines: {node: '>=v18'} - '@commitlint/load@19.8.0': - resolution: {integrity: sha512-4rvmm3ff81Sfb+mcWT5WKlyOa+Hd33WSbirTVUer0wjS1Hv/Hzr07Uv1ULIV9DkimZKNyOwXn593c+h8lsDQPQ==} + '@commitlint/load@19.8.1': + resolution: {integrity: sha512-9V99EKG3u7z+FEoe4ikgq7YGRCSukAcvmKQuTtUyiYPnOd9a2/H9Ak1J9nJA1HChRQp9OA/sIKPugGS+FK/k1A==} engines: {node: '>=v18'} - '@commitlint/message@19.8.0': - resolution: {integrity: sha512-qs/5Vi9bYjf+ZV40bvdCyBn5DvbuelhR6qewLE8Bh476F7KnNyLfdM/ETJ4cp96WgeeHo6tesA2TMXS0sh5X4A==} + '@commitlint/message@19.8.1': + resolution: {integrity: sha512-+PMLQvjRXiU+Ae0Wc+p99EoGEutzSXFVwQfa3jRNUZLNW5odZAyseb92OSBTKCu+9gGZiJASt76Cj3dLTtcTdg==} engines: {node: '>=v18'} - '@commitlint/parse@19.8.0': - resolution: {integrity: sha512-YNIKAc4EXvNeAvyeEnzgvm1VyAe0/b3Wax7pjJSwXuhqIQ1/t2hD3OYRXb6D5/GffIvaX82RbjD+nWtMZCLL7Q==} + '@commitlint/parse@19.8.1': + resolution: {integrity: sha512-mmAHYcMBmAgJDKWdkjIGq50X4yB0pSGpxyOODwYmoexxxiUCy5JJT99t1+PEMK7KtsCtzuWYIAXYAiKR+k+/Jw==} engines: {node: '>=v18'} - '@commitlint/read@19.8.0': - resolution: {integrity: sha512-6ywxOGYajcxK1y1MfzrOnwsXO6nnErna88gRWEl3qqOOP8MDu/DTeRkGLXBFIZuRZ7mm5yyxU5BmeUvMpNte5w==} + '@commitlint/read@19.8.1': + resolution: {integrity: sha512-03Jbjb1MqluaVXKHKRuGhcKWtSgh3Jizqy2lJCRbRrnWpcM06MYm8th59Xcns8EqBYvo0Xqb+2DoZFlga97uXQ==} engines: {node: '>=v18'} '@commitlint/resolve-extends@19.5.0': resolution: {integrity: sha512-CU/GscZhCUsJwcKTJS9Ndh3AKGZTNFIOoQB2n8CmFnizE0VnEuJoum+COW+C1lNABEeqk6ssfc1Kkalm4bDklA==} engines: {node: '>=v18'} - '@commitlint/resolve-extends@19.8.0': - resolution: {integrity: sha512-CLanRQwuG2LPfFVvrkTrBR/L/DMy3+ETsgBqW1OvRxmzp/bbVJW0Xw23LnnExgYcsaFtos967lul1CsbsnJlzQ==} - engines: {node: '>=v18'} - - '@commitlint/rules@19.8.0': - resolution: {integrity: sha512-IZ5IE90h6DSWNuNK/cwjABLAKdy8tP8OgGVGbXe1noBEX5hSsu00uRlLu6JuruiXjWJz2dZc+YSw3H0UZyl/mA==} + '@commitlint/resolve-extends@19.8.1': + resolution: {integrity: sha512-GM0mAhFk49I+T/5UCYns5ayGStkTt4XFFrjjf0L4S26xoMTSkdCf9ZRO8en1kuopC4isDFuEm7ZOm/WRVeElVg==} engines: {node: '>=v18'} - '@commitlint/to-lines@19.8.0': - resolution: {integrity: sha512-3CKLUw41Cur8VMjh16y8LcsOaKbmQjAKCWlXx6B0vOUREplp6em9uIVhI8Cv934qiwkbi2+uv+mVZPnXJi1o9A==} + '@commitlint/rules@19.8.1': + resolution: {integrity: sha512-Hnlhd9DyvGiGwjfjfToMi1dsnw1EXKGJNLTcsuGORHz6SS9swRgkBsou33MQ2n51/boIDrbsg4tIBbRpEWK2kw==} engines: {node: '>=v18'} - '@commitlint/top-level@19.8.0': - resolution: {integrity: sha512-Rphgoc/omYZisoNkcfaBRPQr4myZEHhLPx2/vTXNLjiCw4RgfPR1wEgUpJ9OOmDCiv5ZyIExhprNLhteqH4FuQ==} + '@commitlint/to-lines@19.8.1': + resolution: {integrity: sha512-98Mm5inzbWTKuZQr2aW4SReY6WUukdWXuZhrqf1QdKPZBCCsXuG87c+iP0bwtD6DBnmVVQjgp4whoHRVixyPBg==} engines: {node: '>=v18'} - '@commitlint/types@19.5.0': - resolution: {integrity: sha512-DSHae2obMSMkAtTBSOulg5X7/z+rGLxcXQIkg3OmWvY6wifojge5uVMydfhUvs7yQj+V7jNmRZ2Xzl8GJyqRgg==} + '@commitlint/top-level@19.8.1': + resolution: {integrity: sha512-Ph8IN1IOHPSDhURCSXBz44+CIu+60duFwRsg6HqaISFHQHbmBtxVw4ZrFNIYUzEP7WwrNPxa2/5qJ//NK1FGcw==} engines: {node: '>=v18'} '@commitlint/types@19.8.0': resolution: {integrity: sha512-LRjP623jPyf3Poyfb0ohMj8I3ORyBDOwXAgxxVPbSD0unJuW2mJWeiRfaQinjtccMqC5Wy1HOMfa4btKjbNxbg==} engines: {node: '>=v18'} + '@commitlint/types@19.8.1': + resolution: {integrity: sha512-/yCrWGCoA1SVKOks25EGadP9Pnj0oAIHGpl2wH2M2Y46dPM2ueb8wyCVOD7O3WCTkaJ0IkKvzhl1JY7+uCT2Dw==} + engines: {node: '>=v18'} + '@cspotcode/source-map-support@0.8.1': resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} engines: {node: '>=12'} - '@cypress/request@3.0.7': - resolution: {integrity: sha512-LzxlLEMbBOPYB85uXrDqvD4MgcenjRBLIns3zyhx7vTPj/0u2eQhzXvPiGcaJrV38Q9dbkExWp6cOHPJ+EtFYg==} + '@cypress/request@3.0.8': + resolution: {integrity: sha512-h0NFgh1mJmm1nr4jCwkGHwKneVYKghUyWe6TMNrk0B9zsjAJxpg8C4/+BAcmLgCPa1vj1V8rNUaILl+zYRUWBQ==} engines: {node: '>= 6'} - '@emnapi/core@1.3.1': - resolution: {integrity: sha512-pVGjBIt1Y6gg3EJN8jTcfpP/+uuRksIo055oE/OBkDNcjZqVbfkWCksG1Jp4yZnj3iKWyWX8fdG/j6UDYPbFog==} + '@emnapi/core@1.4.3': + resolution: {integrity: sha512-4m62DuCE07lw01soJwPiBGC0nAww0Q+RY70VZ+n49yDIO13yyinhbWCeNnaob0lakDtWQzSdtNWzJeOJt2ma+g==} - '@emnapi/runtime@1.3.1': - resolution: {integrity: sha512-kEBmG8KyqtxJZv+ygbEim+KCGtIq1fC22Ms3S4ziXmYKm8uyoLX0MHONVKwp+9opg390VaKRNt4a7A9NwmpNhw==} + '@emnapi/runtime@1.4.3': + resolution: {integrity: sha512-pBPWdu6MLKROBX05wSNKcNb++m5Er+KQ9QkB+WVM+pW2Kx9hoSrVTnu3BdkI5eBLZoKu/J6mW/B6i6bJB2ytXQ==} - '@emnapi/wasi-threads@1.0.1': - resolution: {integrity: sha512-iIBu7mwkq4UQGeMEM8bLwNK962nXdhodeScX4slfQnRhEMMzvYivHhutCIk8uojvmASXXPC2WNEjwxFWk72Oqw==} + '@emnapi/wasi-threads@1.0.2': + resolution: {integrity: sha512-5n3nTJblwRi8LlXkJ9eBzu+kZR8Yxcc7ubakyQTFzPMtIhFpUBRbsnc2Dv88IZDIbCDlBiWrknhB4Lsz7mg6BA==} - '@esbuild/aix-ppc64@0.25.1': - resolution: {integrity: sha512-kfYGy8IdzTGy+z0vFGvExZtxkFlA4zAxgKEahG9KE1ScBjpQnFsNOX8KTU5ojNru5ed5CVoJYXFtoxaq5nFbjQ==} + '@esbuild/aix-ppc64@0.25.4': + resolution: {integrity: sha512-1VCICWypeQKhVbE9oW/sJaAmjLxhVqacdkvPLEjwlttjfwENRSClS8EjBz0KzRyFSCPDIkuXW34Je/vk7zdB7Q==} engines: {node: '>=18'} cpu: [ppc64] os: [aix] - '@esbuild/android-arm64@0.25.1': - resolution: {integrity: sha512-50tM0zCJW5kGqgG7fQ7IHvQOcAn9TKiVRuQ/lN0xR+T2lzEFvAi1ZcS8DiksFcEpf1t/GYOeOfCAgDHFpkiSmA==} + '@esbuild/android-arm64@0.25.4': + resolution: {integrity: sha512-bBy69pgfhMGtCnwpC/x5QhfxAz/cBgQ9enbtwjf6V9lnPI/hMyT9iWpR1arm0l3kttTr4L0KSLpKmLp/ilKS9A==} engines: {node: '>=18'} cpu: [arm64] os: [android] - '@esbuild/android-arm@0.25.1': - resolution: {integrity: sha512-dp+MshLYux6j/JjdqVLnMglQlFu+MuVeNrmT5nk6q07wNhCdSnB7QZj+7G8VMUGh1q+vj2Bq8kRsuyA00I/k+Q==} + '@esbuild/android-arm@0.25.4': + resolution: {integrity: sha512-QNdQEps7DfFwE3hXiU4BZeOV68HHzYwGd0Nthhd3uCkkEKK7/R6MTgM0P7H7FAs5pU/DIWsviMmEGxEoxIZ+ZQ==} engines: {node: '>=18'} cpu: [arm] os: [android] - '@esbuild/android-x64@0.25.1': - resolution: {integrity: sha512-GCj6WfUtNldqUzYkN/ITtlhwQqGWu9S45vUXs7EIYf+7rCiiqH9bCloatO9VhxsL0Pji+PF4Lz2XXCES+Q8hDw==} + '@esbuild/android-x64@0.25.4': + resolution: {integrity: sha512-TVhdVtQIFuVpIIR282btcGC2oGQoSfZfmBdTip2anCaVYcqWlZXGcdcKIUklfX2wj0JklNYgz39OBqh2cqXvcQ==} engines: {node: '>=18'} cpu: [x64] os: [android] - '@esbuild/darwin-arm64@0.25.1': - resolution: {integrity: sha512-5hEZKPf+nQjYoSr/elb62U19/l1mZDdqidGfmFutVUjjUZrOazAtwK+Kr+3y0C/oeJfLlxo9fXb1w7L+P7E4FQ==} + '@esbuild/darwin-arm64@0.25.4': + resolution: {integrity: sha512-Y1giCfM4nlHDWEfSckMzeWNdQS31BQGs9/rouw6Ub91tkK79aIMTH3q9xHvzH8d0wDru5Ci0kWB8b3up/nl16g==} engines: {node: '>=18'} cpu: [arm64] os: [darwin] - '@esbuild/darwin-x64@0.25.1': - resolution: {integrity: sha512-hxVnwL2Dqs3fM1IWq8Iezh0cX7ZGdVhbTfnOy5uURtao5OIVCEyj9xIzemDi7sRvKsuSdtCAhMKarxqtlyVyfA==} + '@esbuild/darwin-x64@0.25.4': + resolution: {integrity: sha512-CJsry8ZGM5VFVeyUYB3cdKpd/H69PYez4eJh1W/t38vzutdjEjtP7hB6eLKBoOdxcAlCtEYHzQ/PJ/oU9I4u0A==} engines: {node: '>=18'} cpu: [x64] os: [darwin] - '@esbuild/freebsd-arm64@0.25.1': - resolution: {integrity: sha512-1MrCZs0fZa2g8E+FUo2ipw6jw5qqQiH+tERoS5fAfKnRx6NXH31tXBKI3VpmLijLH6yriMZsxJtaXUyFt/8Y4A==} + '@esbuild/freebsd-arm64@0.25.4': + resolution: {integrity: sha512-yYq+39NlTRzU2XmoPW4l5Ifpl9fqSk0nAJYM/V/WUGPEFfek1epLHJIkTQM6bBs1swApjO5nWgvr843g6TjxuQ==} engines: {node: '>=18'} cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-x64@0.25.1': - resolution: {integrity: sha512-0IZWLiTyz7nm0xuIs0q1Y3QWJC52R8aSXxe40VUxm6BB1RNmkODtW6LHvWRrGiICulcX7ZvyH6h5fqdLu4gkww==} + '@esbuild/freebsd-x64@0.25.4': + resolution: {integrity: sha512-0FgvOJ6UUMflsHSPLzdfDnnBBVoCDtBTVyn/MrWloUNvq/5SFmh13l3dvgRPkDihRxb77Y17MbqbCAa2strMQQ==} engines: {node: '>=18'} cpu: [x64] os: [freebsd] - '@esbuild/linux-arm64@0.25.1': - resolution: {integrity: sha512-jaN3dHi0/DDPelk0nLcXRm1q7DNJpjXy7yWaWvbfkPvI+7XNSc/lDOnCLN7gzsyzgu6qSAmgSvP9oXAhP973uQ==} + '@esbuild/linux-arm64@0.25.4': + resolution: {integrity: sha512-+89UsQTfXdmjIvZS6nUnOOLoXnkUTB9hR5QAeLrQdzOSWZvNSAXAtcRDHWtqAUtAmv7ZM1WPOOeSxDzzzMogiQ==} engines: {node: '>=18'} cpu: [arm64] os: [linux] - '@esbuild/linux-arm@0.25.1': - resolution: {integrity: sha512-NdKOhS4u7JhDKw9G3cY6sWqFcnLITn6SqivVArbzIaf3cemShqfLGHYMx8Xlm/lBit3/5d7kXvriTUGa5YViuQ==} + '@esbuild/linux-arm@0.25.4': + resolution: {integrity: sha512-kro4c0P85GMfFYqW4TWOpvmF8rFShbWGnrLqlzp4X1TNWjRY3JMYUfDCtOxPKOIY8B0WC8HN51hGP4I4hz4AaQ==} engines: {node: '>=18'} cpu: [arm] os: [linux] - '@esbuild/linux-ia32@0.25.1': - resolution: {integrity: sha512-OJykPaF4v8JidKNGz8c/q1lBO44sQNUQtq1KktJXdBLn1hPod5rE/Hko5ugKKZd+D2+o1a9MFGUEIUwO2YfgkQ==} + '@esbuild/linux-ia32@0.25.4': + resolution: {integrity: sha512-yTEjoapy8UP3rv8dB0ip3AfMpRbyhSN3+hY8mo/i4QXFeDxmiYbEKp3ZRjBKcOP862Ua4b1PDfwlvbuwY7hIGQ==} engines: {node: '>=18'} cpu: [ia32] os: [linux] - '@esbuild/linux-loong64@0.25.1': - resolution: {integrity: sha512-nGfornQj4dzcq5Vp835oM/o21UMlXzn79KobKlcs3Wz9smwiifknLy4xDCLUU0BWp7b/houtdrgUz7nOGnfIYg==} + '@esbuild/linux-loong64@0.25.4': + resolution: {integrity: sha512-NeqqYkrcGzFwi6CGRGNMOjWGGSYOpqwCjS9fvaUlX5s3zwOtn1qwg1s2iE2svBe4Q/YOG1q6875lcAoQK/F4VA==} engines: {node: '>=18'} cpu: [loong64] os: [linux] - '@esbuild/linux-mips64el@0.25.1': - resolution: {integrity: sha512-1osBbPEFYwIE5IVB/0g2X6i1qInZa1aIoj1TdL4AaAb55xIIgbg8Doq6a5BzYWgr+tEcDzYH67XVnTmUzL+nXg==} + '@esbuild/linux-mips64el@0.25.4': + resolution: {integrity: sha512-IcvTlF9dtLrfL/M8WgNI/qJYBENP3ekgsHbYUIzEzq5XJzzVEV/fXY9WFPfEEXmu3ck2qJP8LG/p3Q8f7Zc2Xg==} engines: {node: '>=18'} cpu: [mips64el] os: [linux] - '@esbuild/linux-ppc64@0.25.1': - resolution: {integrity: sha512-/6VBJOwUf3TdTvJZ82qF3tbLuWsscd7/1w+D9LH0W/SqUgM5/JJD0lrJ1fVIfZsqB6RFmLCe0Xz3fmZc3WtyVg==} + '@esbuild/linux-ppc64@0.25.4': + resolution: {integrity: sha512-HOy0aLTJTVtoTeGZh4HSXaO6M95qu4k5lJcH4gxv56iaycfz1S8GO/5Jh6X4Y1YiI0h7cRyLi+HixMR+88swag==} engines: {node: '>=18'} cpu: [ppc64] os: [linux] - '@esbuild/linux-riscv64@0.25.1': - resolution: {integrity: sha512-nSut/Mx5gnilhcq2yIMLMe3Wl4FK5wx/o0QuuCLMtmJn+WeWYoEGDN1ipcN72g1WHsnIbxGXd4i/MF0gTcuAjQ==} + '@esbuild/linux-riscv64@0.25.4': + resolution: {integrity: sha512-i8JUDAufpz9jOzo4yIShCTcXzS07vEgWzyX3NH2G7LEFVgrLEhjwL3ajFE4fZI3I4ZgiM7JH3GQ7ReObROvSUA==} engines: {node: '>=18'} cpu: [riscv64] os: [linux] - '@esbuild/linux-s390x@0.25.1': - resolution: {integrity: sha512-cEECeLlJNfT8kZHqLarDBQso9a27o2Zd2AQ8USAEoGtejOrCYHNtKP8XQhMDJMtthdF4GBmjR2au3x1udADQQQ==} + '@esbuild/linux-s390x@0.25.4': + resolution: {integrity: sha512-jFnu+6UbLlzIjPQpWCNh5QtrcNfMLjgIavnwPQAfoGx4q17ocOU9MsQ2QVvFxwQoWpZT8DvTLooTvmOQXkO51g==} engines: {node: '>=18'} cpu: [s390x] os: [linux] - '@esbuild/linux-x64@0.25.1': - resolution: {integrity: sha512-xbfUhu/gnvSEg+EGovRc+kjBAkrvtk38RlerAzQxvMzlB4fXpCFCeUAYzJvrnhFtdeyVCDANSjJvOvGYoeKzFA==} + '@esbuild/linux-x64@0.25.4': + resolution: {integrity: sha512-6e0cvXwzOnVWJHq+mskP8DNSrKBr1bULBvnFLpc1KY+d+irZSgZ02TGse5FsafKS5jg2e4pbvK6TPXaF/A6+CA==} engines: {node: '>=18'} cpu: [x64] os: [linux] - '@esbuild/netbsd-arm64@0.25.1': - resolution: {integrity: sha512-O96poM2XGhLtpTh+s4+nP7YCCAfb4tJNRVZHfIE7dgmax+yMP2WgMd2OecBuaATHKTHsLWHQeuaxMRnCsH8+5g==} + '@esbuild/netbsd-arm64@0.25.4': + resolution: {integrity: sha512-vUnkBYxZW4hL/ie91hSqaSNjulOnYXE1VSLusnvHg2u3jewJBz3YzB9+oCw8DABeVqZGg94t9tyZFoHma8gWZQ==} engines: {node: '>=18'} cpu: [arm64] os: [netbsd] - '@esbuild/netbsd-x64@0.25.1': - resolution: {integrity: sha512-X53z6uXip6KFXBQ+Krbx25XHV/NCbzryM6ehOAeAil7X7oa4XIq+394PWGnwaSQ2WRA0KI6PUO6hTO5zeF5ijA==} + '@esbuild/netbsd-x64@0.25.4': + resolution: {integrity: sha512-XAg8pIQn5CzhOB8odIcAm42QsOfa98SBeKUdo4xa8OvX8LbMZqEtgeWE9P/Wxt7MlG2QqvjGths+nq48TrUiKw==} engines: {node: '>=18'} cpu: [x64] os: [netbsd] - '@esbuild/openbsd-arm64@0.25.1': - resolution: {integrity: sha512-Na9T3szbXezdzM/Kfs3GcRQNjHzM6GzFBeU1/6IV/npKP5ORtp9zbQjvkDJ47s6BCgaAZnnnu/cY1x342+MvZg==} + '@esbuild/openbsd-arm64@0.25.4': + resolution: {integrity: sha512-Ct2WcFEANlFDtp1nVAXSNBPDxyU+j7+tId//iHXU2f/lN5AmO4zLyhDcpR5Cz1r08mVxzt3Jpyt4PmXQ1O6+7A==} engines: {node: '>=18'} cpu: [arm64] os: [openbsd] - '@esbuild/openbsd-x64@0.25.1': - resolution: {integrity: sha512-T3H78X2h1tszfRSf+txbt5aOp/e7TAz3ptVKu9Oyir3IAOFPGV6O9c2naym5TOriy1l0nNf6a4X5UXRZSGX/dw==} + '@esbuild/openbsd-x64@0.25.4': + resolution: {integrity: sha512-xAGGhyOQ9Otm1Xu8NT1ifGLnA6M3sJxZ6ixylb+vIUVzvvd6GOALpwQrYrtlPouMqd/vSbgehz6HaVk4+7Afhw==} engines: {node: '>=18'} cpu: [x64] os: [openbsd] - '@esbuild/sunos-x64@0.25.1': - resolution: {integrity: sha512-2H3RUvcmULO7dIE5EWJH8eubZAI4xw54H1ilJnRNZdeo8dTADEZ21w6J22XBkXqGJbe0+wnNJtw3UXRoLJnFEg==} + '@esbuild/sunos-x64@0.25.4': + resolution: {integrity: sha512-Mw+tzy4pp6wZEK0+Lwr76pWLjrtjmJyUB23tHKqEDP74R3q95luY/bXqXZeYl4NYlvwOqoRKlInQialgCKy67Q==} engines: {node: '>=18'} cpu: [x64] os: [sunos] - '@esbuild/win32-arm64@0.25.1': - resolution: {integrity: sha512-GE7XvrdOzrb+yVKB9KsRMq+7a2U/K5Cf/8grVFRAGJmfADr/e/ODQ134RK2/eeHqYV5eQRFxb1hY7Nr15fv1NQ==} + '@esbuild/win32-arm64@0.25.4': + resolution: {integrity: sha512-AVUP428VQTSddguz9dO9ngb+E5aScyg7nOeJDrF1HPYu555gmza3bDGMPhmVXL8svDSoqPCsCPjb265yG/kLKQ==} engines: {node: '>=18'} cpu: [arm64] os: [win32] - '@esbuild/win32-ia32@0.25.1': - resolution: {integrity: sha512-uOxSJCIcavSiT6UnBhBzE8wy3n0hOkJsBOzy7HDAuTDE++1DJMRRVCPGisULScHL+a/ZwdXPpXD3IyFKjA7K8A==} + '@esbuild/win32-ia32@0.25.4': + resolution: {integrity: sha512-i1sW+1i+oWvQzSgfRcxxG2k4I9n3O9NRqy8U+uugaT2Dy7kLO9Y7wI72haOahxceMX8hZAzgGou1FhndRldxRg==} engines: {node: '>=18'} cpu: [ia32] os: [win32] - '@esbuild/win32-x64@0.25.1': - resolution: {integrity: sha512-Y1EQdcfwMSeQN/ujR5VayLOJ1BHaK+ssyk0AEzPjC+t1lITgsnccPqFjb6V+LsTp/9Iov4ysfjxLaGJ9RPtkVg==} + '@esbuild/win32-x64@0.25.4': + resolution: {integrity: sha512-nOT2vZNw6hJ+z43oP1SPea/G/6AbN6X+bGNhNuq8NtRHy4wsMhw765IKLNmnjek7GvjWBYQ8Q5VBoYTFg9y1UQ==} engines: {node: '>=18'} cpu: [x64] os: [win32] @@ -1316,8 +1286,8 @@ packages: peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - '@eslint-community/eslint-utils@4.5.1': - resolution: {integrity: sha512-soEIOALTfTK6EjmKMMoLugwaP0rzkad90iIWd1hMO9ARkSAyjfMfkRRhLvD5qH7vvM0Cg72pieUfR6yh6XxC4w==} + '@eslint-community/eslint-utils@4.7.0': + resolution: {integrity: sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 @@ -1326,68 +1296,32 @@ packages: resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - '@eslint/config-array@0.19.0': - resolution: {integrity: sha512-zdHg2FPIFNKPdcHWtiNT+jEFCHYVplAXRDlQDyqy0zGx/q2parwh7brGJSiTxRk/TSMkbM//zt/f5CHgyTyaSQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@eslint/config-array@0.19.2': - resolution: {integrity: sha512-GNKqxfHG2ySmJOBSHg7LxeUx4xpuCoFjacmlCoYWEbaPXLwvfIjixRI12xCQZeULksQb23uiA8F40w5TojpV7w==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@eslint/config-helpers@0.1.0': - resolution: {integrity: sha512-kLrdPDJE1ckPo94kmPPf9Hfd0DU0Jw6oKYrhe+pwSC0iTUInmTa+w6fw8sGgcfkFJGNdWOUeOaDM4quW4a7OkA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@eslint/config-helpers@0.2.0': - resolution: {integrity: sha512-yJLLmLexii32mGrhW29qvU3QBVTu0GUmEf/J4XsBtVhp4JkIUFN/BjWqTF63yRvGApIDpZm5fa97LtYtINmfeQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@eslint/core@0.12.0': - resolution: {integrity: sha512-cmrR6pytBuSMTaBweKoGMwu3EiHiEC+DoyupPmlZ0HxBJBtIxwe+j/E4XPIKNx+Q74c8lXKPwYawBf5glsTkHg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@eslint/core@0.9.0': - resolution: {integrity: sha512-7ATR9F0e4W85D/0w7cU0SNj7qkAexMG+bAHEZOjo9akvGuhHE2m7umzWzfnpa0XAg5Kxc1BWmtPMV67jJ+9VUg==} + '@eslint/config-array@0.20.0': + resolution: {integrity: sha512-fxlS1kkIjx8+vy2SjuCB94q3htSNrufYTXubwiBFeaQHbH6Ipi43gFJq2zCMt6PHhImH3Xmr0NksKDvchWlpQQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/eslintrc@3.2.0': - resolution: {integrity: sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==} + '@eslint/config-helpers@0.2.1': + resolution: {integrity: sha512-RI17tsD2frtDu/3dmI7QRrD4bedNKPM08ziRYaC5AhkGrzIAJelm9kJU1TznK+apx6V+cqRz8tfpEeG3oIyjxw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/eslintrc@3.3.0': - resolution: {integrity: sha512-yaVPAiNAalnCZedKLdR21GOGILMLKPyqSLWaAjQFvYA2i/ciDi8ArYVr69Anohb6cH2Ukhqti4aFnYyPm8wdwQ==} + '@eslint/core@0.13.0': + resolution: {integrity: sha512-yfkgDw1KR66rkT5A8ci4irzDysN7FRpq3ttJolR88OqQikAWqwA8j5VZyas+vjyBNFIJ7MfybJ9plMILI2UrCw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@eslint/eslintrc@3.3.1': resolution: {integrity: sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/js@9.15.0': - resolution: {integrity: sha512-tMTqrY+EzbXmKJR5ToI8lxu7jaN5EdmrBFJpQk5JmSlyLsx6o4t27r883K5xsLuCYCpfKBCGswMSWXsM+jB7lg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@eslint/js@9.22.0': - resolution: {integrity: sha512-vLFajx9o8d1/oL2ZkpMYbkLv8nDB6yaIwFNt7nI4+I80U/z03SxmfOMsLbvWr3p7C+Wnoh//aOu2pQW8cS0HCQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@eslint/js@9.23.0': - resolution: {integrity: sha512-35MJ8vCPU0ZMxo7zfev2pypqTwWTofFZO6m4KAtdoFhRpLJUpHTZZ+KB3C7Hb1d7bULYwO4lJXGCi5Se+8OMbw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@eslint/object-schema@2.1.4': - resolution: {integrity: sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==} + '@eslint/js@9.26.0': + resolution: {integrity: sha512-I9XlJawFdSMvWjDt6wksMCrgns5ggLNfFwFvnShsleWruvXM514Qxk8V246efTw+eo9JABvVz+u3q2RiAowKxQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@eslint/object-schema@2.1.6': resolution: {integrity: sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/plugin-kit@0.2.3': - resolution: {integrity: sha512-2b/g5hRmpbb1o4GnTZax9N9m0FXzz9OV42ZzI4rDDMDuHUqigAiQCEWChBWCY4ztAGVRjoWT19v0yMmc5/L5kA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@eslint/plugin-kit@0.2.7': - resolution: {integrity: sha512-JubJ5B2pJ4k4yGxaNLdbjrnk9d/iDz6/q8wOilpIowd6PJPgaxCuHBnBszq7Ce2TyMrywm5r4PnKm6V3iiZF+g==} + '@eslint/plugin-kit@0.2.8': + resolution: {integrity: sha512-ZAoA40rNMPwSm+AeHpCq8STiNAwzWLJuP8Xv4CHIc9wv/PSuExjMrmjfYNj682vW0OOiZ1HKxzvjQr9XZIisQA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@humanfs/core@0.19.1': @@ -1406,10 +1340,6 @@ packages: resolution: {integrity: sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==} engines: {node: '>=18.18'} - '@humanwhocodes/retry@0.4.1': - resolution: {integrity: sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA==} - engines: {node: '>=18.18'} - '@humanwhocodes/retry@0.4.2': resolution: {integrity: sha512-xeO57FpIu4p1Ri3Jq/EXq4ClRm86dVF2z/+kvFnyqVYRavTZmaFaUBbWCOuuTh0o/g7DSsk6kc2vrS4Vl5oPOQ==} engines: {node: '>=18.18'} @@ -1651,8 +1581,12 @@ packages: peerDependencies: '@inquirer/prompts': '>= 3 < 8' - '@mdn/browser-compat-data@5.7.5': - resolution: {integrity: sha512-AD9mNP6Yv1IdFOnP22UnggZM1Cx6MWcTlatCLzv69ObHNJsyKHAACnjc7ldlF9sIBs76J3jGfto1TywCFRy5DA==} + '@mdn/browser-compat-data@6.0.12': + resolution: {integrity: sha512-lQ6p212jKeJBG+L7UYRKchTCcnQbp6yOj5swKxGLjvuW4SmbgWgd/WyA1Dxq1GGT86C7jVTEaKry36LmsBp8SQ==} + + '@modelcontextprotocol/sdk@1.11.0': + resolution: {integrity: sha512-k/1pb70eD638anoi0e8wUGAlbMJXyvdV4p62Ko+EZ7eBe1xMx8Uhak1R5DgfoofsK5IBBnRwsYGTaLZl+6/+RQ==} + engines: {node: '>=18'} '@napi-rs/nice-android-arm-eabi@1.0.1': resolution: {integrity: sha512-5qpvOu5IGwDo7MEKVqqyAxF90I6aLj4n07OzpARdgDRfz8UbBztTByBp0RC59r3J1Ij8uzYi6jI7r5Lws7nn6w==} @@ -1757,8 +1691,8 @@ packages: '@napi-rs/wasm-runtime@0.2.4': resolution: {integrity: sha512-9zESzOO5aDByvhIAsOy9TbpZ0Ur2AJbUI7UT73kcUTS2mxAMHOBaa1st/jAymNoCtvrit99kkzT1FZuXVcgfIQ==} - '@napi-rs/wasm-runtime@0.2.7': - resolution: {integrity: sha512-5yximcFK5FNompXfJFoWanu5l8v1hNGqNHh9du1xETp9HWk/B/PzvchX55WYOPaIeNglG8++68AAiauBAtbnzw==} + '@napi-rs/wasm-runtime@0.2.9': + resolution: {integrity: sha512-OKRBiajrrxB9ATokgEQoG87Z25c67pCpYcCwmXYX8PBftC9pBfN18gnm/fh1wurSLEKIAt+QRFLFCQISrb66Jg==} '@nodelib/fs.scandir@2.1.5': resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} @@ -1817,30 +1751,30 @@ packages: resolution: {integrity: sha512-q9C0uHrb6B6cm3qXVM32UmpqTKuFGbtP23O2K5sLvPMz2hilKd0ptqGXSpuunOuOmPQb/aT5F/kCXFc1P2gO/A==} engines: {node: ^18.17.0 || >=20.5.0} - '@nx/devkit@0.0.0-pr-30418-4f79396': - resolution: {integrity: sha512-69Bza98Fg0wJFLfth/ysUOJUKQgaicnYn+CapwvokAik6nWTCEupHaw9uApL9qs01YAJAGdMPPFy5Vn4GJAjJg==} + '@nx/devkit@21.0.2': + resolution: {integrity: sha512-FF1+CYkqRmNUznAj9kWiRHZT91KrpZkLYmAoP5RlaXwSxgiiBTXL3FOIp0/LcHUlOUHur3079beBwreApfbvBA==} peerDependencies: - nx: '>= 19 <= 21' + nx: 21.0.2 - '@nx/esbuild@0.0.0-pr-30418-4f79396': - resolution: {integrity: sha512-kMgFEQ0vI11FEOeHNr6ebxqIE3xHzSue8Mf+1KJI+HImO6wHcC9C5SgOpGhiM7yJlupi6o93zcpzJ2a2sbugkA==} + '@nx/esbuild@21.0.2': + resolution: {integrity: sha512-muxyNOW253izBdXSU6LYfrMTBJi5lZpX6SS+ghBWvvZhgw+kcRwGdNwSCrPLuILTTXRMYUoAJcAXXp0UFz8orQ==} peerDependencies: esbuild: ^0.19.2 peerDependenciesMeta: esbuild: optional: true - '@nx/eslint-plugin@0.0.0-pr-30418-4f79396': - resolution: {integrity: sha512-TvmNHZXqsW+/orP8de3QMgmFQF02AKfL0aKMQM/wKdDYI8Kwfgxjc9RGDgByDlg0ZjwoYa3cWzpDJJgd2chlaQ==} + '@nx/eslint-plugin@21.0.2': + resolution: {integrity: sha512-LbLq4WewxZ7nqw6rgg+ik0CXHCS+dkUN7Mew5z058IzBoB9XytkWdpv0I9r1Ry0qE/ZGEtGYfvT6PROUPQL8wA==} peerDependencies: - '@typescript-eslint/parser': 8.27.0 - eslint-config-prettier: ^9.0.0 + '@typescript-eslint/parser': 8.32.0 + eslint-config-prettier: ^10.0.0 peerDependenciesMeta: eslint-config-prettier: optional: true - '@nx/eslint@0.0.0-pr-30418-4f79396': - resolution: {integrity: sha512-OKoV/6KLX2BAP42J0aFySx9ilhOvG7IPrHVTtJ9pVXv7ERPqqfP6YnzNV4H3aPZOEaQxBvt0kTETA2KIadKxRQ==} + '@nx/eslint@21.0.2': + resolution: {integrity: sha512-uZwzaqiMWXFaF+A86HK3K4AQIIOuGA3UAgnS6PUk6c7vUuLkJw1FLdFbdCA5LdyHoVu8BHdsinshxbiVl5tn2Q==} peerDependencies: '@zkochan/js-yaml': 0.0.7 eslint: ^8.0.0 || ^9.0.0 @@ -1848,135 +1782,135 @@ packages: '@zkochan/js-yaml': optional: true - '@nx/jest@0.0.0-pr-30418-4f79396': - resolution: {integrity: sha512-m7XTAwbXoB1rEOXpoNNHYKlQ7aAK+Ip8fW6M7ARzDTyzgNF0RpNLBC08OavtO2iP7Ge0SRVcpmgnk15W3/zIww==} + '@nx/jest@21.0.2': + resolution: {integrity: sha512-k9jJHHOE7OK9V6NOMc92AOw/Y0a5rpq3bYVs3wkRRo8F/230wQK+ea+ftsJ25rghJoCzqRnGVZe0cZcd4gBNDQ==} - '@nx/js@0.0.0-pr-30418-4f79396': - resolution: {integrity: sha512-4SUsWtedZNqPEDzGg9TEIRIQfipyninrICmWltw2bn1hfKvjsdIUogP0obJs+pQ10PSD0x/KpDlfqJ5UFAWw+w==} + '@nx/js@21.0.2': + resolution: {integrity: sha512-AhqAUkqu2YDbMXqr0g/5Qhlm/ERV1FockmpK6ltYHRDaQu/yW/VKIPQtj0ndrSAKfZ74pjt8koyhFdGZjt9cMg==} peerDependencies: verdaccio: ^6.0.5 peerDependenciesMeta: verdaccio: optional: true - '@nx/nx-darwin-arm64@0.0.0-pr-30418-4f79396': - resolution: {integrity: sha512-lzCm7WvtoXE7XtWjaBX3n7E+CxPiguR894qD3LhyqqQTh5COcPKRIXqdweVLDx6SBxpb4A1auuFFWclTL9pscw==} - engines: {node: '>= 10'} + '@nx/nx-darwin-arm64@21.0.2': + resolution: {integrity: sha512-C2A94y4TJpAsxbyAZufCzcWNDFKvHNcGCxSwdMxyaDBHXOxDasSYH6KsUTj95sZtjMiHvMn9J4xforTwF/tE7w==} cpu: [arm64] os: [darwin] - '@nx/nx-darwin-x64@0.0.0-pr-30418-4f79396': - resolution: {integrity: sha512-K+8Je3BMm40sp/nyvFqa7Y8qE9+gFI+RCHr0LpqiK+IJsasw3hZurLJwPuTOqBiMhKiDb/h1rjhW/GAjTAMGkA==} - engines: {node: '>= 10'} + '@nx/nx-darwin-x64@21.0.2': + resolution: {integrity: sha512-eWHM0gmOZBuqFw0QrO6h/ku0+LxbjmTYaWFJerPjqfAyOHKI9CEY/nPWHuJRkq7algUQdlgX5Utf+oQ+6aJlTQ==} cpu: [x64] os: [darwin] - '@nx/nx-freebsd-x64@0.0.0-pr-30418-4f79396': - resolution: {integrity: sha512-dmK4b2IKJvmF/Jouccd0aLE5l8AS8wsqGWI9An7qojDIawmsAncyUtsHGcN3Ow+ibx1GNdpzmfJ1D9zrGAS75w==} - engines: {node: '>= 10'} + '@nx/nx-freebsd-x64@21.0.2': + resolution: {integrity: sha512-k9bPYiHscJhinxlWC/iZTObpZo6SEBqEaObvgBH4csZpirQ5sQSy/tHB0H1pPKzDwLqkRtUHn3Z6hdWwjF1hdQ==} cpu: [x64] os: [freebsd] - '@nx/nx-linux-arm-gnueabihf@0.0.0-pr-30418-4f79396': - resolution: {integrity: sha512-CAL73NUhBj4VfVe3iIpeHmORulO0PVGVZcWWHeJW5hm5shSlTbvMvG9nVYfZ83Y9ELFZf3Tzg3cybn06phFOoA==} - engines: {node: '>= 10'} + '@nx/nx-linux-arm-gnueabihf@21.0.2': + resolution: {integrity: sha512-4u9TIfaeG+H9p8+LWXkBMJzqEVqfae0SMB06r7WB4RDRRe5elkU7sOtJK1LRs2MogBpTC6AErShFHXGEgQhSIQ==} cpu: [arm] os: [linux] - '@nx/nx-linux-arm64-gnu@0.0.0-pr-30418-4f79396': - resolution: {integrity: sha512-p4zReI7l7pUK6KbeOMlh3l4QlxBwo3zvhd1zgM209/IxKq4GQCfJrrfYMYkERz5yuy2UbraDfvlLFDFIwhodmg==} - engines: {node: '>= 10'} + '@nx/nx-linux-arm64-gnu@21.0.2': + resolution: {integrity: sha512-415Rj9nXUUyqFB/YwkK1Ag41jgymn0BNAqTZ/9sv1NZR1K/B5hA938Cc8eqFmrk5tFbLzqIwr5EA3QGrGZKN9Q==} cpu: [arm64] os: [linux] - '@nx/nx-linux-arm64-musl@0.0.0-pr-30418-4f79396': - resolution: {integrity: sha512-eDhWaVpeA/E9a9RI48F9p7wbdc0Kh0yXgI/dmToGSn6PfyN0oT+o08HodtmXqBfS5RimPj9QqTL8Imz3TLvRBg==} - engines: {node: '>= 10'} + '@nx/nx-linux-arm64-musl@21.0.2': + resolution: {integrity: sha512-gkA/TzOY4/sNHQF0k4EeLR6Pt79c1/PiVOmVN5tdjgljOzTkbrPzeeaBWlS/JH/e005+tkZZmceAZmXYEP9vGw==} cpu: [arm64] os: [linux] - '@nx/nx-linux-x64-gnu@0.0.0-pr-30418-4f79396': - resolution: {integrity: sha512-VDRDu1V8wz4Wzda1568Rhql0e4abXzdFHD7xZhqYvUkHdMsXIhmSMNJUznebe1QE8WVxTZLHHL3IKSiBIAYbVw==} - engines: {node: '>= 10'} + '@nx/nx-linux-x64-gnu@21.0.2': + resolution: {integrity: sha512-F7PT9gJCdtUmVXecVOjU6kRbN8vs3FPI4G0Kuuh9n5OQ+y8uqTMIrSD8//yyn0S4tfz4Esd/UjtWB9Inw1WMgQ==} cpu: [x64] os: [linux] - '@nx/nx-linux-x64-musl@0.0.0-pr-30418-4f79396': - resolution: {integrity: sha512-IDb0Uft1hJRvf6CqO+YewS4GCAxr5GGJ3xMeiDs+NncmjwoyqTNJgcbsGZHPnVXBfELbPku5+KyywNXULp+9ww==} - engines: {node: '>= 10'} + '@nx/nx-linux-x64-musl@21.0.2': + resolution: {integrity: sha512-a/qEWf7E7xjnh3XonnPKbzBbIhmCset7pJuDAWHyaoMRfjdYI3/uxs8mvRUZAMwThg7KMwmxx5QLAqEcMRgoyw==} cpu: [x64] os: [linux] - '@nx/nx-win32-arm64-msvc@0.0.0-pr-30418-4f79396': - resolution: {integrity: sha512-4V4ITC0n8/fVYYJ2EJGw9ZnMA2jLMWsbT8RUhhAZOeTRmuq4zVZ2Qas5rPBsqpXGhWmpIynRKLLiXZf9yKMpJQ==} - engines: {node: '>= 10'} + '@nx/nx-win32-arm64-msvc@21.0.2': + resolution: {integrity: sha512-vZIv4/fS30WZ2yQA8tq2oQeyq3Pq9stx6NA7VW/Vtw2/Uv9QY0kXKysf7/pBY81h3pKNGi8FNaOOAgoT/+dz9w==} cpu: [arm64] os: [win32] - '@nx/nx-win32-x64-msvc@0.0.0-pr-30418-4f79396': - resolution: {integrity: sha512-rA8Y9j4WPVFoNXRQsem55HSVpp5VXz+ONwj/YekiDTiHRjx4ByEM/0/k4hdeGxQ0CZ1VUUHWqB/eruuyOi0Blg==} - engines: {node: '>= 10'} + '@nx/nx-win32-x64-msvc@21.0.2': + resolution: {integrity: sha512-GJFjODSuNhcEjSm1sBHJ8GZ4quE299nnuWADoZYpXkkAhjCElyZJME/nuOpbh8r2E7cCFRbv04qTbkA/73UcFw==} cpu: [x64] os: [win32] - '@nx/plugin@0.0.0-pr-30418-4f79396': - resolution: {integrity: sha512-Kv0g6va6Rqm8VRZ1QwtpZ79BZnRiwzFa0b5npkJuJb1Z07XCG1+qSBdTs53zNErp5KS/aRiBqUv3dnQPouI04Q==} + '@nx/plugin@21.0.2': + resolution: {integrity: sha512-FPhCGiJnYQdfP1EjP/r6Vx0MyJrBgHp7veCbAIHtvA6cQbRnqvciYE2i1kAvPHZtsjvKN4hvsX5Hd2NWvmoHLg==} - '@nx/workspace@0.0.0-pr-30418-4f79396': - resolution: {integrity: sha512-Vbvt8TZBnjIzOX6s8wClP9wbuEIVBg4owEPm1lnHH5gbjgZgKU6DMka/u0YsiLV+cn0bBlKQgIs1Mbvn0vIG4Q==} + '@nx/workspace@21.0.2': + resolution: {integrity: sha512-E1luDXSflU8Ix9z8xTsfCS9LHALCqn8kFkuPACexUPlQRB5P2eF2j+vIUHf7zw3a4xUvgjsik+ed3jfL8Q/GJg==} - '@oxc-resolver/binding-darwin-arm64@5.0.1': - resolution: {integrity: sha512-lY5mi+6ztYGM9tiyMhHbzZteE7LFaexu9PjDL2N0stCNuGkSHO1eeeabi2ckxGWBbu9EW01XovbQqir12NbA6A==} + '@oxc-resolver/binding-darwin-arm64@5.2.0': + resolution: {integrity: sha512-3v2eS1swAUZ/OPrBpTB5Imn4Xhbz4zKPa/mugnYCAC4pVt/miBQLBNciBRZG8oyHiGmLtjw/qanZC36uB6MITQ==} cpu: [arm64] os: [darwin] - '@oxc-resolver/binding-darwin-x64@5.0.1': - resolution: {integrity: sha512-wHKdPB2Q0dMVQy6b5depG8IGI0Y37CIUTZYrZDYEGMT3X481DAJjp6AIVVHQeolEZzy+lWrpUQdGPy0dQnt7IA==} + '@oxc-resolver/binding-darwin-x64@5.2.0': + resolution: {integrity: sha512-6uhnlZU+CBULQAjcwQ4nerA76xDEvPFtHpTzXhEoitr4a3Ks5H92X4uuLT0C0FW3RfhIVL8Lpp9pLYHN3oAvug==} cpu: [x64] os: [darwin] - '@oxc-resolver/binding-freebsd-x64@5.0.1': - resolution: {integrity: sha512-TchNkHMASh2vZ2/FH71zqgAUNYuAlP8Bm1ocSnt7UVV43jZ9kG8HtQFc3AsYeVGzw06LZoeE3mVdSQVXUZhgzA==} + '@oxc-resolver/binding-freebsd-x64@5.2.0': + resolution: {integrity: sha512-6TCXw/rPnhBLlS/Rg7QHO9lBjwJSbUJMhd9POpVpQEK1S9viEAl8JPdxXuNCEDPJHSmpMrGt6+DTjQxQ5J1kpQ==} cpu: [x64] os: [freebsd] - '@oxc-resolver/binding-linux-arm-gnueabihf@5.0.1': - resolution: {integrity: sha512-JhqYi6uTSYflXSDNG/ZPTvBUcvcPR+vr/09XLdWJpZfEYzpPEEr7YQ2ogiOfZVUmCZOJWVOP8jJdv735j46a5w==} + '@oxc-resolver/binding-linux-arm-gnueabihf@5.2.0': + resolution: {integrity: sha512-egjFYBKixAjekmiImCYkpwSo0bnZJOieJIc6cXePuCih2R5nFjkS1F8tSlJ18GdRZ1MmYveM6THmIHJCpnDqaQ==} cpu: [arm] os: [linux] - '@oxc-resolver/binding-linux-arm64-gnu@5.0.1': - resolution: {integrity: sha512-W2OXq25tYiFVhi0Eioc9b+KWnaK2Hj7x/eW2u6r6u4afd1cQ09U+o5u98jrj1rxowSOTfFyiKqMqQOrS4PAlFg==} + '@oxc-resolver/binding-linux-arm64-gnu@5.2.0': + resolution: {integrity: sha512-Cizb3uHnEc2MYZeRnp+BxmDyAKo7szJxbTW4BgPvs+XicYZI0kc/qcZlHRoJImalBqvve+ZObasRqCS1zqub9A==} cpu: [arm64] os: [linux] - '@oxc-resolver/binding-linux-arm64-musl@5.0.1': - resolution: {integrity: sha512-dYaXmy90L5fTpH0mWmWvsf5PC9me5Lyjcj5vOQYNVedSQUavGMbQ+sKOWOTAFIpS8xzzIhYRdLI7oj4WV9S2bQ==} + '@oxc-resolver/binding-linux-arm64-musl@5.2.0': + resolution: {integrity: sha512-rDiRuIvQXa9MI8oiEbCVnU7dBVDuo74456dN3Bf30/Joz6FVBhYrhoOTxtxH+WgC38qCUWWuBjhFaLRLDLaMRw==} cpu: [arm64] os: [linux] - '@oxc-resolver/binding-linux-x64-gnu@5.0.1': - resolution: {integrity: sha512-lOgcxgtV7nM4TjolWgW9qk05iDQE2GGZTx2Zr+Jj+4GqdIhkkGpbqyGPJx2FRsY6kXhyaA9eOad4Bldfo8vAaw==} + '@oxc-resolver/binding-linux-riscv64-gnu@5.2.0': + resolution: {integrity: sha512-QRdE2DOO9e4oYzYyf/iRnLiomvs3bRedRTvFHbTAcL0JJfsicLLK4T7J5BP76sVum0QUAVJm+JqgEUmk8ETGXw==} + cpu: [riscv64] + os: [linux] + + '@oxc-resolver/binding-linux-s390x-gnu@5.2.0': + resolution: {integrity: sha512-bD8HDjnEziw1+Y7uowIRI9JaJd6vldLoVXOZaSeBRjofWk8rQOOyxfNTVymIrcmPE8rZZJfkDdGyCnTJP0h9vA==} + cpu: [s390x] + os: [linux] + + '@oxc-resolver/binding-linux-x64-gnu@5.2.0': + resolution: {integrity: sha512-eWEHGjkrk4Dsul7Wyt6X9UMxZ+e2zKgpRG2kbSZOQQTXf6ZnU9+lRAyAgf2X1qdLjmH0GT54wIak7fhSsuNWLA==} cpu: [x64] os: [linux] - '@oxc-resolver/binding-linux-x64-musl@5.0.1': - resolution: {integrity: sha512-3Pg8eSolVs3hy3xoqkjCgoIC1uHKPAUY0rs4QX+KtsPMOZ7iO5b3JBbJHl+ZDIeuzE8dkSRG7aIuCNVonp5G1Q==} + '@oxc-resolver/binding-linux-x64-musl@5.2.0': + resolution: {integrity: sha512-iojrjytDOdg4aWm25ak7qpTQwWj+D7O+duHBL2rQhDxIY1K4eysJwobWck0yzJ6VlONaQF6RLt+YeDpGoKV+ww==} cpu: [x64] os: [linux] - '@oxc-resolver/binding-wasm32-wasi@5.0.1': - resolution: {integrity: sha512-rBEgV5AW5obb6ATeNUSUouW0FzpoADOweTYblprko+Cv6rW1NSQGzGxD6o6jhIk4yV7/CZBwBWAkz9xpL5JSUQ==} + '@oxc-resolver/binding-wasm32-wasi@5.2.0': + resolution: {integrity: sha512-Lgv3HjKUXRa/xMCgBAkwKQcPljAn5IRicjgoPBXGUhghzK/9yF2DTf7aXdVPvRxFKjvcyWtzpzPV2pzYCuBaBA==} engines: {node: '>=14.0.0'} cpu: [wasm32] - '@oxc-resolver/binding-win32-arm64-msvc@5.0.1': - resolution: {integrity: sha512-okHg9C+z+2tCGKPszYVJDTZKhPHta7xKvhw0WMWPLTz9wbBMmHTuY9vVpgvFGhTU3N5iQ56LPollnSPtjvObCw==} + '@oxc-resolver/binding-win32-arm64-msvc@5.2.0': + resolution: {integrity: sha512-VK5yEOdGbIrb89gUtVIw2IVP4r0rEhiwVLQOD37vZhvrt5iY0FHOTtMz9ZsWI0anZ0swt26U2wRcJYT0/AsBfw==} cpu: [arm64] os: [win32] - '@oxc-resolver/binding-win32-x64-msvc@5.0.1': - resolution: {integrity: sha512-ODlCn4Pbd0HEWMixonax1uJtNCG4lEne6Jq98iUsmwSibQYcBzutxPed1qhLKur6KtCsYYa4LtRxys7e/5lZwQ==} + '@oxc-resolver/binding-win32-x64-msvc@5.2.0': + resolution: {integrity: sha512-BhIcyjr/gTafUrdOhd1EC5H4LeUSKK9uQIG2RSyMMH0Cq1yBacTb1yvLowhP/6e4ncCGByXEkW7sWGowCfSY8A==} cpu: [x64] os: [win32] @@ -1989,8 +1923,8 @@ packages: resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} - '@schematics/angular@19.2.4': - resolution: {integrity: sha512-P7fphIPbqHHYRVRPiFl7RAHYPYhINGSUYOXrcThVBBsgKQBX18oNdUWvhZA6ylwK/9T21XB20VyLjNy0d78H1Q==} + '@schematics/angular@19.2.11': + resolution: {integrity: sha512-Xkqur8OJrrfR5CeMXj2FqdiqGp//w9cZ7q9RBfRr3lZgW5QUiZw7iJNQHUIDNsCBKK5yFpPIDckpdVx8jLGclg==} engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} '@sec-ant/readable-stream@0.4.1': @@ -2049,8 +1983,8 @@ packages: '@swc-node/sourcemap-support@0.5.1': resolution: {integrity: sha512-JxIvIo/Hrpv0JCHSyRpetAdQ6lB27oFYhv0PKCNf1g2gUXOjpeR1exrXccRxLMuAV5WAmGFBwRnNOJqN38+qtg==} - '@swc/cli@0.6.0': - resolution: {integrity: sha512-Q5FsI3Cw0fGMXhmsg7c08i4EmXCrcl+WnAxb6LYOLHw4JFFC3yzmx9LaXZ7QMbA+JZXbigU2TirI7RAfO0Qlnw==} + '@swc/cli@0.7.5': + resolution: {integrity: sha512-RlUYAxOhsecBB7qFVdDXhXXW3GDVxXpJx90q8Tlj+KuJVUPXViI7tNAvu54u3hbIZAL3LtrQKZHBWF6O5cXxZQ==} engines: {node: '>= 16.14.0'} hasBin: true peerDependencies: @@ -2060,71 +1994,71 @@ packages: chokidar: optional: true - '@swc/core-darwin-arm64@1.11.11': - resolution: {integrity: sha512-vJcjGVDB8cZH7zyOkC0AfpFYI/7GHKG0NSsH3tpuKrmoAXJyCYspKPGid7FT53EAlWreN7+Pew+bukYf5j+Fmg==} + '@swc/core-darwin-arm64@1.11.24': + resolution: {integrity: sha512-dhtVj0PC1APOF4fl5qT2neGjRLgHAAYfiVP8poJelhzhB/318bO+QCFWAiimcDoyMgpCXOhTp757gnoJJrheWA==} engines: {node: '>=10'} cpu: [arm64] os: [darwin] - '@swc/core-darwin-x64@1.11.11': - resolution: {integrity: sha512-/N4dGdqEYvD48mCF3QBSycAbbQd3yoZ2YHSzYesQf8usNc2YpIhYqEH3sql02UsxTjEFOJSf1bxZABDdhbSl6A==} + '@swc/core-darwin-x64@1.11.24': + resolution: {integrity: sha512-H/3cPs8uxcj2Fe3SoLlofN5JG6Ny5bl8DuZ6Yc2wr7gQFBmyBkbZEz+sPVgsID7IXuz7vTP95kMm1VL74SO5AQ==} engines: {node: '>=10'} cpu: [x64] os: [darwin] - '@swc/core-linux-arm-gnueabihf@1.11.11': - resolution: {integrity: sha512-hsBhKK+wVXdN3x9MrL5GW0yT8o9GxteE5zHAI2HJjRQel3HtW7m5Nvwaq+q8rwMf4YQRd8ydbvwl4iUOZx7i2Q==} + '@swc/core-linux-arm-gnueabihf@1.11.24': + resolution: {integrity: sha512-PHJgWEpCsLo/NGj+A2lXZ2mgGjsr96ULNW3+T3Bj2KTc8XtMUkE8tmY2Da20ItZOvPNC/69KroU7edyo1Flfbw==} engines: {node: '>=10'} cpu: [arm] os: [linux] - '@swc/core-linux-arm64-gnu@1.11.11': - resolution: {integrity: sha512-YOCdxsqbnn/HMPCNM6nrXUpSndLXMUssGTtzT7ffXqr7WuzRg2e170FVDVQFIkb08E7Ku5uOnnUVAChAJQbMOQ==} + '@swc/core-linux-arm64-gnu@1.11.24': + resolution: {integrity: sha512-C2FJb08+n5SD4CYWCTZx1uR88BN41ZieoHvI8A55hfVf2woT8+6ZiBzt74qW2g+ntZ535Jts5VwXAKdu41HpBg==} engines: {node: '>=10'} cpu: [arm64] os: [linux] - '@swc/core-linux-arm64-musl@1.11.11': - resolution: {integrity: sha512-nR2tfdQRRzwqR2XYw9NnBk9Fdvff/b8IiJzDL28gRR2QiJWLaE8LsRovtWrzCOYq6o5Uu9cJ3WbabWthLo4jLw==} + '@swc/core-linux-arm64-musl@1.11.24': + resolution: {integrity: sha512-ypXLIdszRo0re7PNNaXN0+2lD454G8l9LPK/rbfRXnhLWDBPURxzKlLlU/YGd2zP98wPcVooMmegRSNOKfvErw==} engines: {node: '>=10'} cpu: [arm64] os: [linux] - '@swc/core-linux-x64-gnu@1.11.11': - resolution: {integrity: sha512-b4gBp5HA9xNWNC5gsYbdzGBJWx4vKSGybGMGOVWWuF+ynx10+0sA/o4XJGuNHm8TEDuNh9YLKf6QkIO8+GPJ1g==} + '@swc/core-linux-x64-gnu@1.11.24': + resolution: {integrity: sha512-IM7d+STVZD48zxcgo69L0yYptfhaaE9cMZ+9OoMxirNafhKKXwoZuufol1+alEFKc+Wbwp+aUPe/DeWC/Lh3dg==} engines: {node: '>=10'} cpu: [x64] os: [linux] - '@swc/core-linux-x64-musl@1.11.11': - resolution: {integrity: sha512-dEvqmQVswjNvMBwXNb8q5uSvhWrJLdttBSef3s6UC5oDSwOr00t3RQPzyS3n5qmGJ8UMTdPRmsopxmqaODISdg==} + '@swc/core-linux-x64-musl@1.11.24': + resolution: {integrity: sha512-DZByJaMVzSfjQKKQn3cqSeqwy6lpMaQDQQ4HPlch9FWtDx/dLcpdIhxssqZXcR2rhaQVIaRQsCqwV6orSDGAGw==} engines: {node: '>=10'} cpu: [x64] os: [linux] - '@swc/core-win32-arm64-msvc@1.11.11': - resolution: {integrity: sha512-aZNZznem9WRnw2FbTqVpnclvl8Q2apOBW2B316gZK+qxbe+ktjOUnYaMhdCG3+BYggyIBDOnaJeQrXbKIMmNdw==} + '@swc/core-win32-arm64-msvc@1.11.24': + resolution: {integrity: sha512-Q64Ytn23y9aVDKN5iryFi8mRgyHw3/kyjTjT4qFCa8AEb5sGUuSj//AUZ6c0J7hQKMHlg9do5Etvoe61V98/JQ==} engines: {node: '>=10'} cpu: [arm64] os: [win32] - '@swc/core-win32-ia32-msvc@1.11.11': - resolution: {integrity: sha512-DjeJn/IfjgOddmJ8IBbWuDK53Fqw7UvOz7kyI/728CSdDYC3LXigzj3ZYs4VvyeOt+ZcQZUB2HA27edOifomGw==} + '@swc/core-win32-ia32-msvc@1.11.24': + resolution: {integrity: sha512-9pKLIisE/Hh2vJhGIPvSoTK4uBSPxNVyXHmOrtdDot4E1FUUI74Vi8tFdlwNbaj8/vusVnb8xPXsxF1uB0VgiQ==} engines: {node: '>=10'} cpu: [ia32] os: [win32] - '@swc/core-win32-x64-msvc@1.11.11': - resolution: {integrity: sha512-Gp/SLoeMtsU4n0uRoKDOlGrRC6wCfifq7bqLwSlAG8u8MyJYJCcwjg7ggm0rhLdC2vbiZ+lLVl3kkETp+JUvKg==} + '@swc/core-win32-x64-msvc@1.11.24': + resolution: {integrity: sha512-sybnXtOsdB+XvzVFlBVGgRHLqp3yRpHK7CrmpuDKszhj/QhmsaZzY/GHSeALlMtLup13M0gqbcQvsTNlAHTg3w==} engines: {node: '>=10'} cpu: [x64] os: [win32] - '@swc/core@1.11.11': - resolution: {integrity: sha512-pCVY2Wn6dV/labNvssk9b3Owi4WOYsapcbWm90XkIj4xH/56Z6gzja9fsU+4MdPuEfC2Smw835nZHcdCFGyX6A==} + '@swc/core@1.11.24': + resolution: {integrity: sha512-MaQEIpfcEMzx3VWWopbofKJvaraqmL6HbLlw2bFZ7qYqYw3rkhM0cQVEgyzbHtTWwCwPMFZSC2DUbhlZgrMfLg==} engines: {node: '>=10'} peerDependencies: - '@swc/helpers': '*' + '@swc/helpers': '>=0.5.17' peerDependenciesMeta: '@swc/helpers': optional: true @@ -2132,11 +2066,11 @@ packages: '@swc/counter@0.1.3': resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==} - '@swc/helpers@0.5.15': - resolution: {integrity: sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==} + '@swc/helpers@0.5.17': + resolution: {integrity: sha512-5IKx/Y13RsYd+sauPb2x+U/xZikHjolzfuDgTAl/Tdf3Q8rslRvC19NKDLgAJQ6wsqADk10ntlv08nPFw/gO/A==} - '@swc/types@0.1.19': - resolution: {integrity: sha512-WkAZaAfj44kh/UFdAQcrMP1I0nwRqpt27u+08LMBYMqmQfwwMofYoMh/48NGkMMRfC4ynpfwRbJuu8ErfNloeA==} + '@swc/types@0.1.21': + resolution: {integrity: sha512-2YEtj5HJVbKivud9N4bpPBAyZhj4S2Ipe5LkUG94alTpr7in/GU/EARgPAd3BwU+YOmFVJC2+kjqhGRi3r0ZpQ==} '@szmarczak/http-timer@5.0.1': resolution: {integrity: sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==} @@ -2210,8 +2144,8 @@ packages: '@types/istanbul-reports@3.0.4': resolution: {integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==} - '@types/jest@29.5.12': - resolution: {integrity: sha512-eDC8bTvT/QhYdxJAulQikueigY5AsdBRH2yDKW3yveW7svY3+DzN84/2NUgkw10RTiJbWqZrTtoGVdYlvFJdLw==} + '@types/jest@29.5.14': + resolution: {integrity: sha512-ZN+4sdnLUbo8EVvVc2ao0GFW6oVrQRPn4K2lglySj7APvSrgzxHiNNK99us4WDMi57xxA2yggblIAMNhXOotLQ==} '@types/json-schema@7.0.15': resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} @@ -2219,14 +2153,14 @@ packages: '@types/lodash@4.17.13': resolution: {integrity: sha512-lfx+dftrEZcdBPczf9d0Qv0x+j/rfNCMuC6OcfXmO8gkfeNAY88PgKUbvG56whcN23gc27yenwF6oJZXGFpYxg==} - '@types/node@20.17.25': - resolution: {integrity: sha512-bT+r2haIlplJUYtlZrEanFHdPIZTeiMeh/fSOEbOOfWf9uTn+lg8g0KU6Q3iMgjd9FLuuMAgfCNSkjUbxL6E3Q==} + '@types/node@20.17.45': + resolution: {integrity: sha512-vO9+E1smq+149wsmmLdM8SKVW7gRzLjfo0mU7kiykhV6rL+GEUhUmW7VywJNSxJHQzt9QBIHEo+3SG4MrFTqbA==} '@types/parse-json@4.0.2': resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==} - '@types/semver@7.5.8': - resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} + '@types/semver@7.7.0': + resolution: {integrity: sha512-k107IF4+Xr7UHjwDc7Cfd6PRQfbdkiRabXGRjo07b4WyPahFBZCZ1sE+BNxYIJPPg73UkfOsVOLwqVc/6ETrIA==} '@types/stack-utils@2.0.3': resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==} @@ -2237,204 +2171,154 @@ packages: '@types/yargs@17.0.33': resolution: {integrity: sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==} - '@typescript-eslint/eslint-plugin@8.16.0': - resolution: {integrity: sha512-5YTHKV8MYlyMI6BaEG7crQ9BhSc8RxzshOReKwZwRWN0+XvvTOm+L/UYLCYxFpfwYuAAqhxiq4yae0CMFwbL7Q==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - '@typescript-eslint/parser': 8.27.0 - eslint: ^8.57.0 || ^9.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/eslint-plugin@8.27.0': - resolution: {integrity: sha512-4henw4zkePi5p252c8ncBLzLce52SEUz2Ebj8faDnuUXz2UuHEONYcJ+G0oaCF+bYCWVZtrGzq3FD7YXetmnSA==} + '@typescript-eslint/eslint-plugin@8.32.0': + resolution: {integrity: sha512-/jU9ettcntkBFmWUzzGgsClEi2ZFiikMX5eEQsmxIAWMOn4H3D4rvHssstmAHGVvrYnaMqdWWWg0b5M6IN/MTQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/parser': 8.27.0 + '@typescript-eslint/parser': 8.32.0 eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/parser@8.27.0': - resolution: {integrity: sha512-XGwIabPallYipmcOk45DpsBSgLC64A0yvdAkrwEzwZ2viqGqRUJ8eEYoPz0CWnutgAFbNMPdsGGvzjSmcWVlEA==} + '@typescript-eslint/parser@8.32.0': + resolution: {integrity: sha512-B2MdzyWxCE2+SqiZHAjPphft+/2x2FlO9YBx7eKE1BCb+rqBlQdhtAEhzIEdozHd55DXPmxBdpMygFJjfjjA9A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/rule-tester@8.27.0': - resolution: {integrity: sha512-38XMf0Y1G7iApnxutV+5iLwRTOKKSSMVFj9jPIhe7RHQsR4bF1VPUe+dvxrsas3jz5QyT6WtLwMBTLB5Gtghyg==} + '@typescript-eslint/rule-tester@8.32.0': + resolution: {integrity: sha512-kfR6D4RdosBZiwa3/fuuRggzg3YPlMKaEdohVjv5nSyu9ZFD5fr6E/kydvMt0nkM1PLNzMAEtODriEz7RI/cqw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 - '@typescript-eslint/scope-manager@8.16.0': - resolution: {integrity: sha512-mwsZWubQvBki2t5565uxF0EYvG+FwdFb8bMtDuGQLdCCnGPrDEDvm1gtfynuKlnpzeBRqdFCkMf9jg1fnAK8sg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@typescript-eslint/scope-manager@8.27.0': - resolution: {integrity: sha512-8oI9GwPMQmBryaaxG1tOZdxXVeMDte6NyJA4i7/TWa4fBwgnAXYlIQP+uYOeqAaLJ2JRxlG9CAyL+C+YE9Xknw==} + '@typescript-eslint/scope-manager@8.32.0': + resolution: {integrity: sha512-jc/4IxGNedXkmG4mx4nJTILb6TMjL66D41vyeaPWvDUmeYQzF3lKtN15WsAeTr65ce4mPxwopPSo1yUUAWw0hQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/type-utils@8.16.0': - resolution: {integrity: sha512-IqZHGG+g1XCWX9NyqnI/0CX5LL8/18awQqmkZSl2ynn8F76j579dByc0jhfVSnSnhf7zv76mKBQv9HQFKvDCgg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/type-utils@8.26.1': - resolution: {integrity: sha512-Kcj/TagJLwoY/5w9JGEFV0dclQdyqw9+VMndxOJKtoFSjfZhLXhYjzsQEeyza03rwHx2vFEGvrJWJBXKleRvZg==} + '@typescript-eslint/type-utils@8.31.0': + resolution: {integrity: sha512-DJ1N1GdjI7IS7uRlzJuEDCgDQix3ZVYVtgeWEyhyn4iaoitpMBX6Ndd488mXSx0xah/cONAkEaYyylDyAeHMHg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/type-utils@8.27.0': - resolution: {integrity: sha512-wVArTVcz1oJOIEJxui/nRhV0TXzD/zMSOYi/ggCfNq78EIszddXcJb7r4RCp/oBrjt8n9A0BSxRMKxHftpDxDA==} + '@typescript-eslint/type-utils@8.32.0': + resolution: {integrity: sha512-t2vouuYQKEKSLtJaa5bB4jHeha2HJczQ6E5IXPDPgIty9EqcJxpr1QHQ86YyIPwDwxvUmLfP2YADQ5ZY4qddZg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/types@8.16.0': - resolution: {integrity: sha512-NzrHj6thBAOSE4d9bsuRNMvk+BvaQvmY4dDglgkgGC0EW/tB3Kelnp3tAKH87GEwzoxgeQn9fNGRyFJM/xd+GQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@typescript-eslint/types@8.26.1': - resolution: {integrity: sha512-n4THUQW27VmQMx+3P+B0Yptl7ydfceUj4ON/AQILAASwgYdZ/2dhfymRMh5egRUrvK5lSmaOm77Ry+lmXPOgBQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@typescript-eslint/types@8.27.0': - resolution: {integrity: sha512-/6cp9yL72yUHAYq9g6DsAU+vVfvQmd1a8KyA81uvfDE21O2DwQ/qxlM4AR8TSdAu+kJLBDrEHKC5/W2/nxsY0A==} + '@typescript-eslint/types@8.31.0': + resolution: {integrity: sha512-Ch8oSjVyYyJxPQk8pMiP2FFGYatqXQfQIaMp+TpuuLlDachRWpUAeEu1u9B/v/8LToehUIWyiKcA/w5hUFRKuQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@8.16.0': - resolution: {integrity: sha512-E2+9IzzXMc1iaBy9zmo+UYvluE3TW7bCGWSF41hVWUE01o8nzr1rvOQYSxelxr6StUvRcTMe633eY8mXASMaNw==} + '@typescript-eslint/types@8.32.0': + resolution: {integrity: sha512-O5Id6tGadAZEMThM6L9HmVf5hQUXNSxLVKeGJYWNhhVseps/0LddMkp7//VDkzwJ69lPL0UmZdcZwggj9akJaA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - '@typescript-eslint/typescript-estree@8.26.1': - resolution: {integrity: sha512-yUwPpUHDgdrv1QJ7YQal3cMVBGWfnuCdKbXw1yyjArax3353rEJP1ZA+4F8nOlQ3RfS2hUN/wze3nlY+ZOhvoA==} + '@typescript-eslint/typescript-estree@8.31.0': + resolution: {integrity: sha512-xLmgn4Yl46xi6aDSZ9KkyfhhtnYI15/CvHbpOy/eR5NWhK/BK8wc709KKwhAR0m4ZKRP7h07bm4BWUYOCuRpQQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/typescript-estree@8.27.0': - resolution: {integrity: sha512-BnKq8cqPVoMw71O38a1tEb6iebEgGA80icSxW7g+kndx0o6ot6696HjG7NdgfuAVmVEtwXUr3L8R9ZuVjoQL6A==} + '@typescript-eslint/typescript-estree@8.32.0': + resolution: {integrity: sha512-pU9VD7anSCOIoBFnhTGfOzlVFQIA1XXiQpH/CezqOBaDppRwTglJzCC6fUQGpfwey4T183NKhF1/mfatYmjRqQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/utils@8.27.0': - resolution: {integrity: sha512-njkodcwH1yvmo31YWgRHNb/x1Xhhq4/m81PhtvmRngD8iHPehxffz1SNCO+kwaePhATC+kOa/ggmvPoPza5i0Q==} + '@typescript-eslint/utils@8.32.0': + resolution: {integrity: sha512-8S9hXau6nQ/sYVtC3D6ISIDoJzS1NsCK+gluVhLN2YkBPX+/1wkwyUiDKnxRh15579WoOIyVWnoyIf3yGI9REw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/visitor-keys@8.16.0': - resolution: {integrity: sha512-pq19gbaMOmFE3CbL0ZB8J8BFCo2ckfHBfaIsaOZgBIF4EoISJIdLX5xRhd0FGB0LlHReNRuzoJoMGpTjq8F2CQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@typescript-eslint/visitor-keys@8.26.1': - resolution: {integrity: sha512-AjOC3zfnxd6S4Eiy3jwktJPclqhFHNyd8L6Gycf9WUPoKZpgM5PjkxY1X7uSy61xVpiJDhhk7XT2NVsN3ALTWg==} + '@typescript-eslint/visitor-keys@8.31.0': + resolution: {integrity: sha512-QcGHmlRHWOl93o64ZUMNewCdwKGU6WItOU52H0djgNmn1EOrhVudrDzXz4OycCRSCPwFCDrE2iIt5vmuUdHxuQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/visitor-keys@8.27.0': - resolution: {integrity: sha512-WsXQwMkILJvffP6z4U3FYJPlbf/j07HIxmDjZpbNvBJkMfvwXj5ACRkkHwBDvLBbDbtX5TdU64/rcvKJ/vuInQ==} + '@typescript-eslint/visitor-keys@8.32.0': + resolution: {integrity: sha512-1rYQTCLFFzOI5Nl0c8LUpJT8HxpwVRn9E4CkMsYfuN6ctmQqExjSTzzSk0Tz2apmXy7WU6/6fyaZVVA/thPN+w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@verdaccio/auth@8.0.0-next-8.7': - resolution: {integrity: sha512-CSLBAsCJT1oOpJ4OWnVGmN6o/ZilDNa7Aa5+AU1LI2lbRblqgr4BVRn07GFqimJ//6+tPzl8BHgyiCbBhh1ZiA==} + '@verdaccio/auth@8.0.0-next-8.15': + resolution: {integrity: sha512-vAfzGOHbPcPXMCI90jqm/qSZ1OUBnOGzudZA3+YtherncdwADekvXbdJlZVclcfmZ0sRbfVG5Xpf88aETiwfcw==} engines: {node: '>=18'} '@verdaccio/commons-api@10.2.0': resolution: {integrity: sha512-F/YZANu4DmpcEV0jronzI7v2fGVWkQ5Mwi+bVmV+ACJ+EzR0c9Jbhtbe5QyLUuzR97t8R5E/Xe53O0cc2LukdQ==} engines: {node: '>=8'} - '@verdaccio/config@8.0.0-next-8.7': - resolution: {integrity: sha512-pA0WCWvvWY6vPRav+X0EuFmuK6M08zIpRzTKkqSriCWk6JUCZ07TDnN054AS8TSSOy6EaWgHxnUw3nTd34Z4Sg==} + '@verdaccio/config@8.0.0-next-8.15': + resolution: {integrity: sha512-oEzQB+xeqaFAy54veMshqpt1hlZCYNkqoKuwkt7O8J43Fo/beiLluKUVneXckzi+pg1yvvGT7lNCbvuUQrxxQg==} engines: {node: '>=18'} - '@verdaccio/core@8.0.0-next-8.1': - resolution: {integrity: sha512-kQRCB2wgXEh8H88G51eQgAFK9IxmnBtkQ8sY5FbmB6PbBkyHrbGcCp+2mtRqqo36j0W1VAlfM3XzoknMy6qQnw==} - engines: {node: '>=14'} - - '@verdaccio/core@8.0.0-next-8.7': - resolution: {integrity: sha512-pf8M2Z5EI/5Zdhdcm3aadb9Q9jiDsIredPD3+cIoDum8x3di2AIYvQD7i5BEramfzZlLXVICmFAulU7nUY11qg==} + '@verdaccio/core@8.0.0-next-8.15': + resolution: {integrity: sha512-d5r/ZSkCri7s1hvV35enptquV5LJ81NqMYJnsjuryIUnvwn1yaqLlcdd6zIL08unzCSr7qDdUAdwGRRm6PKzng==} engines: {node: '>=18'} '@verdaccio/file-locking@10.3.1': resolution: {integrity: sha512-oqYLfv3Yg3mAgw9qhASBpjD50osj2AX4IwbkUtyuhhKGyoFU9eZdrbeW6tpnqUnj6yBMtAPm2eGD4BwQuX400g==} engines: {node: '>=12'} - '@verdaccio/file-locking@13.0.0-next-8.2': - resolution: {integrity: sha512-TcHgN3I/N28WBSvtukpGrJhBljl4jyIXq0vEv94vXAG6nUE3saK+vtgo8PfYA3Ueo88v/1zyAbiZM4uxwojCmQ==} + '@verdaccio/file-locking@13.0.0-next-8.3': + resolution: {integrity: sha512-Sugx6XYp8nEJ9SmBoEOExEIQQ0T0q8fcyc/afWdiSNDGWviqqSx2IriCvtMwKZrE4XG0BQo6bXO+A8AOOoo7KQ==} engines: {node: '>=18'} - '@verdaccio/loaders@8.0.0-next-8.4': - resolution: {integrity: sha512-Powlqb4SuMbe6RVgxyyOXaCjuHCcK7oZA+lygaKZDpV9NSHJtbkkV4L+rXyCfTX3b0tKsBh7FzaIdgWc1rDeGQ==} + '@verdaccio/loaders@8.0.0-next-8.6': + resolution: {integrity: sha512-yuqD8uAZJcgzuNHjV6C438UNT5r2Ai9+SnUlO34AHZdWSYcluO3Zj5R3p5uf+C7YPCE31pUD27wBU74xVbUoBw==} engines: {node: '>=18'} '@verdaccio/local-storage-legacy@11.0.2': resolution: {integrity: sha512-7AXG7qlcVFmF+Nue2oKaraprGRtaBvrQIOvc/E89+7hAe399V01KnZI6E/ET56u7U9fq0MSlp92HBcdotlpUXg==} engines: {node: '>=12'} - '@verdaccio/logger-commons@8.0.0-next-8.7': - resolution: {integrity: sha512-sXNx57G1LVp81xF4qHer3AOcMEZ90W4FjxtYF0vmULcVg3ybdtStKAT/9ocZtVMvLWTPAauhqylfnXoRZYf32A==} + '@verdaccio/logger-commons@8.0.0-next-8.15': + resolution: {integrity: sha512-nF7VgBC2cl5ufv+mZEwBHHyZFb1F0+kVkuRMf3Tyk+Qp4lXilC9MRZ0oc+RnzsDbNmJ6IZHgHNbs6aJrNfaRGg==} engines: {node: '>=18'} - '@verdaccio/logger-prettify@8.0.0-next-8.1': - resolution: {integrity: sha512-vLhaGq0q7wtMCcqa0aQY6QOsMNarhTu/l4e6Z8mG/5LUH95GGLsBwpXLnKS94P3deIjsHhc9ycnEmG39txbQ1w==} + '@verdaccio/logger-prettify@8.0.0-next-8.2': + resolution: {integrity: sha512-WMXnZPLw5W7GSIQE8UOTp6kRIwiTmnnoJbMmyMlGiNrsRaFKTqk09R5tKUgOyGgd4Lu6yncLbmdm5UjAuwHf1Q==} engines: {node: '>=18'} - '@verdaccio/logger@8.0.0-next-8.7': - resolution: {integrity: sha512-5EMPdZhz2V08BP2rjhtN/Fz5KxCfPJBkYDitbk/eo+FCZ9nVdMCQE3WRbHEaXyJQcIso/LJ6RnL/zKN20E/rPg==} + '@verdaccio/logger@8.0.0-next-8.15': + resolution: {integrity: sha512-3gjhqvB87JUNDHFMN3YG4IweS9EgbCpAWZatNYzcoIWOoGiEaFQQBSM592CaFiI0yf8acyqWkNa1V95L1NMbRg==} engines: {node: '>=18'} - '@verdaccio/middleware@8.0.0-next-8.7': - resolution: {integrity: sha512-Zad7KcdOsI1DUBt1TjQb08rIi/IFFaJKdPhj7M6oy5BX9l/4OM0TtbBueHFNS1+aU+t5eo8ue7ZHbqmjDY/6VQ==} + '@verdaccio/middleware@8.0.0-next-8.15': + resolution: {integrity: sha512-xsCLGbnhqcYwE8g/u9wxNLfDcESpr9ptEZ8Ce7frVTphU7kYIL48QCDPMzug7U+AguNtCq4v4zcoY1PaOQ8mgw==} engines: {node: '>=18'} - '@verdaccio/search-indexer@8.0.0-next-8.2': - resolution: {integrity: sha512-sWliVN5BkAGbZ3e/GD0CsZMfPJdRMRuN0tEKQFsvEJifxToq5UkfCw6vKaVvhezsTWqb+Rp5y+2d4n5BDOA49w==} + '@verdaccio/search-indexer@8.0.0-next-8.4': + resolution: {integrity: sha512-Oea9m9VDqdlDPyQ9+fpcxZk0sIYH2twVK+YbykHpSYpjZRzz9hJfIr/uUwAgpWq83zAl2YDbz4zR3TjzjrWQig==} engines: {node: '>=18'} - '@verdaccio/signature@8.0.0-next-8.1': - resolution: {integrity: sha512-lHD/Z2FoPQTtDYz6ZlXhj/lrg0SFirHrwCGt/cibl1GlePpx78WPdo03tgAyl0Qf+I35n484/gR1l9eixBQqYw==} + '@verdaccio/signature@8.0.0-next-8.7': + resolution: {integrity: sha512-sqP+tNzUtVIwUtt1ZHwYoxsO3roDLK7GW8c8Hj0SNaON+9ele9z4NBhaor+g95zRuLy6xtw/RgOvpyLon/vPrA==} engines: {node: '>=18'} '@verdaccio/streams@10.2.1': resolution: {integrity: sha512-OojIG/f7UYKxC4dYX8x5ax8QhRx1b8OYUAMz82rUottCuzrssX/4nn5QE7Ank0DUSX3C9l/HPthc4d9uKRJqJQ==} engines: {node: '>=12', npm: '>=5'} - '@verdaccio/tarball@13.0.0-next-8.7': - resolution: {integrity: sha512-EWRuEOLgb3UETxUsYg6+Mml6DDRiwQqKIEsE4Ys6y6rcH2vgW6XMnTt+s/v5pFI+zlbi6fxjOgQB1e6IJAwxVA==} + '@verdaccio/tarball@13.0.0-next-8.15': + resolution: {integrity: sha512-oSNmq7zD/iPIC5HpJbOJjW/lb0JV9k3jLwI6sG7kPgm+UIxVAOV4fKQOAD18HpHl/WjkF247NA6zGlAB94Habw==} engines: {node: '>=18'} - '@verdaccio/ui-theme@8.0.0-next-8.7': - resolution: {integrity: sha512-+7f7XqqIU+TVCHjsP6lWzCdsD4sM7MEhn4cu3mLW1kJZ7eenWKEltoqixQnoXJzaBjCiz+yXW1WkjMyEFLNbpg==} + '@verdaccio/ui-theme@8.0.0-next-8.15': + resolution: {integrity: sha512-k9BAM7rvbUqB2JPReNgXKUVTzBkdmIrNw0f6/7uyO+9cp7eVuarrPBnVF0oMc7jzVNBZRCpUksrhMZ0KwDZTpw==} - '@verdaccio/url@13.0.0-next-8.7': - resolution: {integrity: sha512-biFvwH3zIXYicA+SXNGvjMAe8oIQ5VddsfbO0ZXWlFs0lIz8cgI7QYPeSiCkU2VKpGzZ8pEKgqkxFsfFkU5kGA==} + '@verdaccio/url@13.0.0-next-8.15': + resolution: {integrity: sha512-1N/dGhw7cZMhupf/Xlm73beiL3oCaAiyo9DTumjF3aTcJnipVcT1hoj6CSj9RIX54824rUK9WVmo83dk0KPnjw==} engines: {node: '>=18'} - '@verdaccio/utils@7.0.1-next-8.1': - resolution: {integrity: sha512-cyJdRrVa+8CS7UuIQb3K3IJFjMe64v38tYiBnohSmhRbX7dX9IT3jWbjrwkqWh4KeS1CS6BYENrGG1evJ2ggrQ==} - engines: {node: '>=12'} - - '@verdaccio/utils@8.1.0-next-8.7': - resolution: {integrity: sha512-4eqPCnPAJsL6gdVs0/oqZNgs2PnQW3HHBMgBHyEbb5A/ESI10TvRp+B7MRl9glUmy/aR5B6YSI68rgXvAFjdxA==} - engines: {node: '>=12'} + '@verdaccio/utils@8.1.0-next-8.15': + resolution: {integrity: sha512-efg/bunOUMVXV+MlljJCrpuT+OQRrQS4wJyGL92B3epUGlgZ8DXs+nxN5v59v1a6AocAdSKwHgZS0g9txmBhOg==} + engines: {node: '>=18'} '@xhmikosr/archive-type@7.0.0': resolution: {integrity: sha512-sIm84ZneCOJuiy3PpWR5bxkx3HaNt1pqaN+vncUBZIlPZCq8ASZH+hBVdu5H8znR7qYC6sKwx+ie2Q7qztJTxA==} @@ -2503,6 +2387,10 @@ packages: resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} engines: {node: '>= 0.6'} + accepts@2.0.0: + resolution: {integrity: sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng==} + engines: {node: '>= 0.6'} + acorn-jsx@5.3.2: resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: @@ -2517,6 +2405,11 @@ packages: engines: {node: '>=0.4.0'} hasBin: true + acorn@8.14.1: + resolution: {integrity: sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==} + engines: {node: '>=0.4.0'} + hasBin: true + address@1.2.2: resolution: {integrity: sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==} engines: {node: '>= 10.0.0'} @@ -2741,6 +2634,10 @@ packages: resolution: {integrity: sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==} engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + body-parser@2.2.0: + resolution: {integrity: sha512-02qvAaxv8tp7fBa/mw1ga98OGm+eCbqzJOKoRt70sLmfEEi+jyBYVTDGfCL/k06/4EMk/z01gCe7HoCH/f2LTg==} + engines: {node: '>=18'} + brace-expansion@1.1.11: resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} @@ -2805,10 +2702,18 @@ packages: resolution: {integrity: sha512-A+Fezp4zxnit6FanDmv9EqXNAi3vt9DWp51/71UEhXukb7QUuvtv9344h91dyAxuTLoSYJFU299qzR3tzwPAhw==} engines: {node: '>=6'} + call-bind-apply-helpers@1.0.2: + resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} + engines: {node: '>= 0.4'} + call-bind@1.0.7: resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} engines: {node: '>= 0.4'} + call-bound@1.0.4: + resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==} + engines: {node: '>= 0.4'} + callsites@3.1.0: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} engines: {node: '>=6'} @@ -2961,8 +2866,8 @@ packages: resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==} engines: {node: '>= 0.6'} - compression@1.7.5: - resolution: {integrity: sha512-bQJ0YRck5ak3LgtnpKkiabX5pNF7tMUh1BSy2ZBOTh0Dim0BUu6aPPwByIns6/A5Prh8PufSPerMDUklpzes2Q==} + compression@1.8.0: + resolution: {integrity: sha512-k6WLKfunuqCYD3t6AsuPGvQWaKwuLLh2/xHNcX4qE+vIfDNXpSqnrhwA7O53R7WVQUnt8dVAIW+YHr7xTgOgGA==} engines: {node: '>= 0.8.0'} concat-map@0.0.1: @@ -2975,6 +2880,10 @@ packages: resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} engines: {node: '>= 0.6'} + content-disposition@1.0.0: + resolution: {integrity: sha512-Au9nRL8VNUut/XSzbQA38+M78dzP4D+eqg3gfJHMIHHYa3bg067xj1KxMUWj+VULbiZMowKngFFbKczUrNJ1mg==} + engines: {node: '>= 0.6'} + content-type@1.0.5: resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} engines: {node: '>= 0.6'} @@ -3001,6 +2910,10 @@ packages: cookie-signature@1.0.6: resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==} + cookie-signature@1.2.2: + resolution: {integrity: sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg==} + engines: {node: '>=6.6.0'} + cookie@0.7.1: resolution: {integrity: sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==} engines: {node: '>= 0.6'} @@ -3008,8 +2921,8 @@ packages: core-js-compat@3.39.0: resolution: {integrity: sha512-VgEUx3VwlExr5no0tXlBt+silBvhTryPwCXRI2Id1PN8WTKu7MreethvddqOubrYxkFdv/RnYrqlv1sFNAUelw==} - core-js@3.37.1: - resolution: {integrity: sha512-Xn6qmxrQZyB0FFY8E3bgRXei3lWDJHhvI+u0q9TKIYM49G8pAr0FgnnrFRAmsbptZL1yxRADVXn+x5AGsbBfyw==} + core-js@3.40.0: + resolution: {integrity: sha512-7vsMc/Lty6AGnn7uFpYT56QesI5D2Y/UkgKounk87OP9Z2H9Z8kj6jzcSGAxFmUtDOS0ntK6lbQz+Nsa0Jj6mQ==} core-util-is@1.0.2: resolution: {integrity: sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==} @@ -3094,15 +3007,6 @@ packages: supports-color: optional: true - debug@4.3.7: - resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - debug@4.4.0: resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==} engines: {node: '>=6.0'} @@ -3202,6 +3106,10 @@ packages: resolution: {integrity: sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==} engines: {node: '>=12'} + dunder-proto@1.0.1: + resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} + engines: {node: '>= 0.4'} + duplexify@3.7.1: resolution: {integrity: sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==} @@ -3279,12 +3187,20 @@ packages: resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} engines: {node: '>= 0.4'} + es-define-property@1.0.1: + resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} + engines: {node: '>= 0.4'} + es-errors@1.3.0: resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} engines: {node: '>= 0.4'} - esbuild@0.25.1: - resolution: {integrity: sha512-BGO5LtrGC7vxnqucAe/rmvKdJllfGaYWdyABvyMoXQlfYMb2bbRuReWR5tEGE//4LcNJj9XrkovTqNYRFZHAMQ==} + es-object-atoms@1.1.1: + resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} + engines: {node: '>= 0.4'} + + esbuild@0.25.4: + resolution: {integrity: sha512-8pgjLUcUjcgDg+2Q4NYXnPbo/vncAY4UmyaCm0jZevERqCHZIaWwdJHkf8XQtu4AxSKCdvrUbT0XUr1IdZzI8Q==} engines: {node: '>=18'} hasBin: true @@ -3307,16 +3223,12 @@ packages: resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} engines: {node: '>=10'} - eslint-config-prettier@10.1.1: - resolution: {integrity: sha512-4EQQr6wXwS+ZJSzaR5ZCrYgLxqvUjdXctaEtBqHcbkW944B1NQyO4qpdHQbXBONfwxXdkAY81HH4+LUfrg+zPw==} + eslint-config-prettier@10.1.3: + resolution: {integrity: sha512-vDo4d9yQE+cS2tdIT4J02H/16veRvkHgiLDRpej+WL67oCfbOb97itZXn8wMPJ/GsiEBVjrjs//AVNw2Cp1EcA==} hasBin: true peerDependencies: eslint: '>=7.0.0' - eslint-scope@8.2.0: - resolution: {integrity: sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - eslint-scope@8.3.0: resolution: {integrity: sha512-pUNxi75F8MJ/GdeKtVLSbYg4ZI34J6C0C7sbL4YOp2exGwen7ZsuBqKzUhXd0qMQ362yET3z+uPwKeg/0C2XCQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -3329,28 +3241,8 @@ packages: resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - eslint@9.15.0: - resolution: {integrity: sha512-7CrWySmIibCgT1Os28lUU6upBshZ+GxybLOrmRzi08kS8MBuO8QA7pXEgYgY5W8vK3e74xv0lpjo9DbaGU9Rkw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - hasBin: true - peerDependencies: - jiti: '*' - peerDependenciesMeta: - jiti: - optional: true - - eslint@9.22.0: - resolution: {integrity: sha512-9V/QURhsRN40xuHXWjV64yvrzMjcz7ZyNoF2jJFmy9j/SLk0u1OLSZgXi28MrXjymnjEGSR80WCdab3RGMDveQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - hasBin: true - peerDependencies: - jiti: '*' - peerDependenciesMeta: - jiti: - optional: true - - eslint@9.23.0: - resolution: {integrity: sha512-jV7AbNoFPAY1EkFYpLq5bslU9NLNO8xnEeQXwErNibVryjk67wHVmddTBilc5srIttJDBrB0eMHKZBFbSIABCw==} + eslint@9.26.0: + resolution: {integrity: sha512-Hx0MOjPh6uK9oq9nVsATZKE/Wlbai7KFjfCuw9UHaguDW3x+HF0O5nIi3ud39TWgrTjTO5nHxmL3R1eANinWHQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} hasBin: true peerDependencies: @@ -3403,6 +3295,14 @@ packages: resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} engines: {node: '>=0.8.x'} + eventsource-parser@3.0.1: + resolution: {integrity: sha512-VARTJ9CYeuQYb0pZEPbzi740OWFgpHe7AYJ2WFZVnUDUQp5Dk2yJUgF36YsZ81cOyxT0QxmXD2EQpapAouzWVA==} + engines: {node: '>=18.0.0'} + + eventsource@3.0.6: + resolution: {integrity: sha512-l19WpE2m9hSuyP06+FbuUUf1G+R0SFLrtQfbRb9PRr+oimOfxQhgGCbVaXg5IvZyyTThJsxh6L/srkMiCeBPDA==} + engines: {node: '>=18.0.0'} + execa@5.1.1: resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} engines: {node: '>=10'} @@ -3429,10 +3329,20 @@ packages: express-rate-limit@5.5.1: resolution: {integrity: sha512-MTjE2eIbHv5DyfuFz4zLYWxpqVhEhkTiwFGuB74Q9CSou2WHO52nlE5y3Zlg6SIsiYUIPj6ifFxnkPz6O3sIUg==} + express-rate-limit@7.5.0: + resolution: {integrity: sha512-eB5zbQh5h+VenMPM3fh+nw1YExi5nMr6HUCR62ELSP11huvxm/Uir1H1QEyTkk5QX6A58pX6NmaTMceKZ0Eodg==} + engines: {node: '>= 16'} + peerDependencies: + express: ^4.11 || 5 || ^5.0.0-beta.1 + express@4.21.2: resolution: {integrity: sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==} engines: {node: '>= 0.10.0'} + express@5.1.0: + resolution: {integrity: sha512-DT9ck5YIRU+8GYzzU5kT3eHGA5iL+1Zd0EutOmTE9Dtk+Tvuzd23VBU+ec7HPNSTxXYO55gPV/hq4pSBJDjFpA==} + engines: {node: '>= 18'} + ext-list@2.2.2: resolution: {integrity: sha512-u+SQgsubraE6zItfVA0tBuCBhfU9ogSRnsvygI7wht9TS510oLkBRXBsqopeUG/GBOIQyKZO9wjTqIu/sf5zFA==} engines: {node: '>=0.10.0'} @@ -3458,10 +3368,6 @@ packages: fast-fifo@1.3.2: resolution: {integrity: sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==} - fast-glob@3.3.2: - resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} - engines: {node: '>=8.6.0'} - fast-glob@3.3.3: resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} engines: {node: '>=8.6.0'} @@ -3476,9 +3382,6 @@ packages: resolution: {integrity: sha512-dwsoQlS7h9hMeYUq1W++23NDcBLV4KqONnITDV9DjfS3q1SgDGVrBdvvTLUotWtPSD7asWDV9/CmsZPy8Hf70A==} engines: {node: '>=6'} - fast-safe-stringify@2.1.1: - resolution: {integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==} - fast-uri@3.0.1: resolution: {integrity: sha512-MWipKbbYiYI0UC7cl8m/i/IWTqfC8YXsqjzybjddLsFjStroQzsHXkc73JutMvBiXmOvapk+axIl79ig5t55Bw==} @@ -3535,6 +3438,10 @@ packages: resolution: {integrity: sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==} engines: {node: '>= 0.8'} + finalhandler@2.1.0: + resolution: {integrity: sha512-/t88Ty3d5JWQbWYgaOGCCYfXRwV1+be02WqYYlL6h0lEiUAMPM8o8qKGO01YIkOHzka2up08wvgYD0mDiI+q3Q==} + engines: {node: '>= 0.8'} + find-node-modules@2.1.3: resolution: {integrity: sha512-UC2I2+nx1ZuOBclWVNdcnbDR5dlrOdVb7xNjmT/lHE+LsgztWks3dG7boJ37yTS/venXw84B/mAW9uHVoC5QRg==} @@ -3604,6 +3511,10 @@ packages: resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} engines: {node: '>= 0.6'} + fresh@2.0.0: + resolution: {integrity: sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==} + engines: {node: '>= 0.8'} + front-matter@4.0.2: resolution: {integrity: sha512-I8ZuJ/qG92NWX8i5x1Y8qyj3vizhXS31OxjKDu3LKP+7/qBgfIKValiZIEwoVoJKUHlhWtYrktkxV1XsX+pPlg==} @@ -3649,10 +3560,18 @@ packages: resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} engines: {node: '>= 0.4'} + get-intrinsic@1.3.0: + resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==} + engines: {node: '>= 0.4'} + get-package-type@0.1.0: resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==} engines: {node: '>=8.0.0'} + get-proto@1.0.1: + resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} + engines: {node: '>= 0.4'} + get-stream@6.0.1: resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} engines: {node: '>=10'} @@ -3719,6 +3638,10 @@ packages: gopd@1.0.1: resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} + gopd@1.2.0: + resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} + engines: {node: '>= 0.4'} + got@13.0.0: resolution: {integrity: sha512-XfBk1CxOOScDcMr9O1yKkNaQyy865NbYs+F7dr4H0LZMVgCj2Le59k6PqbNHoL5ToeaEQUYh6c6yMfVcc6SJxA==} engines: {node: '>=16'} @@ -3760,6 +3683,10 @@ packages: resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} engines: {node: '>= 0.4'} + has-symbols@1.1.0: + resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} + engines: {node: '>= 0.4'} + hasown@2.0.2: resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} engines: {node: '>= 0.4'} @@ -3848,8 +3775,8 @@ packages: resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} engines: {node: '>= 4'} - ignore@7.0.3: - resolution: {integrity: sha512-bAH5jbK/F3T3Jls4I0SO1hmPR0dKU0a7+SY6n1yzRtG54FLO8d6w/nxLFX2Nb7dBu6cCWXPaAME6cYqFUMmuCA==} + ignore@7.0.4: + resolution: {integrity: sha512-gJzzk+PQNznz8ysRrC0aOkBNVRBDtE1n53IqyqEf3PXrYwomFs5q4pGMizBMJF+ykh03insJ27hB8gSrD2Hn8A==} engines: {node: '>= 4'} import-fresh@3.3.0: @@ -3970,6 +3897,9 @@ packages: is-promise@2.2.2: resolution: {integrity: sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==} + is-promise@4.0.0: + resolution: {integrity: sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==} + is-stream@2.0.1: resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} engines: {node: '>=8'} @@ -4285,10 +4215,6 @@ packages: resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} engines: {node: '>=6'} - kleur@4.1.5: - resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} - engines: {node: '>=6'} - leven@3.1.0: resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} engines: {node: '>=6'} @@ -4308,8 +4234,8 @@ packages: resolution: {integrity: sha512-cNOjgCnLB+FnvWWtyRTzmB3POJ+cXxTA81LoW7u8JdmhfXzriropYwpjShnz1QLLWsQwY7nIxoDmcPTwphDK9w==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - lint-staged@15.5.0: - resolution: {integrity: sha512-WyCzSbfYGhK7cU+UuDDkzUiytbfbi0ZdPy2orwtM75P3WTtQBzmG40cCxIa8Ii2+XjfxzLH6Be46tUfWS85Xfg==} + lint-staged@15.5.2: + resolution: {integrity: sha512-YUSOLq9VeRNAo/CTaVmhGDKG+LBtA8KF1X4K5+ykMSwWST1vDxJRB2kv2COgLb1fvpCo+A/y9A0G0znNVmdx4w==} engines: {node: '>=18.12.0'} hasBin: true @@ -4419,9 +4345,6 @@ packages: resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==} engines: {node: '>=12'} - magic-string@0.30.12: - resolution: {integrity: sha512-Ea8I3sQMVXr8JhN4z+H/d8zwo+tYDgHE9+5G4Wnrwhs0gaK9fXTKx0Tw5Xwsd/bCPTTZNRAdpyzvoeORe9LYpw==} - magic-string@0.30.17: resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==} @@ -4443,10 +4366,18 @@ packages: makeerror@1.0.12: resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==} + math-intrinsics@1.1.0: + resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} + engines: {node: '>= 0.4'} + media-typer@0.3.0: resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} engines: {node: '>= 0.6'} + media-typer@1.1.0: + resolution: {integrity: sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==} + engines: {node: '>= 0.8'} + meow@12.1.1: resolution: {integrity: sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw==} engines: {node: '>=16.10'} @@ -4454,6 +4385,10 @@ packages: merge-descriptors@1.0.3: resolution: {integrity: sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==} + merge-descriptors@2.0.0: + resolution: {integrity: sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g==} + engines: {node: '>=18'} + merge-stream@2.0.0: resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} @@ -4480,10 +4415,18 @@ packages: resolution: {integrity: sha512-oHlN/w+3MQ3rba9rqFr6V/ypF10LSkdwUysQL7GkXoTgIWeV+tcXGA852TBxH+gsh8UWoyhR1hKcoMJTuWflpg==} engines: {node: '>= 0.6'} + mime-db@1.54.0: + resolution: {integrity: sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==} + engines: {node: '>= 0.6'} + mime-types@2.1.35: resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} engines: {node: '>= 0.6'} + mime-types@3.0.1: + resolution: {integrity: sha512-xRc4oEhT6eaBpU1XF7AjpOFD+xQmXNB5OVKwp4tqCuBpHLS/ZbBDrc07mYTDqVMg6PfxUjjNp85O6Cd2Z/5HWA==} + engines: {node: '>= 0.6'} + mime@1.6.0: resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} engines: {node: '>=4'} @@ -4720,8 +4663,9 @@ packages: resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - nx@0.0.0-pr-30418-4f79396: - resolution: {integrity: sha512-8O1WGRh8nLPfmorI2pzDIpvfKz4W24EF6elZ6D5ip2+p9M5LkIxoKu1NrcsOQrL0N306j3RjLXYVmYIS7W1p1A==} + nx@21.0.2: + resolution: {integrity: sha512-Kkf7d4XgQH5KglwuWxtjY0scHClEf3G3I3wZpBWRdUd52t/a1kxUPL4lDcJ7hwkW+FWgSxFB+jmp/kMbroMXOg==} + engines: {node: ^20.19.0 || ^22.12.0} hasBin: true peerDependencies: '@swc-node/register': ^1.8.0 @@ -4787,8 +4731,8 @@ packages: resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} engines: {node: '>=0.10.0'} - oxc-resolver@5.0.1: - resolution: {integrity: sha512-BbclyCSxgnqO5mo05RGcwp8rkVdZL7sf0ugEnFWK67DIBAMq5wR0/GQlQCdPiPkpiv9GESAVX2cbh1DMFux/TQ==} + oxc-resolver@5.2.0: + resolution: {integrity: sha512-ce0rdG5Y0s1jhcvh2Zc6sD+fTw/WA4pUKWrPmjbniZjC/m6pPob2I2Pkz8T0YzdWsbAC98E00Bc7KNB1B6Tolg==} p-cancelable@3.0.0: resolution: {integrity: sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==} @@ -4887,6 +4831,10 @@ packages: path-to-regexp@0.1.12: resolution: {integrity: sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==} + path-to-regexp@8.2.0: + resolution: {integrity: sha512-TdrF7fW9Rphjq4RjrW0Kp2AW0Ahwu9sRGTkS6bvDi0SCwZlEZYmcfDbEsTz8RVk0EHIS/Vd1bv3JhG+1xZuAyQ==} + engines: {node: '>=16'} + path-type@4.0.0: resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} engines: {node: '>=8'} @@ -4933,8 +4881,8 @@ packages: pino-std-serializers@7.0.0: resolution: {integrity: sha512-e906FRY0+tV27iq4juKzSYPbUj2do2X2JX4EzSca1631EB2QJQUqGbDuERal7LCtOpxl6x3+nvo9NPZcmjkiFA==} - pino@9.5.0: - resolution: {integrity: sha512-xSEmD4pLnV54t0NOUN16yCl7RIB1c5UUOse5HSyEXtBp+FgFQyPeDutc+Q2ZO7/22vImV7VfEjH/1zV2QuqvYw==} + pino@9.6.0: + resolution: {integrity: sha512-i85pKRCt4qMjZ1+L7sy2Ag4t1atFcdbEt76+7iRJn1g2BvsnRMGu9p8pivl9fs63M2kF/A0OacFZhTub+m/qMg==} hasBin: true pirates@4.0.6: @@ -4944,6 +4892,10 @@ packages: piscina@4.7.0: resolution: {integrity: sha512-b8hvkpp9zS0zsfa939b/jXbe64Z2gZv0Ha7FYPNUiDIB1y2AtxcOZdfP8xN8HFjUaqQiT9gRlfjAsoL8vdJ1Iw==} + pkce-challenge@5.0.0: + resolution: {integrity: sha512-ueGLflrrnvwB3xuo/uGob5pd5FN7l0MsLf0Z87o/UQmRtwjvfylfc9MurIxRAWywCYTgrvpXBcqjV4OfCYGCIQ==} + engines: {node: '>=16.20.0'} + pkg-dir@4.2.0: resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} engines: {node: '>=8'} @@ -5035,8 +4987,8 @@ packages: resolution: {integrity: sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==} engines: {node: '>=0.6'} - qs@6.13.1: - resolution: {integrity: sha512-EJPeIn0CYrGu+hli1xilKAPXODtJ12T0sP63Ijx2/khC2JtuaN3JyNIpvmnkmaEtha9ocbG4A4cMcr+TvqvwQg==} + qs@6.14.0: + resolution: {integrity: sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==} engines: {node: '>=0.6'} queue-microtask@1.2.3: @@ -5060,6 +5012,10 @@ packages: resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==} engines: {node: '>= 0.8'} + raw-body@3.0.0: + resolution: {integrity: sha512-RmkhL8CAyCRPXCE28MMH0z2PNWQBNk2Q09ZdxM9IOOXwxwZbN+qbWaatPkdkWIKL2ZVDImrN/pK5HTRz2PcS4g==} + engines: {node: '>= 0.8'} + react-is@18.3.1: resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==} @@ -5168,6 +5124,10 @@ packages: resolution: {integrity: sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ==} hasBin: true + router@2.2.0: + resolution: {integrity: sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ==} + engines: {node: '>= 18'} + run-async@2.4.1: resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==} engines: {node: '>=0.12.0'} @@ -5221,10 +5181,18 @@ packages: resolution: {integrity: sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==} engines: {node: '>= 0.8.0'} + send@1.2.0: + resolution: {integrity: sha512-uaW0WwXKpL9blXE2o0bRhoL2EGXIrZxQ2ZQ4mgcfoBxdFmQold+qWsD2jLrfZ0trjKL6vOw0j//eAwcALFjKSw==} + engines: {node: '>= 18'} + serve-static@1.16.2: resolution: {integrity: sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==} engines: {node: '>= 0.8.0'} + serve-static@2.2.0: + resolution: {integrity: sha512-61g9pCh0Vnh7IutZjtLGGpTA355+OPn2TyDv/6ivP2h/AdAVX9azsoxmg2/M6nZeQZNYBEwIcsne1mJd9oQItQ==} + engines: {node: '>= 18'} + set-function-length@1.2.2: resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} engines: {node: '>= 0.4'} @@ -5240,10 +5208,26 @@ packages: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} + side-channel-list@1.0.0: + resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==} + engines: {node: '>= 0.4'} + + side-channel-map@1.0.1: + resolution: {integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==} + engines: {node: '>= 0.4'} + + side-channel-weakmap@1.0.2: + resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==} + engines: {node: '>= 0.4'} + side-channel@1.0.6: resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} engines: {node: '>= 0.4'} + side-channel@1.1.0: + resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==} + engines: {node: '>= 0.4'} + signal-exit@3.0.7: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} @@ -5481,8 +5465,8 @@ packages: through@2.3.8: resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} - tinyexec@0.3.1: - resolution: {integrity: sha512-WiCJLEECkO18gwqIp6+hJg0//p23HXp4S+gGtAKu3mI2F2/sXC4FvHvXvB0zJVVaTPhx1/tOwdbRsa1sOBIKqQ==} + tinyexec@1.0.1: + resolution: {integrity: sha512-5uC6DDlmeqiOwCPmK9jMSdOuZTh8bU39Ys6yidB+UTt5hfZUPGAypSgFRiEp+jbi9qH40BLDvy85jIU88wKSqw==} tinyglobby@0.2.10: resolution: {integrity: sha512-Zc+8eJlFMvgatPZTl6A9L/yht8QqdmUNtURHaKZLmKBE12hNPSrqNkUp2cs3M/UKmNVVAMFQYSjYIVHDjW5zew==} @@ -5533,18 +5517,6 @@ packages: resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} hasBin: true - ts-api-utils@1.4.3: - resolution: {integrity: sha512-i3eMG77UTMD0hZhgRS562pv83RC6ukSAC2GMNWc+9dieh/+jDM5u5YG+NHX6VNDRHQcHwmsTHctP9LhbC3WxVw==} - engines: {node: '>=16'} - peerDependencies: - typescript: '>=4.2.0' - - ts-api-utils@2.0.1: - resolution: {integrity: sha512-dnlgjFSVetynI8nzgJ+qF62efpglpWRk8isUEWZGWlJYySCTD6aKvbUDu+zbPeDakk3bg5H4XpitHukgfL1m9w==} - engines: {node: '>=18.12'} - peerDependencies: - typescript: '>=4.8.4' - ts-api-utils@2.1.0: resolution: {integrity: sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==} engines: {node: '>=18.12'} @@ -5596,8 +5568,8 @@ packages: tslib@2.8.1: resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} - tsx@4.19.3: - resolution: {integrity: sha512-4H8vUNGNjQ4V2EOoGw005+c+dGuPSnhpPBPHBtsZdGZBk/iJb4kguGlPWaZTZ3q5nMtFOEsY0nRDlh9PJyd6SQ==} + tsx@4.19.4: + resolution: {integrity: sha512-gK5GVzDkJK1SI1zwHf32Mqxf2tSJkNx+eYcNly5+nHvWqXUJYUkWBQtKauoESz3ymezAI++ZwT855x5p5eop+Q==} engines: {node: '>=18.0.0'} hasBin: true @@ -5630,30 +5602,24 @@ packages: resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} engines: {node: '>= 0.6'} - typescript-eslint@8.16.0: - resolution: {integrity: sha512-wDkVmlY6O2do4V+lZd0GtRfbtXbeD0q9WygwXXSJnC1xorE8eqyC2L1tJimqpSeFrOzRlYtWnUp/uzgHQOgfBQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true + type-is@2.0.1: + resolution: {integrity: sha512-OZs6gsjF4vMp32qrCbiVSkrFmXtG/AZhY3t0iAMrMBiAZyV9oALtXO8hsrHbMXF9x6L3grlFuwW2oAz7cav+Gw==} + engines: {node: '>= 0.6'} - typescript-eslint@8.27.0: - resolution: {integrity: sha512-ZZ/8+Y0rRUMuW1gJaPtLWe4ryHbsPLzzibk5Sq+IFa2aOH1Vo0gPr1fbA6pOnzBke7zC2Da4w8AyCgxKXo3lqA==} + typescript-eslint@8.32.0: + resolution: {integrity: sha512-UMq2kxdXCzinFFPsXc9o2ozIpYCCOiEC46MG3yEh5Vipq6BO27otTtEBZA1fQ66DulEUgE97ucQ/3YY66CPg0A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' - typescript@5.5.4: - resolution: {integrity: sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==} + typescript@5.7.3: + resolution: {integrity: sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==} engines: {node: '>=14.17'} hasBin: true - typescript@5.7.3: - resolution: {integrity: sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==} + typescript@5.8.3: + resolution: {integrity: sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==} engines: {node: '>=14.17'} hasBin: true @@ -5765,16 +5731,16 @@ packages: resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} engines: {node: '>= 0.8'} - verdaccio-audit@13.0.0-next-8.7: - resolution: {integrity: sha512-kd6YdrDztkP1/GDZT7Ue2u41iGPvM9y+5aaUbIBUPvTY/YVv57K6MaCMfn9C/I+ZL4R7XOTSxTtWvz3JK4QrNg==} + verdaccio-audit@13.0.0-next-8.15: + resolution: {integrity: sha512-Aeau0u0fi5l4PoSDyOV6glz2FDO9+ofvogJIELV4H6fhDXhgPc2MnoKuaUgOT//khESLle/a6YfcLY2/KNLs6g==} engines: {node: '>=18'} - verdaccio-htpasswd@13.0.0-next-8.7: - resolution: {integrity: sha512-znyFnwt59mLKTAu6eHJrfWP07iaHUlYiQN7QoBo8KMAOT1AecUYreBqs93oKHdIOzjTI8j6tQLg57DpeVS5vgg==} + verdaccio-htpasswd@13.0.0-next-8.15: + resolution: {integrity: sha512-rQg5oZ/rReDAM4g4W68hvtzReTbM6vduvVtobHsQxhbtbotEuUjP6O8uaROYtgZ60giGva5Tub2SOm2T9Ln9Dw==} engines: {node: '>=18'} - verdaccio@6.0.5: - resolution: {integrity: sha512-hv+v4mtG/rcNidGUHXAtNuVySiPE3/PM+7dYye5jCDrhCUmRJYOtnvDe/Ym1ZE/twti39g6izVRxEkjnSp52gA==} + verdaccio@6.1.2: + resolution: {integrity: sha512-HQCquycSQkA+tKRVqMjIVRzmhzTciLfScvKIhhiwZZ9Qd13e2KJQTOdB7QrSacfJuPpl94TA5EZ7XmVRQKk3ag==} engines: {node: '>=18'} hasBin: true @@ -5898,6 +5864,14 @@ packages: resolution: {integrity: sha512-cYVsTjKl8b+FrnidjibDWskAv7UKOfcwaVZdp/it9n1s9fU3IkgDbhdIRKCW4JDsAlECJY0ytoVPT3sK6kideA==} engines: {node: '>=18'} + zod-to-json-schema@3.24.5: + resolution: {integrity: sha512-/AuWwMP+YqiPbsJx5D6TfgRTc4kTLjsh5SOcd4bLsfUg2RcEXrFMJl1DGgdHy2aCfsIA/cr/1JM0xcB2GZji8g==} + peerDependencies: + zod: ^3.24.1 + + zod@3.24.4: + resolution: {integrity: sha512-OdqJE9UDRPwWsrHjLN2F8bPxvwJBK22EHLWtanu0LSYr5YqzsaaW3RMgmjwr8Rypg5k+meEJdSPXJZXE/yqOMg==} + snapshots: '@ampproject/remapping@2.3.0': @@ -5905,39 +5879,14 @@ snapshots: '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 - '@angular-devkit/architect@0.1900.0': - dependencies: - '@angular-devkit/core': 19.0.0 - rxjs: 7.8.1 - transitivePeerDependencies: - - chokidar - - '@angular-devkit/architect@0.1902.4': + '@angular-devkit/architect@0.1902.11': dependencies: - '@angular-devkit/core': 19.2.4 + '@angular-devkit/core': 19.2.11 rxjs: 7.8.1 transitivePeerDependencies: - chokidar - '@angular-devkit/core@19.0.0': - dependencies: - ajv: 8.17.1 - ajv-formats: 3.0.1(ajv@8.17.1) - jsonc-parser: 3.3.1 - picomatch: 4.0.2 - rxjs: 7.8.1 - source-map: 0.7.4 - - '@angular-devkit/core@19.0.2': - dependencies: - ajv: 8.17.1 - ajv-formats: 3.0.1(ajv@8.17.1) - jsonc-parser: 3.3.1 - picomatch: 4.0.2 - rxjs: 7.8.1 - source-map: 0.7.4 - - '@angular-devkit/core@19.2.4': + '@angular-devkit/core@19.2.11': dependencies: ajv: 8.17.1 ajv-formats: 3.0.1(ajv@8.17.1) @@ -5946,29 +5895,9 @@ snapshots: rxjs: 7.8.1 source-map: 0.7.4 - '@angular-devkit/schematics@19.0.0': - dependencies: - '@angular-devkit/core': 19.0.0 - jsonc-parser: 3.3.1 - magic-string: 0.30.12 - ora: 5.4.1 - rxjs: 7.8.1 - transitivePeerDependencies: - - chokidar - - '@angular-devkit/schematics@19.0.2': - dependencies: - '@angular-devkit/core': 19.0.2 - jsonc-parser: 3.3.1 - magic-string: 0.30.12 - ora: 5.4.1 - rxjs: 7.8.1 - transitivePeerDependencies: - - chokidar - - '@angular-devkit/schematics@19.2.4': + '@angular-devkit/schematics@19.2.11': dependencies: - '@angular-devkit/core': 19.2.4 + '@angular-devkit/core': 19.2.11 jsonc-parser: 3.3.1 magic-string: 0.30.17 ora: 5.4.1 @@ -5976,14 +5905,14 @@ snapshots: transitivePeerDependencies: - chokidar - '@angular/cli@19.2.4(@types/node@20.17.25)': + '@angular/cli@19.2.11(@types/node@20.17.45)': dependencies: - '@angular-devkit/architect': 0.1902.4 - '@angular-devkit/core': 19.2.4 - '@angular-devkit/schematics': 19.2.4 - '@inquirer/prompts': 7.3.2(@types/node@20.17.25) - '@listr2/prompt-adapter-inquirer': 2.0.18(@inquirer/prompts@7.3.2(@types/node@20.17.25)) - '@schematics/angular': 19.2.4 + '@angular-devkit/architect': 0.1902.11 + '@angular-devkit/core': 19.2.11 + '@angular-devkit/schematics': 19.2.11 + '@inquirer/prompts': 7.3.2(@types/node@20.17.45) + '@listr2/prompt-adapter-inquirer': 2.0.18(@inquirer/prompts@7.3.2(@types/node@20.17.45)) + '@schematics/angular': 19.2.11 '@yarnpkg/lockfile': 1.1.0 ini: 5.0.0 jsonc-parser: 3.3.1 @@ -6001,7 +5930,7 @@ snapshots: - chokidar - supports-color - '@angular/compiler@19.2.3': + '@angular/compiler@19.2.10': dependencies: tslib: 2.8.1 @@ -6798,38 +6727,38 @@ snapshots: '@bcoe/v8-coverage@0.2.3': {} - '@commitlint/cli@19.8.0(@types/node@20.17.25)(typescript@5.7.3)': + '@commitlint/cli@19.8.1(@types/node@20.17.45)(typescript@5.8.3)': dependencies: - '@commitlint/format': 19.8.0 - '@commitlint/lint': 19.8.0 - '@commitlint/load': 19.8.0(@types/node@20.17.25)(typescript@5.7.3) - '@commitlint/read': 19.8.0 - '@commitlint/types': 19.8.0 - tinyexec: 0.3.1 + '@commitlint/format': 19.8.1 + '@commitlint/lint': 19.8.1 + '@commitlint/load': 19.8.1(@types/node@20.17.45)(typescript@5.8.3) + '@commitlint/read': 19.8.1 + '@commitlint/types': 19.8.1 + tinyexec: 1.0.1 yargs: 17.7.2 transitivePeerDependencies: - '@types/node' - typescript - '@commitlint/config-conventional@19.8.0': + '@commitlint/config-conventional@19.8.1': dependencies: - '@commitlint/types': 19.8.0 + '@commitlint/types': 19.8.1 conventional-changelog-conventionalcommits: 7.0.2 '@commitlint/config-validator@19.5.0': dependencies: - '@commitlint/types': 19.5.0 + '@commitlint/types': 19.8.0 ajv: 8.17.1 optional: true - '@commitlint/config-validator@19.8.0': + '@commitlint/config-validator@19.8.1': dependencies: - '@commitlint/types': 19.8.0 + '@commitlint/types': 19.8.1 ajv: 8.17.1 - '@commitlint/ensure@19.8.0': + '@commitlint/ensure@19.8.1': dependencies: - '@commitlint/types': 19.8.0 + '@commitlint/types': 19.8.1 lodash.camelcase: 4.3.0 lodash.kebabcase: 4.1.1 lodash.snakecase: 4.1.1 @@ -6839,34 +6768,34 @@ snapshots: '@commitlint/execute-rule@19.5.0': optional: true - '@commitlint/execute-rule@19.8.0': {} + '@commitlint/execute-rule@19.8.1': {} - '@commitlint/format@19.8.0': + '@commitlint/format@19.8.1': dependencies: - '@commitlint/types': 19.8.0 + '@commitlint/types': 19.8.1 chalk: 5.4.1 - '@commitlint/is-ignored@19.8.0': + '@commitlint/is-ignored@19.8.1': dependencies: - '@commitlint/types': 19.8.0 + '@commitlint/types': 19.8.1 semver: 7.7.1 - '@commitlint/lint@19.8.0': + '@commitlint/lint@19.8.1': dependencies: - '@commitlint/is-ignored': 19.8.0 - '@commitlint/parse': 19.8.0 - '@commitlint/rules': 19.8.0 - '@commitlint/types': 19.8.0 + '@commitlint/is-ignored': 19.8.1 + '@commitlint/parse': 19.8.1 + '@commitlint/rules': 19.8.1 + '@commitlint/types': 19.8.1 - '@commitlint/load@19.5.0(@types/node@20.17.25)(typescript@5.7.3)': + '@commitlint/load@19.5.0(@types/node@20.17.45)(typescript@5.8.3)': dependencies: '@commitlint/config-validator': 19.5.0 '@commitlint/execute-rule': 19.5.0 '@commitlint/resolve-extends': 19.5.0 - '@commitlint/types': 19.5.0 + '@commitlint/types': 19.8.0 chalk: 5.4.1 - cosmiconfig: 9.0.0(typescript@5.7.3) - cosmiconfig-typescript-loader: 5.1.0(@types/node@20.17.25)(cosmiconfig@9.0.0(typescript@5.7.3))(typescript@5.7.3) + cosmiconfig: 9.0.0(typescript@5.8.3) + cosmiconfig-typescript-loader: 5.1.0(@types/node@20.17.45)(cosmiconfig@9.0.0(typescript@5.8.3))(typescript@5.8.3) lodash.isplainobject: 4.0.6 lodash.merge: 4.6.2 lodash.uniq: 4.5.0 @@ -6875,15 +6804,15 @@ snapshots: - typescript optional: true - '@commitlint/load@19.8.0(@types/node@20.17.25)(typescript@5.7.3)': + '@commitlint/load@19.8.1(@types/node@20.17.45)(typescript@5.8.3)': dependencies: - '@commitlint/config-validator': 19.8.0 - '@commitlint/execute-rule': 19.8.0 - '@commitlint/resolve-extends': 19.8.0 - '@commitlint/types': 19.8.0 + '@commitlint/config-validator': 19.8.1 + '@commitlint/execute-rule': 19.8.1 + '@commitlint/resolve-extends': 19.8.1 + '@commitlint/types': 19.8.1 chalk: 5.4.1 - cosmiconfig: 9.0.0(typescript@5.7.3) - cosmiconfig-typescript-loader: 6.1.0(@types/node@20.17.25)(cosmiconfig@9.0.0(typescript@5.7.3))(typescript@5.7.3) + cosmiconfig: 9.0.0(typescript@5.8.3) + cosmiconfig-typescript-loader: 6.1.0(@types/node@20.17.45)(cosmiconfig@9.0.0(typescript@5.8.3))(typescript@5.8.3) lodash.isplainobject: 4.0.6 lodash.merge: 4.6.2 lodash.uniq: 4.5.0 @@ -6891,61 +6820,61 @@ snapshots: - '@types/node' - typescript - '@commitlint/message@19.8.0': {} + '@commitlint/message@19.8.1': {} - '@commitlint/parse@19.8.0': + '@commitlint/parse@19.8.1': dependencies: - '@commitlint/types': 19.8.0 + '@commitlint/types': 19.8.1 conventional-changelog-angular: 7.0.0 conventional-commits-parser: 5.0.0 - '@commitlint/read@19.8.0': + '@commitlint/read@19.8.1': dependencies: - '@commitlint/top-level': 19.8.0 - '@commitlint/types': 19.8.0 + '@commitlint/top-level': 19.8.1 + '@commitlint/types': 19.8.1 git-raw-commits: 4.0.0 minimist: 1.2.8 - tinyexec: 0.3.1 + tinyexec: 1.0.1 '@commitlint/resolve-extends@19.5.0': dependencies: '@commitlint/config-validator': 19.5.0 - '@commitlint/types': 19.5.0 + '@commitlint/types': 19.8.0 global-directory: 4.0.1 import-meta-resolve: 4.1.0 lodash.mergewith: 4.6.2 resolve-from: 5.0.0 optional: true - '@commitlint/resolve-extends@19.8.0': + '@commitlint/resolve-extends@19.8.1': dependencies: - '@commitlint/config-validator': 19.8.0 - '@commitlint/types': 19.8.0 + '@commitlint/config-validator': 19.8.1 + '@commitlint/types': 19.8.1 global-directory: 4.0.1 import-meta-resolve: 4.1.0 lodash.mergewith: 4.6.2 resolve-from: 5.0.0 - '@commitlint/rules@19.8.0': + '@commitlint/rules@19.8.1': dependencies: - '@commitlint/ensure': 19.8.0 - '@commitlint/message': 19.8.0 - '@commitlint/to-lines': 19.8.0 - '@commitlint/types': 19.8.0 + '@commitlint/ensure': 19.8.1 + '@commitlint/message': 19.8.1 + '@commitlint/to-lines': 19.8.1 + '@commitlint/types': 19.8.1 - '@commitlint/to-lines@19.8.0': {} + '@commitlint/to-lines@19.8.1': {} - '@commitlint/top-level@19.8.0': + '@commitlint/top-level@19.8.1': dependencies: find-up: 7.0.0 - '@commitlint/types@19.5.0': + '@commitlint/types@19.8.0': dependencies: '@types/conventional-commits-parser': 5.0.1 chalk: 5.4.1 optional: true - '@commitlint/types@19.8.0': + '@commitlint/types@19.8.1': dependencies: '@types/conventional-commits-parser': 5.0.1 chalk: 5.4.1 @@ -6953,8 +6882,9 @@ snapshots: '@cspotcode/source-map-support@0.8.1': dependencies: '@jridgewell/trace-mapping': 0.3.9 + optional: true - '@cypress/request@3.0.7': + '@cypress/request@3.0.8': dependencies: aws-sign2: 0.7.0 aws4: 1.13.2 @@ -6969,136 +6899,113 @@ snapshots: json-stringify-safe: 5.0.1 mime-types: 2.1.35 performance-now: 2.1.0 - qs: 6.13.1 + qs: 6.14.0 safe-buffer: 5.2.1 tough-cookie: 5.1.0 tunnel-agent: 0.6.0 uuid: 8.3.2 - '@emnapi/core@1.3.1': + '@emnapi/core@1.4.3': dependencies: - '@emnapi/wasi-threads': 1.0.1 + '@emnapi/wasi-threads': 1.0.2 tslib: 2.8.1 - '@emnapi/runtime@1.3.1': + '@emnapi/runtime@1.4.3': dependencies: tslib: 2.8.1 - '@emnapi/wasi-threads@1.0.1': + '@emnapi/wasi-threads@1.0.2': dependencies: tslib: 2.8.1 - '@esbuild/aix-ppc64@0.25.1': + '@esbuild/aix-ppc64@0.25.4': optional: true - '@esbuild/android-arm64@0.25.1': + '@esbuild/android-arm64@0.25.4': optional: true - '@esbuild/android-arm@0.25.1': + '@esbuild/android-arm@0.25.4': optional: true - '@esbuild/android-x64@0.25.1': + '@esbuild/android-x64@0.25.4': optional: true - '@esbuild/darwin-arm64@0.25.1': + '@esbuild/darwin-arm64@0.25.4': optional: true - '@esbuild/darwin-x64@0.25.1': + '@esbuild/darwin-x64@0.25.4': optional: true - '@esbuild/freebsd-arm64@0.25.1': + '@esbuild/freebsd-arm64@0.25.4': optional: true - '@esbuild/freebsd-x64@0.25.1': + '@esbuild/freebsd-x64@0.25.4': optional: true - '@esbuild/linux-arm64@0.25.1': + '@esbuild/linux-arm64@0.25.4': optional: true - '@esbuild/linux-arm@0.25.1': + '@esbuild/linux-arm@0.25.4': optional: true - '@esbuild/linux-ia32@0.25.1': + '@esbuild/linux-ia32@0.25.4': optional: true - '@esbuild/linux-loong64@0.25.1': + '@esbuild/linux-loong64@0.25.4': optional: true - '@esbuild/linux-mips64el@0.25.1': + '@esbuild/linux-mips64el@0.25.4': optional: true - '@esbuild/linux-ppc64@0.25.1': + '@esbuild/linux-ppc64@0.25.4': optional: true - '@esbuild/linux-riscv64@0.25.1': + '@esbuild/linux-riscv64@0.25.4': optional: true - '@esbuild/linux-s390x@0.25.1': + '@esbuild/linux-s390x@0.25.4': optional: true - '@esbuild/linux-x64@0.25.1': + '@esbuild/linux-x64@0.25.4': optional: true - '@esbuild/netbsd-arm64@0.25.1': + '@esbuild/netbsd-arm64@0.25.4': optional: true - '@esbuild/netbsd-x64@0.25.1': + '@esbuild/netbsd-x64@0.25.4': optional: true - '@esbuild/openbsd-arm64@0.25.1': + '@esbuild/openbsd-arm64@0.25.4': optional: true - '@esbuild/openbsd-x64@0.25.1': + '@esbuild/openbsd-x64@0.25.4': optional: true - '@esbuild/sunos-x64@0.25.1': + '@esbuild/sunos-x64@0.25.4': optional: true - '@esbuild/win32-arm64@0.25.1': + '@esbuild/win32-arm64@0.25.4': optional: true - '@esbuild/win32-ia32@0.25.1': + '@esbuild/win32-ia32@0.25.4': optional: true - '@esbuild/win32-x64@0.25.1': + '@esbuild/win32-x64@0.25.4': optional: true - '@eslint-community/eslint-utils@4.4.1(eslint@9.15.0(jiti@2.4.2))': + '@eslint-community/eslint-utils@4.4.1(eslint@9.26.0(jiti@2.4.2))': dependencies: - eslint: 9.15.0(jiti@2.4.2) + eslint: 9.26.0(jiti@2.4.2) eslint-visitor-keys: 3.4.3 - '@eslint-community/eslint-utils@4.4.1(eslint@9.22.0(jiti@2.4.2))': + '@eslint-community/eslint-utils@4.7.0(eslint@9.26.0(jiti@2.4.2))': dependencies: - eslint: 9.22.0(jiti@2.4.2) - eslint-visitor-keys: 3.4.3 - - '@eslint-community/eslint-utils@4.5.1(eslint@9.15.0(jiti@2.4.2))': - dependencies: - eslint: 9.15.0(jiti@2.4.2) - eslint-visitor-keys: 3.4.3 - - '@eslint-community/eslint-utils@4.5.1(eslint@9.22.0(jiti@2.4.2))': - dependencies: - eslint: 9.22.0(jiti@2.4.2) - eslint-visitor-keys: 3.4.3 - - '@eslint-community/eslint-utils@4.5.1(eslint@9.23.0(jiti@2.4.2))': - dependencies: - eslint: 9.23.0(jiti@2.4.2) + eslint: 9.26.0(jiti@2.4.2) eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.12.1': {} - '@eslint/config-array@0.19.0': - dependencies: - '@eslint/object-schema': 2.1.4 - debug: 4.3.7 - minimatch: 3.1.2 - transitivePeerDependencies: - - supports-color - - '@eslint/config-array@0.19.2': + '@eslint/config-array@0.20.0': dependencies: '@eslint/object-schema': 2.1.6 debug: 4.4.0 @@ -7106,44 +7013,12 @@ snapshots: transitivePeerDependencies: - supports-color - '@eslint/config-helpers@0.1.0': {} + '@eslint/config-helpers@0.2.1': {} - '@eslint/config-helpers@0.2.0': {} - - '@eslint/core@0.12.0': + '@eslint/core@0.13.0': dependencies: '@types/json-schema': 7.0.15 - '@eslint/core@0.9.0': {} - - '@eslint/eslintrc@3.2.0': - dependencies: - ajv: 6.12.6 - debug: 4.3.7 - espree: 10.3.0 - globals: 14.0.0 - ignore: 5.3.2 - import-fresh: 3.3.0 - js-yaml: 4.1.0 - minimatch: 3.1.2 - strip-json-comments: 3.1.1 - transitivePeerDependencies: - - supports-color - - '@eslint/eslintrc@3.3.0': - dependencies: - ajv: 6.12.6 - debug: 4.4.0 - espree: 10.3.0 - globals: 14.0.0 - ignore: 5.3.2 - import-fresh: 3.3.0 - js-yaml: 4.1.0 - minimatch: 3.1.2 - strip-json-comments: 3.1.1 - transitivePeerDependencies: - - supports-color - '@eslint/eslintrc@3.3.1': dependencies: ajv: 6.12.6 @@ -7158,23 +7033,13 @@ snapshots: transitivePeerDependencies: - supports-color - '@eslint/js@9.15.0': {} - - '@eslint/js@9.22.0': {} - - '@eslint/js@9.23.0': {} - - '@eslint/object-schema@2.1.4': {} + '@eslint/js@9.26.0': {} '@eslint/object-schema@2.1.6': {} - '@eslint/plugin-kit@0.2.3': + '@eslint/plugin-kit@0.2.8': dependencies: - levn: 0.4.1 - - '@eslint/plugin-kit@0.2.7': - dependencies: - '@eslint/core': 0.12.0 + '@eslint/core': 0.13.0 levn: 0.4.1 '@humanfs/core@0.19.1': {} @@ -7188,31 +7053,29 @@ snapshots: '@humanwhocodes/retry@0.3.1': {} - '@humanwhocodes/retry@0.4.1': {} - '@humanwhocodes/retry@0.4.2': {} - '@inquirer/checkbox@4.1.2(@types/node@20.17.25)': + '@inquirer/checkbox@4.1.2(@types/node@20.17.45)': dependencies: - '@inquirer/core': 10.1.7(@types/node@20.17.25) + '@inquirer/core': 10.1.7(@types/node@20.17.45) '@inquirer/figures': 1.0.10 - '@inquirer/type': 3.0.4(@types/node@20.17.25) + '@inquirer/type': 3.0.4(@types/node@20.17.45) ansi-escapes: 4.3.2 yoctocolors-cjs: 2.1.2 optionalDependencies: - '@types/node': 20.17.25 + '@types/node': 20.17.45 - '@inquirer/confirm@5.1.6(@types/node@20.17.25)': + '@inquirer/confirm@5.1.6(@types/node@20.17.45)': dependencies: - '@inquirer/core': 10.1.7(@types/node@20.17.25) - '@inquirer/type': 3.0.4(@types/node@20.17.25) + '@inquirer/core': 10.1.7(@types/node@20.17.45) + '@inquirer/type': 3.0.4(@types/node@20.17.45) optionalDependencies: - '@types/node': 20.17.25 + '@types/node': 20.17.45 - '@inquirer/core@10.1.7(@types/node@20.17.25)': + '@inquirer/core@10.1.7(@types/node@20.17.45)': dependencies: '@inquirer/figures': 1.0.10 - '@inquirer/type': 3.0.4(@types/node@20.17.25) + '@inquirer/type': 3.0.4(@types/node@20.17.45) ansi-escapes: 4.3.2 cli-width: 4.1.0 mute-stream: 2.0.0 @@ -7220,97 +7083,97 @@ snapshots: wrap-ansi: 6.2.0 yoctocolors-cjs: 2.1.2 optionalDependencies: - '@types/node': 20.17.25 + '@types/node': 20.17.45 - '@inquirer/editor@4.2.7(@types/node@20.17.25)': + '@inquirer/editor@4.2.7(@types/node@20.17.45)': dependencies: - '@inquirer/core': 10.1.7(@types/node@20.17.25) - '@inquirer/type': 3.0.4(@types/node@20.17.25) + '@inquirer/core': 10.1.7(@types/node@20.17.45) + '@inquirer/type': 3.0.4(@types/node@20.17.45) external-editor: 3.1.0 optionalDependencies: - '@types/node': 20.17.25 + '@types/node': 20.17.45 - '@inquirer/expand@4.0.9(@types/node@20.17.25)': + '@inquirer/expand@4.0.9(@types/node@20.17.45)': dependencies: - '@inquirer/core': 10.1.7(@types/node@20.17.25) - '@inquirer/type': 3.0.4(@types/node@20.17.25) + '@inquirer/core': 10.1.7(@types/node@20.17.45) + '@inquirer/type': 3.0.4(@types/node@20.17.45) yoctocolors-cjs: 2.1.2 optionalDependencies: - '@types/node': 20.17.25 + '@types/node': 20.17.45 '@inquirer/figures@1.0.10': {} - '@inquirer/input@4.1.6(@types/node@20.17.25)': + '@inquirer/input@4.1.6(@types/node@20.17.45)': dependencies: - '@inquirer/core': 10.1.7(@types/node@20.17.25) - '@inquirer/type': 3.0.4(@types/node@20.17.25) + '@inquirer/core': 10.1.7(@types/node@20.17.45) + '@inquirer/type': 3.0.4(@types/node@20.17.45) optionalDependencies: - '@types/node': 20.17.25 + '@types/node': 20.17.45 - '@inquirer/number@3.0.9(@types/node@20.17.25)': + '@inquirer/number@3.0.9(@types/node@20.17.45)': dependencies: - '@inquirer/core': 10.1.7(@types/node@20.17.25) - '@inquirer/type': 3.0.4(@types/node@20.17.25) + '@inquirer/core': 10.1.7(@types/node@20.17.45) + '@inquirer/type': 3.0.4(@types/node@20.17.45) optionalDependencies: - '@types/node': 20.17.25 + '@types/node': 20.17.45 - '@inquirer/password@4.0.9(@types/node@20.17.25)': + '@inquirer/password@4.0.9(@types/node@20.17.45)': dependencies: - '@inquirer/core': 10.1.7(@types/node@20.17.25) - '@inquirer/type': 3.0.4(@types/node@20.17.25) + '@inquirer/core': 10.1.7(@types/node@20.17.45) + '@inquirer/type': 3.0.4(@types/node@20.17.45) ansi-escapes: 4.3.2 optionalDependencies: - '@types/node': 20.17.25 - - '@inquirer/prompts@7.3.2(@types/node@20.17.25)': - dependencies: - '@inquirer/checkbox': 4.1.2(@types/node@20.17.25) - '@inquirer/confirm': 5.1.6(@types/node@20.17.25) - '@inquirer/editor': 4.2.7(@types/node@20.17.25) - '@inquirer/expand': 4.0.9(@types/node@20.17.25) - '@inquirer/input': 4.1.6(@types/node@20.17.25) - '@inquirer/number': 3.0.9(@types/node@20.17.25) - '@inquirer/password': 4.0.9(@types/node@20.17.25) - '@inquirer/rawlist': 4.0.9(@types/node@20.17.25) - '@inquirer/search': 3.0.9(@types/node@20.17.25) - '@inquirer/select': 4.0.9(@types/node@20.17.25) + '@types/node': 20.17.45 + + '@inquirer/prompts@7.3.2(@types/node@20.17.45)': + dependencies: + '@inquirer/checkbox': 4.1.2(@types/node@20.17.45) + '@inquirer/confirm': 5.1.6(@types/node@20.17.45) + '@inquirer/editor': 4.2.7(@types/node@20.17.45) + '@inquirer/expand': 4.0.9(@types/node@20.17.45) + '@inquirer/input': 4.1.6(@types/node@20.17.45) + '@inquirer/number': 3.0.9(@types/node@20.17.45) + '@inquirer/password': 4.0.9(@types/node@20.17.45) + '@inquirer/rawlist': 4.0.9(@types/node@20.17.45) + '@inquirer/search': 3.0.9(@types/node@20.17.45) + '@inquirer/select': 4.0.9(@types/node@20.17.45) optionalDependencies: - '@types/node': 20.17.25 + '@types/node': 20.17.45 - '@inquirer/rawlist@4.0.9(@types/node@20.17.25)': + '@inquirer/rawlist@4.0.9(@types/node@20.17.45)': dependencies: - '@inquirer/core': 10.1.7(@types/node@20.17.25) - '@inquirer/type': 3.0.4(@types/node@20.17.25) + '@inquirer/core': 10.1.7(@types/node@20.17.45) + '@inquirer/type': 3.0.4(@types/node@20.17.45) yoctocolors-cjs: 2.1.2 optionalDependencies: - '@types/node': 20.17.25 + '@types/node': 20.17.45 - '@inquirer/search@3.0.9(@types/node@20.17.25)': + '@inquirer/search@3.0.9(@types/node@20.17.45)': dependencies: - '@inquirer/core': 10.1.7(@types/node@20.17.25) + '@inquirer/core': 10.1.7(@types/node@20.17.45) '@inquirer/figures': 1.0.10 - '@inquirer/type': 3.0.4(@types/node@20.17.25) + '@inquirer/type': 3.0.4(@types/node@20.17.45) yoctocolors-cjs: 2.1.2 optionalDependencies: - '@types/node': 20.17.25 + '@types/node': 20.17.45 - '@inquirer/select@4.0.9(@types/node@20.17.25)': + '@inquirer/select@4.0.9(@types/node@20.17.45)': dependencies: - '@inquirer/core': 10.1.7(@types/node@20.17.25) + '@inquirer/core': 10.1.7(@types/node@20.17.45) '@inquirer/figures': 1.0.10 - '@inquirer/type': 3.0.4(@types/node@20.17.25) + '@inquirer/type': 3.0.4(@types/node@20.17.45) ansi-escapes: 4.3.2 yoctocolors-cjs: 2.1.2 optionalDependencies: - '@types/node': 20.17.25 + '@types/node': 20.17.45 '@inquirer/type@1.5.5': dependencies: mute-stream: 1.0.0 - '@inquirer/type@3.0.4(@types/node@20.17.25)': + '@inquirer/type@3.0.4(@types/node@20.17.45)': optionalDependencies: - '@types/node': 20.17.25 + '@types/node': 20.17.45 '@isaacs/cliui@8.0.2': dependencies: @@ -7338,27 +7201,27 @@ snapshots: '@jest/console@29.7.0': dependencies: '@jest/types': 29.6.3 - '@types/node': 20.17.25 + '@types/node': 20.17.45 chalk: 4.1.2 jest-message-util: 29.7.0 jest-util: 29.7.0 slash: 3.0.0 - '@jest/core@29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.1(@swc/core@1.11.11(@swc/helpers@0.5.15))(@types/node@20.17.25)(typescript@5.7.3))': + '@jest/core@29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.1(@swc/core@1.11.24(@swc/helpers@0.5.17))(@types/node@20.17.45)(typescript@5.8.3))': dependencies: '@jest/console': 29.7.0 '@jest/reporters': 29.7.0 '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.17.25 + '@types/node': 20.17.45 ansi-escapes: 4.3.2 chalk: 4.1.2 ci-info: 3.9.0 exit: 0.1.2 graceful-fs: 4.2.11 jest-changed-files: 29.7.0 - jest-config: 29.7.0(@types/node@20.17.25)(babel-plugin-macros@3.1.0)(ts-node@10.9.1(@swc/core@1.11.11(@swc/helpers@0.5.15))(@types/node@20.17.25)(typescript@5.7.3)) + jest-config: 29.7.0(@types/node@20.17.45)(babel-plugin-macros@3.1.0)(ts-node@10.9.1(@swc/core@1.11.24(@swc/helpers@0.5.17))(@types/node@20.17.45)(typescript@5.8.3)) jest-haste-map: 29.7.0 jest-message-util: 29.7.0 jest-regex-util: 29.6.3 @@ -7383,7 +7246,7 @@ snapshots: dependencies: '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.17.25 + '@types/node': 20.17.45 jest-mock: 29.7.0 '@jest/expect-utils@29.7.0': @@ -7401,7 +7264,7 @@ snapshots: dependencies: '@jest/types': 29.6.3 '@sinonjs/fake-timers': 10.3.0 - '@types/node': 20.17.25 + '@types/node': 20.17.45 jest-message-util: 29.7.0 jest-mock: 29.7.0 jest-util: 29.7.0 @@ -7423,7 +7286,7 @@ snapshots: '@jest/transform': 29.7.0 '@jest/types': 29.6.3 '@jridgewell/trace-mapping': 0.3.25 - '@types/node': 20.17.25 + '@types/node': 20.17.45 chalk: 4.1.2 collect-v8-coverage: 1.0.2 exit: 0.1.2 @@ -7493,7 +7356,7 @@ snapshots: '@jest/schemas': 29.6.3 '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 20.17.25 + '@types/node': 20.17.45 '@types/yargs': 17.0.33 chalk: 4.1.2 @@ -7518,15 +7381,31 @@ snapshots: dependencies: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.0 + optional: true '@jsdevtools/ono@7.1.3': {} - '@listr2/prompt-adapter-inquirer@2.0.18(@inquirer/prompts@7.3.2(@types/node@20.17.25))': + '@listr2/prompt-adapter-inquirer@2.0.18(@inquirer/prompts@7.3.2(@types/node@20.17.45))': dependencies: - '@inquirer/prompts': 7.3.2(@types/node@20.17.25) + '@inquirer/prompts': 7.3.2(@types/node@20.17.45) '@inquirer/type': 1.5.5 - '@mdn/browser-compat-data@5.7.5': {} + '@mdn/browser-compat-data@6.0.12': {} + + '@modelcontextprotocol/sdk@1.11.0': + dependencies: + content-type: 1.0.5 + cors: 2.8.5 + cross-spawn: 7.0.6 + eventsource: 3.0.6 + express: 5.1.0 + express-rate-limit: 7.5.0(express@5.1.0) + pkce-challenge: 5.0.0 + raw-body: 3.0.0 + zod: 3.24.4 + zod-to-json-schema: 3.24.5(zod@3.24.4) + transitivePeerDependencies: + - supports-color '@napi-rs/nice-android-arm-eabi@1.0.1': optional: true @@ -7598,14 +7477,14 @@ snapshots: '@napi-rs/wasm-runtime@0.2.4': dependencies: - '@emnapi/core': 1.3.1 - '@emnapi/runtime': 1.3.1 + '@emnapi/core': 1.4.3 + '@emnapi/runtime': 1.4.3 '@tybys/wasm-util': 0.9.0 - '@napi-rs/wasm-runtime@0.2.7': + '@napi-rs/wasm-runtime@0.2.9': dependencies: - '@emnapi/core': 1.3.1 - '@emnapi/runtime': 1.3.1 + '@emnapi/core': 1.4.3 + '@emnapi/runtime': 1.4.3 '@tybys/wasm-util': 0.9.0 optional: true @@ -7700,47 +7579,44 @@ snapshots: - bluebird - supports-color - '@nx/devkit@0.0.0-pr-30418-4f79396(nx@0.0.0-pr-30418-4f79396(@swc-node/register@1.10.10(@swc/core@1.11.11(@swc/helpers@0.5.15))(@swc/types@0.1.19)(typescript@5.7.3))(@swc/core@1.11.11(@swc/helpers@0.5.15)))': + '@nx/devkit@21.0.2(nx@21.0.2(@swc-node/register@1.10.10(@swc/core@1.11.24(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@swc/core@1.11.24(@swc/helpers@0.5.17)))': dependencies: ejs: 3.1.10 enquirer: 2.3.6 ignore: 5.3.2 minimatch: 9.0.3 - nx: 0.0.0-pr-30418-4f79396(@swc-node/register@1.10.10(@swc/core@1.11.11(@swc/helpers@0.5.15))(@swc/types@0.1.19)(typescript@5.7.3))(@swc/core@1.11.11(@swc/helpers@0.5.15)) + nx: 21.0.2(@swc-node/register@1.10.10(@swc/core@1.11.24(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@swc/core@1.11.24(@swc/helpers@0.5.17)) semver: 7.7.1 tmp: 0.2.3 tslib: 2.8.1 yargs-parser: 21.1.1 - '@nx/esbuild@0.0.0-pr-30418-4f79396(@babel/traverse@7.25.9)(@swc-node/register@1.10.10(@swc/core@1.11.11(@swc/helpers@0.5.15))(@swc/types@0.1.19)(typescript@5.7.3))(@swc/core@1.11.11(@swc/helpers@0.5.15))(@types/node@20.17.25)(esbuild@0.25.1)(nx@0.0.0-pr-30418-4f79396(@swc-node/register@1.10.10(@swc/core@1.11.11(@swc/helpers@0.5.15))(@swc/types@0.1.19)(typescript@5.7.3))(@swc/core@1.11.11(@swc/helpers@0.5.15)))(typescript@5.7.3)(verdaccio@6.0.5(encoding@0.1.13)(typanion@3.14.0))': + '@nx/esbuild@21.0.2(@babel/traverse@7.25.9)(@swc-node/register@1.10.10(@swc/core@1.11.24(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@swc/core@1.11.24(@swc/helpers@0.5.17))(esbuild@0.25.4)(nx@21.0.2(@swc-node/register@1.10.10(@swc/core@1.11.24(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@swc/core@1.11.24(@swc/helpers@0.5.17)))(verdaccio@6.1.2(encoding@0.1.13)(typanion@3.14.0))': dependencies: - '@nx/devkit': 0.0.0-pr-30418-4f79396(nx@0.0.0-pr-30418-4f79396(@swc-node/register@1.10.10(@swc/core@1.11.11(@swc/helpers@0.5.15))(@swc/types@0.1.19)(typescript@5.7.3))(@swc/core@1.11.11(@swc/helpers@0.5.15))) - '@nx/js': 0.0.0-pr-30418-4f79396(@babel/traverse@7.25.9)(@swc-node/register@1.10.10(@swc/core@1.11.11(@swc/helpers@0.5.15))(@swc/types@0.1.19)(typescript@5.7.3))(@swc/core@1.11.11(@swc/helpers@0.5.15))(@types/node@20.17.25)(nx@0.0.0-pr-30418-4f79396(@swc-node/register@1.10.10(@swc/core@1.11.11(@swc/helpers@0.5.15))(@swc/types@0.1.19)(typescript@5.7.3))(@swc/core@1.11.11(@swc/helpers@0.5.15)))(typescript@5.7.3)(verdaccio@6.0.5(encoding@0.1.13)(typanion@3.14.0)) + '@nx/devkit': 21.0.2(nx@21.0.2(@swc-node/register@1.10.10(@swc/core@1.11.24(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@swc/core@1.11.24(@swc/helpers@0.5.17))) + '@nx/js': 21.0.2(@babel/traverse@7.25.9)(@swc-node/register@1.10.10(@swc/core@1.11.24(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@swc/core@1.11.24(@swc/helpers@0.5.17))(nx@21.0.2(@swc-node/register@1.10.10(@swc/core@1.11.24(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@swc/core@1.11.24(@swc/helpers@0.5.17)))(verdaccio@6.1.2(encoding@0.1.13)(typanion@3.14.0)) picocolors: 1.1.1 tinyglobby: 0.2.12 tsconfig-paths: 4.2.0 tslib: 2.8.1 optionalDependencies: - esbuild: 0.25.1 + esbuild: 0.25.4 transitivePeerDependencies: - '@babel/traverse' - '@swc-node/register' - '@swc/core' - - '@swc/wasm' - - '@types/node' - debug - nx - supports-color - - typescript - verdaccio - '@nx/eslint-plugin@0.0.0-pr-30418-4f79396(@babel/traverse@7.25.9)(@swc-node/register@1.10.10(@swc/core@1.11.11(@swc/helpers@0.5.15))(@swc/types@0.1.19)(typescript@5.7.3))(@swc/core@1.11.11(@swc/helpers@0.5.15))(@types/node@20.17.25)(@typescript-eslint/parser@8.27.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.7.3))(eslint-config-prettier@10.1.1(eslint@9.23.0(jiti@2.4.2)))(eslint@9.23.0(jiti@2.4.2))(nx@0.0.0-pr-30418-4f79396(@swc-node/register@1.10.10(@swc/core@1.11.11(@swc/helpers@0.5.15))(@swc/types@0.1.19)(typescript@5.7.3))(@swc/core@1.11.11(@swc/helpers@0.5.15)))(typescript@5.7.3)(verdaccio@6.0.5(encoding@0.1.13)(typanion@3.14.0))': + '@nx/eslint-plugin@21.0.2(@babel/traverse@7.25.9)(@swc-node/register@1.10.10(@swc/core@1.11.24(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@swc/core@1.11.24(@swc/helpers@0.5.17))(@typescript-eslint/parser@8.32.0(eslint@9.26.0(jiti@2.4.2))(typescript@5.8.3))(eslint-config-prettier@10.1.3(eslint@9.26.0(jiti@2.4.2)))(eslint@9.26.0(jiti@2.4.2))(nx@21.0.2(@swc-node/register@1.10.10(@swc/core@1.11.24(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@swc/core@1.11.24(@swc/helpers@0.5.17)))(typescript@5.8.3)(verdaccio@6.1.2(encoding@0.1.13)(typanion@3.14.0))': dependencies: - '@nx/devkit': 0.0.0-pr-30418-4f79396(nx@0.0.0-pr-30418-4f79396(@swc-node/register@1.10.10(@swc/core@1.11.11(@swc/helpers@0.5.15))(@swc/types@0.1.19)(typescript@5.7.3))(@swc/core@1.11.11(@swc/helpers@0.5.15))) - '@nx/js': 0.0.0-pr-30418-4f79396(@babel/traverse@7.25.9)(@swc-node/register@1.10.10(@swc/core@1.11.11(@swc/helpers@0.5.15))(@swc/types@0.1.19)(typescript@5.7.3))(@swc/core@1.11.11(@swc/helpers@0.5.15))(@types/node@20.17.25)(nx@0.0.0-pr-30418-4f79396(@swc-node/register@1.10.10(@swc/core@1.11.11(@swc/helpers@0.5.15))(@swc/types@0.1.19)(typescript@5.7.3))(@swc/core@1.11.11(@swc/helpers@0.5.15)))(typescript@5.7.3)(verdaccio@6.0.5(encoding@0.1.13)(typanion@3.14.0)) - '@typescript-eslint/parser': 8.27.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.7.3) - '@typescript-eslint/type-utils': 8.26.1(eslint@9.23.0(jiti@2.4.2))(typescript@5.7.3) - '@typescript-eslint/utils': 8.27.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.7.3) + '@nx/devkit': 21.0.2(nx@21.0.2(@swc-node/register@1.10.10(@swc/core@1.11.24(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@swc/core@1.11.24(@swc/helpers@0.5.17))) + '@nx/js': 21.0.2(@babel/traverse@7.25.9)(@swc-node/register@1.10.10(@swc/core@1.11.24(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@swc/core@1.11.24(@swc/helpers@0.5.17))(nx@21.0.2(@swc-node/register@1.10.10(@swc/core@1.11.24(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@swc/core@1.11.24(@swc/helpers@0.5.17)))(verdaccio@6.1.2(encoding@0.1.13)(typanion@3.14.0)) + '@typescript-eslint/parser': 8.32.0(eslint@9.26.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/type-utils': 8.31.0(eslint@9.26.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/utils': 8.32.0(eslint@9.26.0(jiti@2.4.2))(typescript@5.8.3) chalk: 4.1.2 confusing-browser-globals: 1.0.11 globals: 15.12.0 @@ -7748,13 +7624,11 @@ snapshots: semver: 7.7.1 tslib: 2.8.1 optionalDependencies: - eslint-config-prettier: 10.1.1(eslint@9.23.0(jiti@2.4.2)) + eslint-config-prettier: 10.1.3(eslint@9.26.0(jiti@2.4.2)) transitivePeerDependencies: - '@babel/traverse' - '@swc-node/register' - '@swc/core' - - '@swc/wasm' - - '@types/node' - debug - eslint - nx @@ -7762,11 +7636,11 @@ snapshots: - typescript - verdaccio - '@nx/eslint@0.0.0-pr-30418-4f79396(@babel/traverse@7.25.9)(@swc-node/register@1.10.10(@swc/core@1.11.11(@swc/helpers@0.5.15))(@swc/types@0.1.19)(typescript@5.7.3))(@swc/core@1.11.11(@swc/helpers@0.5.15))(@types/node@20.17.25)(@zkochan/js-yaml@0.0.7)(eslint@9.23.0(jiti@2.4.2))(nx@0.0.0-pr-30418-4f79396(@swc-node/register@1.10.10(@swc/core@1.11.11(@swc/helpers@0.5.15))(@swc/types@0.1.19)(typescript@5.7.3))(@swc/core@1.11.11(@swc/helpers@0.5.15)))(verdaccio@6.0.5(encoding@0.1.13)(typanion@3.14.0))': + '@nx/eslint@21.0.2(@babel/traverse@7.25.9)(@swc-node/register@1.10.10(@swc/core@1.11.24(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@swc/core@1.11.24(@swc/helpers@0.5.17))(@zkochan/js-yaml@0.0.7)(eslint@9.26.0(jiti@2.4.2))(nx@21.0.2(@swc-node/register@1.10.10(@swc/core@1.11.24(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@swc/core@1.11.24(@swc/helpers@0.5.17)))(verdaccio@6.1.2(encoding@0.1.13)(typanion@3.14.0))': dependencies: - '@nx/devkit': 0.0.0-pr-30418-4f79396(nx@0.0.0-pr-30418-4f79396(@swc-node/register@1.10.10(@swc/core@1.11.11(@swc/helpers@0.5.15))(@swc/types@0.1.19)(typescript@5.7.3))(@swc/core@1.11.11(@swc/helpers@0.5.15))) - '@nx/js': 0.0.0-pr-30418-4f79396(@babel/traverse@7.25.9)(@swc-node/register@1.10.10(@swc/core@1.11.11(@swc/helpers@0.5.15))(@swc/types@0.1.19)(typescript@5.7.3))(@swc/core@1.11.11(@swc/helpers@0.5.15))(@types/node@20.17.25)(nx@0.0.0-pr-30418-4f79396(@swc-node/register@1.10.10(@swc/core@1.11.11(@swc/helpers@0.5.15))(@swc/types@0.1.19)(typescript@5.7.3))(@swc/core@1.11.11(@swc/helpers@0.5.15)))(typescript@5.7.3)(verdaccio@6.0.5(encoding@0.1.13)(typanion@3.14.0)) - eslint: 9.23.0(jiti@2.4.2) + '@nx/devkit': 21.0.2(nx@21.0.2(@swc-node/register@1.10.10(@swc/core@1.11.24(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@swc/core@1.11.24(@swc/helpers@0.5.17))) + '@nx/js': 21.0.2(@babel/traverse@7.25.9)(@swc-node/register@1.10.10(@swc/core@1.11.24(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@swc/core@1.11.24(@swc/helpers@0.5.17))(nx@21.0.2(@swc-node/register@1.10.10(@swc/core@1.11.24(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@swc/core@1.11.24(@swc/helpers@0.5.17)))(verdaccio@6.1.2(encoding@0.1.13)(typanion@3.14.0)) + eslint: 9.26.0(jiti@2.4.2) semver: 7.7.1 tslib: 2.8.1 typescript: 5.7.3 @@ -7776,22 +7650,20 @@ snapshots: - '@babel/traverse' - '@swc-node/register' - '@swc/core' - - '@swc/wasm' - - '@types/node' - debug - nx - supports-color - verdaccio - '@nx/jest@0.0.0-pr-30418-4f79396(@babel/traverse@7.25.9)(@swc-node/register@1.10.10(@swc/core@1.11.11(@swc/helpers@0.5.15))(@swc/types@0.1.19)(typescript@5.7.3))(@swc/core@1.11.11(@swc/helpers@0.5.15))(@types/node@20.17.25)(babel-plugin-macros@3.1.0)(nx@0.0.0-pr-30418-4f79396(@swc-node/register@1.10.10(@swc/core@1.11.11(@swc/helpers@0.5.15))(@swc/types@0.1.19)(typescript@5.7.3))(@swc/core@1.11.11(@swc/helpers@0.5.15)))(ts-node@10.9.1(@swc/core@1.11.11(@swc/helpers@0.5.15))(@types/node@20.17.25)(typescript@5.7.3))(typescript@5.7.3)(verdaccio@6.0.5(encoding@0.1.13)(typanion@3.14.0))': + '@nx/jest@21.0.2(@babel/traverse@7.25.9)(@swc-node/register@1.10.10(@swc/core@1.11.24(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@swc/core@1.11.24(@swc/helpers@0.5.17))(@types/node@20.17.45)(babel-plugin-macros@3.1.0)(nx@21.0.2(@swc-node/register@1.10.10(@swc/core@1.11.24(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@swc/core@1.11.24(@swc/helpers@0.5.17)))(ts-node@10.9.1(@swc/core@1.11.24(@swc/helpers@0.5.17))(@types/node@20.17.45)(typescript@5.8.3))(typescript@5.8.3)(verdaccio@6.1.2(encoding@0.1.13)(typanion@3.14.0))': dependencies: '@jest/reporters': 29.7.0 '@jest/test-result': 29.7.0 - '@nx/devkit': 0.0.0-pr-30418-4f79396(nx@0.0.0-pr-30418-4f79396(@swc-node/register@1.10.10(@swc/core@1.11.11(@swc/helpers@0.5.15))(@swc/types@0.1.19)(typescript@5.7.3))(@swc/core@1.11.11(@swc/helpers@0.5.15))) - '@nx/js': 0.0.0-pr-30418-4f79396(@babel/traverse@7.25.9)(@swc-node/register@1.10.10(@swc/core@1.11.11(@swc/helpers@0.5.15))(@swc/types@0.1.19)(typescript@5.7.3))(@swc/core@1.11.11(@swc/helpers@0.5.15))(@types/node@20.17.25)(nx@0.0.0-pr-30418-4f79396(@swc-node/register@1.10.10(@swc/core@1.11.11(@swc/helpers@0.5.15))(@swc/types@0.1.19)(typescript@5.7.3))(@swc/core@1.11.11(@swc/helpers@0.5.15)))(typescript@5.7.3)(verdaccio@6.0.5(encoding@0.1.13)(typanion@3.14.0)) - '@phenomnomnominal/tsquery': 5.0.1(typescript@5.7.3) + '@nx/devkit': 21.0.2(nx@21.0.2(@swc-node/register@1.10.10(@swc/core@1.11.24(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@swc/core@1.11.24(@swc/helpers@0.5.17))) + '@nx/js': 21.0.2(@babel/traverse@7.25.9)(@swc-node/register@1.10.10(@swc/core@1.11.24(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@swc/core@1.11.24(@swc/helpers@0.5.17))(nx@21.0.2(@swc-node/register@1.10.10(@swc/core@1.11.24(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@swc/core@1.11.24(@swc/helpers@0.5.17)))(verdaccio@6.1.2(encoding@0.1.13)(typanion@3.14.0)) + '@phenomnomnominal/tsquery': 5.0.1(typescript@5.8.3) identity-obj-proxy: 3.0.0 - jest-config: 29.7.0(@types/node@20.17.25)(babel-plugin-macros@3.1.0)(ts-node@10.9.1(@swc/core@1.11.11(@swc/helpers@0.5.15))(@types/node@20.17.25)(typescript@5.7.3)) + jest-config: 29.7.0(@types/node@20.17.45)(babel-plugin-macros@3.1.0)(ts-node@10.9.1(@swc/core@1.11.24(@swc/helpers@0.5.17))(@types/node@20.17.45)(typescript@5.8.3)) jest-resolve: 29.7.0 jest-util: 29.7.0 minimatch: 9.0.3 @@ -7804,7 +7676,6 @@ snapshots: - '@babel/traverse' - '@swc-node/register' - '@swc/core' - - '@swc/wasm' - '@types/node' - babel-plugin-macros - debug @@ -7815,7 +7686,7 @@ snapshots: - typescript - verdaccio - '@nx/js@0.0.0-pr-30418-4f79396(@babel/traverse@7.25.9)(@swc-node/register@1.10.10(@swc/core@1.11.11(@swc/helpers@0.5.15))(@swc/types@0.1.19)(typescript@5.7.3))(@swc/core@1.11.11(@swc/helpers@0.5.15))(@types/node@20.17.25)(nx@0.0.0-pr-30418-4f79396(@swc-node/register@1.10.10(@swc/core@1.11.11(@swc/helpers@0.5.15))(@swc/types@0.1.19)(typescript@5.7.3))(@swc/core@1.11.11(@swc/helpers@0.5.15)))(typescript@5.7.3)(verdaccio@6.0.5(encoding@0.1.13)(typanion@3.14.0))': + '@nx/js@21.0.2(@babel/traverse@7.25.9)(@swc-node/register@1.10.10(@swc/core@1.11.24(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@swc/core@1.11.24(@swc/helpers@0.5.17))(nx@21.0.2(@swc-node/register@1.10.10(@swc/core@1.11.24(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@swc/core@1.11.24(@swc/helpers@0.5.17)))(verdaccio@6.1.2(encoding@0.1.13)(typanion@3.14.0))': dependencies: '@babel/core': 7.26.0 '@babel/plugin-proposal-decorators': 7.25.9(@babel/core@7.26.0) @@ -7824,8 +7695,8 @@ snapshots: '@babel/preset-env': 7.26.0(@babel/core@7.26.0) '@babel/preset-typescript': 7.26.0(@babel/core@7.26.0) '@babel/runtime': 7.26.0 - '@nx/devkit': 0.0.0-pr-30418-4f79396(nx@0.0.0-pr-30418-4f79396(@swc-node/register@1.10.10(@swc/core@1.11.11(@swc/helpers@0.5.15))(@swc/types@0.1.19)(typescript@5.7.3))(@swc/core@1.11.11(@swc/helpers@0.5.15))) - '@nx/workspace': 0.0.0-pr-30418-4f79396(@swc-node/register@1.10.10(@swc/core@1.11.11(@swc/helpers@0.5.15))(@swc/types@0.1.19)(typescript@5.7.3))(@swc/core@1.11.11(@swc/helpers@0.5.15)) + '@nx/devkit': 21.0.2(nx@21.0.2(@swc-node/register@1.10.10(@swc/core@1.11.24(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@swc/core@1.11.24(@swc/helpers@0.5.17))) + '@nx/workspace': 21.0.2(@swc-node/register@1.10.10(@swc/core@1.11.24(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@swc/core@1.11.24(@swc/helpers@0.5.17)) '@zkochan/js-yaml': 0.0.7 babel-plugin-const-enum: 1.2.0(@babel/core@7.26.0) babel-plugin-macros: 3.1.0 @@ -7845,64 +7716,58 @@ snapshots: semver: 7.7.1 source-map-support: 0.5.19 tinyglobby: 0.2.12 - ts-node: 10.9.1(@swc/core@1.11.11(@swc/helpers@0.5.15))(@types/node@20.17.25)(typescript@5.7.3) - tsconfig-paths: 4.2.0 tslib: 2.8.1 optionalDependencies: - verdaccio: 6.0.5(encoding@0.1.13)(typanion@3.14.0) + verdaccio: 6.1.2(encoding@0.1.13)(typanion@3.14.0) transitivePeerDependencies: - '@babel/traverse' - '@swc-node/register' - '@swc/core' - - '@swc/wasm' - - '@types/node' - debug - nx - supports-color - - typescript - '@nx/nx-darwin-arm64@0.0.0-pr-30418-4f79396': + '@nx/nx-darwin-arm64@21.0.2': optional: true - '@nx/nx-darwin-x64@0.0.0-pr-30418-4f79396': + '@nx/nx-darwin-x64@21.0.2': optional: true - '@nx/nx-freebsd-x64@0.0.0-pr-30418-4f79396': + '@nx/nx-freebsd-x64@21.0.2': optional: true - '@nx/nx-linux-arm-gnueabihf@0.0.0-pr-30418-4f79396': + '@nx/nx-linux-arm-gnueabihf@21.0.2': optional: true - '@nx/nx-linux-arm64-gnu@0.0.0-pr-30418-4f79396': + '@nx/nx-linux-arm64-gnu@21.0.2': optional: true - '@nx/nx-linux-arm64-musl@0.0.0-pr-30418-4f79396': + '@nx/nx-linux-arm64-musl@21.0.2': optional: true - '@nx/nx-linux-x64-gnu@0.0.0-pr-30418-4f79396': + '@nx/nx-linux-x64-gnu@21.0.2': optional: true - '@nx/nx-linux-x64-musl@0.0.0-pr-30418-4f79396': + '@nx/nx-linux-x64-musl@21.0.2': optional: true - '@nx/nx-win32-arm64-msvc@0.0.0-pr-30418-4f79396': + '@nx/nx-win32-arm64-msvc@21.0.2': optional: true - '@nx/nx-win32-x64-msvc@0.0.0-pr-30418-4f79396': + '@nx/nx-win32-x64-msvc@21.0.2': optional: true - '@nx/plugin@0.0.0-pr-30418-4f79396(@babel/traverse@7.25.9)(@swc-node/register@1.10.10(@swc/core@1.11.11(@swc/helpers@0.5.15))(@swc/types@0.1.19)(typescript@5.7.3))(@swc/core@1.11.11(@swc/helpers@0.5.15))(@types/node@20.17.25)(@zkochan/js-yaml@0.0.7)(babel-plugin-macros@3.1.0)(eslint@9.23.0(jiti@2.4.2))(nx@0.0.0-pr-30418-4f79396(@swc-node/register@1.10.10(@swc/core@1.11.11(@swc/helpers@0.5.15))(@swc/types@0.1.19)(typescript@5.7.3))(@swc/core@1.11.11(@swc/helpers@0.5.15)))(ts-node@10.9.1(@swc/core@1.11.11(@swc/helpers@0.5.15))(@types/node@20.17.25)(typescript@5.7.3))(typescript@5.7.3)(verdaccio@6.0.5(encoding@0.1.13)(typanion@3.14.0))': + '@nx/plugin@21.0.2(@babel/traverse@7.25.9)(@swc-node/register@1.10.10(@swc/core@1.11.24(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@swc/core@1.11.24(@swc/helpers@0.5.17))(@types/node@20.17.45)(@zkochan/js-yaml@0.0.7)(babel-plugin-macros@3.1.0)(eslint@9.26.0(jiti@2.4.2))(nx@21.0.2(@swc-node/register@1.10.10(@swc/core@1.11.24(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@swc/core@1.11.24(@swc/helpers@0.5.17)))(ts-node@10.9.1(@swc/core@1.11.24(@swc/helpers@0.5.17))(@types/node@20.17.45)(typescript@5.8.3))(typescript@5.8.3)(verdaccio@6.1.2(encoding@0.1.13)(typanion@3.14.0))': dependencies: - '@nx/devkit': 0.0.0-pr-30418-4f79396(nx@0.0.0-pr-30418-4f79396(@swc-node/register@1.10.10(@swc/core@1.11.11(@swc/helpers@0.5.15))(@swc/types@0.1.19)(typescript@5.7.3))(@swc/core@1.11.11(@swc/helpers@0.5.15))) - '@nx/eslint': 0.0.0-pr-30418-4f79396(@babel/traverse@7.25.9)(@swc-node/register@1.10.10(@swc/core@1.11.11(@swc/helpers@0.5.15))(@swc/types@0.1.19)(typescript@5.7.3))(@swc/core@1.11.11(@swc/helpers@0.5.15))(@types/node@20.17.25)(@zkochan/js-yaml@0.0.7)(eslint@9.23.0(jiti@2.4.2))(nx@0.0.0-pr-30418-4f79396(@swc-node/register@1.10.10(@swc/core@1.11.11(@swc/helpers@0.5.15))(@swc/types@0.1.19)(typescript@5.7.3))(@swc/core@1.11.11(@swc/helpers@0.5.15)))(verdaccio@6.0.5(encoding@0.1.13)(typanion@3.14.0)) - '@nx/jest': 0.0.0-pr-30418-4f79396(@babel/traverse@7.25.9)(@swc-node/register@1.10.10(@swc/core@1.11.11(@swc/helpers@0.5.15))(@swc/types@0.1.19)(typescript@5.7.3))(@swc/core@1.11.11(@swc/helpers@0.5.15))(@types/node@20.17.25)(babel-plugin-macros@3.1.0)(nx@0.0.0-pr-30418-4f79396(@swc-node/register@1.10.10(@swc/core@1.11.11(@swc/helpers@0.5.15))(@swc/types@0.1.19)(typescript@5.7.3))(@swc/core@1.11.11(@swc/helpers@0.5.15)))(ts-node@10.9.1(@swc/core@1.11.11(@swc/helpers@0.5.15))(@types/node@20.17.25)(typescript@5.7.3))(typescript@5.7.3)(verdaccio@6.0.5(encoding@0.1.13)(typanion@3.14.0)) - '@nx/js': 0.0.0-pr-30418-4f79396(@babel/traverse@7.25.9)(@swc-node/register@1.10.10(@swc/core@1.11.11(@swc/helpers@0.5.15))(@swc/types@0.1.19)(typescript@5.7.3))(@swc/core@1.11.11(@swc/helpers@0.5.15))(@types/node@20.17.25)(nx@0.0.0-pr-30418-4f79396(@swc-node/register@1.10.10(@swc/core@1.11.11(@swc/helpers@0.5.15))(@swc/types@0.1.19)(typescript@5.7.3))(@swc/core@1.11.11(@swc/helpers@0.5.15)))(typescript@5.7.3)(verdaccio@6.0.5(encoding@0.1.13)(typanion@3.14.0)) + '@nx/devkit': 21.0.2(nx@21.0.2(@swc-node/register@1.10.10(@swc/core@1.11.24(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@swc/core@1.11.24(@swc/helpers@0.5.17))) + '@nx/eslint': 21.0.2(@babel/traverse@7.25.9)(@swc-node/register@1.10.10(@swc/core@1.11.24(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@swc/core@1.11.24(@swc/helpers@0.5.17))(@zkochan/js-yaml@0.0.7)(eslint@9.26.0(jiti@2.4.2))(nx@21.0.2(@swc-node/register@1.10.10(@swc/core@1.11.24(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@swc/core@1.11.24(@swc/helpers@0.5.17)))(verdaccio@6.1.2(encoding@0.1.13)(typanion@3.14.0)) + '@nx/jest': 21.0.2(@babel/traverse@7.25.9)(@swc-node/register@1.10.10(@swc/core@1.11.24(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@swc/core@1.11.24(@swc/helpers@0.5.17))(@types/node@20.17.45)(babel-plugin-macros@3.1.0)(nx@21.0.2(@swc-node/register@1.10.10(@swc/core@1.11.24(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@swc/core@1.11.24(@swc/helpers@0.5.17)))(ts-node@10.9.1(@swc/core@1.11.24(@swc/helpers@0.5.17))(@types/node@20.17.45)(typescript@5.8.3))(typescript@5.8.3)(verdaccio@6.1.2(encoding@0.1.13)(typanion@3.14.0)) + '@nx/js': 21.0.2(@babel/traverse@7.25.9)(@swc-node/register@1.10.10(@swc/core@1.11.24(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@swc/core@1.11.24(@swc/helpers@0.5.17))(nx@21.0.2(@swc-node/register@1.10.10(@swc/core@1.11.24(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@swc/core@1.11.24(@swc/helpers@0.5.17)))(verdaccio@6.1.2(encoding@0.1.13)(typanion@3.14.0)) tslib: 2.8.1 transitivePeerDependencies: - '@babel/traverse' - '@swc-node/register' - '@swc/core' - - '@swc/wasm' - '@types/node' - '@zkochan/js-yaml' - babel-plugin-macros @@ -7915,13 +7780,13 @@ snapshots: - typescript - verdaccio - '@nx/workspace@0.0.0-pr-30418-4f79396(@swc-node/register@1.10.10(@swc/core@1.11.11(@swc/helpers@0.5.15))(@swc/types@0.1.19)(typescript@5.7.3))(@swc/core@1.11.11(@swc/helpers@0.5.15))': + '@nx/workspace@21.0.2(@swc-node/register@1.10.10(@swc/core@1.11.24(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@swc/core@1.11.24(@swc/helpers@0.5.17))': dependencies: - '@nx/devkit': 0.0.0-pr-30418-4f79396(nx@0.0.0-pr-30418-4f79396(@swc-node/register@1.10.10(@swc/core@1.11.11(@swc/helpers@0.5.15))(@swc/types@0.1.19)(typescript@5.7.3))(@swc/core@1.11.11(@swc/helpers@0.5.15))) + '@nx/devkit': 21.0.2(nx@21.0.2(@swc-node/register@1.10.10(@swc/core@1.11.24(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@swc/core@1.11.24(@swc/helpers@0.5.17))) '@zkochan/js-yaml': 0.0.7 chalk: 4.1.2 enquirer: 2.3.6 - nx: 0.0.0-pr-30418-4f79396(@swc-node/register@1.10.10(@swc/core@1.11.11(@swc/helpers@0.5.15))(@swc/types@0.1.19)(typescript@5.7.3))(@swc/core@1.11.11(@swc/helpers@0.5.15)) + nx: 21.0.2(@swc-node/register@1.10.10(@swc/core@1.11.24(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@swc/core@1.11.24(@swc/helpers@0.5.17)) picomatch: 4.0.2 tslib: 2.8.1 yargs-parser: 21.1.1 @@ -7930,53 +7795,59 @@ snapshots: - '@swc/core' - debug - '@oxc-resolver/binding-darwin-arm64@5.0.1': + '@oxc-resolver/binding-darwin-arm64@5.2.0': optional: true - '@oxc-resolver/binding-darwin-x64@5.0.1': + '@oxc-resolver/binding-darwin-x64@5.2.0': optional: true - '@oxc-resolver/binding-freebsd-x64@5.0.1': + '@oxc-resolver/binding-freebsd-x64@5.2.0': optional: true - '@oxc-resolver/binding-linux-arm-gnueabihf@5.0.1': + '@oxc-resolver/binding-linux-arm-gnueabihf@5.2.0': optional: true - '@oxc-resolver/binding-linux-arm64-gnu@5.0.1': + '@oxc-resolver/binding-linux-arm64-gnu@5.2.0': optional: true - '@oxc-resolver/binding-linux-arm64-musl@5.0.1': + '@oxc-resolver/binding-linux-arm64-musl@5.2.0': optional: true - '@oxc-resolver/binding-linux-x64-gnu@5.0.1': + '@oxc-resolver/binding-linux-riscv64-gnu@5.2.0': optional: true - '@oxc-resolver/binding-linux-x64-musl@5.0.1': + '@oxc-resolver/binding-linux-s390x-gnu@5.2.0': optional: true - '@oxc-resolver/binding-wasm32-wasi@5.0.1': + '@oxc-resolver/binding-linux-x64-gnu@5.2.0': + optional: true + + '@oxc-resolver/binding-linux-x64-musl@5.2.0': + optional: true + + '@oxc-resolver/binding-wasm32-wasi@5.2.0': dependencies: - '@napi-rs/wasm-runtime': 0.2.7 + '@napi-rs/wasm-runtime': 0.2.9 optional: true - '@oxc-resolver/binding-win32-arm64-msvc@5.0.1': + '@oxc-resolver/binding-win32-arm64-msvc@5.2.0': optional: true - '@oxc-resolver/binding-win32-x64-msvc@5.0.1': + '@oxc-resolver/binding-win32-x64-msvc@5.2.0': optional: true - '@phenomnomnominal/tsquery@5.0.1(typescript@5.7.3)': + '@phenomnomnominal/tsquery@5.0.1(typescript@5.8.3)': dependencies: esquery: 1.6.0 - typescript: 5.7.3 + typescript: 5.8.3 '@pkgjs/parseargs@0.11.0': optional: true - '@schematics/angular@19.2.4': + '@schematics/angular@19.2.11': dependencies: - '@angular-devkit/core': 19.2.4 - '@angular-devkit/schematics': 19.2.4 + '@angular-devkit/core': 19.2.11 + '@angular-devkit/schematics': 19.2.11 jsonc-parser: 3.3.1 transitivePeerDependencies: - chokidar @@ -8027,22 +7898,22 @@ snapshots: dependencies: '@sinonjs/commons': 3.0.1 - '@swc-node/core@1.13.3(@swc/core@1.11.11(@swc/helpers@0.5.15))(@swc/types@0.1.19)': + '@swc-node/core@1.13.3(@swc/core@1.11.24(@swc/helpers@0.5.17))(@swc/types@0.1.21)': dependencies: - '@swc/core': 1.11.11(@swc/helpers@0.5.15) - '@swc/types': 0.1.19 + '@swc/core': 1.11.24(@swc/helpers@0.5.17) + '@swc/types': 0.1.21 - '@swc-node/register@1.10.10(@swc/core@1.11.11(@swc/helpers@0.5.15))(@swc/types@0.1.19)(typescript@5.7.3)': + '@swc-node/register@1.10.10(@swc/core@1.11.24(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3)': dependencies: - '@swc-node/core': 1.13.3(@swc/core@1.11.11(@swc/helpers@0.5.15))(@swc/types@0.1.19) + '@swc-node/core': 1.13.3(@swc/core@1.11.24(@swc/helpers@0.5.17))(@swc/types@0.1.21) '@swc-node/sourcemap-support': 0.5.1 - '@swc/core': 1.11.11(@swc/helpers@0.5.15) + '@swc/core': 1.11.24(@swc/helpers@0.5.17) colorette: 2.0.20 debug: 4.4.0 - oxc-resolver: 5.0.1 + oxc-resolver: 5.2.0 pirates: 4.0.6 tslib: 2.8.1 - typescript: 5.7.3 + typescript: 5.8.3 transitivePeerDependencies: - '@swc/types' - supports-color @@ -8052,73 +7923,73 @@ snapshots: source-map-support: 0.5.21 tslib: 2.8.1 - '@swc/cli@0.6.0(@swc/core@1.11.11(@swc/helpers@0.5.15))': + '@swc/cli@0.7.5(@swc/core@1.11.24(@swc/helpers@0.5.17))': dependencies: - '@swc/core': 1.11.11(@swc/helpers@0.5.15) + '@swc/core': 1.11.24(@swc/helpers@0.5.17) '@swc/counter': 0.1.3 '@xhmikosr/bin-wrapper': 13.0.5 commander: 8.3.0 - fast-glob: 3.3.2 + fast-glob: 3.3.3 minimatch: 9.0.5 piscina: 4.7.0 semver: 7.7.1 slash: 3.0.0 source-map: 0.7.4 - '@swc/core-darwin-arm64@1.11.11': + '@swc/core-darwin-arm64@1.11.24': optional: true - '@swc/core-darwin-x64@1.11.11': + '@swc/core-darwin-x64@1.11.24': optional: true - '@swc/core-linux-arm-gnueabihf@1.11.11': + '@swc/core-linux-arm-gnueabihf@1.11.24': optional: true - '@swc/core-linux-arm64-gnu@1.11.11': + '@swc/core-linux-arm64-gnu@1.11.24': optional: true - '@swc/core-linux-arm64-musl@1.11.11': + '@swc/core-linux-arm64-musl@1.11.24': optional: true - '@swc/core-linux-x64-gnu@1.11.11': + '@swc/core-linux-x64-gnu@1.11.24': optional: true - '@swc/core-linux-x64-musl@1.11.11': + '@swc/core-linux-x64-musl@1.11.24': optional: true - '@swc/core-win32-arm64-msvc@1.11.11': + '@swc/core-win32-arm64-msvc@1.11.24': optional: true - '@swc/core-win32-ia32-msvc@1.11.11': + '@swc/core-win32-ia32-msvc@1.11.24': optional: true - '@swc/core-win32-x64-msvc@1.11.11': + '@swc/core-win32-x64-msvc@1.11.24': optional: true - '@swc/core@1.11.11(@swc/helpers@0.5.15)': + '@swc/core@1.11.24(@swc/helpers@0.5.17)': dependencies: '@swc/counter': 0.1.3 - '@swc/types': 0.1.19 + '@swc/types': 0.1.21 optionalDependencies: - '@swc/core-darwin-arm64': 1.11.11 - '@swc/core-darwin-x64': 1.11.11 - '@swc/core-linux-arm-gnueabihf': 1.11.11 - '@swc/core-linux-arm64-gnu': 1.11.11 - '@swc/core-linux-arm64-musl': 1.11.11 - '@swc/core-linux-x64-gnu': 1.11.11 - '@swc/core-linux-x64-musl': 1.11.11 - '@swc/core-win32-arm64-msvc': 1.11.11 - '@swc/core-win32-ia32-msvc': 1.11.11 - '@swc/core-win32-x64-msvc': 1.11.11 - '@swc/helpers': 0.5.15 + '@swc/core-darwin-arm64': 1.11.24 + '@swc/core-darwin-x64': 1.11.24 + '@swc/core-linux-arm-gnueabihf': 1.11.24 + '@swc/core-linux-arm64-gnu': 1.11.24 + '@swc/core-linux-arm64-musl': 1.11.24 + '@swc/core-linux-x64-gnu': 1.11.24 + '@swc/core-linux-x64-musl': 1.11.24 + '@swc/core-win32-arm64-msvc': 1.11.24 + '@swc/core-win32-ia32-msvc': 1.11.24 + '@swc/core-win32-x64-msvc': 1.11.24 + '@swc/helpers': 0.5.17 '@swc/counter@0.1.3': {} - '@swc/helpers@0.5.15': + '@swc/helpers@0.5.17': dependencies: tslib: 2.8.1 - '@swc/types@0.1.19': + '@swc/types@0.1.21': dependencies: '@swc/counter': 0.1.3 @@ -8128,13 +7999,17 @@ snapshots: '@tokenizer/token@0.3.0': {} - '@tsconfig/node10@1.0.11': {} + '@tsconfig/node10@1.0.11': + optional: true - '@tsconfig/node12@1.0.11': {} + '@tsconfig/node12@1.0.11': + optional: true - '@tsconfig/node14@1.0.3': {} + '@tsconfig/node14@1.0.3': + optional: true - '@tsconfig/node16@1.0.4': {} + '@tsconfig/node16@1.0.4': + optional: true '@tufjs/canonical-json@2.0.0': {} @@ -8172,7 +8047,7 @@ snapshots: '@types/conventional-commits-parser@5.0.1': dependencies: - '@types/node': 20.17.25 + '@types/node': 20.17.45 '@types/eslint-scope@3.7.7': dependencies: @@ -8188,7 +8063,7 @@ snapshots: '@types/graceful-fs@4.1.9': dependencies: - '@types/node': 20.17.25 + '@types/node': 20.17.45 '@types/http-cache-semantics@4.0.4': {} @@ -8202,7 +8077,7 @@ snapshots: dependencies: '@types/istanbul-lib-report': 3.0.3 - '@types/jest@29.5.12': + '@types/jest@29.5.14': dependencies: expect: 29.7.0 pretty-format: 29.7.0 @@ -8211,13 +8086,13 @@ snapshots: '@types/lodash@4.17.13': {} - '@types/node@20.17.25': + '@types/node@20.17.45': dependencies: undici-types: 6.19.8 '@types/parse-json@4.0.2': {} - '@types/semver@7.5.8': {} + '@types/semver@7.7.0': {} '@types/stack-utils@2.0.3': {} @@ -8227,84 +8102,42 @@ snapshots: dependencies: '@types/yargs-parser': 21.0.3 - '@typescript-eslint/eslint-plugin@8.16.0(@typescript-eslint/parser@8.27.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.22.0(jiti@2.4.2))(typescript@5.7.3)': - dependencies: - '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.27.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.7.3) - '@typescript-eslint/scope-manager': 8.16.0 - '@typescript-eslint/type-utils': 8.16.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.7.3) - '@typescript-eslint/utils': 8.27.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.7.3) - '@typescript-eslint/visitor-keys': 8.16.0 - eslint: 9.22.0(jiti@2.4.2) - graphemer: 1.4.0 - ignore: 5.3.2 - natural-compare: 1.4.0 - ts-api-utils: 1.4.3(typescript@5.7.3) - optionalDependencies: - typescript: 5.7.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/eslint-plugin@8.27.0(@typescript-eslint/parser@8.27.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.23.0(jiti@2.4.2))(typescript@5.7.3)': + '@typescript-eslint/eslint-plugin@8.32.0(@typescript-eslint/parser@8.32.0(eslint@9.26.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.26.0(jiti@2.4.2))(typescript@5.8.3)': dependencies: '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.27.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.7.3) - '@typescript-eslint/scope-manager': 8.27.0 - '@typescript-eslint/type-utils': 8.27.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.7.3) - '@typescript-eslint/utils': 8.27.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.7.3) - '@typescript-eslint/visitor-keys': 8.27.0 - eslint: 9.23.0(jiti@2.4.2) + '@typescript-eslint/parser': 8.32.0(eslint@9.26.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/scope-manager': 8.32.0 + '@typescript-eslint/type-utils': 8.32.0(eslint@9.26.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/utils': 8.32.0(eslint@9.26.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/visitor-keys': 8.32.0 + eslint: 9.26.0(jiti@2.4.2) graphemer: 1.4.0 ignore: 5.3.2 natural-compare: 1.4.0 - ts-api-utils: 2.0.1(typescript@5.7.3) - typescript: 5.7.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/parser@8.27.0(eslint@9.15.0(jiti@2.4.2))(typescript@5.5.4)': - dependencies: - '@typescript-eslint/scope-manager': 8.27.0 - '@typescript-eslint/types': 8.27.0 - '@typescript-eslint/typescript-estree': 8.27.0(typescript@5.5.4) - '@typescript-eslint/visitor-keys': 8.27.0 - debug: 4.4.0 - eslint: 9.15.0(jiti@2.4.2) - typescript: 5.5.4 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/parser@8.27.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.7.3)': - dependencies: - '@typescript-eslint/scope-manager': 8.27.0 - '@typescript-eslint/types': 8.27.0 - '@typescript-eslint/typescript-estree': 8.27.0(typescript@5.7.3) - '@typescript-eslint/visitor-keys': 8.27.0 - debug: 4.4.0 - eslint: 9.22.0(jiti@2.4.2) - typescript: 5.7.3 + ts-api-utils: 2.1.0(typescript@5.8.3) + typescript: 5.8.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.27.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.7.3)': + '@typescript-eslint/parser@8.32.0(eslint@9.26.0(jiti@2.4.2))(typescript@5.8.3)': dependencies: - '@typescript-eslint/scope-manager': 8.27.0 - '@typescript-eslint/types': 8.27.0 - '@typescript-eslint/typescript-estree': 8.27.0(typescript@5.7.3) - '@typescript-eslint/visitor-keys': 8.27.0 + '@typescript-eslint/scope-manager': 8.32.0 + '@typescript-eslint/types': 8.32.0 + '@typescript-eslint/typescript-estree': 8.32.0(typescript@5.8.3) + '@typescript-eslint/visitor-keys': 8.32.0 debug: 4.4.0 - eslint: 9.23.0(jiti@2.4.2) - typescript: 5.7.3 + eslint: 9.26.0(jiti@2.4.2) + typescript: 5.8.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/rule-tester@8.27.0(patch_hash=0395d56159bca55b94596b2ce1a79005dd964f4b648c29e0c04c6dfcb85e13cf)(eslint@9.15.0(jiti@2.4.2))(typescript@5.5.4)': + '@typescript-eslint/rule-tester@8.32.0(patch_hash=0395d56159bca55b94596b2ce1a79005dd964f4b648c29e0c04c6dfcb85e13cf)(eslint@9.26.0(jiti@2.4.2))(typescript@5.8.3)': dependencies: - '@typescript-eslint/parser': 8.27.0(eslint@9.15.0(jiti@2.4.2))(typescript@5.5.4) - '@typescript-eslint/typescript-estree': 8.27.0(typescript@5.5.4) - '@typescript-eslint/utils': 8.27.0(eslint@9.15.0(jiti@2.4.2))(typescript@5.5.4) + '@typescript-eslint/parser': 8.32.0(eslint@9.26.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/typescript-estree': 8.32.0(typescript@5.8.3) + '@typescript-eslint/utils': 8.32.0(eslint@9.26.0(jiti@2.4.2))(typescript@5.8.3) ajv: 6.12.6 - eslint: 9.15.0(jiti@2.4.2) + eslint: 9.26.0(jiti@2.4.2) json-stable-stringify-without-jsonify: 1.0.1 lodash.merge: 4.6.2 semver: 7.7.1 @@ -8312,185 +8145,96 @@ snapshots: - supports-color - typescript - '@typescript-eslint/rule-tester@8.27.0(patch_hash=0395d56159bca55b94596b2ce1a79005dd964f4b648c29e0c04c6dfcb85e13cf)(eslint@9.23.0(jiti@2.4.2))(typescript@5.7.3)': + '@typescript-eslint/scope-manager@8.32.0': dependencies: - '@typescript-eslint/parser': 8.27.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.7.3) - '@typescript-eslint/typescript-estree': 8.27.0(typescript@5.7.3) - '@typescript-eslint/utils': 8.27.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.7.3) - ajv: 6.12.6 - eslint: 9.23.0(jiti@2.4.2) - json-stable-stringify-without-jsonify: 1.0.1 - lodash.merge: 4.6.2 - semver: 7.7.1 - transitivePeerDependencies: - - supports-color - - typescript - - '@typescript-eslint/scope-manager@8.16.0': - dependencies: - '@typescript-eslint/types': 8.16.0 - '@typescript-eslint/visitor-keys': 8.16.0 + '@typescript-eslint/types': 8.32.0 + '@typescript-eslint/visitor-keys': 8.32.0 - '@typescript-eslint/scope-manager@8.27.0': + '@typescript-eslint/type-utils@8.31.0(eslint@9.26.0(jiti@2.4.2))(typescript@5.8.3)': dependencies: - '@typescript-eslint/types': 8.27.0 - '@typescript-eslint/visitor-keys': 8.27.0 - - '@typescript-eslint/type-utils@8.16.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.7.3)': - dependencies: - '@typescript-eslint/typescript-estree': 8.16.0(typescript@5.7.3) - '@typescript-eslint/utils': 8.27.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.7.3) + '@typescript-eslint/typescript-estree': 8.31.0(typescript@5.8.3) + '@typescript-eslint/utils': 8.32.0(eslint@9.26.0(jiti@2.4.2))(typescript@5.8.3) debug: 4.4.0 - eslint: 9.22.0(jiti@2.4.2) - ts-api-utils: 1.4.3(typescript@5.7.3) - optionalDependencies: - typescript: 5.7.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/type-utils@8.26.1(eslint@9.23.0(jiti@2.4.2))(typescript@5.7.3)': - dependencies: - '@typescript-eslint/typescript-estree': 8.26.1(typescript@5.7.3) - '@typescript-eslint/utils': 8.27.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.7.3) - debug: 4.4.0 - eslint: 9.23.0(jiti@2.4.2) - ts-api-utils: 2.0.1(typescript@5.7.3) - typescript: 5.7.3 + eslint: 9.26.0(jiti@2.4.2) + ts-api-utils: 2.1.0(typescript@5.8.3) + typescript: 5.8.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/type-utils@8.27.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.7.3)': + '@typescript-eslint/type-utils@8.32.0(eslint@9.26.0(jiti@2.4.2))(typescript@5.8.3)': dependencies: - '@typescript-eslint/typescript-estree': 8.27.0(typescript@5.7.3) - '@typescript-eslint/utils': 8.27.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.7.3) + '@typescript-eslint/typescript-estree': 8.32.0(typescript@5.8.3) + '@typescript-eslint/utils': 8.32.0(eslint@9.26.0(jiti@2.4.2))(typescript@5.8.3) debug: 4.4.0 - eslint: 9.23.0(jiti@2.4.2) - ts-api-utils: 2.0.1(typescript@5.7.3) - typescript: 5.7.3 + eslint: 9.26.0(jiti@2.4.2) + ts-api-utils: 2.1.0(typescript@5.8.3) + typescript: 5.8.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/types@8.16.0': {} - - '@typescript-eslint/types@8.26.1': {} + '@typescript-eslint/types@8.31.0': {} - '@typescript-eslint/types@8.27.0': {} + '@typescript-eslint/types@8.32.0': {} - '@typescript-eslint/typescript-estree@8.16.0(typescript@5.7.3)': + '@typescript-eslint/typescript-estree@8.31.0(typescript@5.8.3)': dependencies: - '@typescript-eslint/types': 8.16.0 - '@typescript-eslint/visitor-keys': 8.16.0 + '@typescript-eslint/types': 8.31.0 + '@typescript-eslint/visitor-keys': 8.31.0 debug: 4.4.0 fast-glob: 3.3.3 is-glob: 4.0.3 minimatch: 9.0.5 semver: 7.7.1 - ts-api-utils: 1.4.3(typescript@5.7.3) - optionalDependencies: - typescript: 5.7.3 + ts-api-utils: 2.1.0(typescript@5.8.3) + typescript: 5.8.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/typescript-estree@8.26.1(typescript@5.7.3)': + '@typescript-eslint/typescript-estree@8.32.0(typescript@5.8.3)': dependencies: - '@typescript-eslint/types': 8.26.1 - '@typescript-eslint/visitor-keys': 8.26.1 + '@typescript-eslint/types': 8.32.0 + '@typescript-eslint/visitor-keys': 8.32.0 debug: 4.4.0 fast-glob: 3.3.3 is-glob: 4.0.3 minimatch: 9.0.5 semver: 7.7.1 - ts-api-utils: 2.0.1(typescript@5.7.3) - typescript: 5.7.3 + ts-api-utils: 2.1.0(typescript@5.8.3) + typescript: 5.8.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/typescript-estree@8.27.0(typescript@5.5.4)': + '@typescript-eslint/utils@8.32.0(eslint@9.26.0(jiti@2.4.2))(typescript@5.8.3)': dependencies: - '@typescript-eslint/types': 8.27.0 - '@typescript-eslint/visitor-keys': 8.27.0 - debug: 4.4.0 - fast-glob: 3.3.3 - is-glob: 4.0.3 - minimatch: 9.0.5 - semver: 7.7.1 - ts-api-utils: 2.1.0(typescript@5.5.4) - typescript: 5.5.4 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/typescript-estree@8.27.0(typescript@5.7.3)': - dependencies: - '@typescript-eslint/types': 8.27.0 - '@typescript-eslint/visitor-keys': 8.27.0 - debug: 4.4.0 - fast-glob: 3.3.3 - is-glob: 4.0.3 - minimatch: 9.0.5 - semver: 7.7.1 - ts-api-utils: 2.1.0(typescript@5.7.3) - typescript: 5.7.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/utils@8.27.0(eslint@9.15.0(jiti@2.4.2))(typescript@5.5.4)': - dependencies: - '@eslint-community/eslint-utils': 4.5.1(eslint@9.15.0(jiti@2.4.2)) - '@typescript-eslint/scope-manager': 8.27.0 - '@typescript-eslint/types': 8.27.0 - '@typescript-eslint/typescript-estree': 8.27.0(typescript@5.5.4) - eslint: 9.15.0(jiti@2.4.2) - typescript: 5.5.4 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/utils@8.27.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.7.3)': - dependencies: - '@eslint-community/eslint-utils': 4.5.1(eslint@9.22.0(jiti@2.4.2)) - '@typescript-eslint/scope-manager': 8.27.0 - '@typescript-eslint/types': 8.27.0 - '@typescript-eslint/typescript-estree': 8.27.0(typescript@5.7.3) - eslint: 9.22.0(jiti@2.4.2) - typescript: 5.7.3 + '@eslint-community/eslint-utils': 4.7.0(eslint@9.26.0(jiti@2.4.2)) + '@typescript-eslint/scope-manager': 8.32.0 + '@typescript-eslint/types': 8.32.0 + '@typescript-eslint/typescript-estree': 8.32.0(typescript@5.8.3) + eslint: 9.26.0(jiti@2.4.2) + typescript: 5.8.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.27.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.7.3)': + '@typescript-eslint/visitor-keys@8.31.0': dependencies: - '@eslint-community/eslint-utils': 4.5.1(eslint@9.23.0(jiti@2.4.2)) - '@typescript-eslint/scope-manager': 8.27.0 - '@typescript-eslint/types': 8.27.0 - '@typescript-eslint/typescript-estree': 8.27.0(typescript@5.7.3) - eslint: 9.23.0(jiti@2.4.2) - typescript: 5.7.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/visitor-keys@8.16.0': - dependencies: - '@typescript-eslint/types': 8.16.0 + '@typescript-eslint/types': 8.31.0 eslint-visitor-keys: 4.2.0 - '@typescript-eslint/visitor-keys@8.26.1': + '@typescript-eslint/visitor-keys@8.32.0': dependencies: - '@typescript-eslint/types': 8.26.1 + '@typescript-eslint/types': 8.32.0 eslint-visitor-keys: 4.2.0 - '@typescript-eslint/visitor-keys@8.27.0': + '@verdaccio/auth@8.0.0-next-8.15': dependencies: - '@typescript-eslint/types': 8.27.0 - eslint-visitor-keys: 4.2.0 - - '@verdaccio/auth@8.0.0-next-8.7': - dependencies: - '@verdaccio/config': 8.0.0-next-8.7 - '@verdaccio/core': 8.0.0-next-8.7 - '@verdaccio/loaders': 8.0.0-next-8.4 - '@verdaccio/signature': 8.0.0-next-8.1 - '@verdaccio/utils': 8.1.0-next-8.7 + '@verdaccio/config': 8.0.0-next-8.15 + '@verdaccio/core': 8.0.0-next-8.15 + '@verdaccio/loaders': 8.0.0-next-8.6 + '@verdaccio/signature': 8.0.0-next-8.7 + '@verdaccio/utils': 8.1.0-next-8.15 debug: 4.4.0 lodash: 4.17.21 - verdaccio-htpasswd: 13.0.0-next-8.7 + verdaccio-htpasswd: 13.0.0-next-8.15 transitivePeerDependencies: - supports-color @@ -8499,10 +8243,10 @@ snapshots: http-errors: 2.0.0 http-status-codes: 2.2.0 - '@verdaccio/config@8.0.0-next-8.7': + '@verdaccio/config@8.0.0-next-8.15': dependencies: - '@verdaccio/core': 8.0.0-next-8.7 - '@verdaccio/utils': 8.1.0-next-8.7 + '@verdaccio/core': 8.0.0-next-8.15 + '@verdaccio/utils': 8.1.0-next-8.15 debug: 4.4.0 js-yaml: 4.1.0 lodash: 4.17.21 @@ -8510,35 +8254,26 @@ snapshots: transitivePeerDependencies: - supports-color - '@verdaccio/core@8.0.0-next-8.1': - dependencies: - ajv: 8.17.1 - core-js: 3.37.1 - http-errors: 2.0.0 - http-status-codes: 2.3.0 - process-warning: 1.0.0 - semver: 7.6.3 - - '@verdaccio/core@8.0.0-next-8.7': + '@verdaccio/core@8.0.0-next-8.15': dependencies: ajv: 8.17.1 - core-js: 3.37.1 + core-js: 3.40.0 http-errors: 2.0.0 http-status-codes: 2.3.0 process-warning: 1.0.0 - semver: 7.6.3 + semver: 7.7.1 '@verdaccio/file-locking@10.3.1': dependencies: lockfile: 1.0.4 - '@verdaccio/file-locking@13.0.0-next-8.2': + '@verdaccio/file-locking@13.0.0-next-8.3': dependencies: lockfile: 1.0.4 - '@verdaccio/loaders@8.0.0-next-8.4': + '@verdaccio/loaders@8.0.0-next-8.6': dependencies: - debug: 4.3.7 + debug: 4.4.0 lodash: 4.17.21 transitivePeerDependencies: - supports-color @@ -8556,16 +8291,16 @@ snapshots: transitivePeerDependencies: - supports-color - '@verdaccio/logger-commons@8.0.0-next-8.7': + '@verdaccio/logger-commons@8.0.0-next-8.15': dependencies: - '@verdaccio/core': 8.0.0-next-8.7 - '@verdaccio/logger-prettify': 8.0.0-next-8.1 + '@verdaccio/core': 8.0.0-next-8.15 + '@verdaccio/logger-prettify': 8.0.0-next-8.2 colorette: 2.0.20 debug: 4.4.0 transitivePeerDependencies: - supports-color - '@verdaccio/logger-prettify@8.0.0-next-8.1': + '@verdaccio/logger-prettify@8.0.0-next-8.2': dependencies: colorette: 2.0.20 dayjs: 1.11.13 @@ -8573,19 +8308,19 @@ snapshots: pino-abstract-transport: 1.2.0 sonic-boom: 3.8.1 - '@verdaccio/logger@8.0.0-next-8.7': + '@verdaccio/logger@8.0.0-next-8.15': dependencies: - '@verdaccio/logger-commons': 8.0.0-next-8.7 - pino: 9.5.0 + '@verdaccio/logger-commons': 8.0.0-next-8.15 + pino: 9.6.0 transitivePeerDependencies: - supports-color - '@verdaccio/middleware@8.0.0-next-8.7': + '@verdaccio/middleware@8.0.0-next-8.15': dependencies: - '@verdaccio/config': 8.0.0-next-8.7 - '@verdaccio/core': 8.0.0-next-8.7 - '@verdaccio/url': 13.0.0-next-8.7 - '@verdaccio/utils': 8.1.0-next-8.7 + '@verdaccio/config': 8.0.0-next-8.15 + '@verdaccio/core': 8.0.0-next-8.15 + '@verdaccio/url': 13.0.0-next-8.15 + '@verdaccio/utils': 8.1.0-next-8.15 debug: 4.4.0 express: 4.21.2 express-rate-limit: 5.5.1 @@ -8595,22 +8330,23 @@ snapshots: transitivePeerDependencies: - supports-color - '@verdaccio/search-indexer@8.0.0-next-8.2': {} + '@verdaccio/search-indexer@8.0.0-next-8.4': {} - '@verdaccio/signature@8.0.0-next-8.1': + '@verdaccio/signature@8.0.0-next-8.7': dependencies: - debug: 4.3.7 + '@verdaccio/config': 8.0.0-next-8.15 + debug: 4.4.0 jsonwebtoken: 9.0.2 transitivePeerDependencies: - supports-color '@verdaccio/streams@10.2.1': {} - '@verdaccio/tarball@13.0.0-next-8.7': + '@verdaccio/tarball@13.0.0-next-8.15': dependencies: - '@verdaccio/core': 8.0.0-next-8.7 - '@verdaccio/url': 13.0.0-next-8.7 - '@verdaccio/utils': 8.1.0-next-8.7 + '@verdaccio/core': 8.0.0-next-8.15 + '@verdaccio/url': 13.0.0-next-8.15 + '@verdaccio/utils': 8.1.0-next-8.15 debug: 4.4.0 gunzip-maybe: 1.4.2 lodash: 4.17.21 @@ -8618,30 +8354,23 @@ snapshots: transitivePeerDependencies: - supports-color - '@verdaccio/ui-theme@8.0.0-next-8.7': {} + '@verdaccio/ui-theme@8.0.0-next-8.15': {} - '@verdaccio/url@13.0.0-next-8.7': + '@verdaccio/url@13.0.0-next-8.15': dependencies: - '@verdaccio/core': 8.0.0-next-8.7 + '@verdaccio/core': 8.0.0-next-8.15 debug: 4.4.0 lodash: 4.17.21 validator: 13.12.0 transitivePeerDependencies: - supports-color - '@verdaccio/utils@7.0.1-next-8.1': - dependencies: - '@verdaccio/core': 8.0.0-next-8.1 - lodash: 4.17.21 - minimatch: 7.4.6 - semver: 7.6.3 - - '@verdaccio/utils@8.1.0-next-8.7': + '@verdaccio/utils@8.1.0-next-8.15': dependencies: - '@verdaccio/core': 8.0.0-next-8.7 + '@verdaccio/core': 8.0.0-next-8.15 lodash: 4.17.21 minimatch: 7.4.6 - semver: 7.6.3 + semver: 7.7.1 '@xhmikosr/archive-type@7.0.0': dependencies: @@ -8738,16 +8467,25 @@ snapshots: mime-types: 2.1.35 negotiator: 0.6.3 + accepts@2.0.0: + dependencies: + mime-types: 3.0.1 + negotiator: 1.0.0 + acorn-jsx@5.3.2(acorn@8.14.0): dependencies: acorn: 8.14.0 acorn-walk@8.3.4: dependencies: - acorn: 8.14.0 + acorn: 8.14.1 + optional: true acorn@8.14.0: {} + acorn@8.14.1: + optional: true + address@1.2.2: {} agent-base@6.0.2: @@ -8820,7 +8558,8 @@ snapshots: arch@3.0.0: {} - arg@4.1.3: {} + arg@4.1.3: + optional: true argparse@1.0.10: dependencies: @@ -9014,6 +8753,20 @@ snapshots: transitivePeerDependencies: - supports-color + body-parser@2.2.0: + dependencies: + bytes: 3.1.2 + content-type: 1.0.5 + debug: 4.4.0 + http-errors: 2.0.0 + iconv-lite: 0.6.3 + on-finished: 2.4.1 + qs: 6.14.0 + raw-body: 3.0.0 + type-is: 2.0.1 + transitivePeerDependencies: + - supports-color + brace-expansion@1.1.11: dependencies: balanced-match: 1.0.2 @@ -9108,6 +8861,11 @@ snapshots: cachedir@2.3.0: {} + call-bind-apply-helpers@1.0.2: + dependencies: + es-errors: 1.3.0 + function-bind: 1.1.2 + call-bind@1.0.7: dependencies: es-define-property: 1.0.0 @@ -9116,6 +8874,11 @@ snapshots: get-intrinsic: 1.2.4 set-function-length: 1.2.2 + call-bound@1.0.4: + dependencies: + call-bind-apply-helpers: 1.0.2 + get-intrinsic: 1.3.0 + callsites@3.1.0: {} camelcase@5.3.1: {} @@ -9219,10 +8982,10 @@ snapshots: commander@8.3.0: {} - commitizen@4.3.1(@types/node@20.17.25)(typescript@5.7.3): + commitizen@4.3.1(@types/node@20.17.45)(typescript@5.8.3): dependencies: cachedir: 2.3.0 - cz-conventional-changelog: 3.3.0(@types/node@20.17.25)(typescript@5.7.3) + cz-conventional-changelog: 3.3.0(@types/node@20.17.45)(typescript@5.8.3) dedent: 0.7.0 detect-indent: 6.1.0 find-node-modules: 2.1.3 @@ -9248,7 +9011,7 @@ snapshots: dependencies: mime-db: 1.53.0 - compression@1.7.5: + compression@1.8.0: dependencies: bytes: 3.1.2 compressible: 2.0.18 @@ -9268,6 +9031,10 @@ snapshots: dependencies: safe-buffer: 5.2.1 + content-disposition@1.0.0: + dependencies: + safe-buffer: 5.2.1 + content-type@1.0.5: {} conventional-changelog-angular@7.0.0: @@ -9291,13 +9058,15 @@ snapshots: cookie-signature@1.0.6: {} + cookie-signature@1.2.2: {} + cookie@0.7.1: {} core-js-compat@3.39.0: dependencies: browserslist: 4.24.2 - core-js@3.37.1: {} + core-js@3.40.0: {} core-util-is@1.0.2: {} @@ -9308,20 +9077,20 @@ snapshots: object-assign: 4.1.1 vary: 1.1.2 - cosmiconfig-typescript-loader@5.1.0(@types/node@20.17.25)(cosmiconfig@9.0.0(typescript@5.7.3))(typescript@5.7.3): + cosmiconfig-typescript-loader@5.1.0(@types/node@20.17.45)(cosmiconfig@9.0.0(typescript@5.8.3))(typescript@5.8.3): dependencies: - '@types/node': 20.17.25 - cosmiconfig: 9.0.0(typescript@5.7.3) + '@types/node': 20.17.45 + cosmiconfig: 9.0.0(typescript@5.8.3) jiti: 1.21.6 - typescript: 5.7.3 + typescript: 5.8.3 optional: true - cosmiconfig-typescript-loader@6.1.0(@types/node@20.17.25)(cosmiconfig@9.0.0(typescript@5.7.3))(typescript@5.7.3): + cosmiconfig-typescript-loader@6.1.0(@types/node@20.17.45)(cosmiconfig@9.0.0(typescript@5.8.3))(typescript@5.8.3): dependencies: - '@types/node': 20.17.25 - cosmiconfig: 9.0.0(typescript@5.7.3) + '@types/node': 20.17.45 + cosmiconfig: 9.0.0(typescript@5.8.3) jiti: 2.4.2 - typescript: 5.7.3 + typescript: 5.8.3 cosmiconfig@7.1.0: dependencies: @@ -9331,22 +9100,22 @@ snapshots: path-type: 4.0.0 yaml: 1.10.2 - cosmiconfig@9.0.0(typescript@5.7.3): + cosmiconfig@9.0.0(typescript@5.8.3): dependencies: env-paths: 2.2.1 import-fresh: 3.3.0 js-yaml: 4.1.0 parse-json: 5.2.0 optionalDependencies: - typescript: 5.7.3 + typescript: 5.8.3 - create-jest@29.7.0(@types/node@20.17.25)(babel-plugin-macros@3.1.0)(ts-node@10.9.1(@swc/core@1.11.11(@swc/helpers@0.5.15))(@types/node@20.17.25)(typescript@5.7.3)): + create-jest@29.7.0(@types/node@20.17.45)(babel-plugin-macros@3.1.0)(ts-node@10.9.1(@swc/core@1.11.24(@swc/helpers@0.5.17))(@types/node@20.17.45)(typescript@5.8.3)): dependencies: '@jest/types': 29.6.3 chalk: 4.1.2 exit: 0.1.2 graceful-fs: 4.2.11 - jest-config: 29.7.0(@types/node@20.17.25)(babel-plugin-macros@3.1.0)(ts-node@10.9.1(@swc/core@1.11.11(@swc/helpers@0.5.15))(@types/node@20.17.25)(typescript@5.7.3)) + jest-config: 29.7.0(@types/node@20.17.45)(babel-plugin-macros@3.1.0)(ts-node@10.9.1(@swc/core@1.11.24(@swc/helpers@0.5.17))(@types/node@20.17.45)(typescript@5.8.3)) jest-util: 29.7.0 prompts: 2.4.2 transitivePeerDependencies: @@ -9355,7 +9124,8 @@ snapshots: - supports-color - ts-node - create-require@1.1.1: {} + create-require@1.1.1: + optional: true cross-spawn@7.0.6: dependencies: @@ -9363,16 +9133,16 @@ snapshots: shebang-command: 2.0.0 which: 2.0.2 - cz-conventional-changelog@3.3.0(@types/node@20.17.25)(typescript@5.7.3): + cz-conventional-changelog@3.3.0(@types/node@20.17.45)(typescript@5.8.3): dependencies: chalk: 2.4.2 - commitizen: 4.3.1(@types/node@20.17.25)(typescript@5.7.3) + commitizen: 4.3.1(@types/node@20.17.45)(typescript@5.8.3) conventional-commit-types: 3.0.0 lodash.map: 4.6.0 longest: 2.0.1 word-wrap: 1.2.5 optionalDependencies: - '@commitlint/load': 19.5.0(@types/node@20.17.25)(typescript@5.7.3) + '@commitlint/load': 19.5.0(@types/node@20.17.45)(typescript@5.8.3) transitivePeerDependencies: - '@types/node' - typescript @@ -9393,10 +9163,6 @@ snapshots: dependencies: ms: 2.1.2 - debug@4.3.7: - dependencies: - ms: 2.1.3 - debug@4.4.0: dependencies: ms: 2.1.3 @@ -9452,7 +9218,8 @@ snapshots: diff-sequences@29.6.3: {} - diff@4.0.2: {} + diff@4.0.2: + optional: true dot-prop@5.3.0: dependencies: @@ -9464,6 +9231,12 @@ snapshots: dotenv@16.4.5: {} + dunder-proto@1.0.1: + dependencies: + call-bind-apply-helpers: 1.0.2 + es-errors: 1.3.0 + gopd: 1.2.0 + duplexify@3.7.1: dependencies: end-of-stream: 1.4.4 @@ -9531,35 +9304,41 @@ snapshots: dependencies: get-intrinsic: 1.2.4 + es-define-property@1.0.1: {} + es-errors@1.3.0: {} - esbuild@0.25.1: + es-object-atoms@1.1.1: + dependencies: + es-errors: 1.3.0 + + esbuild@0.25.4: optionalDependencies: - '@esbuild/aix-ppc64': 0.25.1 - '@esbuild/android-arm': 0.25.1 - '@esbuild/android-arm64': 0.25.1 - '@esbuild/android-x64': 0.25.1 - '@esbuild/darwin-arm64': 0.25.1 - '@esbuild/darwin-x64': 0.25.1 - '@esbuild/freebsd-arm64': 0.25.1 - '@esbuild/freebsd-x64': 0.25.1 - '@esbuild/linux-arm': 0.25.1 - '@esbuild/linux-arm64': 0.25.1 - '@esbuild/linux-ia32': 0.25.1 - '@esbuild/linux-loong64': 0.25.1 - '@esbuild/linux-mips64el': 0.25.1 - '@esbuild/linux-ppc64': 0.25.1 - '@esbuild/linux-riscv64': 0.25.1 - '@esbuild/linux-s390x': 0.25.1 - '@esbuild/linux-x64': 0.25.1 - '@esbuild/netbsd-arm64': 0.25.1 - '@esbuild/netbsd-x64': 0.25.1 - '@esbuild/openbsd-arm64': 0.25.1 - '@esbuild/openbsd-x64': 0.25.1 - '@esbuild/sunos-x64': 0.25.1 - '@esbuild/win32-arm64': 0.25.1 - '@esbuild/win32-ia32': 0.25.1 - '@esbuild/win32-x64': 0.25.1 + '@esbuild/aix-ppc64': 0.25.4 + '@esbuild/android-arm': 0.25.4 + '@esbuild/android-arm64': 0.25.4 + '@esbuild/android-x64': 0.25.4 + '@esbuild/darwin-arm64': 0.25.4 + '@esbuild/darwin-x64': 0.25.4 + '@esbuild/freebsd-arm64': 0.25.4 + '@esbuild/freebsd-x64': 0.25.4 + '@esbuild/linux-arm': 0.25.4 + '@esbuild/linux-arm64': 0.25.4 + '@esbuild/linux-ia32': 0.25.4 + '@esbuild/linux-loong64': 0.25.4 + '@esbuild/linux-mips64el': 0.25.4 + '@esbuild/linux-ppc64': 0.25.4 + '@esbuild/linux-riscv64': 0.25.4 + '@esbuild/linux-s390x': 0.25.4 + '@esbuild/linux-x64': 0.25.4 + '@esbuild/netbsd-arm64': 0.25.4 + '@esbuild/netbsd-x64': 0.25.4 + '@esbuild/openbsd-arm64': 0.25.4 + '@esbuild/openbsd-x64': 0.25.4 + '@esbuild/sunos-x64': 0.25.4 + '@esbuild/win32-arm64': 0.25.4 + '@esbuild/win32-ia32': 0.25.4 + '@esbuild/win32-x64': 0.25.4 escalade@3.2.0: {} @@ -9571,14 +9350,9 @@ snapshots: escape-string-regexp@4.0.0: {} - eslint-config-prettier@10.1.1(eslint@9.23.0(jiti@2.4.2)): + eslint-config-prettier@10.1.3(eslint@9.26.0(jiti@2.4.2)): dependencies: - eslint: 9.23.0(jiti@2.4.2) - - eslint-scope@8.2.0: - dependencies: - esrecurse: 4.3.0 - estraverse: 5.3.0 + eslint: 9.26.0(jiti@2.4.2) eslint-scope@8.3.0: dependencies: @@ -9589,102 +9363,20 @@ snapshots: eslint-visitor-keys@4.2.0: {} - eslint@9.15.0(jiti@2.4.2): + eslint@9.26.0(jiti@2.4.2): dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.15.0(jiti@2.4.2)) + '@eslint-community/eslint-utils': 4.4.1(eslint@9.26.0(jiti@2.4.2)) '@eslint-community/regexpp': 4.12.1 - '@eslint/config-array': 0.19.0 - '@eslint/core': 0.9.0 - '@eslint/eslintrc': 3.2.0 - '@eslint/js': 9.15.0 - '@eslint/plugin-kit': 0.2.3 - '@humanfs/node': 0.16.6 - '@humanwhocodes/module-importer': 1.0.1 - '@humanwhocodes/retry': 0.4.1 - '@types/estree': 1.0.6 - '@types/json-schema': 7.0.15 - ajv: 6.12.6 - chalk: 4.1.2 - cross-spawn: 7.0.6 - debug: 4.3.7 - escape-string-regexp: 4.0.0 - eslint-scope: 8.2.0 - eslint-visitor-keys: 4.2.0 - espree: 10.3.0 - esquery: 1.6.0 - esutils: 2.0.3 - fast-deep-equal: 3.1.3 - file-entry-cache: 8.0.0 - find-up: 5.0.0 - glob-parent: 6.0.2 - ignore: 5.3.2 - imurmurhash: 0.1.4 - is-glob: 4.0.3 - json-stable-stringify-without-jsonify: 1.0.1 - lodash.merge: 4.6.2 - minimatch: 3.1.2 - natural-compare: 1.4.0 - optionator: 0.9.4 - optionalDependencies: - jiti: 2.4.2 - transitivePeerDependencies: - - supports-color - - eslint@9.22.0(jiti@2.4.2): - dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.22.0(jiti@2.4.2)) - '@eslint-community/regexpp': 4.12.1 - '@eslint/config-array': 0.19.2 - '@eslint/config-helpers': 0.1.0 - '@eslint/core': 0.12.0 - '@eslint/eslintrc': 3.3.0 - '@eslint/js': 9.22.0 - '@eslint/plugin-kit': 0.2.7 - '@humanfs/node': 0.16.6 - '@humanwhocodes/module-importer': 1.0.1 - '@humanwhocodes/retry': 0.4.2 - '@types/estree': 1.0.6 - '@types/json-schema': 7.0.15 - ajv: 6.12.6 - chalk: 4.1.2 - cross-spawn: 7.0.6 - debug: 4.4.0 - escape-string-regexp: 4.0.0 - eslint-scope: 8.3.0 - eslint-visitor-keys: 4.2.0 - espree: 10.3.0 - esquery: 1.6.0 - esutils: 2.0.3 - fast-deep-equal: 3.1.3 - file-entry-cache: 8.0.0 - find-up: 5.0.0 - glob-parent: 6.0.2 - ignore: 5.3.2 - imurmurhash: 0.1.4 - is-glob: 4.0.3 - json-stable-stringify-without-jsonify: 1.0.1 - lodash.merge: 4.6.2 - minimatch: 3.1.2 - natural-compare: 1.4.0 - optionator: 0.9.4 - optionalDependencies: - jiti: 2.4.2 - transitivePeerDependencies: - - supports-color - - eslint@9.23.0(jiti@2.4.2): - dependencies: - '@eslint-community/eslint-utils': 4.5.1(eslint@9.23.0(jiti@2.4.2)) - '@eslint-community/regexpp': 4.12.1 - '@eslint/config-array': 0.19.2 - '@eslint/config-helpers': 0.2.0 - '@eslint/core': 0.12.0 + '@eslint/config-array': 0.20.0 + '@eslint/config-helpers': 0.2.1 + '@eslint/core': 0.13.0 '@eslint/eslintrc': 3.3.1 - '@eslint/js': 9.23.0 - '@eslint/plugin-kit': 0.2.7 + '@eslint/js': 9.26.0 + '@eslint/plugin-kit': 0.2.8 '@humanfs/node': 0.16.6 '@humanwhocodes/module-importer': 1.0.1 '@humanwhocodes/retry': 0.4.2 + '@modelcontextprotocol/sdk': 1.11.0 '@types/estree': 1.0.6 '@types/json-schema': 7.0.15 ajv: 6.12.6 @@ -9709,6 +9401,7 @@ snapshots: minimatch: 3.1.2 natural-compare: 1.4.0 optionator: 0.9.4 + zod: 3.24.4 optionalDependencies: jiti: 2.4.2 transitivePeerDependencies: @@ -9748,6 +9441,12 @@ snapshots: events@3.3.0: {} + eventsource-parser@3.0.1: {} + + eventsource@3.0.6: + dependencies: + eventsource-parser: 3.0.1 + execa@5.1.1: dependencies: cross-spawn: 7.0.6 @@ -9790,6 +9489,10 @@ snapshots: express-rate-limit@5.5.1: {} + express-rate-limit@7.5.0(express@5.1.0): + dependencies: + express: 5.1.0 + express@4.21.2: dependencies: accepts: 1.3.8 @@ -9826,6 +9529,38 @@ snapshots: transitivePeerDependencies: - supports-color + express@5.1.0: + dependencies: + accepts: 2.0.0 + body-parser: 2.2.0 + content-disposition: 1.0.0 + content-type: 1.0.5 + cookie: 0.7.1 + cookie-signature: 1.2.2 + debug: 4.4.0 + encodeurl: 2.0.0 + escape-html: 1.0.3 + etag: 1.8.1 + finalhandler: 2.1.0 + fresh: 2.0.0 + http-errors: 2.0.0 + merge-descriptors: 2.0.0 + mime-types: 3.0.1 + on-finished: 2.4.1 + once: 1.4.0 + parseurl: 1.3.3 + proxy-addr: 2.0.7 + qs: 6.14.0 + range-parser: 1.2.1 + router: 2.2.0 + send: 1.2.0 + serve-static: 2.2.0 + statuses: 2.0.1 + type-is: 2.0.1 + vary: 1.1.2 + transitivePeerDependencies: + - supports-color + ext-list@2.2.2: dependencies: mime-db: 1.53.0 @@ -9849,14 +9584,6 @@ snapshots: fast-fifo@1.3.2: {} - fast-glob@3.3.2: - dependencies: - '@nodelib/fs.stat': 2.0.5 - '@nodelib/fs.walk': 1.2.8 - glob-parent: 5.1.2 - merge2: 1.4.1 - micromatch: 4.0.8 - fast-glob@3.3.3: dependencies: '@nodelib/fs.stat': 2.0.5 @@ -9871,8 +9598,6 @@ snapshots: fast-redact@3.5.0: {} - fast-safe-stringify@2.1.1: {} - fast-uri@3.0.1: {} fastq@1.17.1: @@ -9932,6 +9657,17 @@ snapshots: transitivePeerDependencies: - supports-color + finalhandler@2.1.0: + dependencies: + debug: 4.4.0 + encodeurl: 2.0.0 + escape-html: 1.0.3 + on-finished: 2.4.1 + parseurl: 1.3.3 + statuses: 2.0.1 + transitivePeerDependencies: + - supports-color + find-node-modules@2.1.3: dependencies: findup-sync: 4.0.0 @@ -9996,6 +9732,8 @@ snapshots: fresh@0.5.2: {} + fresh@2.0.0: {} + front-matter@4.0.2: dependencies: js-yaml: 3.14.1 @@ -10038,8 +9776,26 @@ snapshots: has-symbols: 1.0.3 hasown: 2.0.2 + get-intrinsic@1.3.0: + dependencies: + call-bind-apply-helpers: 1.0.2 + es-define-property: 1.0.1 + es-errors: 1.3.0 + es-object-atoms: 1.1.1 + function-bind: 1.1.2 + get-proto: 1.0.1 + gopd: 1.2.0 + has-symbols: 1.1.0 + hasown: 2.0.2 + math-intrinsics: 1.1.0 + get-package-type@0.1.0: {} + get-proto@1.0.1: + dependencies: + dunder-proto: 1.0.1 + es-object-atoms: 1.1.1 + get-stream@6.0.1: {} get-stream@8.0.1: {} @@ -10117,6 +9873,8 @@ snapshots: dependencies: get-intrinsic: 1.2.4 + gopd@1.2.0: {} + got@13.0.0: dependencies: '@sindresorhus/is': 5.6.0 @@ -10167,6 +9925,8 @@ snapshots: has-symbols@1.0.3: {} + has-symbols@1.1.0: {} + hasown@2.0.2: dependencies: function-bind: 1.1.2 @@ -10244,7 +10004,6 @@ snapshots: iconv-lite@0.6.3: dependencies: safer-buffer: 2.1.2 - optional: true identity-obj-proxy@3.0.0: dependencies: @@ -10258,7 +10017,7 @@ snapshots: ignore@5.3.2: {} - ignore@7.0.3: {} + ignore@7.0.4: {} import-fresh@3.3.0: dependencies: @@ -10358,6 +10117,8 @@ snapshots: is-promise@2.2.2: {} + is-promise@4.0.0: {} + is-stream@2.0.1: {} is-stream@3.0.0: {} @@ -10454,7 +10215,7 @@ snapshots: '@jest/expect': 29.7.0 '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.17.25 + '@types/node': 20.17.45 chalk: 4.1.2 co: 4.6.0 dedent: 1.5.3(babel-plugin-macros@3.1.0) @@ -10474,16 +10235,16 @@ snapshots: - babel-plugin-macros - supports-color - jest-cli@29.7.0(@types/node@20.17.25)(babel-plugin-macros@3.1.0)(ts-node@10.9.1(@swc/core@1.11.11(@swc/helpers@0.5.15))(@types/node@20.17.25)(typescript@5.7.3)): + jest-cli@29.7.0(@types/node@20.17.45)(babel-plugin-macros@3.1.0)(ts-node@10.9.1(@swc/core@1.11.24(@swc/helpers@0.5.17))(@types/node@20.17.45)(typescript@5.8.3)): dependencies: - '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.1(@swc/core@1.11.11(@swc/helpers@0.5.15))(@types/node@20.17.25)(typescript@5.7.3)) + '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.1(@swc/core@1.11.24(@swc/helpers@0.5.17))(@types/node@20.17.45)(typescript@5.8.3)) '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 chalk: 4.1.2 - create-jest: 29.7.0(@types/node@20.17.25)(babel-plugin-macros@3.1.0)(ts-node@10.9.1(@swc/core@1.11.11(@swc/helpers@0.5.15))(@types/node@20.17.25)(typescript@5.7.3)) + create-jest: 29.7.0(@types/node@20.17.45)(babel-plugin-macros@3.1.0)(ts-node@10.9.1(@swc/core@1.11.24(@swc/helpers@0.5.17))(@types/node@20.17.45)(typescript@5.8.3)) exit: 0.1.2 import-local: 3.2.0 - jest-config: 29.7.0(@types/node@20.17.25)(babel-plugin-macros@3.1.0)(ts-node@10.9.1(@swc/core@1.11.11(@swc/helpers@0.5.15))(@types/node@20.17.25)(typescript@5.7.3)) + jest-config: 29.7.0(@types/node@20.17.45)(babel-plugin-macros@3.1.0)(ts-node@10.9.1(@swc/core@1.11.24(@swc/helpers@0.5.17))(@types/node@20.17.45)(typescript@5.8.3)) jest-util: 29.7.0 jest-validate: 29.7.0 yargs: 17.7.2 @@ -10493,7 +10254,7 @@ snapshots: - supports-color - ts-node - jest-config@29.7.0(@types/node@20.17.25)(babel-plugin-macros@3.1.0)(ts-node@10.9.1(@swc/core@1.11.11(@swc/helpers@0.5.15))(@types/node@20.17.25)(typescript@5.7.3)): + jest-config@29.7.0(@types/node@20.17.45)(babel-plugin-macros@3.1.0)(ts-node@10.9.1(@swc/core@1.11.24(@swc/helpers@0.5.17))(@types/node@20.17.45)(typescript@5.8.3)): dependencies: '@babel/core': 7.26.0 '@jest/test-sequencer': 29.7.0 @@ -10518,8 +10279,8 @@ snapshots: slash: 3.0.0 strip-json-comments: 3.1.1 optionalDependencies: - '@types/node': 20.17.25 - ts-node: 10.9.1(@swc/core@1.11.11(@swc/helpers@0.5.15))(@types/node@20.17.25)(typescript@5.7.3) + '@types/node': 20.17.45 + ts-node: 10.9.1(@swc/core@1.11.24(@swc/helpers@0.5.17))(@types/node@20.17.45)(typescript@5.8.3) transitivePeerDependencies: - babel-plugin-macros - supports-color @@ -10548,7 +10309,7 @@ snapshots: '@jest/environment': 29.7.0 '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.17.25 + '@types/node': 20.17.45 jest-mock: 29.7.0 jest-util: 29.7.0 @@ -10558,7 +10319,7 @@ snapshots: dependencies: '@jest/types': 29.6.3 '@types/graceful-fs': 4.1.9 - '@types/node': 20.17.25 + '@types/node': 20.17.45 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.11 @@ -10597,7 +10358,7 @@ snapshots: jest-mock@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 20.17.25 + '@types/node': 20.17.45 jest-util: 29.7.0 jest-pnp-resolver@1.2.3(jest-resolve@29.7.0): @@ -10632,7 +10393,7 @@ snapshots: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.17.25 + '@types/node': 20.17.45 chalk: 4.1.2 emittery: 0.13.1 graceful-fs: 4.2.11 @@ -10660,7 +10421,7 @@ snapshots: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.17.25 + '@types/node': 20.17.45 chalk: 4.1.2 cjs-module-lexer: 1.4.1 collect-v8-coverage: 1.0.2 @@ -10706,7 +10467,7 @@ snapshots: jest-util@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 20.17.25 + '@types/node': 20.17.45 chalk: 4.1.2 ci-info: 3.9.0 graceful-fs: 4.2.11 @@ -10725,7 +10486,7 @@ snapshots: dependencies: '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.17.25 + '@types/node': 20.17.45 ansi-escapes: 4.3.2 chalk: 4.1.2 emittery: 0.13.1 @@ -10734,17 +10495,17 @@ snapshots: jest-worker@29.7.0: dependencies: - '@types/node': 20.17.25 + '@types/node': 20.17.45 jest-util: 29.7.0 merge-stream: 2.0.0 supports-color: 8.1.1 - jest@29.7.0(@types/node@20.17.25)(babel-plugin-macros@3.1.0)(ts-node@10.9.1(@swc/core@1.11.11(@swc/helpers@0.5.15))(@types/node@20.17.25)(typescript@5.7.3)): + jest@29.7.0(@types/node@20.17.45)(babel-plugin-macros@3.1.0)(ts-node@10.9.1(@swc/core@1.11.24(@swc/helpers@0.5.17))(@types/node@20.17.45)(typescript@5.8.3)): dependencies: - '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.1(@swc/core@1.11.11(@swc/helpers@0.5.15))(@types/node@20.17.25)(typescript@5.7.3)) + '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.1(@swc/core@1.11.24(@swc/helpers@0.5.17))(@types/node@20.17.45)(typescript@5.8.3)) '@jest/types': 29.6.3 import-local: 3.2.0 - jest-cli: 29.7.0(@types/node@20.17.25)(babel-plugin-macros@3.1.0)(ts-node@10.9.1(@swc/core@1.11.11(@swc/helpers@0.5.15))(@types/node@20.17.25)(typescript@5.7.3)) + jest-cli: 29.7.0(@types/node@20.17.45)(babel-plugin-macros@3.1.0)(ts-node@10.9.1(@swc/core@1.11.24(@swc/helpers@0.5.17))(@types/node@20.17.45)(typescript@5.8.3)) transitivePeerDependencies: - '@types/node' - babel-plugin-macros @@ -10861,8 +10622,6 @@ snapshots: kleur@3.0.3: {} - kleur@4.1.5: {} - leven@3.1.0: {} levn@0.4.1: @@ -10876,7 +10635,7 @@ snapshots: lines-and-columns@2.0.3: {} - lint-staged@15.5.0: + lint-staged@15.5.2: dependencies: chalk: 5.4.1 commander: 13.1.0 @@ -10987,10 +10746,6 @@ snapshots: lru-cache@7.18.3: {} - magic-string@0.30.12: - dependencies: - '@jridgewell/sourcemap-codec': 1.5.0 - magic-string@0.30.17: dependencies: '@jridgewell/sourcemap-codec': 1.5.0 @@ -11038,12 +10793,18 @@ snapshots: dependencies: tmpl: 1.0.5 + math-intrinsics@1.1.0: {} + media-typer@0.3.0: {} + media-typer@1.1.0: {} + meow@12.1.1: {} merge-descriptors@1.0.3: {} + merge-descriptors@2.0.0: {} + merge-stream@2.0.0: {} merge2@1.4.1: {} @@ -11061,10 +10822,16 @@ snapshots: mime-db@1.53.0: {} + mime-db@1.54.0: {} + mime-types@2.1.35: dependencies: mime-db: 1.52.0 + mime-types@3.0.1: + dependencies: + mime-db: 1.54.0 + mime@1.6.0: {} mime@2.6.0: {} @@ -11280,7 +11047,7 @@ snapshots: dependencies: path-key: 4.0.0 - nx@0.0.0-pr-30418-4f79396(@swc-node/register@1.10.10(@swc/core@1.11.11(@swc/helpers@0.5.15))(@swc/types@0.1.19)(typescript@5.7.3))(@swc/core@1.11.11(@swc/helpers@0.5.15)): + nx@21.0.2(@swc-node/register@1.10.10(@swc/core@1.11.24(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3))(@swc/core@1.11.24(@swc/helpers@0.5.17)): dependencies: '@napi-rs/wasm-runtime': 0.2.4 '@yarnpkg/lockfile': 1.1.0 @@ -11311,24 +11078,25 @@ snapshots: string-width: 4.2.3 tar-stream: 2.2.0 tmp: 0.2.3 + tree-kill: 1.2.2 tsconfig-paths: 4.2.0 tslib: 2.8.1 yaml: 2.7.0 yargs: 17.7.2 yargs-parser: 21.1.1 optionalDependencies: - '@nx/nx-darwin-arm64': 0.0.0-pr-30418-4f79396 - '@nx/nx-darwin-x64': 0.0.0-pr-30418-4f79396 - '@nx/nx-freebsd-x64': 0.0.0-pr-30418-4f79396 - '@nx/nx-linux-arm-gnueabihf': 0.0.0-pr-30418-4f79396 - '@nx/nx-linux-arm64-gnu': 0.0.0-pr-30418-4f79396 - '@nx/nx-linux-arm64-musl': 0.0.0-pr-30418-4f79396 - '@nx/nx-linux-x64-gnu': 0.0.0-pr-30418-4f79396 - '@nx/nx-linux-x64-musl': 0.0.0-pr-30418-4f79396 - '@nx/nx-win32-arm64-msvc': 0.0.0-pr-30418-4f79396 - '@nx/nx-win32-x64-msvc': 0.0.0-pr-30418-4f79396 - '@swc-node/register': 1.10.10(@swc/core@1.11.11(@swc/helpers@0.5.15))(@swc/types@0.1.19)(typescript@5.7.3) - '@swc/core': 1.11.11(@swc/helpers@0.5.15) + '@nx/nx-darwin-arm64': 21.0.2 + '@nx/nx-darwin-x64': 21.0.2 + '@nx/nx-freebsd-x64': 21.0.2 + '@nx/nx-linux-arm-gnueabihf': 21.0.2 + '@nx/nx-linux-arm64-gnu': 21.0.2 + '@nx/nx-linux-arm64-musl': 21.0.2 + '@nx/nx-linux-x64-gnu': 21.0.2 + '@nx/nx-linux-x64-musl': 21.0.2 + '@nx/nx-win32-arm64-msvc': 21.0.2 + '@nx/nx-win32-x64-msvc': 21.0.2 + '@swc-node/register': 1.10.10(@swc/core@1.11.24(@swc/helpers@0.5.17))(@swc/types@0.1.21)(typescript@5.8.3) + '@swc/core': 1.11.24(@swc/helpers@0.5.17) transitivePeerDependencies: - debug @@ -11400,19 +11168,21 @@ snapshots: os-tmpdir@1.0.2: {} - oxc-resolver@5.0.1: + oxc-resolver@5.2.0: optionalDependencies: - '@oxc-resolver/binding-darwin-arm64': 5.0.1 - '@oxc-resolver/binding-darwin-x64': 5.0.1 - '@oxc-resolver/binding-freebsd-x64': 5.0.1 - '@oxc-resolver/binding-linux-arm-gnueabihf': 5.0.1 - '@oxc-resolver/binding-linux-arm64-gnu': 5.0.1 - '@oxc-resolver/binding-linux-arm64-musl': 5.0.1 - '@oxc-resolver/binding-linux-x64-gnu': 5.0.1 - '@oxc-resolver/binding-linux-x64-musl': 5.0.1 - '@oxc-resolver/binding-wasm32-wasi': 5.0.1 - '@oxc-resolver/binding-win32-arm64-msvc': 5.0.1 - '@oxc-resolver/binding-win32-x64-msvc': 5.0.1 + '@oxc-resolver/binding-darwin-arm64': 5.2.0 + '@oxc-resolver/binding-darwin-x64': 5.2.0 + '@oxc-resolver/binding-freebsd-x64': 5.2.0 + '@oxc-resolver/binding-linux-arm-gnueabihf': 5.2.0 + '@oxc-resolver/binding-linux-arm64-gnu': 5.2.0 + '@oxc-resolver/binding-linux-arm64-musl': 5.2.0 + '@oxc-resolver/binding-linux-riscv64-gnu': 5.2.0 + '@oxc-resolver/binding-linux-s390x-gnu': 5.2.0 + '@oxc-resolver/binding-linux-x64-gnu': 5.2.0 + '@oxc-resolver/binding-linux-x64-musl': 5.2.0 + '@oxc-resolver/binding-wasm32-wasi': 5.2.0 + '@oxc-resolver/binding-win32-arm64-msvc': 5.2.0 + '@oxc-resolver/binding-win32-x64-msvc': 5.2.0 p-cancelable@3.0.0: {} @@ -11509,6 +11279,8 @@ snapshots: path-to-regexp@0.1.12: {} + path-to-regexp@8.2.0: {} + path-type@4.0.0: {} peek-readable@5.3.1: {} @@ -11544,7 +11316,7 @@ snapshots: pino-std-serializers@7.0.0: {} - pino@9.5.0: + pino@9.6.0: dependencies: atomic-sleep: 1.0.0 fast-redact: 3.5.0 @@ -11564,6 +11336,8 @@ snapshots: optionalDependencies: '@napi-rs/nice': 1.0.1 + pkce-challenge@5.0.0: {} + pkg-dir@4.2.0: dependencies: find-up: 4.1.0 @@ -11634,9 +11408,9 @@ snapshots: dependencies: side-channel: 1.0.6 - qs@6.13.1: + qs@6.14.0: dependencies: - side-channel: 1.0.6 + side-channel: 1.1.0 queue-microtask@1.2.3: {} @@ -11655,6 +11429,13 @@ snapshots: iconv-lite: 0.4.24 unpipe: 1.0.0 + raw-body@3.0.0: + dependencies: + bytes: 3.1.2 + http-errors: 2.0.0 + iconv-lite: 0.6.3 + unpipe: 1.0.0 + react-is@18.3.1: {} readable-stream@2.3.8: @@ -11763,6 +11544,16 @@ snapshots: dependencies: glob: 10.4.5 + router@2.2.0: + dependencies: + debug: 4.4.0 + depd: 2.0.0 + is-promise: 4.0.0 + parseurl: 1.3.3 + path-to-regexp: 8.2.0 + transitivePeerDependencies: + - supports-color + run-async@2.4.1: {} run-parallel@1.2.0: @@ -11815,6 +11606,22 @@ snapshots: transitivePeerDependencies: - supports-color + send@1.2.0: + dependencies: + debug: 4.4.0 + encodeurl: 2.0.0 + escape-html: 1.0.3 + etag: 1.8.1 + fresh: 2.0.0 + http-errors: 2.0.0 + mime-types: 3.0.1 + ms: 2.1.3 + on-finished: 2.4.1 + range-parser: 1.2.1 + statuses: 2.0.1 + transitivePeerDependencies: + - supports-color + serve-static@1.16.2: dependencies: encodeurl: 2.0.0 @@ -11824,6 +11631,15 @@ snapshots: transitivePeerDependencies: - supports-color + serve-static@2.2.0: + dependencies: + encodeurl: 2.0.0 + escape-html: 1.0.3 + parseurl: 1.3.3 + send: 1.2.0 + transitivePeerDependencies: + - supports-color + set-function-length@1.2.2: dependencies: define-data-property: 1.1.4 @@ -11841,6 +11657,26 @@ snapshots: shebang-regex@3.0.0: {} + side-channel-list@1.0.0: + dependencies: + es-errors: 1.3.0 + object-inspect: 1.13.3 + + side-channel-map@1.0.1: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + get-intrinsic: 1.3.0 + object-inspect: 1.13.3 + + side-channel-weakmap@1.0.2: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + get-intrinsic: 1.3.0 + object-inspect: 1.13.3 + side-channel-map: 1.0.1 + side-channel@1.0.6: dependencies: call-bind: 1.0.7 @@ -11848,6 +11684,14 @@ snapshots: get-intrinsic: 1.2.4 object-inspect: 1.13.3 + side-channel@1.1.0: + dependencies: + es-errors: 1.3.0 + object-inspect: 1.13.3 + side-channel-list: 1.0.0 + side-channel-map: 1.0.1 + side-channel-weakmap: 1.0.2 + signal-exit@3.0.7: {} signal-exit@4.1.0: {} @@ -12117,7 +11961,7 @@ snapshots: through@2.3.8: {} - tinyexec@0.3.1: {} + tinyexec@1.0.1: {} tinyglobby@0.2.10: dependencies: @@ -12162,61 +12006,50 @@ snapshots: tree-kill@1.2.2: {} - ts-api-utils@1.4.3(typescript@5.7.3): - dependencies: - typescript: 5.7.3 - - ts-api-utils@2.0.1(typescript@5.7.3): - dependencies: - typescript: 5.7.3 - - ts-api-utils@2.1.0(typescript@5.5.4): + ts-api-utils@2.1.0(typescript@5.8.3): dependencies: - typescript: 5.5.4 + typescript: 5.8.3 - ts-api-utils@2.1.0(typescript@5.7.3): - dependencies: - typescript: 5.7.3 - - ts-jest@29.2.4(@babel/core@7.26.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.0))(esbuild@0.25.1)(jest@29.7.0(@types/node@20.17.25)(babel-plugin-macros@3.1.0)(ts-node@10.9.1(@swc/core@1.11.11(@swc/helpers@0.5.15))(@types/node@20.17.25)(typescript@5.7.3)))(typescript@5.7.3): + ts-jest@29.2.4(@babel/core@7.26.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.0))(esbuild@0.25.4)(jest@29.7.0(@types/node@20.17.45)(babel-plugin-macros@3.1.0)(ts-node@10.9.1(@swc/core@1.11.24(@swc/helpers@0.5.17))(@types/node@20.17.45)(typescript@5.8.3)))(typescript@5.8.3): dependencies: bs-logger: 0.2.6 ejs: 3.1.10 fast-json-stable-stringify: 2.1.0 - jest: 29.7.0(@types/node@20.17.25)(babel-plugin-macros@3.1.0)(ts-node@10.9.1(@swc/core@1.11.11(@swc/helpers@0.5.15))(@types/node@20.17.25)(typescript@5.7.3)) + jest: 29.7.0(@types/node@20.17.45)(babel-plugin-macros@3.1.0)(ts-node@10.9.1(@swc/core@1.11.24(@swc/helpers@0.5.17))(@types/node@20.17.45)(typescript@5.8.3)) jest-util: 29.7.0 json5: 2.2.3 lodash.memoize: 4.1.2 make-error: 1.3.6 semver: 7.7.1 - typescript: 5.7.3 + typescript: 5.8.3 yargs-parser: 21.1.1 optionalDependencies: '@babel/core': 7.26.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 babel-jest: 29.7.0(@babel/core@7.26.0) - esbuild: 0.25.1 + esbuild: 0.25.4 - ts-node@10.9.1(@swc/core@1.11.11(@swc/helpers@0.5.15))(@types/node@20.17.25)(typescript@5.7.3): + ts-node@10.9.1(@swc/core@1.11.24(@swc/helpers@0.5.17))(@types/node@20.17.45)(typescript@5.8.3): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.11 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 20.17.25 - acorn: 8.14.0 + '@types/node': 20.17.45 + acorn: 8.14.1 acorn-walk: 8.3.4 arg: 4.1.3 create-require: 1.1.1 diff: 4.0.2 make-error: 1.3.6 - typescript: 5.7.3 + typescript: 5.8.3 v8-compile-cache-lib: 3.0.1 yn: 3.1.1 optionalDependencies: - '@swc/core': 1.11.11(@swc/helpers@0.5.15) + '@swc/core': 1.11.24(@swc/helpers@0.5.17) + optional: true tsconfig-paths@4.2.0: dependencies: @@ -12226,9 +12059,9 @@ snapshots: tslib@2.8.1: {} - tsx@4.19.3: + tsx@4.19.4: dependencies: - esbuild: 0.25.1 + esbuild: 0.25.4 get-tsconfig: 4.10.0 optionalDependencies: fsevents: 2.3.3 @@ -12262,31 +12095,26 @@ snapshots: media-typer: 0.3.0 mime-types: 2.1.35 - typescript-eslint@8.16.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.7.3): + type-is@2.0.1: dependencies: - '@typescript-eslint/eslint-plugin': 8.16.0(@typescript-eslint/parser@8.27.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.22.0(jiti@2.4.2))(typescript@5.7.3) - '@typescript-eslint/parser': 8.27.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.7.3) - '@typescript-eslint/utils': 8.27.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.7.3) - eslint: 9.22.0(jiti@2.4.2) - optionalDependencies: - typescript: 5.7.3 - transitivePeerDependencies: - - supports-color + content-type: 1.0.5 + media-typer: 1.1.0 + mime-types: 3.0.1 - typescript-eslint@8.27.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.7.3): + typescript-eslint@8.32.0(eslint@9.26.0(jiti@2.4.2))(typescript@5.8.3): dependencies: - '@typescript-eslint/eslint-plugin': 8.27.0(@typescript-eslint/parser@8.27.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.23.0(jiti@2.4.2))(typescript@5.7.3) - '@typescript-eslint/parser': 8.27.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.7.3) - '@typescript-eslint/utils': 8.27.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.7.3) - eslint: 9.23.0(jiti@2.4.2) - typescript: 5.7.3 + '@typescript-eslint/eslint-plugin': 8.32.0(@typescript-eslint/parser@8.32.0(eslint@9.26.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.26.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/parser': 8.32.0(eslint@9.26.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/utils': 8.32.0(eslint@9.26.0(jiti@2.4.2))(typescript@5.8.3) + eslint: 9.26.0(jiti@2.4.2) + typescript: 5.8.3 transitivePeerDependencies: - supports-color - typescript@5.5.4: {} - typescript@5.7.3: {} + typescript@5.8.3: {} + uglify-js@3.19.3: optional: true @@ -12350,7 +12178,8 @@ snapshots: uuid@8.3.2: {} - v8-compile-cache-lib@3.0.1: {} + v8-compile-cache-lib@3.0.1: + optional: true v8-to-istanbul@9.3.0: dependencies: @@ -12371,10 +12200,10 @@ snapshots: vary@1.1.2: {} - verdaccio-audit@13.0.0-next-8.7(encoding@0.1.13): + verdaccio-audit@13.0.0-next-8.15(encoding@0.1.13): dependencies: - '@verdaccio/config': 8.0.0-next-8.7 - '@verdaccio/core': 8.0.0-next-8.7 + '@verdaccio/config': 8.0.0-next-8.15 + '@verdaccio/core': 8.0.0-next-8.15 express: 4.21.2 https-proxy-agent: 5.0.1 node-fetch: 2.6.7(encoding@0.1.13) @@ -12382,58 +12211,53 @@ snapshots: - encoding - supports-color - verdaccio-htpasswd@13.0.0-next-8.7: + verdaccio-htpasswd@13.0.0-next-8.15: dependencies: - '@verdaccio/core': 8.0.0-next-8.7 - '@verdaccio/file-locking': 13.0.0-next-8.2 + '@verdaccio/core': 8.0.0-next-8.15 + '@verdaccio/file-locking': 13.0.0-next-8.3 apache-md5: 1.1.8 bcryptjs: 2.4.3 - core-js: 3.37.1 + core-js: 3.40.0 debug: 4.4.0 http-errors: 2.0.0 unix-crypt-td-js: 1.1.4 transitivePeerDependencies: - supports-color - verdaccio@6.0.5(encoding@0.1.13)(typanion@3.14.0): + verdaccio@6.1.2(encoding@0.1.13)(typanion@3.14.0): dependencies: - '@cypress/request': 3.0.7 - '@verdaccio/auth': 8.0.0-next-8.7 - '@verdaccio/config': 8.0.0-next-8.7 - '@verdaccio/core': 8.0.0-next-8.7 + '@cypress/request': 3.0.8 + '@verdaccio/auth': 8.0.0-next-8.15 + '@verdaccio/config': 8.0.0-next-8.15 + '@verdaccio/core': 8.0.0-next-8.15 + '@verdaccio/loaders': 8.0.0-next-8.6 '@verdaccio/local-storage-legacy': 11.0.2 - '@verdaccio/logger': 8.0.0-next-8.7 - '@verdaccio/middleware': 8.0.0-next-8.7 - '@verdaccio/search-indexer': 8.0.0-next-8.2 - '@verdaccio/signature': 8.0.0-next-8.1 + '@verdaccio/logger': 8.0.0-next-8.15 + '@verdaccio/middleware': 8.0.0-next-8.15 + '@verdaccio/search-indexer': 8.0.0-next-8.4 + '@verdaccio/signature': 8.0.0-next-8.7 '@verdaccio/streams': 10.2.1 - '@verdaccio/tarball': 13.0.0-next-8.7 - '@verdaccio/ui-theme': 8.0.0-next-8.7 - '@verdaccio/url': 13.0.0-next-8.7 - '@verdaccio/utils': 7.0.1-next-8.1 + '@verdaccio/tarball': 13.0.0-next-8.15 + '@verdaccio/ui-theme': 8.0.0-next-8.15 + '@verdaccio/url': 13.0.0-next-8.15 + '@verdaccio/utils': 8.1.0-next-8.15 JSONStream: 1.3.5 async: 3.2.6 clipanion: 4.0.0-rc.4(typanion@3.14.0) - compression: 1.7.5 + compression: 1.8.0 cors: 2.8.5 debug: 4.4.0 envinfo: 7.14.0 express: 4.21.2 - express-rate-limit: 5.5.1 - fast-safe-stringify: 2.1.1 handlebars: 4.7.8 - js-yaml: 4.1.0 - jsonwebtoken: 9.0.2 - kleur: 4.1.5 lodash: 4.17.21 lru-cache: 7.18.3 mime: 3.0.0 mkdirp: 1.0.4 pkginfo: 0.4.1 semver: 7.6.3 - validator: 13.12.0 - verdaccio-audit: 13.0.0-next-8.7(encoding@0.1.13) - verdaccio-htpasswd: 13.0.0-next-8.7 + verdaccio-audit: 13.0.0-next-8.15(encoding@0.1.13) + verdaccio-htpasswd: 13.0.0-next-8.15 transitivePeerDependencies: - encoding - supports-color @@ -12542,10 +12366,17 @@ snapshots: buffer-crc32: 0.2.13 pend: 1.2.0 - yn@3.1.1: {} + yn@3.1.1: + optional: true yocto-queue@0.1.0: {} yocto-queue@1.1.1: {} yoctocolors-cjs@2.1.2: {} + + zod-to-json-schema@3.24.5(zod@3.24.4): + dependencies: + zod: 3.24.4 + + zod@3.24.4: {}