diff --git a/api-data.ts b/api-data.ts
index 85d8e27..88ef988 100644
--- a/api-data.ts
+++ b/api-data.ts
@@ -56,11 +56,15 @@ const testEntityData: TestEntityWithoutCustomPropertiesInterface = {
rowValue2: 'rowValue2'
},
stringChipsArrayValue: ['01234', '56789'],
+ stringChipsArrayValueWithConfig: ['01234', '56789'],
// eslint-disable-next-line cspell/spellchecker
stringChipsAutocompleteArrayValue: ['ABCDE', 'FGHIJ'],
- stringChipsArrayValueWithConfig: ['01234', '56789'],
// eslint-disable-next-line cspell/spellchecker
stringChipsAutocompleteArrayValueWithConfig: ['ABCDE', 'FGHIJ'],
+ // eslint-disable-next-line cspell/spellchecker
+ stringDropdownArrayValue: ['ABCDE', 'FGHIJ'],
+ // eslint-disable-next-line cspell/spellchecker
+ stringDropdownArrayValueWithConfig: ['ABCDE', 'FGHIJ'],
orderValue1: '1',
orderValue2: '2',
orderValue3: '3',
diff --git a/cypress/support/commands.ts b/cypress/support/commands.ts
index 8bb1628..1b6e52c 100644
--- a/cypress/support/commands.ts
+++ b/cypress/support/commands.ts
@@ -78,13 +78,25 @@ Cypress.Commands.add(
// eslint-disable-next-line cspell/spellchecker
cy.getInputByLabel('String Chips Array Value').click().type('abcd{enter}efgh{enter}');
- cy.getInputByLabel('String Chips Autocomplete Array Value').click().type('123{enter}456{enter}');
-
// eslint-disable-next-line cspell/spellchecker
cy.getInputByLabel('String Chips Array Value With Config').click().type('abcd{enter}efgh{enter}');
+
+ cy.getInputByLabel('String Chips Autocomplete Array Value').click().type('123{enter}456{enter}');
// eslint-disable-next-line cspell/spellchecker
cy.getInputByLabel('String Chips Autocomplete Array Value With Config').click().type('ABCDE{enter}FGHIJ{enter}');
+ cy.getInputByLabel('String Dropdown Array Value').click();
+ cy.get('mat-option').contains('ABCDE').click();
+ // eslint-disable-next-line cspell/spellchecker
+ cy.get('mat-option').contains('FGHIJ').click();
+ cy.get('body').type('{esc}');
+
+ cy.getInputByLabel('String Dropdown Array Value With Config').click();
+ cy.get('mat-option').contains('ABCDE').click();
+ // eslint-disable-next-line cspell/spellchecker
+ cy.get('mat-option').contains('FGHIJ').click();
+ cy.get('body').type('{esc}');
+
cy.getInputByLabel('Array Object Value').click().type('arrayObjectValue');
cy.get('.mdc-tab__text-label').eq(5).click({ force: true });
cy.getInputByLabel('Second Tab Value').click().type('secondTabValue');
diff --git a/package-lock.json b/package-lock.json
index b208f70..ac4c0c7 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -8,16 +8,16 @@
"name": "ngx-material-entity",
"version": "0.0.0",
"dependencies": {
- "@angular/animations": "~20.2.1",
+ "@angular/animations": "^20.3.16",
"@angular/cdk": "^20.2.0",
- "@angular/common": "~20.2.1",
- "@angular/compiler": "~20.2.1",
- "@angular/core": "~20.2.1",
- "@angular/forms": "~20.2.1",
+ "@angular/common": "^20.3.16",
+ "@angular/compiler": "~20.3.16",
+ "@angular/core": "~20.3.16",
+ "@angular/forms": "^20.3.16",
"@angular/material": "^20.2.0",
- "@angular/platform-browser": "~20.2.1",
- "@angular/platform-browser-dynamic": "~20.2.1",
- "@angular/router": "~20.2.1",
+ "@angular/platform-browser": "^20.3.16",
+ "@angular/platform-browser-dynamic": "^20.3.16",
+ "@angular/router": "^20.3.16",
"js2xmlparser": "^5.0.0",
"jszip": "^3.10.1",
"lodash": "^4.17.21",
@@ -27,8 +27,8 @@
},
"devDependencies": {
"@angular-devkit/build-angular": "^20.2.0",
- "@angular/cli": "~20.2.0",
- "@angular/compiler-cli": "~20.2.1",
+ "@angular/cli": "^20.3.15",
+ "@angular/compiler-cli": "^20.3.16",
"@angular/material-moment-adapter": "^20.2.0",
"@fortawesome/angular-fontawesome": "^3.0.0",
"@fortawesome/free-brands-svg-icons": "^7.0.0",
@@ -42,7 +42,7 @@
"autoprefixer": "^10.4.21",
"concurrently": "^9.2.0",
"cypress": "^15.0.0",
- "eslint-config-service-soft": "^2.0.8",
+ "eslint-config-service-soft": "^2.1.2",
"jest": "^29.5.0",
"jest-preset-angular": "^14.0.0",
"json-server": "^0.17.4",
@@ -445,7 +445,237 @@
}
}
},
- "node_modules/@angular-devkit/build-angular/node_modules/@angular/build": {
+ "node_modules/@angular-devkit/build-webpack": {
+ "version": "0.2003.14",
+ "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.2003.14.tgz",
+ "integrity": "sha512-kE5bCHnmkWRhCxTlZj1E75UECArc1tq3RC1LMMeJL0Wj6tFO5Y33u16zucXbGqYHZETuz4svR0/u800bjMaQyg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@angular-devkit/architect": "0.2003.14",
+ "rxjs": "7.8.2"
+ },
+ "engines": {
+ "node": "^20.19.0 || ^22.12.0 || >=24.0.0",
+ "npm": "^6.11.0 || ^7.5.6 || >=8.0.0",
+ "yarn": ">= 1.13.0"
+ },
+ "peerDependencies": {
+ "webpack": "^5.30.0",
+ "webpack-dev-server": "^5.0.2"
+ }
+ },
+ "node_modules/@angular-devkit/core": {
+ "version": "20.3.14",
+ "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-20.3.14.tgz",
+ "integrity": "sha512-hWQVi73aGdIRInJqNia79Yi6SzqEThkfLug3AdZiNuNvYMaxAI347yPQz4f3Dr/i0QuiqRq/T8zfqbr46tfCqg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ajv": "8.17.1",
+ "ajv-formats": "3.0.1",
+ "jsonc-parser": "3.3.1",
+ "picomatch": "4.0.3",
+ "rxjs": "7.8.2",
+ "source-map": "0.7.6"
+ },
+ "engines": {
+ "node": "^20.19.0 || ^22.12.0 || >=24.0.0",
+ "npm": "^6.11.0 || ^7.5.6 || >=8.0.0",
+ "yarn": ">= 1.13.0"
+ },
+ "peerDependencies": {
+ "chokidar": "^4.0.0"
+ },
+ "peerDependenciesMeta": {
+ "chokidar": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@angular-devkit/schematics": {
+ "version": "20.3.15",
+ "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-20.3.15.tgz",
+ "integrity": "sha512-xMN1fyuhhP8Y5sNlmQvl4nMiOouHTKPkLR0zlhu5z6fHuwxxlverh31Gpq3eFzPHqmOzzb2TkgYCptCFXsXcrg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@angular-devkit/core": "20.3.15",
+ "jsonc-parser": "3.3.1",
+ "magic-string": "0.30.17",
+ "ora": "8.2.0",
+ "rxjs": "7.8.2"
+ },
+ "engines": {
+ "node": "^20.19.0 || ^22.12.0 || >=24.0.0",
+ "npm": "^6.11.0 || ^7.5.6 || >=8.0.0",
+ "yarn": ">= 1.13.0"
+ }
+ },
+ "node_modules/@angular-devkit/schematics/node_modules/@angular-devkit/core": {
+ "version": "20.3.15",
+ "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-20.3.15.tgz",
+ "integrity": "sha512-s7sE4S5Hy62dLrtHwizbZaMcupAE8fPhm6rF+jBkhHZ75zXGhGzXP8WKFztYCAuGnis4pPnGSEKP/xVTc2lw6Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ajv": "8.17.1",
+ "ajv-formats": "3.0.1",
+ "jsonc-parser": "3.3.1",
+ "picomatch": "4.0.3",
+ "rxjs": "7.8.2",
+ "source-map": "0.7.6"
+ },
+ "engines": {
+ "node": "^20.19.0 || ^22.12.0 || >=24.0.0",
+ "npm": "^6.11.0 || ^7.5.6 || >=8.0.0",
+ "yarn": ">= 1.13.0"
+ },
+ "peerDependencies": {
+ "chokidar": "^4.0.0"
+ },
+ "peerDependenciesMeta": {
+ "chokidar": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@angular-eslint/builder": {
+ "version": "20.5.1",
+ "resolved": "https://registry.npmjs.org/@angular-eslint/builder/-/builder-20.5.1.tgz",
+ "integrity": "sha512-jUnqrMbMQ/UR8xPncg3NW3I18dlnV68V0HHozZgX3rjHuDOa7Yq4jwjFaaxfaId5KsNDoEGtjZCAz1lgw/+4Gw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@angular-devkit/architect": ">= 0.2000.0 < 0.2100.0",
+ "@angular-devkit/core": ">= 20.0.0 < 21.0.0"
+ },
+ "peerDependencies": {
+ "eslint": "^8.57.0 || ^9.0.0",
+ "typescript": "*"
+ }
+ },
+ "node_modules/@angular-eslint/bundled-angular-compiler": {
+ "version": "20.5.1",
+ "resolved": "https://registry.npmjs.org/@angular-eslint/bundled-angular-compiler/-/bundled-angular-compiler-20.5.1.tgz",
+ "integrity": "sha512-0VroIEZzTBFB9B7Ws6xU5X3X9RoOSBVUcFbMs+UqfNoxHdZd5ToU5nwbImQg3hyFF0zdAjffoW3wW00qiC3L+g==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@angular-eslint/eslint-plugin": {
+ "version": "20.5.1",
+ "resolved": "https://registry.npmjs.org/@angular-eslint/eslint-plugin/-/eslint-plugin-20.5.1.tgz",
+ "integrity": "sha512-We7vkqRypa4+TPFMy1VSJkNSTIezRYbDS3YuzycNT5G6fhY3nn4WMa3ejsID/llcvptWyTKSZXZ/rJ+Zvo8xuQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@angular-eslint/bundled-angular-compiler": "20.5.1",
+ "@angular-eslint/utils": "20.5.1",
+ "ts-api-utils": "^2.1.0"
+ },
+ "peerDependencies": {
+ "@typescript-eslint/utils": "^7.11.0 || ^8.0.0",
+ "eslint": "^8.57.0 || ^9.0.0",
+ "typescript": "*"
+ }
+ },
+ "node_modules/@angular-eslint/eslint-plugin-template": {
+ "version": "20.5.1",
+ "resolved": "https://registry.npmjs.org/@angular-eslint/eslint-plugin-template/-/eslint-plugin-template-20.5.1.tgz",
+ "integrity": "sha512-J3efFHXACo84vT80p4Jq/rKeI1NwWru7qe9U6hCZetKbXz0dGgcGgh4gN8lWGtCqw1Gsi+xzpEGiHS1BWDDvmA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@angular-eslint/bundled-angular-compiler": "20.5.1",
+ "@angular-eslint/utils": "20.5.1",
+ "aria-query": "5.3.2",
+ "axobject-query": "4.1.0"
+ },
+ "peerDependencies": {
+ "@angular-eslint/template-parser": "20.5.1",
+ "@typescript-eslint/types": "^7.11.0 || ^8.0.0",
+ "@typescript-eslint/utils": "^7.11.0 || ^8.0.0",
+ "eslint": "^8.57.0 || ^9.0.0",
+ "typescript": "*"
+ }
+ },
+ "node_modules/@angular-eslint/schematics": {
+ "version": "20.5.1",
+ "resolved": "https://registry.npmjs.org/@angular-eslint/schematics/-/schematics-20.5.1.tgz",
+ "integrity": "sha512-pPVbgiCCRDRKC2E3AeS0H3gC++azLarpYVTbOJS7vIGpmYqy++rKy5egXoECjHWQza/sXHJjUuHRpGhh/FN0og==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@angular-devkit/core": ">= 20.0.0 < 21.0.0",
+ "@angular-devkit/schematics": ">= 20.0.0 < 21.0.0",
+ "@angular-eslint/eslint-plugin": "20.5.1",
+ "@angular-eslint/eslint-plugin-template": "20.5.1",
+ "ignore": "7.0.5",
+ "semver": "7.7.3",
+ "strip-json-comments": "3.1.1"
+ }
+ },
+ "node_modules/@angular-eslint/schematics/node_modules/semver": {
+ "version": "7.7.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz",
+ "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==",
+ "dev": true,
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@angular-eslint/template-parser": {
+ "version": "20.5.1",
+ "resolved": "https://registry.npmjs.org/@angular-eslint/template-parser/-/template-parser-20.5.1.tgz",
+ "integrity": "sha512-XIXf5zt7AurD1kjSAoMadLLB7VGuwg4+ln4JHfPN9MYwcIqJGZMt0brBkkFV7ed2M4167uT03yyfyTK8Ijl6qA==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "@angular-eslint/bundled-angular-compiler": "20.5.1",
+ "eslint-scope": "^8.0.2"
+ },
+ "peerDependencies": {
+ "eslint": "^8.57.0 || ^9.0.0",
+ "typescript": "*"
+ }
+ },
+ "node_modules/@angular-eslint/utils": {
+ "version": "20.5.1",
+ "resolved": "https://registry.npmjs.org/@angular-eslint/utils/-/utils-20.5.1.tgz",
+ "integrity": "sha512-6Zf9EBzW8eBTDxqgzBqKD4a9IH0uAVZFX9zgASipk8m5sO6YkjaS+auplmEac3ESzVCh9AzwNDFD68JAE0ugLQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@angular-eslint/bundled-angular-compiler": "20.5.1"
+ },
+ "peerDependencies": {
+ "@typescript-eslint/utils": "^7.11.0 || ^8.0.0",
+ "eslint": "^8.57.0 || ^9.0.0",
+ "typescript": "*"
+ }
+ },
+ "node_modules/@angular/animations": {
+ "version": "20.3.16",
+ "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-20.3.16.tgz",
+ "integrity": "sha512-N83/GFY5lKNyWgPV3xHHy2rb3/eP1ZLzSVI+dmMVbf3jbqwY1YPQcMiAG8UDzaILY1Dkus91kWLF8Qdr3nHAzg==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "tslib": "^2.3.0"
+ },
+ "engines": {
+ "node": "^20.19.0 || ^22.12.0 || >=24.0.0"
+ },
+ "peerDependencies": {
+ "@angular/core": "20.3.16"
+ }
+ },
+ "node_modules/@angular/build": {
"version": "20.3.14",
"resolved": "https://registry.npmjs.org/@angular/build/-/build-20.3.14.tgz",
"integrity": "sha512-ajFJqTqyI2N9PYcWVxUfb6YEUQsZ13jsBzI/kDpeEZZCGadLJGSMZVNwkX7n9Csw7gzertpenGBXsSTxUjd8TA==",
@@ -521,152 +751,30 @@
"@angular/service-worker": {
"optional": true
},
- "@angular/ssr": {
- "optional": true
- },
- "karma": {
- "optional": true
- },
- "less": {
- "optional": true
- },
- "ng-packagr": {
- "optional": true
- },
- "postcss": {
- "optional": true
- },
- "tailwindcss": {
- "optional": true
- },
- "vitest": {
- "optional": true
- }
- }
- },
- "node_modules/@angular-devkit/build-angular/node_modules/@angular/build/node_modules/@vitejs/plugin-basic-ssl": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/@vitejs/plugin-basic-ssl/-/plugin-basic-ssl-2.1.0.tgz",
- "integrity": "sha512-dOxxrhgyDIEUADhb/8OlV9JIqYLgos03YorAueTIeOUskLJSEsfwCByjbu98ctXitUN3znXKp0bYD/WHSudCeA==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": "^18.0.0 || ^20.0.0 || >=22.0.0"
- },
- "peerDependencies": {
- "vite": "^6.0.0 || ^7.0.0"
- }
- },
- "node_modules/@angular-devkit/build-angular/node_modules/@angular/build/node_modules/tinyglobby": {
- "version": "0.2.14",
- "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.14.tgz",
- "integrity": "sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "fdir": "^6.4.4",
- "picomatch": "^4.0.2"
- },
- "engines": {
- "node": ">=12.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/SuperchupuDev"
- }
- },
- "node_modules/@angular-devkit/build-angular/node_modules/@angular/build/node_modules/vite": {
- "version": "7.1.11",
- "resolved": "https://registry.npmjs.org/vite/-/vite-7.1.11.tgz",
- "integrity": "sha512-uzcxnSDVjAopEUjljkWh8EIrg6tlzrjFUfMcR1EVsRDGwf/ccef0qQPRyOrROwhrTDaApueq+ja+KLPlzR/zdg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "esbuild": "^0.25.0",
- "fdir": "^6.5.0",
- "picomatch": "^4.0.3",
- "postcss": "^8.5.6",
- "rollup": "^4.43.0",
- "tinyglobby": "^0.2.15"
- },
- "bin": {
- "vite": "bin/vite.js"
- },
- "engines": {
- "node": "^20.19.0 || >=22.12.0"
- },
- "funding": {
- "url": "https://github.com/vitejs/vite?sponsor=1"
- },
- "optionalDependencies": {
- "fsevents": "~2.3.3"
- },
- "peerDependencies": {
- "@types/node": "^20.19.0 || >=22.12.0",
- "jiti": ">=1.21.0",
- "less": "^4.0.0",
- "lightningcss": "^1.21.0",
- "sass": "^1.70.0",
- "sass-embedded": "^1.70.0",
- "stylus": ">=0.54.8",
- "sugarss": "^5.0.0",
- "terser": "^5.16.0",
- "tsx": "^4.8.1",
- "yaml": "^2.4.2"
- },
- "peerDependenciesMeta": {
- "@types/node": {
- "optional": true
- },
- "jiti": {
- "optional": true
- },
- "less": {
- "optional": true
- },
- "lightningcss": {
- "optional": true
- },
- "sass": {
+ "@angular/ssr": {
"optional": true
},
- "sass-embedded": {
+ "karma": {
"optional": true
},
- "stylus": {
+ "less": {
"optional": true
},
- "sugarss": {
+ "ng-packagr": {
"optional": true
},
- "terser": {
+ "postcss": {
"optional": true
},
- "tsx": {
+ "tailwindcss": {
"optional": true
},
- "yaml": {
+ "vitest": {
"optional": true
}
}
},
- "node_modules/@angular-devkit/build-angular/node_modules/@angular/build/node_modules/vite/node_modules/tinyglobby": {
- "version": "0.2.15",
- "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz",
- "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "fdir": "^6.5.0",
- "picomatch": "^4.0.3"
- },
- "engines": {
- "node": ">=12.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/SuperchupuDev"
- }
- },
- "node_modules/@angular-devkit/build-angular/node_modules/@inquirer/confirm": {
+ "node_modules/@angular/build/node_modules/@inquirer/confirm": {
"version": "5.1.14",
"resolved": "https://registry.npmjs.org/@inquirer/confirm/-/confirm-5.1.14.tgz",
"integrity": "sha512-5yR4IBfe0kXe59r1YCTG8WXkUbl7Z35HK87Sw+WUyGD8wNUx7JvY7laahzeytyE1oLn74bQnL7hstctQxisQ8Q==",
@@ -688,7 +796,7 @@
}
}
},
- "node_modules/@angular-devkit/build-angular/node_modules/@rollup/rollup-android-arm-eabi": {
+ "node_modules/@angular/build/node_modules/@rollup/rollup-android-arm-eabi": {
"version": "4.52.3",
"resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.52.3.tgz",
"integrity": "sha512-h6cqHGZ6VdnwliFG1NXvMPTy/9PS3h8oLh7ImwR+kl+oYnQizgjxsONmmPSb2C66RksfkfIxEVtDSEcJiO0tqw==",
@@ -702,7 +810,7 @@
"android"
]
},
- "node_modules/@angular-devkit/build-angular/node_modules/@rollup/rollup-android-arm64": {
+ "node_modules/@angular/build/node_modules/@rollup/rollup-android-arm64": {
"version": "4.52.3",
"resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.52.3.tgz",
"integrity": "sha512-wd+u7SLT/u6knklV/ifG7gr5Qy4GUbH2hMWcDauPFJzmCZUAJ8L2bTkVXC2niOIxp8lk3iH/QX8kSrUxVZrOVw==",
@@ -716,7 +824,7 @@
"android"
]
},
- "node_modules/@angular-devkit/build-angular/node_modules/@rollup/rollup-darwin-arm64": {
+ "node_modules/@angular/build/node_modules/@rollup/rollup-darwin-arm64": {
"version": "4.52.3",
"resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.52.3.tgz",
"integrity": "sha512-lj9ViATR1SsqycwFkJCtYfQTheBdvlWJqzqxwc9f2qrcVrQaF/gCuBRTiTolkRWS6KvNxSk4KHZWG7tDktLgjg==",
@@ -730,7 +838,7 @@
"darwin"
]
},
- "node_modules/@angular-devkit/build-angular/node_modules/@rollup/rollup-darwin-x64": {
+ "node_modules/@angular/build/node_modules/@rollup/rollup-darwin-x64": {
"version": "4.52.3",
"resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.52.3.tgz",
"integrity": "sha512-+Dyo7O1KUmIsbzx1l+4V4tvEVnVQqMOIYtrxK7ncLSknl1xnMHLgn7gddJVrYPNZfEB8CIi3hK8gq8bDhb3h5A==",
@@ -744,7 +852,7 @@
"darwin"
]
},
- "node_modules/@angular-devkit/build-angular/node_modules/@rollup/rollup-freebsd-arm64": {
+ "node_modules/@angular/build/node_modules/@rollup/rollup-freebsd-arm64": {
"version": "4.52.3",
"resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.52.3.tgz",
"integrity": "sha512-u9Xg2FavYbD30g3DSfNhxgNrxhi6xVG4Y6i9Ur1C7xUuGDW3banRbXj+qgnIrwRN4KeJ396jchwy9bCIzbyBEQ==",
@@ -758,7 +866,7 @@
"freebsd"
]
},
- "node_modules/@angular-devkit/build-angular/node_modules/@rollup/rollup-freebsd-x64": {
+ "node_modules/@angular/build/node_modules/@rollup/rollup-freebsd-x64": {
"version": "4.52.3",
"resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.52.3.tgz",
"integrity": "sha512-5M8kyi/OX96wtD5qJR89a/3x5x8x5inXBZO04JWhkQb2JWavOWfjgkdvUqibGJeNNaz1/Z1PPza5/tAPXICI6A==",
@@ -772,7 +880,7 @@
"freebsd"
]
},
- "node_modules/@angular-devkit/build-angular/node_modules/@rollup/rollup-linux-arm-gnueabihf": {
+ "node_modules/@angular/build/node_modules/@rollup/rollup-linux-arm-gnueabihf": {
"version": "4.52.3",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.52.3.tgz",
"integrity": "sha512-IoerZJ4l1wRMopEHRKOO16e04iXRDyZFZnNZKrWeNquh5d6bucjezgd+OxG03mOMTnS1x7hilzb3uURPkJ0OfA==",
@@ -786,7 +894,7 @@
"linux"
]
},
- "node_modules/@angular-devkit/build-angular/node_modules/@rollup/rollup-linux-arm-musleabihf": {
+ "node_modules/@angular/build/node_modules/@rollup/rollup-linux-arm-musleabihf": {
"version": "4.52.3",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.52.3.tgz",
"integrity": "sha512-ZYdtqgHTDfvrJHSh3W22TvjWxwOgc3ThK/XjgcNGP2DIwFIPeAPNsQxrJO5XqleSlgDux2VAoWQ5iJrtaC1TbA==",
@@ -800,7 +908,7 @@
"linux"
]
},
- "node_modules/@angular-devkit/build-angular/node_modules/@rollup/rollup-linux-arm64-gnu": {
+ "node_modules/@angular/build/node_modules/@rollup/rollup-linux-arm64-gnu": {
"version": "4.52.3",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.52.3.tgz",
"integrity": "sha512-NcViG7A0YtuFDA6xWSgmFb6iPFzHlf5vcqb2p0lGEbT+gjrEEz8nC/EeDHvx6mnGXnGCC1SeVV+8u+smj0CeGQ==",
@@ -814,7 +922,7 @@
"linux"
]
},
- "node_modules/@angular-devkit/build-angular/node_modules/@rollup/rollup-linux-arm64-musl": {
+ "node_modules/@angular/build/node_modules/@rollup/rollup-linux-arm64-musl": {
"version": "4.52.3",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.52.3.tgz",
"integrity": "sha512-d3pY7LWno6SYNXRm6Ebsq0DJGoiLXTb83AIPCXl9fmtIQs/rXoS8SJxxUNtFbJ5MiOvs+7y34np77+9l4nfFMw==",
@@ -828,7 +936,7 @@
"linux"
]
},
- "node_modules/@angular-devkit/build-angular/node_modules/@rollup/rollup-linux-loong64-gnu": {
+ "node_modules/@angular/build/node_modules/@rollup/rollup-linux-loong64-gnu": {
"version": "4.52.3",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.52.3.tgz",
"integrity": "sha512-3y5GA0JkBuirLqmjwAKwB0keDlI6JfGYduMlJD/Rl7fvb4Ni8iKdQs1eiunMZJhwDWdCvrcqXRY++VEBbvk6Eg==",
@@ -842,7 +950,7 @@
"linux"
]
},
- "node_modules/@angular-devkit/build-angular/node_modules/@rollup/rollup-linux-ppc64-gnu": {
+ "node_modules/@angular/build/node_modules/@rollup/rollup-linux-ppc64-gnu": {
"version": "4.52.3",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.52.3.tgz",
"integrity": "sha512-AUUH65a0p3Q0Yfm5oD2KVgzTKgwPyp9DSXc3UA7DtxhEb/WSPfbG4wqXeSN62OG5gSo18em4xv6dbfcUGXcagw==",
@@ -856,7 +964,7 @@
"linux"
]
},
- "node_modules/@angular-devkit/build-angular/node_modules/@rollup/rollup-linux-riscv64-gnu": {
+ "node_modules/@angular/build/node_modules/@rollup/rollup-linux-riscv64-gnu": {
"version": "4.52.3",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.52.3.tgz",
"integrity": "sha512-1makPhFFVBqZE+XFg3Dkq+IkQ7JvmUrwwqaYBL2CE+ZpxPaqkGaiWFEWVGyvTwZace6WLJHwjVh/+CXbKDGPmg==",
@@ -870,7 +978,7 @@
"linux"
]
},
- "node_modules/@angular-devkit/build-angular/node_modules/@rollup/rollup-linux-riscv64-musl": {
+ "node_modules/@angular/build/node_modules/@rollup/rollup-linux-riscv64-musl": {
"version": "4.52.3",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.52.3.tgz",
"integrity": "sha512-OOFJa28dxfl8kLOPMUOQBCO6z3X2SAfzIE276fwT52uXDWUS178KWq0pL7d6p1kz7pkzA0yQwtqL0dEPoVcRWg==",
@@ -884,7 +992,7 @@
"linux"
]
},
- "node_modules/@angular-devkit/build-angular/node_modules/@rollup/rollup-linux-s390x-gnu": {
+ "node_modules/@angular/build/node_modules/@rollup/rollup-linux-s390x-gnu": {
"version": "4.52.3",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.52.3.tgz",
"integrity": "sha512-jMdsML2VI5l+V7cKfZx3ak+SLlJ8fKvLJ0Eoa4b9/vCUrzXKgoKxvHqvJ/mkWhFiyp88nCkM5S2v6nIwRtPcgg==",
@@ -898,7 +1006,7 @@
"linux"
]
},
- "node_modules/@angular-devkit/build-angular/node_modules/@rollup/rollup-linux-x64-gnu": {
+ "node_modules/@angular/build/node_modules/@rollup/rollup-linux-x64-gnu": {
"version": "4.52.3",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.52.3.tgz",
"integrity": "sha512-tPgGd6bY2M2LJTA1uGq8fkSPK8ZLYjDjY+ZLK9WHncCnfIz29LIXIqUgzCR0hIefzy6Hpbe8Th5WOSwTM8E7LA==",
@@ -912,7 +1020,7 @@
"linux"
]
},
- "node_modules/@angular-devkit/build-angular/node_modules/@rollup/rollup-linux-x64-musl": {
+ "node_modules/@angular/build/node_modules/@rollup/rollup-linux-x64-musl": {
"version": "4.52.3",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.52.3.tgz",
"integrity": "sha512-BCFkJjgk+WFzP+tcSMXq77ymAPIxsX9lFJWs+2JzuZTLtksJ2o5hvgTdIcZ5+oKzUDMwI0PfWzRBYAydAHF2Mw==",
@@ -926,7 +1034,7 @@
"linux"
]
},
- "node_modules/@angular-devkit/build-angular/node_modules/@rollup/rollup-openharmony-arm64": {
+ "node_modules/@angular/build/node_modules/@rollup/rollup-openharmony-arm64": {
"version": "4.52.3",
"resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.52.3.tgz",
"integrity": "sha512-KTD/EqjZF3yvRaWUJdD1cW+IQBk4fbQaHYJUmP8N4XoKFZilVL8cobFSTDnjTtxWJQ3JYaMgF4nObY/+nYkumA==",
@@ -940,7 +1048,7 @@
"openharmony"
]
},
- "node_modules/@angular-devkit/build-angular/node_modules/@rollup/rollup-win32-arm64-msvc": {
+ "node_modules/@angular/build/node_modules/@rollup/rollup-win32-arm64-msvc": {
"version": "4.52.3",
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.52.3.tgz",
"integrity": "sha512-+zteHZdoUYLkyYKObGHieibUFLbttX2r+58l27XZauq0tcWYYuKUwY2wjeCN9oK1Um2YgH2ibd6cnX/wFD7DuA==",
@@ -954,7 +1062,7 @@
"win32"
]
},
- "node_modules/@angular-devkit/build-angular/node_modules/@rollup/rollup-win32-ia32-msvc": {
+ "node_modules/@angular/build/node_modules/@rollup/rollup-win32-ia32-msvc": {
"version": "4.52.3",
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.52.3.tgz",
"integrity": "sha512-of1iHkTQSo3kr6dTIRX6t81uj/c/b15HXVsPcEElN5sS859qHrOepM5p9G41Hah+CTqSh2r8Bm56dL2z9UQQ7g==",
@@ -968,7 +1076,7 @@
"win32"
]
},
- "node_modules/@angular-devkit/build-angular/node_modules/@rollup/rollup-win32-x64-gnu": {
+ "node_modules/@angular/build/node_modules/@rollup/rollup-win32-x64-gnu": {
"version": "4.52.3",
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.52.3.tgz",
"integrity": "sha512-s0hybmlHb56mWVZQj8ra9048/WZTPLILKxcvcq+8awSZmyiSUZjjem1AhU3Tf4ZKpYhK4mg36HtHDOe8QJS5PQ==",
@@ -982,312 +1090,101 @@
"win32"
]
},
- "node_modules/@angular-devkit/build-angular/node_modules/@rollup/rollup-win32-x64-msvc": {
- "version": "4.52.3",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.52.3.tgz",
- "integrity": "sha512-zGIbEVVXVtauFgl3MRwGWEN36P5ZGenHRMgNw88X5wEhEBpq0XrMEZwOn07+ICrwM17XO5xfMZqh0OldCH5VTA==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ]
- },
- "node_modules/@angular-devkit/build-angular/node_modules/agent-base": {
- "version": "7.1.4",
- "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz",
- "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 14"
- }
- },
- "node_modules/@angular-devkit/build-angular/node_modules/https-proxy-agent": {
- "version": "7.0.6",
- "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz",
- "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "agent-base": "^7.1.2",
- "debug": "4"
- },
- "engines": {
- "node": ">= 14"
- }
- },
- "node_modules/@angular-devkit/build-angular/node_modules/rollup": {
+ "node_modules/@angular/build/node_modules/@rollup/rollup-win32-x64-msvc": {
"version": "4.52.3",
- "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.52.3.tgz",
- "integrity": "sha512-RIDh866U8agLgiIcdpB+COKnlCreHJLfIhWC3LVflku5YHfpnsIKigRZeFfMfCc4dVcqNVfQQ5gO/afOck064A==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@types/estree": "1.0.8"
- },
- "bin": {
- "rollup": "dist/bin/rollup"
- },
- "engines": {
- "node": ">=18.0.0",
- "npm": ">=8.0.0"
- },
- "optionalDependencies": {
- "@rollup/rollup-android-arm-eabi": "4.52.3",
- "@rollup/rollup-android-arm64": "4.52.3",
- "@rollup/rollup-darwin-arm64": "4.52.3",
- "@rollup/rollup-darwin-x64": "4.52.3",
- "@rollup/rollup-freebsd-arm64": "4.52.3",
- "@rollup/rollup-freebsd-x64": "4.52.3",
- "@rollup/rollup-linux-arm-gnueabihf": "4.52.3",
- "@rollup/rollup-linux-arm-musleabihf": "4.52.3",
- "@rollup/rollup-linux-arm64-gnu": "4.52.3",
- "@rollup/rollup-linux-arm64-musl": "4.52.3",
- "@rollup/rollup-linux-loong64-gnu": "4.52.3",
- "@rollup/rollup-linux-ppc64-gnu": "4.52.3",
- "@rollup/rollup-linux-riscv64-gnu": "4.52.3",
- "@rollup/rollup-linux-riscv64-musl": "4.52.3",
- "@rollup/rollup-linux-s390x-gnu": "4.52.3",
- "@rollup/rollup-linux-x64-gnu": "4.52.3",
- "@rollup/rollup-linux-x64-musl": "4.52.3",
- "@rollup/rollup-openharmony-arm64": "4.52.3",
- "@rollup/rollup-win32-arm64-msvc": "4.52.3",
- "@rollup/rollup-win32-ia32-msvc": "4.52.3",
- "@rollup/rollup-win32-x64-gnu": "4.52.3",
- "@rollup/rollup-win32-x64-msvc": "4.52.3",
- "fsevents": "~2.3.2"
- }
- },
- "node_modules/@angular-devkit/build-webpack": {
- "version": "0.2003.14",
- "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.2003.14.tgz",
- "integrity": "sha512-kE5bCHnmkWRhCxTlZj1E75UECArc1tq3RC1LMMeJL0Wj6tFO5Y33u16zucXbGqYHZETuz4svR0/u800bjMaQyg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@angular-devkit/architect": "0.2003.14",
- "rxjs": "7.8.2"
- },
- "engines": {
- "node": "^20.19.0 || ^22.12.0 || >=24.0.0",
- "npm": "^6.11.0 || ^7.5.6 || >=8.0.0",
- "yarn": ">= 1.13.0"
- },
- "peerDependencies": {
- "webpack": "^5.30.0",
- "webpack-dev-server": "^5.0.2"
- }
- },
- "node_modules/@angular-devkit/core": {
- "version": "20.3.14",
- "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-20.3.14.tgz",
- "integrity": "sha512-hWQVi73aGdIRInJqNia79Yi6SzqEThkfLug3AdZiNuNvYMaxAI347yPQz4f3Dr/i0QuiqRq/T8zfqbr46tfCqg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ajv": "8.17.1",
- "ajv-formats": "3.0.1",
- "jsonc-parser": "3.3.1",
- "picomatch": "4.0.3",
- "rxjs": "7.8.2",
- "source-map": "0.7.6"
- },
- "engines": {
- "node": "^20.19.0 || ^22.12.0 || >=24.0.0",
- "npm": "^6.11.0 || ^7.5.6 || >=8.0.0",
- "yarn": ">= 1.13.0"
- },
- "peerDependencies": {
- "chokidar": "^4.0.0"
- },
- "peerDependenciesMeta": {
- "chokidar": {
- "optional": true
- }
- }
- },
- "node_modules/@angular-devkit/schematics": {
- "version": "20.2.2",
- "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-20.2.2.tgz",
- "integrity": "sha512-rtL7slZjzdChQoiADKZv/Ra8D3C3tIw/WcVxd2stiLHdK/Oaf9ejx5m/X9o0QMEbNsy2Fy/RKodNqmz1CjzpCg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@angular-devkit/core": "20.2.2",
- "jsonc-parser": "3.3.1",
- "magic-string": "0.30.17",
- "ora": "8.2.0",
- "rxjs": "7.8.2"
- },
- "engines": {
- "node": "^20.19.0 || ^22.12.0 || >=24.0.0",
- "npm": "^6.11.0 || ^7.5.6 || >=8.0.0",
- "yarn": ">= 1.13.0"
- }
- },
- "node_modules/@angular-devkit/schematics/node_modules/@angular-devkit/core": {
- "version": "20.2.2",
- "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-20.2.2.tgz",
- "integrity": "sha512-SC+f5isSWJBpEgR+R7jP++2Z14WExNWLAdKpIickLWjuL8FlGkj+kaF3dWXhh0KcXo+r6kKb4pWUptSaqer5gA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ajv": "8.17.1",
- "ajv-formats": "3.0.1",
- "jsonc-parser": "3.3.1",
- "picomatch": "4.0.3",
- "rxjs": "7.8.2",
- "source-map": "0.7.6"
- },
- "engines": {
- "node": "^20.19.0 || ^22.12.0 || >=24.0.0",
- "npm": "^6.11.0 || ^7.5.6 || >=8.0.0",
- "yarn": ">= 1.13.0"
- },
- "peerDependencies": {
- "chokidar": "^4.0.0"
- },
- "peerDependenciesMeta": {
- "chokidar": {
- "optional": true
- }
- }
- },
- "node_modules/@angular-eslint/builder": {
- "version": "20.5.1",
- "resolved": "https://registry.npmjs.org/@angular-eslint/builder/-/builder-20.5.1.tgz",
- "integrity": "sha512-jUnqrMbMQ/UR8xPncg3NW3I18dlnV68V0HHozZgX3rjHuDOa7Yq4jwjFaaxfaId5KsNDoEGtjZCAz1lgw/+4Gw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@angular-devkit/architect": ">= 0.2000.0 < 0.2100.0",
- "@angular-devkit/core": ">= 20.0.0 < 21.0.0"
- },
- "peerDependencies": {
- "eslint": "^8.57.0 || ^9.0.0",
- "typescript": "*"
- }
- },
- "node_modules/@angular-eslint/bundled-angular-compiler": {
- "version": "20.5.1",
- "resolved": "https://registry.npmjs.org/@angular-eslint/bundled-angular-compiler/-/bundled-angular-compiler-20.5.1.tgz",
- "integrity": "sha512-0VroIEZzTBFB9B7Ws6xU5X3X9RoOSBVUcFbMs+UqfNoxHdZd5ToU5nwbImQg3hyFF0zdAjffoW3wW00qiC3L+g==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@angular-eslint/eslint-plugin": {
- "version": "20.5.1",
- "resolved": "https://registry.npmjs.org/@angular-eslint/eslint-plugin/-/eslint-plugin-20.5.1.tgz",
- "integrity": "sha512-We7vkqRypa4+TPFMy1VSJkNSTIezRYbDS3YuzycNT5G6fhY3nn4WMa3ejsID/llcvptWyTKSZXZ/rJ+Zvo8xuQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@angular-eslint/bundled-angular-compiler": "20.5.1",
- "@angular-eslint/utils": "20.5.1",
- "ts-api-utils": "^2.1.0"
- },
- "peerDependencies": {
- "@typescript-eslint/utils": "^7.11.0 || ^8.0.0",
- "eslint": "^8.57.0 || ^9.0.0",
- "typescript": "*"
- }
- },
- "node_modules/@angular-eslint/eslint-plugin-template": {
- "version": "20.5.1",
- "resolved": "https://registry.npmjs.org/@angular-eslint/eslint-plugin-template/-/eslint-plugin-template-20.5.1.tgz",
- "integrity": "sha512-J3efFHXACo84vT80p4Jq/rKeI1NwWru7qe9U6hCZetKbXz0dGgcGgh4gN8lWGtCqw1Gsi+xzpEGiHS1BWDDvmA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@angular-eslint/bundled-angular-compiler": "20.5.1",
- "@angular-eslint/utils": "20.5.1",
- "aria-query": "5.3.2",
- "axobject-query": "4.1.0"
- },
- "peerDependencies": {
- "@angular-eslint/template-parser": "20.5.1",
- "@typescript-eslint/types": "^7.11.0 || ^8.0.0",
- "@typescript-eslint/utils": "^7.11.0 || ^8.0.0",
- "eslint": "^8.57.0 || ^9.0.0",
- "typescript": "*"
- }
- },
- "node_modules/@angular-eslint/schematics": {
- "version": "20.5.1",
- "resolved": "https://registry.npmjs.org/@angular-eslint/schematics/-/schematics-20.5.1.tgz",
- "integrity": "sha512-pPVbgiCCRDRKC2E3AeS0H3gC++azLarpYVTbOJS7vIGpmYqy++rKy5egXoECjHWQza/sXHJjUuHRpGhh/FN0og==",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.52.3.tgz",
+ "integrity": "sha512-zGIbEVVXVtauFgl3MRwGWEN36P5ZGenHRMgNw88X5wEhEBpq0XrMEZwOn07+ICrwM17XO5xfMZqh0OldCH5VTA==",
+ "cpu": [
+ "x64"
+ ],
"dev": true,
"license": "MIT",
- "dependencies": {
- "@angular-devkit/core": ">= 20.0.0 < 21.0.0",
- "@angular-devkit/schematics": ">= 20.0.0 < 21.0.0",
- "@angular-eslint/eslint-plugin": "20.5.1",
- "@angular-eslint/eslint-plugin-template": "20.5.1",
- "ignore": "7.0.5",
- "semver": "7.7.3",
- "strip-json-comments": "3.1.1"
- }
+ "optional": true,
+ "os": [
+ "win32"
+ ]
},
- "node_modules/@angular-eslint/schematics/node_modules/semver": {
- "version": "7.7.3",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz",
- "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==",
+ "node_modules/@angular/build/node_modules/agent-base": {
+ "version": "7.1.4",
+ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz",
+ "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==",
"dev": true,
- "license": "ISC",
- "bin": {
- "semver": "bin/semver.js"
- },
+ "license": "MIT",
"engines": {
- "node": ">=10"
+ "node": ">= 14"
}
},
- "node_modules/@angular-eslint/template-parser": {
- "version": "20.5.1",
- "resolved": "https://registry.npmjs.org/@angular-eslint/template-parser/-/template-parser-20.5.1.tgz",
- "integrity": "sha512-XIXf5zt7AurD1kjSAoMadLLB7VGuwg4+ln4JHfPN9MYwcIqJGZMt0brBkkFV7ed2M4167uT03yyfyTK8Ijl6qA==",
+ "node_modules/@angular/build/node_modules/https-proxy-agent": {
+ "version": "7.0.6",
+ "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz",
+ "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@angular-eslint/bundled-angular-compiler": "20.5.1",
- "eslint-scope": "^8.0.2"
+ "agent-base": "^7.1.2",
+ "debug": "4"
},
- "peerDependencies": {
- "eslint": "^8.57.0 || ^9.0.0",
- "typescript": "*"
+ "engines": {
+ "node": ">= 14"
}
},
- "node_modules/@angular-eslint/utils": {
- "version": "20.5.1",
- "resolved": "https://registry.npmjs.org/@angular-eslint/utils/-/utils-20.5.1.tgz",
- "integrity": "sha512-6Zf9EBzW8eBTDxqgzBqKD4a9IH0uAVZFX9zgASipk8m5sO6YkjaS+auplmEac3ESzVCh9AzwNDFD68JAE0ugLQ==",
+ "node_modules/@angular/build/node_modules/rollup": {
+ "version": "4.52.3",
+ "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.52.3.tgz",
+ "integrity": "sha512-RIDh866U8agLgiIcdpB+COKnlCreHJLfIhWC3LVflku5YHfpnsIKigRZeFfMfCc4dVcqNVfQQ5gO/afOck064A==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@angular-eslint/bundled-angular-compiler": "20.5.1"
+ "@types/estree": "1.0.8"
},
- "peerDependencies": {
- "@typescript-eslint/utils": "^7.11.0 || ^8.0.0",
- "eslint": "^8.57.0 || ^9.0.0",
- "typescript": "*"
+ "bin": {
+ "rollup": "dist/bin/rollup"
+ },
+ "engines": {
+ "node": ">=18.0.0",
+ "npm": ">=8.0.0"
+ },
+ "optionalDependencies": {
+ "@rollup/rollup-android-arm-eabi": "4.52.3",
+ "@rollup/rollup-android-arm64": "4.52.3",
+ "@rollup/rollup-darwin-arm64": "4.52.3",
+ "@rollup/rollup-darwin-x64": "4.52.3",
+ "@rollup/rollup-freebsd-arm64": "4.52.3",
+ "@rollup/rollup-freebsd-x64": "4.52.3",
+ "@rollup/rollup-linux-arm-gnueabihf": "4.52.3",
+ "@rollup/rollup-linux-arm-musleabihf": "4.52.3",
+ "@rollup/rollup-linux-arm64-gnu": "4.52.3",
+ "@rollup/rollup-linux-arm64-musl": "4.52.3",
+ "@rollup/rollup-linux-loong64-gnu": "4.52.3",
+ "@rollup/rollup-linux-ppc64-gnu": "4.52.3",
+ "@rollup/rollup-linux-riscv64-gnu": "4.52.3",
+ "@rollup/rollup-linux-riscv64-musl": "4.52.3",
+ "@rollup/rollup-linux-s390x-gnu": "4.52.3",
+ "@rollup/rollup-linux-x64-gnu": "4.52.3",
+ "@rollup/rollup-linux-x64-musl": "4.52.3",
+ "@rollup/rollup-openharmony-arm64": "4.52.3",
+ "@rollup/rollup-win32-arm64-msvc": "4.52.3",
+ "@rollup/rollup-win32-ia32-msvc": "4.52.3",
+ "@rollup/rollup-win32-x64-gnu": "4.52.3",
+ "@rollup/rollup-win32-x64-msvc": "4.52.3",
+ "fsevents": "~2.3.2"
}
},
- "node_modules/@angular/animations": {
- "version": "20.2.4",
- "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-20.2.4.tgz",
- "integrity": "sha512-mXiTlXZgAF4uYonOt7l2w7uvLLTJEk6jqs3H291bYuoDRM8R166UjN7ygAeBmPiJ4TLMyKGkwMQy3b1Vvw4RQA==",
+ "node_modules/@angular/build/node_modules/tinyglobby": {
+ "version": "0.2.14",
+ "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.14.tgz",
+ "integrity": "sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==",
+ "dev": true,
"license": "MIT",
"dependencies": {
- "tslib": "^2.3.0"
+ "fdir": "^6.4.4",
+ "picomatch": "^4.0.2"
},
"engines": {
- "node": "^20.19.0 || ^22.12.0 || >=24.0.0"
+ "node": ">=12.0.0"
},
- "peerDependencies": {
- "@angular/core": "20.2.4"
+ "funding": {
+ "url": "https://github.com/sponsors/SuperchupuDev"
}
},
"node_modules/@angular/cdk": {
@@ -1295,6 +1192,7 @@
"resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-20.2.11.tgz",
"integrity": "sha512-+zcP6eq9+h6f09rZWHNIj2nap9P6S38mm75/WjdGZbl1BJy7vaASDnr4fwXKi2JvTyap/vj6mMuadFXEivavPw==",
"license": "MIT",
+ "peer": true,
"dependencies": {
"parse5": "^8.0.0",
"tslib": "^2.3.0"
@@ -1306,30 +1204,30 @@
}
},
"node_modules/@angular/cli": {
- "version": "20.2.2",
- "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-20.2.2.tgz",
- "integrity": "sha512-0K8cmuHzRTpPzy/w0+S5o3s0JPV++9/s2JhK4aw/+OnQRpUbodoqjm1ur5k5DUBQfIHi7aM73ZIW3G43lv4F0g==",
+ "version": "20.3.15",
+ "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-20.3.15.tgz",
+ "integrity": "sha512-OgPMhXtNLXds0wIw6YU5/X3dU8TlAZbmPy6LYHs9ifF8K4pXpbm27vWGSZhUevSf66dMvfz8wB/aE2e0s2e5Ng==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@angular-devkit/architect": "0.2002.2",
- "@angular-devkit/core": "20.2.2",
- "@angular-devkit/schematics": "20.2.2",
+ "@angular-devkit/architect": "0.2003.15",
+ "@angular-devkit/core": "20.3.15",
+ "@angular-devkit/schematics": "20.3.15",
"@inquirer/prompts": "7.8.2",
"@listr2/prompt-adapter-inquirer": "3.0.1",
- "@modelcontextprotocol/sdk": "1.17.3",
- "@schematics/angular": "20.2.2",
+ "@modelcontextprotocol/sdk": "1.25.2",
+ "@schematics/angular": "20.3.15",
"@yarnpkg/lockfile": "1.1.0",
"algoliasearch": "5.35.0",
"ini": "5.0.0",
"jsonc-parser": "3.3.1",
"listr2": "9.0.1",
"npm-package-arg": "13.0.0",
- "pacote": "21.0.0",
+ "pacote": "21.0.4",
"resolve": "1.22.10",
"semver": "7.7.2",
"yargs": "18.0.0",
- "zod": "3.25.76"
+ "zod": "4.1.13"
},
"bin": {
"ng": "bin/ng.js"
@@ -1341,13 +1239,13 @@
}
},
"node_modules/@angular/cli/node_modules/@angular-devkit/architect": {
- "version": "0.2002.2",
- "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.2002.2.tgz",
- "integrity": "sha512-amppp/UqKyj+B8hYFU16j4t6SVN+SS0AEnHivDjKy41NNJgXv+5Sm2Q2jaMHviCT3rclyT0wqwNAi0RDjyLx5Q==",
+ "version": "0.2003.15",
+ "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.2003.15.tgz",
+ "integrity": "sha512-HmGnUTLVwpvOFilc3gTP6CL9o+UbkVyu9S4WENkQbInbW3zp54lkzY71uWJIP7QvuXPa+bS4WHEmoGNQtNvv1A==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@angular-devkit/core": "20.2.2",
+ "@angular-devkit/core": "20.3.15",
"rxjs": "7.8.2"
},
"engines": {
@@ -1357,9 +1255,9 @@
}
},
"node_modules/@angular/cli/node_modules/@angular-devkit/core": {
- "version": "20.2.2",
- "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-20.2.2.tgz",
- "integrity": "sha512-SC+f5isSWJBpEgR+R7jP++2Z14WExNWLAdKpIickLWjuL8FlGkj+kaF3dWXhh0KcXo+r6kKb4pWUptSaqer5gA==",
+ "version": "20.3.15",
+ "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-20.3.15.tgz",
+ "integrity": "sha512-s7sE4S5Hy62dLrtHwizbZaMcupAE8fPhm6rF+jBkhHZ75zXGhGzXP8WKFztYCAuGnis4pPnGSEKP/xVTc2lw6Q==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -1385,10 +1283,11 @@
}
},
"node_modules/@angular/common": {
- "version": "20.2.4",
- "resolved": "https://registry.npmjs.org/@angular/common/-/common-20.2.4.tgz",
- "integrity": "sha512-mc6Sq1cYjaPJYThnvG6x0f/E27pWksqwaNJxT1RtwhAGc1i2jsc0su6b7e5NnXEgVbdPqu1MZHAEFdXZ5+/MwQ==",
+ "version": "20.3.16",
+ "resolved": "https://registry.npmjs.org/@angular/common/-/common-20.3.16.tgz",
+ "integrity": "sha512-GRAziNlntwdnJy3F+8zCOvDdy7id0gITjDnM6P9+n2lXvtDuBLGJKU3DWBbvxcCjtD6JK/g/rEX5fbCxbUHkQQ==",
"license": "MIT",
+ "peer": true,
"dependencies": {
"tslib": "^2.3.0"
},
@@ -1396,15 +1295,16 @@
"node": "^20.19.0 || ^22.12.0 || >=24.0.0"
},
"peerDependencies": {
- "@angular/core": "20.2.4",
+ "@angular/core": "20.3.16",
"rxjs": "^6.5.3 || ^7.4.0"
}
},
"node_modules/@angular/compiler": {
- "version": "20.2.4",
- "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-20.2.4.tgz",
- "integrity": "sha512-LQzf+Azb/Ms+BavpCFIat+f1C0gUJpby2RW4yebF3JkBFKfJ7M8d49TQpF8rSnGxMRTf49mln7laz4nBYTLDGA==",
+ "version": "20.3.16",
+ "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-20.3.16.tgz",
+ "integrity": "sha512-Pt9Ms9GwTThgzdxWBwMfN8cH1JEtQ2DK5dc2yxYtPSaD+WKmG9AVL1PrzIYQEbaKcWk2jxASUHpEWSlNiwo8uw==",
"license": "MIT",
+ "peer": true,
"dependencies": {
"tslib": "^2.3.0"
},
@@ -1413,11 +1313,12 @@
}
},
"node_modules/@angular/compiler-cli": {
- "version": "20.2.4",
- "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-20.2.4.tgz",
- "integrity": "sha512-II2hEpfbo73dL12D42DoIHYGiTYAiO9cpwh29BIo8VD054ei4cm0oK+jCyryDQH5T3+wyCWlj0OFjcZ/GmO7HQ==",
+ "version": "20.3.16",
+ "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-20.3.16.tgz",
+ "integrity": "sha512-l3xF/fXfJAl/UrNnH9Ufkr79myjMgXdHq1mmmph2UnpeqilRB1b8lC9sLBV9MipQHVn3dwocxMIvtrcryfOaXw==",
"dev": true,
"license": "MIT",
+ "peer": true,
"dependencies": {
"@babel/core": "7.28.3",
"@jridgewell/sourcemap-codec": "^1.4.14",
@@ -1436,7 +1337,7 @@
"node": "^20.19.0 || ^22.12.0 || >=24.0.0"
},
"peerDependencies": {
- "@angular/compiler": "20.2.4",
+ "@angular/compiler": "20.3.16",
"typescript": ">=5.8 <6.0"
},
"peerDependenciesMeta": {
@@ -1446,10 +1347,11 @@
}
},
"node_modules/@angular/core": {
- "version": "20.2.4",
- "resolved": "https://registry.npmjs.org/@angular/core/-/core-20.2.4.tgz",
- "integrity": "sha512-8yvfvPDWX8M7o82GBl5P1nlvm1ywQ2XZi5HWj3llKpSJE2XjzhATgPrpKwiNVnpgjZWTOwM11fpoAaRKqQjxTA==",
+ "version": "20.3.16",
+ "resolved": "https://registry.npmjs.org/@angular/core/-/core-20.3.16.tgz",
+ "integrity": "sha512-KSFPKvOmWWLCJBbEO+CuRUXfecX2FRuO0jNi9c54ptXMOPHlK1lIojUnyXmMNzjdHgRug8ci9qDuftvC2B7MKg==",
"license": "MIT",
+ "peer": true,
"dependencies": {
"tslib": "^2.3.0"
},
@@ -1457,7 +1359,7 @@
"node": "^20.19.0 || ^22.12.0 || >=24.0.0"
},
"peerDependencies": {
- "@angular/compiler": "20.2.4",
+ "@angular/compiler": "20.3.16",
"rxjs": "^6.5.3 || ^7.4.0",
"zone.js": "~0.15.0"
},
@@ -1471,10 +1373,11 @@
}
},
"node_modules/@angular/forms": {
- "version": "20.2.4",
- "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-20.2.4.tgz",
- "integrity": "sha512-wbgnW+GALVAmK6hgFegkwlHKw35onvh9Z5A236HCyUySEAOiaD/3CoDg5Hw4iHQAiSU6Fn2NwDiv+W0xki6WDw==",
+ "version": "20.3.16",
+ "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-20.3.16.tgz",
+ "integrity": "sha512-1yzbXpExTqATpVcqA3wGrq4ACFIP3mRxA4pbso5KoJU+/4JfzNFwLsDaFXKpm5uxwchVnj8KM2vPaDOkvtp7NA==",
"license": "MIT",
+ "peer": true,
"dependencies": {
"tslib": "^2.3.0"
},
@@ -1482,9 +1385,9 @@
"node": "^20.19.0 || ^22.12.0 || >=24.0.0"
},
"peerDependencies": {
- "@angular/common": "20.2.4",
- "@angular/core": "20.2.4",
- "@angular/platform-browser": "20.2.4",
+ "@angular/common": "20.3.16",
+ "@angular/core": "20.3.16",
+ "@angular/platform-browser": "20.3.16",
"rxjs": "^6.5.3 || ^7.4.0"
}
},
@@ -1493,6 +1396,7 @@
"resolved": "https://registry.npmjs.org/@angular/material/-/material-20.2.11.tgz",
"integrity": "sha512-lrmudo8n06o6UBVKx/slAfUIjJghwub5JZfIOmQd2js0Vz+eBJYcDJsgBB8lG/LSXKLlPkNwe6o6nJBMVBZg1g==",
"license": "MIT",
+ "peer": true,
"dependencies": {
"tslib": "^2.3.0"
},
@@ -1521,10 +1425,11 @@
}
},
"node_modules/@angular/platform-browser": {
- "version": "20.2.4",
- "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-20.2.4.tgz",
- "integrity": "sha512-81vzW8xhnJU7AiYJKXLR2MuvawzhRDgwyNkPEep58wty5zNuIUCXdUERJSsXo7m/U2Dg1FUFfqLm4RC2UkqLzA==",
+ "version": "20.3.16",
+ "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-20.3.16.tgz",
+ "integrity": "sha512-YsrLS6vyS77i4pVHg4gdSBW74qvzHjpQRTVQ5Lv/OxIjJdYYYkMmjNalCNgy1ZuyY6CaLIB11ccxhrNnxfKGOQ==",
"license": "MIT",
+ "peer": true,
"dependencies": {
"tslib": "^2.3.0"
},
@@ -1532,9 +1437,9 @@
"node": "^20.19.0 || ^22.12.0 || >=24.0.0"
},
"peerDependencies": {
- "@angular/animations": "20.2.4",
- "@angular/common": "20.2.4",
- "@angular/core": "20.2.4"
+ "@angular/animations": "20.3.16",
+ "@angular/common": "20.3.16",
+ "@angular/core": "20.3.16"
},
"peerDependenciesMeta": {
"@angular/animations": {
@@ -1543,10 +1448,11 @@
}
},
"node_modules/@angular/platform-browser-dynamic": {
- "version": "20.2.4",
- "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-20.2.4.tgz",
- "integrity": "sha512-ktunGTMWuWtnKUicOdXjF8Nc1RInf78YW7TqMV35rF32VXpHwRRKw2M7OKViPk18MlbDE2pc5HCX558BEUla0A==",
+ "version": "20.3.16",
+ "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-20.3.16.tgz",
+ "integrity": "sha512-5mECCV9YeKH6ue239GXRTGeDSd/eTbM1j8dDejhm5cGnPBhTxRw4o+GgSrWTYtb6VmIYdwUGBTC+wCBphiaQ2A==",
"license": "MIT",
+ "peer": true,
"dependencies": {
"tslib": "^2.3.0"
},
@@ -1554,17 +1460,18 @@
"node": "^20.19.0 || ^22.12.0 || >=24.0.0"
},
"peerDependencies": {
- "@angular/common": "20.2.4",
- "@angular/compiler": "20.2.4",
- "@angular/core": "20.2.4",
- "@angular/platform-browser": "20.2.4"
+ "@angular/common": "20.3.16",
+ "@angular/compiler": "20.3.16",
+ "@angular/core": "20.3.16",
+ "@angular/platform-browser": "20.3.16"
}
},
"node_modules/@angular/router": {
- "version": "20.2.4",
- "resolved": "https://registry.npmjs.org/@angular/router/-/router-20.2.4.tgz",
- "integrity": "sha512-KoduI1o+iBfCBGtXMvmy/qncDIwGxd2hNt2hDkkiYZTftmSg/XUJDxJqN84ckm2WLkdJpR9EirrwfHapJBIZOQ==",
+ "version": "20.3.16",
+ "resolved": "https://registry.npmjs.org/@angular/router/-/router-20.3.16.tgz",
+ "integrity": "sha512-e1LiQFZaajKqc00cY5FboIrWJZSMnZ64GDp5R0UejritYrqorQQQNOqP1W85BMuY2owibMmxVfX+dJg/Mc8PuQ==",
"license": "MIT",
+ "peer": true,
"dependencies": {
"tslib": "^2.3.0"
},
@@ -1572,9 +1479,9 @@
"node": "^20.19.0 || ^22.12.0 || >=24.0.0"
},
"peerDependencies": {
- "@angular/common": "20.2.4",
- "@angular/core": "20.2.4",
- "@angular/platform-browser": "20.2.4",
+ "@angular/common": "20.3.16",
+ "@angular/core": "20.3.16",
+ "@angular/platform-browser": "20.3.16",
"rxjs": "^6.5.3 || ^7.4.0"
}
},
@@ -1609,6 +1516,7 @@
"integrity": "sha512-yDBHV9kQNcr2/sUr9jghVyz9C3Y5G2zUM2H2lo+9mKv4sFgbA8s8Z9t8D1jiTkGoO/NoIfKMyKWr4s6CN23ZwQ==",
"dev": true,
"license": "MIT",
+ "peer": true,
"dependencies": {
"@ampproject/remapping": "^2.2.0",
"@babel/code-frame": "^7.27.1",
@@ -3656,7 +3564,8 @@
"resolved": "https://registry.npmjs.org/@cspell/dict-css/-/dict-css-4.0.18.tgz",
"integrity": "sha512-EF77RqROHL+4LhMGW5NTeKqfUd/e4OOv6EDFQ/UQQiFyWuqkEKyEz0NDILxOFxWUEVdjT2GQ2cC7t12B6pESwg==",
"dev": true,
- "license": "MIT"
+ "license": "MIT",
+ "peer": true
},
"node_modules/@cspell/dict-dart": {
"version": "2.3.1",
@@ -3803,14 +3712,16 @@
"resolved": "https://registry.npmjs.org/@cspell/dict-html/-/dict-html-4.0.12.tgz",
"integrity": "sha512-JFffQ1dDVEyJq6tCDWv0r/RqkdSnV43P2F/3jJ9rwLgdsOIXwQbXrz6QDlvQLVvNSnORH9KjDtenFTGDyzfCaA==",
"dev": true,
- "license": "MIT"
+ "license": "MIT",
+ "peer": true
},
"node_modules/@cspell/dict-html-symbol-entities": {
"version": "4.0.4",
"resolved": "https://registry.npmjs.org/@cspell/dict-html-symbol-entities/-/dict-html-symbol-entities-4.0.4.tgz",
"integrity": "sha512-afea+0rGPDeOV9gdO06UW183Qg6wRhWVkgCFwiO3bDupAoyXRuvupbb5nUyqSTsLXIKL8u8uXQlJ9pkz07oVXw==",
"dev": true,
- "license": "MIT"
+ "license": "MIT",
+ "peer": true
},
"node_modules/@cspell/dict-java": {
"version": "5.0.12",
@@ -4008,7 +3919,8 @@
"resolved": "https://registry.npmjs.org/@cspell/dict-typescript/-/dict-typescript-3.2.3.tgz",
"integrity": "sha512-zXh1wYsNljQZfWWdSPYwQhpwiuW0KPW1dSd8idjMRvSD0aSvWWHoWlrMsmZeRl4qM4QCEAjua8+cjflm41cQBg==",
"dev": true,
- "license": "MIT"
+ "license": "MIT",
+ "peer": true
},
"node_modules/@cspell/dict-vue": {
"version": "3.0.5",
@@ -4693,7 +4605,6 @@
"integrity": "sha512-aw1gNayWpdI/jSYVgzN5pL0cfzU02GT3NBpeT/DXbx1/1x7ZKxFPd9bwrzygx/qiwIQiJ1sw/zD8qY/kRvlGHA==",
"dev": true,
"license": "Apache-2.0",
- "peer": true,
"dependencies": {
"@eslint/object-schema": "^2.1.7",
"debug": "^4.3.1",
@@ -4709,7 +4620,6 @@
"integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==",
"dev": true,
"license": "MIT",
- "peer": true,
"dependencies": {
"balanced-match": "^1.0.0",
"concat-map": "0.0.1"
@@ -4721,7 +4631,6 @@
"integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
"dev": true,
"license": "ISC",
- "peer": true,
"dependencies": {
"brace-expansion": "^1.1.7"
},
@@ -4735,7 +4644,6 @@
"integrity": "sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw==",
"dev": true,
"license": "Apache-2.0",
- "peer": true,
"dependencies": {
"@eslint/core": "^0.17.0"
},
@@ -4857,7 +4765,6 @@
"integrity": "sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==",
"dev": true,
"license": "Apache-2.0",
- "peer": true,
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
}
@@ -4868,7 +4775,6 @@
"integrity": "sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==",
"dev": true,
"license": "Apache-2.0",
- "peer": true,
"dependencies": {
"@eslint/core": "^0.17.0",
"levn": "^0.4.1"
@@ -4883,6 +4789,7 @@
"integrity": "sha512-+8Dd6DoJnqArfrZ5NvjHyRL64IIkTigXclbOOcFdYQ8/WFERQUDaEU6SAV8Q0JBpJhMS1McED7YCOCAE6SIVyA==",
"dev": true,
"license": "MIT",
+ "peer": true,
"dependencies": {
"@fortawesome/fontawesome-svg-core": "^7.0.0",
"tslib": "^2.8.1"
@@ -4933,6 +4840,7 @@
"integrity": "sha512-Udu3K7SzAo9N013qt7qmm22/wo2hADdheXtBfxFTecp+ogsc0caQNRKEb7pkvvagUGOpG9wJC1ViH6WXs8oXIA==",
"dev": true,
"license": "(CC-BY-4.0 AND MIT)",
+ "peer": true,
"dependencies": {
"@fortawesome/fontawesome-common-types": "7.1.0"
},
@@ -5001,13 +4909,25 @@
"@hapi/hoek": "^11.0.2"
}
},
+ "node_modules/@hono/node-server": {
+ "version": "1.19.9",
+ "resolved": "https://registry.npmjs.org/@hono/node-server/-/node-server-1.19.9.tgz",
+ "integrity": "sha512-vHL6w3ecZsky+8P5MD+eFfaGTyCeOHUIFYMGpQGbrBTSmNNoxv0if69rEZ5giu36weC5saFuznL411gRX7bJDw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=18.14.1"
+ },
+ "peerDependencies": {
+ "hono": "^4"
+ }
+ },
"node_modules/@humanfs/core": {
"version": "0.19.1",
"resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz",
"integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==",
"dev": true,
"license": "Apache-2.0",
- "peer": true,
"engines": {
"node": ">=18.18.0"
}
@@ -5018,7 +4938,6 @@
"integrity": "sha512-/zUx+yOsIrG4Y43Eh2peDeKCxlRt/gET6aHfaKpuq267qXdYDFViVHfMaLyygZOnl0kGWxFIgsBy8QFuTLUXEQ==",
"dev": true,
"license": "Apache-2.0",
- "peer": true,
"dependencies": {
"@humanfs/core": "^0.19.1",
"@humanwhocodes/retry": "^0.4.0"
@@ -5033,7 +4952,6 @@
"integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==",
"dev": true,
"license": "Apache-2.0",
- "peer": true,
"engines": {
"node": ">=12.22"
},
@@ -5048,7 +4966,6 @@
"integrity": "sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==",
"dev": true,
"license": "Apache-2.0",
- "peer": true,
"engines": {
"node": ">=18.18"
},
@@ -5293,6 +5210,7 @@
"integrity": "sha512-nqhDw2ZcAUrKNPwhjinJny903bRhI0rQhiDz1LksjeRxqa36i3l75+4iXbOy0rlDpLJGxqtgoPavQjmmyS5UJw==",
"dev": true,
"license": "MIT",
+ "peer": true,
"dependencies": {
"@inquirer/checkbox": "^4.2.1",
"@inquirer/confirm": "^5.1.14",
@@ -6254,13 +6172,15 @@
]
},
"node_modules/@modelcontextprotocol/sdk": {
- "version": "1.17.3",
- "resolved": "https://registry.npmjs.org/@modelcontextprotocol/sdk/-/sdk-1.17.3.tgz",
- "integrity": "sha512-JPwUKWSsbzx+DLFznf/QZ32Qa+ptfbUlHhRLrBQBAFu9iI1iYvizM4p+zhhRDceSsPutXp4z+R/HPVphlIiclg==",
+ "version": "1.25.2",
+ "resolved": "https://registry.npmjs.org/@modelcontextprotocol/sdk/-/sdk-1.25.2.tgz",
+ "integrity": "sha512-LZFeo4F9M5qOhC/Uc1aQSrBHxMrvxett+9KLHt7OhcExtoiRN9DKgbZffMP/nxjutWDQpfMDfP3nkHI4X9ijww==",
"dev": true,
"license": "MIT",
"dependencies": {
- "ajv": "^6.12.6",
+ "@hono/node-server": "^1.19.7",
+ "ajv": "^8.17.1",
+ "ajv-formats": "^3.0.1",
"content-type": "^1.0.5",
"cors": "^2.8.5",
"cross-spawn": "^7.0.5",
@@ -6268,39 +6188,29 @@
"eventsource-parser": "^3.0.0",
"express": "^5.0.1",
"express-rate-limit": "^7.5.0",
+ "jose": "^6.1.1",
+ "json-schema-typed": "^8.0.2",
"pkce-challenge": "^5.0.0",
"raw-body": "^3.0.0",
- "zod": "^3.23.8",
- "zod-to-json-schema": "^3.24.1"
+ "zod": "^3.25 || ^4.0",
+ "zod-to-json-schema": "^3.25.0"
},
"engines": {
"node": ">=18"
- }
- },
- "node_modules/@modelcontextprotocol/sdk/node_modules/ajv": {
- "version": "6.12.6",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
- "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "fast-deep-equal": "^3.1.1",
- "fast-json-stable-stringify": "^2.0.0",
- "json-schema-traverse": "^0.4.1",
- "uri-js": "^4.2.2"
},
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/epoberezkin"
+ "peerDependencies": {
+ "@cfworker/json-schema": "^4.1.1",
+ "zod": "^3.25 || ^4.0"
+ },
+ "peerDependenciesMeta": {
+ "@cfworker/json-schema": {
+ "optional": true
+ },
+ "zod": {
+ "optional": false
+ }
}
},
- "node_modules/@modelcontextprotocol/sdk/node_modules/json-schema-traverse": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
- "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
- "dev": true,
- "license": "MIT"
- },
"node_modules/@msgpackr-extract/msgpackr-extract-darwin-arm64": {
"version": "3.0.3",
"resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-darwin-arm64/-/msgpackr-extract-darwin-arm64-3.0.3.tgz",
@@ -6798,20 +6708,20 @@
}
},
"node_modules/@npmcli/agent": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/@npmcli/agent/-/agent-3.0.0.tgz",
- "integrity": "sha512-S79NdEgDQd/NGCay6TCoVzXSj74skRZIKJcpJjC5lOq34SZzyI6MqtiiWoiVWoVrTcGjNeC4ipbh1VIHlpfF5Q==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/@npmcli/agent/-/agent-4.0.0.tgz",
+ "integrity": "sha512-kAQTcEN9E8ERLVg5AsGwLNoFb+oEG6engbqAU2P43gD4JEIkNGMHdVQ096FsOAAYpZPB0RSt0zgInKIAS1l5QA==",
"dev": true,
"license": "ISC",
"dependencies": {
"agent-base": "^7.1.0",
"http-proxy-agent": "^7.0.0",
"https-proxy-agent": "^7.0.1",
- "lru-cache": "^10.0.1",
+ "lru-cache": "^11.2.1",
"socks-proxy-agent": "^8.0.3"
},
"engines": {
- "node": "^18.17.0 || >=20.5.0"
+ "node": "^20.17.0 || >=22.9.0"
}
},
"node_modules/@npmcli/agent/node_modules/agent-base": {
@@ -6853,43 +6763,56 @@
}
},
"node_modules/@npmcli/agent/node_modules/lru-cache": {
- "version": "10.4.3",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz",
- "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==",
+ "version": "11.2.5",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.5.tgz",
+ "integrity": "sha512-vFrFJkWtJvJnD5hg+hJvVE8Lh/TcMzKnTgCWmtBipwI5yLX/iX+5UB2tfuyODF5E7k9xEzMdYgGqaSb1c0c5Yw==",
"dev": true,
- "license": "ISC"
+ "license": "BlueOak-1.0.0",
+ "engines": {
+ "node": "20 || >=22"
+ }
},
"node_modules/@npmcli/fs": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-4.0.0.tgz",
- "integrity": "sha512-/xGlezI6xfGO9NwuJlnwz/K14qD1kCSAGtacBHnGzeAIuJGazcp45KP5NuyARXoKb7cwulAGWVsbeSxdG/cb0Q==",
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-5.0.0.tgz",
+ "integrity": "sha512-7OsC1gNORBEawOa5+j2pXN9vsicaIOH5cPXxoR6fJOmH6/EXpJB2CajXOu1fPRFun2m1lktEFX11+P89hqO/og==",
"dev": true,
"license": "ISC",
"dependencies": {
"semver": "^7.3.5"
},
"engines": {
- "node": "^18.17.0 || >=20.5.0"
+ "node": "^20.17.0 || >=22.9.0"
}
},
"node_modules/@npmcli/git": {
- "version": "6.0.3",
- "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-6.0.3.tgz",
- "integrity": "sha512-GUYESQlxZRAdhs3UhbB6pVRNUELQOHXwK9ruDkwmCv2aZ5y0SApQzUJCg02p3A7Ue2J5hxvlk1YI53c00NmRyQ==",
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-7.0.1.tgz",
+ "integrity": "sha512-+XTFxK2jJF/EJJ5SoAzXk3qwIDfvFc5/g+bD274LZ7uY7LE8sTfG6Z8rOanPl2ZEvZWqNvmEdtXC25cE54VcoA==",
"dev": true,
"license": "ISC",
"dependencies": {
- "@npmcli/promise-spawn": "^8.0.0",
- "ini": "^5.0.0",
- "lru-cache": "^10.0.1",
- "npm-pick-manifest": "^10.0.0",
- "proc-log": "^5.0.0",
+ "@npmcli/promise-spawn": "^9.0.0",
+ "ini": "^6.0.0",
+ "lru-cache": "^11.2.1",
+ "npm-pick-manifest": "^11.0.1",
+ "proc-log": "^6.0.0",
"promise-retry": "^2.0.1",
"semver": "^7.3.5",
- "which": "^5.0.0"
+ "which": "^6.0.0"
},
"engines": {
- "node": "^18.17.0 || >=20.5.0"
+ "node": "^20.17.0 || >=22.9.0"
+ }
+ },
+ "node_modules/@npmcli/git/node_modules/ini": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/ini/-/ini-6.0.0.tgz",
+ "integrity": "sha512-IBTdIkzZNOpqm7q3dRqJvMaldXjDHWkEDfrwGEQTs5eaQMWV+djAhR+wahyNNMAa+qpbDUhBMVt4ZKNwpPm7xQ==",
+ "dev": true,
+ "license": "ISC",
+ "engines": {
+ "node": "^20.17.0 || >=22.9.0"
}
},
"node_modules/@npmcli/git/node_modules/isexe": {
@@ -6903,16 +6826,29 @@
}
},
"node_modules/@npmcli/git/node_modules/lru-cache": {
- "version": "10.4.3",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz",
- "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==",
+ "version": "11.2.5",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.5.tgz",
+ "integrity": "sha512-vFrFJkWtJvJnD5hg+hJvVE8Lh/TcMzKnTgCWmtBipwI5yLX/iX+5UB2tfuyODF5E7k9xEzMdYgGqaSb1c0c5Yw==",
"dev": true,
- "license": "ISC"
+ "license": "BlueOak-1.0.0",
+ "engines": {
+ "node": "20 || >=22"
+ }
+ },
+ "node_modules/@npmcli/git/node_modules/proc-log": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-6.1.0.tgz",
+ "integrity": "sha512-iG+GYldRf2BQ0UDUAd6JQ/RwzaQy6mXmsk/IzlYyal4A4SNFw54MeH4/tLkF4I5WoWG9SQwuqWzS99jaFQHBuQ==",
+ "dev": true,
+ "license": "ISC",
+ "engines": {
+ "node": "^20.17.0 || >=22.9.0"
+ }
},
"node_modules/@npmcli/git/node_modules/which": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/which/-/which-5.0.0.tgz",
- "integrity": "sha512-JEdGzHwwkrbWoGOlIHqQ5gtprKGOenpDHpxE9zVR1bWbOtYRyPPHMe9FaP6x61CmNaTThSkb0DAJte5jD+DmzQ==",
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/which/-/which-6.0.0.tgz",
+ "integrity": "sha512-f+gEpIKMR9faW/JgAgPK1D7mekkFoqbmiwvNzuhsHetni20QSgzg9Vhn0g2JSJkkfehQnqdUAx7/e15qS1lPxg==",
"dev": true,
"license": "ISC",
"dependencies": {
@@ -6922,107 +6858,137 @@
"node-which": "bin/which.js"
},
"engines": {
- "node": "^18.17.0 || >=20.5.0"
+ "node": "^20.17.0 || >=22.9.0"
}
},
"node_modules/@npmcli/installed-package-contents": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-3.0.0.tgz",
- "integrity": "sha512-fkxoPuFGvxyrH+OQzyTkX2LUEamrF4jZSmxjAtPPHHGO0dqsQ8tTKjnIS8SAnPHdk2I03BDtSMR5K/4loKg79Q==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-4.0.0.tgz",
+ "integrity": "sha512-yNyAdkBxB72gtZ4GrwXCM0ZUedo9nIbOMKfGjt6Cu6DXf0p8y1PViZAKDC8q8kv/fufx0WTjRBdSlyrvnP7hmA==",
"dev": true,
"license": "ISC",
"dependencies": {
- "npm-bundled": "^4.0.0",
- "npm-normalize-package-bin": "^4.0.0"
+ "npm-bundled": "^5.0.0",
+ "npm-normalize-package-bin": "^5.0.0"
},
"bin": {
"installed-package-contents": "bin/index.js"
},
"engines": {
- "node": "^18.17.0 || >=20.5.0"
+ "node": "^20.17.0 || >=22.9.0"
+ }
+ },
+ "node_modules/@npmcli/node-gyp": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/@npmcli/node-gyp/-/node-gyp-5.0.0.tgz",
+ "integrity": "sha512-uuG5HZFXLfyFKqg8QypsmgLQW7smiRjVc45bqD/ofZZcR/uxEjgQU8qDPv0s9TEeMUiAAU/GC5bR6++UdTirIQ==",
+ "dev": true,
+ "license": "ISC",
+ "engines": {
+ "node": "^20.17.0 || >=22.9.0"
+ }
+ },
+ "node_modules/@npmcli/package-json": {
+ "version": "7.0.4",
+ "resolved": "https://registry.npmjs.org/@npmcli/package-json/-/package-json-7.0.4.tgz",
+ "integrity": "sha512-0wInJG3j/K40OJt/33ax47WfWMzZTm6OQxB9cDhTt5huCP2a9g2GnlsxmfN+PulItNPIpPrZ+kfwwUil7eHcZQ==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "@npmcli/git": "^7.0.0",
+ "glob": "^13.0.0",
+ "hosted-git-info": "^9.0.0",
+ "json-parse-even-better-errors": "^5.0.0",
+ "proc-log": "^6.0.0",
+ "semver": "^7.5.3",
+ "validate-npm-package-license": "^3.0.4"
+ },
+ "engines": {
+ "node": "^20.17.0 || >=22.9.0"
+ }
+ },
+ "node_modules/@npmcli/package-json/node_modules/glob": {
+ "version": "13.0.0",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-13.0.0.tgz",
+ "integrity": "sha512-tvZgpqk6fz4BaNZ66ZsRaZnbHvP/jG3uKJvAZOwEVUL4RTA5nJeeLYfyN9/VA8NX/V3IBG+hkeuGpKjvELkVhA==",
+ "dev": true,
+ "license": "BlueOak-1.0.0",
+ "dependencies": {
+ "minimatch": "^10.1.1",
+ "minipass": "^7.1.2",
+ "path-scurry": "^2.0.0"
+ },
+ "engines": {
+ "node": "20 || >=22"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
}
},
- "node_modules/@npmcli/node-gyp": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/@npmcli/node-gyp/-/node-gyp-4.0.0.tgz",
- "integrity": "sha512-+t5DZ6mO/QFh78PByMq1fGSAub/agLJZDRfJRMeOSNCt8s9YVlTjmGpIPwPhvXTGUIJk+WszlT0rQa1W33yzNA==",
+ "node_modules/@npmcli/package-json/node_modules/lru-cache": {
+ "version": "11.2.5",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.5.tgz",
+ "integrity": "sha512-vFrFJkWtJvJnD5hg+hJvVE8Lh/TcMzKnTgCWmtBipwI5yLX/iX+5UB2tfuyODF5E7k9xEzMdYgGqaSb1c0c5Yw==",
"dev": true,
- "license": "ISC",
+ "license": "BlueOak-1.0.0",
"engines": {
- "node": "^18.17.0 || >=20.5.0"
+ "node": "20 || >=22"
}
},
- "node_modules/@npmcli/package-json": {
- "version": "6.2.0",
- "resolved": "https://registry.npmjs.org/@npmcli/package-json/-/package-json-6.2.0.tgz",
- "integrity": "sha512-rCNLSB/JzNvot0SEyXqWZ7tX2B5dD2a1br2Dp0vSYVo5jh8Z0EZ7lS9TsZ1UtziddB1UfNUaMCc538/HztnJGA==",
+ "node_modules/@npmcli/package-json/node_modules/minimatch": {
+ "version": "10.1.1",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.1.1.tgz",
+ "integrity": "sha512-enIvLvRAFZYXJzkCYG5RKmPfrFArdLv+R+lbQ53BmIMLIry74bjKzX6iHAm8WYamJkhSSEabrWN5D97XnKObjQ==",
"dev": true,
- "license": "ISC",
+ "license": "BlueOak-1.0.0",
"dependencies": {
- "@npmcli/git": "^6.0.0",
- "glob": "^10.2.2",
- "hosted-git-info": "^8.0.0",
- "json-parse-even-better-errors": "^4.0.0",
- "proc-log": "^5.0.0",
- "semver": "^7.5.3",
- "validate-npm-package-license": "^3.0.4"
+ "@isaacs/brace-expansion": "^5.0.0"
},
"engines": {
- "node": "^18.17.0 || >=20.5.0"
+ "node": "20 || >=22"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
}
},
- "node_modules/@npmcli/package-json/node_modules/glob": {
- "version": "10.5.0",
- "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz",
- "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==",
+ "node_modules/@npmcli/package-json/node_modules/path-scurry": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.1.tgz",
+ "integrity": "sha512-oWyT4gICAu+kaA7QWk/jvCHWarMKNs6pXOGWKDTr7cw4IGcUbW+PeTfbaQiLGheFRpjo6O9J0PmyMfQPjH71oA==",
"dev": true,
- "license": "ISC",
+ "license": "BlueOak-1.0.0",
"dependencies": {
- "foreground-child": "^3.1.0",
- "jackspeak": "^3.1.2",
- "minimatch": "^9.0.4",
- "minipass": "^7.1.2",
- "package-json-from-dist": "^1.0.0",
- "path-scurry": "^1.11.1"
+ "lru-cache": "^11.0.0",
+ "minipass": "^7.1.2"
},
- "bin": {
- "glob": "dist/esm/bin.mjs"
+ "engines": {
+ "node": "20 || >=22"
},
"funding": {
"url": "https://github.com/sponsors/isaacs"
}
},
- "node_modules/@npmcli/package-json/node_modules/hosted-git-info": {
- "version": "8.1.0",
- "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-8.1.0.tgz",
- "integrity": "sha512-Rw/B2DNQaPBICNXEm8balFz9a6WpZrkCGpcWFpy7nCj+NyhSdqXipmfvtmWt9xGfp0wZnBxB+iVpLmQMYt47Tw==",
+ "node_modules/@npmcli/package-json/node_modules/proc-log": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-6.1.0.tgz",
+ "integrity": "sha512-iG+GYldRf2BQ0UDUAd6JQ/RwzaQy6mXmsk/IzlYyal4A4SNFw54MeH4/tLkF4I5WoWG9SQwuqWzS99jaFQHBuQ==",
"dev": true,
"license": "ISC",
- "dependencies": {
- "lru-cache": "^10.0.1"
- },
"engines": {
- "node": "^18.17.0 || >=20.5.0"
+ "node": "^20.17.0 || >=22.9.0"
}
},
- "node_modules/@npmcli/package-json/node_modules/lru-cache": {
- "version": "10.4.3",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz",
- "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==",
- "dev": true,
- "license": "ISC"
- },
"node_modules/@npmcli/promise-spawn": {
- "version": "8.0.3",
- "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-8.0.3.tgz",
- "integrity": "sha512-Yb00SWaL4F8w+K8YGhQ55+xE4RUNdMHV43WZGsiTM92gS+lC0mGsn7I4hLug7pbao035S6bj3Y3w0cUNGLfmkg==",
+ "version": "9.0.1",
+ "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-9.0.1.tgz",
+ "integrity": "sha512-OLUaoqBuyxeTqUvjA3FZFiXUfYC1alp3Sa99gW3EUDz3tZ3CbXDdcZ7qWKBzicrJleIgucoWamWH1saAmH/l2Q==",
"dev": true,
"license": "ISC",
"dependencies": {
- "which": "^5.0.0"
+ "which": "^6.0.0"
},
"engines": {
- "node": "^18.17.0 || >=20.5.0"
+ "node": "^20.17.0 || >=22.9.0"
}
},
"node_modules/@npmcli/promise-spawn/node_modules/isexe": {
@@ -7036,9 +7002,9 @@
}
},
"node_modules/@npmcli/promise-spawn/node_modules/which": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/which/-/which-5.0.0.tgz",
- "integrity": "sha512-JEdGzHwwkrbWoGOlIHqQ5gtprKGOenpDHpxE9zVR1bWbOtYRyPPHMe9FaP6x61CmNaTThSkb0DAJte5jD+DmzQ==",
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/which/-/which-6.0.0.tgz",
+ "integrity": "sha512-f+gEpIKMR9faW/JgAgPK1D7mekkFoqbmiwvNzuhsHetni20QSgzg9Vhn0g2JSJkkfehQnqdUAx7/e15qS1lPxg==",
"dev": true,
"license": "ISC",
"dependencies": {
@@ -7048,35 +7014,35 @@
"node-which": "bin/which.js"
},
"engines": {
- "node": "^18.17.0 || >=20.5.0"
+ "node": "^20.17.0 || >=22.9.0"
}
},
"node_modules/@npmcli/redact": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/@npmcli/redact/-/redact-3.2.2.tgz",
- "integrity": "sha512-7VmYAmk4csGv08QzrDKScdzn11jHPFGyqJW39FyPgPuAp3zIaUmuCo1yxw9aGs+NEJuTGQ9Gwqpt93vtJubucg==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/@npmcli/redact/-/redact-4.0.0.tgz",
+ "integrity": "sha512-gOBg5YHMfZy+TfHArfVogwgfBeQnKbbGo3pSUyK/gSI0AVu+pEiDVcKlQb0D8Mg1LNRZILZ6XG8I5dJ4KuAd9Q==",
"dev": true,
"license": "ISC",
"engines": {
- "node": "^18.17.0 || >=20.5.0"
+ "node": "^20.17.0 || >=22.9.0"
}
},
"node_modules/@npmcli/run-script": {
- "version": "9.1.0",
- "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-9.1.0.tgz",
- "integrity": "sha512-aoNSbxtkePXUlbZB+anS1LqsJdctG5n3UVhfU47+CDdwMi6uNTBMF9gPcQRnqghQd2FGzcwwIFBruFMxjhBewg==",
+ "version": "10.0.3",
+ "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-10.0.3.tgz",
+ "integrity": "sha512-ER2N6itRkzWbbtVmZ9WKaWxVlKlOeBFF1/7xx+KA5J1xKa4JjUwBdb6tDpk0v1qA+d+VDwHI9qmLcXSWcmi+Rw==",
"dev": true,
"license": "ISC",
"dependencies": {
- "@npmcli/node-gyp": "^4.0.0",
- "@npmcli/package-json": "^6.0.0",
- "@npmcli/promise-spawn": "^8.0.0",
- "node-gyp": "^11.0.0",
- "proc-log": "^5.0.0",
- "which": "^5.0.0"
+ "@npmcli/node-gyp": "^5.0.0",
+ "@npmcli/package-json": "^7.0.0",
+ "@npmcli/promise-spawn": "^9.0.0",
+ "node-gyp": "^12.1.0",
+ "proc-log": "^6.0.0",
+ "which": "^6.0.0"
},
"engines": {
- "node": "^18.17.0 || >=20.5.0"
+ "node": "^20.17.0 || >=22.9.0"
}
},
"node_modules/@npmcli/run-script/node_modules/isexe": {
@@ -7089,10 +7055,20 @@
"node": ">=16"
}
},
+ "node_modules/@npmcli/run-script/node_modules/proc-log": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-6.1.0.tgz",
+ "integrity": "sha512-iG+GYldRf2BQ0UDUAd6JQ/RwzaQy6mXmsk/IzlYyal4A4SNFw54MeH4/tLkF4I5WoWG9SQwuqWzS99jaFQHBuQ==",
+ "dev": true,
+ "license": "ISC",
+ "engines": {
+ "node": "^20.17.0 || >=22.9.0"
+ }
+ },
"node_modules/@npmcli/run-script/node_modules/which": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/which/-/which-5.0.0.tgz",
- "integrity": "sha512-JEdGzHwwkrbWoGOlIHqQ5gtprKGOenpDHpxE9zVR1bWbOtYRyPPHMe9FaP6x61CmNaTThSkb0DAJte5jD+DmzQ==",
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/which/-/which-6.0.0.tgz",
+ "integrity": "sha512-f+gEpIKMR9faW/JgAgPK1D7mekkFoqbmiwvNzuhsHetni20QSgzg9Vhn0g2JSJkkfehQnqdUAx7/e15qS1lPxg==",
"dev": true,
"license": "ISC",
"dependencies": {
@@ -7102,7 +7078,7 @@
"node-which": "bin/which.js"
},
"engines": {
- "node": "^18.17.0 || >=20.5.0"
+ "node": "^20.17.0 || >=22.9.0"
}
},
"node_modules/@parcel/watcher": {
@@ -7819,14 +7795,14 @@
"license": "MIT"
},
"node_modules/@schematics/angular": {
- "version": "20.2.2",
- "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-20.2.2.tgz",
- "integrity": "sha512-VzJsEIiBmHzJAOVaKHn1CwTuOqvI1GwZuneUk/tmyYKkKdWEgxnoNBvz1ql6eHstkLz3S9yt6aUuAgjQC+J2Xw==",
+ "version": "20.3.15",
+ "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-20.3.15.tgz",
+ "integrity": "sha512-WkhW1HO8pA8JT8e27tvjQHQg8eO5KaOz+WsGkN00RyL5DwHgPSzu4a3eYug+b3rW7OGFub7jadXBuGSrzqgonA==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@angular-devkit/core": "20.2.2",
- "@angular-devkit/schematics": "20.2.2",
+ "@angular-devkit/core": "20.3.15",
+ "@angular-devkit/schematics": "20.3.15",
"jsonc-parser": "3.3.1"
},
"engines": {
@@ -7836,9 +7812,9 @@
}
},
"node_modules/@schematics/angular/node_modules/@angular-devkit/core": {
- "version": "20.2.2",
- "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-20.2.2.tgz",
- "integrity": "sha512-SC+f5isSWJBpEgR+R7jP++2Z14WExNWLAdKpIickLWjuL8FlGkj+kaF3dWXhh0KcXo+r6kKb4pWUptSaqer5gA==",
+ "version": "20.3.15",
+ "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-20.3.15.tgz",
+ "integrity": "sha512-s7sE4S5Hy62dLrtHwizbZaMcupAE8fPhm6rF+jBkhHZ75zXGhGzXP8WKFztYCAuGnis4pPnGSEKP/xVTc2lw6Q==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -7864,32 +7840,32 @@
}
},
"node_modules/@sigstore/bundle": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/@sigstore/bundle/-/bundle-3.1.0.tgz",
- "integrity": "sha512-Mm1E3/CmDDCz3nDhFKTuYdB47EdRFRQMOE/EAbiG1MJW77/w1b3P7Qx7JSrVJs8PfwOLOVcKQCHErIwCTyPbag==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/@sigstore/bundle/-/bundle-4.0.0.tgz",
+ "integrity": "sha512-NwCl5Y0V6Di0NexvkTqdoVfmjTaQwoLM236r89KEojGmq/jMls8S+zb7yOwAPdXvbwfKDlP+lmXgAL4vKSQT+A==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
- "@sigstore/protobuf-specs": "^0.4.0"
+ "@sigstore/protobuf-specs": "^0.5.0"
},
"engines": {
- "node": "^18.17.0 || >=20.5.0"
+ "node": "^20.17.0 || >=22.9.0"
}
},
"node_modules/@sigstore/core": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/@sigstore/core/-/core-2.0.0.tgz",
- "integrity": "sha512-nYxaSb/MtlSI+JWcwTHQxyNmWeWrUXJJ/G4liLrGG7+tS4vAz6LF3xRXqLH6wPIVUoZQel2Fs4ddLx4NCpiIYg==",
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/@sigstore/core/-/core-3.1.0.tgz",
+ "integrity": "sha512-o5cw1QYhNQ9IroioJxpzexmPjfCe7gzafd2RY3qnMpxr4ZEja+Jad/U8sgFpaue6bOaF+z7RVkyKVV44FN+N8A==",
"dev": true,
"license": "Apache-2.0",
"engines": {
- "node": "^18.17.0 || >=20.5.0"
+ "node": "^20.17.0 || >=22.9.0"
}
},
"node_modules/@sigstore/protobuf-specs": {
- "version": "0.4.3",
- "resolved": "https://registry.npmjs.org/@sigstore/protobuf-specs/-/protobuf-specs-0.4.3.tgz",
- "integrity": "sha512-fk2zjD9117RL9BjqEwF7fwv7Q/P9yGsMV4MUJZ/DocaQJ6+3pKr+syBq1owU5Q5qGw5CUbXzm+4yJ2JVRDQeSA==",
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/@sigstore/protobuf-specs/-/protobuf-specs-0.5.0.tgz",
+ "integrity": "sha512-MM8XIwUjN2bwvCg1QvrMtbBmpcSHrkhFSCu1D11NyPvDQ25HEc4oG5/OcQfd/Tlf/OxmKWERDj0zGE23jQaMwA==",
"dev": true,
"license": "Apache-2.0",
"engines": {
@@ -7897,50 +7873,60 @@
}
},
"node_modules/@sigstore/sign": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/@sigstore/sign/-/sign-3.1.0.tgz",
- "integrity": "sha512-knzjmaOHOov1Ur7N/z4B1oPqZ0QX5geUfhrVaqVlu+hl0EAoL4o+l0MSULINcD5GCWe3Z0+YJO8ues6vFlW0Yw==",
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/@sigstore/sign/-/sign-4.1.0.tgz",
+ "integrity": "sha512-Vx1RmLxLGnSUqx/o5/VsCjkuN5L7y+vxEEwawvc7u+6WtX2W4GNa7b9HEjmcRWohw/d6BpATXmvOwc78m+Swdg==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
- "@sigstore/bundle": "^3.1.0",
- "@sigstore/core": "^2.0.0",
- "@sigstore/protobuf-specs": "^0.4.0",
- "make-fetch-happen": "^14.0.2",
- "proc-log": "^5.0.0",
+ "@sigstore/bundle": "^4.0.0",
+ "@sigstore/core": "^3.1.0",
+ "@sigstore/protobuf-specs": "^0.5.0",
+ "make-fetch-happen": "^15.0.3",
+ "proc-log": "^6.1.0",
"promise-retry": "^2.0.1"
},
"engines": {
- "node": "^18.17.0 || >=20.5.0"
+ "node": "^20.17.0 || >=22.9.0"
+ }
+ },
+ "node_modules/@sigstore/sign/node_modules/proc-log": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-6.1.0.tgz",
+ "integrity": "sha512-iG+GYldRf2BQ0UDUAd6JQ/RwzaQy6mXmsk/IzlYyal4A4SNFw54MeH4/tLkF4I5WoWG9SQwuqWzS99jaFQHBuQ==",
+ "dev": true,
+ "license": "ISC",
+ "engines": {
+ "node": "^20.17.0 || >=22.9.0"
}
},
"node_modules/@sigstore/tuf": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/@sigstore/tuf/-/tuf-3.1.1.tgz",
- "integrity": "sha512-eFFvlcBIoGwVkkwmTi/vEQFSva3xs5Ot3WmBcjgjVdiaoelBLQaQ/ZBfhlG0MnG0cmTYScPpk7eDdGDWUcFUmg==",
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@sigstore/tuf/-/tuf-4.0.1.tgz",
+ "integrity": "sha512-OPZBg8y5Vc9yZjmWCHrlWPMBqW5yd8+wFNl+thMdtcWz3vjVSoJQutF8YkrzI0SLGnkuFof4HSsWUhXrf219Lw==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
- "@sigstore/protobuf-specs": "^0.4.1",
- "tuf-js": "^3.0.1"
+ "@sigstore/protobuf-specs": "^0.5.0",
+ "tuf-js": "^4.1.0"
},
"engines": {
- "node": "^18.17.0 || >=20.5.0"
+ "node": "^20.17.0 || >=22.9.0"
}
},
"node_modules/@sigstore/verify": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/@sigstore/verify/-/verify-2.1.1.tgz",
- "integrity": "sha512-hVJD77oT67aowHxwT4+M6PGOp+E2LtLdTK3+FC0lBO9T7sYwItDMXZ7Z07IDCvR1M717a4axbIWckrW67KMP/w==",
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/@sigstore/verify/-/verify-3.1.0.tgz",
+ "integrity": "sha512-mNe0Iigql08YupSOGv197YdHpPPr+EzDZmfCgMc7RPNaZTw5aLN01nBl6CHJOh3BGtnMIj83EeN4butBchc8Ag==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
- "@sigstore/bundle": "^3.1.0",
- "@sigstore/core": "^2.0.0",
- "@sigstore/protobuf-specs": "^0.4.1"
+ "@sigstore/bundle": "^4.0.0",
+ "@sigstore/core": "^3.1.0",
+ "@sigstore/protobuf-specs": "^0.5.0"
},
"engines": {
- "node": "^18.17.0 || >=20.5.0"
+ "node": "^20.17.0 || >=22.9.0"
}
},
"node_modules/@sinclair/typebox": {
@@ -8060,17 +8046,33 @@
}
},
"node_modules/@tufjs/models": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/@tufjs/models/-/models-3.0.1.tgz",
- "integrity": "sha512-UUYHISyhCU3ZgN8yaear3cGATHb3SMuKHsQ/nVbHXcmnBf+LzQ/cQfhNG+rfaSHgqGKNEm2cOCLVLELStUQ1JA==",
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/@tufjs/models/-/models-4.1.0.tgz",
+ "integrity": "sha512-Y8cK9aggNRsqJVaKUlEYs4s7CvQ1b1ta2DVPyAimb0I2qhzjNk+A+mxvll/klL0RlfuIUei8BF7YWiua4kQqww==",
"dev": true,
"license": "MIT",
"dependencies": {
"@tufjs/canonical-json": "2.0.0",
- "minimatch": "^9.0.5"
+ "minimatch": "^10.1.1"
},
"engines": {
- "node": "^18.17.0 || >=20.5.0"
+ "node": "^20.17.0 || >=22.9.0"
+ }
+ },
+ "node_modules/@tufjs/models/node_modules/minimatch": {
+ "version": "10.1.1",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.1.1.tgz",
+ "integrity": "sha512-enIvLvRAFZYXJzkCYG5RKmPfrFArdLv+R+lbQ53BmIMLIry74bjKzX6iHAm8WYamJkhSSEabrWN5D97XnKObjQ==",
+ "dev": true,
+ "license": "BlueOak-1.0.0",
+ "dependencies": {
+ "@isaacs/brace-expansion": "^5.0.0"
+ },
+ "engines": {
+ "node": "20 || >=22"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
}
},
"node_modules/@types/babel__core": {
@@ -8370,6 +8372,7 @@
"integrity": "sha512-qzQZRBqkFsYyaSWXuEHc2WR9c0a0CXwiE5FWUvn7ZM+vdy1uZLfCunD38UzhuB7YN/J11ndbDBcTmOdxJo9Q7A==",
"dev": true,
"license": "MIT",
+ "peer": true,
"dependencies": {
"undici-types": "~7.16.0"
}
@@ -8723,6 +8726,7 @@
"integrity": "sha512-G7Ok9WN/ggW7e/tOf8TQYMaxgID3Iujn231hfi0Pc7ZheztIJVpO44ekY00b7akqc6nZcvregk0Jpah3kep6hA==",
"dev": true,
"license": "MIT",
+ "peer": true,
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
},
@@ -8780,6 +8784,7 @@
"integrity": "sha512-udbCVstxZ5jiPIXrdH+BZWnPatjlYwJuJkDA4Tbo3WyYLh8NvB+h/bKeSZHDOFKfphsZYJQqaFtLeXEqurQn1A==",
"dev": true,
"license": "MIT",
+ "peer": true,
"dependencies": {
"@eslint-community/eslint-utils": "^4.7.0",
"@typescript-eslint/scope-manager": "8.41.0",
@@ -8857,6 +8862,19 @@
"url": "https://opencollective.com/eslint"
}
},
+ "node_modules/@vitejs/plugin-basic-ssl": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/@vitejs/plugin-basic-ssl/-/plugin-basic-ssl-2.1.0.tgz",
+ "integrity": "sha512-dOxxrhgyDIEUADhb/8OlV9JIqYLgos03YorAueTIeOUskLJSEsfwCByjbu98ctXitUN3znXKp0bYD/WHSudCeA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": "^18.0.0 || ^20.0.0 || >=22.0.0"
+ },
+ "peerDependencies": {
+ "vite": "^6.0.0 || ^7.0.0"
+ }
+ },
"node_modules/@webassemblyjs/ast": {
"version": "1.14.1",
"resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.14.1.tgz",
@@ -9048,13 +9066,13 @@
"license": "BSD-3-Clause"
},
"node_modules/abbrev": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-3.0.1.tgz",
- "integrity": "sha512-AO2ac6pjRB3SJmGJo+v5/aK6Omggp6fsLrs6wN9bd35ulu4cCwaAU9+7ZhXjeqHVkaHThLuzH0nZr0YpCDhygg==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-4.0.0.tgz",
+ "integrity": "sha512-a1wflyaL0tHtJSmLSOVybYhy22vRih4eduhhrkcjgrWGnRfrZtovJ2FRjxuTtkkj47O/baf0R86QU5OuYpz8fA==",
"dev": true,
"license": "ISC",
"engines": {
- "node": "^18.17.0 || >=20.5.0"
+ "node": "^20.17.0 || >=22.9.0"
}
},
"node_modules/accepts": {
@@ -9072,16 +9090,20 @@
}
},
"node_modules/accepts/node_modules/mime-types": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.1.tgz",
- "integrity": "sha512-xRc4oEhT6eaBpU1XF7AjpOFD+xQmXNB5OVKwp4tqCuBpHLS/ZbBDrc07mYTDqVMg6PfxUjjNp85O6Cd2Z/5HWA==",
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.2.tgz",
+ "integrity": "sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==",
"dev": true,
"license": "MIT",
"dependencies": {
"mime-db": "^1.54.0"
},
"engines": {
- "node": ">= 0.6"
+ "node": ">=18"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/express"
}
},
"node_modules/acorn": {
@@ -9090,6 +9112,7 @@
"integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==",
"dev": true,
"license": "MIT",
+ "peer": true,
"bin": {
"acorn": "bin/acorn"
},
@@ -9216,6 +9239,7 @@
"integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==",
"dev": true,
"license": "MIT",
+ "peer": true,
"dependencies": {
"fast-deep-equal": "^3.1.3",
"fast-uri": "^3.0.1",
@@ -10174,6 +10198,7 @@
}
],
"license": "MIT",
+ "peer": true,
"dependencies": {
"baseline-browser-mapping": "^2.8.19",
"caniuse-lite": "^1.0.30001751",
@@ -10293,92 +10318,87 @@
}
},
"node_modules/cacache": {
- "version": "19.0.1",
- "resolved": "https://registry.npmjs.org/cacache/-/cacache-19.0.1.tgz",
- "integrity": "sha512-hdsUxulXCi5STId78vRVYEtDAjq99ICAUktLTeTYsLoTE6Z8dS0c8pWNCxwdrk9YfJeobDZc2Y186hD/5ZQgFQ==",
+ "version": "20.0.3",
+ "resolved": "https://registry.npmjs.org/cacache/-/cacache-20.0.3.tgz",
+ "integrity": "sha512-3pUp4e8hv07k1QlijZu6Kn7c9+ZpWWk4j3F8N3xPuCExULobqJydKYOTj1FTq58srkJsXvO7LbGAH4C0ZU3WGw==",
"dev": true,
"license": "ISC",
"dependencies": {
- "@npmcli/fs": "^4.0.0",
+ "@npmcli/fs": "^5.0.0",
"fs-minipass": "^3.0.0",
- "glob": "^10.2.2",
- "lru-cache": "^10.0.1",
+ "glob": "^13.0.0",
+ "lru-cache": "^11.1.0",
"minipass": "^7.0.3",
"minipass-collect": "^2.0.1",
"minipass-flush": "^1.0.5",
"minipass-pipeline": "^1.2.4",
"p-map": "^7.0.2",
- "ssri": "^12.0.0",
- "tar": "^7.4.3",
- "unique-filename": "^4.0.0"
+ "ssri": "^13.0.0",
+ "unique-filename": "^5.0.0"
},
"engines": {
- "node": "^18.17.0 || >=20.5.0"
- }
- },
- "node_modules/cacache/node_modules/chownr": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/chownr/-/chownr-3.0.0.tgz",
- "integrity": "sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==",
- "dev": true,
- "license": "BlueOak-1.0.0",
- "engines": {
- "node": ">=18"
+ "node": "^20.17.0 || >=22.9.0"
}
},
"node_modules/cacache/node_modules/glob": {
- "version": "10.5.0",
- "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz",
- "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==",
+ "version": "13.0.0",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-13.0.0.tgz",
+ "integrity": "sha512-tvZgpqk6fz4BaNZ66ZsRaZnbHvP/jG3uKJvAZOwEVUL4RTA5nJeeLYfyN9/VA8NX/V3IBG+hkeuGpKjvELkVhA==",
"dev": true,
- "license": "ISC",
+ "license": "BlueOak-1.0.0",
"dependencies": {
- "foreground-child": "^3.1.0",
- "jackspeak": "^3.1.2",
- "minimatch": "^9.0.4",
+ "minimatch": "^10.1.1",
"minipass": "^7.1.2",
- "package-json-from-dist": "^1.0.0",
- "path-scurry": "^1.11.1"
+ "path-scurry": "^2.0.0"
},
- "bin": {
- "glob": "dist/esm/bin.mjs"
+ "engines": {
+ "node": "20 || >=22"
},
"funding": {
"url": "https://github.com/sponsors/isaacs"
}
},
"node_modules/cacache/node_modules/lru-cache": {
- "version": "10.4.3",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz",
- "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==",
+ "version": "11.2.5",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.5.tgz",
+ "integrity": "sha512-vFrFJkWtJvJnD5hg+hJvVE8Lh/TcMzKnTgCWmtBipwI5yLX/iX+5UB2tfuyODF5E7k9xEzMdYgGqaSb1c0c5Yw==",
"dev": true,
- "license": "ISC"
+ "license": "BlueOak-1.0.0",
+ "engines": {
+ "node": "20 || >=22"
+ }
},
- "node_modules/cacache/node_modules/tar": {
- "version": "7.5.2",
- "resolved": "https://registry.npmjs.org/tar/-/tar-7.5.2.tgz",
- "integrity": "sha512-7NyxrTE4Anh8km8iEy7o0QYPs+0JKBTj5ZaqHg6B39erLg0qYXN3BijtShwbsNSvQ+LN75+KV+C4QR/f6Gwnpg==",
+ "node_modules/cacache/node_modules/minimatch": {
+ "version": "10.1.1",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.1.1.tgz",
+ "integrity": "sha512-enIvLvRAFZYXJzkCYG5RKmPfrFArdLv+R+lbQ53BmIMLIry74bjKzX6iHAm8WYamJkhSSEabrWN5D97XnKObjQ==",
"dev": true,
"license": "BlueOak-1.0.0",
"dependencies": {
- "@isaacs/fs-minipass": "^4.0.0",
- "chownr": "^3.0.0",
- "minipass": "^7.1.2",
- "minizlib": "^3.1.0",
- "yallist": "^5.0.0"
+ "@isaacs/brace-expansion": "^5.0.0"
},
"engines": {
- "node": ">=18"
+ "node": "20 || >=22"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
}
},
- "node_modules/cacache/node_modules/yallist": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-5.0.0.tgz",
- "integrity": "sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==",
+ "node_modules/cacache/node_modules/path-scurry": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.1.tgz",
+ "integrity": "sha512-oWyT4gICAu+kaA7QWk/jvCHWarMKNs6pXOGWKDTr7cw4IGcUbW+PeTfbaQiLGheFRpjo6O9J0PmyMfQPjH71oA==",
"dev": true,
"license": "BlueOak-1.0.0",
+ "dependencies": {
+ "lru-cache": "^11.0.0",
+ "minipass": "^7.1.2"
+ },
"engines": {
- "node": ">=18"
+ "node": "20 || >=22"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
}
},
"node_modules/cachedir": {
@@ -10559,6 +10579,7 @@
"integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==",
"dev": true,
"license": "MIT",
+ "peer": true,
"dependencies": {
"readdirp": "^4.0.1"
},
@@ -10570,13 +10591,13 @@
}
},
"node_modules/chownr": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz",
- "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/chownr/-/chownr-3.0.0.tgz",
+ "integrity": "sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==",
"dev": true,
- "license": "ISC",
+ "license": "BlueOak-1.0.0",
"engines": {
- "node": ">=10"
+ "node": ">=18"
}
},
"node_modules/chrome-trace-event": {
@@ -11198,16 +11219,17 @@
}
},
"node_modules/content-disposition": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-1.0.0.tgz",
- "integrity": "sha512-Au9nRL8VNUut/XSzbQA38+M78dzP4D+eqg3gfJHMIHHYa3bg067xj1KxMUWj+VULbiZMowKngFFbKczUrNJ1mg==",
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-1.0.1.tgz",
+ "integrity": "sha512-oIXISMynqSqm241k6kcQ5UwttDILMK4BiurCfGEREw6+X9jkkpEe5T9FZaApyLGGOnFuyMWZpdolTXMtvEJ08Q==",
"dev": true,
"license": "MIT",
- "dependencies": {
- "safe-buffer": "5.2.1"
- },
"engines": {
- "node": ">= 0.6"
+ "node": ">=18"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/express"
}
},
"node_modules/content-type": {
@@ -11973,8 +11995,7 @@
"resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
"integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==",
"dev": true,
- "license": "MIT",
- "peer": true
+ "license": "MIT"
},
"node_modules/deepmerge": {
"version": "4.3.1",
@@ -12145,9 +12166,9 @@
"license": "Apache-2.0"
},
"node_modules/diff": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz",
- "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==",
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.4.tgz",
+ "integrity": "sha512-X07nttJQkwkfKfvTPG/KSnE2OMdcUCao6+eXF3wmnIQRn2aPAHH3VxDbDOdegkd6JbPsXqShpvEOHfAT+nCNwQ==",
"dev": true,
"license": "BSD-3-Clause",
"engines": {
@@ -12425,6 +12446,7 @@
"integrity": "sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==",
"dev": true,
"license": "MIT",
+ "peer": true,
"dependencies": {
"ansi-colors": "^4.1.1",
"strip-ansi": "^6.0.1"
@@ -12897,6 +12919,7 @@
"integrity": "sha512-82GZUjRS0p/jganf6q1rEO25VSoHH0hKPCTrgillPjdI/3bgBhAE1QzHrHTizjpRvy6pGAvKjDJtk2pF9NDq8w==",
"dev": true,
"license": "MIT",
+ "peer": true,
"bin": {
"eslint-config-prettier": "bin/cli.js"
},
@@ -13548,7 +13571,6 @@
"integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
"dev": true,
"license": "MIT",
- "peer": true,
"dependencies": {
"fast-deep-equal": "^3.1.1",
"fast-json-stable-stringify": "^2.0.0",
@@ -13566,7 +13588,6 @@
"integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==",
"dev": true,
"license": "MIT",
- "peer": true,
"dependencies": {
"balanced-match": "^1.0.0",
"concat-map": "0.0.1"
@@ -13578,7 +13599,6 @@
"integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==",
"dev": true,
"license": "Apache-2.0",
- "peer": true,
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
},
@@ -13592,7 +13612,6 @@
"integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==",
"dev": true,
"license": "MIT",
- "peer": true,
"engines": {
"node": ">= 4"
}
@@ -13602,8 +13621,7 @@
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
"integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
"dev": true,
- "license": "MIT",
- "peer": true
+ "license": "MIT"
},
"node_modules/eslint/node_modules/minimatch": {
"version": "3.1.2",
@@ -13611,7 +13629,6 @@
"integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
"dev": true,
"license": "ISC",
- "peer": true,
"dependencies": {
"brace-expansion": "^1.1.7"
},
@@ -13852,19 +13869,20 @@
"license": "Apache-2.0"
},
"node_modules/express": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/express/-/express-5.1.0.tgz",
- "integrity": "sha512-DT9ck5YIRU+8GYzzU5kT3eHGA5iL+1Zd0EutOmTE9Dtk+Tvuzd23VBU+ec7HPNSTxXYO55gPV/hq4pSBJDjFpA==",
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/express/-/express-5.2.1.tgz",
+ "integrity": "sha512-hIS4idWWai69NezIdRt2xFVofaF4j+6INOpJlVOLDO8zXGpUVEVzIYk12UUi2JzjEzWL3IOAxcTubgz9Po0yXw==",
"dev": true,
"license": "MIT",
"dependencies": {
"accepts": "^2.0.0",
- "body-parser": "^2.2.0",
+ "body-parser": "^2.2.1",
"content-disposition": "^1.0.0",
"content-type": "^1.0.5",
"cookie": "^0.7.1",
"cookie-signature": "^1.2.1",
"debug": "^4.4.0",
+ "depd": "^2.0.0",
"encodeurl": "^2.0.0",
"escape-html": "^1.0.3",
"etag": "^1.8.1",
@@ -13922,16 +13940,20 @@
}
},
"node_modules/express/node_modules/mime-types": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.1.tgz",
- "integrity": "sha512-xRc4oEhT6eaBpU1XF7AjpOFD+xQmXNB5OVKwp4tqCuBpHLS/ZbBDrc07mYTDqVMg6PfxUjjNp85O6Cd2Z/5HWA==",
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.2.tgz",
+ "integrity": "sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==",
"dev": true,
"license": "MIT",
"dependencies": {
"mime-db": "^1.54.0"
},
"engines": {
- "node": ">= 0.6"
+ "node": ">=18"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/express"
}
},
"node_modules/extend": {
@@ -14038,8 +14060,7 @@
"resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
"integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==",
"dev": true,
- "license": "MIT",
- "peer": true
+ "license": "MIT"
},
"node_modules/fast-uri": {
"version": "3.1.0",
@@ -14151,7 +14172,6 @@
"integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==",
"dev": true,
"license": "MIT",
- "peer": true,
"dependencies": {
"flat-cache": "^4.0.0"
},
@@ -14173,9 +14193,9 @@
}
},
"node_modules/finalhandler": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-2.1.0.tgz",
- "integrity": "sha512-/t88Ty3d5JWQbWYgaOGCCYfXRwV1+be02WqYYlL6h0lEiUAMPM8o8qKGO01YIkOHzka2up08wvgYD0mDiI+q3Q==",
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-2.1.1.tgz",
+ "integrity": "sha512-S8KoZgRZN+a5rNwqTxlZZePjT/4cnm0ROV70LedRHZ0p8u9fRID0hJUZQpkKLzro8LfmC8sx23bY6tVNxv8pQA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -14187,7 +14207,11 @@
"statuses": "^2.0.1"
},
"engines": {
- "node": ">= 0.8"
+ "node": ">= 18.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/express"
}
},
"node_modules/find-cache-directory": {
@@ -14269,7 +14293,6 @@
"integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==",
"dev": true,
"license": "MIT",
- "peer": true,
"dependencies": {
"flatted": "^3.2.9",
"keyv": "^4.5.4"
@@ -14283,8 +14306,7 @@
"resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz",
"integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==",
"dev": true,
- "license": "ISC",
- "peer": true
+ "license": "ISC"
},
"node_modules/follow-redirects": {
"version": "1.15.11",
@@ -14988,6 +15010,17 @@
"node": ">= 0.4"
}
},
+ "node_modules/hono": {
+ "version": "4.11.7",
+ "resolved": "https://registry.npmjs.org/hono/-/hono-4.11.7.tgz",
+ "integrity": "sha512-l7qMiNee7t82bH3SeyUCt9UF15EVmaBvsppY2zQtrbIhl/yzBTny+YUxsVjSjQ6gaqaeVtZmGocom8TzBlA4Yw==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
+ "engines": {
+ "node": ">=16.9.0"
+ }
+ },
"node_modules/hosted-git-info": {
"version": "9.0.2",
"resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-9.0.2.tgz",
@@ -15045,9 +15078,9 @@
"license": "MIT"
},
"node_modules/htmlparser2": {
- "version": "10.0.0",
- "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-10.0.0.tgz",
- "integrity": "sha512-TwAZM+zE5Tq3lrEHvOlvwgj1XLWQCtaaibSN11Q+gGBAS7Y1uZSWwXXRe4iF6OXnaq1riyQAPFOBtYc77Mxq0g==",
+ "version": "10.1.0",
+ "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-10.1.0.tgz",
+ "integrity": "sha512-VTZkM9GWRAtEpveh7MSF6SjjrpNVNNVJfFup7xTY3UpFtm67foy9HDVXneLtFVt4pMz5kZtgNcvCniNFb1hlEQ==",
"dev": true,
"funding": [
"https://github.com/fb55/htmlparser2?sponsor=1",
@@ -15060,8 +15093,21 @@
"dependencies": {
"domelementtype": "^2.3.0",
"domhandler": "^5.0.3",
- "domutils": "^3.2.1",
- "entities": "^6.0.0"
+ "domutils": "^3.2.2",
+ "entities": "^7.0.1"
+ }
+ },
+ "node_modules/htmlparser2/node_modules/entities": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-7.0.1.tgz",
+ "integrity": "sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "engines": {
+ "node": ">=0.12"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/entities?sponsor=1"
}
},
"node_modules/http-cache-semantics": {
@@ -15481,9 +15527,9 @@
}
},
"node_modules/ip-address": {
- "version": "10.0.1",
- "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.0.1.tgz",
- "integrity": "sha512-NWv9YLW4PoW2B7xtzaS3NCot75m6nK7Icdv0o3lfMceJVRfSoQwqD4wEH5rLwoKJwUiZ/rfpiVBhnaF0FK4HoA==",
+ "version": "10.1.0",
+ "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.1.0.tgz",
+ "integrity": "sha512-XXADHxXmvT9+CRxhXg56LJovE+bmWnEWB78LB83VZTprKTmaC5QfruXocxzTZ2Kl0DNwKuBdlIhjL8LeY8Sf8Q==",
"dev": true,
"license": "MIT",
"engines": {
@@ -16292,6 +16338,7 @@
"integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==",
"dev": true,
"license": "MIT",
+ "peer": true,
"dependencies": {
"@jest/core": "^29.7.0",
"@jest/types": "^29.6.3",
@@ -16614,6 +16661,7 @@
"integrity": "sha512-k9iQbsf9OyOfdzWH8HDmrRT0gSIcX+FLNW7IQq94tFX0gynPwqDTW0Ho6iMVNjGz/nb+l/vW3dWM2bbLLpkbXA==",
"dev": true,
"license": "MIT",
+ "peer": true,
"dependencies": {
"@jest/environment": "^29.7.0",
"@jest/fake-timers": "^29.7.0",
@@ -17093,6 +17141,7 @@
"integrity": "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==",
"dev": true,
"license": "MIT",
+ "peer": true,
"bin": {
"jiti": "bin/jiti.js"
}
@@ -17123,6 +17172,16 @@
"node": ">= 20"
}
},
+ "node_modules/jose": {
+ "version": "6.1.3",
+ "resolved": "https://registry.npmjs.org/jose/-/jose-6.1.3.tgz",
+ "integrity": "sha512-0TpaTfihd4QMNwrz/ob2Bp7X04yuxJkjRGi4aKmOqwhov54i6u79oCv7T+C7lo70MKH6BesI3vscD1yb/yzKXQ==",
+ "dev": true,
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/sponsors/panva"
+ }
+ },
"node_modules/js-tokens": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
@@ -17272,8 +17331,7 @@
"resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz",
"integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==",
"dev": true,
- "license": "MIT",
- "peer": true
+ "license": "MIT"
},
"node_modules/json-parse-better-errors": {
"version": "1.0.2",
@@ -17283,13 +17341,13 @@
"license": "MIT"
},
"node_modules/json-parse-even-better-errors": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-4.0.0.tgz",
- "integrity": "sha512-lR4MXjGNgkJc7tkQ97kb2nuEMnNCyU//XYVH0MKTGcXEiSudQ5MKGKen3C5QubYy0vmq+JGitUg92uuywGEwIA==",
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-5.0.0.tgz",
+ "integrity": "sha512-ZF1nxZ28VhQouRWhUcVlUIN3qwSgPuswK05s/HIaoetAoE/9tngVmCHjSxmSQPav1nd+lPtTL0YZ/2AFdR/iYQ==",
"dev": true,
"license": "MIT",
"engines": {
- "node": "^18.17.0 || >=20.5.0"
+ "node": "^20.17.0 || >=22.9.0"
}
},
"node_modules/json-parse-helpfulerror": {
@@ -17316,6 +17374,13 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/json-schema-typed": {
+ "version": "8.0.2",
+ "resolved": "https://registry.npmjs.org/json-schema-typed/-/json-schema-typed-8.0.2.tgz",
+ "integrity": "sha512-fQhoXdcvc3V28x7C7BMs4P5+kNlgUURe2jmUT1T//oBRMDrqy1QPelJimwZGo7Hg9VPV3EQV5Bnq4hbFy2vetA==",
+ "dev": true,
+ "license": "BSD-2-Clause"
+ },
"node_modules/json-server": {
"version": "0.17.4",
"resolved": "https://registry.npmjs.org/json-server/-/json-server-0.17.4.tgz",
@@ -17769,8 +17834,7 @@
"resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
"integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==",
"dev": true,
- "license": "MIT",
- "peer": true
+ "license": "MIT"
},
"node_modules/json-stringify-safe": {
"version": "5.0.1",
@@ -17798,6 +17862,7 @@
"integrity": "sha512-uuPNLJkKN8NXAlZlQ6kmUF9qO+T6Kyd7oV4+/7yy8Jz6+MZNyhPq8EdLpdfnPVzUC8qSf1b4j1azKaGnFsjmsw==",
"dev": true,
"license": "MIT",
+ "peer": true,
"dependencies": {
"acorn": "^8.5.0",
"eslint-visitor-keys": "^3.0.0",
@@ -17942,7 +18007,6 @@
"integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==",
"dev": true,
"license": "MIT",
- "peer": true,
"dependencies": {
"json-buffer": "3.0.1"
}
@@ -18004,6 +18068,7 @@
"integrity": "sha512-kdTwsyRuncDfjEs0DlRILWNvxhDG/Zij4YLO4TMJgDLW+8OzpfkdPnRgrsRuY1o+oaxJGWsps5f/RVBgGmmN0w==",
"dev": true,
"license": "Apache-2.0",
+ "peer": true,
"dependencies": {
"copy-anything": "^2.0.1",
"parse-node-version": "^1.0.1",
@@ -18177,6 +18242,7 @@
"integrity": "sha512-SL0JY3DaxylDuo/MecFeiC+7pedM0zia33zl0vcjgwcq1q1FWWF1To9EIauPbl8GbMCU0R2e0uJ8bZunhYKD2g==",
"dev": true,
"license": "MIT",
+ "peer": true,
"dependencies": {
"cli-truncate": "^4.0.0",
"colorette": "^2.0.20",
@@ -18408,9 +18474,9 @@
}
},
"node_modules/lodash": {
- "version": "4.17.21",
- "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
- "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
+ "version": "4.17.23",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.23.tgz",
+ "integrity": "sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w==",
"license": "MIT"
},
"node_modules/lodash-id": {
@@ -18770,26 +18836,36 @@
"license": "ISC"
},
"node_modules/make-fetch-happen": {
- "version": "14.0.3",
- "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-14.0.3.tgz",
- "integrity": "sha512-QMjGbFTP0blj97EeidG5hk/QhKQ3T4ICckQGLgz38QF7Vgbk6e6FTARN8KhKxyBbWn8R0HU+bnw8aSoFPD4qtQ==",
+ "version": "15.0.3",
+ "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-15.0.3.tgz",
+ "integrity": "sha512-iyyEpDty1mwW3dGlYXAJqC/azFn5PPvgKVwXayOGBSmKLxhKZ9fg4qIan2ePpp1vJIwfFiO34LAPZgq9SZW9Aw==",
"dev": true,
"license": "ISC",
"dependencies": {
- "@npmcli/agent": "^3.0.0",
- "cacache": "^19.0.1",
+ "@npmcli/agent": "^4.0.0",
+ "cacache": "^20.0.1",
"http-cache-semantics": "^4.1.1",
"minipass": "^7.0.2",
- "minipass-fetch": "^4.0.0",
+ "minipass-fetch": "^5.0.0",
"minipass-flush": "^1.0.5",
"minipass-pipeline": "^1.2.4",
"negotiator": "^1.0.0",
- "proc-log": "^5.0.0",
+ "proc-log": "^6.0.0",
"promise-retry": "^2.0.1",
- "ssri": "^12.0.0"
+ "ssri": "^13.0.0"
},
"engines": {
- "node": "^18.17.0 || >=20.5.0"
+ "node": "^20.17.0 || >=22.9.0"
+ }
+ },
+ "node_modules/make-fetch-happen/node_modules/proc-log": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-6.1.0.tgz",
+ "integrity": "sha512-iG+GYldRf2BQ0UDUAd6JQ/RwzaQy6mXmsk/IzlYyal4A4SNFw54MeH4/tLkF4I5WoWG9SQwuqWzS99jaFQHBuQ==",
+ "dev": true,
+ "license": "ISC",
+ "engines": {
+ "node": "^20.17.0 || >=22.9.0"
}
},
"node_modules/makeerror": {
@@ -19097,9 +19173,9 @@
}
},
"node_modules/minipass-fetch": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-4.0.1.tgz",
- "integrity": "sha512-j7U11C5HXigVuutxebFadoYBbd7VSdZWggSe64NVdvWNBqGAiXPL2QVCehjmw7lY1oF9gOllYbORh+hiNgfPgQ==",
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-5.0.0.tgz",
+ "integrity": "sha512-fiCdUALipqgPWrOVTz9fw0XhcazULXOSU6ie40DDbX1F49p1dBrSRBuswndTx1x3vEb/g0FT7vC4c4C2u/mh3A==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -19108,7 +19184,7 @@
"minizlib": "^3.0.1"
},
"engines": {
- "node": "^18.17.0 || >=20.5.0"
+ "node": "^20.17.0 || >=22.9.0"
},
"optionalDependencies": {
"encoding": "^0.1.13"
@@ -19226,19 +19302,6 @@
"node": ">= 18"
}
},
- "node_modules/mkdirp": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
- "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
- "dev": true,
- "license": "MIT",
- "bin": {
- "mkdirp": "bin/cmd.js"
- },
- "engines": {
- "node": ">=10"
- }
- },
"node_modules/moment": {
"version": "2.30.1",
"resolved": "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz",
@@ -19475,6 +19538,7 @@
"integrity": "sha512-hwPZNeV/6C3pWojK70AHxe6uk1rz2bzoe+WdH+GIWouUcyXrjYQjOFyLfOGD0ia9D+yWVzjsi4CKVK/dQFDQ6Q==",
"dev": true,
"license": "MIT",
+ "peer": true,
"dependencies": {
"@ampproject/remapping": "^2.3.0",
"@rollup/plugin-json": "^6.1.0",
@@ -19574,28 +19638,28 @@
}
},
"node_modules/node-gyp": {
- "version": "11.5.0",
- "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-11.5.0.tgz",
- "integrity": "sha512-ra7Kvlhxn5V9Slyus0ygMa2h+UqExPqUIkfk7Pc8QTLT956JLSy51uWFwHtIYy0vI8cB4BDhc/S03+880My/LQ==",
+ "version": "12.2.0",
+ "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-12.2.0.tgz",
+ "integrity": "sha512-q23WdzrQv48KozXlr0U1v9dwO/k59NHeSzn6loGcasyf0UnSrtzs8kRxM+mfwJSf0DkX0s43hcqgnSO4/VNthQ==",
"dev": true,
"license": "MIT",
"dependencies": {
"env-paths": "^2.2.0",
"exponential-backoff": "^3.1.1",
"graceful-fs": "^4.2.6",
- "make-fetch-happen": "^14.0.3",
- "nopt": "^8.0.0",
- "proc-log": "^5.0.0",
+ "make-fetch-happen": "^15.0.0",
+ "nopt": "^9.0.0",
+ "proc-log": "^6.0.0",
"semver": "^7.3.5",
- "tar": "^7.4.3",
+ "tar": "^7.5.4",
"tinyglobby": "^0.2.12",
- "which": "^5.0.0"
+ "which": "^6.0.0"
},
"bin": {
"node-gyp": "bin/node-gyp.js"
},
"engines": {
- "node": "^18.17.0 || >=20.5.0"
+ "node": "^20.17.0 || >=22.9.0"
}
},
"node_modules/node-gyp-build-optional-packages": {
@@ -19625,16 +19689,6 @@
"node": ">=8"
}
},
- "node_modules/node-gyp/node_modules/chownr": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/chownr/-/chownr-3.0.0.tgz",
- "integrity": "sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==",
- "dev": true,
- "license": "BlueOak-1.0.0",
- "engines": {
- "node": ">=18"
- }
- },
"node_modules/node-gyp/node_modules/env-paths": {
"version": "2.2.1",
"resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz",
@@ -19655,27 +19709,20 @@
"node": ">=16"
}
},
- "node_modules/node-gyp/node_modules/tar": {
- "version": "7.5.2",
- "resolved": "https://registry.npmjs.org/tar/-/tar-7.5.2.tgz",
- "integrity": "sha512-7NyxrTE4Anh8km8iEy7o0QYPs+0JKBTj5ZaqHg6B39erLg0qYXN3BijtShwbsNSvQ+LN75+KV+C4QR/f6Gwnpg==",
+ "node_modules/node-gyp/node_modules/proc-log": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-6.1.0.tgz",
+ "integrity": "sha512-iG+GYldRf2BQ0UDUAd6JQ/RwzaQy6mXmsk/IzlYyal4A4SNFw54MeH4/tLkF4I5WoWG9SQwuqWzS99jaFQHBuQ==",
"dev": true,
- "license": "BlueOak-1.0.0",
- "dependencies": {
- "@isaacs/fs-minipass": "^4.0.0",
- "chownr": "^3.0.0",
- "minipass": "^7.1.2",
- "minizlib": "^3.1.0",
- "yallist": "^5.0.0"
- },
+ "license": "ISC",
"engines": {
- "node": ">=18"
+ "node": "^20.17.0 || >=22.9.0"
}
},
"node_modules/node-gyp/node_modules/which": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/which/-/which-5.0.0.tgz",
- "integrity": "sha512-JEdGzHwwkrbWoGOlIHqQ5gtprKGOenpDHpxE9zVR1bWbOtYRyPPHMe9FaP6x61CmNaTThSkb0DAJte5jD+DmzQ==",
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/which/-/which-6.0.0.tgz",
+ "integrity": "sha512-f+gEpIKMR9faW/JgAgPK1D7mekkFoqbmiwvNzuhsHetni20QSgzg9Vhn0g2JSJkkfehQnqdUAx7/e15qS1lPxg==",
"dev": true,
"license": "ISC",
"dependencies": {
@@ -19685,17 +19732,7 @@
"node-which": "bin/which.js"
},
"engines": {
- "node": "^18.17.0 || >=20.5.0"
- }
- },
- "node_modules/node-gyp/node_modules/yallist": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-5.0.0.tgz",
- "integrity": "sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==",
- "dev": true,
- "license": "BlueOak-1.0.0",
- "engines": {
- "node": ">=18"
+ "node": "^20.17.0 || >=22.9.0"
}
},
"node_modules/node-int64": {
@@ -19853,19 +19890,19 @@
}
},
"node_modules/nopt": {
- "version": "8.1.0",
- "resolved": "https://registry.npmjs.org/nopt/-/nopt-8.1.0.tgz",
- "integrity": "sha512-ieGu42u/Qsa4TFktmaKEwM6MQH0pOWnaB3htzh0JRtx84+Mebc0cbZYN5bC+6WTZ4+77xrL9Pn5m7CV6VIkV7A==",
+ "version": "9.0.0",
+ "resolved": "https://registry.npmjs.org/nopt/-/nopt-9.0.0.tgz",
+ "integrity": "sha512-Zhq3a+yFKrYwSBluL4H9XP3m3y5uvQkB/09CwDruCiRmR/UJYnn9W4R48ry0uGC70aeTPKLynBtscP9efFFcPw==",
"dev": true,
"license": "ISC",
"dependencies": {
- "abbrev": "^3.0.0"
+ "abbrev": "^4.0.0"
},
"bin": {
"nopt": "bin/nopt.js"
},
"engines": {
- "node": "^18.17.0 || >=20.5.0"
+ "node": "^20.17.0 || >=22.9.0"
}
},
"node_modules/normalize-package-data": {
@@ -19919,39 +19956,39 @@
}
},
"node_modules/npm-bundled": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-4.0.0.tgz",
- "integrity": "sha512-IxaQZDMsqfQ2Lz37VvyyEtKLe8FsRZuysmedy/N06TU1RyVppYKXrO4xIhR0F+7ubIBox6Q7nir6fQI3ej39iA==",
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-5.0.0.tgz",
+ "integrity": "sha512-JLSpbzh6UUXIEoqPsYBvVNVmyrjVZ1fzEFbqxKkTJQkWBO3xFzFT+KDnSKQWwOQNbuWRwt5LSD6HOTLGIWzfrw==",
"dev": true,
"license": "ISC",
"dependencies": {
- "npm-normalize-package-bin": "^4.0.0"
+ "npm-normalize-package-bin": "^5.0.0"
},
"engines": {
- "node": "^18.17.0 || >=20.5.0"
+ "node": "^20.17.0 || >=22.9.0"
}
},
"node_modules/npm-install-checks": {
- "version": "7.1.2",
- "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-7.1.2.tgz",
- "integrity": "sha512-z9HJBCYw9Zr8BqXcllKIs5nI+QggAImbBdHphOzVYrz2CB4iQ6FzWyKmlqDZua+51nAu7FcemlbTc9VgQN5XDQ==",
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-8.0.0.tgz",
+ "integrity": "sha512-ScAUdMpyzkbpxoNekQ3tNRdFI8SJ86wgKZSQZdUxT+bj0wVFpsEMWnkXP0twVe1gJyNF5apBWDJhhIbgrIViRA==",
"dev": true,
"license": "BSD-2-Clause",
"dependencies": {
"semver": "^7.1.1"
},
"engines": {
- "node": "^18.17.0 || >=20.5.0"
+ "node": "^20.17.0 || >=22.9.0"
}
},
"node_modules/npm-normalize-package-bin": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-4.0.0.tgz",
- "integrity": "sha512-TZKxPvItzai9kN9H/TkmCtx/ZN/hvr3vUycjlfmH0ootY9yFBzNOpiXAdIn1Iteqsvk4lQn6B5PTrt+n6h8k/w==",
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-5.0.0.tgz",
+ "integrity": "sha512-CJi3OS4JLsNMmr2u07OJlhcrPxCeOeP/4xq67aWNai6TNWWbTrlNDgl8NcFKVlcBKp18GPj+EzbNIgrBfZhsag==",
"dev": true,
"license": "ISC",
"engines": {
- "node": "^18.17.0 || >=20.5.0"
+ "node": "^20.17.0 || >=22.9.0"
}
},
"node_modules/npm-package-arg": {
@@ -19985,9 +20022,9 @@
}
},
"node_modules/npm-packlist/node_modules/proc-log": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-6.0.0.tgz",
- "integrity": "sha512-KG/XsTDN901PNfPfAMmj6N/Ywg9tM+bHK8pAz+27fS4N4Pcr+4zoYBOcGSBu6ceXYNPxkLpa4ohtfxV1XcLAfA==",
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-6.1.0.tgz",
+ "integrity": "sha512-iG+GYldRf2BQ0UDUAd6JQ/RwzaQy6mXmsk/IzlYyal4A4SNFw54MeH4/tLkF4I5WoWG9SQwuqWzS99jaFQHBuQ==",
"dev": true,
"license": "ISC",
"engines": {
@@ -19995,111 +20032,49 @@
}
},
"node_modules/npm-pick-manifest": {
- "version": "10.0.0",
- "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-10.0.0.tgz",
- "integrity": "sha512-r4fFa4FqYY8xaM7fHecQ9Z2nE9hgNfJR+EmoKv0+chvzWkBcORX3r0FpTByP+CbOVJDladMXnPQGVN8PBLGuTQ==",
+ "version": "11.0.3",
+ "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-11.0.3.tgz",
+ "integrity": "sha512-buzyCfeoGY/PxKqmBqn1IUJrZnUi1VVJTdSSRPGI60tJdUhUoSQFhs0zycJokDdOznQentgrpf8LayEHyyYlqQ==",
"dev": true,
"license": "ISC",
"dependencies": {
- "npm-install-checks": "^7.1.0",
- "npm-normalize-package-bin": "^4.0.0",
- "npm-package-arg": "^12.0.0",
+ "npm-install-checks": "^8.0.0",
+ "npm-normalize-package-bin": "^5.0.0",
+ "npm-package-arg": "^13.0.0",
"semver": "^7.3.5"
},
"engines": {
- "node": "^18.17.0 || >=20.5.0"
- }
- },
- "node_modules/npm-pick-manifest/node_modules/hosted-git-info": {
- "version": "8.1.0",
- "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-8.1.0.tgz",
- "integrity": "sha512-Rw/B2DNQaPBICNXEm8balFz9a6WpZrkCGpcWFpy7nCj+NyhSdqXipmfvtmWt9xGfp0wZnBxB+iVpLmQMYt47Tw==",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "lru-cache": "^10.0.1"
- },
- "engines": {
- "node": "^18.17.0 || >=20.5.0"
- }
- },
- "node_modules/npm-pick-manifest/node_modules/lru-cache": {
- "version": "10.4.3",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz",
- "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==",
- "dev": true,
- "license": "ISC"
- },
- "node_modules/npm-pick-manifest/node_modules/npm-package-arg": {
- "version": "12.0.2",
- "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-12.0.2.tgz",
- "integrity": "sha512-f1NpFjNI9O4VbKMOlA5QoBq/vSQPORHcTZ2feJpFkTHJ9eQkdlmZEKSjcAhxTGInC7RlEyScT9ui67NaOsjFWA==",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "hosted-git-info": "^8.0.0",
- "proc-log": "^5.0.0",
- "semver": "^7.3.5",
- "validate-npm-package-name": "^6.0.0"
- },
- "engines": {
- "node": "^18.17.0 || >=20.5.0"
+ "node": "^20.17.0 || >=22.9.0"
}
},
"node_modules/npm-registry-fetch": {
- "version": "18.0.2",
- "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-18.0.2.tgz",
- "integrity": "sha512-LeVMZBBVy+oQb5R6FDV9OlJCcWDU+al10oKpe+nsvcHnG24Z3uM3SvJYKfGJlfGjVU8v9liejCrUR/M5HO5NEQ==",
+ "version": "19.1.1",
+ "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-19.1.1.tgz",
+ "integrity": "sha512-TakBap6OM1w0H73VZVDf44iFXsOS3h+L4wVMXmbWOQroZgFhMch0juN6XSzBNlD965yIKvWg2dfu7NSiaYLxtw==",
"dev": true,
"license": "ISC",
"dependencies": {
- "@npmcli/redact": "^3.0.0",
+ "@npmcli/redact": "^4.0.0",
"jsonparse": "^1.3.1",
- "make-fetch-happen": "^14.0.0",
+ "make-fetch-happen": "^15.0.0",
"minipass": "^7.0.2",
- "minipass-fetch": "^4.0.0",
+ "minipass-fetch": "^5.0.0",
"minizlib": "^3.0.1",
- "npm-package-arg": "^12.0.0",
- "proc-log": "^5.0.0"
- },
- "engines": {
- "node": "^18.17.0 || >=20.5.0"
- }
- },
- "node_modules/npm-registry-fetch/node_modules/hosted-git-info": {
- "version": "8.1.0",
- "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-8.1.0.tgz",
- "integrity": "sha512-Rw/B2DNQaPBICNXEm8balFz9a6WpZrkCGpcWFpy7nCj+NyhSdqXipmfvtmWt9xGfp0wZnBxB+iVpLmQMYt47Tw==",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "lru-cache": "^10.0.1"
+ "npm-package-arg": "^13.0.0",
+ "proc-log": "^6.0.0"
},
"engines": {
- "node": "^18.17.0 || >=20.5.0"
+ "node": "^20.17.0 || >=22.9.0"
}
},
- "node_modules/npm-registry-fetch/node_modules/lru-cache": {
- "version": "10.4.3",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz",
- "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==",
- "dev": true,
- "license": "ISC"
- },
- "node_modules/npm-registry-fetch/node_modules/npm-package-arg": {
- "version": "12.0.2",
- "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-12.0.2.tgz",
- "integrity": "sha512-f1NpFjNI9O4VbKMOlA5QoBq/vSQPORHcTZ2feJpFkTHJ9eQkdlmZEKSjcAhxTGInC7RlEyScT9ui67NaOsjFWA==",
+ "node_modules/npm-registry-fetch/node_modules/proc-log": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-6.1.0.tgz",
+ "integrity": "sha512-iG+GYldRf2BQ0UDUAd6JQ/RwzaQy6mXmsk/IzlYyal4A4SNFw54MeH4/tLkF4I5WoWG9SQwuqWzS99jaFQHBuQ==",
"dev": true,
"license": "ISC",
- "dependencies": {
- "hosted-git-info": "^8.0.0",
- "proc-log": "^5.0.0",
- "semver": "^7.3.5",
- "validate-npm-package-name": "^6.0.0"
- },
"engines": {
- "node": "^18.17.0 || >=20.5.0"
+ "node": "^20.17.0 || >=22.9.0"
}
},
"node_modules/npm-run-all": {
@@ -20534,7 +20509,6 @@
"integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==",
"dev": true,
"license": "MIT",
- "peer": true,
"dependencies": {
"deep-is": "^0.1.3",
"fast-levenshtein": "^2.0.6",
@@ -20796,9 +20770,9 @@
}
},
"node_modules/p-map": {
- "version": "7.0.3",
- "resolved": "https://registry.npmjs.org/p-map/-/p-map-7.0.3.tgz",
- "integrity": "sha512-VkndIv2fIB99swvQoA65bm+fsmt6UNdGeIB0oxBs+WhAhdh08QA04JXpI7rbB9r08/nkbysKoya9rtDERYOYMA==",
+ "version": "7.0.4",
+ "resolved": "https://registry.npmjs.org/p-map/-/p-map-7.0.4.tgz",
+ "integrity": "sha512-tkAQEw8ysMzmkhgw8k+1U/iPhWNhykKnSk4Rd5zLoPJCuJaGRPo6YposrZgaxHKzDHdDWWZvE/Sk7hsL2X/CpQ==",
"dev": true,
"license": "MIT",
"engines": {
@@ -20854,29 +20828,29 @@
"license": "BlueOak-1.0.0"
},
"node_modules/pacote": {
- "version": "21.0.0",
- "resolved": "https://registry.npmjs.org/pacote/-/pacote-21.0.0.tgz",
- "integrity": "sha512-lcqexq73AMv6QNLo7SOpz0JJoaGdS3rBFgF122NZVl1bApo2mfu+XzUBU/X/XsiJu+iUmKpekRayqQYAs+PhkA==",
+ "version": "21.0.4",
+ "resolved": "https://registry.npmjs.org/pacote/-/pacote-21.0.4.tgz",
+ "integrity": "sha512-RplP/pDW0NNNDh3pnaoIWYPvNenS7UqMbXyvMqJczosiFWTeGGwJC2NQBLqKf4rGLFfwCOnntw1aEp9Jiqm1MA==",
"dev": true,
"license": "ISC",
"dependencies": {
- "@npmcli/git": "^6.0.0",
- "@npmcli/installed-package-contents": "^3.0.0",
- "@npmcli/package-json": "^6.0.0",
- "@npmcli/promise-spawn": "^8.0.0",
- "@npmcli/run-script": "^9.0.0",
- "cacache": "^19.0.0",
+ "@npmcli/git": "^7.0.0",
+ "@npmcli/installed-package-contents": "^4.0.0",
+ "@npmcli/package-json": "^7.0.0",
+ "@npmcli/promise-spawn": "^9.0.0",
+ "@npmcli/run-script": "^10.0.0",
+ "cacache": "^20.0.0",
"fs-minipass": "^3.0.0",
"minipass": "^7.0.2",
- "npm-package-arg": "^12.0.0",
- "npm-packlist": "^10.0.0",
- "npm-pick-manifest": "^10.0.0",
- "npm-registry-fetch": "^18.0.0",
- "proc-log": "^5.0.0",
+ "npm-package-arg": "^13.0.0",
+ "npm-packlist": "^10.0.1",
+ "npm-pick-manifest": "^11.0.1",
+ "npm-registry-fetch": "^19.0.0",
+ "proc-log": "^6.0.0",
"promise-retry": "^2.0.1",
- "sigstore": "^3.0.0",
- "ssri": "^12.0.0",
- "tar": "^6.1.11"
+ "sigstore": "^4.0.0",
+ "ssri": "^13.0.0",
+ "tar": "^7.4.3"
},
"bin": {
"pacote": "bin/index.js"
@@ -20885,40 +20859,14 @@
"node": "^20.17.0 || >=22.9.0"
}
},
- "node_modules/pacote/node_modules/hosted-git-info": {
- "version": "8.1.0",
- "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-8.1.0.tgz",
- "integrity": "sha512-Rw/B2DNQaPBICNXEm8balFz9a6WpZrkCGpcWFpy7nCj+NyhSdqXipmfvtmWt9xGfp0wZnBxB+iVpLmQMYt47Tw==",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "lru-cache": "^10.0.1"
- },
- "engines": {
- "node": "^18.17.0 || >=20.5.0"
- }
- },
- "node_modules/pacote/node_modules/lru-cache": {
- "version": "10.4.3",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz",
- "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==",
- "dev": true,
- "license": "ISC"
- },
- "node_modules/pacote/node_modules/npm-package-arg": {
- "version": "12.0.2",
- "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-12.0.2.tgz",
- "integrity": "sha512-f1NpFjNI9O4VbKMOlA5QoBq/vSQPORHcTZ2feJpFkTHJ9eQkdlmZEKSjcAhxTGInC7RlEyScT9ui67NaOsjFWA==",
+ "node_modules/pacote/node_modules/proc-log": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-6.1.0.tgz",
+ "integrity": "sha512-iG+GYldRf2BQ0UDUAd6JQ/RwzaQy6mXmsk/IzlYyal4A4SNFw54MeH4/tLkF4I5WoWG9SQwuqWzS99jaFQHBuQ==",
"dev": true,
"license": "ISC",
- "dependencies": {
- "hosted-git-info": "^8.0.0",
- "proc-log": "^5.0.0",
- "semver": "^7.3.5",
- "validate-npm-package-name": "^6.0.0"
- },
"engines": {
- "node": "^18.17.0 || >=20.5.0"
+ "node": "^20.17.0 || >=22.9.0"
}
},
"node_modules/pako": {
@@ -21218,9 +21166,9 @@
}
},
"node_modules/pkce-challenge": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/pkce-challenge/-/pkce-challenge-5.0.0.tgz",
- "integrity": "sha512-ueGLflrrnvwB3xuo/uGob5pd5FN7l0MsLf0Z87o/UQmRtwjvfylfc9MurIxRAWywCYTgrvpXBcqjV4OfCYGCIQ==",
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/pkce-challenge/-/pkce-challenge-5.0.1.tgz",
+ "integrity": "sha512-wQ0b/W4Fr01qtpHlqSqspcj3EhBvimsdh0KlHhH8HRZnMsEa0ea2fTULOXOS9ccQr3om+GcGRk4e+isrZWV8qQ==",
"dev": true,
"license": "MIT",
"engines": {
@@ -21346,6 +21294,7 @@
}
],
"license": "MIT",
+ "peer": true,
"dependencies": {
"nanoid": "^3.3.11",
"picocolors": "^1.1.1",
@@ -21621,6 +21570,7 @@
"integrity": "sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ==",
"dev": true,
"license": "MIT",
+ "peer": true,
"bin": {
"prettier": "bin/prettier.cjs"
},
@@ -21887,23 +21837,44 @@
"dev": true,
"license": "MIT",
"engines": {
- "node": ">= 0.6"
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/raw-body": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-3.0.2.tgz",
+ "integrity": "sha512-K5zQjDllxWkf7Z5xJdV0/B0WTNqx6vxG70zJE4N0kBs4LovmEYWJzQGxC9bS9RAKu3bgM40lrd5zoLJ12MQ5BA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "bytes": "~3.1.2",
+ "http-errors": "~2.0.1",
+ "iconv-lite": "~0.7.0",
+ "unpipe": "~1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.10"
}
},
- "node_modules/raw-body": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-3.0.1.tgz",
- "integrity": "sha512-9G8cA+tuMS75+6G/TzW8OtLzmBDMo8p1JRxN5AZ+LAp8uxGA8V8GZm4GQ4/N5QNQEnLmg6SS7wyuSmbKepiKqA==",
+ "node_modules/raw-body/node_modules/http-errors": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz",
+ "integrity": "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==",
"dev": true,
"license": "MIT",
"dependencies": {
- "bytes": "3.1.2",
- "http-errors": "2.0.0",
- "iconv-lite": "0.7.0",
- "unpipe": "1.0.0"
+ "depd": "~2.0.0",
+ "inherits": "~2.0.4",
+ "setprototypeof": "~1.2.0",
+ "statuses": "~2.0.2",
+ "toidentifier": "~1.0.1"
},
"engines": {
- "node": ">= 0.10"
+ "node": ">= 0.8"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/express"
}
},
"node_modules/react-is": {
@@ -22449,6 +22420,7 @@
"integrity": "sha512-3GuObel8h7Kqdjt0gxkEzaifHTqLVW56Y/bjN7PSQtkKr0w3V/QYSdt6QWYtd7A1xUtYQigtdUfgj1RvWVtorw==",
"dev": true,
"license": "MIT",
+ "peer": true,
"dependencies": {
"@types/estree": "1.0.8"
},
@@ -22585,6 +22557,7 @@
"resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.2.tgz",
"integrity": "sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==",
"license": "Apache-2.0",
+ "peer": true,
"dependencies": {
"tslib": "^2.1.0"
}
@@ -22692,6 +22665,7 @@
"integrity": "sha512-9GUyuksjw70uNpb1MTYWsH9MQHOHY6kwfnkafC24+7aOMZn9+rVMBxRbLvw756mrBFbIsFg6Xw9IkR2Fnn3k+Q==",
"dev": true,
"license": "MIT",
+ "peer": true,
"dependencies": {
"chokidar": "^4.0.0",
"immutable": "^5.0.2",
@@ -22864,39 +22838,68 @@
"license": "MIT"
},
"node_modules/send": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/send/-/send-1.2.0.tgz",
- "integrity": "sha512-uaW0WwXKpL9blXE2o0bRhoL2EGXIrZxQ2ZQ4mgcfoBxdFmQold+qWsD2jLrfZ0trjKL6vOw0j//eAwcALFjKSw==",
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/send/-/send-1.2.1.tgz",
+ "integrity": "sha512-1gnZf7DFcoIcajTjTwjwuDjzuz4PPcY2StKPlsGAQ1+YH20IRVrBaXSWmdjowTJ6u8Rc01PoYOGHXfP1mYcZNQ==",
"dev": true,
"license": "MIT",
"dependencies": {
- "debug": "^4.3.5",
+ "debug": "^4.4.3",
"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",
+ "http-errors": "^2.0.1",
+ "mime-types": "^3.0.2",
"ms": "^2.1.3",
"on-finished": "^2.4.1",
"range-parser": "^1.2.1",
- "statuses": "^2.0.1"
+ "statuses": "^2.0.2"
},
"engines": {
"node": ">= 18"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/express"
+ }
+ },
+ "node_modules/send/node_modules/http-errors": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz",
+ "integrity": "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "depd": "~2.0.0",
+ "inherits": "~2.0.4",
+ "setprototypeof": "~1.2.0",
+ "statuses": "~2.0.2",
+ "toidentifier": "~1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/express"
}
},
"node_modules/send/node_modules/mime-types": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.1.tgz",
- "integrity": "sha512-xRc4oEhT6eaBpU1XF7AjpOFD+xQmXNB5OVKwp4tqCuBpHLS/ZbBDrc07mYTDqVMg6PfxUjjNp85O6Cd2Z/5HWA==",
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.2.tgz",
+ "integrity": "sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==",
"dev": true,
"license": "MIT",
"dependencies": {
"mime-db": "^1.54.0"
},
"engines": {
- "node": ">= 0.6"
+ "node": ">=18"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/express"
}
},
"node_modules/serialize-javascript": {
@@ -23020,9 +23023,9 @@
}
},
"node_modules/serve-static": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-2.2.0.tgz",
- "integrity": "sha512-61g9pCh0Vnh7IutZjtLGGpTA355+OPn2TyDv/6ivP2h/AdAVX9azsoxmg2/M6nZeQZNYBEwIcsne1mJd9oQItQ==",
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-2.2.1.tgz",
+ "integrity": "sha512-xRXBn0pPqQTVQiC8wyQrKs2MOlX24zQ0POGaj0kultvoOCstBQM5yvOhAVSUwOMjQtTvsPWoNCHfPGwaaQJhTw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -23033,6 +23036,10 @@
},
"engines": {
"node": ">= 18"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/express"
}
},
"node_modules/server-destroy": {
@@ -23243,21 +23250,21 @@
}
},
"node_modules/sigstore": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/sigstore/-/sigstore-3.1.0.tgz",
- "integrity": "sha512-ZpzWAFHIFqyFE56dXqgX/DkDRZdz+rRcjoIk/RQU4IX0wiCv1l8S7ZrXDHcCc+uaf+6o7w3h2l3g6GYG5TKN9Q==",
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/sigstore/-/sigstore-4.1.0.tgz",
+ "integrity": "sha512-/fUgUhYghuLzVT/gaJoeVehLCgZiUxPCPMcyVNY0lIf/cTCz58K/WTI7PefDarXxp9nUKpEwg1yyz3eSBMTtgA==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
- "@sigstore/bundle": "^3.1.0",
- "@sigstore/core": "^2.0.0",
- "@sigstore/protobuf-specs": "^0.4.0",
- "@sigstore/sign": "^3.1.0",
- "@sigstore/tuf": "^3.1.0",
- "@sigstore/verify": "^2.1.0"
+ "@sigstore/bundle": "^4.0.0",
+ "@sigstore/core": "^3.1.0",
+ "@sigstore/protobuf-specs": "^0.5.0",
+ "@sigstore/sign": "^4.1.0",
+ "@sigstore/tuf": "^4.0.1",
+ "@sigstore/verify": "^3.1.0"
},
"engines": {
- "node": "^18.17.0 || >=20.5.0"
+ "node": "^20.17.0 || >=22.9.0"
}
},
"node_modules/simple-update-notifier": {
@@ -23599,16 +23606,16 @@
}
},
"node_modules/ssri": {
- "version": "12.0.0",
- "resolved": "https://registry.npmjs.org/ssri/-/ssri-12.0.0.tgz",
- "integrity": "sha512-S7iGNosepx9RadX82oimUkvr0Ct7IjJbEbs4mJcTxst8um95J3sDYU1RBEOvdu6oL1Wek2ODI5i4MAw+dZ6cAQ==",
+ "version": "13.0.0",
+ "resolved": "https://registry.npmjs.org/ssri/-/ssri-13.0.0.tgz",
+ "integrity": "sha512-yizwGBpbCn4YomB2lzhZqrHLJoqFGXihNbib3ozhqF/cIp5ue+xSmOQrjNasEE62hFxsCcg/V/z23t4n8jMEng==",
"dev": true,
"license": "ISC",
"dependencies": {
"minipass": "^7.0.3"
},
"engines": {
- "node": "^18.17.0 || >=20.5.0"
+ "node": "^20.17.0 || >=22.9.0"
}
},
"node_modules/stack-utils": {
@@ -24091,6 +24098,7 @@
"integrity": "sha512-6A2rnmW5xZMdw11LYjhcI5846rt9pbLSabY5XPxo+XWdxwZaFEn47Go4NzFiHu9sNNmr/kXivP1vStfvMaK1GQ==",
"dev": true,
"license": "MIT",
+ "peer": true,
"dependencies": {
"@alloc/quick-lru": "^5.2.0",
"arg": "^5.0.2",
@@ -24216,99 +24224,39 @@
}
},
"node_modules/tar": {
- "version": "6.2.1",
- "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz",
- "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "chownr": "^2.0.0",
- "fs-minipass": "^2.0.0",
- "minipass": "^5.0.0",
- "minizlib": "^2.1.1",
- "mkdirp": "^1.0.3",
- "yallist": "^4.0.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/tar/node_modules/fs-minipass": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz",
- "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "minipass": "^3.0.0"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/tar/node_modules/fs-minipass/node_modules/minipass": {
- "version": "3.3.6",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz",
- "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
+ "version": "7.5.7",
+ "resolved": "https://registry.npmjs.org/tar/-/tar-7.5.7.tgz",
+ "integrity": "sha512-fov56fJiRuThVFXD6o6/Q354S7pnWMJIVlDBYijsTNx6jKSE4pvrDTs6lUnmGvNyfJwFQQwWy3owKz1ucIhveQ==",
"dev": true,
- "license": "ISC",
+ "license": "BlueOak-1.0.0",
"dependencies": {
- "yallist": "^4.0.0"
+ "@isaacs/fs-minipass": "^4.0.0",
+ "chownr": "^3.0.0",
+ "minipass": "^7.1.2",
+ "minizlib": "^3.1.0",
+ "yallist": "^5.0.0"
},
"engines": {
- "node": ">=8"
+ "node": ">=18"
}
},
- "node_modules/tar/node_modules/minipass": {
+ "node_modules/tar/node_modules/yallist": {
"version": "5.0.0",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz",
- "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==",
- "dev": true,
- "license": "ISC",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/tar/node_modules/minizlib": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz",
- "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "minipass": "^3.0.0",
- "yallist": "^4.0.0"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/tar/node_modules/minizlib/node_modules/minipass": {
- "version": "3.3.6",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz",
- "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-5.0.0.tgz",
+ "integrity": "sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==",
"dev": true,
- "license": "ISC",
- "dependencies": {
- "yallist": "^4.0.0"
- },
+ "license": "BlueOak-1.0.0",
"engines": {
- "node": ">=8"
+ "node": ">=18"
}
},
- "node_modules/tar/node_modules/yallist": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
- "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
- "dev": true,
- "license": "ISC"
- },
"node_modules/terser": {
"version": "5.43.1",
"resolved": "https://registry.npmjs.org/terser/-/terser-5.43.1.tgz",
"integrity": "sha512-+6erLbBm0+LROX2sPXlUYx/ux5PyE9K/a92Wrt6oA+WDAoFTdpHE5tCYCI5PNzq2y8df4rA+QgHLJuR4jNymsg==",
"dev": true,
"license": "BSD-2-Clause",
+ "peer": true,
"dependencies": {
"@jridgewell/source-map": "^0.3.3",
"acorn": "^8.14.0",
@@ -24727,6 +24675,7 @@
"integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==",
"dev": true,
"license": "MIT",
+ "peer": true,
"dependencies": {
"@cspotcode/source-map-support": "^0.8.0",
"@tsconfig/node10": "^1.0.7",
@@ -24812,21 +24761,22 @@
"version": "2.8.1",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
"integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==",
- "license": "0BSD"
+ "license": "0BSD",
+ "peer": true
},
"node_modules/tuf-js": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/tuf-js/-/tuf-js-3.1.0.tgz",
- "integrity": "sha512-3T3T04WzowbwV2FDiGXBbr81t64g1MUGGJRgT4x5o97N+8ArdhVCAF9IxFrxuSJmM3E5Asn7nKHkao0ibcZXAg==",
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/tuf-js/-/tuf-js-4.1.0.tgz",
+ "integrity": "sha512-50QV99kCKH5P/Vs4E2Gzp7BopNV+KzTXqWeaxrfu5IQJBOULRsTIS9seSsOVT8ZnGXzCyx55nYWAi4qJzpZKEQ==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@tufjs/models": "3.0.1",
- "debug": "^4.4.1",
- "make-fetch-happen": "^14.0.3"
+ "@tufjs/models": "4.1.0",
+ "debug": "^4.4.3",
+ "make-fetch-happen": "^15.0.1"
},
"engines": {
- "node": "^18.17.0 || >=20.5.0"
+ "node": "^20.17.0 || >=22.9.0"
}
},
"node_modules/tunnel-agent": {
@@ -24898,16 +24848,20 @@
}
},
"node_modules/type-is/node_modules/mime-types": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.1.tgz",
- "integrity": "sha512-xRc4oEhT6eaBpU1XF7AjpOFD+xQmXNB5OVKwp4tqCuBpHLS/ZbBDrc07mYTDqVMg6PfxUjjNp85O6Cd2Z/5HWA==",
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.2.tgz",
+ "integrity": "sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==",
"dev": true,
"license": "MIT",
"dependencies": {
"mime-db": "^1.54.0"
},
"engines": {
- "node": ">= 0.6"
+ "node": ">=18"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/express"
}
},
"node_modules/typed-array-buffer": {
@@ -25001,6 +24955,7 @@
"integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==",
"dev": true,
"license": "Apache-2.0",
+ "peer": true,
"bin": {
"tsc": "bin/tsc",
"tsserver": "bin/tsserver"
@@ -25069,6 +25024,7 @@
"integrity": "sha512-6m1I5RmHBGTnUGS113G04DMu3CpSdxCAU/UvtjNWL4Nuf3MW9tQhiJqRlHzChIkhy6kZSAQmc+I1bcGjE3yNKg==",
"dev": true,
"license": "MIT",
+ "peer": true,
"dependencies": {
"@typescript-eslint/scope-manager": "8.46.3",
"@typescript-eslint/types": "8.46.3",
@@ -25346,29 +25302,29 @@
}
},
"node_modules/unique-filename": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-4.0.0.tgz",
- "integrity": "sha512-XSnEewXmQ+veP7xX2dS5Q4yZAvO40cBN2MWkJ7D/6sW4Dg6wYBNwM1Vrnz1FhH5AdeLIlUXRI9e28z1YZi71NQ==",
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-5.0.0.tgz",
+ "integrity": "sha512-2RaJTAvAb4owyjllTfXzFClJ7WsGxlykkPvCr9pA//LD9goVq+m4PPAeBgNodGZ7nSrntT/auWpJ6Y5IFXcfjg==",
"dev": true,
"license": "ISC",
"dependencies": {
- "unique-slug": "^5.0.0"
+ "unique-slug": "^6.0.0"
},
"engines": {
- "node": "^18.17.0 || >=20.5.0"
+ "node": "^20.17.0 || >=22.9.0"
}
},
"node_modules/unique-slug": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-5.0.0.tgz",
- "integrity": "sha512-9OdaqO5kwqR+1kVgHAhsp5vPNU0hnxRa26rBFNfNgM7M6pNtgzeBn3s/xbyCQL3dcjzOatcef6UUHpB/6MaETg==",
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-6.0.0.tgz",
+ "integrity": "sha512-4Lup7Ezn8W3d52/xBhZBVdx323ckxa7DEvd9kPQHppTkLoJXw6ltrBCyj5pnrxj0qKDxYMJ56CoxNuFCscdTiw==",
"dev": true,
"license": "ISC",
"dependencies": {
"imurmurhash": "^0.1.4"
},
"engines": {
- "node": "^18.17.0 || >=20.5.0"
+ "node": "^20.17.0 || >=22.9.0"
}
},
"node_modules/universalify": {
@@ -25572,6 +25528,82 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/vite": {
+ "version": "7.1.11",
+ "resolved": "https://registry.npmjs.org/vite/-/vite-7.1.11.tgz",
+ "integrity": "sha512-uzcxnSDVjAopEUjljkWh8EIrg6tlzrjFUfMcR1EVsRDGwf/ccef0qQPRyOrROwhrTDaApueq+ja+KLPlzR/zdg==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "esbuild": "^0.25.0",
+ "fdir": "^6.5.0",
+ "picomatch": "^4.0.3",
+ "postcss": "^8.5.6",
+ "rollup": "^4.43.0",
+ "tinyglobby": "^0.2.15"
+ },
+ "bin": {
+ "vite": "bin/vite.js"
+ },
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ },
+ "funding": {
+ "url": "https://github.com/vitejs/vite?sponsor=1"
+ },
+ "optionalDependencies": {
+ "fsevents": "~2.3.3"
+ },
+ "peerDependencies": {
+ "@types/node": "^20.19.0 || >=22.12.0",
+ "jiti": ">=1.21.0",
+ "less": "^4.0.0",
+ "lightningcss": "^1.21.0",
+ "sass": "^1.70.0",
+ "sass-embedded": "^1.70.0",
+ "stylus": ">=0.54.8",
+ "sugarss": "^5.0.0",
+ "terser": "^5.16.0",
+ "tsx": "^4.8.1",
+ "yaml": "^2.4.2"
+ },
+ "peerDependenciesMeta": {
+ "@types/node": {
+ "optional": true
+ },
+ "jiti": {
+ "optional": true
+ },
+ "less": {
+ "optional": true
+ },
+ "lightningcss": {
+ "optional": true
+ },
+ "sass": {
+ "optional": true
+ },
+ "sass-embedded": {
+ "optional": true
+ },
+ "stylus": {
+ "optional": true
+ },
+ "sugarss": {
+ "optional": true
+ },
+ "terser": {
+ "optional": true
+ },
+ "tsx": {
+ "optional": true
+ },
+ "yaml": {
+ "optional": true
+ }
+ }
+ },
"node_modules/vscode-languageserver-textdocument": {
"version": "1.0.12",
"resolved": "https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.12.tgz",
@@ -25677,6 +25709,7 @@
"integrity": "sha512-4JLXU0tD6OZNVqlwzm3HGEhAHufSiyv+skb7q0d2367VDMzrU1Q/ZeepvkcHH0rZie6uqEtTQQe0OEOOluH3Mg==",
"dev": true,
"license": "MIT",
+ "peer": true,
"dependencies": {
"@types/eslint-scope": "^3.7.7",
"@types/estree": "^1.0.8",
@@ -25756,6 +25789,7 @@
"integrity": "sha512-QcQ72gh8a+7JO63TAx/6XZf/CWhgMzu5m0QirvPfGvptOusAxG12w2+aua1Jkjr7hzaWDnJ2n6JFeexMHI+Zjg==",
"dev": true,
"license": "MIT",
+ "peer": true,
"dependencies": {
"@types/bonjour": "^3.5.13",
"@types/connect-history-api-fallback": "^1.5.4",
@@ -25814,6 +25848,7 @@
"integrity": "sha512-dVd04UKsfpINUnK0yBoYHDF3xu7xVH4BuDotC/xGuycx4CgbP48X/KF/586bcObxT0HENHXEU8Nqtu6NR+eKhw==",
"dev": true,
"license": "MIT",
+ "peer": true,
"dependencies": {
"@types/body-parser": "*",
"@types/express-serve-static-core": "^4.17.33",
@@ -26505,7 +26540,6 @@
"integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==",
"dev": true,
"license": "MIT",
- "peer": true,
"engines": {
"node": ">=0.10.0"
}
@@ -26676,6 +26710,7 @@
"integrity": "sha512-lcYcMxX2PO9XMGvAJkJ3OsNMw+/7FKes7/hgerGUYWIoWu5j/+YQqcZr5JnPZWzOsEBgMbSbiSTn/dv/69Mkpw==",
"dev": true,
"license": "ISC",
+ "peer": true,
"bin": {
"yaml": "bin.mjs"
},
@@ -26823,30 +26858,32 @@
}
},
"node_modules/zod": {
- "version": "3.25.76",
- "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz",
- "integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==",
+ "version": "4.1.13",
+ "resolved": "https://registry.npmjs.org/zod/-/zod-4.1.13.tgz",
+ "integrity": "sha512-AvvthqfqrAhNH9dnfmrfKzX5upOdjUVJYFqNSlkmGf64gRaTzlPwz99IHYnVs28qYAybvAlBV+H7pn0saFY4Ig==",
"dev": true,
"license": "MIT",
+ "peer": true,
"funding": {
"url": "https://github.com/sponsors/colinhacks"
}
},
"node_modules/zod-to-json-schema": {
- "version": "3.24.6",
- "resolved": "https://registry.npmjs.org/zod-to-json-schema/-/zod-to-json-schema-3.24.6.tgz",
- "integrity": "sha512-h/z3PKvcTcTetyjl1fkj79MHNEjm+HpD6NXheWjzOekY7kV+lwDYnHw+ivHkijnCSMz1yJaWBD9vu/Fcmk+vEg==",
+ "version": "3.25.1",
+ "resolved": "https://registry.npmjs.org/zod-to-json-schema/-/zod-to-json-schema-3.25.1.tgz",
+ "integrity": "sha512-pM/SU9d3YAggzi6MtR4h7ruuQlqKtad8e9S0fmxcMi+ueAK5Korys/aWcV9LIIHTVbj01NdzxcnXSN+O74ZIVA==",
"dev": true,
"license": "ISC",
"peerDependencies": {
- "zod": "^3.24.1"
+ "zod": "^3.25 || ^4"
}
},
"node_modules/zone.js": {
"version": "0.15.1",
"resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.15.1.tgz",
"integrity": "sha512-XE96n56IQpJM7NAoXswY3XRLcWFW83xe0BiAOeMD7K5k5xecOeul3Qcpx6GqEeeHNkW5DWL5zOyTbEfB4eti8w==",
- "license": "MIT"
+ "license": "MIT",
+ "peer": true
}
}
}
diff --git a/package.json b/package.json
index 92094e3..f4dcca9 100644
--- a/package.json
+++ b/package.json
@@ -28,16 +28,16 @@
},
"private": true,
"dependencies": {
- "@angular/animations": "~20.2.1",
+ "@angular/animations": "^20.3.16",
"@angular/cdk": "^20.2.0",
- "@angular/common": "~20.2.1",
- "@angular/compiler": "~20.2.1",
- "@angular/core": "~20.2.1",
- "@angular/forms": "~20.2.1",
+ "@angular/common": "^20.3.16",
+ "@angular/compiler": "~20.3.16",
+ "@angular/core": "~20.3.16",
+ "@angular/forms": "^20.3.16",
"@angular/material": "^20.2.0",
- "@angular/platform-browser": "~20.2.1",
- "@angular/platform-browser-dynamic": "~20.2.1",
- "@angular/router": "~20.2.1",
+ "@angular/platform-browser": "^20.3.16",
+ "@angular/platform-browser-dynamic": "^20.3.16",
+ "@angular/router": "^20.3.16",
"js2xmlparser": "^5.0.0",
"jszip": "^3.10.1",
"lodash": "^4.17.21",
@@ -47,8 +47,8 @@
},
"devDependencies": {
"@angular-devkit/build-angular": "^20.2.0",
- "@angular/cli": "~20.2.0",
- "@angular/compiler-cli": "~20.2.1",
+ "@angular/cli": "^20.3.15",
+ "@angular/compiler-cli": "^20.3.16",
"@angular/material-moment-adapter": "^20.2.0",
"@fortawesome/angular-fontawesome": "^3.0.0",
"@fortawesome/free-brands-svg-icons": "^7.0.0",
@@ -62,7 +62,7 @@
"autoprefixer": "^10.4.21",
"concurrently": "^9.2.0",
"cypress": "^15.0.0",
- "eslint-config-service-soft": "^2.0.8",
+ "eslint-config-service-soft": "^2.1.2",
"jest": "^29.5.0",
"jest-preset-angular": "^14.0.0",
"json-server": "^0.17.4",
diff --git a/projects/ngx-material-entity-showcase/src/app/components/showcase-inputs/showcase-inputs.component.ts b/projects/ngx-material-entity-showcase/src/app/components/showcase-inputs/showcase-inputs.component.ts
index 2ef6cf0..1676948 100644
--- a/projects/ngx-material-entity-showcase/src/app/components/showcase-inputs/showcase-inputs.component.ts
+++ b/projects/ngx-material-entity-showcase/src/app/components/showcase-inputs/showcase-inputs.component.ts
@@ -39,6 +39,7 @@ export class ShowcaseInputsComponent {
DecoratorTypes.ARRAY,
DecoratorTypes.ARRAY_STRING_AUTOCOMPLETE_CHIPS,
DecoratorTypes.ARRAY_STRING_CHIPS,
+ DecoratorTypes.ARRAY_STRING_DROPDOWN,
DecoratorTypes.ARRAY_DATE,
DecoratorTypes.ARRAY_DATE_TIME,
DecoratorTypes.ARRAY_DATE_RANGE
diff --git a/projects/ngx-material-entity/package.json b/projects/ngx-material-entity/package.json
index a8a8a64..fb052d9 100644
--- a/projects/ngx-material-entity/package.json
+++ b/projects/ngx-material-entity/package.json
@@ -1,6 +1,6 @@
{
"name": "ngx-material-entity",
- "version": "20.0.4",
+ "version": "20.0.5",
"license": "MIT",
"keywords": [
"angular",
diff --git a/projects/ngx-material-entity/src/components/input/array/array-date-time-input/array-date-time-input.component.scss b/projects/ngx-material-entity/src/components/input/array/array-date-time-input/array-date-time-input.component.scss
index f13719e..596c690 100644
--- a/projects/ngx-material-entity/src/components/input/array/array-date-time-input/array-date-time-input.component.scss
+++ b/projects/ngx-material-entity/src/components/input/array/array-date-time-input/array-date-time-input.component.scss
@@ -1,5 +1,5 @@
mat-form-field {
- width: 100%;
+ flex: 1;
}
.buttons {
diff --git a/projects/ngx-material-entity/src/components/input/array/array-string-dropdown-input/array-string-dropdown-input.component.html b/projects/ngx-material-entity/src/components/input/array/array-string-dropdown-input/array-string-dropdown-input.component.html
new file mode 100644
index 0000000..b8b866d
--- /dev/null
+++ b/projects/ngx-material-entity/src/components/input/array/array-string-dropdown-input/array-string-dropdown-input.component.html
@@ -0,0 +1,29 @@
+
+
+ {{metadata.displayName}}
+
+
+
+
+
+
+ @for (value of filteredDropdownValues; track $index) {
+ {{value.displayName}}
+ }
+ @for (value of propertyValue; track $index) {
+ @if (shouldDisplayCurrentValue(value)) {
+ {{getDisplayNameForValue(value)}}
+ }
+ }
+
+ {{getValidationErrorMessage(model)}}
+
\ No newline at end of file
diff --git a/projects/ngx-material-entity/src/components/input/array/array-string-dropdown-input/array-string-dropdown-input.component.scss b/projects/ngx-material-entity/src/components/input/array/array-string-dropdown-input/array-string-dropdown-input.component.scss
new file mode 100644
index 0000000..7254da2
--- /dev/null
+++ b/projects/ngx-material-entity/src/components/input/array/array-string-dropdown-input/array-string-dropdown-input.component.scss
@@ -0,0 +1,19 @@
+mat-form-field {
+ width: 100%;
+}
+
+::ng-deep {
+ .mat-mdc-form-field-has-icon-suffix .mat-mdc-text-field-wrapper {
+ padding-right: 16px;
+ }
+
+ .select-search-input {
+ max-width: 100%;
+ margin-top: -8px;
+ margin-bottom: 8px;
+
+ .mat-mdc-form-field-subscript-wrapper {
+ display: none;
+ }
+ }
+}
\ No newline at end of file
diff --git a/projects/ngx-material-entity/src/components/input/array/array-string-dropdown-input/array-string-dropdown-input.component.ts b/projects/ngx-material-entity/src/components/input/array/array-string-dropdown-input/array-string-dropdown-input.component.ts
new file mode 100644
index 0000000..424462a
--- /dev/null
+++ b/projects/ngx-material-entity/src/components/input/array/array-string-dropdown-input/array-string-dropdown-input.component.ts
@@ -0,0 +1,73 @@
+/* eslint-disable jsdoc/require-jsdoc */
+import { CommonModule } from '@angular/common';
+import { Component, EnvironmentInjector, OnInit, runInInjectionContext } from '@angular/core';
+import { FormsModule } from '@angular/forms';
+import { MatFormFieldModule } from '@angular/material/form-field';
+import { MatInputModule } from '@angular/material/input';
+import { MatSelectModule } from '@angular/material/select';
+import { FaIconComponent, IconDefinition } from '@fortawesome/angular-fontawesome';
+import { faSearch } from '@fortawesome/free-solid-svg-icons';
+
+import { BaseEntityType } from '../../../../classes/entity.model';
+import { DecoratorTypes } from '../../../../decorators/base/decorator-types.enum';
+import { DropdownValue } from '../../../../decorators/base/dropdown-value.interface';
+import { LodashUtilities } from '../../../../encapsulation/lodash.utilities';
+import { NgxMatEntityBaseInputComponent } from '../../base-input.component';
+
+@Component({
+ // eslint-disable-next-line angular/component-selector
+ selector: 'array-string-dropdown-input',
+ templateUrl: './array-string-dropdown-input.component.html',
+ styleUrls: ['./array-string-dropdown-input.component.scss'],
+ standalone: true,
+ imports: [
+ MatInputModule,
+ MatFormFieldModule,
+ MatSelectModule,
+ FormsModule,
+ CommonModule,
+ FaIconComponent
+ ]
+})
+export class ArrayStringDropdownInputComponent>
+ extends NgxMatEntityBaseInputComponent implements OnInit {
+
+ faSearch: IconDefinition = faSearch;
+
+ private dropdownValues: DropdownValue[] = [];
+ filteredDropdownValues: DropdownValue[] = [];
+
+ constructor(private readonly injector: EnvironmentInjector) {
+ super();
+ }
+
+ shouldDisplayCurrentValue(value: string): boolean {
+ return !this.filteredDropdownValues.find(v => v.value === value);
+ }
+
+ getDisplayNameForValue(value: string): string | undefined {
+ const currentDropdownValues: DropdownValue[] = LodashUtilities.cloneDeep(this.dropdownValues)
+ // eslint-disable-next-line typescript/strict-boolean-expressions
+ .filter(v => this.propertyValue?.includes(v.value));
+ return currentDropdownValues.find(v => v.value === value)?.displayName;
+ }
+
+ override ngOnInit(): void {
+ super.ngOnInit();
+ void runInInjectionContext(this.injector, async () => {
+ this.dropdownValues = await this.metadata.dropdownValues(this.entity);
+ this.filteredDropdownValues = LodashUtilities.cloneDeep(this.dropdownValues);
+ });
+ }
+
+ /**
+ * Filters the dropdown values.
+ * @param searchInput - The search input to filter for.
+ */
+ filterDropdownValues(searchInput: string): void {
+ const filter: string = searchInput.toLowerCase();
+ this.filteredDropdownValues = LodashUtilities.cloneDeep(this.dropdownValues).filter(option => {
+ return option.displayName.toLowerCase().includes(filter) || option.value?.toLowerCase().includes(filter);
+ });
+ }
+}
\ No newline at end of file
diff --git a/projects/ngx-material-entity/src/components/input/date/date-time-input/date-time-input.component.scss b/projects/ngx-material-entity/src/components/input/date/date-time-input/date-time-input.component.scss
index 42a75b9..c11e7fd 100644
--- a/projects/ngx-material-entity/src/components/input/date/date-time-input/date-time-input.component.scss
+++ b/projects/ngx-material-entity/src/components/input/date/date-time-input/date-time-input.component.scss
@@ -1,5 +1,5 @@
mat-form-field {
- width: 100%;
+ flex: 1;
}
.date-time {
diff --git a/projects/ngx-material-entity/src/components/input/input.component.html b/projects/ngx-material-entity/src/components/input/input.component.html
index 9391cad..a01b570 100644
--- a/projects/ngx-material-entity/src/components/input/input.component.html
+++ b/projects/ngx-material-entity/src/components/input/input.component.html
@@ -174,6 +174,16 @@
>
}
+ @case (DecoratorTypes.ARRAY_STRING_DROPDOWN) {
+
+
+ }
@@ -278,6 +288,7 @@
[(ngModel)]="entity[propertyKey]"
(selectionChange)="emitChange()"
(opened)="selectSearchInput.focus()"
+ (closed)="selectSearchInput.value = ''; filterObjectDropdownValues('');"
>
@@ -310,6 +321,7 @@
[(ngModel)]="entity[propertyKey]"
(selectionChange)="setReferencesOneObject()"
(opened)="selectSearchInput.focus()"
+ (closed)="selectSearchInput.value = ''; filterReferencesOneValues('');"
>
diff --git a/projects/ngx-material-entity/src/components/input/input.component.ts b/projects/ngx-material-entity/src/components/input/input.component.ts
index 8fb7b49..7d0788a 100644
--- a/projects/ngx-material-entity/src/components/input/input.component.ts
+++ b/projects/ngx-material-entity/src/components/input/input.component.ts
@@ -76,6 +76,7 @@ import { EditActionInternal } from '../table/edit-dialog/edit-data.builder';
import { DisplayColumn, DynamicStyleClasses } from '../table/table-data';
import { BaseTableActionInternal, TableActionInternal } from '../table/table-data.builder';
import { TooltipComponent } from '../tooltip/tooltip.component';
+import { ArrayStringDropdownInputComponent } from './array/array-string-dropdown-input/array-string-dropdown-input.component';
/**
* Generic type for contexts that can fill an inline template.
@@ -201,6 +202,7 @@ type TableContext = InternalCustomTableConfiguration & {
ArrayDateTimeInputComponent,
ArrayStringAutocompleteChipsComponent,
ArrayStringChipsInputComponent,
+ ArrayStringDropdownInputComponent,
DateInputComponent,
DateRangeInputComponent,
DateTimeInputComponent,
diff --git a/projects/ngx-material-entity/src/components/input/number/number-dropdown-input/number-dropdown-input.component.html b/projects/ngx-material-entity/src/components/input/number/number-dropdown-input/number-dropdown-input.component.html
index 5f93206..5e4fa25 100644
--- a/projects/ngx-material-entity/src/components/input/number/number-dropdown-input/number-dropdown-input.component.html
+++ b/projects/ngx-material-entity/src/components/input/number/number-dropdown-input/number-dropdown-input.component.html
@@ -8,6 +8,7 @@
[(ngModel)]="propertyValue"
(selectionChange)="emitChange()"
(opened)="selectSearchInput.focus()"
+ (closed)="selectSearchInput.value = ''; filterDropdownValues('');"
>
diff --git a/projects/ngx-material-entity/src/components/input/number/number-dropdown-input/number-dropdown-input.component.ts b/projects/ngx-material-entity/src/components/input/number/number-dropdown-input/number-dropdown-input.component.ts
index 5b73f86..b348b42 100644
--- a/projects/ngx-material-entity/src/components/input/number/number-dropdown-input/number-dropdown-input.component.ts
+++ b/projects/ngx-material-entity/src/components/input/number/number-dropdown-input/number-dropdown-input.component.ts
@@ -38,7 +38,7 @@ export class NumberDropdownInputComponent[] = [];
get currentDropdownValue(): DropdownValue | undefined {
- return LodashUtilities.cloneDeep(this.dropdownValues ?? [])
+ return LodashUtilities.cloneDeep(this.dropdownValues)
.find(v => v.value === this.propertyValue);
}
diff --git a/projects/ngx-material-entity/src/components/input/relations/references-many-input/references-many-input.component.html b/projects/ngx-material-entity/src/components/input/relations/references-many-input/references-many-input.component.html
index 8c0d601..9c09b32 100644
--- a/projects/ngx-material-entity/src/components/input/relations/references-many-input/references-many-input.component.html
+++ b/projects/ngx-material-entity/src/components/input/relations/references-many-input/references-many-input.component.html
@@ -6,7 +6,13 @@
{{metadata.dropdownLabel}}
-
+
diff --git a/projects/ngx-material-entity/src/components/input/relations/references-many-input/references-many-input.component.ts b/projects/ngx-material-entity/src/components/input/relations/references-many-input/references-many-input.component.ts
index b62ca85..b5ea29c 100644
--- a/projects/ngx-material-entity/src/components/input/relations/references-many-input/references-many-input.component.ts
+++ b/projects/ngx-material-entity/src/components/input/relations/references-many-input/references-many-input.component.ts
@@ -52,7 +52,7 @@ export class ReferencesManyInputComponent | undefined {
- return LodashUtilities.cloneDeep(this.dropdownValues ?? [])
+ return LodashUtilities.cloneDeep(this.dropdownValues)
.find(v => v.value === this.input);
}
diff --git a/projects/ngx-material-entity/src/components/input/string/string-dropdown-input/string-dropdown-input.component.html b/projects/ngx-material-entity/src/components/input/string/string-dropdown-input/string-dropdown-input.component.html
index 5f93206..5e4fa25 100644
--- a/projects/ngx-material-entity/src/components/input/string/string-dropdown-input/string-dropdown-input.component.html
+++ b/projects/ngx-material-entity/src/components/input/string/string-dropdown-input/string-dropdown-input.component.html
@@ -8,6 +8,7 @@
[(ngModel)]="propertyValue"
(selectionChange)="emitChange()"
(opened)="selectSearchInput.focus()"
+ (closed)="selectSearchInput.value = ''; filterDropdownValues('');"
>
diff --git a/projects/ngx-material-entity/src/components/input/string/string-dropdown-input/string-dropdown-input.component.ts b/projects/ngx-material-entity/src/components/input/string/string-dropdown-input/string-dropdown-input.component.ts
index db8dd0a..8a9f0a7 100644
--- a/projects/ngx-material-entity/src/components/input/string/string-dropdown-input/string-dropdown-input.component.ts
+++ b/projects/ngx-material-entity/src/components/input/string/string-dropdown-input/string-dropdown-input.component.ts
@@ -38,7 +38,7 @@ export class StringDropdownInputComponent[] = [];
get currentDropdownValue(): DropdownValue | undefined {
- return LodashUtilities.cloneDeep(this.dropdownValues ?? [])
+ return LodashUtilities.cloneDeep(this.dropdownValues)
.find(v => v.value === this.propertyValue);
}
diff --git a/projects/ngx-material-entity/src/decorators/array/array-decorator-internal.data.ts b/projects/ngx-material-entity/src/decorators/array/array-decorator-internal.data.ts
index 6e0e6f8..0c931d9 100644
--- a/projects/ngx-material-entity/src/decorators/array/array-decorator-internal.data.ts
+++ b/projects/ngx-material-entity/src/decorators/array/array-decorator-internal.data.ts
@@ -2,12 +2,13 @@ import { DateFilterFn } from '@angular/material/datepicker';
import { IconDefinition } from '@fortawesome/angular-fontawesome';
import { faCircleMinus } from '@fortawesome/free-solid-svg-icons';
-import { ArrayDecoratorConfig, AutocompleteStringChipsArrayDecoratorConfig, DateArrayDecoratorConfig, DateRangeArrayDecoratorConfig, DateTimeArrayDecoratorConfig, EditArrayItemDialogData, EntityArrayDecoratorConfig, StringChipsArrayDecoratorConfig } from './array-decorator.data';
+import { ArrayDecoratorConfig, AutocompleteStringChipsArrayDecoratorConfig, DateArrayDecoratorConfig, DateRangeArrayDecoratorConfig, DateTimeArrayDecoratorConfig, EditArrayItemDialogData, EntityArrayDecoratorConfig, StringChipsArrayDecoratorConfig, StringDropdownArrayDecoratorConfig } from './array-decorator.data';
import { BaseEntityType, EntityClassNewable } from '../../classes/entity.model';
import { ConfirmDialogData } from '../../components/confirm-dialog/confirm-dialog-data';
import { ConfirmDialogDataBuilder } from '../../components/confirm-dialog/confirm-dialog-data.builder';
import { CreateData, DisplayColumn, DynamicStyleClasses } from '../../components/table/table-data';
import { defaultDynamicStyleClasses } from '../../functions/default-style-classes.function';
+import { dropdownValuesToFunction } from '../../functions/dropdown-values-to-function.function';
import { getConfigValue } from '../../functions/get-config-value.function';
import { NgxGlobalDefaultValues } from '../../global-configuration-values';
import { DateUtilities, Time } from '../../utilities/date.utilities';
@@ -327,6 +328,25 @@ export class AutocompleteStringChipsArrayDecoratorConfigInternal
}
}
+/**
+ * The internal StringDropdownArrayDecoratorConfig. Sets default values.
+ */
+export class StringDropdownArrayDecoratorConfigInternal extends PropertyDecoratorConfigInternal
+ implements StringDropdownArrayDecoratorConfig {
+ // eslint-disable-next-line jsdoc/require-jsdoc
+ itemType: DecoratorTypes.STRING_DROPDOWN;
+ // eslint-disable-next-line jsdoc/require-jsdoc, typescript/no-explicit-any
+ dropdownValues: (entity: any) => Promise[]>;
+
+ constructor(data: StringDropdownArrayDecoratorConfig) {
+ super(data);
+ this.itemType = data.itemType;
+ // eslint-disable-next-line typescript/no-explicit-any
+ this.dropdownValues = dropdownValuesToFunction(data.dropdownValues) as (entity: any) => Promise[]>;
+ this.defaultWidths = data.defaultWidths ?? [6, 12, 12];
+ }
+}
+
/**
* Gets the default dialog data for the error dialog to display when the user tries to add a duplicate value.
* @param data - The Array Decorator data.
diff --git a/projects/ngx-material-entity/src/decorators/array/array-decorator.data.ts b/projects/ngx-material-entity/src/decorators/array/array-decorator.data.ts
index ca7d178..b1173a1 100644
--- a/projects/ngx-material-entity/src/decorators/array/array-decorator.data.ts
+++ b/projects/ngx-material-entity/src/decorators/array/array-decorator.data.ts
@@ -9,7 +9,7 @@ import { DecoratorTypes } from '../base/decorator-types.enum';
import { DropdownValue } from '../base/dropdown-value.interface';
import { PropertyDecoratorConfig } from '../base/property-decorator.data';
import { DateRange } from '../date/date-decorator.data';
-import { StringAutocompleteValues } from '../string/string-decorator.data';
+import { RequiredStringDropdownValues, StringAutocompleteValues } from '../string/string-decorator.data';
/**
* Base definition for the @array metadata.
@@ -288,4 +288,17 @@ export interface AutocompleteStringChipsArrayDecoratorConfig extends ArrayDecora
* @default false
*/
restrictToOptions?: boolean
+}
+
+/**
+ * Definition for an array of strings displayed in a dropdown.
+ */
+export interface StringDropdownArrayDecoratorConfig extends ArrayDecoratorConfig {
+ // eslint-disable-next-line jsdoc/require-jsdoc
+ itemType: DecoratorTypes.STRING_DROPDOWN,
+ /**
+ * The values of the dropdown, consisting of a name to display and the actual value
+ * Can also receive a function to determine the values.
+ */
+ dropdownValues: RequiredStringDropdownValues
}
\ No newline at end of file
diff --git a/projects/ngx-material-entity/src/decorators/array/array.decorator.ts b/projects/ngx-material-entity/src/decorators/array/array.decorator.ts
index 058933d..d9b50e7 100644
--- a/projects/ngx-material-entity/src/decorators/array/array.decorator.ts
+++ b/projects/ngx-material-entity/src/decorators/array/array.decorator.ts
@@ -1,5 +1,5 @@
-import { AutocompleteStringChipsArrayDecoratorConfigInternal, DateArrayDecoratorConfigInternal, DateRangeArrayDecoratorConfigInternal, DateTimeArrayDecoratorConfigInternal, EntityArrayDecoratorConfigInternal, StringChipsArrayDecoratorConfigInternal } from './array-decorator-internal.data';
-import { AutocompleteStringChipsArrayDecoratorConfig, DateArrayDecoratorConfig, DateRangeArrayDecoratorConfig, DateTimeArrayDecoratorConfig, EntityArrayDecoratorConfig, StringChipsArrayDecoratorConfig } from './array-decorator.data';
+import { AutocompleteStringChipsArrayDecoratorConfigInternal, DateArrayDecoratorConfigInternal, DateRangeArrayDecoratorConfigInternal, DateTimeArrayDecoratorConfigInternal, EntityArrayDecoratorConfigInternal, StringChipsArrayDecoratorConfigInternal, StringDropdownArrayDecoratorConfigInternal } from './array-decorator-internal.data';
+import { AutocompleteStringChipsArrayDecoratorConfig, DateArrayDecoratorConfig, DateRangeArrayDecoratorConfig, DateTimeArrayDecoratorConfig, EntityArrayDecoratorConfig, StringChipsArrayDecoratorConfig, StringDropdownArrayDecoratorConfig } from './array-decorator.data';
import { BaseEntityType } from '../../classes/entity.model';
import { needsUpdateGlobalDefaults } from '../../default-global-configuration-values';
import { baseProperty } from '../base/base-property.decorator';
@@ -15,6 +15,7 @@ export function array>(
metadata: EntityArrayDecoratorConfig
| StringChipsArrayDecoratorConfig
| AutocompleteStringChipsArrayDecoratorConfig
+ | StringDropdownArrayDecoratorConfig
| DateArrayDecoratorConfig
| DateTimeArrayDecoratorConfig
| DateRangeArrayDecoratorConfig
@@ -50,6 +51,12 @@ export function array>(
DecoratorTypes.ARRAY_STRING_AUTOCOMPLETE_CHIPS
);
}
+ case DecoratorTypes.STRING_DROPDOWN: {
+ return baseProperty(
+ new StringDropdownArrayDecoratorConfigInternal(metadata),
+ DecoratorTypes.ARRAY_STRING_DROPDOWN
+ );
+ }
default: {
// eslint-disable-next-line typescript/no-explicit-any, typescript/no-unsafe-member-access
throw new Error(`Unknown itemType ${(metadata as any).itemType}`);
diff --git a/projects/ngx-material-entity/src/decorators/base/decorator-types.enum.ts b/projects/ngx-material-entity/src/decorators/base/decorator-types.enum.ts
index 30c5cc3..ba91570 100644
--- a/projects/ngx-material-entity/src/decorators/base/decorator-types.enum.ts
+++ b/projects/ngx-material-entity/src/decorators/base/decorator-types.enum.ts
@@ -1,5 +1,5 @@
/* eslint-disable stylistic/indent */
-import { AutocompleteStringChipsArrayDecoratorConfigInternal, DateArrayDecoratorConfigInternal, DateRangeArrayDecoratorConfigInternal, DateTimeArrayDecoratorConfigInternal, EntityArrayDecoratorConfigInternal, StringChipsArrayDecoratorConfigInternal } from '../array/array-decorator-internal.data';
+import { AutocompleteStringChipsArrayDecoratorConfigInternal, DateArrayDecoratorConfigInternal, DateRangeArrayDecoratorConfigInternal, DateTimeArrayDecoratorConfigInternal, EntityArrayDecoratorConfigInternal, StringChipsArrayDecoratorConfigInternal, StringDropdownArrayDecoratorConfigInternal } from '../array/array-decorator-internal.data';
import { CheckboxBooleanDecoratorConfigInternal, DropdownBooleanDecoratorConfigInternal, ToggleBooleanDecoratorConfigInternal } from '../boolean/boolean-decorator-internal.data';
import { CustomDecoratorConfigInternal } from '../custom/custom-decorator-internal.data';
import { DateRangeDateDecoratorConfigInternal, DateTimeDateDecoratorConfigInternal, DefaultDateDecoratorConfigInternal } from '../date/date-decorator-internal.data';
@@ -34,6 +34,7 @@ export enum DecoratorTypes {
ARRAY_DATE_RANGE = 'arrayDateRange',
ARRAY_STRING_CHIPS = 'arrayStringChips',
ARRAY_STRING_AUTOCOMPLETE_CHIPS = 'arrayStringAutocompleteChips',
+ ARRAY_STRING_DROPDOWN = 'arrayStringDropdown',
DATE = 'date',
DATE_RANGE = 'dateRange',
DATE_TIME = 'dateTime',
@@ -71,6 +72,7 @@ export type DecoratorType>
: T extends DecoratorTypes.ARRAY_DATE_RANGE ? DateRangeArrayDecoratorConfigInternal
: T extends DecoratorTypes.ARRAY_STRING_CHIPS ? StringChipsArrayDecoratorConfigInternal
: T extends DecoratorTypes.ARRAY_STRING_AUTOCOMPLETE_CHIPS ? AutocompleteStringChipsArrayDecoratorConfigInternal
+ : T extends DecoratorTypes.ARRAY_STRING_DROPDOWN ? StringDropdownArrayDecoratorConfigInternal
: T extends DecoratorTypes.DATE ? DefaultDateDecoratorConfigInternal
: T extends DecoratorTypes.DATE_RANGE ? DateRangeDateDecoratorConfigInternal
: T extends DecoratorTypes.DATE_TIME ? DateTimeDateDecoratorConfigInternal
diff --git a/projects/ngx-material-entity/src/decorators/string/string-decorator.data.ts b/projects/ngx-material-entity/src/decorators/string/string-decorator.data.ts
index 6224ce3..ddca2fa 100644
--- a/projects/ngx-material-entity/src/decorators/string/string-decorator.data.ts
+++ b/projects/ngx-material-entity/src/decorators/string/string-decorator.data.ts
@@ -9,6 +9,14 @@ export type StringDropdownValues
// eslint-disable-next-line typescript/no-explicit-any
| ((entity: any) => Promise[]>);
+// eslint-disable-next-line jsdoc/require-jsdoc
+export type RequiredStringDropdownValues
+ = DropdownValue[]
+ // eslint-disable-next-line typescript/no-explicit-any
+ | ((entity: any) => DropdownValue[])
+ // eslint-disable-next-line typescript/no-explicit-any
+ | ((entity: any) => Promise[]>);
+
// eslint-disable-next-line jsdoc/require-jsdoc
export type StringAutocompleteValues
= string[]
diff --git a/projects/ngx-material-entity/src/functions/get-changes-tooltip-content.function.ts b/projects/ngx-material-entity/src/functions/get-changes-tooltip-content.function.ts
index dd939cd..c67a077 100644
--- a/projects/ngx-material-entity/src/functions/get-changes-tooltip-content.function.ts
+++ b/projects/ngx-material-entity/src/functions/get-changes-tooltip-content.function.ts
@@ -23,7 +23,7 @@ export function getChangesTooltipContent\n`;
for (const change of changes) {
- res = res.concat(`\n\t- ${String(change.key)}
`);
+ res = res.concat(`\n\t- ${change.name ?? String(change.key)}
`);
}
res = res.concat('\n
');
return res;
diff --git a/projects/ngx-material-entity/src/mocks/test-entity.interface.ts b/projects/ngx-material-entity/src/mocks/test-entity.interface.ts
index fc7b59e..bb10d31 100644
--- a/projects/ngx-material-entity/src/mocks/test-entity.interface.ts
+++ b/projects/ngx-material-entity/src/mocks/test-entity.interface.ts
@@ -157,9 +157,11 @@ export interface TestEntityWithoutCustomPropertiesInterface {
dropdownObjectValue: TestObjectEntity,
optionalObjectValue?: TestObjectEntity,
stringChipsArrayValue: string[],
- stringChipsAutocompleteArrayValue: string[],
stringChipsArrayValueWithConfig: string[],
+ stringChipsAutocompleteArrayValue: string[],
stringChipsAutocompleteArrayValueWithConfig: string[],
+ stringDropdownArrayValue: string[],
+ stringDropdownArrayValueWithConfig: string[],
orderValue1: string,
orderValue2: string,
orderValue3: string,
@@ -436,6 +438,22 @@ export class TestEntityWithoutCustomProperties extends Entity implements TestEnt
})
stringChipsAutocompleteArrayValueWithConfig!: string[];
+ @array({
+ displayName: 'String Dropdown Array Value',
+ itemType: DecoratorTypes.STRING_DROPDOWN,
+ // eslint-disable-next-line cspell/spellchecker
+ dropdownValues: [{ displayName: 'ABCDE', value: 'ABCDE' }, { displayName: 'FGHIJ', value: 'FGHIJ' }]
+ })
+ stringDropdownArrayValue!: string[];
+
+ @array({
+ displayName: 'String Dropdown Array Value With Config',
+ itemType: DecoratorTypes.STRING_DROPDOWN,
+ // eslint-disable-next-line cspell/spellchecker
+ dropdownValues: [{ displayName: 'ABCDE', value: 'ABCDE' }, { displayName: 'FGHIJ', value: 'FGHIJ' }]
+ })
+ stringDropdownArrayValueWithConfig!: string[];
+
@array({
displayName: 'Entity Array',
itemType: DecoratorTypes.OBJECT,
@@ -929,11 +947,15 @@ const testEntityData: TestEntityWithoutCustomProperties = {
rowValue1: ''
} as TestObjectEntity,
stringChipsArrayValue: ['01234', '56789'],
+ stringChipsArrayValueWithConfig: ['01234', '56789'],
// eslint-disable-next-line cspell/spellchecker
stringChipsAutocompleteArrayValue: ['ABCDE', 'FGHIJ'],
- stringChipsArrayValueWithConfig: ['01234', '56789'],
// eslint-disable-next-line cspell/spellchecker
stringChipsAutocompleteArrayValueWithConfig: ['ABCDE', 'FGHIJ'],
+ // eslint-disable-next-line cspell/spellchecker
+ stringDropdownArrayValue: ['ABCDE', 'FGHIJ'],
+ // eslint-disable-next-line cspell/spellchecker
+ stringDropdownArrayValueWithConfig: ['ABCDE', 'FGHIJ'],
orderValue1: '1',
orderValue2: '2',
orderValue3: '3',
diff --git a/projects/ngx-material-entity/src/mocks/test-entity.mock.ts b/projects/ngx-material-entity/src/mocks/test-entity.mock.ts
index 283c6c8..dd09fde 100644
--- a/projects/ngx-material-entity/src/mocks/test-entity.mock.ts
+++ b/projects/ngx-material-entity/src/mocks/test-entity.mock.ts
@@ -74,11 +74,15 @@ const testEntityData: TestEntity = {
rowValue1: ''
} as TestObjectEntity,
stringChipsArrayValue: ['01234', '56789'],
+ stringChipsArrayValueWithConfig: ['01234', '56789'],
// eslint-disable-next-line cspell/spellchecker
stringChipsAutocompleteArrayValue: ['ABCDE', 'FGHIJ'],
- stringChipsArrayValueWithConfig: ['01234', '56789'],
// eslint-disable-next-line cspell/spellchecker
stringChipsAutocompleteArrayValueWithConfig: ['ABCDE', 'FGHIJ'],
+ // eslint-disable-next-line cspell/spellchecker
+ stringDropdownArrayValue: ['ABCDE', 'FGHIJ'],
+ // eslint-disable-next-line cspell/spellchecker
+ stringDropdownArrayValueWithConfig: ['ABCDE', 'FGHIJ'],
orderValue1: '1',
orderValue2: '2',
orderValue3: '3',
diff --git a/projects/ngx-material-entity/src/utilities/entity.utilities.test.ts b/projects/ngx-material-entity/src/utilities/entity.utilities.test.ts
index e2d6c7c..965a3e9 100644
--- a/projects/ngx-material-entity/src/utilities/entity.utilities.test.ts
+++ b/projects/ngx-material-entity/src/utilities/entity.utilities.test.ts
@@ -353,7 +353,7 @@ describe('keysOf', () => {
test('should get all keys of the entity', () => {
const tE: TestEntityWithoutCustomProperties = LodashUtilities.cloneDeep(testEntity);
TestEntityWithoutCustomPropertiesMockBuilder.setupMetadata(tE);
- expect(EntityUtilities.keysOf(tE, mockInjector)).toHaveLength(59);
+ expect(EntityUtilities.keysOf(tE, mockInjector)).toHaveLength(61);
});
test('should get keys without omitForCreate', () => {
const tE: TestEntityWithoutCustomProperties = LodashUtilities.cloneDeep(testEntity);
diff --git a/projects/ngx-material-entity/src/utilities/entity.utilities.ts b/projects/ngx-material-entity/src/utilities/entity.utilities.ts
index a1154f8..820bb9a 100644
--- a/projects/ngx-material-entity/src/utilities/entity.utilities.ts
+++ b/projects/ngx-material-entity/src/utilities/entity.utilities.ts
@@ -25,6 +25,10 @@ export interface Difference> {
* The key where the two entities have different values.
*/
key: keyof EntityType,
+ /**
+ * The display name resolved from metadata.
+ */
+ name: string | undefined,
/**
* The value before any changes.
*/
@@ -321,6 +325,7 @@ export abstract class EntityUtilities {
const metadata: PropertyDecoratorConfigInternal | undefined = this.getPropertyMetadata(entity, key);
if (!await this.isEqual(entity[key], entityPriorChanges[key], metadata, type, http)) {
res.push({
+ name: metadata?.displayName,
key: key,
before: entityPriorChanges[key],
after: entity[key]
diff --git a/projects/ngx-material-entity/src/utilities/validation.utilities.test.ts b/projects/ngx-material-entity/src/utilities/validation.utilities.test.ts
index 41d15c0..2e32169 100644
--- a/projects/ngx-material-entity/src/utilities/validation.utilities.test.ts
+++ b/projects/ngx-material-entity/src/utilities/validation.utilities.test.ts
@@ -231,6 +231,22 @@ describe('isEntityValid', () => {
tE.stringChipsAutocompleteArrayValue = ['1234'];
expect(await ValidationUtilities.isEntityValid(tE, mockInjector, 'create')).toBe(true);
});
+ test('ARRAY_STRING_DROPDOWN required', async () => {
+ const tE: TestEntityWithoutCustomProperties = LodashUtilities.cloneDeep(testEntity);
+ TestEntityWithoutCustomPropertiesMockBuilder.setupMetadata(tE);
+ tE.stringDropdownArrayValue = [];
+ expect(await ValidationUtilities.isEntityValid(tE, mockInjector, 'create')).toBe(false);
+ tE.stringDropdownArrayValue = ['ABCDE'];
+ expect(await ValidationUtilities.isEntityValid(tE, mockInjector, 'create')).toBe(true);
+ });
+ test('ARRAY_STRING_DROPDOWN restrictToOptions', async () => {
+ const tE: TestEntityWithoutCustomProperties = LodashUtilities.cloneDeep(testEntity);
+ TestEntityWithoutCustomPropertiesMockBuilder.setupMetadata(tE);
+ tE.stringDropdownArrayValue = ['ABC'];
+ expect(await ValidationUtilities.isEntityValid(tE, mockInjector, 'create')).toBe(false);
+ tE.stringDropdownArrayValue = ['ABCDE'];
+ expect(await ValidationUtilities.isEntityValid(tE, mockInjector, 'create')).toBe(true);
+ });
// DATE
test('DATE max', async () => {
diff --git a/projects/ngx-material-entity/src/utilities/validation.utilities.ts b/projects/ngx-material-entity/src/utilities/validation.utilities.ts
index 72d6538..5430c0c 100644
--- a/projects/ngx-material-entity/src/utilities/validation.utilities.ts
+++ b/projects/ngx-material-entity/src/utilities/validation.utilities.ts
@@ -4,7 +4,7 @@ import { DateUtilities, Time } from './date.utilities';
import { EntityUtilities } from './entity.utilities';
import { FileUtilities } from './file.utilities';
import { BaseEntityType } from '../classes/entity.model';
-import { AutocompleteStringChipsArrayDecoratorConfigInternal, EntityArrayDecoratorConfigInternal } from '../decorators/array/array-decorator-internal.data';
+import { AutocompleteStringChipsArrayDecoratorConfigInternal, EntityArrayDecoratorConfigInternal, StringDropdownArrayDecoratorConfigInternal } from '../decorators/array/array-decorator-internal.data';
import { DecoratorTypes } from '../decorators/base/decorator-types.enum';
import { PropertyDecoratorConfigInternal } from '../decorators/base/property-decorator-internal.data';
import { ToggleBooleanDecoratorConfigInternal } from '../decorators/boolean/boolean-decorator-internal.data';
@@ -210,6 +210,12 @@ export abstract class ValidationUtilities {
// eslint-disable-next-line stylistic/max-len
return await this.getArrayStringAutocompleteChipsValidationError(entity, stringAutocompleteArrayMetadata, stringAutocompleteArray);
}
+ case DecoratorTypes.ARRAY_STRING_DROPDOWN: {
+ const stringDropdownArray: string[] = entity[key] as string[];
+ // eslint-disable-next-line stylistic/max-len
+ const stringDropdownArrayMetadata: StringDropdownArrayDecoratorConfigInternal = metadata as StringDropdownArrayDecoratorConfigInternal;
+ return await this.getArrayStringDropdownValidationError(entity, stringDropdownArrayMetadata, stringDropdownArray);
+ }
case DecoratorTypes.ARRAY_STRING_CHIPS:
case DecoratorTypes.ARRAY_DATE:
case DecoratorTypes.ARRAY_DATE_TIME:
@@ -222,6 +228,7 @@ export abstract class ValidationUtilities {
if (arrayMetadata.required(entity) && !entityArray.length) {
return {
property: metadata.displayName,
+ // eslint-disable-next-line sonar/no-duplicate-string
message: 'no items in array'
};
}
@@ -296,6 +303,29 @@ export abstract class ValidationUtilities {
return undefined;
}
+ private static async getArrayStringDropdownValidationError>(
+ entity: EntityType,
+ metadata: StringDropdownArrayDecoratorConfigInternal,
+ stringDropdownArray: string[]
+ ): Promise {
+ if (metadata.required(entity) && !stringDropdownArray.length) {
+ return {
+ property: metadata.displayName,
+ message: 'no items in array'
+ };
+ }
+ const dropdownValues: string[] = (await metadata.dropdownValues(entity)).map(d => d.value);
+ for (const value of stringDropdownArray) {
+ if (!dropdownValues.includes(value)) {
+ return {
+ property: metadata.displayName,
+ message: `The value "${value}" needs to be one of the provided values`
+ };
+ }
+ }
+ return undefined;
+ }
+
private static getBooleanValidationError>(
entity: EntityType,
value: boolean,