diff --git a/.github/workflows/continuous-integration.yml b/.github/workflows/continuous-integration.yml index 0748bee79af..f85af176793 100644 --- a/.github/workflows/continuous-integration.yml +++ b/.github/workflows/continuous-integration.yml @@ -127,7 +127,7 @@ jobs: working-directory: client/ - name: Check generated defaults are up to date - run: npm run generate-defaults && git diff --exit-code -- src/app/domain/models + run: npm run generate-defaults && git diff --exit-code -- src/app/domain/definitions working-directory: client/ - uses: browser-actions/setup-chrome@v2 diff --git a/client/package-lock.json b/client/package-lock.json index c0b1c877286..f03dc6d450a 100644 --- a/client/package-lock.json +++ b/client/package-lock.json @@ -9,20 +9,19 @@ "version": "4.2.x-dev", "license": "MIT", "dependencies": { - "@angular/animations": "^22.0.7", - "@angular/cdk": "^22.0.5", - "@angular/common": "^22.0.7", - "@angular/compiler": "^22.0.7", - "@angular/core": "^22.0.7", - "@angular/forms": "^22.0.7", - "@angular/material": "^22.0.5", - "@angular/material-date-fns-adapter": "^22.0.5", - "@angular/platform-browser": "^22.0.7", - "@angular/platform-browser-dynamic": "^22.0.7", - "@angular/router": "^22.0.7", - "@angular/service-worker": "^22.0.7", - "@cantoo/pdf-lib": "^2.7.4", - "@coreui/angular-chartjs": "~5.7.6", + "@angular/cdk": "^22.1.1", + "@angular/common": "^22.1.1", + "@angular/compiler": "^22.1.1", + "@angular/core": "^22.1.1", + "@angular/forms": "^22.1.1", + "@angular/material": "^22.1.1", + "@angular/material-date-fns-adapter": "^22.1.1", + "@angular/platform-browser": "^22.1.1", + "@angular/platform-browser-dynamic": "^22.1.1", + "@angular/router": "^22.1.1", + "@angular/service-worker": "^22.1.1", + "@cantoo/pdf-lib": "^2.8.1", + "@coreui/angular-chartjs": "~5.7.15", "@coreui/chartjs": "^4.1.0", "@date-fns/tz": "^1.5.0", "@intevation/tiptap-extension-office-paste": "^0.1.2", @@ -31,21 +30,21 @@ "@ngx-translate/core": "^17.0.0", "@ngx-translate/http-loader": "^17.0.0", "@openslides/motion-diff": "file:../packages/openslides-motion-diff", - "@tiptap/core": "^3.28.0", + "@tiptap/core": "^3.29.2", "@tiptap/extension-blockquote": "^3.27.4", - "@tiptap/extension-color": "^3.28.0", - "@tiptap/extension-highlight": "^3.28.0", - "@tiptap/extension-image": "^3.28.0", + "@tiptap/extension-color": "^3.29.2", + "@tiptap/extension-highlight": "^3.29.2", + "@tiptap/extension-image": "^3.29.2", "@tiptap/extension-link": "^3.23.4", "@tiptap/extension-list": "^3.22.4", - "@tiptap/extension-subscript": "^3.28.0", - "@tiptap/extension-superscript": "^3.28.0", - "@tiptap/extension-table": "^3.28.0", - "@tiptap/extension-text-align": "^3.28.0", + "@tiptap/extension-subscript": "^3.29.2", + "@tiptap/extension-superscript": "^3.29.2", + "@tiptap/extension-table": "^3.29.2", + "@tiptap/extension-text-align": "^3.29.2", "@tiptap/extension-text-style": "^3.4.2", "@tiptap/extensions": "^3.22.4", - "@tiptap/pm": "^3.28.0", - "@tiptap/starter-kit": "^3.28.0", + "@tiptap/pm": "^3.29.2", + "@tiptap/starter-kit": "^3.29.2", "@tsparticles/angular": "^3.0.0", "@tsparticles/engine": "^3.9.1", "@tsparticles/plugin-emitters": "^3.9.1", @@ -53,8 +52,8 @@ "@tsparticles/slim": "^3.9.1", "big.js": "^7.0.1", "chart.js": "^4.5.1", - "cm-chess": "^3.6.3", - "cm-chessboard": "^8.12.14", + "cm-chess": "^4.0.0", + "cm-chessboard": "^8.12.19", "date-fns": "^4.4.0", "exceljs": "^4.4.0", "file-saver": "^2.0.5", @@ -72,7 +71,7 @@ "qrcode": "^1.5.4", "rxjs": "^7.8.2", "tinycolor2": "1.6.0", - "video.js": "^8.23.9", + "video.js": "^8.24.0", "zone.js": "^0.16.2" }, "devDependencies": { @@ -81,10 +80,10 @@ "@angular-eslint/eslint-plugin-template": "^22.1.0", "@angular-eslint/schematics": "^22.1.0", "@angular-eslint/template-parser": "^22.1.0", - "@angular/build": "^22.0.7", - "@angular/cli": "^22.0.7", - "@angular/compiler-cli": "^22.0.7", - "@angular/language-server": "^22.0.7", + "@angular/build": "^22.1.3", + "@angular/cli": "^22.1.3", + "@angular/compiler-cli": "^22.1.1", + "@angular/language-server": "^22.1.1", "@stylistic/eslint-plugin": "^5.10.0", "@types/big.js": "^7.0.0", "@types/file-saver": "^2.0.7", @@ -95,8 +94,8 @@ "@types/qrcode": "^1.5.6", "@types/tinycolor2": "^1.4.6", "@types/video.js": "^7.3.58", - "@typescript-eslint/eslint-plugin": "^8.65.0", - "@typescript-eslint/parser": "^8.65.0", + "@typescript-eslint/eslint-plugin": "^8.66.0", + "@typescript-eslint/parser": "^8.66.0", "@vendure/ngx-translate-extract": "^10.2.0", "angular-eslint": "^22.1.0", "eslint": "^9.39.5", @@ -107,7 +106,7 @@ "fetch-mock": "^12.6.0", "istanbul-lib-instrument": "^6.0.3", "jasmine-core": "^5.13.0", - "js-yaml": "^5.2.1", + "js-yaml": "^5.2.3", "karma": "~6.4.4", "karma-chrome-launcher": "~3.2.0", "karma-coverage": "~2.2.1", @@ -119,7 +118,7 @@ "ts-node": "^10.9.2", "tsconfig-paths": "^4.2.0", "typescript": "^6.0.3", - "typescript-eslint": "^8.65.0" + "typescript-eslint": "^8.66.0" } }, "../packages/openslides-motion-diff": { @@ -140,215 +139,6 @@ "vitest": "^4.1.8" } }, - "node_modules/@algolia/abtesting": { - "version": "1.18.0", - "resolved": "https://registry.npmjs.org/@algolia/abtesting/-/abtesting-1.18.0.tgz", - "integrity": "sha512-8siuLG+FIns1AjZ/g2SDVwHz9S+ObacDQISEJvS8XsNei1zl3FXqfqQrBpmrG7ACWCyesXHbicMJtvRbg00FEw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@algolia/client-common": "5.52.0", - "@algolia/requester-browser-xhr": "5.52.0", - "@algolia/requester-fetch": "5.52.0", - "@algolia/requester-node-http": "5.52.0" - }, - "engines": { - "node": ">= 14.0.0" - } - }, - "node_modules/@algolia/client-abtesting": { - "version": "5.52.0", - "resolved": "https://registry.npmjs.org/@algolia/client-abtesting/-/client-abtesting-5.52.0.tgz", - "integrity": "sha512-wtwPgyPmO7b7sQPVgoK29c1VpfS08DnnJCmxX/oU1pV2DlMRJCzQcLN7JSloYpodyKHwM8+9wOzlAM0co3TDmA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@algolia/client-common": "5.52.0", - "@algolia/requester-browser-xhr": "5.52.0", - "@algolia/requester-fetch": "5.52.0", - "@algolia/requester-node-http": "5.52.0" - }, - "engines": { - "node": ">= 14.0.0" - } - }, - "node_modules/@algolia/client-analytics": { - "version": "5.52.0", - "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-5.52.0.tgz", - "integrity": "sha512-9KY36bRl4AH7RjqSeDDOKnjsz4IxQFBEOB8/fWmEbdQe+Isbs5jGzVJu9NEPQ1Tgwxlf8Uf07Swj3jZyMNUZ2g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@algolia/client-common": "5.52.0", - "@algolia/requester-browser-xhr": "5.52.0", - "@algolia/requester-fetch": "5.52.0", - "@algolia/requester-node-http": "5.52.0" - }, - "engines": { - "node": ">= 14.0.0" - } - }, - "node_modules/@algolia/client-common": { - "version": "5.52.0", - "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-5.52.0.tgz", - "integrity": "sha512-3a/qM3dzJqqfTx7Yrw7uGQ98I3Q0rDfb4Vkv0wEzko96l7YQMxfBVz/VbLq2N+c59GweYv6Vhp8mPeqnWJSITw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 14.0.0" - } - }, - "node_modules/@algolia/client-insights": { - "version": "5.52.0", - "resolved": "https://registry.npmjs.org/@algolia/client-insights/-/client-insights-5.52.0.tgz", - "integrity": "sha512-Rki7ACbMcvbQW0BuM84x9dkGHY47ABmv4jU6tYssat2k02p3mIUms2YOLUAMeknhmnFsj6lb6ZzOXdMWMyc1sA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@algolia/client-common": "5.52.0", - "@algolia/requester-browser-xhr": "5.52.0", - "@algolia/requester-fetch": "5.52.0", - "@algolia/requester-node-http": "5.52.0" - }, - "engines": { - "node": ">= 14.0.0" - } - }, - "node_modules/@algolia/client-personalization": { - "version": "5.52.0", - "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-5.52.0.tgz", - "integrity": "sha512-96s4Uzc3kk+/f4jJXIVVGWP5XlngOGNQ1x6hW9AT59pOixHlOs5tqJg+ZUS/GQ6h/iYP0ceQcmxDQeLyCLTaDQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@algolia/client-common": "5.52.0", - "@algolia/requester-browser-xhr": "5.52.0", - "@algolia/requester-fetch": "5.52.0", - "@algolia/requester-node-http": "5.52.0" - }, - "engines": { - "node": ">= 14.0.0" - } - }, - "node_modules/@algolia/client-query-suggestions": { - "version": "5.52.0", - "resolved": "https://registry.npmjs.org/@algolia/client-query-suggestions/-/client-query-suggestions-5.52.0.tgz", - "integrity": "sha512-lqeycNpSPe5Qa0OUWpejVvYQjQWV5nQuLT0a4aq7XzRAvCxprV/6Lf841EygdD2nrFnuS58ok7Au1uOtXzpnkg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@algolia/client-common": "5.52.0", - "@algolia/requester-browser-xhr": "5.52.0", - "@algolia/requester-fetch": "5.52.0", - "@algolia/requester-node-http": "5.52.0" - }, - "engines": { - "node": ">= 14.0.0" - } - }, - "node_modules/@algolia/client-search": { - "version": "5.52.0", - "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-5.52.0.tgz", - "integrity": "sha512-ly1wETVGRo30cx61O7fetESN+ElL9c9K+bD/AVgnT1ar4c6v+/Yqjrhdtu6Fm4D0s4NZP081Isf6tunH1wUXHg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@algolia/client-common": "5.52.0", - "@algolia/requester-browser-xhr": "5.52.0", - "@algolia/requester-fetch": "5.52.0", - "@algolia/requester-node-http": "5.52.0" - }, - "engines": { - "node": ">= 14.0.0" - } - }, - "node_modules/@algolia/ingestion": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/@algolia/ingestion/-/ingestion-1.52.0.tgz", - "integrity": "sha512-U4EeTvgmluRjj39ykZSAd5X+a6LD5m7/mcOWDmB7hqm1R6QY0yT8jLxpNVEjYhzgEN5hcDGW6X67EWQY8KiYGQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@algolia/client-common": "5.52.0", - "@algolia/requester-browser-xhr": "5.52.0", - "@algolia/requester-fetch": "5.52.0", - "@algolia/requester-node-http": "5.52.0" - }, - "engines": { - "node": ">= 14.0.0" - } - }, - "node_modules/@algolia/monitoring": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/@algolia/monitoring/-/monitoring-1.52.0.tgz", - "integrity": "sha512-FCPnDcILfpTE94u7BVlV4DmnSV5wE3+j25EEF+3dYPrVzkVCSoAHs318oWDGxnxsAgiL4HpL12Jc4XHmw9shpA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@algolia/client-common": "5.52.0", - "@algolia/requester-browser-xhr": "5.52.0", - "@algolia/requester-fetch": "5.52.0", - "@algolia/requester-node-http": "5.52.0" - }, - "engines": { - "node": ">= 14.0.0" - } - }, - "node_modules/@algolia/recommend": { - "version": "5.52.0", - "resolved": "https://registry.npmjs.org/@algolia/recommend/-/recommend-5.52.0.tgz", - "integrity": "sha512-br3DO7n4N8CXwTRbZS0MnB4WQ9YHfNjCwkCEzVR/wek/qNTDQKDb0nROmkFaNZ8ucUqUVKZi074dbwMwRDlK8Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@algolia/client-common": "5.52.0", - "@algolia/requester-browser-xhr": "5.52.0", - "@algolia/requester-fetch": "5.52.0", - "@algolia/requester-node-http": "5.52.0" - }, - "engines": { - "node": ">= 14.0.0" - } - }, - "node_modules/@algolia/requester-browser-xhr": { - "version": "5.52.0", - "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-5.52.0.tgz", - "integrity": "sha512-b0T/Ca2c9KyEslKsVrGZvbe1UrrKKSdfXhBZ2pbpKahFUzJfziRZ0urbOm7V65O0tO/jwU+Lo/+bIiiyhzGt8w==", - "dev": true, - "license": "MIT", - "dependencies": { - "@algolia/client-common": "5.52.0" - }, - "engines": { - "node": ">= 14.0.0" - } - }, - "node_modules/@algolia/requester-fetch": { - "version": "5.52.0", - "resolved": "https://registry.npmjs.org/@algolia/requester-fetch/-/requester-fetch-5.52.0.tgz", - "integrity": "sha512-ozBT8J/mtD4H4IAojw8QPirlcL2gHrI1BGuZ4/ZXXO/rTE1yQ4VIPJj4mTTbwo4FbkS1MoJsD/DsrqLzhnc4/g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@algolia/client-common": "5.52.0" - }, - "engines": { - "node": ">= 14.0.0" - } - }, - "node_modules/@algolia/requester-node-http": { - "version": "5.52.0", - "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-5.52.0.tgz", - "integrity": "sha512-gyyWcLD22tnabmoit4iukCXuoRc5HYJuUjPSEa8a0D/f/NlRafpWi52AlAaa4Uu/rsl7saHsJFTNjTptWbu2+A==", - "dev": true, - "license": "MIT", - "dependencies": { - "@algolia/client-common": "5.52.0" - }, - "engines": { - "node": ">= 14.0.0" - } - }, "node_modules/@ampproject/remapping": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", @@ -364,13 +154,13 @@ } }, "node_modules/@angular-devkit/architect": { - "version": "0.2200.7", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.2200.7.tgz", - "integrity": "sha512-t03YYe5amlcpsX5gpMGi96kpBNTMKY7/rJsRDNO3v98mSy7kzNXlgzy/jyfdFev7AJusuwVM5TKVsUAgQxCgCw==", + "version": "0.2201.3", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.2201.3.tgz", + "integrity": "sha512-5WX6rooTQZCh+yE9k3O5hc7nnQtzy1nw6fQpaTuCzIgPG8teQuVtdxegBsM3OcjJac1r+qJLo+KmTRfnqcfsyg==", "dev": true, "license": "MIT", "dependencies": { - "@angular-devkit/core": "22.0.7", + "@angular-devkit/core": "22.1.3", "rxjs": "7.8.2" }, "bin": { @@ -383,16 +173,16 @@ } }, "node_modules/@angular-devkit/core": { - "version": "22.0.7", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-22.0.7.tgz", - "integrity": "sha512-r8XiflsVYcsvWp+zVvaNv5GsDoihaZ2OwWfn++N6YqTUZLcqDzqhsxeNk60sJ5V+Jn4ck1aKF4A9flmvSY+tpQ==", + "version": "22.1.3", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-22.1.3.tgz", + "integrity": "sha512-ASK8oZVElt/Zpz5FrzJjLnnUbzp/fW57eFFSRgpA+n9KRnuFi6YvNdSS3HkG5049Jcukce+PiMBdfzw/jBVkEw==", "dev": true, "license": "MIT", "dependencies": { "ajv": "8.20.0", "ajv-formats": "3.0.1", "jsonc-parser": "3.3.1", - "picomatch": "4.0.4", + "picomatch": "4.0.5", "rxjs": "7.8.2", "source-map": "0.7.6" }, @@ -411,16 +201,16 @@ } }, "node_modules/@angular-devkit/schematics": { - "version": "22.0.7", - "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-22.0.7.tgz", - "integrity": "sha512-bKgnBB0LPAj44uVXfW0UO1rQBb3HGXDZxa1bLtESr/KCK4j5iiaXlHqvJjc/z0em1Ds9WNQOfNXjV3IdJo9sSw==", + "version": "22.1.3", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-22.1.3.tgz", + "integrity": "sha512-ebY5bwZVB0onxxyTbJch//VidVVV8jo/F13n+TV5s/3ZywsC3/XZsfMHaxlFmpvP/G17+/C9JVoEXT+uwjT+/Q==", "dev": true, "license": "MIT", "dependencies": { - "@angular-devkit/core": "22.0.7", + "@angular-devkit/core": "22.1.3", "jsonc-parser": "3.3.1", - "magic-string": "0.30.21", - "ora": "9.4.0", + "magic-string": "1.0.0", + "ora": "9.4.1", "rxjs": "7.8.2" }, "engines": { @@ -508,19 +298,6 @@ "@angular/cli": ">= 22.0.0 < 23.0.0" } }, - "node_modules/@angular-eslint/schematics/node_modules/semver": { - "version": "7.8.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.5.tgz", - "integrity": "sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/@angular-eslint/template-parser": { "version": "22.1.0", "resolved": "https://registry.npmjs.org/@angular-eslint/template-parser/-/template-parser-22.1.0.tgz", @@ -571,11 +348,12 @@ } }, "node_modules/@angular/animations": { - "version": "22.0.7", - "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-22.0.7.tgz", - "integrity": "sha512-Q9PS2SYyvY4/K90GGy4+F0X7X7YmEfzKOw3eGgJ+6MnpVFo2kII2WK/bI5spr3PWNrn/TvNNNqP//c8BNX2Lbg==", + "version": "22.1.1", + "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-22.1.1.tgz", + "integrity": "sha512-97+EXulzVZ7+5pFqS7mooiZxNKu7eh/vv4BIWaatjLBg2Ctpv2nHotXcWMMfD4gpX6skCdJWluSnmDP1iPc2ig==", "deprecated": "@angular/animations is deprecated. Use `animate.enter` and `animate.leave` instead. For more information see: https://v22.angular.dev/guide/animations.", "license": "MIT", + "peer": true, "dependencies": { "tslib": "^2.3.0" }, @@ -583,41 +361,42 @@ "node": "^22.22.3 || ^24.15.0 || >=26.0.0" }, "peerDependencies": { - "@angular/core": "22.0.7" + "@angular/core": "22.1.1" } }, "node_modules/@angular/build": { - "version": "22.0.7", - "resolved": "https://registry.npmjs.org/@angular/build/-/build-22.0.7.tgz", - "integrity": "sha512-cm/QJmrIgsjzZJeBeqeNwgdgK6BGBKk7ca21jnSsrwlae3F9u1E8cImFbLeZSjEGghx4wFUacFDG+6lFEICntw==", + "version": "22.1.3", + "resolved": "https://registry.npmjs.org/@angular/build/-/build-22.1.3.tgz", + "integrity": "sha512-Hjen3LcVZUCNZy+epgO+/PMUpD/L8Y4vODS+Q8F0Lkva7YWQwycbJtrEr6xvFfMxp6xexxxIwB9+5b8voKSihQ==", "dev": true, "license": "MIT", "dependencies": { "@ampproject/remapping": "2.3.0", - "@angular-devkit/architect": "0.2200.7", - "@babel/core": "7.29.7", - "@babel/helper-annotate-as-pure": "7.29.7", + "@angular-devkit/architect": "0.2201.3", + "@babel/core": "8.0.1", + "@babel/helper-annotate-as-pure": "8.0.0", "@babel/helper-split-export-declaration": "7.24.7", - "@inquirer/confirm": "6.0.12", + "@inquirer/confirm": "6.1.1", "@vitejs/plugin-basic-ssl": "2.3.0", - "beasties": "0.4.2", + "beasties": "0.4.3", "browserslist": "^4.26.0", "esbuild": "0.28.1", - "https-proxy-agent": "9.0.0", + "https-proxy-agent": "9.1.0", "jsonc-parser": "3.3.1", - "listr2": "10.2.1", - "magic-string": "0.30.21", + "listr2": "10.2.2", + "magic-string": "1.0.0", "mrmime": "2.0.1", + "oxc-parser": "0.142.0", "parse5-html-rewriting-stream": "8.0.1", - "picomatch": "4.0.4", + "picomatch": "4.0.5", "piscina": "5.2.0", - "rollup": "4.60.2", - "sass": "1.99.0", - "semver": "7.7.4", + "rolldown": "1.2.0", + "sass": "1.101.0", + "semver": "7.8.5", "source-map-support": "0.5.21", - "tinyglobby": "0.2.16", - "vite": "7.3.5", - "watchpack": "2.5.1" + "tinyglobby": "0.2.17", + "vite": "8.1.5", + "watchpack": "2.5.2" }, "engines": { "node": "^22.22.3 || ^24.15.0 || >=26.0.0", @@ -625,7 +404,7 @@ "yarn": ">= 1.13.0" }, "optionalDependencies": { - "lmdb": "3.5.4" + "lmdb": "3.5.6" }, "peerDependencies": { "@angular/compiler": "^22.0.0", @@ -635,12 +414,13 @@ "@angular/platform-browser": "^22.0.0", "@angular/platform-server": "^22.0.0", "@angular/service-worker": "^22.0.0", - "@angular/ssr": "^22.0.7", + "@angular/ssr": "^22.1.3", "istanbul-lib-instrument": "^6.0.0", "karma": "^6.4.0", "less": "^4.2.0", "ng-packagr": "^22.0.0", "postcss": "^8.4.0", + "rollup": "^4.0.0", "tailwindcss": "^2.0.0 || ^3.0.0 || ^4.0.0", "tslib": "^2.3.0", "typescript": ">=6.0 <6.1", @@ -680,6 +460,9 @@ "postcss": { "optional": true }, + "rollup": { + "optional": true + }, "tailwindcss": { "optional": true }, @@ -688,630 +471,719 @@ } } }, - "node_modules/@angular/build/node_modules/@esbuild/aix-ppc64": { - "version": "0.28.1", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.28.1.tgz", - "integrity": "sha512-Svl7tq8k/08+p6CXPpRjQ1fKX+1odH/BQbb48fV6fj3CWHhsoIOoY87w1oHXm0qEpkIK3ZfVgp0hed3XBXzXMQ==", - "cpu": [ - "ppc64" - ], + "node_modules/@angular/build/node_modules/@babel/code-frame": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-8.0.0.tgz", + "integrity": "sha512-dYYg153EyN2Ekbqw2zAsbd6/JR+9N2SEoC7YV2GyyqMM7x9bLDTjBD6XBhSMLH0wtIVyJj03jWNriQhaN+eoCw==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "aix" - ], + "dependencies": { + "@babel/helper-validator-identifier": "^8.0.0", + "js-tokens": "^10.0.0" + }, "engines": { - "node": ">=18" + "node": "^22.18.0 || >=24.11.0" } }, - "node_modules/@angular/build/node_modules/@esbuild/android-arm": { - "version": "0.28.1", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.28.1.tgz", - "integrity": "sha512-0k2F129Xdio1TdJfzJ8sy1Q47vUD2NnwdhiAf7drUN1EBTfPf4hsFCtmMgu/6m8JSzsBrlmVjudMBQqOfG8usQ==", - "cpu": [ - "arm" - ], + "node_modules/@angular/build/node_modules/@babel/compat-data": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-8.0.0.tgz", + "integrity": "sha512-DOjnob/cXOUgDOozCDeq/aK2p5y8dUIVdf6tNhEV1HQRd6I8aQ4f4fbtHRVEvb6lP3BGomrKHiS8ICAASSVQSw==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "android" - ], "engines": { - "node": ">=18" + "node": "^22.18.0 || >=24.11.0" } }, - "node_modules/@angular/build/node_modules/@esbuild/android-arm64": { - "version": "0.28.1", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.28.1.tgz", - "integrity": "sha512-34EGEbCIAgosYz6goLcopX6Mo7NyGv9tfwEM2/7Ce2VcVRk568iSvniGWcUXIy7wEDR1wzolcxcriFVrWYcwBg==", - "cpu": [ - "arm64" - ], + "node_modules/@angular/build/node_modules/@babel/core": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-8.0.1.tgz", + "integrity": "sha512-5FgxM4dLQpMJHSiVATk8foW263dVHQHBVpXYiimNECVWG01f4nFyEbQixeT6Mwvg7TayREJ2gpKl3o2RoMdnqw==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "android" - ], + "dependencies": { + "@babel/code-frame": "^8.0.0", + "@babel/generator": "^8.0.0", + "@babel/helper-compilation-targets": "^8.0.0", + "@babel/helpers": "^8.0.0", + "@babel/parser": "^8.0.0", + "@babel/template": "^8.0.0", + "@babel/traverse": "^8.0.0", + "@babel/types": "^8.0.0", + "@types/gensync": "^1.0.5", + "convert-source-map": "^2.0.0", + "empathic": "^2.0.1", + "gensync": "^1.0.0-beta.2", + "import-meta-resolve": "^4.2.0", + "json5": "^2.2.3", + "obug": "^2.1.1", + "semver": "^7.7.3" + }, "engines": { - "node": ">=18" + "node": "^22.18.0 || >=24.11.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" } }, - "node_modules/@angular/build/node_modules/@esbuild/android-x64": { - "version": "0.28.1", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.28.1.tgz", - "integrity": "sha512-dbwY7ltSMDWsRatcRpCnES4F+im88OCUgGZjy52shC7GqHRE/cYlxNbB4Z4UpJswpcc4Qxd2oE/ufM0p61IKng==", - "cpu": [ - "x64" - ], + "node_modules/@angular/build/node_modules/@babel/generator": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-8.0.0.tgz", + "integrity": "sha512-NT9NrVwJsbSV6Y2FSstWa71EETOnzrjkL5/wX3D2mYHtKM+qvqB1DvR4D0Setb/gDBsHzRICifwEWMO8CnTF6g==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "android" - ], + "dependencies": { + "@babel/parser": "^8.0.0", + "@babel/types": "^8.0.0", + "@jridgewell/gen-mapping": "^0.3.12", + "@jridgewell/trace-mapping": "^0.3.28", + "@types/jsesc": "^2.5.0", + "jsesc": "^3.0.2" + }, "engines": { - "node": ">=18" + "node": "^22.18.0 || >=24.11.0" } }, - "node_modules/@angular/build/node_modules/@esbuild/darwin-arm64": { - "version": "0.28.1", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.28.1.tgz", - "integrity": "sha512-TZbWkQY7kvTAXbXUT7uVACR5cMHsDiSz9z7ZKAX/RTq/WJEk3QyRr0wZpNhBDX+/0CtdqUIJlOiodQcta6tY3Q==", - "cpu": [ - "arm64" - ], + "node_modules/@angular/build/node_modules/@babel/helper-compilation-targets": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-8.0.0.tgz", + "integrity": "sha512-JwculLABZvyPvyLBpwU/E/IbH2uM3mnxNtIJpxnIfb24y1PrdVxK5Dqjle4DpgqpGRnwgC7G8IkzPdSXZrO1Ew==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], + "dependencies": { + "@babel/compat-data": "^8.0.0", + "@babel/helper-validator-option": "^8.0.0", + "browserslist": "^4.24.0", + "lru-cache": "^11.0.0", + "semver": "^7.7.3" + }, "engines": { - "node": ">=18" + "node": "^22.18.0 || >=24.11.0" } }, - "node_modules/@angular/build/node_modules/@esbuild/darwin-x64": { - "version": "0.28.1", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.28.1.tgz", - "integrity": "sha512-zfdzgK9ACBNZLI/CyHTOx81SyNbM6YXn7rxSgX97VjyiPl9W1i4Ka4fgKECEoFCKGpvBj5qArWIGgQjOwkgskQ==", - "cpu": [ - "x64" - ], + "node_modules/@angular/build/node_modules/@babel/helper-globals": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-8.0.0.tgz", + "integrity": "sha512-lLozHOM6sWWlxNo8CYqHy4MBZeTvHXNgVPBfPOGsjPKUzHC2Az9QwB6gxdQmpwHl6GlQtbGgS+lj5887guDiLw==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], "engines": { - "node": ">=18" + "node": "^22.18.0 || >=24.11.0" } }, - "node_modules/@angular/build/node_modules/@esbuild/freebsd-arm64": { - "version": "0.28.1", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.28.1.tgz", - "integrity": "sha512-wG2EA8ENdEI0qhkSZMjfqrdY+ziCYCPMmtZjjIwOmXFjmyzEHn+UUxk5of+SYsjtfs3VpnlC7QLzSI5hY/rOAw==", - "cpu": [ - "arm64" - ], + "node_modules/@angular/build/node_modules/@babel/helper-string-parser": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-8.0.0.tgz", + "integrity": "sha512-6mJgmFFFIIO82vvoLt9XtRC7/TkzXfts1t/SpRX4IHSzMgqoPYCWesVu1udUPUWioAE/2fcG6WuI8zrkE1gwrg==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], "engines": { - "node": ">=18" + "node": "^22.18.0 || >=24.11.0" } }, - "node_modules/@angular/build/node_modules/@esbuild/freebsd-x64": { - "version": "0.28.1", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.28.1.tgz", - "integrity": "sha512-i7dZ9vQgnvSCzi/rYCXNgtF/U+eKZNJBzu3eTQbRgHnM7tNSizLOkRFAl3qzVc/Op/u5YkHHa4pf/3DOYHthLQ==", - "cpu": [ - "x64" - ], + "node_modules/@angular/build/node_modules/@babel/helper-validator-identifier": { + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-8.0.4.tgz", + "integrity": "sha512-4wFaiLd0bVo4cIoTXI3zKI038NIWE/cr3jvBjejOVYVxV/m8Ltav1USiGzG1fmS5J2RhgEOgXNNK46cRPnRsrg==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], "engines": { - "node": ">=18" + "node": "^22.18.0 || >=24.11.0" } }, - "node_modules/@angular/build/node_modules/@esbuild/linux-arm": { - "version": "0.28.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.28.1.tgz", - "integrity": "sha512-qVXBOHQS+d5Y722GwJzJUtOLlX7km3CraOaGormF1pDtPd2C/l1SHRPgjLunLGe51Sh5YYWKMFDyV4SxgMQYTQ==", - "cpu": [ - "arm" - ], + "node_modules/@angular/build/node_modules/@babel/helper-validator-option": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-8.0.0.tgz", + "integrity": "sha512-U4Dybxh4WESWHt5XhBeExi4DrY0/DNK1aHpQbsrQXCUbFHuMweT0TpLEWKvaraV2Y6fS+ZXunsZ8zIuZIgvF2Q==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "linux" - ], "engines": { - "node": ">=18" + "node": "^22.18.0 || >=24.11.0" } }, - "node_modules/@angular/build/node_modules/@esbuild/linux-arm64": { - "version": "0.28.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.28.1.tgz", - "integrity": "sha512-yHs+0uc8+nvEAfAfxrWQKK5peSNzBc4PegcMO0EJ2hT71uA7vB8Ihg2e77R2P7SG5uYjPbHlLLmve4LLLRCf0g==", - "cpu": [ - "arm64" - ], + "node_modules/@angular/build/node_modules/@babel/helpers": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-8.0.0.tgz", + "integrity": "sha512-wfbi91pM3py96oIiJEz7qIpyXDytgr9zQC1HEWwlGNVRAEmItuU/0a41ZUKu1sJGyhhOIpc4t5vk4PYzt8wpsg==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "linux" - ], + "dependencies": { + "@babel/template": "^8.0.0", + "@babel/types": "^8.0.0" + }, "engines": { - "node": ">=18" + "node": "^22.18.0 || >=24.11.0" } }, - "node_modules/@angular/build/node_modules/@esbuild/linux-ia32": { - "version": "0.28.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.28.1.tgz", - "integrity": "sha512-d1z4ZuP0ajrfz/FhGT4vv278rX8KnPPJx8i5+AtK7TYbx9Le9F1hyzurZpkEyjkGa9dUGhQow4C1NmeGvqxN2w==", - "cpu": [ - "ia32" - ], + "node_modules/@angular/build/node_modules/@babel/parser": { + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-8.0.4.tgz", + "integrity": "sha512-srpptsAkEbbNIC/q8nT7o+m6CQe8CJUTV/t7MYc9NnWlgYVtHOb7JH6SorxMhN0kuRJjVqXbKClG6xSbPtzz+g==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "linux" - ], + "dependencies": { + "@babel/types": "^8.0.4" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, "engines": { - "node": ">=18" + "node": "^22.18.0 || >=24.11.0" } }, - "node_modules/@angular/build/node_modules/@esbuild/linux-loong64": { - "version": "0.28.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.28.1.tgz", - "integrity": "sha512-M5sRjUVZrkm1OAPR3dlOYzNmN+loZKGVi1VUQGrwuqLcbR6qeAz+famMhjASeH3YVKvZz+zT1jlh/keC3Rj/lg==", - "cpu": [ - "loong64" - ], + "node_modules/@angular/build/node_modules/@babel/template": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-8.0.0.tgz", + "integrity": "sha512-eAD0QW/AlbamBbw0FeGiwasbCVPq5ncW0HNVyLP3B9czqLyh4gvw+5JTSNt6le9+ziAU7mqDZsKTHf3jTb4chQ==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "linux" - ], + "dependencies": { + "@babel/code-frame": "^8.0.0", + "@babel/parser": "^8.0.0", + "@babel/types": "^8.0.0" + }, "engines": { - "node": ">=18" + "node": "^22.18.0 || >=24.11.0" } }, - "node_modules/@angular/build/node_modules/@esbuild/linux-mips64el": { - "version": "0.28.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.28.1.tgz", - "integrity": "sha512-mRObBZeHh2OxcBFPWE/FjylkRgZdYuiTR3vaTozquCGOH14iP9oN4x4Ge81CoIDYQrXmIxpFumJBu5MtZpnQJQ==", - "cpu": [ - "mips64el" - ], + "node_modules/@angular/build/node_modules/@babel/traverse": { + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-8.0.4.tgz", + "integrity": "sha512-bZnmqzGG8UZneG1lLxBoWIH0G6Gr1D846Yu4/3XnY6FhCndMR49u26nTY08u/dAxWmLWF9vGQOuC+84FfIUoeg==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "linux" - ], + "dependencies": { + "@babel/code-frame": "^8.0.0", + "@babel/generator": "^8.0.0", + "@babel/helper-globals": "^8.0.0", + "@babel/parser": "^8.0.4", + "@babel/template": "^8.0.0", + "@babel/types": "^8.0.4", + "obug": "^2.1.1" + }, "engines": { - "node": ">=18" + "node": "^22.18.0 || >=24.11.0" } }, - "node_modules/@angular/build/node_modules/@esbuild/linux-ppc64": { - "version": "0.28.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.28.1.tgz", - "integrity": "sha512-slScBsMAb3GFDcdrCgLwZtPYRoH2H/youv10QiZyRjmsP48fznoveWytSgCI/R0ZcUgpc0ZhIUEx6LHts8yrfQ==", - "cpu": [ - "ppc64" - ], + "node_modules/@angular/build/node_modules/@babel/types": { + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-8.0.4.tgz", + "integrity": "sha512-eY+Yn3dCqTGmyiq2QRU66lA5FL8lqqqvecHt0fF3uHONIa7ToYsaCiWV8lOKqAs0Rb2SjixiKFROngnulPtt2g==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "linux" - ], + "dependencies": { + "@babel/helper-string-parser": "^8.0.0", + "@babel/helper-validator-identifier": "^8.0.4" + }, "engines": { - "node": ">=18" + "node": "^22.18.0 || >=24.11.0" } }, - "node_modules/@angular/build/node_modules/@esbuild/linux-riscv64": { - "version": "0.28.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.28.1.tgz", - "integrity": "sha512-kw0owk1o0GFETUJyW0jc0G4Yzs0BHZn0JDZ8JRT088vjJYX777BAs1fDGxAC+q831qOs2DTC96mNsG2opdfyyQ==", - "cpu": [ - "riscv64" - ], + "node_modules/@angular/build/node_modules/agent-base": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-9.0.0.tgz", + "integrity": "sha512-TQf59BsZnytt8GdJKLPfUZ54g/iaUL2OWDSFCCvMOhsHduDQxO8xC4PNeyIkVcA5KwL2phPSv0douC0fgWzmnA==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "linux" - ], "engines": { - "node": ">=18" + "node": ">= 20" } }, - "node_modules/@angular/build/node_modules/@esbuild/linux-s390x": { - "version": "0.28.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.28.1.tgz", - "integrity": "sha512-/lAIjX8aYFRByhh6L5rYtPEDRqa9de/4V/juOXcta5frjvzXO4/sqEtyytse0g3zZFuWu5cDN0MkLz2qRDD2Ag==", - "cpu": [ - "s390x" - ], + "node_modules/@angular/build/node_modules/ansi-styles": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", + "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "linux" - ], "engines": { - "node": ">=18" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@angular/build/node_modules/@esbuild/linux-x64": { - "version": "0.28.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.28.1.tgz", - "integrity": "sha512-u/anNYF2mmVOEDwLtnQ1wOr3EZ9sTNGLWrsYGYwHWzGA3Si84IOkHXlbWTD1NB+9/1lcnweYKO54uhxZydNzfA==", - "cpu": [ - "x64" - ], + "node_modules/@angular/build/node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@angular/build/node_modules/eventemitter3": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.4.tgz", + "integrity": "sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@angular/build/node_modules/https-proxy-agent": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-9.1.0.tgz", + "integrity": "sha512-ag87y7cJJ9/3+GxFr8Oy4O5faDsGRGnBGsJj/YjOSsSx/5eadKLYTMPlzuR6obgoCDDm0abAAZitXXQkMOPSpA==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "linux" - ], + "dependencies": { + "agent-base": "9.0.0", + "debug": "^4.3.4", + "proxy-agent-negotiate": "1.1.0" + }, "engines": { - "node": ">=18" + "node": ">= 20" } }, - "node_modules/@angular/build/node_modules/@esbuild/netbsd-arm64": { - "version": "0.28.1", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.28.1.tgz", - "integrity": "sha512-oks0DYbLwWMmaakTsCb+zL4E+aHRVLom9IJZOAthMQEPiQmydXHkziYEsGYRx0uNV/IjEKGAV941JzH02pflqw==", - "cpu": [ - "arm64" - ], + "node_modules/@angular/build/node_modules/js-tokens": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-10.0.0.tgz", + "integrity": "sha512-lM/UBzQmfJRo9ABXbPWemivdCW8V2G8FHaHdypQaIy523snUjog0W71ayWXTjiR+ixeMyVHN2XcpnTd/liPg/Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/@angular/build/node_modules/listr2": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-10.2.2.tgz", + "integrity": "sha512-JtNtbZj8q5BnDMR7trpwvwk3RIrANtIVzEUm8w7amp6xelLgyuq+4WZoTH913XaQAoH/cNdYhaNzBPA2U3xbDw==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "netbsd" - ], + "dependencies": { + "cli-truncate": "^5.2.0", + "eventemitter3": "^5.0.4", + "log-update": "^6.1.0", + "rfdc": "^1.4.1", + "wrap-ansi": "^10.0.0" + }, "engines": { - "node": ">=18" + "node": ">=22.13.0" } }, - "node_modules/@angular/build/node_modules/@esbuild/netbsd-x64": { - "version": "0.28.1", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.28.1.tgz", - "integrity": "sha512-aeL6lAnN89Hz43Mlh1G8ARasbuoYvSITDEx0tHh5b7jJnHcssqgjy9Yx430GDpmCa6OyrKoS0aNRjKundRizGg==", - "cpu": [ - "x64" - ], + "node_modules/@angular/build/node_modules/lru-cache": { + "version": "11.5.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.5.2.tgz", + "integrity": "sha512-4pfM1Ff0x50o0tQwb5ucw/RzNyD0/YJME6IVcStalZuMWxdt3sR3huStTtxz4PUmvZfRguvDejasvQ2kifR11g==", + "dev": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/@angular/build/node_modules/wrap-ansi": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-10.0.0.tgz", + "integrity": "sha512-SGcvg80f0wUy2/fXES19feHMz8E0JoXv2uNgHOu4Dgi2OrCy1lqwFYEJz1BLbDI0exjPMe/ZdzZ/YpGECBG/aQ==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "netbsd" - ], + "dependencies": { + "ansi-styles": "^6.2.3", + "string-width": "^8.2.0", + "strip-ansi": "^7.1.2" + }, "engines": { - "node": ">=18" + "node": ">=20" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/@angular/build/node_modules/@esbuild/openbsd-arm64": { - "version": "0.28.1", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.28.1.tgz", - "integrity": "sha512-MEFJe5C3R8pwXdZ5Y21oo6m7ePiS0d9pWucn99O/wvyJZChoIQKrQDxKrGeW8F5+T0okTHesAmDeiHDTIq0V/Q==", - "cpu": [ - "arm64" - ], + "node_modules/@angular/cdk": { + "version": "22.1.1", + "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-22.1.1.tgz", + "integrity": "sha512-P8YuW/r5MS8aeKF0NruktKGHQShOMctvhs3H/51BOwJrMZi5qtWJ40t1yqTrNnewSJIKI0/AroUEmEOqA9Ml9Q==", + "license": "MIT", + "dependencies": { + "parse5": "^8.0.0", + "tslib": "^2.3.0" + }, + "peerDependencies": { + "@angular/common": "^22.0.0 || ^23.0.0", + "@angular/core": "^22.0.0 || ^23.0.0", + "@angular/platform-browser": "^22.0.0 || ^23.0.0", + "rxjs": "^6.5.3 || ^7.4.0" + } + }, + "node_modules/@angular/cli": { + "version": "22.1.3", + "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-22.1.3.tgz", + "integrity": "sha512-GB1Pv8CXAHXE2/hqiwSGD6JRIyT4wswadjH1j3DH2+6os1zc7CBm28/YtlKPPIHZKVOZLDqV6uW+bRQTtdOw2A==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ], + "dependencies": { + "@angular-devkit/architect": "0.2201.3", + "@angular-devkit/core": "22.1.3", + "@angular-devkit/schematics": "22.1.3", + "@inquirer/prompts": "8.5.2", + "@listr2/prompt-adapter-inquirer": "4.2.4", + "@modelcontextprotocol/sdk": "1.29.0", + "@schematics/angular": "22.1.3", + "jsonc-parser": "3.3.1", + "listr2": "10.2.2", + "npm-package-arg": "14.0.0", + "parse5-html-rewriting-stream": "8.0.1", + "semver": "7.8.5", + "yargs": "18.0.0", + "zod": "4.4.3" + }, + "bin": { + "ng": "bin/ng.js" + }, "engines": { - "node": ">=18" + "node": "^22.22.3 || ^24.15.0 || >=26.0.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" } }, - "node_modules/@angular/build/node_modules/@esbuild/openbsd-x64": { - "version": "0.28.1", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.28.1.tgz", - "integrity": "sha512-i/ZLIOafE0Z8cI/XANJAixoJL/uRAoS2xOA3rb0xN+KK0K177cMAsQYkzHtBrtMXAKuAc7HGgcWiZ/sRC1Nxgw==", - "cpu": [ - "x64" - ], + "node_modules/@angular/cli/node_modules/ansi-styles": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", + "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ], "engines": { - "node": ">=18" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@angular/build/node_modules/@esbuild/openharmony-arm64": { - "version": "0.28.1", - "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.28.1.tgz", - "integrity": "sha512-ge+Z7EXFNt2BO1oAMsVpiQ8EwndV9i1xXerAeTIK7AtPs3bKFXQM7nlRxDSIUIMeueR1CNXxqztLzdNeReKBJg==", - "cpu": [ - "arm64" - ], + "node_modules/@angular/cli/node_modules/eventemitter3": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.4.tgz", + "integrity": "sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@angular/cli/node_modules/listr2": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-10.2.2.tgz", + "integrity": "sha512-JtNtbZj8q5BnDMR7trpwvwk3RIrANtIVzEUm8w7amp6xelLgyuq+4WZoTH913XaQAoH/cNdYhaNzBPA2U3xbDw==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "openharmony" - ], + "dependencies": { + "cli-truncate": "^5.2.0", + "eventemitter3": "^5.0.4", + "log-update": "^6.1.0", + "rfdc": "^1.4.1", + "wrap-ansi": "^10.0.0" + }, "engines": { - "node": ">=18" + "node": ">=22.13.0" } }, - "node_modules/@angular/build/node_modules/@esbuild/sunos-x64": { - "version": "0.28.1", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.28.1.tgz", - "integrity": "sha512-BEjgtECkL3vY+SaSQ6nzVfiALUeFxpawyp8Jmf5PtYhf1Ug40N1h/hxlhts+f1FvSvarEigdxS3BlSMI2PJLcQ==", - "cpu": [ - "x64" - ], + "node_modules/@angular/cli/node_modules/wrap-ansi": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-10.0.0.tgz", + "integrity": "sha512-SGcvg80f0wUy2/fXES19feHMz8E0JoXv2uNgHOu4Dgi2OrCy1lqwFYEJz1BLbDI0exjPMe/ZdzZ/YpGECBG/aQ==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "sunos" - ], + "dependencies": { + "ansi-styles": "^6.2.3", + "string-width": "^8.2.0", + "strip-ansi": "^7.1.2" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/@angular/common": { + "version": "22.1.1", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-22.1.1.tgz", + "integrity": "sha512-5iiyPWqO3acpOPMcJWYtVbXF5z9wy43MFQQdd7wZPHfYOIC7c3KRnziWrRpELae+SkEB4srAYr6XIu9rQ743nw==", + "license": "MIT", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^22.22.3 || ^24.15.0 || >=26.0.0" + }, + "peerDependencies": { + "@angular/core": "22.1.1", + "rxjs": "^6.5.3 || ^7.4.0" + } + }, + "node_modules/@angular/compiler": { + "version": "22.1.1", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-22.1.1.tgz", + "integrity": "sha512-UfQZALwewk+WyE5fqrXT3CK0sxWXre4XojAvUdFQSZsVHTZEM1QD4FncuePa44I6BQMhfqQUvYNlqFnev4WOQg==", + "license": "MIT", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^22.22.3 || ^24.15.0 || >=26.0.0" + } + }, + "node_modules/@angular/compiler-cli": { + "version": "22.1.1", + "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-22.1.1.tgz", + "integrity": "sha512-GLcwWqUg4i2eru3nKy989Me7483+ZPofnwgw9aMc96MWl8y8CD9CTrSff+fwh2/crUsQIqGg/uehIZRjISMD0A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "8.0.1", + "@jridgewell/sourcemap-codec": "^1.4.14", + "chokidar": "^5.0.0", + "convert-source-map": "^1.5.1", + "reflect-metadata": "^0.2.0", + "semver": "^7.0.0", + "tslib": "^2.3.0", + "yargs": "^18.0.0" + }, + "bin": { + "ng-xi18n": "bundles/src/bin/ng_xi18n.js", + "ngc": "bundles/src/bin/ngc.js" + }, + "engines": { + "node": "^22.22.3 || ^24.15.0 || >=26.0.0" + }, + "peerDependencies": { + "@angular/compiler": "22.1.1", + "typescript": ">=6.0 <6.1" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@angular/compiler-cli/node_modules/@babel/code-frame": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-8.0.0.tgz", + "integrity": "sha512-dYYg153EyN2Ekbqw2zAsbd6/JR+9N2SEoC7YV2GyyqMM7x9bLDTjBD6XBhSMLH0wtIVyJj03jWNriQhaN+eoCw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^8.0.0", + "js-tokens": "^10.0.0" + }, + "engines": { + "node": "^22.18.0 || >=24.11.0" + } + }, + "node_modules/@angular/compiler-cli/node_modules/@babel/compat-data": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-8.0.0.tgz", + "integrity": "sha512-DOjnob/cXOUgDOozCDeq/aK2p5y8dUIVdf6tNhEV1HQRd6I8aQ4f4fbtHRVEvb6lP3BGomrKHiS8ICAASSVQSw==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^22.18.0 || >=24.11.0" + } + }, + "node_modules/@angular/compiler-cli/node_modules/@babel/core": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-8.0.1.tgz", + "integrity": "sha512-5FgxM4dLQpMJHSiVATk8foW263dVHQHBVpXYiimNECVWG01f4nFyEbQixeT6Mwvg7TayREJ2gpKl3o2RoMdnqw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^8.0.0", + "@babel/generator": "^8.0.0", + "@babel/helper-compilation-targets": "^8.0.0", + "@babel/helpers": "^8.0.0", + "@babel/parser": "^8.0.0", + "@babel/template": "^8.0.0", + "@babel/traverse": "^8.0.0", + "@babel/types": "^8.0.0", + "@types/gensync": "^1.0.5", + "convert-source-map": "^2.0.0", + "empathic": "^2.0.1", + "gensync": "^1.0.0-beta.2", + "import-meta-resolve": "^4.2.0", + "json5": "^2.2.3", + "obug": "^2.1.1", + "semver": "^7.7.3" + }, "engines": { - "node": ">=18" + "node": "^22.18.0 || >=24.11.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" } }, - "node_modules/@angular/build/node_modules/@esbuild/win32-arm64": { - "version": "0.28.1", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.28.1.tgz", - "integrity": "sha512-lCv9eK/H6ZJWbE7bh2nw54CZ9M2nupBxJcTsdk/QQnWkdSjKGuxmmH8/GWrlT1eMmZfn4dGcCjRte397WqfQXA==", - "cpu": [ - "arm64" - ], + "node_modules/@angular/compiler-cli/node_modules/@babel/core/node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@angular/compiler-cli/node_modules/@babel/generator": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-8.0.0.tgz", + "integrity": "sha512-NT9NrVwJsbSV6Y2FSstWa71EETOnzrjkL5/wX3D2mYHtKM+qvqB1DvR4D0Setb/gDBsHzRICifwEWMO8CnTF6g==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "win32" - ], + "dependencies": { + "@babel/parser": "^8.0.0", + "@babel/types": "^8.0.0", + "@jridgewell/gen-mapping": "^0.3.12", + "@jridgewell/trace-mapping": "^0.3.28", + "@types/jsesc": "^2.5.0", + "jsesc": "^3.0.2" + }, "engines": { - "node": ">=18" + "node": "^22.18.0 || >=24.11.0" } }, - "node_modules/@angular/build/node_modules/@esbuild/win32-ia32": { - "version": "0.28.1", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.28.1.tgz", - "integrity": "sha512-zvb/mB2bSCoJOpoCBgYKKpX6YM6mJBlBUVUtVj41DlZJVEB6/0CKlRYxP5wWl1C1ILiCoAU5wZZ4q1P3qeS6Eg==", - "cpu": [ - "ia32" - ], + "node_modules/@angular/compiler-cli/node_modules/@babel/helper-compilation-targets": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-8.0.0.tgz", + "integrity": "sha512-JwculLABZvyPvyLBpwU/E/IbH2uM3mnxNtIJpxnIfb24y1PrdVxK5Dqjle4DpgqpGRnwgC7G8IkzPdSXZrO1Ew==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "win32" - ], + "dependencies": { + "@babel/compat-data": "^8.0.0", + "@babel/helper-validator-option": "^8.0.0", + "browserslist": "^4.24.0", + "lru-cache": "^11.0.0", + "semver": "^7.7.3" + }, "engines": { - "node": ">=18" + "node": "^22.18.0 || >=24.11.0" } }, - "node_modules/@angular/build/node_modules/@esbuild/win32-x64": { - "version": "0.28.1", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.28.1.tgz", - "integrity": "sha512-bm4Mowrv+GXMlpWX++EcXw/iLyd1o3+bJkC2DkWXYVvgZCqD/bSj9ctZeAMC3cIxgjRVR2Dufaiu4YPxr5gW1A==", - "cpu": [ - "x64" - ], + "node_modules/@angular/compiler-cli/node_modules/@babel/helper-globals": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-8.0.0.tgz", + "integrity": "sha512-lLozHOM6sWWlxNo8CYqHy4MBZeTvHXNgVPBfPOGsjPKUzHC2Az9QwB6gxdQmpwHl6GlQtbGgS+lj5887guDiLw==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "win32" - ], "engines": { - "node": ">=18" + "node": "^22.18.0 || >=24.11.0" } }, - "node_modules/@angular/build/node_modules/agent-base": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-9.0.0.tgz", - "integrity": "sha512-TQf59BsZnytt8GdJKLPfUZ54g/iaUL2OWDSFCCvMOhsHduDQxO8xC4PNeyIkVcA5KwL2phPSv0douC0fgWzmnA==", + "node_modules/@angular/compiler-cli/node_modules/@babel/helper-string-parser": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-8.0.0.tgz", + "integrity": "sha512-6mJgmFFFIIO82vvoLt9XtRC7/TkzXfts1t/SpRX4IHSzMgqoPYCWesVu1udUPUWioAE/2fcG6WuI8zrkE1gwrg==", "dev": true, "license": "MIT", "engines": { - "node": ">= 20" + "node": "^22.18.0 || >=24.11.0" } }, - "node_modules/@angular/build/node_modules/esbuild": { - "version": "0.28.1", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.28.1.tgz", - "integrity": "sha512-HrJrvZv5ayxBzPfwphOoNzkzOIIlifzk0KJrGK2c8R4+LKpMtpYLQeUdjnwjWv/LZlkH2laZk+4w78pi99D4Vw==", + "node_modules/@angular/compiler-cli/node_modules/@babel/helper-validator-identifier": { + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-8.0.4.tgz", + "integrity": "sha512-4wFaiLd0bVo4cIoTXI3zKI038NIWE/cr3jvBjejOVYVxV/m8Ltav1USiGzG1fmS5J2RhgEOgXNNK46cRPnRsrg==", "dev": true, - "hasInstallScript": true, "license": "MIT", - "bin": { - "esbuild": "bin/esbuild" - }, "engines": { - "node": ">=18" - }, - "optionalDependencies": { - "@esbuild/aix-ppc64": "0.28.1", - "@esbuild/android-arm": "0.28.1", - "@esbuild/android-arm64": "0.28.1", - "@esbuild/android-x64": "0.28.1", - "@esbuild/darwin-arm64": "0.28.1", - "@esbuild/darwin-x64": "0.28.1", - "@esbuild/freebsd-arm64": "0.28.1", - "@esbuild/freebsd-x64": "0.28.1", - "@esbuild/linux-arm": "0.28.1", - "@esbuild/linux-arm64": "0.28.1", - "@esbuild/linux-ia32": "0.28.1", - "@esbuild/linux-loong64": "0.28.1", - "@esbuild/linux-mips64el": "0.28.1", - "@esbuild/linux-ppc64": "0.28.1", - "@esbuild/linux-riscv64": "0.28.1", - "@esbuild/linux-s390x": "0.28.1", - "@esbuild/linux-x64": "0.28.1", - "@esbuild/netbsd-arm64": "0.28.1", - "@esbuild/netbsd-x64": "0.28.1", - "@esbuild/openbsd-arm64": "0.28.1", - "@esbuild/openbsd-x64": "0.28.1", - "@esbuild/openharmony-arm64": "0.28.1", - "@esbuild/sunos-x64": "0.28.1", - "@esbuild/win32-arm64": "0.28.1", - "@esbuild/win32-ia32": "0.28.1", - "@esbuild/win32-x64": "0.28.1" + "node": "^22.18.0 || >=24.11.0" } }, - "node_modules/@angular/build/node_modules/https-proxy-agent": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-9.0.0.tgz", - "integrity": "sha512-/MVmHp58WkOypgFhCLk4fzpPcFQvTJ/e6LBI7irpIO2HfxUbpmYoHF+KzipzJpxxzJu7aJNWQ0xojJ/dzV2G5g==", + "node_modules/@angular/compiler-cli/node_modules/@babel/helper-validator-option": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-8.0.0.tgz", + "integrity": "sha512-U4Dybxh4WESWHt5XhBeExi4DrY0/DNK1aHpQbsrQXCUbFHuMweT0TpLEWKvaraV2Y6fS+ZXunsZ8zIuZIgvF2Q==", "dev": true, "license": "MIT", - "dependencies": { - "agent-base": "9.0.0", - "debug": "^4.3.4" - }, "engines": { - "node": ">= 20" + "node": "^22.18.0 || >=24.11.0" } }, - "node_modules/@angular/cdk": { - "version": "22.0.5", - "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-22.0.5.tgz", - "integrity": "sha512-qy1scYkkhedGxrU2GjOUoh76xjsxCDOODWdVfg4aXLXG7RBIH6hOuKdcNpR/sWhfSdY02a11QYRN2CqoqWDvZQ==", + "node_modules/@angular/compiler-cli/node_modules/@babel/helpers": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-8.0.0.tgz", + "integrity": "sha512-wfbi91pM3py96oIiJEz7qIpyXDytgr9zQC1HEWwlGNVRAEmItuU/0a41ZUKu1sJGyhhOIpc4t5vk4PYzt8wpsg==", + "dev": true, "license": "MIT", "dependencies": { - "parse5": "^8.0.0", - "tslib": "^2.3.0" + "@babel/template": "^8.0.0", + "@babel/types": "^8.0.0" }, - "peerDependencies": { - "@angular/common": "^22.0.0 || ^23.0.0", - "@angular/core": "^22.0.0 || ^23.0.0", - "@angular/platform-browser": "^22.0.0 || ^23.0.0", - "rxjs": "^6.5.3 || ^7.4.0" + "engines": { + "node": "^22.18.0 || >=24.11.0" } }, - "node_modules/@angular/cli": { - "version": "22.0.7", - "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-22.0.7.tgz", - "integrity": "sha512-5r+fgP8ARnXZeylAGt5BuToVcR8Vn2QQZ6dPMe7V9o4NdvJqqOKmE7fEiRe7KaxIx5WSDhuAhgW9t+scLZQbvw==", + "node_modules/@angular/compiler-cli/node_modules/@babel/parser": { + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-8.0.4.tgz", + "integrity": "sha512-srpptsAkEbbNIC/q8nT7o+m6CQe8CJUTV/t7MYc9NnWlgYVtHOb7JH6SorxMhN0kuRJjVqXbKClG6xSbPtzz+g==", "dev": true, "license": "MIT", "dependencies": { - "@angular-devkit/architect": "0.2200.7", - "@angular-devkit/core": "22.0.7", - "@angular-devkit/schematics": "22.0.7", - "@inquirer/prompts": "8.4.2", - "@listr2/prompt-adapter-inquirer": "4.2.3", - "@modelcontextprotocol/sdk": "1.29.0", - "@schematics/angular": "22.0.7", - "@yarnpkg/lockfile": "1.1.0", - "algoliasearch": "5.52.0", - "ini": "6.0.0", - "jsonc-parser": "3.3.1", - "listr2": "10.2.1", - "npm-package-arg": "13.0.2", - "pacote": "21.5.1", - "parse5-html-rewriting-stream": "8.0.1", - "semver": "7.7.4", - "yargs": "18.0.0", - "zod": "4.4.2" + "@babel/types": "^8.0.4" }, "bin": { - "ng": "bin/ng.js" + "parser": "bin/babel-parser.js" }, "engines": { - "node": "^22.22.3 || ^24.15.0 || >=26.0.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" + "node": "^22.18.0 || >=24.11.0" } }, - "node_modules/@angular/common": { - "version": "22.0.7", - "resolved": "https://registry.npmjs.org/@angular/common/-/common-22.0.7.tgz", - "integrity": "sha512-iun8auXVnpPzunhtaPHMF0gSpByxv7kHhG3Nb6r34eJITW5p06LYyZbkAnl5ERArmgQvEV4pTjoo7ZTK3cJzzw==", + "node_modules/@angular/compiler-cli/node_modules/@babel/template": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-8.0.0.tgz", + "integrity": "sha512-eAD0QW/AlbamBbw0FeGiwasbCVPq5ncW0HNVyLP3B9czqLyh4gvw+5JTSNt6le9+ziAU7mqDZsKTHf3jTb4chQ==", + "dev": true, "license": "MIT", "dependencies": { - "tslib": "^2.3.0" + "@babel/code-frame": "^8.0.0", + "@babel/parser": "^8.0.0", + "@babel/types": "^8.0.0" }, "engines": { - "node": "^22.22.3 || ^24.15.0 || >=26.0.0" - }, - "peerDependencies": { - "@angular/core": "22.0.7", - "rxjs": "^6.5.3 || ^7.4.0" + "node": "^22.18.0 || >=24.11.0" } }, - "node_modules/@angular/compiler": { - "version": "22.0.7", - "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-22.0.7.tgz", - "integrity": "sha512-zhFPKYJzpml5bt58DkJq8S6S2bSJBomebgLYtUvZNLdQMicd5qmRGX6I3LO7Jd+HgjB2Flne/sloI+Jcyz1aOQ==", + "node_modules/@angular/compiler-cli/node_modules/@babel/traverse": { + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-8.0.4.tgz", + "integrity": "sha512-bZnmqzGG8UZneG1lLxBoWIH0G6Gr1D846Yu4/3XnY6FhCndMR49u26nTY08u/dAxWmLWF9vGQOuC+84FfIUoeg==", + "dev": true, "license": "MIT", "dependencies": { - "tslib": "^2.3.0" + "@babel/code-frame": "^8.0.0", + "@babel/generator": "^8.0.0", + "@babel/helper-globals": "^8.0.0", + "@babel/parser": "^8.0.4", + "@babel/template": "^8.0.0", + "@babel/types": "^8.0.4", + "obug": "^2.1.1" }, "engines": { - "node": "^22.22.3 || ^24.15.0 || >=26.0.0" + "node": "^22.18.0 || >=24.11.0" } }, - "node_modules/@angular/compiler-cli": { - "version": "22.0.7", - "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-22.0.7.tgz", - "integrity": "sha512-/3HjBJUzljyPgb77R679+FN1+27xIGuLCAhuqzfj6DxX5WJOOmQOWE/k12eAZujE+ZypSf8ZGkfaukZV43FwoA==", + "node_modules/@angular/compiler-cli/node_modules/@babel/types": { + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-8.0.4.tgz", + "integrity": "sha512-eY+Yn3dCqTGmyiq2QRU66lA5FL8lqqqvecHt0fF3uHONIa7ToYsaCiWV8lOKqAs0Rb2SjixiKFROngnulPtt2g==", "dev": true, "license": "MIT", "dependencies": { - "@babel/core": "7.29.7", - "@jridgewell/sourcemap-codec": "^1.4.14", - "chokidar": "^5.0.0", - "convert-source-map": "^1.5.1", - "reflect-metadata": "^0.2.0", - "semver": "^7.0.0", - "tslib": "^2.3.0", - "yargs": "^18.0.0" - }, - "bin": { - "ng-xi18n": "bundles/src/bin/ng_xi18n.js", - "ngc": "bundles/src/bin/ngc.js" + "@babel/helper-string-parser": "^8.0.0", + "@babel/helper-validator-identifier": "^8.0.4" }, "engines": { - "node": "^22.22.3 || ^24.15.0 || >=26.0.0" - }, - "peerDependencies": { - "@angular/compiler": "22.0.7", - "typescript": ">=6.0 <6.1" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "node": "^22.18.0 || >=24.11.0" + } + }, + "node_modules/@angular/compiler-cli/node_modules/js-tokens": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-10.0.0.tgz", + "integrity": "sha512-lM/UBzQmfJRo9ABXbPWemivdCW8V2G8FHaHdypQaIy523snUjog0W71ayWXTjiR+ixeMyVHN2XcpnTd/liPg/Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/@angular/compiler-cli/node_modules/lru-cache": { + "version": "11.5.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.5.2.tgz", + "integrity": "sha512-4pfM1Ff0x50o0tQwb5ucw/RzNyD0/YJME6IVcStalZuMWxdt3sR3huStTtxz4PUmvZfRguvDejasvQ2kifR11g==", + "dev": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": "20 || >=22" } }, "node_modules/@angular/core": { - "version": "22.0.7", - "resolved": "https://registry.npmjs.org/@angular/core/-/core-22.0.7.tgz", - "integrity": "sha512-A5xKJx5wuuZfeJhShyZvbgicYtT3Jpw/5wJd1cfrcKU+i63CagRIg9jSktTW/e+2hxG1tIQrfKQUGeclmsAUUA==", + "version": "22.1.1", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-22.1.1.tgz", + "integrity": "sha512-QFZNFzyFw9l1B1D7NCEU3YiLLBnMSejyp9mzJrzZ9vzc70BsewikcLFwuj+qqleqFmi5VW3f9GFNgwUq8dWGAg==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -1320,7 +1192,7 @@ "node": "^22.22.3 || ^24.15.0 || >=26.0.0" }, "peerDependencies": { - "@angular/compiler": "22.0.7", + "@angular/compiler": "22.1.1", "rxjs": "^6.5.3 || ^7.4.0", "zone.js": "~0.15.0 || ~0.16.0" }, @@ -1334,9 +1206,9 @@ } }, "node_modules/@angular/forms": { - "version": "22.0.7", - "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-22.0.7.tgz", - "integrity": "sha512-24ldrCORVCi3SoqtshjD8PcT5zg4aIXy9p8+GsO/c3yuhAouVOwL4z1/btNdo7UZv1asyaT3w4lgzprN8TGpjA==", + "version": "22.1.1", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-22.1.1.tgz", + "integrity": "sha512-6c5IJaCw6hAsBYl+LeQARwV4eGxfHwHTlTWfCB5dOYjMSgCCjaivkNTCUepYXFo5Fkdvw1qDiWIpAfgusAxmww==", "license": "MIT", "dependencies": { "@standard-schema/spec": "^1.0.0", @@ -1347,20 +1219,20 @@ "node": "^22.22.3 || ^24.15.0 || >=26.0.0" }, "peerDependencies": { - "@angular/common": "22.0.7", - "@angular/core": "22.0.7", - "@angular/platform-browser": "22.0.7", + "@angular/common": "22.1.1", + "@angular/core": "22.1.1", + "@angular/platform-browser": "22.1.1", "rxjs": "^6.5.3 || ^7.4.0" } }, "node_modules/@angular/language-server": { - "version": "22.0.7", - "resolved": "https://registry.npmjs.org/@angular/language-server/-/language-server-22.0.7.tgz", - "integrity": "sha512-bjW+Rzh/cY3q8I0Ss5M07GMmDLiNxREPLnnqe4W2u9TPvBEHZjJLU7tWMgdmBfxndZFEfF5ij4vCpSdSJ9mlbw==", + "version": "22.1.1", + "resolved": "https://registry.npmjs.org/@angular/language-server/-/language-server-22.1.1.tgz", + "integrity": "sha512-W+oL2WFyakKQbtTZ8xz2nhhUK9uLvq6zywyYd0otGBzXs6+0DIzxHjLQGcY9SH+3b1dV4AJERpbme99n0UUGQw==", "dev": true, "license": "MIT", "dependencies": { - "@angular/language-service": "22.0.7", + "@angular/language-service": "22.1.1", "typescript": "6.0.3" }, "bin": { @@ -1371,9 +1243,9 @@ } }, "node_modules/@angular/language-service": { - "version": "22.0.7", - "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-22.0.7.tgz", - "integrity": "sha512-IT2CSgrb26S2SlVhWfCe0VHjv3Tdh5BG0W7LmFn1SWeQZQmUpKwyy+3pvCh3OKIUeNfqd4YNznIv8Vslnpof1A==", + "version": "22.1.1", + "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-22.1.1.tgz", + "integrity": "sha512-Q90BG9RS2PjVBmyFOVb1iY476LXOKGM/aSs+v7RW1Hh4yKl0TwzfNiBud5DywWMeSUreXRpp91Ep0k4VlJ3Dhw==", "dev": true, "license": "MIT", "engines": { @@ -1381,15 +1253,15 @@ } }, "node_modules/@angular/material": { - "version": "22.0.5", - "resolved": "https://registry.npmjs.org/@angular/material/-/material-22.0.5.tgz", - "integrity": "sha512-A0SnDMvWQBxv3dB2w33GXwuo1/puKtFe8ZMQmIiurS5bbTQpV7UHAM0pWzg7L4DG2cvaH4WZGRPfNG3f8fh+yA==", + "version": "22.1.1", + "resolved": "https://registry.npmjs.org/@angular/material/-/material-22.1.1.tgz", + "integrity": "sha512-wXNNstkLrUJwmP/cZl+C64chL5qH0WbnHIeYbiXrPwgriAD10prbVBoSq2CWbBrAhQ691pDdFKVSLG5tC224jg==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" }, "peerDependencies": { - "@angular/cdk": "22.0.5", + "@angular/cdk": "22.1.1", "@angular/common": "^22.0.0 || ^23.0.0", "@angular/core": "^22.0.0 || ^23.0.0", "@angular/forms": "^22.0.0 || ^23.0.0", @@ -1398,23 +1270,23 @@ } }, "node_modules/@angular/material-date-fns-adapter": { - "version": "22.0.5", - "resolved": "https://registry.npmjs.org/@angular/material-date-fns-adapter/-/material-date-fns-adapter-22.0.5.tgz", - "integrity": "sha512-TXag0QF9CwR5jR0dvX7wt23nk1Ck2EmfJg/xR/RI4HfHRz+1qiHhZ9K8oqU/37hGfFUCdL137hFw3OAMVYaywQ==", + "version": "22.1.1", + "resolved": "https://registry.npmjs.org/@angular/material-date-fns-adapter/-/material-date-fns-adapter-22.1.1.tgz", + "integrity": "sha512-K+/JX9fGndESRI4IBrd5OJJdWGYuTz22r3JxflbJsKS5OnEmdFTSOsC0Vh6EITr5MC8dIcneJCZtrohOtaQaOA==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" }, "peerDependencies": { "@angular/core": "^22.0.0 || ^23.0.0", - "@angular/material": "22.0.5", + "@angular/material": "22.1.1", "date-fns": ">2.20.0 <5.0" } }, "node_modules/@angular/platform-browser": { - "version": "22.0.7", - "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-22.0.7.tgz", - "integrity": "sha512-iCuREIWRnDCsd7mI5vn5ovXjcSwseWR4qfd+zo6QUrY2O9zkUNV79YuCqVjSzvWyvU2rtR5iRBvpB5JQgBELeg==", + "version": "22.1.1", + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-22.1.1.tgz", + "integrity": "sha512-u1HMINw++YTUzMbJB9zVhqch1iEiEl5vA88HjZYzoDagBcnIev30GRWI+QEy4Dy9GRg64hrCOl9Fke78dLQgYQ==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -1423,20 +1295,15 @@ "node": "^22.22.3 || ^24.15.0 || >=26.0.0" }, "peerDependencies": { - "@angular/animations": "22.0.7", - "@angular/common": "22.0.7", - "@angular/core": "22.0.7" - }, - "peerDependenciesMeta": { - "@angular/animations": { - "optional": true - } + "@angular/animations": "22.1.1", + "@angular/common": "22.1.1", + "@angular/core": "22.1.1" } }, "node_modules/@angular/platform-browser-dynamic": { - "version": "22.0.7", - "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-22.0.7.tgz", - "integrity": "sha512-FssnDZLIOYBsUO9EF4oHPHaNZyyCptVV0wYlGV5TlMWEJ6R3UllynUiQi03Zqyg344azgbPr2ieW3qoz0PAbsQ==", + "version": "22.1.1", + "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-22.1.1.tgz", + "integrity": "sha512-r3UVNjW4Ew9DDTK0pnUGQ4gFmms4XjciM1wRqiMAI4iHXzh76tonvZ1PYio2ON+7pl9u1ETq294NTWag9hVYWA==", "deprecated": "@angular/platform-browser-dynamic is deprecated. Use `@angular/platform-browser` instead.", "license": "MIT", "dependencies": { @@ -1446,16 +1313,16 @@ "node": "^22.22.3 || ^24.15.0 || >=26.0.0" }, "peerDependencies": { - "@angular/common": "22.0.7", - "@angular/compiler": "22.0.7", - "@angular/core": "22.0.7", - "@angular/platform-browser": "22.0.7" + "@angular/common": "22.1.1", + "@angular/compiler": "22.1.1", + "@angular/core": "22.1.1", + "@angular/platform-browser": "22.1.1" } }, "node_modules/@angular/router": { - "version": "22.0.7", - "resolved": "https://registry.npmjs.org/@angular/router/-/router-22.0.7.tgz", - "integrity": "sha512-uMh+2S5y5Z6hTeFL85tDehfqAwVYjnTlHxpCrW+75RD4Z+rLl0/ff2ag3bXknzNyg0Q9LPOH6t/eCcQYajNOQQ==", + "version": "22.1.1", + "resolved": "https://registry.npmjs.org/@angular/router/-/router-22.1.1.tgz", + "integrity": "sha512-sD+dN+UOAhdrqnOp3OWuR+O50msXFt+16OGL6RrM9af40iATkUbEAgU62N4KITKl4ACDisg8yhyb9J3dwCEyzQ==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -1464,16 +1331,16 @@ "node": "^22.22.3 || ^24.15.0 || >=26.0.0" }, "peerDependencies": { - "@angular/common": "22.0.7", - "@angular/core": "22.0.7", - "@angular/platform-browser": "22.0.7", + "@angular/common": "22.1.1", + "@angular/core": "22.1.1", + "@angular/platform-browser": "22.1.1", "rxjs": "^6.5.3 || ^7.4.0" } }, "node_modules/@angular/service-worker": { - "version": "22.0.7", - "resolved": "https://registry.npmjs.org/@angular/service-worker/-/service-worker-22.0.7.tgz", - "integrity": "sha512-Xd47hbaVZvkA4wcXBY570rkfX2eONyUfV15vgPx18bKrmPFlat7Fj75PCWIMn90Tg31BLtuozTZenGGjQXSy4g==", + "version": "22.1.1", + "resolved": "https://registry.npmjs.org/@angular/service-worker/-/service-worker-22.1.1.tgz", + "integrity": "sha512-REsVCYEJNsxqxdy6pOY2KVBWFhjM2FeC2z+D8Ct7CbeKmJHo5bS/SuDJ7F5nMKclpxPMjtrzmFUSGRHp9xjrLQ==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -1485,7 +1352,7 @@ "node": "^22.22.3 || ^24.15.0 || >=26.0.0" }, "peerDependencies": { - "@angular/core": "22.0.7", + "@angular/core": "22.1.1", "rxjs": "^6.5.3 || ^7.4.0" } }, @@ -1580,16 +1447,50 @@ } }, "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.29.7.tgz", - "integrity": "sha512-OoK6239jHPuSQOoS0kfTVKn0b/rVTk0seKq4Gd2UMLtmOVLjDC0ki3e+c90Trqv2gMfvJFqkiljrr568+qddiw==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-8.0.0.tgz", + "integrity": "sha512-NSpMkMsvvZqzThJ0p1B02cbtA2ObEyfBvq950bmNkyxsxvcxwhvvCB036rKhlEnuBBo30bOrk13u3FzlKSoRrw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.29.7" + "@babel/types": "^8.0.0" }, "engines": { - "node": ">=6.9.0" + "node": "^22.18.0 || >=24.11.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure/node_modules/@babel/helper-string-parser": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-8.0.0.tgz", + "integrity": "sha512-6mJgmFFFIIO82vvoLt9XtRC7/TkzXfts1t/SpRX4IHSzMgqoPYCWesVu1udUPUWioAE/2fcG6WuI8zrkE1gwrg==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^22.18.0 || >=24.11.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure/node_modules/@babel/helper-validator-identifier": { + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-8.0.4.tgz", + "integrity": "sha512-4wFaiLd0bVo4cIoTXI3zKI038NIWE/cr3jvBjejOVYVxV/m8Ltav1USiGzG1fmS5J2RhgEOgXNNK46cRPnRsrg==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^22.18.0 || >=24.11.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure/node_modules/@babel/types": { + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-8.0.4.tgz", + "integrity": "sha512-eY+Yn3dCqTGmyiq2QRU66lA5FL8lqqqvecHt0fF3uHONIa7ToYsaCiWV8lOKqAs0Rb2SjixiKFROngnulPtt2g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^8.0.0", + "@babel/helper-validator-identifier": "^8.0.4" + }, + "engines": { + "node": "^22.18.0 || >=24.11.0" } }, "node_modules/@babel/helper-compilation-targets": { @@ -1792,20 +1693,40 @@ } }, "node_modules/@cantoo/pdf-lib": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/@cantoo/pdf-lib/-/pdf-lib-2.7.4.tgz", - "integrity": "sha512-tMet5mSJOESLAvSw/NnVoty2L7hHtWGtXt7CjxL4jeq1r3fg8lB7+sO0qKRyqR3kxeWfa8W5C5IuyNtHSVaTeQ==", + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/@cantoo/pdf-lib/-/pdf-lib-2.8.1.tgz", + "integrity": "sha512-ChSLQuCqetxsElt45FXs/4CmsgYIlI12PBfo0HPyQnhH6U+Rs1WSNekNwG8ppAi2N/1eqjIr7ldeGrtjtkRhbQ==", "license": "MIT", "dependencies": { "@pdf-lib/standard-fonts": "^1.0.0", "@pdf-lib/upng": "^1.0.1", "color": "^4.2.3", "crypto-js": "^4.2.0", - "node-html-better-parser": ">=1.4.0", - "pako": "^1.0.11", + "html-entities": "^2.3.2", + "node-html-better-parser": ">=1.5.9", + "pako": "^2.2.0", "tslib": ">=2" + }, + "peerDependencies": { + "html-entities": "^2.3.2" } }, + "node_modules/@cantoo/pdf-lib/node_modules/pako": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/pako/-/pako-2.2.0.tgz", + "integrity": "sha512-zJq6RP/5q+TO2OpFV3FHzlPnFjmkb7Nc99a5SNjJE+uu/PkpChs+NIZSSzbBoD+6kjiISXjfYdwj1ZRQ81dz/w==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/puzrin" + }, + { + "type": "github", + "url": "https://github.com/sponsors/nodeca" + } + ], + "license": "(MIT AND Zlib)" + }, "node_modules/@colors/colors": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", @@ -1817,18 +1738,18 @@ } }, "node_modules/@coreui/angular-chartjs": { - "version": "5.7.6", - "resolved": "https://registry.npmjs.org/@coreui/angular-chartjs/-/angular-chartjs-5.7.6.tgz", - "integrity": "sha512-Yv+5FNF/w52hH7GQmjM6YDlvlC7VtClMMcjyii5D8sLjeS6tQoQlONgydRNhcU05xq588FxhYG0Bv6ibSj0R1Q==", + "version": "5.7.15", + "resolved": "https://registry.npmjs.org/@coreui/angular-chartjs/-/angular-chartjs-5.7.15.tgz", + "integrity": "sha512-imaDmy47TG1mntjWpDv6VNQzcwljsBPUlkSqecgX4SHc2Ozo7qx69JM+oSSCA6DBwPcmWUaGwUQtuM/9kXzT7Q==", "license": "MIT", "dependencies": { "lodash-es": "^4.18.1", "tslib": "^2.3.0" }, "peerDependencies": { - "@angular/core": "^22.0.0", + "@angular/core": "^22.1.0", "@coreui/chartjs": "^4.2.0", - "chart.js": "^4.5.0" + "chart.js": "^4.5.1" } }, "node_modules/@coreui/chartjs": { @@ -1889,10 +1810,44 @@ "integrity": "sha512-lwYN/vDPeNRULcepoE/LO2Pgx+7/RV+S9ARfbc9lr2DtGkOD7pAiruHvbR1RX3Qyf6ja47EWJDMsNK5vK08DJg==", "license": "MIT" }, + "node_modules/@emnapi/core": { + "version": "1.11.2", + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.11.2.tgz", + "integrity": "sha512-TC8MkTuZUtcTSiFeuC0ksCh9QIJ5+F21MvZ4Wn4ORfYaFJ/0dsiudv5tVkejgwZlwQ39jL9WWDe2lz8x0WglOA==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/wasi-threads": "1.2.2", + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/runtime": { + "version": "1.11.2", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.11.2.tgz", + "integrity": "sha512-kyOl3X0DuTiT1h2ft8r2fYO8JYtU9a9Xis/zBSiGArNaagCOWx90N1k2wxp18czFDH+OgcWGb5ZP/XMt3dcyPA==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/wasi-threads": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.2.tgz", + "integrity": "sha512-c95qOXkHdydNKhscBTebqEC1CVAZpyqOfVfBzQ1qgzyl3gfeldUjIggDbIZgDKsHLgnsM+igH7TJ/eAasaVuMA==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, "node_modules/@esbuild/aix-ppc64": { - "version": "0.27.7", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.7.tgz", - "integrity": "sha512-EKX3Qwmhz1eMdEJokhALr0YiD0lhQNwDqkPYyPhiSwKrh7/4KRjQc04sZ8db+5DVVnZ1LmbNDI1uAMPEUBnQPg==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.28.1.tgz", + "integrity": "sha512-Svl7tq8k/08+p6CXPpRjQ1fKX+1odH/BQbb48fV6fj3CWHhsoIOoY87w1oHXm0qEpkIK3ZfVgp0hed3XBXzXMQ==", "cpu": [ "ppc64" ], @@ -1907,9 +1862,9 @@ } }, "node_modules/@esbuild/android-arm": { - "version": "0.27.7", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.7.tgz", - "integrity": "sha512-jbPXvB4Yj2yBV7HUfE2KHe4GJX51QplCN1pGbYjvsyCZbQmies29EoJbkEc+vYuU5o45AfQn37vZlyXy4YJ8RQ==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.28.1.tgz", + "integrity": "sha512-0k2F129Xdio1TdJfzJ8sy1Q47vUD2NnwdhiAf7drUN1EBTfPf4hsFCtmMgu/6m8JSzsBrlmVjudMBQqOfG8usQ==", "cpu": [ "arm" ], @@ -1924,9 +1879,9 @@ } }, "node_modules/@esbuild/android-arm64": { - "version": "0.27.7", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.7.tgz", - "integrity": "sha512-62dPZHpIXzvChfvfLJow3q5dDtiNMkwiRzPylSCfriLvZeq0a1bWChrGx/BbUbPwOrsWKMn8idSllklzBy+dgQ==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.28.1.tgz", + "integrity": "sha512-34EGEbCIAgosYz6goLcopX6Mo7NyGv9tfwEM2/7Ce2VcVRk568iSvniGWcUXIy7wEDR1wzolcxcriFVrWYcwBg==", "cpu": [ "arm64" ], @@ -1941,9 +1896,9 @@ } }, "node_modules/@esbuild/android-x64": { - "version": "0.27.7", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.7.tgz", - "integrity": "sha512-x5VpMODneVDb70PYV2VQOmIUUiBtY3D3mPBG8NxVk5CogneYhkR7MmM3yR/uMdITLrC1ml/NV1rj4bMJuy9MCg==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.28.1.tgz", + "integrity": "sha512-dbwY7ltSMDWsRatcRpCnES4F+im88OCUgGZjy52shC7GqHRE/cYlxNbB4Z4UpJswpcc4Qxd2oE/ufM0p61IKng==", "cpu": [ "x64" ], @@ -1958,9 +1913,9 @@ } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.27.7", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.7.tgz", - "integrity": "sha512-5lckdqeuBPlKUwvoCXIgI2D9/ABmPq3Rdp7IfL70393YgaASt7tbju3Ac+ePVi3KDH6N2RqePfHnXkaDtY9fkw==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.28.1.tgz", + "integrity": "sha512-TZbWkQY7kvTAXbXUT7uVACR5cMHsDiSz9z7ZKAX/RTq/WJEk3QyRr0wZpNhBDX+/0CtdqUIJlOiodQcta6tY3Q==", "cpu": [ "arm64" ], @@ -1975,9 +1930,9 @@ } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.27.7", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.7.tgz", - "integrity": "sha512-rYnXrKcXuT7Z+WL5K980jVFdvVKhCHhUwid+dDYQpH+qu+TefcomiMAJpIiC2EM3Rjtq0sO3StMV/+3w3MyyqQ==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.28.1.tgz", + "integrity": "sha512-zfdzgK9ACBNZLI/CyHTOx81SyNbM6YXn7rxSgX97VjyiPl9W1i4Ka4fgKECEoFCKGpvBj5qArWIGgQjOwkgskQ==", "cpu": [ "x64" ], @@ -1992,9 +1947,9 @@ } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.27.7", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.7.tgz", - "integrity": "sha512-B48PqeCsEgOtzME2GbNM2roU29AMTuOIN91dsMO30t+Ydis3z/3Ngoj5hhnsOSSwNzS+6JppqWsuhTp6E82l2w==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.28.1.tgz", + "integrity": "sha512-wG2EA8ENdEI0qhkSZMjfqrdY+ziCYCPMmtZjjIwOmXFjmyzEHn+UUxk5of+SYsjtfs3VpnlC7QLzSI5hY/rOAw==", "cpu": [ "arm64" ], @@ -2009,9 +1964,9 @@ } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.27.7", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.7.tgz", - "integrity": "sha512-jOBDK5XEjA4m5IJK3bpAQF9/Lelu/Z9ZcdhTRLf4cajlB+8VEhFFRjWgfy3M1O4rO2GQ/b2dLwCUGpiF/eATNQ==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.28.1.tgz", + "integrity": "sha512-i7dZ9vQgnvSCzi/rYCXNgtF/U+eKZNJBzu3eTQbRgHnM7tNSizLOkRFAl3qzVc/Op/u5YkHHa4pf/3DOYHthLQ==", "cpu": [ "x64" ], @@ -2026,9 +1981,9 @@ } }, "node_modules/@esbuild/linux-arm": { - "version": "0.27.7", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.7.tgz", - "integrity": "sha512-RkT/YXYBTSULo3+af8Ib0ykH8u2MBh57o7q/DAs3lTJlyVQkgQvlrPTnjIzzRPQyavxtPtfg0EopvDyIt0j1rA==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.28.1.tgz", + "integrity": "sha512-qVXBOHQS+d5Y722GwJzJUtOLlX7km3CraOaGormF1pDtPd2C/l1SHRPgjLunLGe51Sh5YYWKMFDyV4SxgMQYTQ==", "cpu": [ "arm" ], @@ -2043,9 +1998,9 @@ } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.27.7", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.7.tgz", - "integrity": "sha512-RZPHBoxXuNnPQO9rvjh5jdkRmVizktkT7TCDkDmQ0W2SwHInKCAV95GRuvdSvA7w4VMwfCjUiPwDi0ZO6Nfe9A==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.28.1.tgz", + "integrity": "sha512-yHs+0uc8+nvEAfAfxrWQKK5peSNzBc4PegcMO0EJ2hT71uA7vB8Ihg2e77R2P7SG5uYjPbHlLLmve4LLLRCf0g==", "cpu": [ "arm64" ], @@ -2060,9 +2015,9 @@ } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.27.7", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.27.7.tgz", - "integrity": "sha512-GA48aKNkyQDbd3KtkplYWT102C5sn/EZTY4XROkxONgruHPU72l+gW+FfF8tf2cFjeHaRbWpOYa/uRBz/Xq1Pg==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.28.1.tgz", + "integrity": "sha512-d1z4ZuP0ajrfz/FhGT4vv278rX8KnPPJx8i5+AtK7TYbx9Le9F1hyzurZpkEyjkGa9dUGhQow4C1NmeGvqxN2w==", "cpu": [ "ia32" ], @@ -2077,9 +2032,9 @@ } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.27.7", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.27.7.tgz", - "integrity": "sha512-a4POruNM2oWsD4WKvBSEKGIiWQF8fZOAsycHOt6JBpZ+JN2n2JH9WAv56SOyu9X5IqAjqSIPTaJkqN8F7XOQ5Q==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.28.1.tgz", + "integrity": "sha512-M5sRjUVZrkm1OAPR3dlOYzNmN+loZKGVi1VUQGrwuqLcbR6qeAz+famMhjASeH3YVKvZz+zT1jlh/keC3Rj/lg==", "cpu": [ "loong64" ], @@ -2094,9 +2049,9 @@ } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.27.7", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.27.7.tgz", - "integrity": "sha512-KabT5I6StirGfIz0FMgl1I+R1H73Gp0ofL9A3nG3i/cYFJzKHhouBV5VWK1CSgKvVaG4q1RNpCTR2LuTVB3fIw==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.28.1.tgz", + "integrity": "sha512-mRObBZeHh2OxcBFPWE/FjylkRgZdYuiTR3vaTozquCGOH14iP9oN4x4Ge81CoIDYQrXmIxpFumJBu5MtZpnQJQ==", "cpu": [ "mips64el" ], @@ -2111,9 +2066,9 @@ } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.27.7", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.27.7.tgz", - "integrity": "sha512-gRsL4x6wsGHGRqhtI+ifpN/vpOFTQtnbsupUF5R5YTAg+y/lKelYR1hXbnBdzDjGbMYjVJLJTd2OFmMewAgwlQ==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.28.1.tgz", + "integrity": "sha512-slScBsMAb3GFDcdrCgLwZtPYRoH2H/youv10QiZyRjmsP48fznoveWytSgCI/R0ZcUgpc0ZhIUEx6LHts8yrfQ==", "cpu": [ "ppc64" ], @@ -2128,9 +2083,9 @@ } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.27.7", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.27.7.tgz", - "integrity": "sha512-hL25LbxO1QOngGzu2U5xeXtxXcW+/GvMN3ejANqXkxZ/opySAZMrc+9LY/WyjAan41unrR3YrmtTsUpwT66InQ==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.28.1.tgz", + "integrity": "sha512-kw0owk1o0GFETUJyW0jc0G4Yzs0BHZn0JDZ8JRT088vjJYX777BAs1fDGxAC+q831qOs2DTC96mNsG2opdfyyQ==", "cpu": [ "riscv64" ], @@ -2145,9 +2100,9 @@ } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.27.7", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.27.7.tgz", - "integrity": "sha512-2k8go8Ycu1Kb46vEelhu1vqEP+UeRVj2zY1pSuPdgvbd5ykAw82Lrro28vXUrRmzEsUV0NzCf54yARIK8r0fdw==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.28.1.tgz", + "integrity": "sha512-/lAIjX8aYFRByhh6L5rYtPEDRqa9de/4V/juOXcta5frjvzXO4/sqEtyytse0g3zZFuWu5cDN0MkLz2qRDD2Ag==", "cpu": [ "s390x" ], @@ -2162,9 +2117,9 @@ } }, "node_modules/@esbuild/linux-x64": { - "version": "0.27.7", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.7.tgz", - "integrity": "sha512-hzznmADPt+OmsYzw1EE33ccA+HPdIqiCRq7cQeL1Jlq2gb1+OyWBkMCrYGBJ+sxVzve2ZJEVeePbLM2iEIZSxA==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.28.1.tgz", + "integrity": "sha512-u/anNYF2mmVOEDwLtnQ1wOr3EZ9sTNGLWrsYGYwHWzGA3Si84IOkHXlbWTD1NB+9/1lcnweYKO54uhxZydNzfA==", "cpu": [ "x64" ], @@ -2179,9 +2134,9 @@ } }, "node_modules/@esbuild/netbsd-arm64": { - "version": "0.27.7", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.7.tgz", - "integrity": "sha512-b6pqtrQdigZBwZxAn1UpazEisvwaIDvdbMbmrly7cDTMFnw/+3lVxxCTGOrkPVnsYIosJJXAsILG9XcQS+Yu6w==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.28.1.tgz", + "integrity": "sha512-oks0DYbLwWMmaakTsCb+zL4E+aHRVLom9IJZOAthMQEPiQmydXHkziYEsGYRx0uNV/IjEKGAV941JzH02pflqw==", "cpu": [ "arm64" ], @@ -2196,9 +2151,9 @@ } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.27.7", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.27.7.tgz", - "integrity": "sha512-OfatkLojr6U+WN5EDYuoQhtM+1xco+/6FSzJJnuWiUw5eVcicbyK3dq5EeV/QHT1uy6GoDhGbFpprUiHUYggrw==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.28.1.tgz", + "integrity": "sha512-aeL6lAnN89Hz43Mlh1G8ARasbuoYvSITDEx0tHh5b7jJnHcssqgjy9Yx430GDpmCa6OyrKoS0aNRjKundRizGg==", "cpu": [ "x64" ], @@ -2213,9 +2168,9 @@ } }, "node_modules/@esbuild/openbsd-arm64": { - "version": "0.27.7", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.7.tgz", - "integrity": "sha512-AFuojMQTxAz75Fo8idVcqoQWEHIXFRbOc1TrVcFSgCZtQfSdc1RXgB3tjOn/krRHENUB4j00bfGjyl2mJrU37A==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.28.1.tgz", + "integrity": "sha512-MEFJe5C3R8pwXdZ5Y21oo6m7ePiS0d9pWucn99O/wvyJZChoIQKrQDxKrGeW8F5+T0okTHesAmDeiHDTIq0V/Q==", "cpu": [ "arm64" ], @@ -2230,9 +2185,9 @@ } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.27.7", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.27.7.tgz", - "integrity": "sha512-+A1NJmfM8WNDv5CLVQYJ5PshuRm/4cI6WMZRg1by1GwPIQPCTs1GLEUHwiiQGT5zDdyLiRM/l1G0Pv54gvtKIg==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.28.1.tgz", + "integrity": "sha512-i/ZLIOafE0Z8cI/XANJAixoJL/uRAoS2xOA3rb0xN+KK0K177cMAsQYkzHtBrtMXAKuAc7HGgcWiZ/sRC1Nxgw==", "cpu": [ "x64" ], @@ -2247,9 +2202,9 @@ } }, "node_modules/@esbuild/openharmony-arm64": { - "version": "0.27.7", - "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.7.tgz", - "integrity": "sha512-+KrvYb/C8zA9CU/g0sR6w2RBw7IGc5J2BPnc3dYc5VJxHCSF1yNMxTV5LQ7GuKteQXZtspjFbiuW5/dOj7H4Yw==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.28.1.tgz", + "integrity": "sha512-ge+Z7EXFNt2BO1oAMsVpiQ8EwndV9i1xXerAeTIK7AtPs3bKFXQM7nlRxDSIUIMeueR1CNXxqztLzdNeReKBJg==", "cpu": [ "arm64" ], @@ -2264,9 +2219,9 @@ } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.27.7", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.7.tgz", - "integrity": "sha512-ikktIhFBzQNt/QDyOL580ti9+5mL/YZeUPKU2ivGtGjdTYoqz6jObj6nOMfhASpS4GU4Q/Clh1QtxWAvcYKamA==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.28.1.tgz", + "integrity": "sha512-BEjgtECkL3vY+SaSQ6nzVfiALUeFxpawyp8Jmf5PtYhf1Ug40N1h/hxlhts+f1FvSvarEigdxS3BlSMI2PJLcQ==", "cpu": [ "x64" ], @@ -2281,9 +2236,9 @@ } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.27.7", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.7.tgz", - "integrity": "sha512-7yRhbHvPqSpRUV7Q20VuDwbjW5kIMwTHpptuUzV+AA46kiPze5Z7qgt6CLCK3pWFrHeNfDd1VKgyP4O+ng17CA==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.28.1.tgz", + "integrity": "sha512-lCv9eK/H6ZJWbE7bh2nw54CZ9M2nupBxJcTsdk/QQnWkdSjKGuxmmH8/GWrlT1eMmZfn4dGcCjRte397WqfQXA==", "cpu": [ "arm64" ], @@ -2298,9 +2253,9 @@ } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.27.7", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.7.tgz", - "integrity": "sha512-SmwKXe6VHIyZYbBLJrhOoCJRB/Z1tckzmgTLfFYOfpMAx63BJEaL9ExI8x7v0oAO3Zh6D/Oi1gVxEYr5oUCFhw==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.28.1.tgz", + "integrity": "sha512-zvb/mB2bSCoJOpoCBgYKKpX6YM6mJBlBUVUtVj41DlZJVEB6/0CKlRYxP5wWl1C1ILiCoAU5wZZ4q1P3qeS6Eg==", "cpu": [ "ia32" ], @@ -2315,9 +2270,9 @@ } }, "node_modules/@esbuild/win32-x64": { - "version": "0.27.7", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.7.tgz", - "integrity": "sha512-56hiAJPhwQ1R4i+21FVF7V8kSD5zZTdHcVuRFMW0hn753vVfQN8xlx4uOPT4xoGH0Z/oVATuR82AiqSTDIpaHg==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.28.1.tgz", + "integrity": "sha512-bm4Mowrv+GXMlpWX++EcXw/iLyd1o3+bJkC2DkWXYVvgZCqD/bSj9ctZeAMC3cIxgjRVR2Dufaiu4YPxr5gW1A==", "cpu": [ "x64" ], @@ -2621,16 +2576,6 @@ "integrity": "sha512-fAtCfv4jJg+ExtXhvCkCqUKZ+4ok/JQk01qDKhL5BDDoS3AxKXhV5/MAVUZyQnSEd2GT92fkgZl0pz0Q0AzcIQ==", "license": "MIT" }, - "node_modules/@gar/promise-retry": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@gar/promise-retry/-/promise-retry-1.0.3.tgz", - "integrity": "sha512-GmzA9ckNokPypTg10pgpeHNQe7ph+iIKKmhKu3Ob9ANkswreCx7R3cKmY781K8QK3AqVL3xVh9A42JvIAbkkSA==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^20.17.0 || >=22.9.0" - } - }, "node_modules/@harperfast/extended-iterable": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/@harperfast/extended-iterable/-/extended-iterable-1.0.3.tgz", @@ -2753,17 +2698,17 @@ } }, "node_modules/@inquirer/confirm": { - "version": "6.0.12", - "resolved": "https://registry.npmjs.org/@inquirer/confirm/-/confirm-6.0.12.tgz", - "integrity": "sha512-h9FgGun3QwVYNj5TWIZZ+slii73bMoBFjPfVIGtnFuL4t8gBiNDV9PcSfIzkuxvgquJKt9nr1QzszpBzTbH8Og==", + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/@inquirer/confirm/-/confirm-6.1.1.tgz", + "integrity": "sha512-eb8DBZcz/2qHWQda4rk2JiQk5h9QV/cVHi1yjt0f69WFZMRFn0sJTye3EAP8icut8UDMjQPsaH5KbcOogefrFQ==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/core": "^11.1.9", - "@inquirer/type": "^4.0.5" + "@inquirer/core": "^11.2.1", + "@inquirer/type": "^4.0.7" }, "engines": { - "node": ">=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0" + "node": ">=23.5.0 || ^22.13.0 || ^20.17.0" }, "peerDependencies": { "@types/node": ">=18" @@ -2963,25 +2908,25 @@ } }, "node_modules/@inquirer/prompts": { - "version": "8.4.2", - "resolved": "https://registry.npmjs.org/@inquirer/prompts/-/prompts-8.4.2.tgz", - "integrity": "sha512-XJmn/wY4AX56l1BRU+ZjDrFtg9+2uBEi4JvJQj82kwJDQKiPgSn4CEsbfGGygS4Gw6rkL4W18oATjfVfaqub2Q==", + "version": "8.5.2", + "resolved": "https://registry.npmjs.org/@inquirer/prompts/-/prompts-8.5.2.tgz", + "integrity": "sha512-IYR/3C/paEVVQYQvdDlFZVjRCJVYHHON0XXMH91KO9GSxs0TdKYWlUdvfQl2EfAHDxUaN3IBffkE/BDTh5nJ6g==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/checkbox": "^5.1.4", - "@inquirer/confirm": "^6.0.12", - "@inquirer/editor": "^5.1.1", - "@inquirer/expand": "^5.0.13", - "@inquirer/input": "^5.0.12", - "@inquirer/number": "^4.0.12", - "@inquirer/password": "^5.0.12", - "@inquirer/rawlist": "^5.2.8", - "@inquirer/search": "^4.1.8", - "@inquirer/select": "^5.1.4" + "@inquirer/checkbox": "^5.2.1", + "@inquirer/confirm": "^6.1.1", + "@inquirer/editor": "^5.2.2", + "@inquirer/expand": "^5.1.1", + "@inquirer/input": "^5.1.2", + "@inquirer/number": "^4.1.1", + "@inquirer/password": "^5.1.1", + "@inquirer/rawlist": "^5.3.1", + "@inquirer/search": "^4.2.1", + "@inquirer/select": "^5.2.1" }, "engines": { - "node": ">=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0" + "node": ">=23.5.0 || ^22.13.0 || ^20.17.0" }, "peerDependencies": { "@types/node": ">=18" @@ -3089,19 +3034,6 @@ "@tiptap/pm": "^2.10.3 || ^3.0.0" } }, - "node_modules/@isaacs/fs-minipass": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@isaacs/fs-minipass/-/fs-minipass-4.0.1.tgz", - "integrity": "sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==", - "dev": true, - "license": "ISC", - "dependencies": { - "minipass": "^7.0.4" - }, - "engines": { - "node": ">=18.0.0" - } - }, "node_modules/@istanbuljs/schema": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", @@ -3169,13 +3101,13 @@ "license": "MIT" }, "node_modules/@listr2/prompt-adapter-inquirer": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/@listr2/prompt-adapter-inquirer/-/prompt-adapter-inquirer-4.2.3.tgz", - "integrity": "sha512-Co9U3AJ3LW0J8XBHjVoNKA79dMAyFt8EZH3OaKTMcDTj8r+6kG3vSUPq/eGLHT7P0iK3uLaFfhdFYd3033P24g==", + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/@listr2/prompt-adapter-inquirer/-/prompt-adapter-inquirer-4.2.4.tgz", + "integrity": "sha512-/KRI2DMD7JGSYaREF0Ygl7AefJ/2ase4Gc5cBiKqT5l4tFjsSJfhFGcc5nSkgl0Sp9LkCQNzl/cqbVJYP2L3dw==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/type": "^4.0.5" + "@inquirer/type": "^4.0.6" }, "engines": { "node": ">=22.13.0" @@ -3186,9 +3118,9 @@ } }, "node_modules/@lmdb/lmdb-darwin-arm64": { - "version": "3.5.4", - "resolved": "https://registry.npmjs.org/@lmdb/lmdb-darwin-arm64/-/lmdb-darwin-arm64-3.5.4.tgz", - "integrity": "sha512-Kk4Kz3iyu1QiLsLZBS9Af1eSKUC8VR2T+/jyE2iAyuGw2VwK08pp5iTbZnXn6sWu0LogO/RFktMxOjiDA2sS3w==", + "version": "3.5.6", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-darwin-arm64/-/lmdb-darwin-arm64-3.5.6.tgz", + "integrity": "sha512-mY5FG4TjPAkY4P0w+OhHaUka5mDh2TX2WKYIwuKzJ1zeW3VvRgxdam/lGJTquI+bthTx5CSHDW+BAQCnNAzkEA==", "cpu": [ "arm64" ], @@ -3200,9 +3132,9 @@ ] }, "node_modules/@lmdb/lmdb-darwin-x64": { - "version": "3.5.4", - "resolved": "https://registry.npmjs.org/@lmdb/lmdb-darwin-x64/-/lmdb-darwin-x64-3.5.4.tgz", - "integrity": "sha512-BEe5Rp3trn26oxoXOVL5HVDoiYmjUDwr8NRPkBOdUdCSBEorKI+7JrZLRKAdxO+G6cGQLgseXk0gR7qIQa7aGw==", + "version": "3.5.6", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-darwin-x64/-/lmdb-darwin-x64-3.5.6.tgz", + "integrity": "sha512-foa+pwitysO8k+xhs7psBFfTKnVgR69NlZRRTHaFVDqphh7AdGpLeyRzKw/ofatr/sN6TiHRRW6mmop0ZrrppQ==", "cpu": [ "x64" ], @@ -3214,9 +3146,9 @@ ] }, "node_modules/@lmdb/lmdb-linux-arm": { - "version": "3.5.4", - "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-arm/-/lmdb-linux-arm-3.5.4.tgz", - "integrity": "sha512-SGbFR7816uBcTHc2ZY4S6WyOkl9bICnzqTQd2Mv4V/j24cfds88xx2nC6cm/y8zGQL7Ds31YF/5NGxjgcdM5Hw==", + "version": "3.5.6", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-arm/-/lmdb-linux-arm-3.5.6.tgz", + "integrity": "sha512-QR4YRyR5h5Z8eGXrNQjiyo2NNDfqi3tCc9dQG5Is1blCt+qWw1ZoBWhlWAr5d+jshkifMIJjVHzHGKbkKzF8Tw==", "cpu": [ "arm" ], @@ -3228,9 +3160,9 @@ ] }, "node_modules/@lmdb/lmdb-linux-arm64": { - "version": "3.5.4", - "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-arm64/-/lmdb-linux-arm64-3.5.4.tgz", - "integrity": "sha512-cUXEengO8o60v1SWerJTH4/RH4U3+9jC0/4njp2Z9NdmvaGzhKsbRM2wpXuRYrN8tytsoJCg0SvWEWwHAwLbCA==", + "version": "3.5.6", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-arm64/-/lmdb-linux-arm64-3.5.6.tgz", + "integrity": "sha512-HmiyFFdJa38s1heCMSooSPaBSFTHJ3C+ERPp28xAPlDX1YiALJVOgbry065nXd8Y7KISWjnw05zpG1RX8IfftA==", "cpu": [ "arm64" ], @@ -3242,9 +3174,9 @@ ] }, "node_modules/@lmdb/lmdb-linux-x64": { - "version": "3.5.4", - "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-x64/-/lmdb-linux-x64-3.5.4.tgz", - "integrity": "sha512-Gxq8jpgOWXwd0PUR+c9R2Ik1/uBnGd5GMIIzRRDqABCkvmjtC3KWcyhesV9jSPCz759isl0NlbsstZ2oyvk8lA==", + "version": "3.5.6", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-x64/-/lmdb-linux-x64-3.5.6.tgz", + "integrity": "sha512-ADzCuCF2cTNiX9kDScqcz1fjnAkxPpQNneV3KFTdV3wWtVlI2sTGzySoMTgDpinkMMFj1NTJlxA6XR8fwc4hlA==", "cpu": [ "x64" ], @@ -3256,9 +3188,9 @@ ] }, "node_modules/@lmdb/lmdb-win32-arm64": { - "version": "3.5.4", - "resolved": "https://registry.npmjs.org/@lmdb/lmdb-win32-arm64/-/lmdb-win32-arm64-3.5.4.tgz", - "integrity": "sha512-pKv1DJ1bPZAaHkdFsSz5IDfUG8x9vntgquXF9/Dm2xuupcIe/EkLzylpoBxppFVK5vzbV561Dq26jNY2fIMA7g==", + "version": "3.5.6", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-win32-arm64/-/lmdb-win32-arm64-3.5.6.tgz", + "integrity": "sha512-J7A9aEQsQiv0TYtBGL7NDIPp2lOS8nnl+zm4sWZm1xlsTTaQ4PgD096Adzdrk27rw3UxCkDXdCUa4ax41oztBQ==", "cpu": [ "arm64" ], @@ -3270,9 +3202,9 @@ ] }, "node_modules/@lmdb/lmdb-win32-x64": { - "version": "3.5.4", - "resolved": "https://registry.npmjs.org/@lmdb/lmdb-win32-x64/-/lmdb-win32-x64-3.5.4.tgz", - "integrity": "sha512-JF1BmLCm9kGEVZgYmJq43zeQVdHVgAJnTi/NURWEsy6L1ZrrlSmdltS+D17QN4LODwf+1LMXAA9auIZVXtWwzw==", + "version": "3.5.6", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-win32-x64/-/lmdb-win32-x64-3.5.6.tgz", + "integrity": "sha512-1g7G0knRX2iV/voDu54yxrGqw5Dk0w2oIYb7dgJq8IkOi+m7wbD8Q3QpPFjh0C01G58S88dqGn03len6UPCXsg==", "cpu": [ "x64" ], @@ -3794,6 +3726,28 @@ "node": ">= 10" } }, + "node_modules/@napi-rs/wasm-runtime": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.2.2.tgz", + "integrity": "sha512-JfB4kuJQjaoHuCTseIINHtHWeJnvgEcxjwA5t/Y00ZgaOO1Crz3fjT/p8kT28zA/Caz7oiUMn3d6H2yOVCVwuw==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@tybys/wasm-util": "^0.10.3" + }, + "engines": { + "node": "^20.19.0 || ^22.13.0 || >=23.5.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Brooooooklyn" + }, + "peerDependencies": { + "@emnapi/core": "^1.7.1 || ^2.0.0-alpha.3", + "@emnapi/runtime": "^1.7.1 || ^2.0.0-alpha.3" + } + }, "node_modules/@ngx-pwa/local-storage": { "version": "22.0.0", "resolved": "https://registry.npmjs.org/@ngx-pwa/local-storage/-/local-storage-22.0.0.tgz", @@ -3862,218 +3816,386 @@ "url": "https://paulmillr.com/funding/" } }, - "node_modules/@npmcli/agent": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@npmcli/agent/-/agent-4.0.2.tgz", - "integrity": "sha512-EUEuWAxnL07Sp5/iC/1X6Xj+XThUvnbei9zfRWZdEXa7lss9RTHMhAHBeg+MZ5To9s/gGaSI+UwZTPdYMvKSeg==", + "node_modules/@openslides/motion-diff": { + "resolved": "../packages/openslides-motion-diff", + "link": true + }, + "node_modules/@oxc-parser/binding-android-arm-eabi": { + "version": "0.142.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-android-arm-eabi/-/binding-android-arm-eabi-0.142.0.tgz", + "integrity": "sha512-ZiRGDutGsv1G6bL/ozy/koC0Sv39T1DqyoC4KD1DOy9ZoACm1O5UWhEK2c02Qdk+4lfLVkvFa/mQ0fm/4h1BtQ==", + "cpu": [ + "arm" + ], "dev": true, - "license": "ISC", - "dependencies": { - "agent-base": "^7.1.0", - "http-proxy-agent": "^7.0.0", - "https-proxy-agent": "^7.0.1", - "lru-cache": "^11.2.1", - "socks-proxy-agent": "^8.0.3" - }, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], "engines": { - "node": "^20.17.0 || >=22.9.0" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@npmcli/agent/node_modules/lru-cache": { - "version": "11.5.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.5.1.tgz", - "integrity": "sha512-RPimw/7aMdv2oqRrxKwvZXcPfwBrn/JZ2xYcY9Hus/6LaS3VOAKVWKWgNLCFSiOm1ESXinjsDlidVU7JlnCN2A==", + "node_modules/@oxc-parser/binding-android-arm64": { + "version": "0.142.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-android-arm64/-/binding-android-arm64-0.142.0.tgz", + "integrity": "sha512-WZkvGRLNQTz8lR9zP5nLjUdlroRCopBu3g9zF1p/laE6DzT1UbQo8Rdz5MWhaJUPYg/6gp+jo7HUgsyKaN1FtQ==", + "cpu": [ + "arm64" + ], "dev": true, - "license": "BlueOak-1.0.0", + "license": "MIT", + "optional": true, + "os": [ + "android" + ], "engines": { - "node": "20 || >=22" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@npmcli/fs": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-5.0.0.tgz", - "integrity": "sha512-7OsC1gNORBEawOa5+j2pXN9vsicaIOH5cPXxoR6fJOmH6/EXpJB2CajXOu1fPRFun2m1lktEFX11+P89hqO/og==", + "node_modules/@oxc-parser/binding-darwin-arm64": { + "version": "0.142.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-darwin-arm64/-/binding-darwin-arm64-0.142.0.tgz", + "integrity": "sha512-l4khS8LQOOVYsGRVARo1gSaCT/aBSceUVXgtovWc2+drnxVuDr082WA3OCHVdVzIz5JIrP/y9CWsSKxBDNmYGg==", + "cpu": [ + "arm64" + ], "dev": true, - "license": "ISC", - "dependencies": { - "semver": "^7.3.5" - }, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": "^20.17.0 || >=22.9.0" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@npmcli/git": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-7.0.2.tgz", - "integrity": "sha512-oeolHDjExNAJAnlYP2qzNjMX/Xi9bmu78C9dIGr4xjobrSKbuMYCph8lTzn4vnW3NjIqVmw/f8BCfouqyJXlRg==", + "node_modules/@oxc-parser/binding-darwin-x64": { + "version": "0.142.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-darwin-x64/-/binding-darwin-x64-0.142.0.tgz", + "integrity": "sha512-QBsNF3nqlXmcH2B1YOPqQYmCJoy4HuIjUxGbBO/k5JAJUl68ghU2psRY2zPk+RyBaWqKP/qfL4oaFgEMCdwskA==", + "cpu": [ + "x64" + ], "dev": true, - "license": "ISC", - "dependencies": { - "@gar/promise-retry": "^1.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", - "semver": "^7.3.5", - "which": "^6.0.0" - }, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": "^20.17.0 || >=22.9.0" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@npmcli/git/node_modules/isexe": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-4.0.0.tgz", - "integrity": "sha512-FFUtZMpoZ8RqHS3XeXEmHWLA4thH+ZxCv2lOiPIn1Xc7CxrqhWzNSDzD+/chS/zbYezmiwWLdQC09JdQKmthOw==", + "node_modules/@oxc-parser/binding-freebsd-x64": { + "version": "0.142.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-freebsd-x64/-/binding-freebsd-x64-0.142.0.tgz", + "integrity": "sha512-b7Q7m4Cqc6XqNhri3R+QhU+GVy646Pn+bkdhrDdWym/Fdi0ZUa+d73H9dm5H91JtbtAQ/z1d8XKMW3oOV8a4tQ==", + "cpu": [ + "x64" + ], "dev": true, - "license": "BlueOak-1.0.0", + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], "engines": { - "node": ">=20" + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-parser/binding-linux-arm-gnueabihf": { + "version": "0.142.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-0.142.0.tgz", + "integrity": "sha512-3riVS5IhdH3uCZj1Y9ftDQlR0dvLsIlw/edrRqk8JhgNd5K0XSs+UBtgh50N13CAlW9/TXj6sVGXaKNBocd0Yg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-parser/binding-linux-arm-musleabihf": { + "version": "0.142.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-arm-musleabihf/-/binding-linux-arm-musleabihf-0.142.0.tgz", + "integrity": "sha512-NmXUOpgpTSkhl795TiXmWppTwmSJ92RC1qvD6e4XOF+slgmo3e6Ah+kEu+6AN8s7NAOEwqGmir58MgSQSWmBSA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-parser/binding-linux-arm64-gnu": { + "version": "0.142.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-0.142.0.tgz", + "integrity": "sha512-gc0EXsKtXgerujmU2Bql3u1L1HsSQ2774R83idq/FoNMPVV/RY/1ErFsvnit7KoiP/sLvzQixeUo4Ut0ic0wmw==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-parser/binding-linux-arm64-musl": { + "version": "0.142.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-arm64-musl/-/binding-linux-arm64-musl-0.142.0.tgz", + "integrity": "sha512-F2XvmWSE0uWpie+jHKKIFgdVOe9ypGhkEZxKx5DuW215K6cbAC274yYaPkcM7EqY4Df3Weyhpcz3lsURyH2LVg==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-parser/binding-linux-ppc64-gnu": { + "version": "0.142.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-0.142.0.tgz", + "integrity": "sha512-wLMbT21U/QxknQsk+VvNF0b9D2/aGWhcaQQQ+VYlE8FwD5+GoWZIPPXNzyHmkYyhm0KB3itL+TBavjMatqNnYA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-parser/binding-linux-riscv64-gnu": { + "version": "0.142.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-riscv64-gnu/-/binding-linux-riscv64-gnu-0.142.0.tgz", + "integrity": "sha512-+G8F/4ckwT7FCJV4H2bt09xEzJbjNCfuL4Sp1AYNaFtFMVtgIGMuJlteT82U+K0UIZ/DzAR/LDlMFnEuajG7Kw==", + "cpu": [ + "riscv64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@npmcli/git/node_modules/lru-cache": { - "version": "11.5.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.5.1.tgz", - "integrity": "sha512-RPimw/7aMdv2oqRrxKwvZXcPfwBrn/JZ2xYcY9Hus/6LaS3VOAKVWKWgNLCFSiOm1ESXinjsDlidVU7JlnCN2A==", + "node_modules/@oxc-parser/binding-linux-riscv64-musl": { + "version": "0.142.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-riscv64-musl/-/binding-linux-riscv64-musl-0.142.0.tgz", + "integrity": "sha512-hTsHtTLxMAfCo+rpF5K3qZJKW2NpPN/CHd4mYB3y7XlSdspHkd2gehDIofP64AacA9nWQw2tY3O7wR6UY8IVOA==", + "cpu": [ + "riscv64" + ], "dev": true, - "license": "BlueOak-1.0.0", + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": "20 || >=22" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@npmcli/git/node_modules/which": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/which/-/which-6.0.1.tgz", - "integrity": "sha512-oGLe46MIrCRqX7ytPUf66EAYvdeMIZYn3WaocqqKZAxrBpkqHfL/qvTyJ/bTk5+AqHCjXmrv3CEWgy368zhRUg==", + "node_modules/@oxc-parser/binding-linux-s390x-gnu": { + "version": "0.142.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-0.142.0.tgz", + "integrity": "sha512-6y7qYY3TCUDYjqswImdTGl92y+KA/80twALegQPN27kfY+bG7Ib1+L3jbmrCZQx6wrVnai9IPsEZp07I0hx7JQ==", + "cpu": [ + "s390x" + ], "dev": true, - "license": "ISC", - "dependencies": { - "isexe": "^4.0.0" - }, - "bin": { - "node-which": "bin/which.js" - }, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": "^20.17.0 || >=22.9.0" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@npmcli/installed-package-contents": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-4.0.0.tgz", - "integrity": "sha512-yNyAdkBxB72gtZ4GrwXCM0ZUedo9nIbOMKfGjt6Cu6DXf0p8y1PViZAKDC8q8kv/fufx0WTjRBdSlyrvnP7hmA==", + "node_modules/@oxc-parser/binding-linux-x64-gnu": { + "version": "0.142.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-x64-gnu/-/binding-linux-x64-gnu-0.142.0.tgz", + "integrity": "sha512-i69kAWU+2LgoH5bR+zWiiu+UzAw7Oxkwv7COeJTeY19pn4e70nKQcr9Pm6cL2Z0Z54d+gl9qADlK/0yyuCPiBA==", + "cpu": [ + "x64" + ], "dev": true, - "license": "ISC", - "dependencies": { - "npm-bundled": "^5.0.0", - "npm-normalize-package-bin": "^5.0.0" - }, - "bin": { - "installed-package-contents": "bin/index.js" - }, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": "^20.17.0 || >=22.9.0" + "node": "^20.19.0 || >=22.12.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==", + "node_modules/@oxc-parser/binding-linux-x64-musl": { + "version": "0.142.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-x64-musl/-/binding-linux-x64-musl-0.142.0.tgz", + "integrity": "sha512-4SQs678MmjYVrmhAgCWD4o0vpaFszXw9xLX5p2Z9MMFcltxiLkA88wQjh80YHjPrXtpyZ2CWI5m+1yNKM0m2Pw==", + "cpu": [ + "x64" + ], "dev": true, - "license": "ISC", + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": "^20.17.0 || >=22.9.0" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@npmcli/package-json": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/@npmcli/package-json/-/package-json-7.0.5.tgz", - "integrity": "sha512-iVuTlG3ORq2iaVa1IWUxAO/jIp77tUKBhoMjuzYW2kL4MLN1bi/ofqkZ7D7OOwh8coAx1/S2ge0rMdGv8sLSOQ==", + "node_modules/@oxc-parser/binding-openharmony-arm64": { + "version": "0.142.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-openharmony-arm64/-/binding-openharmony-arm64-0.142.0.tgz", + "integrity": "sha512-YHpx9N7Ln3a++Tc8rv+H7mrK1zyJQOAwCFg8LZ3lTs1T5afGWeZrLPhPT9HLnIwSjCyJqPWVMIrMxbjcmBr2oQ==", + "cpu": [ + "arm64" + ], "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", - "spdx-expression-parse": "^4.0.0" - }, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], "engines": { - "node": "^20.17.0 || >=22.9.0" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@npmcli/promise-spawn": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-9.0.1.tgz", - "integrity": "sha512-OLUaoqBuyxeTqUvjA3FZFiXUfYC1alp3Sa99gW3EUDz3tZ3CbXDdcZ7qWKBzicrJleIgucoWamWH1saAmH/l2Q==", + "node_modules/@oxc-parser/binding-wasm32-wasi": { + "version": "0.142.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-wasm32-wasi/-/binding-wasm32-wasi-0.142.0.tgz", + "integrity": "sha512-3pLDyY3+oogW73RM5uehNgAiR/Xfb7fvO2Q1Z1gIqZ2+50XDVQmBVlRkHXZTU4gKnQHpwETNsYQVsJ3joVB2iA==", + "cpu": [ + "wasm32" + ], "dev": true, - "license": "ISC", + "license": "MIT", + "optional": true, "dependencies": { - "which": "^6.0.0" + "@emnapi/core": "1.11.2", + "@emnapi/runtime": "1.11.2", + "@napi-rs/wasm-runtime": "^1.1.6" }, "engines": { - "node": "^20.17.0 || >=22.9.0" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@npmcli/promise-spawn/node_modules/isexe": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-4.0.0.tgz", - "integrity": "sha512-FFUtZMpoZ8RqHS3XeXEmHWLA4thH+ZxCv2lOiPIn1Xc7CxrqhWzNSDzD+/chS/zbYezmiwWLdQC09JdQKmthOw==", + "node_modules/@oxc-parser/binding-win32-arm64-msvc": { + "version": "0.142.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-0.142.0.tgz", + "integrity": "sha512-Had/VeVY28Oyb0K+Q4FV8KCzoBycIh93oDK6pCbya9lkzdq+ikMHMgBubsdqqlybjJmQRawCQRrnBRHyQwYvcQ==", + "cpu": [ + "arm64" + ], "dev": true, - "license": "BlueOak-1.0.0", + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], "engines": { - "node": ">=20" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@npmcli/promise-spawn/node_modules/which": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/which/-/which-6.0.1.tgz", - "integrity": "sha512-oGLe46MIrCRqX7ytPUf66EAYvdeMIZYn3WaocqqKZAxrBpkqHfL/qvTyJ/bTk5+AqHCjXmrv3CEWgy368zhRUg==", + "node_modules/@oxc-parser/binding-win32-ia32-msvc": { + "version": "0.142.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-win32-ia32-msvc/-/binding-win32-ia32-msvc-0.142.0.tgz", + "integrity": "sha512-GGi3+YphVHavvgs6gum2UXoNCqzHAmPt/nXkn8ZQZstV2Q1qZD1Mn8fz/nWrDkefHQtrG/+1/XrbMxsBTo6Svw==", + "cpu": [ + "ia32" + ], "dev": true, - "license": "ISC", - "dependencies": { - "isexe": "^4.0.0" - }, - "bin": { - "node-which": "bin/which.js" - }, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], "engines": { - "node": "^20.17.0 || >=22.9.0" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@npmcli/redact": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@npmcli/redact/-/redact-4.0.0.tgz", - "integrity": "sha512-gOBg5YHMfZy+TfHArfVogwgfBeQnKbbGo3pSUyK/gSI0AVu+pEiDVcKlQb0D8Mg1LNRZILZ6XG8I5dJ4KuAd9Q==", + "node_modules/@oxc-parser/binding-win32-x64-msvc": { + "version": "0.142.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-win32-x64-msvc/-/binding-win32-x64-msvc-0.142.0.tgz", + "integrity": "sha512-Ny/Wv4Us1LGC/ljwNTp+Hx3r/pH15EFfeDF0p+n898gt+TtRd6C9SccHcuUhDiNTb8s5tt7jdeAMDRQZ4Vq6hg==", + "cpu": [ + "x64" + ], "dev": true, - "license": "ISC", + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], "engines": { - "node": "^20.17.0 || >=22.9.0" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@npmcli/run-script": { - "version": "10.0.4", - "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-10.0.4.tgz", - "integrity": "sha512-mGUWr1uMnf0le2TwfOZY4SFxZGXGfm4Jtay/nwAa2FLNAKXUoUwaGwBMNH36UHPtinWfTSJ3nqFQr0091CxVGg==", + "node_modules/@oxc-project/types": { + "version": "0.142.0", + "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.142.0.tgz", + "integrity": "sha512-7W+2q5AKQVU36fkaryontrHn3YDt1RyUYXatw9i5H8ocYe2sPKSFB6eS8WNPeRKiN1qAWWZUPm7gwFzJGrccqQ==", "dev": true, - "license": "ISC", - "dependencies": { - "@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" - }, - "engines": { - "node": "^20.17.0 || >=22.9.0" + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/Boshen" } }, - "node_modules/@openslides/motion-diff": { - "resolved": "../packages/openslides-motion-diff", - "link": true - }, "node_modules/@parcel/watcher": { "version": "2.5.6", "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.5.6.tgz", @@ -4466,24 +4588,10 @@ "url": "https://opencollective.com/popperjs" } }, - "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.60.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.60.2.tgz", - "integrity": "sha512-dnlp69efPPg6Uaw2dVqzWRfAWRnYVb1XJ8CyyhIbZeaq4CA5/mLeZ1IEt9QqQxmbdvagjLIm2ZL8BxXv5lH4Yw==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@rollup/rollup-android-arm64": { - "version": "4.60.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.60.2.tgz", - "integrity": "sha512-OqZTwDRDchGRHHm/hwLOL7uVPB9aUvI0am/eQuWMNyFHf5PSEQmyEeYYheA0EPPKUO/l0uigCp+iaTjoLjVoHg==", + "node_modules/@rolldown/binding-android-arm64": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.2.0.tgz", + "integrity": "sha512-9yB1l95IrJuNGDFdOYe79vdApdz6WWBCObE+rQ2LUliYUlcyFwSYIb2xb5/Ifw7dAtMy2ZqNyd8QTSOc7duAKw==", "cpu": [ "arm64" ], @@ -4492,12 +4600,15 @@ "optional": true, "os": [ "android" - ] + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } }, - "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.60.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.60.2.tgz", - "integrity": "sha512-UwRE7CGpvSVEQS8gUMBe1uADWjNnVgP3Iusyda1nSRwNDCsRjnGc7w6El6WLQsXmZTbLZx9cecegumcitNfpmA==", + "node_modules/@rolldown/binding-darwin-arm64": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.2.0.tgz", + "integrity": "sha512-pexNaW9ACLUOaBITOpU6qVu4VrsOFIjTv6bzgu0YUATo4eUJx0V605PxwZfndpPOn0ilqGqvGQ0M8UW0IE24jg==", "cpu": [ "arm64" ], @@ -4506,12 +4617,15 @@ "optional": true, "os": [ "darwin" - ] + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } }, - "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.60.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.60.2.tgz", - "integrity": "sha512-gjEtURKLCC5VXm1I+2i1u9OhxFsKAQJKTVB8WvDAHF+oZlq0GTVFOlTlO1q3AlCTE/DF32c16ESvfgqR7343/g==", + "node_modules/@rolldown/binding-darwin-x64": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.2.0.tgz", + "integrity": "sha512-NqKYaq0355ZmNMG4QGpxtEDxsc7tGDhjhCm4PpE0cwnBW+5Il95LJyq414niEiaKLVjnVHBEjSo1wngKxJNiFw==", "cpu": [ "x64" ], @@ -4520,210 +4634,109 @@ "optional": true, "os": [ "darwin" - ] - }, - "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.60.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.60.2.tgz", - "integrity": "sha512-Bcl6CYDeAgE70cqZaMojOi/eK63h5Me97ZqAQoh77VPjMysA/4ORQBRGo3rRy45x4MzVlU9uZxs8Uwy7ZaKnBw==", - "cpu": [ - "arm64" ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ] + "engines": { + "node": "^20.19.0 || >=22.12.0" + } }, - "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.60.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.60.2.tgz", - "integrity": "sha512-LU+TPda3mAE2QB0/Hp5VyeKJivpC6+tlOXd1VMoXV/YFMvk/MNk5iXeBfB4MQGRWyOYVJ01625vjkr0Az98OJQ==", + "node_modules/@rolldown/binding-freebsd-x64": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.2.0.tgz", + "integrity": "sha512-3vPoHzh6eBTz9IbB0/qZdSr0Qeks2echn+I4cHu2joV74VriPDdldswksEDzrl1mBB+oPRi+67+3Ib59paxIPQ==", "cpu": [ "x64" ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ] - }, - "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.60.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.60.2.tgz", - "integrity": "sha512-2QxQrM+KQ7DAW4o22j+XZ6RKdxjLD7BOWTP0Bv0tmjdyhXSsr2Ul1oJDQqh9Zf5qOwTuTc7Ek83mOFaKnodPjg==", - "cpu": [ - "arm" - ], - "dev": true, - "libc": [ - "glibc" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.60.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.60.2.tgz", - "integrity": "sha512-TbziEu2DVsTEOPif2mKWkMeDMLoYjx95oESa9fkQQK7r/Orta0gnkcDpzwufEcAO2BLBsD7mZkXGFqEdMRRwfw==", - "cpu": [ - "arm" - ], - "dev": true, - "libc": [ - "musl" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.60.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.60.2.tgz", - "integrity": "sha512-bO/rVDiDUuM2YfuCUwZ1t1cP+/yqjqz+Xf2VtkdppefuOFS2OSeAfgafaHNkFn0t02hEyXngZkxtGqXcXwO8Rg==", - "cpu": [ - "arm64" - ], - "dev": true, - "libc": [ - "glibc" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.60.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.60.2.tgz", - "integrity": "sha512-hr26p7e93Rl0Za+JwW7EAnwAvKkehh12BU1Llm9Ykiibg4uIr2rbpxG9WCf56GuvidlTG9KiiQT/TXT1yAWxTA==", - "cpu": [ - "arm64" - ], - "dev": true, - "libc": [ - "musl" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-loong64-gnu": { - "version": "4.60.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.60.2.tgz", - "integrity": "sha512-pOjB/uSIyDt+ow3k/RcLvUAOGpysT2phDn7TTUB3n75SlIgZzM6NKAqlErPhoFU+npgY3/n+2HYIQVbF70P9/A==", - "cpu": [ - "loong64" - ], - "dev": true, - "libc": [ - "glibc" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-loong64-musl": { - "version": "4.60.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.60.2.tgz", - "integrity": "sha512-2/w+q8jszv9Ww1c+6uJT3OwqhdmGP2/4T17cu8WuwyUuuaCDDJ2ojdyYwZzCxx0GcsZBhzi3HmH+J5pZNXnd+Q==", - "cpu": [ - "loong64" - ], - "dev": true, - "libc": [ - "musl" - ], + "dev": true, "license": "MIT", "optional": true, "os": [ - "linux" - ] + "freebsd" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } }, - "node_modules/@rollup/rollup-linux-ppc64-gnu": { - "version": "4.60.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.60.2.tgz", - "integrity": "sha512-11+aL5vKheYgczxtPVVRhdptAM2H7fcDR5Gw4/bTcteuZBlH4oP9f5s9zYO9aGZvoGeBpqXI/9TZZihZ609wKw==", + "node_modules/@rolldown/binding-linux-arm-gnueabihf": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.2.0.tgz", + "integrity": "sha512-E6NNefZ1bUVmKJq2tJkf45J4Zyczj7qm9rUT7NY+Xo2474Y13qWAwc2tvBt0BAVbmtXR1llkxXg0Ou1jbDf2SQ==", "cpu": [ - "ppc64" + "arm" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ "linux" - ] + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } }, - "node_modules/@rollup/rollup-linux-ppc64-musl": { - "version": "4.60.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.60.2.tgz", - "integrity": "sha512-i16fokAGK46IVZuV8LIIwMdtqhin9hfYkCh8pf8iC3QU3LpwL+1FSFGej+O7l3E/AoknL6Dclh2oTdnRMpTzFQ==", + "node_modules/@rolldown/binding-linux-arm64-gnu": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.2.0.tgz", + "integrity": "sha512-D+TgkdgM1vu+7/Fpf8+v0ARW+RXEP9Ccazgm8zQ4JFFd9Q7SrYQ2TakU5S5ihazQDgpKyAgZDOcIFsvoHmTZ8w==", "cpu": [ - "ppc64" + "arm64" ], "dev": true, "libc": [ - "musl" + "glibc" ], "license": "MIT", "optional": true, "os": [ "linux" - ] + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } }, - "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.60.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.60.2.tgz", - "integrity": "sha512-49FkKS6RGQoriDSK/6E2GkAsAuU5kETFCh7pG4yD/ylj9rKhTmO3elsnmBvRD4PgJPds5W2PkhC82aVwmUcJ7A==", + "node_modules/@rolldown/binding-linux-arm64-musl": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.2.0.tgz", + "integrity": "sha512-wUqdwJBbAv0APN87GecstdMUtLjjNTs0hBALpxETD73mccFxdmt/XeizXDtN5RAlBwNKmI+Tg+blect2G+8IeQ==", "cpu": [ - "riscv64" + "arm64" ], "dev": true, "libc": [ - "glibc" + "musl" ], "license": "MIT", "optional": true, "os": [ "linux" - ] + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } }, - "node_modules/@rollup/rollup-linux-riscv64-musl": { - "version": "4.60.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.60.2.tgz", - "integrity": "sha512-mjYNkHPfGpUR00DuM1ZZIgs64Hpf4bWcz9Z41+4Q+pgDx73UwWdAYyf6EG/lRFldmdHHzgrYyge5akFUW0D3mQ==", + "node_modules/@rolldown/binding-linux-ppc64-gnu": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.2.0.tgz", + "integrity": "sha512-9DtF35qR9/NrfhM4oxLplCzVVjE+KKm8Pjemi0i/sdhAWkUasjmSo8WTTubNJClhSHCfyk2yeyoXDQEDPtDAAw==", "cpu": [ - "riscv64" + "ppc64" ], "dev": true, "libc": [ - "musl" + "glibc" ], "license": "MIT", "optional": true, "os": [ "linux" - ] + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } }, - "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.60.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.60.2.tgz", - "integrity": "sha512-ALyvJz965BQk8E9Al/JDKKDLH2kfKFLTGMlgkAbbYtZuJt9LU8DW3ZoDMCtQpXAltZxwBHevXz5u+gf0yA0YoA==", + "node_modules/@rolldown/binding-linux-s390x-gnu": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.2.0.tgz", + "integrity": "sha512-RzuHrBh8X8Hntd2N4VR02QGEciq/9JhcZoTpR/Cee6otRrlILGCf3cg2ygHuih+ZebUnWmMrDX6ITI85btO6rQ==", "cpu": [ "s390x" ], @@ -4735,12 +4748,15 @@ "optional": true, "os": [ "linux" - ] + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } }, - "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.60.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.60.2.tgz", - "integrity": "sha512-UQjrkIdWrKI626Du8lCQ6MJp/6V1LAo2bOK9OTu4mSn8GGXIkPXk/Vsp4bLHCd9Z9Iz2OTEaokUE90VweJgIYQ==", + "node_modules/@rolldown/binding-linux-x64-gnu": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.2.0.tgz", + "integrity": "sha512-MK7L0018jjh1jR3mh21G2j1zAVcpscJBlPo2z19pRjv2XOYGRhaV4LyiD8HO6nCDdZln9IFgCMIV5yt4E3klGQ==", "cpu": [ "x64" ], @@ -4752,12 +4768,15 @@ "optional": true, "os": [ "linux" - ] + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } }, - "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.60.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.60.2.tgz", - "integrity": "sha512-bTsRGj6VlSdn/XD4CGyzMnzaBs9bsRxy79eTqTCBsA8TMIEky7qg48aPkvJvFe1HyzQ5oMZdg7AnVlWQSKLTnw==", + "node_modules/@rolldown/binding-linux-x64-musl": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.2.0.tgz", + "integrity": "sha512-gyrxLQ9NfGb/9LoVnC4kb9miUghw1mghnkfYvNHSnVIXriabnfgGPUP4RLcJm87q3KgYz4FYUG8IDiWUT+CpSw==", "cpu": [ "x64" ], @@ -4769,26 +4788,15 @@ "optional": true, "os": [ "linux" - ] - }, - "node_modules/@rollup/rollup-openbsd-x64": { - "version": "4.60.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.60.2.tgz", - "integrity": "sha512-6d4Z3534xitaA1FcMWP7mQPq5zGwBmGbhphh2DwaA1aNIXUu3KTOfwrWpbwI4/Gr0uANo7NTtaykFyO2hPuFLg==", - "cpu": [ - "x64" ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ] + "engines": { + "node": "^20.19.0 || >=22.12.0" + } }, - "node_modules/@rollup/rollup-openharmony-arm64": { - "version": "4.60.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.60.2.tgz", - "integrity": "sha512-NetAg5iO2uN7eB8zE5qrZ3CSil+7IJt4WDFLcC75Ymywq1VZVD6qJ6EvNLjZ3rEm6gB7XW5JdT60c6MN35Z85Q==", + "node_modules/@rolldown/binding-openharmony-arm64": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.2.0.tgz", + "integrity": "sha512-/6VFMQGRmrhP77KXDC+StIxGzcNp5JOIyYtw0CQ8gPlzhpiIRucYfoM5FaFamHd5BJYIdH86yfP46l1p3WdrFA==", "cpu": [ "arm64" ], @@ -4797,40 +4805,51 @@ "optional": true, "os": [ "openharmony" - ] + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } }, - "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.60.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.60.2.tgz", - "integrity": "sha512-NCYhOotpgWZ5kdxCZsv6Iudx0wX8980Q/oW4pNFNihpBKsDbEA1zpkfxJGC0yugsUuyDZ7gL37dbzwhR0VI7pQ==", + "node_modules/@rolldown/binding-wasm32-wasi": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.2.0.tgz", + "integrity": "sha512-rwdbUL465kisF24WEJLvP3JrEG6E5GRuIHt5wpMwHGERtHe4Wm2CIvtf5gTBgr2tGOHKh5NdKEAFS2VkOPE91g==", "cpu": [ - "arm64" + "wasm32" ], "dev": true, "license": "MIT", "optional": true, - "os": [ - "win32" - ] + "dependencies": { + "@emnapi/core": "1.11.2", + "@emnapi/runtime": "1.11.2", + "@napi-rs/wasm-runtime": "^1.1.6" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + } }, - "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.60.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.60.2.tgz", - "integrity": "sha512-RXsaOqXxfoUBQoOgvmmijVxJnW2IGB0eoMO7F8FAjaj0UTywUO/luSqimWBJn04WNgUkeNhh7fs7pESXajWmkg==", + "node_modules/@rolldown/binding-win32-arm64-msvc": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.2.0.tgz", + "integrity": "sha512-+5suHwRiKGmhwyUaNT8a5QbrBvLFh2DbO910TEmGRH1aSxwrCezodvGQnulv4uiWEIv1Kq4ypRsJ5+O+ry1DiA==", "cpu": [ - "ia32" + "arm64" ], "dev": true, "license": "MIT", "optional": true, "os": [ "win32" - ] + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } }, - "node_modules/@rollup/rollup-win32-x64-gnu": { - "version": "4.60.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.60.2.tgz", - "integrity": "sha512-qdAzEULD+/hzObedtmV6iBpdL5TIbKVztGiK7O3/KYSf+HIzU257+MX1EXJcyIiDbMAqmbwaufcYPvyRryeZtA==", + "node_modules/@rolldown/binding-win32-x64-msvc": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.2.0.tgz", + "integrity": "sha512-WfFv6/qGufotqBSBzBYwgpCkJBk8Nj7697LL9vTz/XWc67e0r3oewu8iMRwQj3AUL45GVD7wVsPjCsAAtW66Wg==", "cpu": [ "x64" ], @@ -4839,31 +4858,27 @@ "optional": true, "os": [ "win32" - ] - }, - "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.60.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.60.2.tgz", - "integrity": "sha512-Nd/SgG27WoA9e+/TdK74KnHz852TLa94ovOYySo/yMPuTmpckK/jIF2jSwS3g7ELSKXK13/cVdmg1Z/DaCWKxA==", - "cpu": [ - "x64" ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/pluginutils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.1.tgz", + "integrity": "sha512-2j9bGt5Jh8hj+vPtgzPtl72j0yRxHAyumoo6TNfAjsLB04UtpSvPbPcDcBMxz7n+9CYB0c1GxQFxYRg2jimqGw==", "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] + "license": "MIT" }, "node_modules/@schematics/angular": { - "version": "22.0.7", - "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-22.0.7.tgz", - "integrity": "sha512-/GVLhB5zaxYGIaC4GFfsfk81SDq9ht0HbEHhHB+t1SqNPV8gnULDV2ZE0Cg+LGj+3YnPtSwpb7tS0vaHUcihVg==", + "version": "22.1.3", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-22.1.3.tgz", + "integrity": "sha512-5f5f0tKp3d25hjNGkvw2dtGgTN4wxPNhv1AXnhFkh+mLinQK9Qwzr2iEXDDrAuJEkvz1ACHq631IURWph0lqew==", "dev": true, "license": "MIT", "dependencies": { - "@angular-devkit/core": "22.0.7", - "@angular-devkit/schematics": "22.0.7", + "@angular-devkit/core": "22.1.3", + "@angular-devkit/schematics": "22.1.3", "jsonc-parser": "3.3.1", "typescript": "6.0.3" }, @@ -4873,86 +4888,6 @@ "yarn": ">= 1.13.0" } }, - "node_modules/@sigstore/bundle": { - "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.5.0" - }, - "engines": { - "node": "^20.17.0 || >=22.9.0" - } - }, - "node_modules/@sigstore/core": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/@sigstore/core/-/core-3.2.1.tgz", - "integrity": "sha512-qRsxPnCrbC/puegGxKuynfnxgLiHqWStrSjxkoB4YKqq3Z3s4cyZyj42ZdWFAEblNP65C+rBH8EuREHIXoi83g==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^20.17.0 || >=22.9.0" - } - }, - "node_modules/@sigstore/protobuf-specs": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/@sigstore/protobuf-specs/-/protobuf-specs-0.5.1.tgz", - "integrity": "sha512-/ScWUhhoFasJsSRGTVBwId1loQjjnjAfE4djL6ZhrXRpNCmPTnUKF5Jokd58ILseOMjzET3UrMOtJPS9sYeI0g==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^18.17.0 || >=20.5.0" - } - }, - "node_modules/@sigstore/sign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/@sigstore/sign/-/sign-4.1.1.tgz", - "integrity": "sha512-Hf4xglukg0XXQ2RiD5vSoLjdPe8OBUPA8XeVjUObheuDcWdYWrnH/BNmxZCzkAy68MzmNCxXLeurJvs6hcP2OQ==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@gar/promise-retry": "^1.0.2", - "@sigstore/bundle": "^4.0.0", - "@sigstore/core": "^3.2.0", - "@sigstore/protobuf-specs": "^0.5.0", - "make-fetch-happen": "^15.0.4", - "proc-log": "^6.1.0" - }, - "engines": { - "node": "^20.17.0 || >=22.9.0" - } - }, - "node_modules/@sigstore/tuf": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@sigstore/tuf/-/tuf-4.0.2.tgz", - "integrity": "sha512-TCAzTy0xzdP79EnxSjq9KQ3eaR7+FmudLC6eRKknVKZbV7ZNlGLClAAQb/HMNJ5n2OBNk2GT1tEmU0xuPr+SLQ==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@sigstore/protobuf-specs": "^0.5.0", - "tuf-js": "^4.1.0" - }, - "engines": { - "node": "^20.17.0 || >=22.9.0" - } - }, - "node_modules/@sigstore/verify": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@sigstore/verify/-/verify-3.1.1.tgz", - "integrity": "sha512-qv7+G3J2cc6wwFj3yKvXOamzqhMwSk1ogPGmhpS8iXllcPrJaIIBA+4HbttlHVu1pqWTdmaCH/WE7UOC51kdoA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@sigstore/bundle": "^4.0.0", - "@sigstore/core": "^3.2.1", - "@sigstore/protobuf-specs": "^0.5.0" - }, - "engines": { - "node": "^20.17.0 || >=22.9.0" - } - }, "node_modules/@socket.io/component-emitter": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.2.tgz", @@ -4997,220 +4932,220 @@ } }, "node_modules/@tiptap/core": { - "version": "3.28.0", - "resolved": "https://registry.npmjs.org/@tiptap/core/-/core-3.28.0.tgz", - "integrity": "sha512-gUuD5WAYfbDxNSSJya/emh2KSzXZXLUYKW4fEnc1AQ5FE2twzh4LJ9UlKFIawigrUCAksWI5Fy1hRbv+5m4ZdQ==", + "version": "3.29.2", + "resolved": "https://registry.npmjs.org/@tiptap/core/-/core-3.29.2.tgz", + "integrity": "sha512-oKUkiPUB7noilVYxI9lNzUD4rX17sHub+PYjMfHMWHG9A3nvIy+FdePIVIIhThKWF7ijhr3eIqHY51Bn+GAFtw==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" }, "peerDependencies": { - "@tiptap/pm": "3.28.0" + "@tiptap/pm": "3.29.2" } }, "node_modules/@tiptap/extension-blockquote": { - "version": "3.28.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-blockquote/-/extension-blockquote-3.28.0.tgz", - "integrity": "sha512-y8Xi6Z3AQLXedz0J8Z3kDsu7SKBmL50gKVXx3RK1Oo1cuCGhNChm3syChkAz3PLAbrPUM5rvJDSZdF2jUrDnng==", + "version": "3.29.2", + "resolved": "https://registry.npmjs.org/@tiptap/extension-blockquote/-/extension-blockquote-3.29.2.tgz", + "integrity": "sha512-ca4OzKDh0yaxg2+Z56bC2QnWsNsFp2YMRfVig1PDXyMVFMNJpLcnhxgq/9btn+xYAlYrj8RymOeCTYREOR6Zjg==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" }, "peerDependencies": { - "@tiptap/core": "3.28.0", - "@tiptap/pm": "3.28.0" + "@tiptap/core": "3.29.2", + "@tiptap/pm": "3.29.2" } }, "node_modules/@tiptap/extension-bold": { - "version": "3.28.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-bold/-/extension-bold-3.28.0.tgz", - "integrity": "sha512-JhZQmr0AU741bOwjVMfuwJdK4g0TQwwPbeca9aqKHv5zvZw4i4G9G6fESVyMFc3Yag1ffpnq5EtNldHKTnMhlw==", + "version": "3.29.2", + "resolved": "https://registry.npmjs.org/@tiptap/extension-bold/-/extension-bold-3.29.2.tgz", + "integrity": "sha512-elYbGxJsYnBb4leqrcjdIJuiG380BcOgN+UUzvOv+qEjfGVzHodFOMBl3qnmD6urYHNu5/qQK2S0qSSRXKCLNQ==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" }, "peerDependencies": { - "@tiptap/core": "3.28.0" + "@tiptap/core": "3.29.2" } }, "node_modules/@tiptap/extension-bullet-list": { - "version": "3.28.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-bullet-list/-/extension-bullet-list-3.28.0.tgz", - "integrity": "sha512-dSVuNiH7PFMmWGkNER9vfUb5bXUHDARvHbJ3l+APEb+ZiusVN1KFdM3nd/RsW/Rt5Gd3XwlIEU/c2Uf7cxYDcw==", + "version": "3.29.2", + "resolved": "https://registry.npmjs.org/@tiptap/extension-bullet-list/-/extension-bullet-list-3.29.2.tgz", + "integrity": "sha512-3bWcCUPbCHv0XttlMdnAtXLNYWx2pblByMgxmGsaP9FU0QnslGXty6A6gHCqI33ygRg1vrA6U5Wtpwbi5aKu5g==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" }, "peerDependencies": { - "@tiptap/extension-list": "3.28.0" + "@tiptap/extension-list": "3.29.2" } }, "node_modules/@tiptap/extension-code": { - "version": "3.28.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-code/-/extension-code-3.28.0.tgz", - "integrity": "sha512-AUw2Acof3CQE6Q6Y22saK4lyg0nkeJ4XXniU65TdAi/9TE66TGiO4NQJJNNPgu8+VMEwl5j8VsIFK8sfTcNYtg==", + "version": "3.29.2", + "resolved": "https://registry.npmjs.org/@tiptap/extension-code/-/extension-code-3.29.2.tgz", + "integrity": "sha512-c6W5UGuB7WNLpYocsgRzpO2OOTI4QjaI9jjHRMuty9z+s9DtaYM/HrRLNwVh6MopkHb+i/89Wkv8gCS34fftig==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" }, "peerDependencies": { - "@tiptap/core": "3.28.0" + "@tiptap/core": "3.29.2" } }, "node_modules/@tiptap/extension-code-block": { - "version": "3.28.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-code-block/-/extension-code-block-3.28.0.tgz", - "integrity": "sha512-bHITDzT0umTLh+SiEVQzIXkCMt/TzbPM1+HQy9ZxgQDHAJj/vdmfNAnP3RCOrz4lETXyhNQ2b6kxeu3lWckxyA==", + "version": "3.29.2", + "resolved": "https://registry.npmjs.org/@tiptap/extension-code-block/-/extension-code-block-3.29.2.tgz", + "integrity": "sha512-w153ct8g6dLiPTdXQ6SOIMxX4SEo5Q50AmjdEEEcJ7ZcYUcde/ScSskLHfOYmyt5ZFAiyEwr121+pux+p3/oAQ==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" }, "peerDependencies": { - "@tiptap/core": "3.28.0", - "@tiptap/pm": "3.28.0" + "@tiptap/core": "3.29.2", + "@tiptap/pm": "3.29.2" } }, "node_modules/@tiptap/extension-color": { - "version": "3.28.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-color/-/extension-color-3.28.0.tgz", - "integrity": "sha512-YbUMUdrgU04GDYoii1wuFVkiTSQoaEQh04kwgQayEQ46aUBEnnaJitWdp39aGMWYTIXD/c9K9cr5Vg8GSKcVxA==", + "version": "3.29.2", + "resolved": "https://registry.npmjs.org/@tiptap/extension-color/-/extension-color-3.29.2.tgz", + "integrity": "sha512-DMeyDRGZXIe2m2/QlrBoN15R4Ufwz3ERiG//OM7bjcYpiTZiO+pLC6tyabI1+QcJrYUGTu5zVah583xXzt89Kw==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" }, "peerDependencies": { - "@tiptap/extension-text-style": "3.28.0" + "@tiptap/extension-text-style": "3.29.2" } }, "node_modules/@tiptap/extension-document": { - "version": "3.28.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-document/-/extension-document-3.28.0.tgz", - "integrity": "sha512-5SAKtlB1Tr/eZFhISL86HqmUup6rItvPtuPyRjmZo/VgbMwXEwiyAh1sMgFp5VNaeSMM14vJSyQpjhSaOmaBqg==", + "version": "3.29.2", + "resolved": "https://registry.npmjs.org/@tiptap/extension-document/-/extension-document-3.29.2.tgz", + "integrity": "sha512-YUamvefLnsqu6124GavVTI7nqcFlQJ12ROB0oSwG69eSBZYNjg1tIs05LFrBxkwf4Xgqd6YzfJ9+FeG428RvzQ==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" }, "peerDependencies": { - "@tiptap/core": "3.28.0" + "@tiptap/core": "3.29.2" } }, "node_modules/@tiptap/extension-dropcursor": { - "version": "3.28.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-dropcursor/-/extension-dropcursor-3.28.0.tgz", - "integrity": "sha512-JA+dXQjjfJBpD0nVsZeddGVXRsmanESM9+8CtM35hI9wJnYMXay/B+5GUhswO20zhT3zhB2ZOTGe9knu6A8nIQ==", + "version": "3.29.2", + "resolved": "https://registry.npmjs.org/@tiptap/extension-dropcursor/-/extension-dropcursor-3.29.2.tgz", + "integrity": "sha512-KKno7cU9r1HdR48CRrsDu69/1UjZdoslq/UcE+Kx+tdhAv/aljXMkRSNzGMrBNOBDmHRgS1+58zm21WQWdQzwA==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" }, "peerDependencies": { - "@tiptap/extensions": "3.28.0" + "@tiptap/extensions": "3.29.2" } }, "node_modules/@tiptap/extension-gapcursor": { - "version": "3.28.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-gapcursor/-/extension-gapcursor-3.28.0.tgz", - "integrity": "sha512-Wo73kM4q8z4Va9i4+0n1cO0UEMVUVBHPqM6cAqEYXjB4T48LQkKjRsiQydCezm185rQAsmm1dyi72gtvVQfdMg==", + "version": "3.29.2", + "resolved": "https://registry.npmjs.org/@tiptap/extension-gapcursor/-/extension-gapcursor-3.29.2.tgz", + "integrity": "sha512-8Q39UR4/Tit759IeW9xZIe3NMwN11GsuA3FLheDyyGn7RrW02HD3HhUDlazE54Ki4HoosjFmChPlN4Ik2ubdRQ==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" }, "peerDependencies": { - "@tiptap/extensions": "3.28.0" + "@tiptap/extensions": "3.29.2" } }, "node_modules/@tiptap/extension-hard-break": { - "version": "3.28.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-hard-break/-/extension-hard-break-3.28.0.tgz", - "integrity": "sha512-JHIFjX1luJgQ4VFEkIeXZpbc54Qiw+69P8FmlazYTh7AIJ6iLCpMFgQFELnivEAZ+/vS0lMPQubg0rCeM3UrHw==", + "version": "3.29.2", + "resolved": "https://registry.npmjs.org/@tiptap/extension-hard-break/-/extension-hard-break-3.29.2.tgz", + "integrity": "sha512-eUW3LN3fq8rXnjEUeI3D2QONYdLsU3yYQm4jxlErs2h4cfwrFjgf19VSUFVmm6LrFbbQ0OnDVPeVLL6iOwDw2w==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" }, "peerDependencies": { - "@tiptap/core": "3.28.0" + "@tiptap/core": "3.29.2" } }, "node_modules/@tiptap/extension-heading": { - "version": "3.28.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-heading/-/extension-heading-3.28.0.tgz", - "integrity": "sha512-rKjGG/Ik2lNaXBNVmONEDm5DBfGDLM1NWgSf5RRfBISrH8Lm1xqFruOB9tIaB0YUoSV3SBOiwTF9svmzvKSoRA==", + "version": "3.29.2", + "resolved": "https://registry.npmjs.org/@tiptap/extension-heading/-/extension-heading-3.29.2.tgz", + "integrity": "sha512-6W4aIy70Mh7BNlbG9zZ5FBLhJhU2UUEzgZJ/jwYSCcB30o8McLxJSEjhtoHiX8R78Ah2/JzBGvIe5olZlbeE4A==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" }, "peerDependencies": { - "@tiptap/core": "3.28.0" + "@tiptap/core": "3.29.2" } }, "node_modules/@tiptap/extension-highlight": { - "version": "3.28.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-highlight/-/extension-highlight-3.28.0.tgz", - "integrity": "sha512-T8uvQ1aZs+u496XxycMk5zAIwA0DxN+SCdSAFWCU7bqCAen3ulzOsk6RXJ+Jx40GqTV/ShPyIcEuaJVNurXxbg==", + "version": "3.29.2", + "resolved": "https://registry.npmjs.org/@tiptap/extension-highlight/-/extension-highlight-3.29.2.tgz", + "integrity": "sha512-bSeZ1C8OlthyK7BzgtqOGfQymdap9V38W2hbr9KGlhVOIAmTqneOwjm27iFcu7jKqkMArVu6WBYN18Lom6umHQ==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" }, "peerDependencies": { - "@tiptap/core": "3.28.0" + "@tiptap/core": "3.29.2" } }, "node_modules/@tiptap/extension-horizontal-rule": { - "version": "3.28.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-horizontal-rule/-/extension-horizontal-rule-3.28.0.tgz", - "integrity": "sha512-neBCMWprkppQUoLWyeJZDHqBw+xKX2oNhLD9MbFlhKIr092zgfP4mpCvQnSkn1OHl156KzZMp070+NyLBjgQ7A==", + "version": "3.29.2", + "resolved": "https://registry.npmjs.org/@tiptap/extension-horizontal-rule/-/extension-horizontal-rule-3.29.2.tgz", + "integrity": "sha512-8/ZPzbB9X85Mc9/7xVLZupQKBr2UVcQTGr512xtqMW+XkCQRHCph46tRo828YE13IMWI5fWn/FaNCqXG9cULSw==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" }, "peerDependencies": { - "@tiptap/core": "3.28.0", - "@tiptap/pm": "3.28.0" + "@tiptap/core": "3.29.2", + "@tiptap/pm": "3.29.2" } }, "node_modules/@tiptap/extension-image": { - "version": "3.28.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-image/-/extension-image-3.28.0.tgz", - "integrity": "sha512-aKGCdEjyujUcQ6tEtq4EPbKxEC16QsKapv3DeZs1c/UHFiEUalbbPHBnxjGnupiLz75IR+07GYqBoZ81kSCxiA==", + "version": "3.29.2", + "resolved": "https://registry.npmjs.org/@tiptap/extension-image/-/extension-image-3.29.2.tgz", + "integrity": "sha512-F+S4iru247mNVZdkNwNDZHeb281DkjsBJinaOGsOyJTvXY+KU5Uq7vY1LQTn493dTfU48Z0yMBUXwJffCT92Mg==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" }, "peerDependencies": { - "@tiptap/core": "3.28.0" + "@tiptap/core": "3.29.2" } }, "node_modules/@tiptap/extension-italic": { - "version": "3.28.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-italic/-/extension-italic-3.28.0.tgz", - "integrity": "sha512-Yur/ELz6dNVKQC7m8wGjtoLFxamGjJmA0rUEEOacTH6J39aFmcSxYkEGNDkYHbZFyHFYqbej6eI3VE0h08O0mg==", + "version": "3.29.2", + "resolved": "https://registry.npmjs.org/@tiptap/extension-italic/-/extension-italic-3.29.2.tgz", + "integrity": "sha512-iH63V/5wsaMnY4Jz0+meaAGhaec4AiOzOduzl6ZZr5IyGhZ1kthyW84ELt0dyLI3hNceAUhaNWc+I7+vX0aoXA==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" }, "peerDependencies": { - "@tiptap/core": "3.28.0" + "@tiptap/core": "3.29.2" } }, "node_modules/@tiptap/extension-link": { - "version": "3.28.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-link/-/extension-link-3.28.0.tgz", - "integrity": "sha512-hy/PqSeTyl317yseFcHGE+3XVfQKQYaL4uZuj27xlrcO7MZ15drt1h9sUZy1FTBF3mr8676pQu7aoEm/Ww4ZRA==", + "version": "3.29.2", + "resolved": "https://registry.npmjs.org/@tiptap/extension-link/-/extension-link-3.29.2.tgz", + "integrity": "sha512-DcVer5SqrexKCEP6Ip1UPxJUMvcRCCItSv0wxoGytanrimBh2smvcg6X0DWnjlsi5H0updhyl+atYCmmQXUIXA==", "license": "MIT", "dependencies": { "linkifyjs": "^4.3.3" @@ -5220,201 +5155,201 @@ "url": "https://github.com/sponsors/ueberdosis" }, "peerDependencies": { - "@tiptap/core": "3.28.0", - "@tiptap/pm": "3.28.0" + "@tiptap/core": "3.29.2", + "@tiptap/pm": "3.29.2" } }, "node_modules/@tiptap/extension-list": { - "version": "3.28.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-list/-/extension-list-3.28.0.tgz", - "integrity": "sha512-zQ66i5DuhVOndmZ0d7H475Y5Yb+BMx+zfCjFkCzEc6WVef5MumtxBVTkGLQ0ibxUaD71s4QQZbjHWagpaTg0eQ==", + "version": "3.29.2", + "resolved": "https://registry.npmjs.org/@tiptap/extension-list/-/extension-list-3.29.2.tgz", + "integrity": "sha512-WPZ9BHAPT6QeIm1vdVkuoOWvy9a8/EZeJwV2VhU8LXyTAttvzyj4rsbbHyJWvYWlUSTt/QF2AZ2zhKo7u1w3/A==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" }, "peerDependencies": { - "@tiptap/core": "3.28.0", - "@tiptap/pm": "3.28.0" + "@tiptap/core": "3.29.2", + "@tiptap/pm": "3.29.2" } }, "node_modules/@tiptap/extension-list-item": { - "version": "3.28.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-list-item/-/extension-list-item-3.28.0.tgz", - "integrity": "sha512-GbXrnMac6knSetZY33NHwOrgXFPqH28uCklQqmOZQlsrdGqezDKk31qoEMr4GsKW9n/lViAeuc07oIzwLwCMng==", + "version": "3.29.2", + "resolved": "https://registry.npmjs.org/@tiptap/extension-list-item/-/extension-list-item-3.29.2.tgz", + "integrity": "sha512-s8vBVHHFT0Qpu7CzAZ7S1kYmSiVaDvUNvMNcZUWnxj6VPfiwmx0eXd9FsjePrRCMoM5tFmPnhFTHDxY3D/eZeQ==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" }, "peerDependencies": { - "@tiptap/extension-list": "3.28.0" + "@tiptap/extension-list": "3.29.2" } }, "node_modules/@tiptap/extension-list-keymap": { - "version": "3.28.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-list-keymap/-/extension-list-keymap-3.28.0.tgz", - "integrity": "sha512-u9Wks8c/eQAv0RkULNggOyTKDD69WVbcV9H5cbasPDUbq5XbEFVa9ajxhEGfMmQ5et3EX0QL8qBi50K0GqbIjA==", + "version": "3.29.2", + "resolved": "https://registry.npmjs.org/@tiptap/extension-list-keymap/-/extension-list-keymap-3.29.2.tgz", + "integrity": "sha512-R+3k8OLnxdCH7Xy9ieOwUt5m2Je74u8mikothGmsYVO2Zyq48fIbmZ+X6RBPCu7DBOI2FIUhHEFbKQeDWvDNmA==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" }, "peerDependencies": { - "@tiptap/extension-list": "3.28.0" + "@tiptap/extension-list": "3.29.2" } }, "node_modules/@tiptap/extension-ordered-list": { - "version": "3.28.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-ordered-list/-/extension-ordered-list-3.28.0.tgz", - "integrity": "sha512-OZNYrKKL9D01ySOujlNbKlLS9/3wGgKNYeoHZUg0e+Ta8WPVvL3W1zH6TgiU5sF2ZSGUBoq3w7mdaO/iROlUkw==", + "version": "3.29.2", + "resolved": "https://registry.npmjs.org/@tiptap/extension-ordered-list/-/extension-ordered-list-3.29.2.tgz", + "integrity": "sha512-ndCunC+UsYOpkOtL7vGnDz21UNa45WUlcO9wMT1fbuYow2QnRhsuMlCWENXI52YPPARWuQ0RDgN7q6TaxPERBg==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" }, "peerDependencies": { - "@tiptap/extension-list": "3.28.0" + "@tiptap/extension-list": "3.29.2" } }, "node_modules/@tiptap/extension-paragraph": { - "version": "3.28.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-paragraph/-/extension-paragraph-3.28.0.tgz", - "integrity": "sha512-8UMlQIjzqf6r2hSJ/VeJ00RqaOrOB1J5rTk02Vcw2pYeHkOqp+B0ff0HFu4abT9x1q4oXrBAgMsxRtgh/kR14Q==", + "version": "3.29.2", + "resolved": "https://registry.npmjs.org/@tiptap/extension-paragraph/-/extension-paragraph-3.29.2.tgz", + "integrity": "sha512-7qJj5YTr11vvjNgjDN1ypOfwTovc0QOCYcit/rskeuVgnmQZOZQzC/BbyKLLG7UGnpRLemU/mEGbW9pAqjAXkQ==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" }, "peerDependencies": { - "@tiptap/core": "3.28.0" + "@tiptap/core": "3.29.2" } }, "node_modules/@tiptap/extension-strike": { - "version": "3.28.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-strike/-/extension-strike-3.28.0.tgz", - "integrity": "sha512-VVj2ZZU9QYqiHLcjqMqRYvuHSsokj/AgUl+6TzLrKjlWwyZ18D4H2vkyI0g70iVTKnUpZ3sEy8WA/rqjgBjqBg==", + "version": "3.29.2", + "resolved": "https://registry.npmjs.org/@tiptap/extension-strike/-/extension-strike-3.29.2.tgz", + "integrity": "sha512-aEvLAbddUQZ+FukCreV3q4G2HfNI+odE7E9U+wbq6XsSWKyo8/pDu1muz+TFKNre4blSMOQ3JQmw5UeHDKy+fg==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" }, "peerDependencies": { - "@tiptap/core": "3.28.0" + "@tiptap/core": "3.29.2" } }, "node_modules/@tiptap/extension-subscript": { - "version": "3.28.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-subscript/-/extension-subscript-3.28.0.tgz", - "integrity": "sha512-lHROuWtzuMv3V4Q11j43Grqci5t0BAMbzIFinPyDSwxDfOCdpj0AwUS+TNNmi4sxZ49QwOXm/vzVMSSi2ChO5g==", + "version": "3.29.2", + "resolved": "https://registry.npmjs.org/@tiptap/extension-subscript/-/extension-subscript-3.29.2.tgz", + "integrity": "sha512-3fpp1B2kZWBfmVYZ1ak3yFWiKR3eV9GR/vYGPDMrkZoTdG9LKylRAJs3Fk2gDgTtOPmbrtilGQjl2o55RuoGxw==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" }, "peerDependencies": { - "@tiptap/core": "3.28.0", - "@tiptap/pm": "3.28.0" + "@tiptap/core": "3.29.2", + "@tiptap/pm": "3.29.2" } }, "node_modules/@tiptap/extension-superscript": { - "version": "3.28.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-superscript/-/extension-superscript-3.28.0.tgz", - "integrity": "sha512-19MWwQIoREjZsEQ7fa/6DUMx15GKZ+iPkOcSdm/PE2rKiDXhec0acWPZTZgH5dluW9GJOMilk7Xl7U8oBNGfjQ==", + "version": "3.29.2", + "resolved": "https://registry.npmjs.org/@tiptap/extension-superscript/-/extension-superscript-3.29.2.tgz", + "integrity": "sha512-/bPgdY7zUHtvToHizvzR6Yf4uIWO35cKj9EZsl/vyFb2mXyJ3a2mysCZgZq+5uvhZS/16eNNKOcezlkayhhkMA==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" }, "peerDependencies": { - "@tiptap/core": "3.28.0", - "@tiptap/pm": "3.28.0" + "@tiptap/core": "3.29.2", + "@tiptap/pm": "3.29.2" } }, "node_modules/@tiptap/extension-table": { - "version": "3.28.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-table/-/extension-table-3.28.0.tgz", - "integrity": "sha512-SX2Uwn/bFyrqjbBo2Hg9wfLT/ofByHm4f80BuG0h5/m89Ve78CgtaK2lGz9jHZRM7rKTG6eqel+PUZQUwcSzOg==", + "version": "3.29.2", + "resolved": "https://registry.npmjs.org/@tiptap/extension-table/-/extension-table-3.29.2.tgz", + "integrity": "sha512-HY3JWD8i/F8W1oWw56DMqEMqxScIAZFRrhL3rUwiuowHG8LLDqDdQjBV3w1DY8lUZOtNY9grpuMtGlPUFrOVAA==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" }, "peerDependencies": { - "@tiptap/core": "3.28.0", - "@tiptap/pm": "3.28.0" + "@tiptap/core": "3.29.2", + "@tiptap/pm": "3.29.2" } }, "node_modules/@tiptap/extension-text": { - "version": "3.28.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-text/-/extension-text-3.28.0.tgz", - "integrity": "sha512-Jqp1LgfY1mnp4TQHoy+vnHyfn6qnnAM6nHgGwbY5zA8b/Xf1Etll6pziTx9p1J1qcfAgSrnjOyAmA++H7VQqww==", + "version": "3.29.2", + "resolved": "https://registry.npmjs.org/@tiptap/extension-text/-/extension-text-3.29.2.tgz", + "integrity": "sha512-Ubko45JWWHe8glBt2PiGNF8hcbys/JNalFhiR7Y1X4iOOtAxAKJJxh3+eq+//NTlGuBPdWGp7zw8EEUp7anjKA==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" }, "peerDependencies": { - "@tiptap/core": "3.28.0" + "@tiptap/core": "3.29.2" } }, "node_modules/@tiptap/extension-text-align": { - "version": "3.28.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-text-align/-/extension-text-align-3.28.0.tgz", - "integrity": "sha512-P+KQMTtCpLFq9dRvy/fbyu2BGALulT/1HtsLbpFG4tKATaKa+cFnJ7rLZF7b3AdAMDNtXdnivxAtixAMBt2QWw==", + "version": "3.29.2", + "resolved": "https://registry.npmjs.org/@tiptap/extension-text-align/-/extension-text-align-3.29.2.tgz", + "integrity": "sha512-205FF87zjUEh79n6dgVy9SMj1P+rNserHMqPd8lF7YS2TOWikXPG4PFuQHWXXCYzaCvQXAiATSAyPXXmUWUvaQ==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" }, "peerDependencies": { - "@tiptap/core": "3.28.0" + "@tiptap/core": "3.29.2" } }, "node_modules/@tiptap/extension-text-style": { - "version": "3.28.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-text-style/-/extension-text-style-3.28.0.tgz", - "integrity": "sha512-UreMyqZSv770+CXJK/l1qeHUdaNMQAVkxSOPWpiY9FiT8B4OQyjA7WBOlWrzbvVTzfJvXWk2Y3SWgVRx+/Cd9A==", + "version": "3.29.2", + "resolved": "https://registry.npmjs.org/@tiptap/extension-text-style/-/extension-text-style-3.29.2.tgz", + "integrity": "sha512-aQad9V9ROaEi3hE4g5z9wQ6lv5FSnzlnWFMVJxRjNlwXgm7H0fymxb4rGfca+pAwYkiRwpKYh1LatpJw2ECQAA==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" }, "peerDependencies": { - "@tiptap/core": "3.28.0" + "@tiptap/core": "3.29.2" } }, "node_modules/@tiptap/extension-underline": { - "version": "3.28.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-underline/-/extension-underline-3.28.0.tgz", - "integrity": "sha512-rwxCS6vTh2DJkNIYQX7JSrrRSmm76e2y48aZeuZO5ShkvLWMuJ3/zqDHRxAQVDiJhuE2Cp8NrTmPYlUc9YrT0A==", + "version": "3.29.2", + "resolved": "https://registry.npmjs.org/@tiptap/extension-underline/-/extension-underline-3.29.2.tgz", + "integrity": "sha512-K7XwH/xS/5AIREWQ00VTEf/W5U0olp7j6wwit7cdd/8nHv6h6AGr1+iEApHKoLXWQZLfGQKzJlT9W61LAl+fHA==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" }, "peerDependencies": { - "@tiptap/core": "3.28.0" + "@tiptap/core": "3.29.2" } }, "node_modules/@tiptap/extensions": { - "version": "3.28.0", - "resolved": "https://registry.npmjs.org/@tiptap/extensions/-/extensions-3.28.0.tgz", - "integrity": "sha512-DJT1khCK+O/pT1gQlAnoKAx6zwDkgv7GtnhSfkqm1/4KHC3x+SSJnBIgBl9oGHymA+DxWbW1EULU4V3d/kT2uQ==", + "version": "3.29.2", + "resolved": "https://registry.npmjs.org/@tiptap/extensions/-/extensions-3.29.2.tgz", + "integrity": "sha512-BCz+FCAChSYtUe4BFj97HEO+nSK+J7GxbJgZG4Hg7DT/gI+hRyeNndU8efiQAx3WGdzsFi3UxRpcF1tTQM7iMQ==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" }, "peerDependencies": { - "@tiptap/core": "3.28.0", - "@tiptap/pm": "3.28.0" + "@tiptap/core": "3.29.2", + "@tiptap/pm": "3.29.2" } }, "node_modules/@tiptap/pm": { - "version": "3.28.0", - "resolved": "https://registry.npmjs.org/@tiptap/pm/-/pm-3.28.0.tgz", - "integrity": "sha512-ALcpwZMUdat9gjJKlpscpoqXStoLhU246LPEVBDvJdIsoUKvUu3MrzfXik2Y8mtSGfhjtm9O2TRkWxQiFVMwsQ==", + "version": "3.29.2", + "resolved": "https://registry.npmjs.org/@tiptap/pm/-/pm-3.29.2.tgz", + "integrity": "sha512-GCOme7xHaS+DSoaA4CDcAD3l6JyBlvZhvCyfsy2Vp6j8tEoBkZWio7soYVosmlyn7zq8/64VeFZP5s47yfG7fQ==", "license": "MIT", "dependencies": { "prosemirror-changeset": "^2.4.1", @@ -5424,7 +5359,7 @@ "prosemirror-history": "^1.5.0", "prosemirror-inputrules": "^1.5.1", "prosemirror-keymap": "^1.2.3", - "prosemirror-model": "^1.25.9", + "prosemirror-model": "^1.25.11", "prosemirror-schema-list": "^1.5.1", "prosemirror-state": "^1.4.4", "prosemirror-tables": "^1.8.5", @@ -5437,35 +5372,35 @@ } }, "node_modules/@tiptap/starter-kit": { - "version": "3.28.0", - "resolved": "https://registry.npmjs.org/@tiptap/starter-kit/-/starter-kit-3.28.0.tgz", - "integrity": "sha512-pqvFpValV+ONtlu3l4s73ROm/tEjoGMmt6uHmSJaLbqTcMHkdWuR3flJ/5brr4IDHe1foxmNicMbRxlje7yBYw==", - "license": "MIT", - "dependencies": { - "@tiptap/core": "^3.28.0", - "@tiptap/extension-blockquote": "^3.28.0", - "@tiptap/extension-bold": "^3.28.0", - "@tiptap/extension-bullet-list": "^3.28.0", - "@tiptap/extension-code": "^3.28.0", - "@tiptap/extension-code-block": "^3.28.0", - "@tiptap/extension-document": "^3.28.0", - "@tiptap/extension-dropcursor": "^3.28.0", - "@tiptap/extension-gapcursor": "^3.28.0", - "@tiptap/extension-hard-break": "^3.28.0", - "@tiptap/extension-heading": "^3.28.0", - "@tiptap/extension-horizontal-rule": "^3.28.0", - "@tiptap/extension-italic": "^3.28.0", - "@tiptap/extension-link": "^3.28.0", - "@tiptap/extension-list": "^3.28.0", - "@tiptap/extension-list-item": "^3.28.0", - "@tiptap/extension-list-keymap": "^3.28.0", - "@tiptap/extension-ordered-list": "^3.28.0", - "@tiptap/extension-paragraph": "^3.28.0", - "@tiptap/extension-strike": "^3.28.0", - "@tiptap/extension-text": "^3.28.0", - "@tiptap/extension-underline": "^3.28.0", - "@tiptap/extensions": "^3.28.0", - "@tiptap/pm": "^3.28.0" + "version": "3.29.2", + "resolved": "https://registry.npmjs.org/@tiptap/starter-kit/-/starter-kit-3.29.2.tgz", + "integrity": "sha512-oTu0tysiqk4zgjEtxRHjAQgxUKaAevZwueOWwSWubHdokqp7SpcbE5n9USJv89HKuTUDm3GjnQH6q8HNn/2DsA==", + "license": "MIT", + "dependencies": { + "@tiptap/core": "^3.29.2", + "@tiptap/extension-blockquote": "^3.29.2", + "@tiptap/extension-bold": "^3.29.2", + "@tiptap/extension-bullet-list": "^3.29.2", + "@tiptap/extension-code": "^3.29.2", + "@tiptap/extension-code-block": "^3.29.2", + "@tiptap/extension-document": "^3.29.2", + "@tiptap/extension-dropcursor": "^3.29.2", + "@tiptap/extension-gapcursor": "^3.29.2", + "@tiptap/extension-hard-break": "^3.29.2", + "@tiptap/extension-heading": "^3.29.2", + "@tiptap/extension-horizontal-rule": "^3.29.2", + "@tiptap/extension-italic": "^3.29.2", + "@tiptap/extension-link": "^3.29.2", + "@tiptap/extension-list": "^3.29.2", + "@tiptap/extension-list-item": "^3.29.2", + "@tiptap/extension-list-keymap": "^3.29.2", + "@tiptap/extension-ordered-list": "^3.29.2", + "@tiptap/extension-paragraph": "^3.29.2", + "@tiptap/extension-strike": "^3.29.2", + "@tiptap/extension-text": "^3.29.2", + "@tiptap/extension-underline": "^3.29.2", + "@tiptap/extensions": "^3.29.2", + "@tiptap/pm": "^3.29.2" }, "funding": { "type": "github", @@ -6013,28 +5948,15 @@ "@tsparticles/engine": "3.9.1" } }, - "node_modules/@tufjs/canonical-json": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@tufjs/canonical-json/-/canonical-json-2.0.0.tgz", - "integrity": "sha512-yVtV8zsdo8qFHe+/3kw81dSLyF7D576A5cCFCi4X7B39tWT7SekaEFUnvnWJHz+9qO7qJTah1JbrDjWKqFtdWA==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/@tufjs/models": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@tufjs/models/-/models-4.1.0.tgz", - "integrity": "sha512-Y8cK9aggNRsqJVaKUlEYs4s7CvQ1b1ta2DVPyAimb0I2qhzjNk+A+mxvll/klL0RlfuIUei8BF7YWiua4kQqww==", + "node_modules/@tybys/wasm-util": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.3.tgz", + "integrity": "sha512-F3fo1MYrRJYL3zER0OUOmkutjr1Vp23m7OsSgp7nq4SP6OqX6C/56XFIPAl5bt3zaBRjmW7SGz3u/6LwFpYcOg==", "dev": true, "license": "MIT", + "optional": true, "dependencies": { - "@tufjs/canonical-json": "2.0.0", - "minimatch": "^10.1.1" - }, - "engines": { - "node": "^20.17.0 || >=22.9.0" + "tslib": "^2.4.0" } }, "node_modules/@types/big.js": { @@ -6085,6 +6007,13 @@ "dev": true, "license": "MIT" }, + "node_modules/@types/gensync": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/gensync/-/gensync-1.0.5.tgz", + "integrity": "sha512-MbsRCT7mTikHwKZ0X+LVUTLRrZZRLipTuXEO9qOYO+zmjMVk81axyClMROf6uoPD9MRVu46bx8zoR0Ad9q3NAg==", + "dev": true, + "license": "MIT" + }, "node_modules/@types/glob-to-regexp": { "version": "0.4.4", "resolved": "https://registry.npmjs.org/@types/glob-to-regexp/-/glob-to-regexp-0.4.4.tgz", @@ -6106,6 +6035,13 @@ "dev": true, "license": "MIT" }, + "node_modules/@types/jsesc": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@types/jsesc/-/jsesc-2.5.1.tgz", + "integrity": "sha512-9VN+6yxLOPLOav+7PwjZbxiID2bVaeq0ED4qSQmdQTdjnXJSaCVKTR58t15oqH1H5t8Ng2ZX1SabJVoN9Q34bw==", + "dev": true, + "license": "MIT" + }, "node_modules/@types/json-schema": { "version": "7.0.15", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", @@ -6179,17 +6115,17 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.65.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.65.0.tgz", - "integrity": "sha512-IEgob78X12rHpUmtcwFsXhZdVGJtwTVP8FiCLZkR6GlYVrl2PcuB+KhCE5BlVC/eQpQnu8WXRtkHZuPar+gCRA==", + "version": "8.66.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.66.0.tgz", + "integrity": "sha512-p088eaGrzYz1s+7cov0aMOCkNGTJlVxF4jgubf28c8L0Cv9Rloj8YBHnv4hXLq6IIEE1AsjNWavO+k+8kP2Y0A==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.12.2", - "@typescript-eslint/scope-manager": "8.65.0", - "@typescript-eslint/type-utils": "8.65.0", - "@typescript-eslint/utils": "8.65.0", - "@typescript-eslint/visitor-keys": "8.65.0", + "@typescript-eslint/scope-manager": "8.66.0", + "@typescript-eslint/type-utils": "8.66.0", + "@typescript-eslint/utils": "8.66.0", + "@typescript-eslint/visitor-keys": "8.66.0", "ignore": "^7.0.5", "natural-compare": "^1.4.0", "ts-api-utils": "^2.5.0" @@ -6202,22 +6138,22 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@typescript-eslint/parser": "^8.65.0", + "@typescript-eslint/parser": "^8.66.0", "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.1.0" } }, "node_modules/@typescript-eslint/parser": { - "version": "8.65.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.65.0.tgz", - "integrity": "sha512-CZ4nMxWwgu1HEEFNkeaCptra9QCtkmKdgf3sWh1rl1trIhmxLilgTV4cwcbQ4wemnT4sWQN8CaKOmdYx+g2gMA==", + "version": "8.66.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.66.0.tgz", + "integrity": "sha512-X6ypGChaWYk6PBtUg2BwuTZEFFcHJAtGTVJ9/lCTOufhZ4i9fNolQNnktq+kkMCwMj7V8Svsq7+TxSDslmhE0g==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "8.65.0", - "@typescript-eslint/types": "8.65.0", - "@typescript-eslint/typescript-estree": "8.65.0", - "@typescript-eslint/visitor-keys": "8.65.0", + "@typescript-eslint/scope-manager": "8.66.0", + "@typescript-eslint/types": "8.66.0", + "@typescript-eslint/typescript-estree": "8.66.0", + "@typescript-eslint/visitor-keys": "8.66.0", "debug": "^4.4.3" }, "engines": { @@ -6233,14 +6169,14 @@ } }, "node_modules/@typescript-eslint/project-service": { - "version": "8.65.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.65.0.tgz", - "integrity": "sha512-SxnPhbTsGahizDgbu7oqFH/xVtzIqMd/s+WtnSxNxJZJpLbdT5IPdzg8EZxO3+PoKahXmwJLeNQOpKJb3/bi7Q==", + "version": "8.66.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.66.0.tgz", + "integrity": "sha512-7MthGPTt4BP69lSryqpqq8HQqxuzynssckL/jyDyk3+TNMQ3y2jFWkptCrktWvBrP+EH787Nl5N5Qpw7WZg+5g==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/tsconfig-utils": "^8.65.0", - "@typescript-eslint/types": "^8.65.0", + "@typescript-eslint/tsconfig-utils": "^8.66.0", + "@typescript-eslint/types": "^8.66.0", "debug": "^4.4.3" }, "engines": { @@ -6255,14 +6191,14 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "8.65.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.65.0.tgz", - "integrity": "sha512-Esbl8OSYiVxBokYgWPf7VVWg/BE798wXhimnn9ML9Pt5qoDf8bfQlgjlKXR/k98+AcNzlLKYrpCcrcuZ9DZLgg==", + "version": "8.66.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.66.0.tgz", + "integrity": "sha512-8TGcH25j9zqJ/IULB/ppyhRvxA8QYfFEZ7nfbg6/BN9spDgb8fPWQXlE5l8TWBL50EtUx007uZ1o9VOwrq2/9g==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.65.0", - "@typescript-eslint/visitor-keys": "8.65.0" + "@typescript-eslint/types": "8.66.0", + "@typescript-eslint/visitor-keys": "8.66.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -6273,9 +6209,9 @@ } }, "node_modules/@typescript-eslint/tsconfig-utils": { - "version": "8.65.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.65.0.tgz", - "integrity": "sha512-j6GzGqCiRdA7Qhur2VVmKZAkBLfnHFQfx4TaJGL9RMveZqCo48jSHHO0DTgizEnGhtWnqmbtCUSrqSkdiY/0Hg==", + "version": "8.66.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.66.0.tgz", + "integrity": "sha512-9D5gLYZG4rOjcoag8MQ/fWI8WqA9wcPDyOGyWtWFhvM1lHRbliqUSPIY5J3zqCU1tvSwzXxnnjhQhz5Ne7mJ4g==", "dev": true, "license": "MIT", "engines": { @@ -6290,15 +6226,15 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "8.65.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.65.0.tgz", - "integrity": "sha512-YjaZ7PRI5qY7ax2L3PbvX0rRyGtipAReCWs0mhhDBHjH/vl0g0BonaGXrKdKpMbIIsMIwDgbk/xzkBTyAltS5g==", + "version": "8.66.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.66.0.tgz", + "integrity": "sha512-LG2dWfjZQQp0ADtAu/EWJVayefGL2UEZ3CDeI44D9v3rXB/WYUqE/jpO28KrEKul5AySrmI+Zh1v6v+xW2U9+g==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.65.0", - "@typescript-eslint/typescript-estree": "8.65.0", - "@typescript-eslint/utils": "8.65.0", + "@typescript-eslint/types": "8.66.0", + "@typescript-eslint/typescript-estree": "8.66.0", + "@typescript-eslint/utils": "8.66.0", "debug": "^4.4.3", "ts-api-utils": "^2.5.0" }, @@ -6315,9 +6251,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "8.65.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.65.0.tgz", - "integrity": "sha512-JSSwWNy+H0E/01jJEM+hrX6N0OFDzFzeIhHFSAS01tlVaevpG8cFyYRPhS5yjGOvBUx3sqQHVMjCL1CAZZMxBg==", + "version": "8.66.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.66.0.tgz", + "integrity": "sha512-H6gcYaSDOyvL3AD/jHUtUFo2jqGgn/F6nuyuZSu0QTesxL+cP4dQoIMrODRofuJC09g64+WgZ6tE19Y1N2YIFQ==", "dev": true, "license": "MIT", "engines": { @@ -6329,16 +6265,16 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.65.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.65.0.tgz", - "integrity": "sha512-JboAE2swaYt4tb1fHhHTABE2K+OLy09XfcTbhnk4Pw96f9dd2e9iYsJ28gBggHlo5z5x1rkyWvcPoTuNTd4oGg==", + "version": "8.66.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.66.0.tgz", + "integrity": "sha512-8/x4INiiQb10jGgXYD7116/zQ+OL84ZIFn0za68wwFHCanT/VLbBEroWht8RV8fn0/ZCAoazHLQgwUC0UQcDfg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/project-service": "8.65.0", - "@typescript-eslint/tsconfig-utils": "8.65.0", - "@typescript-eslint/types": "8.65.0", - "@typescript-eslint/visitor-keys": "8.65.0", + "@typescript-eslint/project-service": "8.66.0", + "@typescript-eslint/tsconfig-utils": "8.66.0", + "@typescript-eslint/types": "8.66.0", + "@typescript-eslint/visitor-keys": "8.66.0", "debug": "^4.4.3", "minimatch": "^10.2.2", "semver": "^7.7.3", @@ -6357,16 +6293,16 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "8.65.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.65.0.tgz", - "integrity": "sha512-gXiwIHsYreboxeJucHKPvgwl7dXt50mF8s1/c00cP/WoVTyWKFdtfhRWwZiXYFU5H2O8vVoSLNrexFZjYS/SGA==", + "version": "8.66.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.66.0.tgz", + "integrity": "sha512-jasearZPolBw5NJNYGMwxzHMF83niVWmMU1VdHzG1CyfI2VS7f7nZltnKtHcg20hW+7Uo5GfK4MeDPoU3qI8EA==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.9.1", - "@typescript-eslint/scope-manager": "8.65.0", - "@typescript-eslint/types": "8.65.0", - "@typescript-eslint/typescript-estree": "8.65.0" + "@typescript-eslint/scope-manager": "8.66.0", + "@typescript-eslint/types": "8.66.0", + "@typescript-eslint/typescript-estree": "8.66.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -6381,13 +6317,13 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.65.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.65.0.tgz", - "integrity": "sha512-8C71BQkGjiMmXtop7pHVJu1l2NNShFdkCyD6a2ezzs5vU/L3LRtb69EtcteFwz0mYMPzIgOw0n6OV4VBUWZd7A==", + "version": "8.66.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.66.0.tgz", + "integrity": "sha512-dkKR8q+lKciskj1Y3vthHktl+3cMLWGyVUP23bRiPZ5O9BRT++4EqDDV+TVeIKBL1VXVEqrJlz8MYbcnvJcAlg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.65.0", + "@typescript-eslint/types": "8.66.0", "eslint-visitor-keys": "^5.0.0" }, "engines": { @@ -6507,23 +6443,6 @@ "node": ">=10.0.0" } }, - "node_modules/@yarnpkg/lockfile": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz", - "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==", - "dev": true, - "license": "BSD-2-Clause" - }, - "node_modules/abbrev": { - "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": "^20.17.0 || >=22.9.0" - } - }, "node_modules/accepts": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", @@ -6596,16 +6515,6 @@ "pkcs7": "^1.0.4" } }, - "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/ajv": { "version": "8.20.0", "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.20.0.tgz", @@ -6641,32 +6550,6 @@ } } }, - "node_modules/algoliasearch": { - "version": "5.52.0", - "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-5.52.0.tgz", - "integrity": "sha512-0ZzY9mjqV7gop/AH8pIBiAS8giXP7WcSiUfoFYIzYAK9QC5c37E4SIVtJVBMwlURc0/uNt2o4RcNRvdHa4CJ5w==", - "dev": true, - "license": "MIT", - "dependencies": { - "@algolia/abtesting": "1.18.0", - "@algolia/client-abtesting": "5.52.0", - "@algolia/client-analytics": "5.52.0", - "@algolia/client-common": "5.52.0", - "@algolia/client-insights": "5.52.0", - "@algolia/client-personalization": "5.52.0", - "@algolia/client-query-suggestions": "5.52.0", - "@algolia/client-search": "5.52.0", - "@algolia/ingestion": "1.52.0", - "@algolia/monitoring": "1.52.0", - "@algolia/recommend": "5.52.0", - "@algolia/requester-browser-xhr": "5.52.0", - "@algolia/requester-fetch": "5.52.0", - "@algolia/requester-node-http": "5.52.0" - }, - "engines": { - "node": ">= 14.0.0" - } - }, "node_modules/angular-eslint": { "version": "22.1.0", "resolved": "https://registry.npmjs.org/angular-eslint/-/angular-eslint-22.1.0.tgz", @@ -6964,9 +6847,9 @@ } }, "node_modules/beasties": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/beasties/-/beasties-0.4.2.tgz", - "integrity": "sha512-NvcGjG/7AVUAfRbvrJmHunDQS9uHnE6Q/7AkaPr8oKE8HjOlpjRG5075z/th2Tmlezk3VlaaS8+X9I1RwHJMQw==", + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/beasties/-/beasties-0.4.3.tgz", + "integrity": "sha512-fIIeLOcbAB/K1kb1HBVJoiq1alHL4RCYBSo5e7HzrNkkgMggXR1Vqt/Z9JWnkfe/qdCo66Ux3QRwZioAIBdWRA==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -7239,38 +7122,6 @@ "node": ">= 0.8" } }, - "node_modules/cacache": { - "version": "20.0.4", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-20.0.4.tgz", - "integrity": "sha512-M3Lab8NPYlZU2exsL3bMVvMrMqgwCnMWfdZbK28bn3pK6APT/Te/I8hjRPNu1uwORY9a1eEQoifXbKPQMfMTOA==", - "dev": true, - "license": "ISC", - "dependencies": { - "@npmcli/fs": "^5.0.0", - "fs-minipass": "^3.0.0", - "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": "^13.0.0" - }, - "engines": { - "node": "^20.17.0 || >=22.9.0" - } - }, - "node_modules/cacache/node_modules/lru-cache": { - "version": "11.5.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.5.1.tgz", - "integrity": "sha512-RPimw/7aMdv2oqRrxKwvZXcPfwBrn/JZ2xYcY9Hus/6LaS3VOAKVWKWgNLCFSiOm1ESXinjsDlidVU7JlnCN2A==", - "dev": true, - "license": "BlueOak-1.0.0", - "engines": { - "node": "20 || >=22" - } - }, "node_modules/call-bind-apply-helpers": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", @@ -7412,16 +7263,6 @@ "url": "https://paulmillr.com/funding/" } }, - "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/cli-cursor": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-5.0.0.tgz", @@ -7552,28 +7393,28 @@ } }, "node_modules/cm-chess": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/cm-chess/-/cm-chess-3.6.3.tgz", - "integrity": "sha512-78ffmdsUbb+pOTf6lgTKuLvaPxrQh47xdhuGo4O00GpdgkWOiIjgpvG8vmWCDwu2MJkHHcte0oNxqbd8F9FfhA==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cm-chess/-/cm-chess-4.0.0.tgz", + "integrity": "sha512-+CyeGMeXNIDF3LQhEtsuHUMb09cItXp1M7ZhG94fV3wKF6AXrE8m/xpIQfxA4sD5kDMrC6rhuRE0KyQgAo/20Q==", "license": "MIT", "dependencies": { "chess.mjs": "^2.3.2", - "cm-pgn": "4.0.6" + "cm-pgn": "^5.0.0" } }, "node_modules/cm-chessboard": { - "version": "8.12.14", - "resolved": "https://registry.npmjs.org/cm-chessboard/-/cm-chessboard-8.12.14.tgz", - "integrity": "sha512-8yMu9IF7s82RkItRofvwgs9zdLyj7uoOgBNYpn26H3Zuo4q6bKm6czvzZvUeRieVlkPph4JrwdA3PG91jdMq8Q==", + "version": "8.12.19", + "resolved": "https://registry.npmjs.org/cm-chessboard/-/cm-chessboard-8.12.19.tgz", + "integrity": "sha512-HyX/HE4MH+zF4h+uTTe8c1dpPzb66/i8R/QbYEnxNSFM5xZi/n1LW2Ip2Vv+0lXfEptcV5VTT6gLldmuyMjjaQ==", "license": "MIT" }, "node_modules/cm-pgn": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/cm-pgn/-/cm-pgn-4.0.6.tgz", - "integrity": "sha512-4nsWoI+vEGrLaGM2vSOng00qvIl3Oj4bx+5UfFdH8MT7DiaphVt+7vo8PuzUV+jJhmvYnV83/UNv4gyr03Rlfw==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cm-pgn/-/cm-pgn-5.0.0.tgz", + "integrity": "sha512-jq82smTdfw+7VlyBPM8HkyC/wBtQUUIixRKvga9DdAkPeLEcajXOUxKmIostn3VSudIHj9TCLtcPC5D3Zc67hg==", "license": "MIT", "dependencies": { - "chess.mjs": "^2.2.3" + "chess.mjs": "^2.3.2" } }, "node_modules/code-block-writer": { @@ -7936,7 +7777,6 @@ "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", "dev": true, "license": "Apache-2.0", - "optional": true, "engines": { "node": ">=8" } @@ -8122,6 +7962,16 @@ "dev": true, "license": "MIT" }, + "node_modules/empathic": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/empathic/-/empathic-2.0.1.tgz", + "integrity": "sha512-YGRs8knHhKHVShLkFET/rWAU8kmHbOV5LwN938RHI0pljAJ1Gf6SzXsSmRaEzcXTtOOmVqJ5+WtQPL5uigY50Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + } + }, "node_modules/encodeurl": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", @@ -8225,16 +8075,6 @@ "url": "https://github.com/fb55/entities?sponsor=1" } }, - "node_modules/env-paths": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", - "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, "node_modules/environment": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/environment/-/environment-1.1.0.tgz", @@ -8282,9 +8122,9 @@ } }, "node_modules/esbuild": { - "version": "0.27.7", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.27.7.tgz", - "integrity": "sha512-IxpibTjyVnmrIQo5aqNpCgoACA/dTKLTlhMHihVHhdkxKyPO1uBBthumT0rdHmcsk9uMonIWS0m4FljWzILh3w==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.28.1.tgz", + "integrity": "sha512-HrJrvZv5ayxBzPfwphOoNzkzOIIlifzk0KJrGK2c8R4+LKpMtpYLQeUdjnwjWv/LZlkH2laZk+4w78pi99D4Vw==", "dev": true, "hasInstallScript": true, "license": "MIT", @@ -8295,32 +8135,32 @@ "node": ">=18" }, "optionalDependencies": { - "@esbuild/aix-ppc64": "0.27.7", - "@esbuild/android-arm": "0.27.7", - "@esbuild/android-arm64": "0.27.7", - "@esbuild/android-x64": "0.27.7", - "@esbuild/darwin-arm64": "0.27.7", - "@esbuild/darwin-x64": "0.27.7", - "@esbuild/freebsd-arm64": "0.27.7", - "@esbuild/freebsd-x64": "0.27.7", - "@esbuild/linux-arm": "0.27.7", - "@esbuild/linux-arm64": "0.27.7", - "@esbuild/linux-ia32": "0.27.7", - "@esbuild/linux-loong64": "0.27.7", - "@esbuild/linux-mips64el": "0.27.7", - "@esbuild/linux-ppc64": "0.27.7", - "@esbuild/linux-riscv64": "0.27.7", - "@esbuild/linux-s390x": "0.27.7", - "@esbuild/linux-x64": "0.27.7", - "@esbuild/netbsd-arm64": "0.27.7", - "@esbuild/netbsd-x64": "0.27.7", - "@esbuild/openbsd-arm64": "0.27.7", - "@esbuild/openbsd-x64": "0.27.7", - "@esbuild/openharmony-arm64": "0.27.7", - "@esbuild/sunos-x64": "0.27.7", - "@esbuild/win32-arm64": "0.27.7", - "@esbuild/win32-ia32": "0.27.7", - "@esbuild/win32-x64": "0.27.7" + "@esbuild/aix-ppc64": "0.28.1", + "@esbuild/android-arm": "0.28.1", + "@esbuild/android-arm64": "0.28.1", + "@esbuild/android-x64": "0.28.1", + "@esbuild/darwin-arm64": "0.28.1", + "@esbuild/darwin-x64": "0.28.1", + "@esbuild/freebsd-arm64": "0.28.1", + "@esbuild/freebsd-x64": "0.28.1", + "@esbuild/linux-arm": "0.28.1", + "@esbuild/linux-arm64": "0.28.1", + "@esbuild/linux-ia32": "0.28.1", + "@esbuild/linux-loong64": "0.28.1", + "@esbuild/linux-mips64el": "0.28.1", + "@esbuild/linux-ppc64": "0.28.1", + "@esbuild/linux-riscv64": "0.28.1", + "@esbuild/linux-s390x": "0.28.1", + "@esbuild/linux-x64": "0.28.1", + "@esbuild/netbsd-arm64": "0.28.1", + "@esbuild/netbsd-x64": "0.28.1", + "@esbuild/openbsd-arm64": "0.28.1", + "@esbuild/openbsd-x64": "0.28.1", + "@esbuild/openharmony-arm64": "0.28.1", + "@esbuild/sunos-x64": "0.28.1", + "@esbuild/win32-arm64": "0.28.1", + "@esbuild/win32-ia32": "0.28.1", + "@esbuild/win32-x64": "0.28.1" } }, "node_modules/escalade": { @@ -8698,13 +8538,6 @@ "node": ">=8.3.0" } }, - "node_modules/exponential-backoff": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.3.tgz", - "integrity": "sha512-ZgEeZXj30q+I0EN+CbSSpIyPaJ5HVQD18Z1m+u1FXbAeT94mr1zw50q4q6jiiC447Nl/YTcIYSAftiGqetwXCA==", - "dev": true, - "license": "Apache-2.0" - }, "node_modules/express": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/express/-/express-5.2.1.tgz", @@ -9031,9 +8864,9 @@ } }, "node_modules/fast-uri": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.4.tgz", - "integrity": "sha512-8JnbkQ4juDyvYs4mgFGQqg4yCYtFDtUtmp2QIQq11ZZe5CFQ5wcqm1rqDgAh/QdMySuBnPzMUiJUNZG5N/AiQw==", + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.5.tgz", + "integrity": "sha512-gHwA1O9LDIcKunMKhObS/HimwtehO1nPUECKAu5TpKgaO19fcWEl4bliWe1jWxVFvIXztJjjQ4L8XQ1EU9f7Jw==", "dev": true, "funding": [ { @@ -9302,19 +9135,6 @@ "node": ">=6 <7 || >=8" } }, - "node_modules/fs-minipass": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.3.tgz", - "integrity": "sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==", - "dev": true, - "license": "ISC", - "dependencies": { - "minipass": "^7.0.3" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -9652,9 +9472,9 @@ } }, "node_modules/hono": { - "version": "4.12.30", - "resolved": "https://registry.npmjs.org/hono/-/hono-4.12.30.tgz", - "integrity": "sha512-emn+JoJjrN9YTpRDS5it/UI2SO9BAE37T6I3d963RxcZ81G9A4pr2SZTEiiaiKbzx+NKRg5BZ89fCL7gCJCUog==", + "version": "4.13.1", + "resolved": "https://registry.npmjs.org/hono/-/hono-4.13.1.tgz", + "integrity": "sha512-kdJoFVv2xmayw6cY09H7AbMJMt8Jn5jdlEdXsP7AGBdF2DIptVlKlOLKXP41yPip4/a3yQPv9gVcJYI8YY04dw==", "dev": true, "license": "MIT", "engines": { @@ -9662,22 +9482,22 @@ } }, "node_modules/hosted-git-info": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-9.0.3.tgz", - "integrity": "sha512-Hc+ghLoSt6QaYZUv0WBiIvmMDZuZZ7oaDvdH8MbfOO4lOsxdXLEvuC6ePoGs9H1X9oCLyq6+NVN0MKqD+ydxyg==", + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-10.1.1.tgz", + "integrity": "sha512-DeOnSPAvOndYKfw075gt8yZzQ7S2hNztw34zBTfhIzLhmBTswIBg5/y+pqu/VD5cYWm5goAFTusDmUEmKZ0PEQ==", "dev": true, "license": "ISC", "dependencies": { "lru-cache": "^11.1.0" }, "engines": { - "node": "^20.17.0 || >=22.9.0" + "node": "^22.22.2 || ^24.15.0 || >=26.0.0" } }, "node_modules/hosted-git-info/node_modules/lru-cache": { - "version": "11.5.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.5.1.tgz", - "integrity": "sha512-RPimw/7aMdv2oqRrxKwvZXcPfwBrn/JZ2xYcY9Hus/6LaS3VOAKVWKWgNLCFSiOm1ESXinjsDlidVU7JlnCN2A==", + "version": "11.5.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.5.2.tgz", + "integrity": "sha512-4pfM1Ff0x50o0tQwb5ucw/RzNyD0/YJME6IVcStalZuMWxdt3sR3huStTtxz4PUmvZfRguvDejasvQ2kifR11g==", "dev": true, "license": "BlueOak-1.0.0", "engines": { @@ -9740,13 +9560,6 @@ "url": "https://github.com/fb55/entities?sponsor=1" } }, - "node_modules/http-cache-semantics": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.2.0.tgz", - "integrity": "sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ==", - "dev": true, - "license": "BSD-2-Clause" - }, "node_modules/http-errors": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz", @@ -9793,34 +9606,6 @@ "node": ">=8.0.0" } }, - "node_modules/http-proxy-agent": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", - "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", - "dev": true, - "license": "MIT", - "dependencies": { - "agent-base": "^7.1.0", - "debug": "^4.3.4" - }, - "engines": { - "node": ">= 14" - } - }, - "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/iconv-lite": { "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", @@ -9864,19 +9649,6 @@ "node": ">= 4" } }, - "node_modules/ignore-walk": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-8.0.0.tgz", - "integrity": "sha512-FCeMZT4NiRQGh+YkeKMtWrOmBgWjHjMJ26WQWrRQyoyzqevdaGSakUaJW5xQYmjLlUVk2qUnCjYVBax9EKKg8A==", - "dev": true, - "license": "ISC", - "dependencies": { - "minimatch": "^10.0.3" - }, - "engines": { - "node": "^20.17.0 || >=22.9.0" - } - }, "node_modules/immediate": { "version": "3.0.6", "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", @@ -9907,6 +9679,17 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/import-meta-resolve": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-4.2.0.tgz", + "integrity": "sha512-Iqv2fzaTQN28s/FwZAoFq0ZSs/7hMAHJVX+w8PZl3cY19Pxk6jFFalxQoIfW2826i/fDLXv8IiEZRIT0lDuWcg==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", @@ -9934,20 +9717,10 @@ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", "license": "ISC" }, - "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/ip-address": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.2.0.tgz", - "integrity": "sha512-/+S6j4E9AHvW9SWMSEY9Xfy66O5PWvVEJ08O0y5JGyEKQpojb0K0GKpz/v5HJ/G0vi3D2sjGK78119oXZeE0qA==", + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.4.0.tgz", + "integrity": "sha512-oSK96Grm3aP6OrS263xVxbNDGVL7rzBtYdpGqlDG8iQdoenDoTs/nkki+DflYbAEE8Xl6o5YxhxlrKvI3nqKXQ==", "dev": true, "license": "MIT", "engines": { @@ -10228,9 +10001,9 @@ "license": "MIT" }, "node_modules/js-yaml": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-5.2.1.tgz", - "integrity": "sha512-zfLtNfQqxVqq3uaTqSkh4x4hZw3KHobGUA0fJUj4wawW8bsQLTVqpHdXSIzidh7o+4lEW36tANuAGdaFx6Zgnw==", + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-5.2.3.tgz", + "integrity": "sha512-n+mUVyUX5bVv7G/G2zyIHOhdxfuU1dY2NOFzTQUWiMUbFss8b57NFlgCCaggU78wSw5KVS9cllzeLyzyR+n5nw==", "dev": true, "funding": [ { @@ -10270,16 +10043,6 @@ "dev": true, "license": "MIT" }, - "node_modules/json-parse-even-better-errors": { - "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": "^20.17.0 || >=22.9.0" - } - }, "node_modules/json-schema-traverse": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", @@ -10331,16 +10094,6 @@ "graceful-fs": "^4.1.6" } }, - "node_modules/jsonparse": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", - "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==", - "dev": true, - "engines": [ - "node >= 0.2.0" - ], - "license": "MIT" - }, "node_modules/jszip": { "version": "3.10.1", "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz", @@ -10802,60 +10555,333 @@ "readable-stream": "^2.0.5" }, "engines": { - "node": ">= 0.6.3" + "node": ">= 0.6.3" + } + }, + "node_modules/lazystream/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/lazystream/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "license": "MIT" + }, + "node_modules/lazystream/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lie": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", + "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", + "license": "MIT", + "dependencies": { + "immediate": "~3.0.5" + } + }, + "node_modules/lightningcss": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.33.0.tgz", + "integrity": "sha512-WkUDrojuJs0xkgGf2udWxa3yGBRxPtxUkB79i6aCZLRgc7PM8fZe9TosfPDcvEpQZbuFASnHYmRLBLUbmLOIIA==", + "dev": true, + "license": "MPL-2.0", + "dependencies": { + "detect-libc": "^2.0.3" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "lightningcss-android-arm64": "1.33.0", + "lightningcss-darwin-arm64": "1.33.0", + "lightningcss-darwin-x64": "1.33.0", + "lightningcss-freebsd-x64": "1.33.0", + "lightningcss-linux-arm-gnueabihf": "1.33.0", + "lightningcss-linux-arm64-gnu": "1.33.0", + "lightningcss-linux-arm64-musl": "1.33.0", + "lightningcss-linux-x64-gnu": "1.33.0", + "lightningcss-linux-x64-musl": "1.33.0", + "lightningcss-win32-arm64-msvc": "1.33.0", + "lightningcss-win32-x64-msvc": "1.33.0" + } + }, + "node_modules/lightningcss-android-arm64": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.33.0.tgz", + "integrity": "sha512-gEpRTalKdosp4Bb8qWtc2iOgE5SeIHlpS1up9bFq2wAyYhl1UdTObYiHe98zEM9SQvSoqQZ1IQD0JNpg3Ml5pg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-darwin-arm64": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.33.0.tgz", + "integrity": "sha512-Sciaz8eenNTKn9b3t7+xr0ipTp9YxKQY4npwQ3mrRuL0BAVHBLyZxofhaKBAVtzmtRZ/zTyo0/to4B1uWG/Djg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-darwin-x64": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.33.0.tgz", + "integrity": "sha512-Z5UPAxzrjlWNNyGy6i65cJzzvgJ5D3T6wMvs+gWpY9d7qRhANrxqAp6LhxIgZhWEw18RfJTGcRxjuLIBr+m8XQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-freebsd-x64": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.33.0.tgz", + "integrity": "sha512-QQM/Ti/hQajJwCY+RiWuCZ9sdtI/XQk7nDK5vC8kkdwixezOlDgvDx7+RT+QjK6FcFT4MpsuoBnHIo/O3StRRg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm-gnueabihf": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.33.0.tgz", + "integrity": "sha512-N7FVBe6iS24MlM6R/4RBTxGhQheZGs7tiQ9U32UtF75NzP5Q7xWPRqLBCKxlRQRk3rY1jCIPLzx7WzOhuUIRLQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-gnu": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.33.0.tgz", + "integrity": "sha512-j2v/itmy4HlNxlc6voKXYgBqNi0Ng2LShg4z7GufpEgs05P+2suBVyi9I6YHq5uoVFx9ETin3eCEhLVyXGQnKg==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-musl": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.33.0.tgz", + "integrity": "sha512-yiO5ROMuYQgXbC60yjZU5CYSFZGKXL0HFATXt9mHJn1+zW55oCtMI9NfcVhYLMFDL7gV7oBPon/EmMMGg2OvtQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" } }, - "node_modules/lazystream/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "license": "MIT", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" + "node_modules/lightningcss-linux-x64-gnu": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.33.0.tgz", + "integrity": "sha512-ar+Ju7LmcN0Jo4FpL4hpFybwNG9/3A/Br5KW2n2jyODg3MEZXaDYADdemoNS+BDNfMgKvylJLj4S5tyRActuAg==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" } }, - "node_modules/lazystream/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "license": "MIT" - }, - "node_modules/lazystream/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.1.0" + "node_modules/lightningcss-linux-x64-musl": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.33.0.tgz", + "integrity": "sha512-RYiYbkokw0trfKqqzfF55lginwEPrD3OJDfTuJzFs1MK6iFnDenaz1fqLLtX4ITG3OktJQXOeTaw1awrBAlZPw==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" } }, - "node_modules/levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "node_modules/lightningcss-win32-arm64-msvc": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.33.0.tgz", + "integrity": "sha512-1K+MPfLSFVpphzpdbfkhlWk6wBrTObBzS2T6db10PNOZgR9GoVsAWzwNyuhUYYbTp23j+4RrncfujZ4uAzXvwA==", + "cpu": [ + "arm64" + ], "dev": true, - "license": "MIT", - "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - }, + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], "engines": { - "node": ">= 0.8.0" + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" } }, - "node_modules/lie": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", - "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", - "license": "MIT", - "dependencies": { - "immediate": "~3.0.5" + "node_modules/lightningcss-win32-x64-msvc": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.33.0.tgz", + "integrity": "sha512-OlEICDx/Xl0FqSp4bry8zFnCvGpig3Gl4gCquvYwHuqJKEC1+n9NgDniFvqHGmMv1ZkqDJrDqKKSykTDX+ehuA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" } }, "node_modules/linebreak": { @@ -10895,6 +10921,7 @@ "integrity": "sha512-7I5knELsJKTUjXG+A6BkKAiGkW1i25fNa/xlUl9hFtk15WbE9jndA89xu5FzQKrY5llajE1hfZZFMILXkDHk/Q==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "cli-truncate": "^5.2.0", "eventemitter3": "^5.0.4", @@ -10912,6 +10939,7 @@ "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=12" }, @@ -10924,7 +10952,8 @@ "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.4.tgz", "integrity": "sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw==", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/listr2/node_modules/wrap-ansi": { "version": "10.0.0", @@ -10932,6 +10961,7 @@ "integrity": "sha512-SGcvg80f0wUy2/fXES19feHMz8E0JoXv2uNgHOu4Dgi2OrCy1lqwFYEJz1BLbDI0exjPMe/ZdzZ/YpGECBG/aQ==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "ansi-styles": "^6.2.3", "string-width": "^8.2.0", @@ -10945,9 +10975,9 @@ } }, "node_modules/lmdb": { - "version": "3.5.4", - "resolved": "https://registry.npmjs.org/lmdb/-/lmdb-3.5.4.tgz", - "integrity": "sha512-9FKQA6G1MMtqNxfxvSBNXD/axeG2QRjYbNh0/ykRL5xYcRbCm2vXq7B9bhc7nSuKdHzr8/BHIwfPuYYH1UsXXw==", + "version": "3.5.6", + "resolved": "https://registry.npmjs.org/lmdb/-/lmdb-3.5.6.tgz", + "integrity": "sha512-j3uE8ReKNyUWDjhfEFSJqE/1DLtfTR5Z8yFzVHvBjAk37wNg7HdScjcv8ttPHRvrdgPQMPWxFFI0SsdBzI5lBw==", "dev": true, "hasInstallScript": true, "license": "MIT", @@ -10964,13 +10994,13 @@ "download-lmdb-prebuilds": "bin/download-prebuilds.js" }, "optionalDependencies": { - "@lmdb/lmdb-darwin-arm64": "3.5.4", - "@lmdb/lmdb-darwin-x64": "3.5.4", - "@lmdb/lmdb-linux-arm": "3.5.4", - "@lmdb/lmdb-linux-arm64": "3.5.4", - "@lmdb/lmdb-linux-x64": "3.5.4", - "@lmdb/lmdb-win32-arm64": "3.5.4", - "@lmdb/lmdb-win32-x64": "3.5.4" + "@lmdb/lmdb-darwin-arm64": "3.5.6", + "@lmdb/lmdb-darwin-x64": "3.5.6", + "@lmdb/lmdb-linux-arm": "3.5.6", + "@lmdb/lmdb-linux-arm64": "3.5.6", + "@lmdb/lmdb-linux-x64": "3.5.6", + "@lmdb/lmdb-win32-arm64": "3.5.6", + "@lmdb/lmdb-win32-x64": "3.5.6" } }, "node_modules/locate-path": { @@ -11230,9 +11260,9 @@ } }, "node_modules/magic-string": { - "version": "0.30.21", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", - "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-1.0.0.tgz", + "integrity": "sha512-CGvjzMN08iv6w1mm4/x3Gh1hLb4VnyRUA15FFpl6CsCIGGoe36k7kY5KNz9QDbSBN5I/fWHM6ZlIkUTa5xdUEA==", "dev": true, "license": "MIT", "dependencies": { @@ -11262,30 +11292,6 @@ "dev": true, "license": "ISC" }, - "node_modules/make-fetch-happen": { - "version": "15.0.6", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-15.0.6.tgz", - "integrity": "sha512-Je0fLJ0F5atA7F+eIlLzk+Wkcl57JDf4kf+EW8xiP5E31xOQxkIxTbgf1Oi1Lw9tRI9UEMRdI5Vz2xTzoNU1Jw==", - "dev": true, - "license": "ISC", - "dependencies": { - "@gar/promise-retry": "^1.0.0", - "@npmcli/agent": "^4.0.0", - "@npmcli/redact": "^4.0.0", - "cacache": "^20.0.1", - "http-cache-semantics": "^4.1.1", - "minipass": "^7.0.2", - "minipass-fetch": "^5.0.0", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^1.0.0", - "proc-log": "^6.0.0", - "ssri": "^13.0.0" - }, - "engines": { - "node": "^20.17.0 || >=22.9.0" - } - }, "node_modules/material-design-icons-iconfont": { "version": "6.7.0", "resolved": "https://registry.npmjs.org/material-design-icons-iconfont/-/material-design-icons-iconfont-6.7.0.tgz", @@ -11441,147 +11447,6 @@ "node": ">=16 || 14 >=14.17" } }, - "node_modules/minipass-collect": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-2.0.1.tgz", - "integrity": "sha512-D7V8PO9oaz7PWGLbCACuI1qEOsq7UKfLotx/C0Aet43fCUB/wfQ7DYeq2oR/svFJGYDHPr38SHATeaj/ZoKHKw==", - "dev": true, - "license": "ISC", - "dependencies": { - "minipass": "^7.0.3" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/minipass-fetch": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-5.0.2.tgz", - "integrity": "sha512-2d0q2a8eCi2IRg/IGubCNRJoYbA1+YPXAzQVRFmB45gdGZafyivnZ5YSEfo3JikbjGxOdntGFvBQGqaSMXlAFQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "minipass": "^7.0.3", - "minipass-sized": "^2.0.0", - "minizlib": "^3.0.1" - }, - "engines": { - "node": "^20.17.0 || >=22.9.0" - }, - "optionalDependencies": { - "iconv-lite": "^0.7.2" - } - }, - "node_modules/minipass-fetch/node_modules/iconv-lite": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.2.tgz", - "integrity": "sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" - } - }, - "node_modules/minipass-flush": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.7.tgz", - "integrity": "sha512-TbqTz9cUwWyHS2Dy89P3ocAGUGxKjjLuR9z8w4WUTGAVgEj17/4nhgo2Du56i0Fm3Pm30g4iA8Lcqctc76jCzA==", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/minipass-flush/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dev": true, - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass-flush/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/minipass-pipeline": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", - "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", - "dev": true, - "license": "ISC", - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass-pipeline/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dev": true, - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass-pipeline/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/minipass-sized": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-2.0.0.tgz", - "integrity": "sha512-zSsHhto5BcUVM2m1LurnXY6M//cGhVaegT71OfOXoprxT6o780GZd792ea6FfrQkuU4usHZIUczAQMRUE2plzA==", - "dev": true, - "license": "ISC", - "dependencies": { - "minipass": "^7.1.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minizlib": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-3.1.0.tgz", - "integrity": "sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw==", - "dev": true, - "license": "MIT", - "dependencies": { - "minipass": "^7.1.2" - }, - "engines": { - "node": ">= 18" - } - }, "node_modules/mkdirp": { "version": "0.5.6", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", @@ -11798,87 +11663,26 @@ "license": "MIT", "optional": true }, - "node_modules/node-gyp": { - "version": "12.4.0", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-12.4.0.tgz", - "integrity": "sha512-OMcPNvqTCFUnNaBlmdgq+lfNqY7gTiSmNRDjY3uAXRyudeKZEZxu3CLtjMQrx4zZxCX2b/mpNqTtwuCJgXhHkw==", - "dev": true, - "license": "MIT", - "dependencies": { - "env-paths": "^2.2.0", - "exponential-backoff": "^3.1.1", - "graceful-fs": "^4.2.6", - "nopt": "^9.0.0", - "proc-log": "^6.0.0", - "semver": "^7.3.5", - "tar": "^7.5.4", - "tinyglobby": "^0.2.12", - "undici": "^6.25.0", - "which": "^6.0.0" - }, - "bin": { - "node-gyp": "bin/node-gyp.js" - }, - "engines": { - "node": "^20.17.0 || >=22.9.0" - } - }, "node_modules/node-gyp-build-optional-packages": { "version": "5.2.2", "resolved": "https://registry.npmjs.org/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.2.2.tgz", "integrity": "sha512-s+w+rBWnpTMwSFbaE0UXsRlg7hU4FjekKU4eyAih5T8nJuNZT1nNsskXpxmeqSK9UzkBl6UgRlnKc8hz8IEqOw==", "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "detect-libc": "^2.0.1" - }, - "bin": { - "node-gyp-build-optional-packages": "bin.js", - "node-gyp-build-optional-packages-optional": "optional.js", - "node-gyp-build-optional-packages-test": "build-test.js" - } - }, - "node_modules/node-gyp/node_modules/isexe": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-4.0.0.tgz", - "integrity": "sha512-FFUtZMpoZ8RqHS3XeXEmHWLA4thH+ZxCv2lOiPIn1Xc7CxrqhWzNSDzD+/chS/zbYezmiwWLdQC09JdQKmthOw==", - "dev": true, - "license": "BlueOak-1.0.0", - "engines": { - "node": ">=20" - } - }, - "node_modules/node-gyp/node_modules/undici": { - "version": "6.27.0", - "resolved": "https://registry.npmjs.org/undici/-/undici-6.27.0.tgz", - "integrity": "sha512-YmfV3YnEDzXRC5lZ2jWtWWHKGUm1zIt8AhesR1tens+HTNv+YZlN/dp6G727LOvMJ8xjP9Be7Y2Sdr96LDm+pg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18.17" - } - }, - "node_modules/node-gyp/node_modules/which": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/which/-/which-6.0.1.tgz", - "integrity": "sha512-oGLe46MIrCRqX7ytPUf66EAYvdeMIZYn3WaocqqKZAxrBpkqHfL/qvTyJ/bTk5+AqHCjXmrv3CEWgy368zhRUg==", - "dev": true, - "license": "ISC", + "license": "MIT", + "optional": true, "dependencies": { - "isexe": "^4.0.0" + "detect-libc": "^2.0.1" }, "bin": { - "node-which": "bin/which.js" - }, - "engines": { - "node": "^20.17.0 || >=22.9.0" + "node-gyp-build-optional-packages": "bin.js", + "node-gyp-build-optional-packages-optional": "optional.js", + "node-gyp-build-optional-packages-test": "build-test.js" } }, "node_modules/node-html-better-parser": { - "version": "1.5.8", - "resolved": "https://registry.npmjs.org/node-html-better-parser/-/node-html-better-parser-1.5.8.tgz", - "integrity": "sha512-t/wAKvaTSKco43X+yf9+76RiMt18MtMmzd4wc7rKj+fWav6DV4ajDEKdWlLzSE8USDF5zr/06uGj0Wr/dGAFtw==", + "version": "1.5.9", + "resolved": "https://registry.npmjs.org/node-html-better-parser/-/node-html-better-parser-1.5.9.tgz", + "integrity": "sha512-z1I5UINMezJXYL9cH3h0a9KBth2G978gSLlfkpQ+CQzzVHVQy9gpARgm9eDsz1O4gn1HtgUqjdAIYxKFZm6uHQ==", "license": "MIT", "dependencies": { "html-entities": "^2.3.2" @@ -11891,22 +11695,6 @@ "dev": true, "license": "MIT" }, - "node_modules/nopt": { - "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": "^4.0.0" - }, - "bin": { - "nopt": "bin/nopt.js" - }, - "engines": { - "node": "^20.17.0 || >=22.9.0" - } - }, "node_modules/normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", @@ -11916,106 +11704,20 @@ "node": ">=0.10.0" } }, - "node_modules/npm-bundled": { - "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": "^5.0.0" - }, - "engines": { - "node": "^20.17.0 || >=22.9.0" - } - }, - "node_modules/npm-install-checks": { - "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": "^20.17.0 || >=22.9.0" - } - }, - "node_modules/npm-normalize-package-bin": { - "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": "^20.17.0 || >=22.9.0" - } - }, "node_modules/npm-package-arg": { - "version": "13.0.2", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-13.0.2.tgz", - "integrity": "sha512-IciCE3SY3uE84Ld8WZU23gAPPV9rIYod4F+rc+vJ7h7cwAJt9Vk6TVsK60ry7Uj3SRS3bqRRIGuTp9YVlk6WNA==", + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-14.0.0.tgz", + "integrity": "sha512-69XQh3k+dtGa1p+7RaR57IuG3rCko96xr/nUfN4yDYBXbTYICiWcOpsFKLN2GtGE9cyIljE+f1exnaYt9MvM+Q==", "dev": true, "license": "ISC", "dependencies": { - "hosted-git-info": "^9.0.0", - "proc-log": "^6.0.0", + "hosted-git-info": "^10.1.0", + "proc-log": "^7.0.0", "semver": "^7.3.5", - "validate-npm-package-name": "^7.0.0" - }, - "engines": { - "node": "^20.17.0 || >=22.9.0" - } - }, - "node_modules/npm-packlist": { - "version": "10.0.4", - "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-10.0.4.tgz", - "integrity": "sha512-uMW73iajD8hiH4ZBxEV3HC+eTnppIqwakjOYuvgddnalIw2lJguKviK1pcUJDlIWm1wSJkchpDZDSVVsZEYRng==", - "dev": true, - "license": "ISC", - "dependencies": { - "ignore-walk": "^8.0.0", - "proc-log": "^6.0.0" - }, - "engines": { - "node": "^20.17.0 || >=22.9.0" - } - }, - "node_modules/npm-pick-manifest": { - "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": "^8.0.0", - "npm-normalize-package-bin": "^5.0.0", - "npm-package-arg": "^13.0.0", - "semver": "^7.3.5" - }, - "engines": { - "node": "^20.17.0 || >=22.9.0" - } - }, - "node_modules/npm-registry-fetch": { - "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": "^4.0.0", - "jsonparse": "^1.3.1", - "make-fetch-happen": "^15.0.0", - "minipass": "^7.0.2", - "minipass-fetch": "^5.0.0", - "minizlib": "^3.0.1", - "npm-package-arg": "^13.0.0", - "proc-log": "^6.0.0" + "validate-npm-package-name": "^8.0.0" }, "engines": { - "node": "^20.17.0 || >=22.9.0" + "node": "^22.22.2 || ^24.15.0 || >=26.0.0" } }, "node_modules/nth-check": { @@ -12054,6 +11756,20 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/obug": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/obug/-/obug-2.1.4.tgz", + "integrity": "sha512-4a+OsYv9UktOJKE+l1A4OufDgdRF9PifWj+tJnHURo/P+WOxpG4GzUFL9qCalmWauao6ogiG+QvnCovwPoyAWA==", + "dev": true, + "funding": [ + "https://github.com/sponsors/sxzz", + "https://opencollective.com/debug" + ], + "license": "MIT", + "engines": { + "node": ">=12.20.0" + } + }, "node_modules/on-finished": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", @@ -12111,9 +11827,9 @@ } }, "node_modules/ora": { - "version": "9.4.0", - "resolved": "https://registry.npmjs.org/ora/-/ora-9.4.0.tgz", - "integrity": "sha512-84cglkRILFxdtA8hAvLNdMrtBpPNBTrQ9/ulg0FA7xLMnD6mifv+enAIeRmvtv+WgdCE+LPGOfQmtJRrVaIVhQ==", + "version": "9.4.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-9.4.1.tgz", + "integrity": "sha512-6VlU9MLXbjVQD04AZCMX28hVtA5bUoadvUqO76MUCVA0ilwJbMiHsITRPfyVm6p/BC0Av/BXMujx39WCe1LEqw==", "dev": true, "license": "MIT", "dependencies": { @@ -12160,6 +11876,44 @@ "integrity": "sha512-TvAWxi0nDe1j/rtMcWcIj94+Ffe6n7zhow33h40SKxmsmozs6dz/e+EajymfoFcHd7sxNn8yHM8839uixMOV6g==", "license": "MIT" }, + "node_modules/oxc-parser": { + "version": "0.142.0", + "resolved": "https://registry.npmjs.org/oxc-parser/-/oxc-parser-0.142.0.tgz", + "integrity": "sha512-kKR+jPiRJYJDexVoziIg/FVGvr1fT1FZSSJOk6tVoMKKSlsf1Cso+cgGCJkOEDWOP174vRntCPFKg+AS7InWvw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@oxc-project/types": "^0.142.0" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "funding": { + "url": "https://github.com/sponsors/Boshen" + }, + "optionalDependencies": { + "@oxc-parser/binding-android-arm-eabi": "0.142.0", + "@oxc-parser/binding-android-arm64": "0.142.0", + "@oxc-parser/binding-darwin-arm64": "0.142.0", + "@oxc-parser/binding-darwin-x64": "0.142.0", + "@oxc-parser/binding-freebsd-x64": "0.142.0", + "@oxc-parser/binding-linux-arm-gnueabihf": "0.142.0", + "@oxc-parser/binding-linux-arm-musleabihf": "0.142.0", + "@oxc-parser/binding-linux-arm64-gnu": "0.142.0", + "@oxc-parser/binding-linux-arm64-musl": "0.142.0", + "@oxc-parser/binding-linux-ppc64-gnu": "0.142.0", + "@oxc-parser/binding-linux-riscv64-gnu": "0.142.0", + "@oxc-parser/binding-linux-riscv64-musl": "0.142.0", + "@oxc-parser/binding-linux-s390x-gnu": "0.142.0", + "@oxc-parser/binding-linux-x64-gnu": "0.142.0", + "@oxc-parser/binding-linux-x64-musl": "0.142.0", + "@oxc-parser/binding-openharmony-arm64": "0.142.0", + "@oxc-parser/binding-wasm32-wasi": "0.142.0", + "@oxc-parser/binding-win32-arm64-msvc": "0.142.0", + "@oxc-parser/binding-win32-ia32-msvc": "0.142.0", + "@oxc-parser/binding-win32-x64-msvc": "0.142.0" + } + }, "node_modules/p-limit": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", @@ -12192,19 +11946,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/p-map": { - "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": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/p-try": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", @@ -12214,38 +11955,6 @@ "node": ">=6" } }, - "node_modules/pacote": { - "version": "21.5.1", - "resolved": "https://registry.npmjs.org/pacote/-/pacote-21.5.1.tgz", - "integrity": "sha512-KvcJ9iy3crysCsgqc4+PknH/w6jkrp8JN36mpZBPwNaDRwTfMZD37YzRazNstiZUOhuF5pno9f78n9mEJBavwg==", - "dev": true, - "license": "ISC", - "dependencies": { - "@gar/promise-retry": "^1.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": "^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", - "sigstore": "^4.0.0", - "ssri": "^13.0.0", - "tar": "^7.4.3" - }, - "bin": { - "pacote": "bin/index.js" - }, - "engines": { - "node": "^20.17.0 || >=22.9.0" - } - }, "node_modules/pako": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", @@ -12455,9 +12164,9 @@ "license": "ISC" }, "node_modules/picomatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", - "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.5.tgz", + "integrity": "sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A==", "dev": true, "license": "MIT", "engines": { @@ -12526,9 +12235,9 @@ "license": "MIT" }, "node_modules/postcss": { - "version": "8.5.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.18.tgz", - "integrity": "sha512-xdB1oSLHbz1vRWgCDalrCqEFTWzFlhqFC5tIHLMOSUIjhm3XXQ1qrFy8S/ESr1JYRRXqM3c1QFiMZUJdUTqyMQ==", + "version": "8.5.25", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.25.tgz", + "integrity": "sha512-DTPx3RWSSnWyzLxQnlH0rJP+EW5ekl16ZU4/psbIhA0e53kJfdgaN5vKM+xP7yJtXVu+nfdVFmlgFDEKAe4Pyw==", "dev": true, "funding": [ { @@ -12546,7 +12255,7 @@ ], "license": "MIT", "dependencies": { - "nanoid": "^3.3.12", + "nanoid": "^3.3.16", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" }, @@ -12628,13 +12337,13 @@ } }, "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==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-7.0.0.tgz", + "integrity": "sha512-FYgfaA69XZ93zaXLoMNQ+ViDXGGBgR8aLh03txzcFhV+9xOXx7+8DLCULrKKpR9+GsH9ZfHm82aSUPpozX0Ztg==", "dev": true, "license": "ISC", "engines": { - "node": "^20.17.0 || >=22.9.0" + "node": "^22.22.2 || ^24.15.0 || >=26.0.0" } }, "node_modules/process": { @@ -12728,9 +12437,9 @@ } }, "node_modules/prosemirror-model": { - "version": "1.25.10", - "resolved": "https://registry.npmjs.org/prosemirror-model/-/prosemirror-model-1.25.10.tgz", - "integrity": "sha512-9n6rH4DbJU1eH4SxLt6Y0HhJIo6cZsb7DJ/30uob1hOKPeO6TAaMWI2tc7kwR92BjfPOU2fFHWbZLovLi3XQfA==", + "version": "1.25.11", + "resolved": "https://registry.npmjs.org/prosemirror-model/-/prosemirror-model-1.25.11.tgz", + "integrity": "sha512-QWg9RhnpLlogAmp3p96uEFrE5txQpFynd4vhBAELkwgOCWQs/X0yCzB3/hrHqiPwf91RG5KyWq6553zs9JqIOQ==", "license": "MIT", "dependencies": { "orderedmap": "^2.0.0" @@ -12805,6 +12514,24 @@ "node": ">= 0.10" } }, + "node_modules/proxy-agent-negotiate": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-agent-negotiate/-/proxy-agent-negotiate-1.1.0.tgz", + "integrity": "sha512-N8IBcM3UgCVzz2L2Lqv8DVntDnnC8/hiV4nEDUPkqq72TPUgYWjQc+bdZlBPZK9LzPAvOY//gAt0S0DApoOXWQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 20" + }, + "peerDependencies": { + "kerberos": "^2.0.0" + }, + "peerDependenciesMeta": { + "kerberos": { + "optional": true + } + } + }, "node_modules/punycode": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", @@ -13236,49 +12963,48 @@ "node": "*" } }, - "node_modules/rollup": { - "version": "4.60.2", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.60.2.tgz", - "integrity": "sha512-J9qZyW++QK/09NyN/zeO0dG/1GdGfyp9lV8ajHnRVLfo/uFsbji5mHnDgn/qYdUHyCkM2N+8VyspgZclfAh0eQ==", + "node_modules/rolldown": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.2.0.tgz", + "integrity": "sha512-u7tgm5l4Yw1iTqUL4EcYOAt7fFvCgQMLeidrnD4GALlC6aOznCjezYajgxeyKw27u0Q5N7fwgCzjVyPIWzwuBA==", "dev": true, "license": "MIT", "dependencies": { - "@types/estree": "1.0.8" + "@oxc-project/types": "=0.140.0", + "@rolldown/pluginutils": "^1.0.0" }, "bin": { - "rollup": "dist/bin/rollup" + "rolldown": "bin/cli.mjs" }, "engines": { - "node": ">=18.0.0", - "npm": ">=8.0.0" + "node": "^20.19.0 || >=22.12.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.60.2", - "@rollup/rollup-android-arm64": "4.60.2", - "@rollup/rollup-darwin-arm64": "4.60.2", - "@rollup/rollup-darwin-x64": "4.60.2", - "@rollup/rollup-freebsd-arm64": "4.60.2", - "@rollup/rollup-freebsd-x64": "4.60.2", - "@rollup/rollup-linux-arm-gnueabihf": "4.60.2", - "@rollup/rollup-linux-arm-musleabihf": "4.60.2", - "@rollup/rollup-linux-arm64-gnu": "4.60.2", - "@rollup/rollup-linux-arm64-musl": "4.60.2", - "@rollup/rollup-linux-loong64-gnu": "4.60.2", - "@rollup/rollup-linux-loong64-musl": "4.60.2", - "@rollup/rollup-linux-ppc64-gnu": "4.60.2", - "@rollup/rollup-linux-ppc64-musl": "4.60.2", - "@rollup/rollup-linux-riscv64-gnu": "4.60.2", - "@rollup/rollup-linux-riscv64-musl": "4.60.2", - "@rollup/rollup-linux-s390x-gnu": "4.60.2", - "@rollup/rollup-linux-x64-gnu": "4.60.2", - "@rollup/rollup-linux-x64-musl": "4.60.2", - "@rollup/rollup-openbsd-x64": "4.60.2", - "@rollup/rollup-openharmony-arm64": "4.60.2", - "@rollup/rollup-win32-arm64-msvc": "4.60.2", - "@rollup/rollup-win32-ia32-msvc": "4.60.2", - "@rollup/rollup-win32-x64-gnu": "4.60.2", - "@rollup/rollup-win32-x64-msvc": "4.60.2", - "fsevents": "~2.3.2" + "@rolldown/binding-android-arm64": "1.2.0", + "@rolldown/binding-darwin-arm64": "1.2.0", + "@rolldown/binding-darwin-x64": "1.2.0", + "@rolldown/binding-freebsd-x64": "1.2.0", + "@rolldown/binding-linux-arm-gnueabihf": "1.2.0", + "@rolldown/binding-linux-arm64-gnu": "1.2.0", + "@rolldown/binding-linux-arm64-musl": "1.2.0", + "@rolldown/binding-linux-ppc64-gnu": "1.2.0", + "@rolldown/binding-linux-s390x-gnu": "1.2.0", + "@rolldown/binding-linux-x64-gnu": "1.2.0", + "@rolldown/binding-linux-x64-musl": "1.2.0", + "@rolldown/binding-openharmony-arm64": "1.2.0", + "@rolldown/binding-wasm32-wasi": "1.2.0", + "@rolldown/binding-win32-arm64-msvc": "1.2.0", + "@rolldown/binding-win32-x64-msvc": "1.2.0" + } + }, + "node_modules/rolldown/node_modules/@oxc-project/types": { + "version": "0.140.0", + "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.140.0.tgz", + "integrity": "sha512-h5LUOzGArYemnW1NMz/DuuQhBi96J6JL2Bk8zE4kvqxB5Sg3jxmCiH4uyOWHDkiKSt5vWlG4FIwCR/DbstcNRQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/Boshen" } }, "node_modules/rope-sequence": { @@ -13359,13 +13085,13 @@ "license": "MIT" }, "node_modules/sass": { - "version": "1.99.0", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.99.0.tgz", - "integrity": "sha512-kgW13M54DUB7IsIRM5LvJkNlpH+WhMpooUcaWGFARkF1Tc82v9mIWkCbCYf+MBvpIUBSeSOTilpZjEPr2VYE6Q==", + "version": "1.101.0", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.101.0.tgz", + "integrity": "sha512-OL3GoQyoUdDt843DpVmDO6y2k1sc5IhUDSpu8XucEI+35neq5QivZ1iuegnpraEVTJXlQGK1gl27zKcTLEPbQw==", "dev": true, "license": "MIT", "dependencies": { - "chokidar": "^4.0.0", + "chokidar": "^5.0.0", "immutable": "^5.1.5", "source-map-js": ">=0.6.2 <2.0.0" }, @@ -13373,42 +13099,12 @@ "sass": "sass.js" }, "engines": { - "node": ">=14.0.0" + "node": ">=20.19.0" }, "optionalDependencies": { "@parcel/watcher": "^2.4.1" } }, - "node_modules/sass/node_modules/chokidar": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", - "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", - "dev": true, - "license": "MIT", - "dependencies": { - "readdirp": "^4.0.1" - }, - "engines": { - "node": ">= 14.16.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/sass/node_modules/readdirp": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", - "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 14.18.0" - }, - "funding": { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - }, "node_modules/sax": { "version": "1.4.3", "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.3.tgz", @@ -13428,9 +13124,9 @@ } }, "node_modules/semver": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", - "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", + "version": "7.8.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.5.tgz", + "integrity": "sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==", "dev": true, "license": "ISC", "bin": { @@ -13675,24 +13371,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/sigstore": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/sigstore/-/sigstore-4.1.1.tgz", - "integrity": "sha512-endqECJkfhozrXMK5ngu/UAA0xVcVEFdnHJCElGaExypjW+HK5i6zu3NteLoaX/iFbRUbC3+DjttQs0GARr+5w==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@sigstore/bundle": "^4.0.0", - "@sigstore/core": "^3.2.1", - "@sigstore/protobuf-specs": "^0.5.0", - "@sigstore/sign": "^4.1.1", - "@sigstore/tuf": "^4.0.2", - "@sigstore/verify": "^3.1.1" - }, - "engines": { - "node": "^20.17.0 || >=22.9.0" - } - }, "node_modules/simple-swizzle": { "version": "0.2.4", "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.4.tgz", @@ -13732,17 +13410,6 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/smart-buffer": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", - "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 6.0.0", - "npm": ">= 3.0.0" - } - }, "node_modules/socket.io": { "version": "4.8.1", "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.8.1.tgz", @@ -13774,37 +13441,19 @@ } }, "node_modules/socket.io-parser": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.4.tgz", - "integrity": "sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==", + "version": "4.2.7", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.7.tgz", + "integrity": "sha512-IH/iSeO9T6gz1KkFleGDWkG9N3dl4jXVYUtMhIqH10Md0ttMer8nUNWiP1DKuNrybD2xBrixLJdCC9J6ECoYkg==", "dev": true, "license": "MIT", "dependencies": { "@socket.io/component-emitter": "~3.1.0", - "debug": "~4.3.1" + "debug": "~4.4.1" }, "engines": { "node": ">=10.0.0" } }, - "node_modules/socket.io-parser/node_modules/debug": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", - "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, "node_modules/socket.io/node_modules/debug": { "version": "4.3.7", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", @@ -13823,36 +13472,6 @@ } } }, - "node_modules/socks": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.9.tgz", - "integrity": "sha512-LJhUYUvItdQ0LkJTmPeaEObWXAqFyfmP85x0tch/ez9cahmhlBBLbIqDFnvBnUJGagb0JbIQrkBs1wJ+yRYpEw==", - "dev": true, - "license": "MIT", - "dependencies": { - "ip-address": "^10.1.1", - "smart-buffer": "^4.2.0" - }, - "engines": { - "node": ">= 10.0.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/socks-proxy-agent": { - "version": "8.0.5", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.5.tgz", - "integrity": "sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw==", - "dev": true, - "license": "MIT", - "dependencies": { - "agent-base": "^7.1.2", - "debug": "^4.3.4", - "socks": "^2.8.3" - }, - "engines": { - "node": ">= 14" - } - }, "node_modules/source-map": { "version": "0.7.6", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.6.tgz", @@ -13894,44 +13513,6 @@ "node": ">=0.10.0" } }, - "node_modules/spdx-exceptions": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", - "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", - "dev": true, - "license": "CC-BY-3.0" - }, - "node_modules/spdx-expression-parse": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-4.0.0.tgz", - "integrity": "sha512-Clya5JIij/7C6bRR22+tnGXbc4VKlibKSVj2iHvVeX5iMW7s1SIQlqu699JkODJJIhh/pUu8L0/VLh8xflD+LQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-license-ids": { - "version": "3.0.23", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.23.tgz", - "integrity": "sha512-CWLcCCH7VLu13TgOH+r8p1O/Znwhqv/dbb6lqWy67G+pT1kHmeD/+V36AVb/vq8QMIQwVShJ6Ssl5FPh0fuSdw==", - "dev": true, - "license": "CC0-1.0" - }, - "node_modules/ssri": { - "version": "13.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-13.0.1.tgz", - "integrity": "sha512-QUiRf1+u9wPTL/76GTYlKttDEBWV1ga9ZXW8BG6kfdeyyM8LGPix9gROyg9V2+P0xNyF3X2Go526xKFdMZrHSQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "minipass": "^7.0.3" - }, - "engines": { - "node": "^20.17.0 || >=22.9.0" - } - }, "node_modules/statuses": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", @@ -14064,23 +13645,6 @@ "url": "https://opencollective.com/synckit" } }, - "node_modules/tar": { - "version": "7.5.20", - "resolved": "https://registry.npmjs.org/tar/-/tar-7.5.20.tgz", - "integrity": "sha512-9FcyK4PA6+WbzlTM9WhQm6vB5W7cP7dUiPsv1g7YDwEQnQ1CGpK3MGlKk/ITVWMk05kHZuBhmVhiv8LZoy/PFQ==", - "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" - }, - "engines": { - "node": ">=18" - } - }, "node_modules/tar-stream": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", @@ -14097,16 +13661,6 @@ "node": ">=6" } }, - "node_modules/tar/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_modules/tiny-inflate": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/tiny-inflate/-/tiny-inflate-1.0.3.tgz", @@ -14120,9 +13674,9 @@ "license": "MIT" }, "node_modules/tinyglobby": { - "version": "0.2.16", - "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.16.tgz", - "integrity": "sha512-pn99VhoACYR8nFHhxqix+uvsbXineAasWm5ojXoN8xEwK5Kd3/TrhNn1wByuD52UxWRLy8pu+kRMniEi6Eq9Zg==", + "version": "0.2.17", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.17.tgz", + "integrity": "sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==", "dev": true, "license": "MIT", "dependencies": { @@ -14273,23 +13827,8 @@ "node_modules/tslib": { "version": "2.8.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD" - }, - "node_modules/tuf-js": { - "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": "4.1.0", - "debug": "^4.4.3", - "make-fetch-happen": "^15.0.1" - }, - "engines": { - "node": "^20.17.0 || >=22.9.0" - } + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" }, "node_modules/type-check": { "version": "0.4.0", @@ -14333,16 +13872,16 @@ } }, "node_modules/typescript-eslint": { - "version": "8.65.0", - "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.65.0.tgz", - "integrity": "sha512-/ggrHAwyjENDusvyxbuqxAC2dTnZg/Z8F+fgQtYIz+L6n/9HfSlEZcFGV/NsMNa6CkGk0xUjUAFwC0vHOflvIA==", + "version": "8.66.0", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.66.0.tgz", + "integrity": "sha512-QlEbBPz/RuJ1XUHj29nm3t0F/O/cSlEnntozqPOYHnnTGAXFamnMBu5i9Vn6vhUPHGAjR+Vl+5J8vPN/BMUrJw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/eslint-plugin": "8.65.0", - "@typescript-eslint/parser": "8.65.0", - "@typescript-eslint/typescript-estree": "8.65.0", - "@typescript-eslint/utils": "8.65.0" + "@typescript-eslint/eslint-plugin": "8.66.0", + "@typescript-eslint/parser": "8.66.0", + "@typescript-eslint/typescript-estree": "8.66.0", + "@typescript-eslint/utils": "8.66.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -14568,13 +14107,13 @@ "license": "MIT" }, "node_modules/validate-npm-package-name": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-7.0.2.tgz", - "integrity": "sha512-hVDIBwsRruT73PbK7uP5ebUt+ezEtCmzZz3F59BSr2F6OVFnJ/6h8liuvdLrQ88Xmnk6/+xGGuq+pG9WwTuy3A==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-8.0.0.tgz", + "integrity": "sha512-SCv6OOV6Xj2/3cXy3dGmADluJTNcL3o7hZAglNPTe+WYuEuvxgJzxPrSDLZhF+CwyQOubqgecjMmTJGMVLWjYQ==", "dev": true, "license": "ISC", "engines": { - "node": "^20.17.0 || >=22.9.0" + "node": "^22.22.2 || ^24.15.0 || >=26.0.0" } }, "node_modules/vary": { @@ -14588,9 +14127,9 @@ } }, "node_modules/video.js": { - "version": "8.23.9", - "resolved": "https://registry.npmjs.org/video.js/-/video.js-8.23.9.tgz", - "integrity": "sha512-3UCqyFW4wIusQu4TuhgRUxqtbzbj0WPT9hps0XIEXST43QBD11zb+bG7tBPrinrZztwVYdXCiOBo2pcGj9L05w==", + "version": "8.24.0", + "resolved": "https://registry.npmjs.org/video.js/-/video.js-8.24.0.tgz", + "integrity": "sha512-ZUuxTlDRkEWhpp2mvGCSFzI0Tc3zcC6IUZbIhBcZ3QW0Ms+IRp/tzYkhqexcMYwrcukRFiWWJmRANsLKvv8Vsg==", "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.28.4", @@ -14639,18 +14178,17 @@ } }, "node_modules/vite": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/vite/-/vite-7.3.5.tgz", - "integrity": "sha512-KuOaNhcnGFN2zIPGA7wRmzF+lJA1sea7rHq17aiJ++9lzY1WWG6Jpwqwe1KNbRVPIqHmr8GLYx7jbrQcN/7/ww==", + "version": "8.1.5", + "resolved": "https://registry.npmjs.org/vite/-/vite-8.1.5.tgz", + "integrity": "sha512-7ULLwsCdYx/nRyrpiEwvqb5TFHrMVZyBt+rg/OAXT7rgj/z+DtTDyKFeLAdDkubDVDKD8jOsndmy7m55XcfUsw==", "dev": true, "license": "MIT", "dependencies": { - "esbuild": "^0.27.0", - "fdir": "^6.5.0", - "picomatch": "^4.0.3", - "postcss": "^8.5.6", - "rollup": "^4.43.0", - "tinyglobby": "^0.2.15" + "lightningcss": "^1.32.0", + "picomatch": "^4.0.5", + "postcss": "^8.5.17", + "rolldown": "~1.1.5", + "tinyglobby": "^0.2.17" }, "bin": { "vite": "bin/vite.js" @@ -14666,9 +14204,10 @@ }, "peerDependencies": { "@types/node": "^20.19.0 || >=22.12.0", + "@vitejs/devtools": "^0.3.0", + "esbuild": "^0.27.0 || ^0.28.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", @@ -14681,13 +14220,16 @@ "@types/node": { "optional": true }, - "jiti": { + "@vitejs/devtools": { "optional": true }, - "less": { + "esbuild": { + "optional": true + }, + "jiti": { "optional": true }, - "lightningcss": { + "less": { "optional": true }, "sass": { @@ -14713,6 +14255,348 @@ } } }, + "node_modules/vite/node_modules/@emnapi/core": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.11.1.tgz", + "integrity": "sha512-RSvbQmHzdKzNsLYa/wHrbc3KN4sYLKAdPZxqiM2HATqv/SBk2/ENSHpvXGaLOMcsAyz0poEGqkmmKYG3OWiJEQ==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/wasi-threads": "1.2.2", + "tslib": "^2.4.0" + } + }, + "node_modules/vite/node_modules/@emnapi/runtime": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.11.1.tgz", + "integrity": "sha512-vgj7R3y3Wgx24IQaGPA/R6YFXLHVMOZ0uVEyIQPaWs+rd1AzfEMXlAC22FYwO1XkKR6NPsq7mUandH8oIRdZFw==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/vite/node_modules/@oxc-project/types": { + "version": "0.139.0", + "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.139.0.tgz", + "integrity": "sha512-r9gHphtCs+1M7J0pw6Sn/hh/Wpa/iQrOOkrNAlVLF/gHq+/CJmHIWKKUUhdWjcD6CIa8idarspCsASiXCXvFUw==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/Boshen" + } + }, + "node_modules/vite/node_modules/@rolldown/binding-android-arm64": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.1.5.tgz", + "integrity": "sha512-lZg8fqIv2v7FF237bwMgzGZEJvGL79/s5knJ/i6FmsGF4XXlzccZ4jb+TrFIxtSSxFtIpdsgrPZeMk1I9AFcyQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/vite/node_modules/@rolldown/binding-darwin-arm64": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.1.5.tgz", + "integrity": "sha512-51Bnx9pNiMRKSUNtBfySkNJ9vMU9Hh3I1ozDd6gyPPYzaXCfnptUcEZxXGYFn+ul2dtcMUiqGR1Yai2K10uoTw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/vite/node_modules/@rolldown/binding-darwin-x64": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.1.5.tgz", + "integrity": "sha512-Tm+gbfC0aHu1tBA/JvKQh32S0K6YgCHkiAF4/W6xX0K0RmNuc94VeK419dJoE65R5aRxmo+noZQSWrAMF6yb6g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/vite/node_modules/@rolldown/binding-freebsd-x64": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.1.5.tgz", + "integrity": "sha512-JMzDKCCXq93YccG5gz3hvOs1oXRKAf0XYpfOS88e+wZrC8Iugj6j68867vrYZkvpDDpKn/KoKORThmchMpF6TA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/vite/node_modules/@rolldown/binding-linux-arm-gnueabihf": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.1.5.tgz", + "integrity": "sha512-uML21j2K5TfPGutKxub+M+nLjZIrWjXQ5Grx4lCe/nimTj9B4L63zHpjXLl4y0L3mcm2htEQIb06oCG/szerNw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/vite/node_modules/@rolldown/binding-linux-arm64-gnu": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.1.5.tgz", + "integrity": "sha512-navSiuTMogvnQoZoM/v+l3ZWo50/NTwSHSzheABx/RCnmUPaKwq9qSo4Br2OYRs21+Fz8uFqITZM3H4opOB0/Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/vite/node_modules/@rolldown/binding-linux-arm64-musl": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.1.5.tgz", + "integrity": "sha512-lAryqH7IteztmCXQXk0etKj4wBQ7Gx5S6LjKhsgp9zb8I5bsuvU/2llH1hDQcjsFeqIsovMVN339/8pUDDBXxA==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/vite/node_modules/@rolldown/binding-linux-ppc64-gnu": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.1.5.tgz", + "integrity": "sha512-fsK/sNBnxzBlL4O1JNrZakVQxPspqpED5dLtNsZS9oOKmtSpdNIzxH2kkol5HYTWJN47sE20ztMJPxfZ89qGOg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/vite/node_modules/@rolldown/binding-linux-s390x-gnu": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.1.5.tgz", + "integrity": "sha512-gLYb4BIadlfTOYT5gO503n8zQjXflgzpD0FcyKh0Mzx3rqCZKnHoJWV9xe1KXUJ5lx2JfcSHr/mhzS0PC/McAA==", + "cpu": [ + "s390x" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/vite/node_modules/@rolldown/binding-linux-x64-gnu": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.1.5.tgz", + "integrity": "sha512-FjcpEKUyJygHgs1o50VYNvkt5+7Le/VEdYt0AkRpkL33MnyQfwr8l5mXwMmfmTbyMPr5vJLC+8/Gd9gXnwU1QQ==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/vite/node_modules/@rolldown/binding-linux-x64-musl": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.1.5.tgz", + "integrity": "sha512-Me+PfPI2TMeOQk0gYWfLQZtTktrmzbr8cDboqX83XKc7UrgAi55gF+2dUkWdxd19n55Essp2yeca+O9N5rBxHg==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/vite/node_modules/@rolldown/binding-openharmony-arm64": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.1.5.tgz", + "integrity": "sha512-yc5WrLzXks6zCQfn9Oxr8pORKyl/pF+QjHmW/Qx3qu0oyrrNC+y2JLTU1E2rcWYAmzlnqngWXHQjy51VzW70Vw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/vite/node_modules/@rolldown/binding-wasm32-wasi": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.1.5.tgz", + "integrity": "sha512-VbQGPX2b4r48TAMIM2cjgluIM1HYutm4pcTEJsle7iEP7sB1dFqtPLBVbdLAZCxy1txCcPxf4QFf4v8uvltPqA==", + "cpu": [ + "wasm32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/core": "1.11.1", + "@emnapi/runtime": "1.11.1", + "@napi-rs/wasm-runtime": "^1.1.6" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/vite/node_modules/@rolldown/binding-win32-arm64-msvc": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.1.5.tgz", + "integrity": "sha512-gHv82k63z4qpV5+Q1y/12KrK0ltWBukVDI8nZcbT7Tt/ZlOIVwppazneq0F93oDxTo3IgAMEDIoQh3E2n6mVsw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/vite/node_modules/@rolldown/binding-win32-x64-msvc": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.1.5.tgz", + "integrity": "sha512-tTZuDBPw85tEN5PQi1pnEBzDy0Z49HtScLAbD5t6hyeU92A95pRWaSMw1GZZi/RwgSgUIl0xrSlXIT/9QzvYSA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/vite/node_modules/rolldown": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.1.5.tgz", + "integrity": "sha512-t9z29cJjXf/vxQ8dyhCSpt6H6aSwHTk8cT5I3iy6SMXuFpk5mB6PL6XfC8PCwrPTx93udwKUm9HRteAlTGBLiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@oxc-project/types": "=0.139.0", + "@rolldown/pluginutils": "^1.0.0" + }, + "bin": { + "rolldown": "bin/cli.mjs" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "optionalDependencies": { + "@rolldown/binding-android-arm64": "1.1.5", + "@rolldown/binding-darwin-arm64": "1.1.5", + "@rolldown/binding-darwin-x64": "1.1.5", + "@rolldown/binding-freebsd-x64": "1.1.5", + "@rolldown/binding-linux-arm-gnueabihf": "1.1.5", + "@rolldown/binding-linux-arm64-gnu": "1.1.5", + "@rolldown/binding-linux-arm64-musl": "1.1.5", + "@rolldown/binding-linux-ppc64-gnu": "1.1.5", + "@rolldown/binding-linux-s390x-gnu": "1.1.5", + "@rolldown/binding-linux-x64-gnu": "1.1.5", + "@rolldown/binding-linux-x64-musl": "1.1.5", + "@rolldown/binding-openharmony-arm64": "1.1.5", + "@rolldown/binding-wasm32-wasi": "1.1.5", + "@rolldown/binding-win32-arm64-msvc": "1.1.5", + "@rolldown/binding-win32-x64-msvc": "1.1.5" + } + }, "node_modules/void-elements": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz", @@ -14730,13 +14614,12 @@ "license": "MIT" }, "node_modules/watchpack": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.5.1.tgz", - "integrity": "sha512-Zn5uXdcFNIA1+1Ei5McRd+iRzfhENPCe7LeABkJtNulSxjma+l7ltNx55BWZkRlwRnpOgHqxnjyaDgJnNXnqzg==", + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.5.2.tgz", + "integrity": "sha512-6i/00NBjP4yGPs+caKSyRfpTF/8Torsu0MOW3mMzIbhgISFder8i7xbqgHlLMwJrdiN8ndBV3UA1/AfzPSr+jg==", "dev": true, "license": "MIT", "dependencies": { - "glob-to-regexp": "^0.4.1", "graceful-fs": "^4.1.2" }, "engines": { @@ -14980,9 +14863,9 @@ } }, "node_modules/yoctocolors": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yoctocolors/-/yoctocolors-2.1.2.tgz", - "integrity": "sha512-CzhO+pFNo8ajLM2d2IW/R93ipy99LWjtwblvC1RsoSUMZgyLbYFr221TnSNT7GjGdYui6P459mw9JH/g/zW2ug==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/yoctocolors/-/yoctocolors-2.2.0.tgz", + "integrity": "sha512-xYqdZFUK/VYazNl/oCDYN+3WloWQwMfZxBoiNt6qNyk+xfOdi598muWE42rNZFp1kNOiqW936q5RhUdnpqElSg==", "dev": true, "license": "MIT", "engines": { @@ -15071,9 +14954,9 @@ } }, "node_modules/zod": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/zod/-/zod-4.4.2.tgz", - "integrity": "sha512-IynmDyxsEsb9RKzO3J9+4SxXnl2FTFSzNBaKKaMV6tsSk0rw9gYw9gs+JFCq/qk2LCZ78KDwyj+Z289TijSkUw==", + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/zod/-/zod-4.4.3.tgz", + "integrity": "sha512-ytENFjIJFl2UwYglde2jchW2Hwm4GJFLDiSXWdTrJQBIN9Fcyp7n4DhxJEiWNAJMV1/BqWfW/kkg71UDcHJyTQ==", "license": "MIT", "funding": { "url": "https://github.com/sponsors/colinhacks" diff --git a/client/package.json b/client/package.json index b8b27558f7f..d264674c54c 100644 --- a/client/package.json +++ b/client/package.json @@ -32,20 +32,19 @@ "get-available-languages": "npm run ts -- cli/get-available-languages.ts" }, "dependencies": { - "@angular/animations": "^22.0.7", - "@angular/cdk": "^22.0.5", - "@angular/common": "^22.0.7", - "@angular/compiler": "^22.0.7", - "@angular/core": "^22.0.7", - "@angular/forms": "^22.0.7", - "@angular/material": "^22.0.5", - "@angular/material-date-fns-adapter": "^22.0.5", - "@angular/platform-browser": "^22.0.7", - "@angular/platform-browser-dynamic": "^22.0.7", - "@angular/router": "^22.0.7", - "@angular/service-worker": "^22.0.7", - "@cantoo/pdf-lib": "^2.7.4", - "@coreui/angular-chartjs": "~5.7.6", + "@angular/cdk": "^22.1.1", + "@angular/common": "^22.1.1", + "@angular/compiler": "^22.1.1", + "@angular/core": "^22.1.1", + "@angular/forms": "^22.1.1", + "@angular/material": "^22.1.1", + "@angular/material-date-fns-adapter": "^22.1.1", + "@angular/platform-browser": "^22.1.1", + "@angular/platform-browser-dynamic": "^22.1.1", + "@angular/router": "^22.1.1", + "@angular/service-worker": "^22.1.1", + "@cantoo/pdf-lib": "^2.8.1", + "@coreui/angular-chartjs": "~5.7.15", "@coreui/chartjs": "^4.1.0", "@date-fns/tz": "^1.5.0", "@intevation/tiptap-extension-office-paste": "^0.1.2", @@ -54,21 +53,21 @@ "@ngx-translate/core": "^17.0.0", "@ngx-translate/http-loader": "^17.0.0", "@openslides/motion-diff": "file:../packages/openslides-motion-diff", - "@tiptap/core": "^3.28.0", + "@tiptap/core": "^3.29.2", "@tiptap/extension-blockquote": "^3.27.4", - "@tiptap/extension-color": "^3.28.0", - "@tiptap/extension-highlight": "^3.28.0", - "@tiptap/extension-image": "^3.28.0", + "@tiptap/extension-color": "^3.29.2", + "@tiptap/extension-highlight": "^3.29.2", + "@tiptap/extension-image": "^3.29.2", "@tiptap/extension-link": "^3.23.4", "@tiptap/extension-list": "^3.22.4", - "@tiptap/extension-subscript": "^3.28.0", - "@tiptap/extension-superscript": "^3.28.0", - "@tiptap/extension-table": "^3.28.0", - "@tiptap/extension-text-align": "^3.28.0", + "@tiptap/extension-subscript": "^3.29.2", + "@tiptap/extension-superscript": "^3.29.2", + "@tiptap/extension-table": "^3.29.2", + "@tiptap/extension-text-align": "^3.29.2", "@tiptap/extension-text-style": "^3.4.2", "@tiptap/extensions": "^3.22.4", - "@tiptap/pm": "^3.28.0", - "@tiptap/starter-kit": "^3.28.0", + "@tiptap/pm": "^3.29.2", + "@tiptap/starter-kit": "^3.29.2", "@tsparticles/angular": "^3.0.0", "@tsparticles/engine": "^3.9.1", "@tsparticles/plugin-emitters": "^3.9.1", @@ -76,8 +75,8 @@ "@tsparticles/slim": "^3.9.1", "big.js": "^7.0.1", "chart.js": "^4.5.1", - "cm-chess": "^3.6.3", - "cm-chessboard": "^8.12.14", + "cm-chess": "^4.0.0", + "cm-chessboard": "^8.12.19", "date-fns": "^4.4.0", "exceljs": "^4.4.0", "file-saver": "^2.0.5", @@ -95,7 +94,7 @@ "qrcode": "^1.5.4", "rxjs": "^7.8.2", "tinycolor2": "1.6.0", - "video.js": "^8.23.9", + "video.js": "^8.24.0", "zone.js": "^0.16.2" }, "devDependencies": { @@ -104,10 +103,10 @@ "@angular-eslint/eslint-plugin-template": "^22.1.0", "@angular-eslint/schematics": "^22.1.0", "@angular-eslint/template-parser": "^22.1.0", - "@angular/build": "^22.0.7", - "@angular/cli": "^22.0.7", - "@angular/compiler-cli": "^22.0.7", - "@angular/language-server": "^22.0.7", + "@angular/build": "^22.1.3", + "@angular/cli": "^22.1.3", + "@angular/compiler-cli": "^22.1.1", + "@angular/language-server": "^22.1.1", "@stylistic/eslint-plugin": "^5.10.0", "@types/big.js": "^7.0.0", "@types/file-saver": "^2.0.7", @@ -118,8 +117,8 @@ "@types/qrcode": "^1.5.6", "@types/tinycolor2": "^1.4.6", "@types/video.js": "^7.3.58", - "@typescript-eslint/eslint-plugin": "^8.65.0", - "@typescript-eslint/parser": "^8.65.0", + "@typescript-eslint/eslint-plugin": "^8.66.0", + "@typescript-eslint/parser": "^8.66.0", "@vendure/ngx-translate-extract": "^10.2.0", "angular-eslint": "^22.1.0", "eslint": "^9.39.5", @@ -130,7 +129,7 @@ "fetch-mock": "^12.6.0", "istanbul-lib-instrument": "^6.0.3", "jasmine-core": "^5.13.0", - "js-yaml": "^5.2.1", + "js-yaml": "^5.2.3", "karma": "~6.4.4", "karma-chrome-launcher": "~3.2.0", "karma-coverage": "~2.2.1", @@ -142,7 +141,7 @@ "ts-node": "^10.9.2", "tsconfig-paths": "^4.2.0", "typescript": "^6.0.3", - "typescript-eslint": "^8.65.0" + "typescript-eslint": "^8.66.0" }, "browser": { "fs": false diff --git a/client/src/app/domain/definitions/meeting-settings-defaults.ts b/client/src/app/domain/definitions/meeting-settings-defaults.ts index bcea5bb4d5a..359dd6512b1 100644 --- a/client/src/app/domain/definitions/meeting-settings-defaults.ts +++ b/client/src/app/domain/definitions/meeting-settings-defaults.ts @@ -56,10 +56,12 @@ export const meetingSettingsDefaults: Record = { motions_enable_origin_motion_display: false, motions_origin_motion_toggle_default: false, assignment_poll_add_candidates_to_list_of_speakers: false, + poll_enable_max_yes_votes: false, poll_enable_max_votes_per_option: false, poll_default_live_voting_enabled: false, poll_default_allow_invalid: false, poll_default_allow_vote_split: false, + poll_default_required_majority: 'no_majority', poll_projection_name_order_first: 'last_name', poll_projection_max_columns: 6, topic_poll_default_method: 'selection', diff --git a/client/src/app/domain/models/assignments/assignment.ts b/client/src/app/domain/models/assignments/assignment.ts index 8831b2cdada..d6a4298f8f0 100644 --- a/client/src/app/domain/models/assignments/assignment.ts +++ b/client/src/app/domain/models/assignments/assignment.ts @@ -1,11 +1,11 @@ import { Id } from '../../definitions/key-types'; -import { HasSequentialNumber } from '../../interfaces'; import { HasAgendaItemId } from '../../interfaces/has-agenda-item-id'; import { HasAttachmentMeetingMediafileIds } from '../../interfaces/has-attachment-ids'; import { HasListOfSpeakersId } from '../../interfaces/has-list-of-speakers-id'; import { HasMeetingId } from '../../interfaces/has-meeting-id'; import { HasPollIds } from '../../interfaces/has-poll-ids'; import { HasProjectionIds } from '../../interfaces/has-projectable-ids'; +import { HasSequentialNumber } from '../../interfaces/has-sequential-number'; import { HasTagIds } from '../../interfaces/has-tag-ids'; import { BaseModel } from '../base/base-model'; import { AssignmentPhase } from './assignment-phase'; diff --git a/client/src/app/domain/models/list-of-speakers/list-of-speakers.ts b/client/src/app/domain/models/list-of-speakers/list-of-speakers.ts index e38dd78cec0..c3af2f798bc 100644 --- a/client/src/app/domain/models/list-of-speakers/list-of-speakers.ts +++ b/client/src/app/domain/models/list-of-speakers/list-of-speakers.ts @@ -1,7 +1,7 @@ import { Fqid, Id } from '../../definitions/key-types'; -import { HasSequentialNumber } from '../../interfaces'; import { HasMeetingId } from '../../interfaces/has-meeting-id'; import { HasProjectionIds } from '../../interfaces/has-projectable-ids'; +import { HasSequentialNumber } from '../../interfaces/has-sequential-number'; import { BaseModel } from '../base/base-model'; /** diff --git a/client/src/app/domain/models/meeting-mediafile/meeting-mediafile.ts b/client/src/app/domain/models/meeting-mediafile/meeting-mediafile.ts index b3819d3fa31..4a027969b69 100644 --- a/client/src/app/domain/models/meeting-mediafile/meeting-mediafile.ts +++ b/client/src/app/domain/models/meeting-mediafile/meeting-mediafile.ts @@ -1,6 +1,6 @@ import { Fqid, Id } from '../../definitions/key-types'; -import { HasMeetingId } from '../../interfaces'; import { HasListOfSpeakersId } from '../../interfaces/has-list-of-speakers-id'; +import { HasMeetingId } from '../../interfaces/has-meeting-id'; import { HasProjectionIds } from '../../interfaces/has-projectable-ids'; import { HasProperties } from '../../interfaces/has-properties'; import { BaseModel } from '../base/base-model'; diff --git a/client/src/app/domain/models/meetings/meeting-poll-default.ts b/client/src/app/domain/models/meetings/meeting-poll-default.ts index 7344f1ee6bd..e31b4bc2aef 100644 --- a/client/src/app/domain/models/meetings/meeting-poll-default.ts +++ b/client/src/app/domain/models/meetings/meeting-poll-default.ts @@ -1,7 +1,7 @@ -import { HasMeetingId } from '../../interfaces'; +import { HasMeetingId } from '../../interfaces/has-meeting-id'; import { BaseModel } from '../base/base-model'; -import { PollVisibility } from '../poll'; import { BaseOnehundredPercentBase } from '../poll/poll-config-types'; +import { PollVisibility } from '../poll/poll-constants'; export class MeetingPollDefault extends BaseModel { public static COLLECTION = `meeting_poll_default`; diff --git a/client/src/app/domain/models/motions/motion-block.ts b/client/src/app/domain/models/motions/motion-block.ts index c4224f5620d..7da8119dd1a 100644 --- a/client/src/app/domain/models/motions/motion-block.ts +++ b/client/src/app/domain/models/motions/motion-block.ts @@ -1,9 +1,9 @@ import { Id } from '../../definitions/key-types'; -import { HasSequentialNumber } from '../../interfaces'; import { HasAgendaItemId } from '../../interfaces/has-agenda-item-id'; import { HasListOfSpeakersId } from '../../interfaces/has-list-of-speakers-id'; import { HasMeetingId } from '../../interfaces/has-meeting-id'; import { HasProjectionIds } from '../../interfaces/has-projectable-ids'; +import { HasSequentialNumber } from '../../interfaces/has-sequential-number'; import { BaseModel } from '../base/base-model'; /** diff --git a/client/src/app/domain/models/motions/motion-category.ts b/client/src/app/domain/models/motions/motion-category.ts index 42b3d318b39..94dfb06a071 100644 --- a/client/src/app/domain/models/motions/motion-category.ts +++ b/client/src/app/domain/models/motions/motion-category.ts @@ -1,5 +1,6 @@ import { Id } from '../../definitions/key-types'; -import { HasMeetingId, HasSequentialNumber } from '../../interfaces'; +import { HasMeetingId } from '../../interfaces/has-meeting-id'; +import { HasSequentialNumber } from '../../interfaces/has-sequential-number'; import { BaseModel } from '../base/base-model'; /** diff --git a/client/src/app/domain/models/motions/motion-workflow.ts b/client/src/app/domain/models/motions/motion-workflow.ts index 1dc83b8d21b..1f58c528f39 100644 --- a/client/src/app/domain/models/motions/motion-workflow.ts +++ b/client/src/app/domain/models/motions/motion-workflow.ts @@ -1,6 +1,6 @@ import { Id } from '../../definitions/key-types'; -import { HasSequentialNumber } from '../../interfaces'; import { HasMeetingId } from '../../interfaces/has-meeting-id'; +import { HasSequentialNumber } from '../../interfaces/has-sequential-number'; import { BaseModel } from '../base/base-model'; /** diff --git a/client/src/app/domain/models/point-of-order-category/point-of-order-category.ts b/client/src/app/domain/models/point-of-order-category/point-of-order-category.ts index 1d3b1e93b9d..184effef399 100644 --- a/client/src/app/domain/models/point-of-order-category/point-of-order-category.ts +++ b/client/src/app/domain/models/point-of-order-category/point-of-order-category.ts @@ -1,5 +1,5 @@ import { Id } from '../../definitions/key-types'; -import { HasMeetingId } from '../../interfaces'; +import { HasMeetingId } from '../../interfaces/has-meeting-id'; import { BaseModel } from '../base/base-model'; /** diff --git a/client/src/app/domain/models/poll/poll-ballot.ts b/client/src/app/domain/models/poll/poll-ballot.ts index 19118c5b5a7..bf479737da0 100644 --- a/client/src/app/domain/models/poll/poll-ballot.ts +++ b/client/src/app/domain/models/poll/poll-ballot.ts @@ -1,5 +1,5 @@ import { Id } from '../../definitions/key-types'; -import { HasMeetingId } from '../../interfaces'; +import { HasMeetingId } from '../../interfaces/has-meeting-id'; import { BaseModel } from '../base/base-model'; import { VoteValue, VoteValueVerbose } from './vote-constants'; diff --git a/client/src/app/domain/models/poll/poll-config-approval.ts b/client/src/app/domain/models/poll/poll-config-approval.ts index d2b9a475c80..9a4d634a004 100644 --- a/client/src/app/domain/models/poll/poll-config-approval.ts +++ b/client/src/app/domain/models/poll/poll-config-approval.ts @@ -1,4 +1,4 @@ -import { HasMeetingId } from '../../interfaces'; +import { HasMeetingId } from '../../interfaces/has-meeting-id'; import { BasePollConfigModel } from './base-poll-config'; import { BaseOnehundredPercentBase } from './poll-config-types'; diff --git a/client/src/app/domain/models/poll/poll-config-rating-approval.ts b/client/src/app/domain/models/poll/poll-config-rating-approval.ts index b580817f06e..290822b1fb5 100644 --- a/client/src/app/domain/models/poll/poll-config-rating-approval.ts +++ b/client/src/app/domain/models/poll/poll-config-rating-approval.ts @@ -1,4 +1,4 @@ -import { HasMeetingId } from '../../interfaces'; +import { HasMeetingId } from '../../interfaces/has-meeting-id'; import { BasePollConfigModel } from './base-poll-config'; import { BaseOnehundredPercentBase } from './poll-config-types'; diff --git a/client/src/app/domain/models/poll/poll-config-rating-score.ts b/client/src/app/domain/models/poll/poll-config-rating-score.ts index f66b5f58fe0..a2ba38ba69d 100644 --- a/client/src/app/domain/models/poll/poll-config-rating-score.ts +++ b/client/src/app/domain/models/poll/poll-config-rating-score.ts @@ -1,4 +1,4 @@ -import { HasMeetingId } from '../../interfaces'; +import { HasMeetingId } from '../../interfaces/has-meeting-id'; import { BasePollConfigModel } from './base-poll-config'; import { BaseOnehundredPercentBase } from './poll-config-types'; diff --git a/client/src/app/domain/models/poll/poll-config-selection.ts b/client/src/app/domain/models/poll/poll-config-selection.ts index 86ab5b971c4..95e6e7b6874 100644 --- a/client/src/app/domain/models/poll/poll-config-selection.ts +++ b/client/src/app/domain/models/poll/poll-config-selection.ts @@ -1,4 +1,4 @@ -import { HasMeetingId } from '../../interfaces'; +import { HasMeetingId } from '../../interfaces/has-meeting-id'; import { BasePollConfigModel } from './base-poll-config'; import { BaseOnehundredPercentBase } from './poll-config-types'; diff --git a/client/src/app/domain/models/poll/poll-config-stv-scottish.ts b/client/src/app/domain/models/poll/poll-config-stv-scottish.ts index d8177b66414..9ec7cb6cb58 100644 --- a/client/src/app/domain/models/poll/poll-config-stv-scottish.ts +++ b/client/src/app/domain/models/poll/poll-config-stv-scottish.ts @@ -1,4 +1,4 @@ -import { HasMeetingId } from '../../interfaces'; +import { HasMeetingId } from '../../interfaces/has-meeting-id'; import { BasePollConfigModel } from './base-poll-config'; export class PollConfigStvScottish extends BasePollConfigModel { diff --git a/client/src/app/domain/models/poll/poll-option.ts b/client/src/app/domain/models/poll/poll-option.ts index 8541ed45a5d..4d5fa30a850 100644 --- a/client/src/app/domain/models/poll/poll-option.ts +++ b/client/src/app/domain/models/poll/poll-option.ts @@ -1,5 +1,5 @@ import { Id } from '../../definitions/key-types'; -import { HasMeetingId } from '../../interfaces'; +import { HasMeetingId } from '../../interfaces/has-meeting-id'; import { BaseModel } from '../base/base-model'; export class PollOption extends BaseModel { diff --git a/client/src/app/domain/models/projector/projector.ts b/client/src/app/domain/models/projector/projector.ts index 5d3776e787d..3dd8d0808ee 100644 --- a/client/src/app/domain/models/projector/projector.ts +++ b/client/src/app/domain/models/projector/projector.ts @@ -1,7 +1,7 @@ import { Id } from '../../definitions/key-types'; -import { HasSequentialNumber } from '../../interfaces'; import { HasMeetingId } from '../../interfaces/has-meeting-id'; import { HasProperties } from '../../interfaces/has-properties'; +import { HasSequentialNumber } from '../../interfaces/has-sequential-number'; import { BaseModel } from '../base/base-model'; import { ProjectiondefaultValue } from './projection-default'; import { ProjectorMeetingUsageIdKey } from './projector.constants'; diff --git a/client/src/app/domain/models/topics/topic.ts b/client/src/app/domain/models/topics/topic.ts index 6688da873a9..9d6e98d9f22 100644 --- a/client/src/app/domain/models/topics/topic.ts +++ b/client/src/app/domain/models/topics/topic.ts @@ -1,10 +1,10 @@ import { HasPollIds } from '@app/domain/interfaces/has-poll-ids'; -import { HasSequentialNumber } from '../../interfaces'; import { HasAgendaItemId } from '../../interfaces/has-agenda-item-id'; import { HasAttachmentMeetingMediafileIds } from '../../interfaces/has-attachment-ids'; import { HasListOfSpeakersId } from '../../interfaces/has-list-of-speakers-id'; import { HasMeetingId } from '../../interfaces/has-meeting-id'; +import { HasSequentialNumber } from '../../interfaces/has-sequential-number'; import { BaseModel } from '../base/base-model'; /** diff --git a/client/src/app/gateways/error-mapping/error-map-utils.ts b/client/src/app/gateways/error-mapping/error-map-utils.ts index 3a26b4a2a01..b4e37afada4 100644 --- a/client/src/app/gateways/error-mapping/error-map-utils.ts +++ b/client/src/app/gateways/error-mapping/error-map-utils.ts @@ -1,8 +1,8 @@ import { _ } from '@ngx-translate/core'; -import { AgendaItemAction } from '../repositories/agenda'; -import { MeetingAction } from '../repositories/meetings'; -import { MotionAction } from '../repositories/motions'; +import { AgendaItemAction } from '../repositories/agenda/agenda-item.action'; +import { MeetingAction } from '../repositories/meetings/meeting-action'; +import { MotionAction } from '../repositories/motions/motion-repository.service/motion.action'; import { UserAction } from '../repositories/users/user-action'; export class MapError { diff --git a/client/src/app/gateways/error-mapping/error-map.service.spec.ts b/client/src/app/gateways/error-mapping/error-map.service.spec.ts index 2758ff8ebd9..ab5586cd57d 100644 --- a/client/src/app/gateways/error-mapping/error-map.service.spec.ts +++ b/client/src/app/gateways/error-mapping/error-map.service.spec.ts @@ -2,8 +2,8 @@ import { TestBed } from '@angular/core/testing'; import { MockTranslateService } from '@app/site/pages/meetings/modules/poll/pipes/poll-parse-number/poll-parse-number.pipe.spec'; import { TranslateService } from '@ngx-translate/core'; -import { MeetingAction } from '../repositories/meetings'; -import { MotionAction } from '../repositories/motions'; +import { MeetingAction } from '../repositories/meetings/meeting-action'; +import { MotionAction } from '../repositories/motions/motion-repository.service/motion.action'; import { ErrorMapService } from './error-map.service'; import { ErrorMap, UrlFragmentToHttpErrorMap } from './error-map-utils'; diff --git a/client/src/app/gateways/export/csv-export.service/csv-export-for-backend.service.spec.ts b/client/src/app/gateways/export/csv-export.service/csv-export-for-backend.service.spec.ts index 077460dd586..5d4eee09b52 100644 --- a/client/src/app/gateways/export/csv-export.service/csv-export-for-backend.service.spec.ts +++ b/client/src/app/gateways/export/csv-export.service/csv-export-for-backend.service.spec.ts @@ -1,7 +1,7 @@ import { TestBed } from '@angular/core/testing'; import { BaseViewModel } from '@app/site/base/base-view-model'; -import { FileExportService } from '../file-export.service'; +import { FileExportService } from '../file-export.service/file-export.service'; import { CsvExportForBackendService } from './csv-export-for-backend.service'; class MockFileExportService { diff --git a/client/src/app/gateways/export/csv-export.service/csv-export-for-backend.service.ts b/client/src/app/gateways/export/csv-export.service/csv-export-for-backend.service.ts index c5d9cdcf8c9..8f70a9701ec 100644 --- a/client/src/app/gateways/export/csv-export.service/csv-export-for-backend.service.ts +++ b/client/src/app/gateways/export/csv-export.service/csv-export-for-backend.service.ts @@ -1,7 +1,7 @@ import { inject, Service } from '@angular/core'; import { BaseViewModel } from '@app/site/base/base-view-model'; -import { FileExportService } from '../file-export.service'; +import { FileExportService } from '../file-export.service/file-export.service'; import { BackendCsvColumnsDefinition, DEFAULT_COLUMN_SEPARATOR, diff --git a/client/src/app/gateways/http.service.ts b/client/src/app/gateways/http.service.ts index 6daa5e4c4cc..f0444f42ac3 100644 --- a/client/src/app/gateways/http.service.ts +++ b/client/src/app/gateways/http.service.ts @@ -11,7 +11,7 @@ import { QueryParams, ResponseType } from '../infrastructure/definitions/http'; -import { ProcessError } from '../infrastructure/errors'; +import { ProcessError } from '../infrastructure/errors/process.error'; import { toBase64 } from '../infrastructure/utils/functions'; import { ActionWorkerWatchService } from './action-worker-watch/action-worker-watch.service'; import { ErrorMapService } from './error-mapping/error-map.service'; diff --git a/client/src/app/gateways/meeting-media-adapter.service.spec.ts b/client/src/app/gateways/meeting-media-adapter.service.spec.ts index 63ffec3e14b..8b4111a611d 100644 --- a/client/src/app/gateways/meeting-media-adapter.service.spec.ts +++ b/client/src/app/gateways/meeting-media-adapter.service.spec.ts @@ -1,11 +1,11 @@ import { TestBed } from '@angular/core/testing'; import { FONT_PLACES, LOGO_PLACES } from '../domain/models/mediafiles/mediafile.constants'; -import { ViewMediafile } from '../site/pages/meetings/pages/mediafiles'; +import { ViewMediafile } from '../site/pages/meetings/pages/mediafiles/view-models/view-mediafile'; import { ActionService } from './actions/action.service'; import { ActionRequest } from './actions/action-utils'; import { MeetingMediaAdapterService } from './meeting-media-adapter.service'; -import { MeetingAction } from './repositories/meetings'; +import { MeetingAction } from './repositories/meetings/meeting-action'; class MockAction { public constructor( diff --git a/client/src/app/gateways/meeting-media-adapter.service.ts b/client/src/app/gateways/meeting-media-adapter.service.ts index bf52ce6dfc7..da136c299fc 100644 --- a/client/src/app/gateways/meeting-media-adapter.service.ts +++ b/client/src/app/gateways/meeting-media-adapter.service.ts @@ -1,8 +1,8 @@ import { inject, Service } from '@angular/core'; import { Id } from '../domain/definitions/key-types'; -import { ViewMediafile } from '../site/pages/meetings/pages/mediafiles'; -import { ActionService } from './actions'; +import { ViewMediafile } from '../site/pages/meetings/pages/mediafiles/view-models/view-mediafile'; +import { ActionService } from './actions/action.service'; type MediaAdapterActionParameters = ({ action: `set`; mediafile: ViewMediafile } | { action: `unset` }) & { type: `logo` | `font`; diff --git a/client/src/app/gateways/repositories/action-worker/action-worker-repository.service.ts b/client/src/app/gateways/repositories/action-worker/action-worker-repository.service.ts index e95e0d37a39..c1377e392ec 100644 --- a/client/src/app/gateways/repositories/action-worker/action-worker-repository.service.ts +++ b/client/src/app/gateways/repositories/action-worker/action-worker-repository.service.ts @@ -1,16 +1,12 @@ -import { inject, Service } from '@angular/core'; +import { Service } from '@angular/core'; import { ActionWorker } from '@app/domain/models/action-worker/action-worker'; import { BaseRepository } from '../base-repository'; -import { RepositoryServiceCollectorService } from '../repository-service-collector.service'; import { ViewActionWorker } from './view-action-worker'; @Service() export class ActionWorkerRepositoryService extends BaseRepository { - public constructor() { - const repositoryServiceCollector = inject(RepositoryServiceCollectorService); - super(repositoryServiceCollector, ActionWorker); - } + public baseModelCtor = ActionWorker; public getVerboseName = (plural?: boolean): string => (plural ? `Action workers` : `Action worker`); public getTitle = (viewModel: ViewActionWorker): string => viewModel.name; diff --git a/client/src/app/gateways/repositories/agenda/agenda-item-repository.service.ts b/client/src/app/gateways/repositories/agenda/agenda-item-repository.service.ts index b2701f10d79..495ada2cd72 100644 --- a/client/src/app/gateways/repositories/agenda/agenda-item-repository.service.ts +++ b/client/src/app/gateways/repositories/agenda/agenda-item-repository.service.ts @@ -7,18 +7,18 @@ import { BaseViewModel } from '@app/site/base/base-view-model'; import { AgendaListTitle, HasAgendaItem, ViewAgendaItem } from '@app/site/pages/meetings/pages/agenda'; import { TreeService } from '@app/ui/modules/sorting/modules/sorting-tree/services'; -import { Action } from '../../actions'; +import { Action } from '../../actions/action'; import { BaseMeetingRelatedRepository } from '../base-meeting-related-repository'; -import { RepositoryMeetingServiceCollectorService } from '../repository-meeting-service-collector.service'; import { AgendaItemAction } from './agenda-item.action'; @Service() export class AgendaItemRepositoryService extends BaseMeetingRelatedRepository { private treeService = inject(TreeService); + public baseModelCtor = AgendaItem; + public constructor() { - const repositoryServiceCollector = inject(RepositoryMeetingServiceCollectorService); - super(repositoryServiceCollector, AgendaItem); + super(); this.setSortFunction((a, b) => a.tree_weight - b.tree_weight); // leave the sorting as it is } diff --git a/client/src/app/gateways/repositories/assignments/assignment-candidate-repository.service/assignment-candidate-repository.service.ts b/client/src/app/gateways/repositories/assignments/assignment-candidate-repository.service/assignment-candidate-repository.service.ts index cf89b24901f..3e34fb4089e 100644 --- a/client/src/app/gateways/repositories/assignments/assignment-candidate-repository.service/assignment-candidate-repository.service.ts +++ b/client/src/app/gateways/repositories/assignments/assignment-candidate-repository.service/assignment-candidate-repository.service.ts @@ -1,4 +1,4 @@ -import { inject, Service } from '@angular/core'; +import { Service } from '@angular/core'; import { Id } from '@app/domain/definitions/key-types'; import { Identifiable } from '@app/domain/interfaces'; import { Action } from '@app/gateways/actions'; @@ -7,7 +7,6 @@ import { ViewAssignmentCandidate } from '@app/site/pages/meetings/pages/assignme import { UnknownUserLabel } from '@app/site/pages/meetings/pages/assignments/modules/assignment-poll/services/assignment-poll.service'; import { AssignmentCandidate } from '../../../../domain/models/assignments/assignment-candidate'; -import { RepositoryMeetingServiceCollectorService } from '../../repository-meeting-service-collector.service'; import { AssignmentCandidateAction } from './assignment-candidate.action'; @Service() @@ -15,10 +14,7 @@ export class AssignmentCandidateRepositoryService extends BaseMeetingRelatedRepo ViewAssignmentCandidate, AssignmentCandidate > { - public constructor() { - const repositoryServiceCollector = inject(RepositoryMeetingServiceCollectorService); - super(repositoryServiceCollector, AssignmentCandidate); - } + public baseModelCtor = AssignmentCandidate; public getTitle = (viewAssignmentCandidate: ViewAssignmentCandidate): string => viewAssignmentCandidate.user?.getTitle() ?? UnknownUserLabel; diff --git a/client/src/app/gateways/repositories/assignments/assignment-repository.service/assignment-repository.service.ts b/client/src/app/gateways/repositories/assignments/assignment-repository.service/assignment-repository.service.ts index 7b1e373f624..d3add7d1bc0 100644 --- a/client/src/app/gateways/repositories/assignments/assignment-repository.service/assignment-repository.service.ts +++ b/client/src/app/gateways/repositories/assignments/assignment-repository.service/assignment-repository.service.ts @@ -1,15 +1,14 @@ import { inject, Service } from '@angular/core'; import { Id } from '@app/domain/definitions/key-types'; import { Identifiable } from '@app/domain/interfaces'; -import { AgendaItemRepositoryService } from '@app/gateways/repositories/agenda'; import { ViewAssignment } from '@app/site/pages/meetings/pages/assignments'; +import { SequentialNumberMappingService } from '@app/site/pages/meetings/services/sequential-number-mapping.service'; import { Fieldsets } from '@app/site/services/model-request-builder'; import { Assignment } from '../../../../domain/models/assignments/assignment'; -import { createAgendaItem } from '../../agenda'; +import { createAgendaItem } from '../../agenda/functions'; import { BaseAgendaItemAndListOfSpeakersContentObjectRepository } from '../../base-agenda-item-and-list-of-speakers-content-object-repository'; import { CreateResponse } from '../../base-repository'; -import { RepositoryMeetingServiceCollectorService } from '../../repository-meeting-service-collector.service'; import { AssignmentAction } from './assignment.action'; @Service() @@ -17,11 +16,9 @@ export class AssignmentRepositoryService extends BaseAgendaItemAndListOfSpeakers ViewAssignment, Assignment > { - public constructor() { - const repositoryServiceCollector = inject(RepositoryMeetingServiceCollectorService); - const agendaItemRepo = inject(AgendaItemRepositoryService); - super(repositoryServiceCollector, Assignment, agendaItemRepo); - } + private sequentialNumber = inject(SequentialNumberMappingService); + + public baseModelCtor = Assignment; public override getFieldsets(): Fieldsets { const titleFields: (keyof Assignment)[] = [`sequential_number`, `meeting_id`, `title`]; @@ -33,14 +30,24 @@ export class AssignmentRepositoryService extends BaseAgendaItemAndListOfSpeakers }; } - public create(partialAssignment: Partial): Promise { + public async create(partialAssignment: Partial): Promise { partialAssignment.phase = undefined; const payload = { meeting_id: this.activeMeetingId, ...this.getPartialPayload(partialAssignment), ...createAgendaItem(partialAssignment) }; - return this.sendActionToBackend(AssignmentAction.CREATE, payload); + const data: CreateResponse = await this.sendActionToBackend(AssignmentAction.CREATE, payload); + if (data.sequential_number) { + this.sequentialNumber.setSequentialNumber( + ViewAssignment.COLLECTION, + payload.meeting_id, + data.sequential_number, + data.id + ); + } + + return data; } public update(update: Partial, viewModel: ViewAssignment): Promise { diff --git a/client/src/app/gateways/repositories/base-agenda-item-and-list-of-speakers-content-object-repository.ts b/client/src/app/gateways/repositories/base-agenda-item-and-list-of-speakers-content-object-repository.ts index 262a45ecb56..c65f7628366 100644 --- a/client/src/app/gateways/repositories/base-agenda-item-and-list-of-speakers-content-object-repository.ts +++ b/client/src/app/gateways/repositories/base-agenda-item-and-list-of-speakers-content-object-repository.ts @@ -1,5 +1,6 @@ +import { inject, Service } from '@angular/core'; import { HasAgendaItemId, HasListOfSpeakersId } from '@app/domain/interfaces'; -import { BaseModel, ModelConstructor } from '@app/domain/models/base/base-model'; +import { BaseModel } from '@app/domain/models/base/base-model'; import { BaseViewModel } from '@app/site/base/base-view-model'; import { AgendaListTitle, HasAgendaItem, HasListOfSpeakers } from '@app/site/pages/meetings/pages/agenda'; @@ -7,8 +8,8 @@ import { AgendaItemRepositoryService } from './agenda/agenda-item-repository.ser import { AgendaItemContentObjectRepository } from './base-agenda-item-content-object-repository'; import { ListOfSpeakersContentObjectRepository } from './base-list-of-speakers-content-object-repository'; import { BaseMeetingRelatedRepository } from './base-meeting-related-repository'; -import { RepositoryMeetingServiceCollectorService } from './repository-meeting-service-collector.service'; +@Service() export abstract class BaseAgendaItemAndListOfSpeakersContentObjectRepository< V extends BaseViewModel & HasListOfSpeakers & HasAgendaItem, M extends BaseModel & HasListOfSpeakersId & HasAgendaItemId @@ -16,13 +17,7 @@ export abstract class BaseAgendaItemAndListOfSpeakersContentObjectRepository< extends BaseMeetingRelatedRepository implements ListOfSpeakersContentObjectRepository, AgendaItemContentObjectRepository { - public constructor( - repositoryServiceCollector: RepositoryMeetingServiceCollectorService, - baseModelCtor: ModelConstructor, - protected agendaItemRepo: AgendaItemRepositoryService - ) { - super(repositoryServiceCollector, baseModelCtor); - } + protected agendaItemRepo = inject(AgendaItemRepositoryService); public getAgendaListTitle(viewModel: V): AgendaListTitle { // Return the agenda title with the model's verbose name appended diff --git a/client/src/app/gateways/repositories/base-agenda-item-content-object-repository.ts b/client/src/app/gateways/repositories/base-agenda-item-content-object-repository.ts index 7286c3615bc..edde3c5985d 100644 --- a/client/src/app/gateways/repositories/base-agenda-item-content-object-repository.ts +++ b/client/src/app/gateways/repositories/base-agenda-item-content-object-repository.ts @@ -1,11 +1,11 @@ +import { inject, Service } from '@angular/core'; import { HasAgendaItemId } from '@app/domain/interfaces'; -import { BaseModel, ModelConstructor } from '@app/domain/models/base/base-model'; +import { BaseModel } from '@app/domain/models/base/base-model'; import { BaseViewModel } from '@app/site/base/base-view-model'; import { AgendaListTitle, HasAgendaItem } from '@app/site/pages/meetings/pages/agenda'; -import { AgendaItemRepositoryService } from './agenda'; +import { AgendaItemRepositoryService } from './agenda/agenda-item-repository.service'; import { BaseMeetingRelatedRepository } from './base-meeting-related-repository'; -import { RepositoryMeetingServiceCollectorService } from './repository-meeting-service-collector.service'; export function isAgendaItemContentObjectRepository(obj: any): obj is BaseAgendaItemContentObjectRepository { const repo = obj as BaseAgendaItemContentObjectRepository; @@ -26,6 +26,7 @@ export interface AgendaItemContentObjectRepository< /** * The base repository for objects with an agenda item. */ +@Service() export abstract class BaseAgendaItemContentObjectRepository< V extends BaseViewModel & HasAgendaItem, M extends BaseModel & HasAgendaItemId @@ -33,13 +34,7 @@ export abstract class BaseAgendaItemContentObjectRepository< extends BaseMeetingRelatedRepository implements AgendaItemContentObjectRepository { - public constructor( - repositoryServiceCollector: RepositoryMeetingServiceCollectorService, - baseModelCtor: ModelConstructor, - protected agendaItemRepo: AgendaItemRepositoryService - ) { - super(repositoryServiceCollector, baseModelCtor); - } + protected agendaItemRepo = inject(AgendaItemRepositoryService); /** * @returns the agenda title for the agenda item list. Should diff --git a/client/src/app/gateways/repositories/base-list-of-speakers-content-object-repository.ts b/client/src/app/gateways/repositories/base-list-of-speakers-content-object-repository.ts index 4af1bab01bd..5d4b718be14 100644 --- a/client/src/app/gateways/repositories/base-list-of-speakers-content-object-repository.ts +++ b/client/src/app/gateways/repositories/base-list-of-speakers-content-object-repository.ts @@ -1,10 +1,10 @@ +import { Service } from '@angular/core'; import { HasListOfSpeakersId } from '@app/domain/interfaces'; -import { BaseModel, ModelConstructor } from '@app/domain/models/base/base-model'; +import { BaseModel } from '@app/domain/models/base/base-model'; import { BaseViewModel } from '@app/site/base/base-view-model'; import { HasListOfSpeakers } from '@app/site/pages/meetings/pages/agenda'; import { BaseMeetingRelatedRepository } from './base-meeting-related-repository'; -import { RepositoryMeetingServiceCollectorService } from './repository-meeting-service-collector.service'; /** * Describes a base repository which objects have a list of speakers assigned. @@ -20,6 +20,7 @@ export interface ListOfSpeakersContentObjectRepository< /** * The base repository for objects with a list of speakers. */ +@Service() export abstract class BaseListOfSpeakersContentObjectRepository< V extends BaseViewModel & HasListOfSpeakers, M extends BaseModel & HasListOfSpeakersId @@ -27,13 +28,6 @@ export abstract class BaseListOfSpeakersContentObjectRepository< extends BaseMeetingRelatedRepository implements ListOfSpeakersContentObjectRepository { - public constructor( - repositoryServiceCollector: RepositoryMeetingServiceCollectorService, - baseModelCtor: ModelConstructor - ) { - super(repositoryServiceCollector, baseModelCtor); - } - public getListOfSpeakersTitle(viewModel: V): string { return this.getTitle(viewModel) + ` (` + this.getVerboseName() + `)`; } diff --git a/client/src/app/gateways/repositories/base-meeting-related-repository.ts b/client/src/app/gateways/repositories/base-meeting-related-repository.ts index 321e200790e..645b2dc17f8 100644 --- a/client/src/app/gateways/repositories/base-meeting-related-repository.ts +++ b/client/src/app/gateways/repositories/base-meeting-related-repository.ts @@ -1,19 +1,20 @@ +import { inject, Service } from '@angular/core'; import { HasMeetingId } from '@app/domain/interfaces'; import { Id } from '../../domain/definitions/key-types'; -import { BaseModel, ModelConstructor } from '../../domain/models/base/base-model'; +import { BaseModel } from '../../domain/models/base/base-model'; import { BaseViewModel } from '../../site/base/base-view-model'; import { ActiveMeetingService } from '../../site/pages/meetings/services/active-meeting.service'; import { ActiveMeetingIdService } from '../../site/pages/meetings/services/active-meeting-id.service'; import { MeetingSettingsService } from '../../site/pages/meetings/services/meeting-settings.service'; import { ViewMeeting } from '../../site/pages/meetings/view-models/view-meeting'; import { BaseRepository } from './base-repository'; -import { RepositoryMeetingServiceCollectorService } from './repository-meeting-service-collector.service'; /** * Extension of the base repository for all meeting specific models. Provides access * to the active meeting service and automatically inserts the id on viewmodel creates. */ +@Service() export abstract class BaseMeetingRelatedRepository extends BaseRepository< V, M @@ -24,18 +25,10 @@ export abstract class BaseMeetingRelatedRepository - ) { - super(repositoryMeetingServiceCollector, baseModelCtor); - } + protected activeMeetingIdService = inject(ActiveMeetingIdService); + protected activeMeetingService = inject(ActiveMeetingService); + protected meetingSettingsService = inject(MeetingSettingsService); protected override createViewModel(model: M): V { const viewModel = super.createViewModel(model); - viewModel.getActiveMeetingId = (): number => - this.repositoryMeetingServiceCollector.activeMeetingIdService.meetingId; + viewModel.getActiveMeetingId = (): number => this.activeMeetingIdService.meetingId; return viewModel; } diff --git a/client/src/app/gateways/repositories/base-repository.ts b/client/src/app/gateways/repositories/base-repository.ts index cc1a72aa876..77aca52b111 100644 --- a/client/src/app/gateways/repositories/base-repository.ts +++ b/client/src/app/gateways/repositories/base-repository.ts @@ -1,3 +1,4 @@ +import { inject, Injectable } from '@angular/core'; import { HasSequentialNumber, Identifiable } from '@app/domain/interfaces'; import { OnAfterAppsLoaded } from '@app/infrastructure/definitions/hooks/after-apps-loaded'; import { ListUpdateData } from '@app/infrastructure/utils'; @@ -10,14 +11,14 @@ import { auditTime, BehaviorSubject, filter, Observable, Subject, Subscription } import { Id } from '../../domain/definitions/key-types'; import { BaseModel, ModelConstructor } from '../../domain/models/base/base-model'; -import { Relation } from '../../infrastructure/definitions/relations'; +import { Relation } from '../../infrastructure/definitions/relations/utils'; import { BaseViewModel, ViewModelConstructor } from '../../site/base/base-view-model'; -import { CollectionMapperService } from '../../site/services/collection-mapper.service'; +import { CollectionMapperService } from '../../site/services/collection-mapper.service/collection-mapper.service'; import { DataStoreService } from '../../site/services/data-store.service'; -import { Fieldsets } from '../../site/services/model-request-builder'; +import { Fieldsets } from '../../site/services/model-request-builder/model-request-builder.service'; import { RelationManagerService } from '../../site/services/relation-manager.service'; -import { ViewModelStoreService } from '../../site/services/view-model-store.service'; -import { Action, ActionService } from '../actions'; +import { Action } from '../actions/action'; +import { ActionService } from '../actions/action.service'; import { ActionRequest } from '../actions/action-utils'; import { RepositoryServiceCollectorService } from './repository-service-collector.service'; @@ -46,9 +47,10 @@ interface UpdatePipelineAction { key?: string; } +@Injectable() export abstract class BaseRepository implements OnAfterAppsLoaded { public get collection(): string { - return this._collection; + return this.baseModelCtor.COLLECTION; } /** @@ -56,7 +58,7 @@ export abstract class BaseRepository string; @@ -110,38 +112,14 @@ export abstract class BaseRepository = {}; /** - * The view model ctor of the encapsulated view model. + * The model ctor of the encapsulated model. */ - protected baseViewModelCtor!: ViewModelConstructor; - - protected get DS(): DataStoreService { - return this.repositoryServiceCollector.DS; - } - - protected get actions(): ActionService { - return this.repositoryServiceCollector.actionService; - } - - protected get collectionMapperService(): CollectionMapperService { - return this.repositoryServiceCollector.collectionMapperService; - } - - protected get viewModelStoreService(): ViewModelStoreService { - return this.repositoryServiceCollector.viewModelStoreService; - } - - protected get translate(): TranslateService { - return this.repositoryServiceCollector.translate; - } - - protected get relationManager(): RelationManagerService { - return this.repositoryServiceCollector.relationManager; - } + protected abstract baseModelCtor: ModelConstructor; /** - * The collection string of the managed model. + * The view model ctor of the encapsulated view model. */ - private _collection: string; + protected baseViewModelCtor!: ViewModelConstructor; private _createViewModelPipes: ((viewModel: V) => void)[] = []; @@ -167,16 +145,15 @@ export abstract class BaseRepository> = {}; private foreignSortBaseKeySubscriptions: Record = {}; - public constructor( - private repositoryServiceCollector: RepositoryServiceCollectorService, - protected baseModelCtor: ModelConstructor - ) { - this._collection = baseModelCtor.COLLECTION; + protected DS = inject(DataStoreService); + protected actions = inject(ActionService); + protected collectionMapperService = inject(CollectionMapperService); + protected translate = inject(TranslateService); + protected relationManager = inject(RelationManagerService); - this.relationManager.getRelationsForCollection(this.collection).forEach(relation => { - this.relationsByKey[relation.ownField as any] = relation; - }); + private repositoryServiceCollector = inject(RepositoryServiceCollectorService); + public constructor() { // All data is piped through an auditTime of 1ms. This is to prevent massive // updates, if e.g. an autoupdate with a lot motions come in. The result is just one // update of the new list instead of many unnecessary updates. @@ -190,6 +167,10 @@ export abstract class BaseRepository { + this.relationsByKey[relation.ownField as any] = relation; + }); + this.baseViewModelCtor = this.collectionMapperService.getViewModelConstructor(this.collection)!; this.DS.clearObservable.subscribe(removedCollections => { if ( diff --git a/client/src/app/gateways/repositories/chat/chat-group-repository.service/chat-group-repository.service.ts b/client/src/app/gateways/repositories/chat/chat-group-repository.service/chat-group-repository.service.ts index f4c7d7f114a..f741051b1e0 100644 --- a/client/src/app/gateways/repositories/chat/chat-group-repository.service/chat-group-repository.service.ts +++ b/client/src/app/gateways/repositories/chat/chat-group-repository.service/chat-group-repository.service.ts @@ -1,19 +1,15 @@ -import { inject, Service } from '@angular/core'; +import { Service } from '@angular/core'; import { Id } from '@app/domain/definitions/key-types'; import { Identifiable } from '@app/domain/interfaces'; import { ChatGroup } from '@app/domain/models/chat/chat-group'; import { ViewChatGroup } from '@app/site/pages/meetings/pages/chat'; import { BaseMeetingRelatedRepository } from '../../base-meeting-related-repository'; -import { RepositoryMeetingServiceCollectorService } from '../../repository-meeting-service-collector.service'; import { ChatGroupAction } from './chat-group.action'; @Service() export class ChatGroupRepositoryService extends BaseMeetingRelatedRepository { - public constructor() { - const repositoryServiceCollector = inject(RepositoryMeetingServiceCollectorService); - super(repositoryServiceCollector, ChatGroup); - } + public baseModelCtor = ChatGroup; public getVerboseName = (plural?: boolean): string => (plural ? `Chat groups` : `Chat group`); public getTitle = (viewModel: ViewChatGroup): string => viewModel.name; diff --git a/client/src/app/gateways/repositories/chat/chat-message-repository.service/chat-message-repository.service.ts b/client/src/app/gateways/repositories/chat/chat-message-repository.service/chat-message-repository.service.ts index 7d13a4e1fb3..5e7d9a405e1 100644 --- a/client/src/app/gateways/repositories/chat/chat-message-repository.service/chat-message-repository.service.ts +++ b/client/src/app/gateways/repositories/chat/chat-message-repository.service/chat-message-repository.service.ts @@ -1,11 +1,10 @@ -import { inject, Service } from '@angular/core'; +import { Service } from '@angular/core'; import { Id } from '@app/domain/definitions/key-types'; import { Identifiable } from '@app/domain/interfaces'; import { ChatMessage } from '@app/domain/models/chat/chat-message'; import { ViewChatMessage } from '@app/site/pages/meetings/pages/chat'; import { BaseMeetingRelatedRepository } from '../../base-meeting-related-repository'; -import { RepositoryMeetingServiceCollectorService } from '../../repository-meeting-service-collector.service'; import { ChatMessageAction } from './chat-message.action'; /** @@ -15,10 +14,7 @@ export const CHAT_MESSAGE_MAX_LENGTH = 512; @Service() export class ChatMessageRepositoryService extends BaseMeetingRelatedRepository { - public constructor() { - const repositoryServiceCollector = inject(RepositoryMeetingServiceCollectorService); - super(repositoryServiceCollector, ChatMessage); - } + public baseModelCtor = ChatMessage; public getVerboseName = (plural?: boolean): string => (plural ? `Chat messages` : `Chat message`); public getTitle = (): string => `No name`; diff --git a/client/src/app/gateways/repositories/committee-repository.service.ts b/client/src/app/gateways/repositories/committee-repository.service.ts index 0b36f024233..26bf04aab55 100644 --- a/client/src/app/gateways/repositories/committee-repository.service.ts +++ b/client/src/app/gateways/repositories/committee-repository.service.ts @@ -5,15 +5,14 @@ import { BackendImportRawPreview } from '@app/ui/modules/import-list/definitions import { Id } from '../../domain/definitions/key-types'; import { CML, OML } from '../../domain/definitions/organization-permission'; -import { Identifiable } from '../../domain/interfaces'; +import { Identifiable } from '../../domain/interfaces/identifiable'; import { Committee } from '../../domain/models/comittees/committee'; -import { ViewCommittee } from '../../site/pages/organization/pages/committees'; -import { Fieldsets, TypedFieldset } from '../../site/services/model-request-builder'; +import { ViewCommittee } from '../../site/pages/organization/pages/committees/view-models/view-committee'; +import { Fieldsets, TypedFieldset } from '../../site/services/model-request-builder/model-request-builder.service'; import { OperatorService } from '../../site/services/operator.service'; -import { Action } from '../actions'; +import { Action } from '../actions/action'; import { BaseRepository } from './base-repository'; import { CommitteeAction } from './committees/committee.action'; -import { RepositoryServiceCollectorService } from './repository-service-collector.service'; import { UserRepositoryService } from './users/user-repository.service'; @Service() @@ -21,10 +20,7 @@ export class CommitteeRepositoryService extends BaseRepository viewCommittee.name; diff --git a/client/src/app/gateways/repositories/gender/gender-repository.service.ts b/client/src/app/gateways/repositories/gender/gender-repository.service.ts index d2f02b73b0c..2f0ce2a5798 100644 --- a/client/src/app/gateways/repositories/gender/gender-repository.service.ts +++ b/client/src/app/gateways/repositories/gender/gender-repository.service.ts @@ -1,4 +1,4 @@ -import { inject, Service } from '@angular/core'; +import { Service } from '@angular/core'; import { Id } from '@app/domain/definitions/key-types'; import { Identifiable } from '@app/domain/interfaces'; import { Gender } from '@app/domain/models/gender/gender'; @@ -6,16 +6,12 @@ import { BaseRepository } from '@app/gateways/repositories/base-repository'; import { ViewGender } from '@app/site/pages/organization/pages/accounts/pages/gender/view-models/view-gender'; import { Fieldsets } from '@app/site/services/model-request-builder'; -import { Action } from '../../actions'; -import { RepositoryServiceCollectorService } from '../repository-service-collector.service'; +import { Action } from '../../actions/action'; import { GenderAction } from './gender.action'; @Service() export class GenderRepositoryService extends BaseRepository { - public constructor() { - const repositoryServiceCollector = inject(RepositoryServiceCollectorService); - super(repositoryServiceCollector, Gender); - } + public baseModelCtor = Gender; public getVerboseName = (plural?: boolean): string => (plural ? `Genders` : `Gender`); public getTitle = (viewModel: ViewGender): string => viewModel.name; diff --git a/client/src/app/gateways/repositories/groups/group-repository.service.ts b/client/src/app/gateways/repositories/groups/group-repository.service.ts index 4f76f5b3070..fe096c8d74a 100644 --- a/client/src/app/gateways/repositories/groups/group-repository.service.ts +++ b/client/src/app/gateways/repositories/groups/group-repository.service.ts @@ -1,19 +1,15 @@ -import { inject, Service } from '@angular/core'; +import { Service } from '@angular/core'; import { Identifiable } from '@app/domain/interfaces'; import { Group } from '@app/domain/models/users/group'; import { BaseMeetingRelatedRepository } from '@app/gateways/repositories/base-meeting-related-repository'; import { ViewGroup } from '@app/site/pages/meetings/pages/participants'; import { Fieldsets } from '@app/site/services/model-request-builder'; -import { RepositoryMeetingServiceCollectorService } from '../repository-meeting-service-collector.service'; import { GroupAction } from './group.action'; @Service() export class GroupRepositoryService extends BaseMeetingRelatedRepository { - public constructor() { - const repositoryServiceCollector = inject(RepositoryMeetingServiceCollectorService); - super(repositoryServiceCollector, Group); - } + public baseModelCtor = Group; public override getFieldsets(): Fieldsets { const titleFields: (keyof Group)[] = [`name`]; diff --git a/client/src/app/gateways/repositories/history-entry/history-entry-repository.service.ts b/client/src/app/gateways/repositories/history-entry/history-entry-repository.service.ts index a6ed3848576..8e9f6249b8f 100644 --- a/client/src/app/gateways/repositories/history-entry/history-entry-repository.service.ts +++ b/client/src/app/gateways/repositories/history-entry/history-entry-repository.service.ts @@ -1,16 +1,12 @@ -import { inject, Service } from '@angular/core'; +import { Service } from '@angular/core'; import { HistoryEntry } from '@app/domain/models/history-entry/history-entry'; import { BaseRepository } from '../base-repository'; -import { RepositoryServiceCollectorService } from '../repository-service-collector.service'; import { ViewHistoryEntry } from './view-history-entry'; @Service() export class HistoryEntryRepositoryService extends BaseRepository { - public constructor() { - const repositoryServiceCollector = inject(RepositoryServiceCollectorService); - super(repositoryServiceCollector, HistoryEntry); - } + public baseModelCtor = HistoryEntry; public getVerboseName = (plural?: boolean): string => (plural ? `History entries` : `History entry`); public getTitle = (viewModel: ViewHistoryEntry): string => `Entry ${viewModel.id}`; diff --git a/client/src/app/gateways/repositories/history-position/history-position-repository.service.ts b/client/src/app/gateways/repositories/history-position/history-position-repository.service.ts index 11ef9967919..eb9e72b7f7e 100644 --- a/client/src/app/gateways/repositories/history-position/history-position-repository.service.ts +++ b/client/src/app/gateways/repositories/history-position/history-position-repository.service.ts @@ -1,16 +1,12 @@ -import { inject, Service } from '@angular/core'; +import { Service } from '@angular/core'; import { HistoryPosition } from '@app/domain/models/history-position/history-position'; import { BaseRepository } from '../base-repository'; -import { RepositoryServiceCollectorService } from '../repository-service-collector.service'; import { ViewHistoryPosition } from './view-history-position'; @Service() export class HistoryPositionRepositoryService extends BaseRepository { - public constructor() { - const repositoryServiceCollector = inject(RepositoryServiceCollectorService); - super(repositoryServiceCollector, HistoryPosition); - } + public baseModelCtor = HistoryPosition; public getVerboseName = (plural?: boolean): string => (plural ? `History positions` : `History position`); public getTitle = (viewModel: ViewHistoryPosition): string => `Position ${viewModel.id}`; diff --git a/client/src/app/gateways/repositories/list-of-speakers/list-of-speakers-repository.service.ts b/client/src/app/gateways/repositories/list-of-speakers/list-of-speakers-repository.service.ts index accadb47af2..c709fa227ff 100644 --- a/client/src/app/gateways/repositories/list-of-speakers/list-of-speakers-repository.service.ts +++ b/client/src/app/gateways/repositories/list-of-speakers/list-of-speakers-repository.service.ts @@ -1,10 +1,9 @@ -import { Injectable } from '@angular/core'; +import { Service } from '@angular/core'; import { ListOfSpeakers } from '@app/domain/models/list-of-speakers/list-of-speakers'; import { BaseViewModel } from '@app/site/base/base-view-model'; import { hasListOfSpeakers, ViewListOfSpeakers } from '@app/site/pages/meetings/pages/agenda'; import { BaseMeetingRelatedRepository } from '../base-meeting-related-repository'; -import { RepositoryMeetingServiceCollectorService } from '../repository-meeting-service-collector.service'; import { SpeakerAction } from '../speakers/speaker.action'; import { ListOfSpeakersAction } from './list-of-speakers.action'; @@ -13,13 +12,9 @@ import { ListOfSpeakersAction } from './list-of-speakers.action'; * * Documentation partially provided in {@link BaseRepository} */ -@Injectable({ - providedIn: `root` -}) +@Service() export class ListOfSpeakersRepositoryService extends BaseMeetingRelatedRepository { - public constructor(repositoryServiceCollector: RepositoryMeetingServiceCollectorService) { - super(repositoryServiceCollector, ListOfSpeakers); - } + public baseModelCtor = ListOfSpeakers; public getVerboseName = (plural = false): string => this.translate.instant(plural ? `Lists of speakers` : `List of speakers`); diff --git a/client/src/app/gateways/repositories/mediafiles/mediafile-repository.service.ts b/client/src/app/gateways/repositories/mediafiles/mediafile-repository.service.ts index 0b1b9d92358..708434fc2d1 100644 --- a/client/src/app/gateways/repositories/mediafiles/mediafile-repository.service.ts +++ b/client/src/app/gateways/repositories/mediafiles/mediafile-repository.service.ts @@ -11,7 +11,6 @@ import { Fieldsets } from '@app/site/services/model-request-builder'; import { TypedFieldset } from '../../../site/services/model-request-builder/model-request-builder.service'; import { BaseRepository } from '../base-repository'; import { MeetingMediafileRepositoryService } from '../meeting-mediafile/meeting-mediafile-repository.service'; -import { RepositoryServiceCollectorService } from '../repository-service-collector.service'; import { MediafileAction } from './mediafile.action'; @Service() @@ -23,9 +22,10 @@ export class MediafileRepositoryService extends BaseRepository this.languageCollator.compare(a.title, b.title); diff --git a/client/src/app/gateways/repositories/meeting-mediafile/meeting-mediafile-repository.service.ts b/client/src/app/gateways/repositories/meeting-mediafile/meeting-mediafile-repository.service.ts index 87092e55e6f..2a4e5b8e0e2 100644 --- a/client/src/app/gateways/repositories/meeting-mediafile/meeting-mediafile-repository.service.ts +++ b/client/src/app/gateways/repositories/meeting-mediafile/meeting-mediafile-repository.service.ts @@ -5,7 +5,6 @@ import { ViewMeetingMediafile } from '@app/site/pages/meetings/pages/mediafiles/ import { ActiveMeetingIdService } from '../../../site/pages/meetings/services/active-meeting-id.service'; import { BaseRepository } from '../base-repository'; -import { RepositoryServiceCollectorService } from '../repository-service-collector.service'; @Service() export class MeetingMediafileRepositoryService extends BaseRepository { @@ -13,9 +12,10 @@ export class MeetingMediafileRepositoryService extends BaseRepository this.languageCollator.compare(a.mediafile?.title, b.mediafile?.title); diff --git a/client/src/app/gateways/repositories/meeting-repository.service.ts b/client/src/app/gateways/repositories/meeting-repository.service.ts index 835b028d4fa..13e44db825b 100644 --- a/client/src/app/gateways/repositories/meeting-repository.service.ts +++ b/client/src/app/gateways/repositories/meeting-repository.service.ts @@ -10,11 +10,10 @@ import { Projection } from '../../domain/models/projector/projection'; import { MeetingSettingsDefinitionService } from '../../site/pages/meetings/services/meeting-settings-definition.service/meeting-settings-definition.service'; import { ViewMeeting } from '../../site/pages/meetings/view-models/view-meeting'; import { ViewUser } from '../../site/pages/meetings/view-models/view-user'; -import { Fieldsets } from '../../site/services/model-request-builder'; +import { Fieldsets } from '../../site/services/model-request-builder/model-request-builder.service'; import { TypedFieldset } from '../../site/services/model-request-builder/model-request-builder.service'; import { BaseRepository } from './base-repository'; -import { MeetingAction } from './meetings'; -import { RepositoryServiceCollectorService } from './repository-service-collector.service'; +import { MeetingAction } from './meetings/meeting-action'; import { UserAction } from './users/user-action'; export enum MeetingProjectionType { @@ -41,10 +40,7 @@ export class MeetingRepositoryService extends BaseRepository { // This field is used to determine, if a user can access a meeting: It is restricted for non-authorized users diff --git a/client/src/app/gateways/repositories/meeting_user/meeting-user-repository.service.ts b/client/src/app/gateways/repositories/meeting_user/meeting-user-repository.service.ts index d9ced6bb97d..83eafc282f0 100644 --- a/client/src/app/gateways/repositories/meeting_user/meeting-user-repository.service.ts +++ b/client/src/app/gateways/repositories/meeting_user/meeting-user-repository.service.ts @@ -1,4 +1,4 @@ -import { inject, Service } from '@angular/core'; +import { Service } from '@angular/core'; import { Id } from '@app/domain/definitions/key-types'; import { MeetingUser } from '@app/domain/models/meeting-users/meeting-user'; import { toDecimal } from '@app/infrastructure/utils'; @@ -6,7 +6,6 @@ import { ViewMeetingUser } from '@app/site/pages/meetings/view-models/view-meeti import { DEFAULT_FIELDSET, Fieldsets, TypedFieldset } from '@app/site/services/model-request-builder'; import { BaseMeetingRelatedRepository } from '../base-meeting-related-repository'; -import { RepositoryMeetingServiceCollectorService } from '../repository-meeting-service-collector.service'; export type MeetingUserPatchFn = { [key in keyof MeetingUser]?: any } | ((user: ViewMeetingUser) => { [key in keyof MeetingUser]?: any }); @@ -17,10 +16,7 @@ export class MeetingUserRepositoryService extends BaseMeetingRelatedRepository>(); - public constructor() { - const repositoryServiceCollector = inject(RepositoryMeetingServiceCollectorService); - super(repositoryServiceCollector, MeetingUser); - } + public baseModelCtor = MeetingUser; public override getFieldsets(): Fieldsets { const groupFields: TypedFieldset = [`group_ids`, `meeting_id`, `user_id`]; diff --git a/client/src/app/gateways/repositories/meetings/meeting-poll-default-repository.service.ts b/client/src/app/gateways/repositories/meetings/meeting-poll-default-repository.service.ts index f6189780bda..1473dc8795a 100644 --- a/client/src/app/gateways/repositories/meetings/meeting-poll-default-repository.service.ts +++ b/client/src/app/gateways/repositories/meetings/meeting-poll-default-repository.service.ts @@ -3,7 +3,6 @@ import { MeetingPollDefault } from '@app/domain/models/meetings/meeting-poll-def import { ViewMeetingPollDefault } from '@app/site/pages/meetings/view-models/view-meeting-poll-default'; import { BaseMeetingRelatedRepository } from '../base-meeting-related-repository'; -import { RepositoryMeetingServiceCollectorService } from '../repository-meeting-service-collector.service'; @Injectable({ providedIn: `root` @@ -12,9 +11,7 @@ export class MeetingPollDefaultRepositoryService extends BaseMeetingRelatedRepos ViewMeetingPollDefault, MeetingPollDefault > { - public constructor(repositoryServiceCollector: RepositoryMeetingServiceCollectorService) { - super(repositoryServiceCollector, MeetingPollDefault); - } + public baseModelCtor = MeetingPollDefault; public getTitle = (_viewMeetingPollDefault: ViewMeetingPollDefault): string => `Meeting poll default`; diff --git a/client/src/app/gateways/repositories/motions/index.ts b/client/src/app/gateways/repositories/motions/index.ts deleted file mode 100644 index 7874f521f7e..00000000000 --- a/client/src/app/gateways/repositories/motions/index.ts +++ /dev/null @@ -1,10 +0,0 @@ -export * from './motion-block-repository.service'; -export * from './motion-category-repository.service'; -export * from './motion-change-recommendation-repository.service'; -export * from './motion-comments'; -export * from './motion-editor-repository'; -export * from './motion-repository.service'; -export * from './motion-state-repository.service'; -export * from './motion-submitter-repository.service'; -export * from './motion-workflow-repository.service'; -export * from './motion-working-group-speaker-repository'; diff --git a/client/src/app/gateways/repositories/motions/motion-block-repository.service/motion-block-repository.service.ts b/client/src/app/gateways/repositories/motions/motion-block-repository.service/motion-block-repository.service.ts index 3a8579e6262..2313dd3d500 100644 --- a/client/src/app/gateways/repositories/motions/motion-block-repository.service/motion-block-repository.service.ts +++ b/client/src/app/gateways/repositories/motions/motion-block-repository.service/motion-block-repository.service.ts @@ -1,12 +1,11 @@ -import { inject, Service } from '@angular/core'; +import { Service } from '@angular/core'; import { Identifiable } from '@app/domain/interfaces'; import { ViewMotionBlock } from '@app/site/pages/meetings/pages/motions'; import { map, Observable } from 'rxjs'; import { MotionBlock } from '../../../../domain/models/motions/motion-block'; -import { AgendaItemRepositoryService, createAgendaItem } from '../../agenda'; +import { createAgendaItem } from '../../agenda/functions'; import { BaseAgendaItemAndListOfSpeakersContentObjectRepository } from '../../base-agenda-item-and-list-of-speakers-content-object-repository'; -import { RepositoryMeetingServiceCollectorService } from '../../repository-meeting-service-collector.service'; import { MotionBlockAction } from './motion-block.action'; @Service() @@ -14,10 +13,10 @@ export class MotionBlockRepositoryService extends BaseAgendaItemAndListOfSpeaker ViewMotionBlock, MotionBlock > { + public baseModelCtor = MotionBlock; + public constructor() { - const repositoryServiceCollector = inject(RepositoryMeetingServiceCollectorService); - const agendaItemRepo = inject(AgendaItemRepositoryService); - super(repositoryServiceCollector, MotionBlock, agendaItemRepo); + super(); this.initSorting(); } diff --git a/client/src/app/gateways/repositories/motions/motion-category-repository.service/motion-category-repository.service.ts b/client/src/app/gateways/repositories/motions/motion-category-repository.service/motion-category-repository.service.ts index e8b1cc0f40e..93ed8627e85 100644 --- a/client/src/app/gateways/repositories/motions/motion-category-repository.service/motion-category-repository.service.ts +++ b/client/src/app/gateways/repositories/motions/motion-category-repository.service/motion-category-repository.service.ts @@ -1,4 +1,4 @@ -import { inject, Service } from '@angular/core'; +import { Service } from '@angular/core'; import { Identifiable } from '@app/domain/interfaces'; import { MotionCategory } from '@app/domain/models/motions/motion-category'; import { Action } from '@app/gateways/actions'; @@ -8,15 +8,11 @@ import { Fieldsets } from '@app/site/services/model-request-builder'; import { map, Observable } from 'rxjs'; import { BaseMeetingRelatedRepository } from '../../base-meeting-related-repository'; -import { RepositoryMeetingServiceCollectorService } from '../../repository-meeting-service-collector.service'; import { MotionCategoryAction } from './motion-category.action'; @Service() export class MotionCategoryRepositoryService extends BaseMeetingRelatedRepository { - public constructor() { - const repositoryServiceCollector = inject(RepositoryMeetingServiceCollectorService); - super(repositoryServiceCollector, MotionCategory); - } + public baseModelCtor = MotionCategory; public override getViewModelList(): ViewMotionCategory[] { return this.filterForeignMeetingModelsFromList(super.getViewModelList()); diff --git a/client/src/app/gateways/repositories/motions/motion-change-recommendation-repository.service/motion-change-recommendation-repository.service.ts b/client/src/app/gateways/repositories/motions/motion-change-recommendation-repository.service/motion-change-recommendation-repository.service.ts index 8f3197bf4d4..fabc9c063d3 100644 --- a/client/src/app/gateways/repositories/motions/motion-change-recommendation-repository.service/motion-change-recommendation-repository.service.ts +++ b/client/src/app/gateways/repositories/motions/motion-change-recommendation-repository.service/motion-change-recommendation-repository.service.ts @@ -1,10 +1,9 @@ -import { inject, Service } from '@angular/core'; +import { Service } from '@angular/core'; import { Identifiable } from '@app/domain/interfaces'; import { MotionChangeRecommendation } from '@app/domain/models/motions/motion-change-recommendation'; import { ViewMotionChangeRecommendation } from '@app/site/pages/meetings/pages/motions'; import { BaseMeetingRelatedRepository } from '../../base-meeting-related-repository'; -import { RepositoryMeetingServiceCollectorService } from '../../repository-meeting-service-collector.service'; import { MotionChangeRecommendationAction } from './motion-change-recommendation.action'; @Service() @@ -12,10 +11,7 @@ export class MotionChangeRecommendationRepositoryService extends BaseMeetingRela ViewMotionChangeRecommendation, MotionChangeRecommendation > { - public constructor() { - const repositoryServiceCollector = inject(RepositoryMeetingServiceCollectorService); - super(repositoryServiceCollector, MotionChangeRecommendation); - } + public baseModelCtor = MotionChangeRecommendation; public getTitle = (): string => this.getVerboseName(); diff --git a/client/src/app/gateways/repositories/motions/motion-comments/motion-comment-repository.service.ts b/client/src/app/gateways/repositories/motions/motion-comments/motion-comment-repository.service.ts index 31a54690841..85d06045624 100644 --- a/client/src/app/gateways/repositories/motions/motion-comments/motion-comment-repository.service.ts +++ b/client/src/app/gateways/repositories/motions/motion-comments/motion-comment-repository.service.ts @@ -1,18 +1,14 @@ -import { inject, Service } from '@angular/core'; +import { Service } from '@angular/core'; import { Identifiable } from '@app/domain/interfaces'; import { MotionComment } from '@app/domain/models/motions/motion-comment'; import { ViewMotionComment } from '@app/site/pages/meetings/pages/motions'; import { BaseMeetingRelatedRepository } from '../../base-meeting-related-repository'; -import { RepositoryMeetingServiceCollectorService } from '../../repository-meeting-service-collector.service'; import { MotionCommentAction } from './motion-comment.action'; @Service() export class MotionCommentRepositoryService extends BaseMeetingRelatedRepository { - public constructor() { - const repositoryServiceCollector = inject(RepositoryMeetingServiceCollectorService); - super(repositoryServiceCollector, MotionComment); - } + public baseModelCtor = MotionComment; public getTitle = (): string => `Comment`; diff --git a/client/src/app/gateways/repositories/motions/motion-comments/motion-comment-section-repository.service.ts b/client/src/app/gateways/repositories/motions/motion-comments/motion-comment-section-repository.service.ts index 9d8a1c973c7..a787c014d65 100644 --- a/client/src/app/gateways/repositories/motions/motion-comments/motion-comment-section-repository.service.ts +++ b/client/src/app/gateways/repositories/motions/motion-comments/motion-comment-section-repository.service.ts @@ -1,10 +1,9 @@ -import { inject, Service } from '@angular/core'; +import { Service } from '@angular/core'; import { Identifiable } from '@app/domain/interfaces'; import { MotionCommentSection } from '@app/domain/models/motions/motion-comment-section'; import { ViewMotionCommentSection } from '@app/site/pages/meetings/pages/motions'; import { BaseMeetingRelatedRepository } from '../../base-meeting-related-repository'; -import { RepositoryMeetingServiceCollectorService } from '../../repository-meeting-service-collector.service'; import { MotionCommentSectionAction } from './motion-comment-section.action'; @Service() @@ -12,9 +11,10 @@ export class MotionCommentSectionRepositoryService extends BaseMeetingRelatedRep ViewMotionCommentSection, MotionCommentSection > { + public baseModelCtor = MotionCommentSection; + public constructor() { - const repositoryServiceCollector = inject(RepositoryMeetingServiceCollectorService); - super(repositoryServiceCollector, MotionCommentSection); + super(); this.viewModelSortFn = (a: ViewMotionCommentSection, b: ViewMotionCommentSection): number => { if (a.weight === b.weight) { diff --git a/client/src/app/gateways/repositories/motions/motion-editor-repository/motion-editor-repository.service.ts b/client/src/app/gateways/repositories/motions/motion-editor-repository/motion-editor-repository.service.ts index c42c498b627..42f6eae4675 100644 --- a/client/src/app/gateways/repositories/motions/motion-editor-repository/motion-editor-repository.service.ts +++ b/client/src/app/gateways/repositories/motions/motion-editor-repository/motion-editor-repository.service.ts @@ -1,8 +1,7 @@ -import { inject, Service } from '@angular/core'; +import { Service } from '@angular/core'; import { MotionEditor } from '@app/domain/models/motions/motion-editor'; import { ViewMotionEditor } from '../../../../site/pages/meetings/pages/motions/modules/editors/view-models/view-motion-editor'; -import { RepositoryMeetingServiceCollectorService } from '../../repository-meeting-service-collector.service'; import { BaseMotionMeetingUserRepositoryService } from '../util'; import { MotionEditorAction } from './motion-editor.action'; @@ -11,12 +10,10 @@ export class MotionEditorRepositoryService extends BaseMotionMeetingUserReposito ViewMotionEditor, MotionEditor > { + protected actionDefs = MotionEditorAction; protected sortPayloadField = `motion_editor_ids`; - public constructor() { - const repositoryServiceCollector = inject(RepositoryMeetingServiceCollectorService); - super(repositoryServiceCollector, MotionEditor, MotionEditorAction); - } + public baseModelCtor = MotionEditor; public getVerboseName = (plural = false): string => this.translate.instant(plural ? `Motion editors` : `Motion editor`); diff --git a/client/src/app/gateways/repositories/motions/motion-repository.service/motion-repository.service.ts b/client/src/app/gateways/repositories/motions/motion-repository.service/motion-repository.service.ts index 5ef50841de5..16192b689e4 100644 --- a/client/src/app/gateways/repositories/motions/motion-repository.service/motion-repository.service.ts +++ b/client/src/app/gateways/repositories/motions/motion-repository.service/motion-repository.service.ts @@ -5,17 +5,17 @@ import { Action } from '@app/gateways/actions'; import { TreeIdNode } from '@app/infrastructure/definitions/tree'; import { NullablePartial } from '@app/infrastructure/utils'; import { AgendaListTitle } from '@app/site/pages/meetings/pages/agenda'; -import { ViewMotion } from '@app/site/pages/meetings/pages/motions'; -import { MotionFormatResult } from '@app/site/pages/meetings/pages/motions/services/common/motion-format.service'; +import type { MotionFormatResult } from '@app/site/pages/meetings/pages/motions/services/common/motion-format.service'; +import { ViewMotion } from '@app/site/pages/meetings/pages/motions/view-models/view-motion'; +import { SequentialNumberMappingService } from '@app/site/pages/meetings/services/sequential-number-mapping.service'; import { TreeService } from '@app/ui/modules/sorting/modules/sorting-tree/services'; import { VERSION as CURRENT_DIFF_VERSION } from '@openslides/motion-diff'; import { map, Observable } from 'rxjs'; import { Motion } from '../../../../domain/models/motions/motion'; -import { AgendaItemRepositoryService, createAgendaItem } from '../../agenda'; +import { createAgendaItem } from '../../agenda/functions'; import { BaseAgendaItemAndListOfSpeakersContentObjectRepository } from '../../base-agenda-item-and-list-of-speakers-content-object-repository'; import { CreateResponse } from '../../base-repository'; -import { RepositoryMeetingServiceCollectorService } from '../../repository-meeting-service-collector.service'; import { AmendmentAction } from './amendment.action'; import { MotionAction } from './motion.action'; @@ -31,11 +31,12 @@ export class MotionRepositoryService extends BaseAgendaItemAndListOfSpeakersCont */ protected sortProperty: SortProperty = `number`; private treeService = inject(TreeService); + private sequentialNumber = inject(SequentialNumberMappingService); + + public baseModelCtor = Motion; public constructor() { - const repositoryServiceCollector = inject(RepositoryMeetingServiceCollectorService); - const agendaItemRepo = inject(AgendaItemRepositoryService); - super(repositoryServiceCollector, Motion, agendaItemRepo); + super(); this.meetingSettingsService.get(`motions_default_sorting`).subscribe(conf => { this.sortProperty = conf as SortProperty; this.setConfigSortFn(); @@ -50,9 +51,21 @@ export class MotionRepositoryService extends BaseAgendaItemAndListOfSpeakersCont return super.getViewModelListObservable().pipe(map(motions => this.getCurrentMotions(motions))); } - public create(...motions: NullablePartial[]): Promise { + public async create(...motions: NullablePartial[]): Promise { const payload = motions.map(motion => this.getCreatePayload(motion)); - return this.sendBulkActionToBackend(MotionAction.CREATE, payload); + const data: CreateResponse[] = await this.sendBulkActionToBackend(MotionAction.CREATE, payload); + for (const entry of data) { + if (entry.sequential_number) { + await this.sequentialNumber.setSequentialNumber( + ViewMotion.COLLECTION, + this.activeMeetingId, + entry.sequential_number, + entry.id + ); + } + } + + return data; } public async createForwarded( diff --git a/client/src/app/gateways/repositories/motions/motion-state-repository.service/motion-state-repository.service.ts b/client/src/app/gateways/repositories/motions/motion-state-repository.service/motion-state-repository.service.ts index 58171da20e0..ace68340faa 100644 --- a/client/src/app/gateways/repositories/motions/motion-state-repository.service/motion-state-repository.service.ts +++ b/client/src/app/gateways/repositories/motions/motion-state-repository.service/motion-state-repository.service.ts @@ -1,4 +1,4 @@ -import { inject, Service } from '@angular/core'; +import { Service } from '@angular/core'; import { Identifiable } from '@app/domain/interfaces'; import { MotionState } from '@app/domain/models/motions/motion-state'; import { Action } from '@app/gateways/actions'; @@ -6,15 +6,11 @@ import { ViewMotionState } from '@app/site/pages/meetings/pages/motions'; import { map, Observable } from 'rxjs'; import { BaseMeetingRelatedRepository } from '../../base-meeting-related-repository'; -import { RepositoryMeetingServiceCollectorService } from '../../repository-meeting-service-collector.service'; import { MotionStateAction } from './motion-state.action'; @Service() export class MotionStateRepositoryService extends BaseMeetingRelatedRepository { - public constructor() { - const repositoryServiceCollector = inject(RepositoryMeetingServiceCollectorService); - super(repositoryServiceCollector, MotionState); - } + public baseModelCtor = MotionState; public getTitle = (viewMotionState: ViewMotionState): string => viewMotionState.name; diff --git a/client/src/app/gateways/repositories/motions/motion-submitter-repository.service/motion-submitter-repository.service.ts b/client/src/app/gateways/repositories/motions/motion-submitter-repository.service/motion-submitter-repository.service.ts index b2d9c638c45..6ea30edd331 100644 --- a/client/src/app/gateways/repositories/motions/motion-submitter-repository.service/motion-submitter-repository.service.ts +++ b/client/src/app/gateways/repositories/motions/motion-submitter-repository.service/motion-submitter-repository.service.ts @@ -1,8 +1,7 @@ -import { inject, Service } from '@angular/core'; +import { Service } from '@angular/core'; import { MotionSubmitter } from '@app/domain/models/motions/motion-submitter'; import { ViewMotionSubmitter } from '../../../../site/pages/meetings/pages/motions/modules/submitters/view-models/view-motion-submitter'; -import { RepositoryMeetingServiceCollectorService } from '../../repository-meeting-service-collector.service'; import { BaseMotionMeetingUserRepositoryService } from '../util'; import { MotionSubmitterAction } from './motion-submitter.action'; @@ -11,12 +10,10 @@ export class MotionSubmitterRepositoryService extends BaseMotionMeetingUserRepos ViewMotionSubmitter, MotionSubmitter > { + protected actionDefs = MotionSubmitterAction; protected sortPayloadField = `motion_submitter_ids`; - public constructor() { - const repositoryServiceCollector = inject(RepositoryMeetingServiceCollectorService); - super(repositoryServiceCollector, MotionSubmitter, MotionSubmitterAction); - } + public baseModelCtor = MotionSubmitter; public getVerboseName = (plural = false): string => this.translate.instant(plural ? `Submitters` : `Submitter`); } diff --git a/client/src/app/gateways/repositories/motions/motion-supporter/motion-supporter-repository.service.ts b/client/src/app/gateways/repositories/motions/motion-supporter/motion-supporter-repository.service.ts index 7a3d498d237..362bada5cc7 100644 --- a/client/src/app/gateways/repositories/motions/motion-supporter/motion-supporter-repository.service.ts +++ b/client/src/app/gateways/repositories/motions/motion-supporter/motion-supporter-repository.service.ts @@ -1,11 +1,10 @@ -import { inject, Service } from '@angular/core'; +import { Service } from '@angular/core'; import { Identifiable } from '@app/domain/interfaces'; import { MotionSupporter } from '@app/domain/models/motions/motion-supporter'; import { Action } from '@app/gateways/actions'; import { ViewMotionSupporter } from '../../../../site/pages/meetings/pages/motions/modules/supporters/view-models/view-motion-supporter'; import { BaseMeetingRelatedRepository } from '../../base-meeting-related-repository'; -import { RepositoryMeetingServiceCollectorService } from '../../repository-meeting-service-collector.service'; import { MotionSupporterAction } from './motion-supporter.action'; @Service() @@ -16,10 +15,7 @@ export class MotionSupporterRepositoryService extends BaseMeetingRelatedReposito public getVerboseName = (plural = false): string => this.translate.instant(plural ? `Motion supporters` : `Motion supporter`); - public constructor() { - const repositoryServiceCollector = inject(RepositoryMeetingServiceCollectorService); - super(repositoryServiceCollector, MotionSupporter); - } + public baseModelCtor = MotionSupporter; public getTitle = (model: ViewMotionSupporter): string => model?.user?.getTitle() || this.translate.instant(`Deleted user`); diff --git a/client/src/app/gateways/repositories/motions/motion-workflow-repository.service/motion-workflow-repository.service.ts b/client/src/app/gateways/repositories/motions/motion-workflow-repository.service/motion-workflow-repository.service.ts index c7b662836b2..abc4024204c 100644 --- a/client/src/app/gateways/repositories/motions/motion-workflow-repository.service/motion-workflow-repository.service.ts +++ b/client/src/app/gateways/repositories/motions/motion-workflow-repository.service/motion-workflow-repository.service.ts @@ -1,4 +1,4 @@ -import { inject, Service } from '@angular/core'; +import { Service } from '@angular/core'; import { Identifiable } from '@app/domain/interfaces'; import { MotionWorkflow } from '@app/domain/models/motions/motion-workflow'; import { Action } from '@app/gateways/actions'; @@ -6,15 +6,11 @@ import { ViewMotionWorkflow } from '@app/site/pages/meetings/pages/motions'; import { Fieldsets, ROUTING_FIELDSET } from '@app/site/services/model-request-builder'; import { BaseMeetingRelatedRepository } from '../../base-meeting-related-repository'; -import { RepositoryMeetingServiceCollectorService } from '../../repository-meeting-service-collector.service'; import { MotionWorkflowAction } from './motion-workflow.action'; @Service() export class MotionWorkflowRepositoryService extends BaseMeetingRelatedRepository { - public constructor() { - const repositoryServiceCollector = inject(RepositoryMeetingServiceCollectorService); - super(repositoryServiceCollector, MotionWorkflow); - } + public baseModelCtor = MotionWorkflow; public override getFieldsets(): Fieldsets { const routingFields: (keyof MotionWorkflow)[] = [`sequential_number`, `meeting_id`, `name`]; diff --git a/client/src/app/gateways/repositories/motions/motion-working-group-speaker-repository/motion-working-group-speaker-repository.service.ts b/client/src/app/gateways/repositories/motions/motion-working-group-speaker-repository/motion-working-group-speaker-repository.service.ts index 4538317ca6d..356e5b05a7c 100644 --- a/client/src/app/gateways/repositories/motions/motion-working-group-speaker-repository/motion-working-group-speaker-repository.service.ts +++ b/client/src/app/gateways/repositories/motions/motion-working-group-speaker-repository/motion-working-group-speaker-repository.service.ts @@ -1,8 +1,7 @@ -import { inject, Service } from '@angular/core'; +import { Service } from '@angular/core'; import { MotionWorkingGroupSpeaker } from '@app/domain/models/motions/motion-working-group-speaker'; import { ViewMotionWorkingGroupSpeaker } from '../../../../site/pages/meetings/pages/motions/modules/working-group-speakers/view-models/view-motion-working-group-speaker'; -import { RepositoryMeetingServiceCollectorService } from '../../repository-meeting-service-collector.service'; import { BaseMotionMeetingUserRepositoryService } from '../util'; import { MotionWorkingGroupSpeakerAction } from './motion-working-group-speaker.action'; @@ -11,12 +10,10 @@ export class MotionWorkingGroupSpeakerRepositoryService extends BaseMotionMeetin ViewMotionWorkingGroupSpeaker, MotionWorkingGroupSpeaker > { + protected actionDefs = MotionWorkingGroupSpeakerAction; protected sortPayloadField = `motion_working_group_speaker_ids`; - public constructor() { - const repositoryServiceCollector = inject(RepositoryMeetingServiceCollectorService); - super(repositoryServiceCollector, MotionWorkingGroupSpeaker, MotionWorkingGroupSpeakerAction); - } + public baseModelCtor = MotionWorkingGroupSpeaker; public getVerboseName = (plural = false): string => this.translate.instant(plural ? `Spokespersons` : `Spokesperson`); diff --git a/client/src/app/gateways/repositories/motions/personal-note-repository.service/personal-note-repository.service.ts b/client/src/app/gateways/repositories/motions/personal-note-repository.service/personal-note-repository.service.ts index b7a82bcd564..ebf5a2a9275 100644 --- a/client/src/app/gateways/repositories/motions/personal-note-repository.service/personal-note-repository.service.ts +++ b/client/src/app/gateways/repositories/motions/personal-note-repository.service/personal-note-repository.service.ts @@ -1,4 +1,4 @@ -import { inject, Service } from '@angular/core'; +import { Service } from '@angular/core'; import { Fqid } from '@app/domain/definitions/key-types'; import { Identifiable } from '@app/domain/interfaces'; import { PersonalNote } from '@app/domain/models/motions/personal-note'; @@ -6,15 +6,11 @@ import { Action } from '@app/gateways/actions'; import { BaseMeetingRelatedRepository } from '@app/gateways/repositories/base-meeting-related-repository'; import { ViewPersonalNote } from '@app/site/pages/meetings/pages/motions'; -import { RepositoryMeetingServiceCollectorService } from '../../repository-meeting-service-collector.service'; import { PersonalNoteAction } from './personal-note.action'; @Service() export class PersonalNoteRepositoryService extends BaseMeetingRelatedRepository { - public constructor() { - const repositoryServiceCollector = inject(RepositoryMeetingServiceCollectorService); - super(repositoryServiceCollector, PersonalNote); - } + public baseModelCtor = PersonalNote; public getTitle = (): string => this.getVerboseName(); diff --git a/client/src/app/gateways/repositories/motions/util.ts b/client/src/app/gateways/repositories/motions/util.ts index 703f3012dfa..5fe8f89c8ca 100644 --- a/client/src/app/gateways/repositories/motions/util.ts +++ b/client/src/app/gateways/repositories/motions/util.ts @@ -1,10 +1,10 @@ +import { Service } from '@angular/core'; import { Identifiable } from '@app/domain/interfaces'; -import { BaseModel, ModelConstructor } from '@app/domain/models/base/base-model'; +import { BaseModel } from '@app/domain/models/base/base-model'; import { Action } from '@app/gateways/actions'; import { BaseHasMeetingUserViewModel } from '@app/site/pages/meetings/base/base-has-meeting-user-view-model'; import { BaseMeetingRelatedRepository } from '../base-meeting-related-repository'; -import { RepositoryMeetingServiceCollectorService } from '../repository-meeting-service-collector.service'; interface MotionMeetingUserActions { CREATE: string; @@ -12,20 +12,14 @@ interface MotionMeetingUserActions { SORT: string; } +@Service() export abstract class BaseMotionMeetingUserRepositoryService< V extends BaseHasMeetingUserViewModel, M extends BaseModel > extends BaseMeetingRelatedRepository { + protected abstract actionDefs: MotionMeetingUserActions; protected abstract sortPayloadField: string; - public constructor( - repositoryServiceCollector: RepositoryMeetingServiceCollectorService, - constructor: ModelConstructor, - private actionDefs: MotionMeetingUserActions - ) { - super(repositoryServiceCollector, constructor); - } - public getTitle = (model: V): string => model?.user?.getTitle() || this.translate.instant(`Deleted user`); public create(motion: Identifiable, ...meetingUsers: Identifiable[]): Action { diff --git a/client/src/app/gateways/repositories/organization-repository.service.ts b/client/src/app/gateways/repositories/organization-repository.service.ts index 50cb2db39c5..9cadba04b46 100644 --- a/client/src/app/gateways/repositories/organization-repository.service.ts +++ b/client/src/app/gateways/repositories/organization-repository.service.ts @@ -1,18 +1,14 @@ -import { inject, Service } from '@angular/core'; +import { Service } from '@angular/core'; import { ORGANIZATION_ID } from '@app/site/pages/organization/services/organization.service'; import { Organization, OrganizationAction, OrganizationSetting } from '../../domain/models/organizations/organization'; import { ViewOrganization } from '../../site/pages/organization/view-models/view-organization'; -import { Fieldsets } from '../../site/services/model-request-builder'; +import { Fieldsets } from '../../site/services/model-request-builder/model-request-builder.service'; import { BaseRepository } from './base-repository'; -import { RepositoryServiceCollectorService } from './repository-service-collector.service'; @Service() export class OrganizationRepositoryService extends BaseRepository { - public constructor() { - const repositoryServiceCollector = inject(RepositoryServiceCollectorService); - super(repositoryServiceCollector, Organization); - } + public baseModelCtor = Organization; public getTitle = (viewOrganization: ViewOrganization): string => viewOrganization.name; diff --git a/client/src/app/gateways/repositories/organization-tags/organization-tag-repository.service.ts b/client/src/app/gateways/repositories/organization-tags/organization-tag-repository.service.ts index 4b4e7ee3f93..e056a3ee9a3 100644 --- a/client/src/app/gateways/repositories/organization-tags/organization-tag-repository.service.ts +++ b/client/src/app/gateways/repositories/organization-tags/organization-tag-repository.service.ts @@ -1,24 +1,18 @@ -import { Injectable } from '@angular/core'; +import { inject, Service } from '@angular/core'; import { ORGANIZATION_ID } from '@app/site/pages/organization/services/organization.service'; -import { Identifiable } from '../../../domain/interfaces'; +import { Identifiable } from '../../../domain/interfaces/identifiable'; import { OrganizationTag } from '../../../domain/models/organization-tags/organization-tag'; -import { ViewOrganizationTag } from '../../../site/pages/organization/pages/organization-tags'; +import { ViewOrganizationTag } from '../../../site/pages/organization/pages/organization-tags/view-models/view-organization-tag'; import { ThemeService } from '../../../site/services/theme.service'; import { BaseRepository } from '../base-repository'; -import { RepositoryServiceCollectorService } from '../repository-service-collector.service'; import { OrganizationTagAction } from './organization-tag.action'; -@Injectable({ - providedIn: `root` -}) +@Service() export class OrganizationTagRepositoryService extends BaseRepository { - public constructor( - serviceCollector: RepositoryServiceCollectorService, - private theme: ThemeService - ) { - super(serviceCollector, OrganizationTag); - } + public baseModelCtor = OrganizationTag; + + private theme = inject(ThemeService); public getVerboseName = (plural?: boolean): string => (plural ? `Tags` : `Tag`); public getTitle = (viewModel: ViewOrganizationTag): string => viewModel.name; diff --git a/client/src/app/gateways/repositories/point-of-order-category/point-of-order-category-repository.service.ts b/client/src/app/gateways/repositories/point-of-order-category/point-of-order-category-repository.service.ts index 42ac1ff0a50..13af42b5ba2 100644 --- a/client/src/app/gateways/repositories/point-of-order-category/point-of-order-category-repository.service.ts +++ b/client/src/app/gateways/repositories/point-of-order-category/point-of-order-category-repository.service.ts @@ -1,14 +1,13 @@ -import { inject, Service } from '@angular/core'; +import { Service } from '@angular/core'; import { Id } from '@app/domain/definitions/key-types'; import { Identifiable } from '@app/domain/interfaces'; import { PointOfOrderCategory } from '@app/domain/models/point-of-order-category/point-of-order-category'; import { ListUpdateData } from '@app/infrastructure/utils'; import { ViewPointOfOrderCategory } from '@app/site/pages/meetings/pages/agenda/modules/list-of-speakers/view-models/view-point-of-order-category'; -import { Action } from '../../actions'; +import { Action } from '../../actions/action'; import { BaseMeetingRelatedRepository } from '../base-meeting-related-repository'; import { CanPerformListUpdates } from '../base-repository'; -import { RepositoryMeetingServiceCollectorService } from '../repository-meeting-service-collector.service'; import { PointOfOrderCategoryAction } from './point-of-order-category.action'; @Service() @@ -16,10 +15,7 @@ export class PointOfOrderCategoryRepositoryService extends BaseMeetingRelatedRepository implements CanPerformListUpdates { - public constructor() { - const repositoryServiceCollector = inject(RepositoryMeetingServiceCollectorService); - super(repositoryServiceCollector, PointOfOrderCategory); - } + public baseModelCtor = PointOfOrderCategory; public getVerboseName = (plural?: boolean): string => plural ? `Point of order categories` : `Point of order category`; diff --git a/client/src/app/gateways/repositories/polls/poll-ballot-repository.service/poll-ballot-repository.service.ts b/client/src/app/gateways/repositories/polls/poll-ballot-repository.service/poll-ballot-repository.service.ts index 5ff3bc576c0..5ce3791ce6f 100644 --- a/client/src/app/gateways/repositories/polls/poll-ballot-repository.service/poll-ballot-repository.service.ts +++ b/client/src/app/gateways/repositories/polls/poll-ballot-repository.service/poll-ballot-repository.service.ts @@ -5,7 +5,6 @@ import { ViewPoll, ViewPollBallot } from '@app/site/pages/meetings/pages/polls'; import { BehaviorSubject } from 'rxjs'; import { BaseMeetingRelatedRepository } from '../../base-meeting-related-repository'; -import { RepositoryMeetingServiceCollectorService } from '../../repository-meeting-service-collector.service'; /** * keys are poll ids, @@ -22,9 +21,7 @@ export interface VotePayload { providedIn: `root` }) export class PollBallotRepositoryService extends BaseMeetingRelatedRepository { - public constructor(repositoryServiceCollector: RepositoryMeetingServiceCollectorService) { - super(repositoryServiceCollector, PollBallot); - } + protected baseModelCtor = PollBallot; public getTitle = (): string => `Vote`; diff --git a/client/src/app/gateways/repositories/polls/poll-ballot-user-repository.service.ts b/client/src/app/gateways/repositories/polls/poll-ballot-user-repository.service.ts index 3765029bd7c..e83fe8e17c5 100644 --- a/client/src/app/gateways/repositories/polls/poll-ballot-user-repository.service.ts +++ b/client/src/app/gateways/repositories/polls/poll-ballot-user-repository.service.ts @@ -3,15 +3,12 @@ import { PollBallotUser } from '@app/domain/models/poll/poll-ballot-user'; import { ViewPollBallotUser } from '@app/site/pages/meetings/pages/polls/view-models/poll-ballot-user'; import { BaseMeetingRelatedRepository } from '../base-meeting-related-repository'; -import { RepositoryMeetingServiceCollectorService } from '../repository-meeting-service-collector.service'; @Injectable({ providedIn: `root` }) export class PollBallotUserRepositoryService extends BaseMeetingRelatedRepository { - public constructor(repositoryServiceCollector: RepositoryMeetingServiceCollectorService) { - super(repositoryServiceCollector, PollBallotUser); - } + protected baseModelCtor = PollBallotUser; public getTitle = (viewBallotUser: ViewPollBallotUser): string => viewBallotUser.user?.getTitle() ?? `Unknown`; diff --git a/client/src/app/gateways/repositories/polls/poll-config-approval-repository.service.ts b/client/src/app/gateways/repositories/polls/poll-config-approval-repository.service.ts index 92998646738..5a68d45bc8d 100644 --- a/client/src/app/gateways/repositories/polls/poll-config-approval-repository.service.ts +++ b/client/src/app/gateways/repositories/polls/poll-config-approval-repository.service.ts @@ -3,7 +3,6 @@ import { PollConfigApproval } from '@app/domain/models/poll/poll-config-approval import { ViewPollConfigApproval } from '@app/site/pages/meetings/pages/polls/view-models/poll-config-approval'; import { BaseMeetingRelatedRepository } from '../base-meeting-related-repository'; -import { RepositoryMeetingServiceCollectorService } from '../repository-meeting-service-collector.service'; @Injectable({ providedIn: `root` @@ -12,9 +11,7 @@ export class PollConfigApprovalRepositoryService extends BaseMeetingRelatedRepos ViewPollConfigApproval, PollConfigApproval > { - public constructor(repositoryServiceCollector: RepositoryMeetingServiceCollectorService) { - super(repositoryServiceCollector, PollConfigApproval); - } + protected baseModelCtor = PollConfigApproval; public getTitle = (_viewPollConfigApproval: ViewPollConfigApproval): string => `Approval poll config`; diff --git a/client/src/app/gateways/repositories/polls/poll-config-rating-approval-repository.service.ts b/client/src/app/gateways/repositories/polls/poll-config-rating-approval-repository.service.ts index b07976b1220..1e6b27df8d6 100644 --- a/client/src/app/gateways/repositories/polls/poll-config-rating-approval-repository.service.ts +++ b/client/src/app/gateways/repositories/polls/poll-config-rating-approval-repository.service.ts @@ -3,7 +3,6 @@ import { PollConfigRatingApproval } from '@app/domain/models/poll/poll-config-ra import { ViewPollConfigRatingApproval } from '@app/site/pages/meetings/pages/polls/view-models/poll-config-rating-approval'; import { BaseMeetingRelatedRepository } from '../base-meeting-related-repository'; -import { RepositoryMeetingServiceCollectorService } from '../repository-meeting-service-collector.service'; @Injectable({ providedIn: `root` @@ -12,9 +11,7 @@ export class PollConfigRatingApprovalRepositoryService extends BaseMeetingRelate ViewPollConfigRatingApproval, PollConfigRatingApproval > { - public constructor(repositoryServiceCollector: RepositoryMeetingServiceCollectorService) { - super(repositoryServiceCollector, PollConfigRatingApproval); - } + protected baseModelCtor = PollConfigRatingApproval; public getTitle = (_viewPollConfigRatingApproval: ViewPollConfigRatingApproval): string => `Rating approval poll config`; diff --git a/client/src/app/gateways/repositories/polls/poll-config-rating-score-repository.service.ts b/client/src/app/gateways/repositories/polls/poll-config-rating-score-repository.service.ts index 7b1b4b98c39..25fa6ae3ecb 100644 --- a/client/src/app/gateways/repositories/polls/poll-config-rating-score-repository.service.ts +++ b/client/src/app/gateways/repositories/polls/poll-config-rating-score-repository.service.ts @@ -3,7 +3,6 @@ import { PollConfigRatingScore } from '@app/domain/models/poll/poll-config-ratin import { ViewPollConfigRatingScore } from '@app/site/pages/meetings/pages/polls/view-models/poll-config-rating-score'; import { BaseMeetingRelatedRepository } from '../base-meeting-related-repository'; -import { RepositoryMeetingServiceCollectorService } from '../repository-meeting-service-collector.service'; @Injectable({ providedIn: `root` @@ -12,9 +11,7 @@ export class PollConfigRatingScoreRepositoryService extends BaseMeetingRelatedRe ViewPollConfigRatingScore, PollConfigRatingScore > { - public constructor(repositoryServiceCollector: RepositoryMeetingServiceCollectorService) { - super(repositoryServiceCollector, PollConfigRatingScore); - } + protected baseModelCtor = PollConfigRatingScore; public getTitle = (_viewPollConfigRatingScore: ViewPollConfigRatingScore): string => `Rating score poll config`; diff --git a/client/src/app/gateways/repositories/polls/poll-config-selection-repository.service.ts b/client/src/app/gateways/repositories/polls/poll-config-selection-repository.service.ts index ff24fab36e3..40f35ed7e8e 100644 --- a/client/src/app/gateways/repositories/polls/poll-config-selection-repository.service.ts +++ b/client/src/app/gateways/repositories/polls/poll-config-selection-repository.service.ts @@ -3,7 +3,6 @@ import { PollConfigSelection } from '@app/domain/models/poll/poll-config-selecti import { ViewPollConfigSelection } from '@app/site/pages/meetings/pages/polls/view-models/poll-config-selection'; import { BaseMeetingRelatedRepository } from '../base-meeting-related-repository'; -import { RepositoryMeetingServiceCollectorService } from '../repository-meeting-service-collector.service'; @Injectable({ providedIn: `root` @@ -12,9 +11,7 @@ export class PollConfigSelectionRepositoryService extends BaseMeetingRelatedRepo ViewPollConfigSelection, PollConfigSelection > { - public constructor(repositoryServiceCollector: RepositoryMeetingServiceCollectorService) { - super(repositoryServiceCollector, PollConfigSelection); - } + protected baseModelCtor = PollConfigSelection; public getTitle = (_viewPollConfigSelection: ViewPollConfigSelection): string => `Selection poll config`; diff --git a/client/src/app/gateways/repositories/polls/poll-config-stv-scottish-repository.service.ts b/client/src/app/gateways/repositories/polls/poll-config-stv-scottish-repository.service.ts index 23dd1a81b17..a05b5e45f5b 100644 --- a/client/src/app/gateways/repositories/polls/poll-config-stv-scottish-repository.service.ts +++ b/client/src/app/gateways/repositories/polls/poll-config-stv-scottish-repository.service.ts @@ -3,7 +3,6 @@ import { PollConfigStvScottish } from '@app/domain/models/poll/poll-config-stv-s import { ViewPollConfigStvScottish } from '@app/site/pages/meetings/pages/polls/view-models/poll-config-stv-scottish'; import { BaseMeetingRelatedRepository } from '../base-meeting-related-repository'; -import { RepositoryMeetingServiceCollectorService } from '../repository-meeting-service-collector.service'; @Injectable({ providedIn: `root` @@ -12,9 +11,7 @@ export class PollConfigStvScottishRepositoryService extends BaseMeetingRelatedRe ViewPollConfigStvScottish, PollConfigStvScottish > { - public constructor(repositoryServiceCollector: RepositoryMeetingServiceCollectorService) { - super(repositoryServiceCollector, PollConfigStvScottish); - } + protected baseModelCtor = PollConfigStvScottish; public getTitle = (_viewPollConfigStvScottish: ViewPollConfigStvScottish): string => `STV (Scottish) poll config`; diff --git a/client/src/app/gateways/repositories/polls/poll-option-repository.service.ts b/client/src/app/gateways/repositories/polls/poll-option-repository.service.ts index 1f50ca306d6..ea0a44d4d08 100644 --- a/client/src/app/gateways/repositories/polls/poll-option-repository.service.ts +++ b/client/src/app/gateways/repositories/polls/poll-option-repository.service.ts @@ -4,15 +4,12 @@ import { ViewPollOption } from '@app/site/pages/meetings/pages/polls/view-models import { _ } from '@ngx-translate/core'; import { BaseMeetingRelatedRepository } from '../base-meeting-related-repository'; -import { RepositoryMeetingServiceCollectorService } from '../repository-meeting-service-collector.service'; @Injectable({ providedIn: `root` }) export class PollOptionRepositoryService extends BaseMeetingRelatedRepository { - public constructor(repositoryServiceCollector: RepositoryMeetingServiceCollectorService) { - super(repositoryServiceCollector, PollOption); - } + protected baseModelCtor = PollOption; public getTitle = (viewPollOption: ViewPollOption): string => viewPollOption.meeting_user_id ? viewPollOption.meeting_user?.user?.getShortName() : viewPollOption.text; diff --git a/client/src/app/gateways/repositories/polls/poll-repository.service/poll-repository.service.ts b/client/src/app/gateways/repositories/polls/poll-repository.service/poll-repository.service.ts index 3f5422840f3..1771b643566 100644 --- a/client/src/app/gateways/repositories/polls/poll-repository.service/poll-repository.service.ts +++ b/client/src/app/gateways/repositories/polls/poll-repository.service/poll-repository.service.ts @@ -1,28 +1,22 @@ -import { inject, Injectable } from '@angular/core'; +import { inject, Service } from '@angular/core'; import { Id } from '@app/domain/definitions/key-types'; import { Poll } from '@app/domain/models/poll/poll'; import { PollState, PollVisibility } from '@app/domain/models/poll/poll-constants'; import { PollCreatePayload, PollUpdatePayload, VoteApiService } from '@app/gateways/vote-api.service'; -import { ViewPoll } from '@app/site/pages/meetings/pages/polls'; +import { ViewPoll } from '@app/site/pages/meetings/pages/polls/view-models'; import { ViewPollBallotUser } from '@app/site/pages/meetings/pages/polls/view-models/poll-ballot-user'; import { Fieldsets } from '@app/site/services/model-request-builder'; import { map, Observable, switchMap, takeWhile } from 'rxjs'; import { Identifiable } from '../../../../domain/interfaces/identifiable'; import { BaseMeetingRelatedRepository } from '../../base-meeting-related-repository'; -import { RepositoryMeetingServiceCollectorService } from '../../repository-meeting-service-collector.service'; import { PollAction } from './poll.action'; -@Injectable({ - providedIn: `root` -}) +@Service() export class PollRepositoryService extends BaseMeetingRelatedRepository { private voteApi = inject(VoteApiService); - public constructor() { - const repoServiceCollector = inject(RepositoryMeetingServiceCollectorService); - super(repoServiceCollector, Poll); - } + public baseModelCtor = Poll; public getVerboseName = (plural?: boolean): string => (plural ? `Polls` : `Poll`); public getTitle = (viewModel: ViewPoll): string => viewModel.title; diff --git a/client/src/app/gateways/repositories/projections/projection-repository.service.ts b/client/src/app/gateways/repositories/projections/projection-repository.service.ts index 7d5aa73c8ae..7117ec9c7e0 100644 --- a/client/src/app/gateways/repositories/projections/projection-repository.service.ts +++ b/client/src/app/gateways/repositories/projections/projection-repository.service.ts @@ -1,19 +1,15 @@ -import { inject, Service } from '@angular/core'; +import { Service } from '@angular/core'; import { Identifiable } from '@app/domain/interfaces'; import { Projection } from '@app/domain/models/projector/projection'; import { ViewProjection } from '@app/site/pages/meetings/pages/projectors'; import { Fieldsets } from '@app/site/services/model-request-builder'; import { BaseMeetingRelatedRepository } from '../base-meeting-related-repository'; -import { RepositoryMeetingServiceCollectorService } from '../repository-meeting-service-collector.service'; import { ProjectionAction } from './projection.action'; @Service() export class ProjectionRepositoryService extends BaseMeetingRelatedRepository { - public constructor() { - const repositoryServiceCollector = inject(RepositoryMeetingServiceCollectorService); - super(repositoryServiceCollector, Projection); - } + public baseModelCtor = Projection; public getVerboseName = (plural = false): string => this.translate.instant(plural ? `Projections` : `Projection`); diff --git a/client/src/app/gateways/repositories/projector-countdowns/projector-countdown-repository.service.ts b/client/src/app/gateways/repositories/projector-countdowns/projector-countdown-repository.service.ts index 22579ac109f..77a66551236 100644 --- a/client/src/app/gateways/repositories/projector-countdowns/projector-countdown-repository.service.ts +++ b/client/src/app/gateways/repositories/projector-countdowns/projector-countdown-repository.service.ts @@ -5,7 +5,6 @@ import { ViewProjectorCountdown } from '@app/site/pages/meetings/pages/projector import { ServerTimeService } from '../../server-time.service'; import { BaseMeetingRelatedRepository } from '../base-meeting-related-repository'; -import { RepositoryMeetingServiceCollectorService } from '../repository-meeting-service-collector.service'; import { ProjectorCountdownAction } from './projector-countdown.action'; @Service() @@ -15,10 +14,7 @@ export class ProjectorCountdownRepositoryService extends BaseMeetingRelatedRepos > { private serverTime = inject(ServerTimeService); - public constructor() { - const repositoryServiceCollector = inject(RepositoryMeetingServiceCollectorService); - super(repositoryServiceCollector, ProjectorCountdown); - } + public baseModelCtor = ProjectorCountdown; public getTitle = (viewProjectorCountdown: ViewProjectorCountdown): string => viewProjectorCountdown.description diff --git a/client/src/app/gateways/repositories/projector-messages/projector-message-repository.service.ts b/client/src/app/gateways/repositories/projector-messages/projector-message-repository.service.ts index e37e64fd913..ded846da840 100644 --- a/client/src/app/gateways/repositories/projector-messages/projector-message-repository.service.ts +++ b/client/src/app/gateways/repositories/projector-messages/projector-message-repository.service.ts @@ -1,10 +1,9 @@ -import { inject, Service } from '@angular/core'; +import { Service } from '@angular/core'; import { Identifiable } from '@app/domain/interfaces'; import { ProjectorMessage } from '@app/domain/models/projector/projector-message'; import { ViewProjectorMessage } from '@app/site/pages/meetings/pages/projectors'; import { BaseMeetingRelatedRepository } from '../base-meeting-related-repository'; -import { RepositoryMeetingServiceCollectorService } from '../repository-meeting-service-collector.service'; import { ProjectorMessageAction } from './projector-message.action'; @Service() @@ -12,10 +11,7 @@ export class ProjectorMessageRepositoryService extends BaseMeetingRelatedReposit ViewProjectorMessage, ProjectorMessage > { - public constructor() { - const repositoryServiceCollector = inject(RepositoryMeetingServiceCollectorService); - super(repositoryServiceCollector, ProjectorMessage); - } + public baseModelCtor = ProjectorMessage; public getTitle = (): string => this.getVerboseName(); diff --git a/client/src/app/gateways/repositories/projectors/projector-repository.service.ts b/client/src/app/gateways/repositories/projectors/projector-repository.service.ts index fd23058bbe6..0e824564ab5 100644 --- a/client/src/app/gateways/repositories/projectors/projector-repository.service.ts +++ b/client/src/app/gateways/repositories/projectors/projector-repository.service.ts @@ -1,4 +1,4 @@ -import { inject, Service } from '@angular/core'; +import { Service } from '@angular/core'; import { Id } from '@app/domain/definitions/key-types'; import { Identifiable } from '@app/domain/interfaces'; import { Projector } from '@app/domain/models/projector/projector'; @@ -6,9 +6,8 @@ import { ViewProjector } from '@app/site/pages/meetings/pages/projectors'; import { ProjectionBuildDescriptor } from '@app/site/pages/meetings/view-models/projection-build-descriptor'; import { map, Observable } from 'rxjs'; -import { Action } from '../../actions'; +import { Action } from '../../actions/action'; import { BaseMeetingRelatedRepository } from '../base-meeting-related-repository'; -import { RepositoryMeetingServiceCollectorService } from '../repository-meeting-service-collector.service'; import { ProjectorAction, ScrollScaleDirection } from './projector.action'; /** @@ -16,10 +15,7 @@ import { ProjectorAction, ScrollScaleDirection } from './projector.action'; */ @Service() export class ProjectorRepositoryService extends BaseMeetingRelatedRepository { - public constructor() { - const repositoryServiceCollector = inject(RepositoryMeetingServiceCollectorService); - super(repositoryServiceCollector, Projector); - } + public baseModelCtor = Projector; public getTitle = (viewProjector: ViewProjector): string => viewProjector.name; diff --git a/client/src/app/gateways/repositories/repository-meeting-service-collector.service.spec.ts b/client/src/app/gateways/repositories/repository-meeting-service-collector.service.spec.ts deleted file mode 100644 index 873a138f8f5..00000000000 --- a/client/src/app/gateways/repositories/repository-meeting-service-collector.service.spec.ts +++ /dev/null @@ -1,112 +0,0 @@ -import { TestBed } from '@angular/core/testing'; -import { ActiveMeetingService } from '@app/site/pages/meetings/services/active-meeting.service'; -import { ActiveMeetingIdService } from '@app/site/pages/meetings/services/active-meeting-id.service'; -import { MeetingSettingsService } from '@app/site/pages/meetings/services/meeting-settings.service'; -import { CollectionMapperService } from '@app/site/services/collection-mapper.service'; -import { DataStoreService } from '@app/site/services/data-store.service'; -import { RelationManagerService } from '@app/site/services/relation-manager.service'; -import { ViewModelStoreService } from '@app/site/services/view-model-store.service'; -import { TranslateService } from '@ngx-translate/core'; -import { firstValueFrom, skip } from 'rxjs'; - -import { ActionService } from '../actions'; -import { RepositoryMeetingServiceCollectorService } from './repository-meeting-service-collector.service'; -import { RepositoryServiceCollectorService } from './repository-service-collector.service'; - -abstract class MockService { - public abstract readonly name: keyof RepositoryMeetingServiceCollectorService; -} -class MockDataStore extends MockService { - public readonly name = `DS`; -} -class MockAction extends MockService { - public readonly name = `actionService`; -} -class MockCollectionMapper extends MockService { - public readonly name = `collectionMapperService`; -} -class MockViewModelStore extends MockService { - public readonly name = `viewModelStoreService`; -} -class MockTranslate extends MockService { - public readonly name = `translate`; -} -class MockRelationManager extends MockService { - public readonly name = `relationManager`; -} -class MockActiveMeetingId extends MockService { - public readonly name = `activeMeetingIdService`; -} -class MockActiveMeeting extends MockService { - public readonly name = `activeMeetingService`; -} -class MockMeetingSettings extends MockService { - public readonly name = `meetingSettingsService`; -} - -describe(`RepositoryMeetingServiceCollectorService and MeetingServiceCollectorService`, () => { - let service: RepositoryMeetingServiceCollectorService; - - const serviceGetterTestCases: (keyof RepositoryMeetingServiceCollectorService)[] = [ - `DS`, - `actionService`, - `collectionMapperService`, - `viewModelStoreService`, - `translate`, - `relationManager`, - `activeMeetingIdService`, - `activeMeetingService`, - `meetingSettingsService` - ]; - - beforeEach(() => { - TestBed.configureTestingModule({ - providers: [ - RepositoryMeetingServiceCollectorService, - RepositoryServiceCollectorService, - { provide: ActiveMeetingIdService, useClass: MockActiveMeetingId }, - { provide: ActiveMeetingService, useClass: MockActiveMeeting }, - { provide: MeetingSettingsService, useClass: MockMeetingSettings }, - { provide: DataStoreService, useClass: MockDataStore }, - { provide: ActionService, useClass: MockAction }, - { provide: CollectionMapperService, useClass: MockCollectionMapper }, - { provide: ViewModelStoreService, useClass: MockViewModelStore }, - { provide: TranslateService, useClass: MockTranslate }, - { provide: RelationManagerService, useClass: MockRelationManager } - ] - }); - service = TestBed.inject(RepositoryMeetingServiceCollectorService); - }); - - for (const testCase of serviceGetterTestCases) { - it(`test service getter '${testCase}'`, () => { - expect(service[testCase][`name`]).toBe(testCase); - }); - } - - it(`test collectionToKeyUpdatesObservableMap`, async () => { - service.registerNewKeyUpdates(`A collection`, [`key1`, `key2`, `abc`]); - service.registerNewKeyUpdates(`B collection`, [`1`, `2`, `something`]); - expect( - Object.keys(service.collectionToKeyUpdatesObservableMap).flatMap(key => [ - key, - service.collectionToKeyUpdatesObservableMap[key].value - ]) - ).toEqual([`A collection`, [`key1`, `key2`, `abc`], `B collection`, [`1`, `2`, `something`]]); - const promise = firstValueFrom(service.getNewKeyUpdatesObservable(`A collection`).pipe(skip(1))); - service.registerNewKeyUpdates(`A collection`, [`a`, `b`, `c`]); - await expectAsync(promise).toBeResolvedTo([`a`, `b`, `c`]); - }); - - it(`test collectionToKeyUpdatesObservableMap for yet unknown collection`, async () => { - const promise = firstValueFrom(service.getNewKeyUpdatesObservable(`C collection`).pipe(skip(1))); - expect( - Object.keys(service.collectionToKeyUpdatesObservableMap).flatMap(key => [ - key, - service.collectionToKeyUpdatesObservableMap[key].value - ]) - ).toEqual([`C collection`, []]); - service.registerNewKeyUpdates(`C collection`, [`a`, `b`, `c`]); - await expectAsync(promise).toBeResolvedTo([`a`, `b`, `c`]); - }); -}); diff --git a/client/src/app/gateways/repositories/repository-meeting-service-collector.service.ts b/client/src/app/gateways/repositories/repository-meeting-service-collector.service.ts deleted file mode 100644 index 38dfe3c7f83..00000000000 --- a/client/src/app/gateways/repositories/repository-meeting-service-collector.service.ts +++ /dev/null @@ -1,68 +0,0 @@ -import { inject, Service } from '@angular/core'; -import { TranslateService } from '@ngx-translate/core'; -import { BehaviorSubject, Observable } from 'rxjs'; - -import { ActiveMeetingService } from '../../site/pages/meetings/services/active-meeting.service'; -import { ActiveMeetingIdService } from '../../site/pages/meetings/services/active-meeting-id.service'; -import { MeetingSettingsService } from '../../site/pages/meetings/services/meeting-settings.service'; -import { CollectionMapperService } from '../../site/services/collection-mapper.service'; -import { DataStoreService } from '../../site/services/data-store.service'; -import { RelationManagerService } from '../../site/services/relation-manager.service'; -import { ViewModelStoreService } from '../../site/services/view-model-store.service'; -import { ActionService } from '../actions'; -import { RepositoryServiceCollectorService } from './repository-service-collector.service'; - -@Service() -export class RepositoryMeetingServiceCollectorService { - public get DS(): DataStoreService { - return this.repositoryServiceCollector.DS; - } - - public get actionService(): ActionService { - return this.repositoryServiceCollector.actionService; - } - - public get collectionMapperService(): CollectionMapperService { - return this.repositoryServiceCollector.collectionMapperService; - } - - public get viewModelStoreService(): ViewModelStoreService { - return this.repositoryServiceCollector.viewModelStoreService; - } - - public get translate(): TranslateService { - return this.repositoryServiceCollector.translate; - } - - public get relationManager(): RelationManagerService { - return this.repositoryServiceCollector.relationManager; - } - - public get collectionToKeyUpdatesObservableMap(): Record> { - return this.repositoryServiceCollector.collectionToKeyUpdatesObservableMap; - } - - private repositoryServiceCollector = inject(RepositoryServiceCollectorService); - public activeMeetingIdService = inject(ActiveMeetingIdService); - public activeMeetingService = inject(ActiveMeetingService); - public meetingSettingsService = inject(MeetingSettingsService); - - /** - * Allows repositories to register if there have been updates on a certain key of their model, - * so other repositories can check them for the sake of their resorting logic - * @param collection the calling repositories own collection - * @param newKeys the keys that were updated in the repository - */ - public registerNewKeyUpdates(collection: string, newKeys: string[]): void { - this.repositoryServiceCollector.registerNewKeyUpdates(collection, newKeys); - } - - /** - * Returns an observable that allows repositories to be notified when there are key updates on other model types - * @param collection the collection of the other model type. - * @returns an observable with the changed keys - */ - public getNewKeyUpdatesObservable(collection: string): Observable { - return this.repositoryServiceCollector.getNewKeyUpdatesObservable(collection); - } -} diff --git a/client/src/app/gateways/repositories/repository-service-collector.service.ts b/client/src/app/gateways/repositories/repository-service-collector.service.ts index 13a5a5cd17c..700653d4a00 100644 --- a/client/src/app/gateways/repositories/repository-service-collector.service.ts +++ b/client/src/app/gateways/repositories/repository-service-collector.service.ts @@ -1,25 +1,10 @@ -import { inject, Service } from '@angular/core'; -import { TranslateService } from '@ngx-translate/core'; +import { Service } from '@angular/core'; import { BehaviorSubject, Observable } from 'rxjs'; -import { CollectionMapperService } from '../../site/services/collection-mapper.service'; -import { DataStoreService } from '../../site/services/data-store.service'; -import { RelationManagerService } from '../../site/services/relation-manager.service'; -import { ViewModelStoreService } from '../../site/services/view-model-store.service'; -import { ActionService } from '../actions'; - @Service() export class RepositoryServiceCollectorService { public collectionToKeyUpdatesObservableMap: Record> = {}; - public DS = inject(DataStoreService); - public actionService = inject(ActionService); - public collectionMapperService = inject(CollectionMapperService); - public viewModelStoreService = inject(ViewModelStoreService); - public translate = inject(TranslateService); - public relationManager = inject(RelationManagerService); - // public errorService: ErrorService - /** * Allows repositories to register if there have been updates on a certain key of their model, * so other repositories can check them for the sake of their resorting logic diff --git a/client/src/app/gateways/repositories/speakers/speaker-repository.service.ts b/client/src/app/gateways/repositories/speakers/speaker-repository.service.ts index 715903d8d34..3a01fffe3cb 100644 --- a/client/src/app/gateways/repositories/speakers/speaker-repository.service.ts +++ b/client/src/app/gateways/repositories/speakers/speaker-repository.service.ts @@ -1,4 +1,4 @@ -import { inject, Service } from '@angular/core'; +import { Service } from '@angular/core'; import { Id, UnsafeHtml } from '@app/domain/definitions/key-types'; import { Identifiable } from '@app/domain/interfaces'; import { ListOfSpeakers } from '@app/domain/models/list-of-speakers/list-of-speakers'; @@ -7,7 +7,6 @@ import { SpeechState } from '@app/domain/models/speakers/speech-state'; import { ViewSpeaker } from '@app/site/pages/meetings/pages/agenda'; import { BaseMeetingRelatedRepository } from '../base-meeting-related-repository'; -import { RepositoryMeetingServiceCollectorService } from '../repository-meeting-service-collector.service'; import { SpeakerAction } from './speaker.action'; export interface PointOfOrderInformation { @@ -18,10 +17,7 @@ export interface PointOfOrderInformation { @Service() export class SpeakerRepositoryService extends BaseMeetingRelatedRepository { - public constructor() { - const repositoryServiceCollector = inject(RepositoryMeetingServiceCollectorService); - super(repositoryServiceCollector, Speaker); - } + public baseModelCtor = Speaker; public getVerboseName = (plural = false): any => this.translate.instant(plural ? `Speakers` : `Speaker`); diff --git a/client/src/app/gateways/repositories/structure-level-list-of-speakers/structure-level-list-of-speakers-repository.service.ts b/client/src/app/gateways/repositories/structure-level-list-of-speakers/structure-level-list-of-speakers-repository.service.ts index d7a34904314..d58c07353a4 100644 --- a/client/src/app/gateways/repositories/structure-level-list-of-speakers/structure-level-list-of-speakers-repository.service.ts +++ b/client/src/app/gateways/repositories/structure-level-list-of-speakers/structure-level-list-of-speakers-repository.service.ts @@ -1,21 +1,17 @@ -import { inject, Service } from '@angular/core'; +import { Service } from '@angular/core'; import { Identifiable } from '@app/domain/interfaces'; import { StructureLevelListOfSpeakers } from '@app/domain/models/structure-levels/structure-level-list-of-speakers'; import { StructureLevelListOfSpeakersAction } from '@app/gateways/repositories/structure-level-list-of-speakers/structure-level-list-of-speakers.action'; import { ViewStructureLevelListOfSpeakers } from '@app/site/pages/meetings/pages/participants/pages/structure-levels/view-models'; import { BaseMeetingRelatedRepository } from '../base-meeting-related-repository'; -import { RepositoryMeetingServiceCollectorService } from '../repository-meeting-service-collector.service'; @Service() export class StructureLevelListOfSpeakersRepositoryService extends BaseMeetingRelatedRepository< ViewStructureLevelListOfSpeakers, StructureLevelListOfSpeakers > { - public constructor() { - const repositoryServiceCollector = inject(RepositoryMeetingServiceCollectorService); - super(repositoryServiceCollector, StructureLevelListOfSpeakers); - } + public baseModelCtor = StructureLevelListOfSpeakers; public getVerboseName = (): string => `StructureLevelListOfSpeakers`; public getTitle = (): string => ``; diff --git a/client/src/app/gateways/repositories/structure-levels/structure-level-repository.service.ts b/client/src/app/gateways/repositories/structure-levels/structure-level-repository.service.ts index 5d1ed772196..9a3afb1bfac 100644 --- a/client/src/app/gateways/repositories/structure-levels/structure-level-repository.service.ts +++ b/client/src/app/gateways/repositories/structure-levels/structure-level-repository.service.ts @@ -1,21 +1,17 @@ -import { inject, Service } from '@angular/core'; +import { Service } from '@angular/core'; import { Id } from '@app/domain/definitions/key-types'; import { _ } from '@ngx-translate/core'; -import { Identifiable } from '../../../domain/interfaces'; +import { Identifiable } from '../../../domain/interfaces/identifiable'; import { StructureLevel } from '../../../domain/models/structure-levels/structure-level'; import { ViewStructureLevel } from '../../../site/pages/meetings/pages/participants/pages/structure-levels/view-models/view-structure-level'; -import { Action } from '../../actions'; +import { Action } from '../../actions/action'; import { BaseMeetingRelatedRepository } from '../base-meeting-related-repository'; -import { RepositoryMeetingServiceCollectorService } from '../repository-meeting-service-collector.service'; import { StructureLevelAction } from './structure-level.action'; @Service() export class StructureLevelRepositoryService extends BaseMeetingRelatedRepository { - public constructor() { - const repositoryServiceCollector = inject(RepositoryMeetingServiceCollectorService); - super(repositoryServiceCollector, StructureLevel); - } + public baseModelCtor = StructureLevel; public getVerboseName = (plural?: boolean): string => (plural ? _(`Structure levels`) : _(`Structure level`)); public getTitle = (viewModel: ViewStructureLevel): string => viewModel.name; diff --git a/client/src/app/gateways/repositories/tags/tag-repository.service.ts b/client/src/app/gateways/repositories/tags/tag-repository.service.ts index c8165e1ca7f..a338eec078a 100644 --- a/client/src/app/gateways/repositories/tags/tag-repository.service.ts +++ b/client/src/app/gateways/repositories/tags/tag-repository.service.ts @@ -1,18 +1,17 @@ -import { Injectable } from '@angular/core'; +import { Service } from '@angular/core'; import { Identifiable } from '@app/domain/interfaces'; import { Tag } from '@app/domain/models/tag/tag'; import { ViewTag } from '@app/site/pages/meetings/pages/motions'; import { BaseMeetingRelatedRepository } from '../base-meeting-related-repository'; -import { RepositoryMeetingServiceCollectorService } from '../repository-meeting-service-collector.service'; import { TagAction } from './tag.action'; -@Injectable({ - providedIn: `root` -}) +@Service() export class TagRepositoryService extends BaseMeetingRelatedRepository { - public constructor(repositoryServiceCollector: RepositoryMeetingServiceCollectorService) { - super(repositoryServiceCollector, Tag); + public baseModelCtor = Tag; + + public constructor() { + super(); this.initSorting(); } diff --git a/client/src/app/gateways/repositories/themes/theme-repository.service.ts b/client/src/app/gateways/repositories/themes/theme-repository.service.ts index 558f0b13b03..7a2a07a4482 100644 --- a/client/src/app/gateways/repositories/themes/theme-repository.service.ts +++ b/client/src/app/gateways/repositories/themes/theme-repository.service.ts @@ -1,4 +1,4 @@ -import { inject, Service } from '@angular/core'; +import { Service } from '@angular/core'; import { Id } from '@app/domain/definitions/key-types'; import { Identifiable } from '@app/domain/interfaces'; import { Theme } from '@app/domain/models/theme/theme'; @@ -6,15 +6,11 @@ import { BaseRepository } from '@app/gateways/repositories/base-repository'; import { ViewTheme } from '@app/site/pages/organization/pages/designs'; import { Fieldsets } from '@app/site/services/model-request-builder'; -import { RepositoryServiceCollectorService } from '../repository-service-collector.service'; import { ThemeAction } from './theme.action'; @Service() export class ThemeRepositoryService extends BaseRepository { - public constructor() { - const repositoryServiceCollector = inject(RepositoryServiceCollectorService); - super(repositoryServiceCollector, Theme); - } + public baseModelCtor = Theme; public getVerboseName = (plural?: boolean): string => (plural ? `Themes` : `Theme`); public getTitle = (viewModel: ViewTheme): string => viewModel.name; diff --git a/client/src/app/gateways/repositories/topics/topic-repository.service.ts b/client/src/app/gateways/repositories/topics/topic-repository.service.ts index c9915f9aca5..9809c848736 100644 --- a/client/src/app/gateways/repositories/topics/topic-repository.service.ts +++ b/client/src/app/gateways/repositories/topics/topic-repository.service.ts @@ -1,24 +1,18 @@ -import { inject, Service } from '@angular/core'; +import { Service } from '@angular/core'; import { Id } from '@app/domain/definitions/key-types'; import { Identifiable } from '@app/domain/interfaces'; import { Topic } from '@app/domain/models/topics/topic'; import { ViewAgendaItem, ViewTopic } from '@app/site/pages/meetings/pages/agenda'; import { BackendImportRawPreview } from '@app/ui/modules/import-list/definitions/backend-import-preview'; -import { Action } from '../../actions'; -import { createAgendaItem } from '../agenda'; -import { AgendaItemRepositoryService } from '../agenda/agenda-item-repository.service'; +import { Action } from '../../actions/action'; +import { createAgendaItem } from '../agenda/functions'; import { BaseAgendaItemAndListOfSpeakersContentObjectRepository } from '../base-agenda-item-and-list-of-speakers-content-object-repository'; -import { RepositoryMeetingServiceCollectorService } from '../repository-meeting-service-collector.service'; import { TopicAction } from './topic.action'; @Service() export class TopicRepositoryService extends BaseAgendaItemAndListOfSpeakersContentObjectRepository { - public constructor() { - const repositoryServiceCollector = inject(RepositoryMeetingServiceCollectorService); - const agendaItemRepo = inject(AgendaItemRepositoryService); - super(repositoryServiceCollector, Topic, agendaItemRepo); - } + protected baseModelCtor = Topic; public create(...topics: any[]): Promise { const payload: any[] = topics.map(partialTopic => this.getCreatePayload(partialTopic)); diff --git a/client/src/app/gateways/repositories/users/user-repository.service.ts b/client/src/app/gateways/repositories/users/user-repository.service.ts index d3cf50780f4..7e31b291cf0 100644 --- a/client/src/app/gateways/repositories/users/user-repository.service.ts +++ b/client/src/app/gateways/repositories/users/user-repository.service.ts @@ -13,13 +13,12 @@ import { Id } from '../../../domain/definitions/key-types'; import { Displayable } from '../../../domain/interfaces/displayable'; import { Identifiable } from '../../../domain/interfaces/identifiable'; import { User, UserSortProperty } from '../../../domain/models/users/user'; -import { PreventedInDemoError } from '../../../infrastructure/errors'; -import { toDecimal } from '../../../infrastructure/utils'; +import { PreventedInDemoError } from '../../../infrastructure/errors/prevented-in-demo.error'; +import { toDecimal } from '../../../infrastructure/utils/functions'; import { ViewUser } from '../../../site/pages/meetings/view-models/view-user'; -import { Fieldsets, TypedFieldset } from '../../../site/services/model-request-builder'; -import { Action } from '../../actions'; -import { MeetingUserRepositoryService } from '../meeting_user'; -import { RepositoryServiceCollectorService } from '../repository-service-collector.service'; +import { Fieldsets, TypedFieldset } from '../../../site/services/model-request-builder/model-request-builder.service'; +import { Action } from '../../actions/action'; +import { MeetingUserRepositoryService } from '../meeting_user/meeting-user-repository.service'; export type RawUser = FullNameInformation & Identifiable & Displayable & { fqid: Fqid; meeting_user_id?: Id }; @@ -84,10 +83,7 @@ export class UserRepositoryService extends BaseRepository { private meetingSettingsService = inject(MeetingSettingsService); private meetingUserRepo = inject(MeetingUserRepositoryService); - public constructor() { - const repositoryServiceCollector = inject(RepositoryServiceCollectorService); - super(repositoryServiceCollector, User); - } + public baseModelCtor = User; /** * The property the incoming data is sorted by diff --git a/client/src/app/gateways/vote-api.service.ts b/client/src/app/gateways/vote-api.service.ts index 2991b26c506..1b8e8a574e2 100644 --- a/client/src/app/gateways/vote-api.service.ts +++ b/client/src/app/gateways/vote-api.service.ts @@ -1,7 +1,7 @@ import { Injectable } from '@angular/core'; import { Id } from '../domain/definitions/key-types'; -import { PollVisibility } from '../domain/models/poll'; +import { PollVisibility } from '../domain/models/poll/poll-constants'; import { HttpService } from './http.service'; export interface PollCreatePayload extends PollUpdatePayload { diff --git a/client/src/app/infrastructure/animations/fade-in-out-anim.ts b/client/src/app/infrastructure/animations/fade-in-out-anim.ts deleted file mode 100644 index 524d4423150..00000000000 --- a/client/src/app/infrastructure/animations/fade-in-out-anim.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { animate, state, style, transition, trigger } from '@angular/animations'; - -export const fadeInOutAnim = trigger(`fadeInOut`, [ - state( - `true`, - style({ - opacity: 1 - }) - ), - state( - `false`, - style({ - opacity: 0.2 - }) - ), - transition(`true <=> false`, animate(`1s`)) -]); diff --git a/client/src/app/infrastructure/animations/fade-in.animation.ts b/client/src/app/infrastructure/animations/fade-in.animation.ts deleted file mode 100644 index 501f7d5716c..00000000000 --- a/client/src/app/infrastructure/animations/fade-in.animation.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { animate, style, transition, trigger } from '@angular/animations'; - -const fadeIn = [style({ opacity: 0 }), animate(`600ms ease`)]; -const fadeOut = [ - style({ opacity: 1 }), - animate( - `600ms ease`, - style({ - opacity: 0 - }) - ) -]; - -export const fadeInAnim = trigger(`fadeIn`, [transition(`:enter`, fadeIn), transition(`:leave`, fadeOut)]); diff --git a/client/src/app/infrastructure/animations/index.ts b/client/src/app/infrastructure/animations/index.ts deleted file mode 100644 index 34856624e43..00000000000 --- a/client/src/app/infrastructure/animations/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -export * from './fade-in.animation'; -export * from './fade-in-out-anim'; -export * from './nav-item-anim'; diff --git a/client/src/app/infrastructure/animations/nav-item-anim.ts b/client/src/app/infrastructure/animations/nav-item-anim.ts deleted file mode 100644 index 0a123162e3a..00000000000 --- a/client/src/app/infrastructure/animations/nav-item-anim.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { animate, style, transition, trigger } from '@angular/animations'; - -const slideIn = [style({ transform: `translateX(-85%)` }), animate(`600ms ease`)]; -const slideOut = [ - style({ transform: `translateX(0)` }), - animate( - `600ms ease`, - style({ - transform: `translateX(-85%)` - }) - ) -]; - -export const navItemAnim = trigger(`navItemAnim`, [transition(`:enter`, slideIn), transition(`:leave`, slideOut)]); diff --git a/client/src/app/infrastructure/definitions/relations/relations.ts b/client/src/app/infrastructure/definitions/relations/relations.ts index bebe6ac9f01..74cabb41e9e 100644 --- a/client/src/app/infrastructure/definitions/relations/relations.ts +++ b/client/src/app/infrastructure/definitions/relations/relations.ts @@ -21,63 +21,61 @@ import { ViewStructureLevel, ViewStructureLevelListOfSpeakers } from '@app/site/pages/meetings/pages/participants/pages/structure-levels/view-models'; +import { ViewPoll } from '@app/site/pages/meetings/pages/polls/view-models'; import { ViewPollBallotUser } from '@app/site/pages/meetings/pages/polls/view-models/poll-ballot-user'; import { ViewMeetingPollDefault } from '@app/site/pages/meetings/view-models/view-meeting-poll-default'; import { ViewMeetingUser } from '@app/site/pages/meetings/view-models/view-meeting-user'; import { ViewGender } from '@app/site/pages/organization/pages/accounts/pages/gender/view-models/view-gender'; -import { ViewResource } from '@app/site/pages/organization/pages/resources'; +import { ViewResource } from '@app/site/pages/organization/pages/resources/view-models'; import { BaseViewModel, ViewModelConstructor } from '../../../site/base/base-view-model'; -import { - HasAgendaItem, - HasListOfSpeakers, - ViewAgendaItem, - ViewListOfSpeakers, - ViewSpeaker, - ViewTopic -} from '../../../site/pages/meetings/pages/agenda'; -import { ViewAssignment, ViewAssignmentCandidate } from '../../../site/pages/meetings/pages/assignments'; -import { ViewChatGroup, ViewChatMessage } from '../../../site/pages/meetings/pages/chat'; -import { HasAttachmentMeetingMediafiles, ViewMediafile } from '../../../site/pages/meetings/pages/mediafiles'; +import { HasListOfSpeakers } from '../../../site/pages/meetings/pages/agenda/modules/list-of-speakers/view-models/has-list-of-speakers'; +import { ViewListOfSpeakers } from '../../../site/pages/meetings/pages/agenda/modules/list-of-speakers/view-models/view-list-of-speakers'; +import { ViewSpeaker } from '../../../site/pages/meetings/pages/agenda/modules/list-of-speakers/view-models/view-speaker'; +import { ViewTopic } from '../../../site/pages/meetings/pages/agenda/modules/topics/view-models/view-topic'; +import { HasAgendaItem } from '../../../site/pages/meetings/pages/agenda/view-models/has-agenda-item'; +import { ViewAgendaItem } from '../../../site/pages/meetings/pages/agenda/view-models/view-agenda-item'; +import { ViewAssignment } from '../../../site/pages/meetings/pages/assignments/view-models/view-assignment'; +import { ViewAssignmentCandidate } from '../../../site/pages/meetings/pages/assignments/view-models/view-assignment-candidate'; +import { ViewChatGroup } from '../../../site/pages/meetings/pages/chat/view-models/view-chat-group'; +import { ViewChatMessage } from '../../../site/pages/meetings/pages/chat/view-models/view-chat-message'; +import { HasAttachmentMeetingMediafiles } from '../../../site/pages/meetings/pages/mediafiles/view-models/has-attachment'; +import { ViewMediafile } from '../../../site/pages/meetings/pages/mediafiles/view-models/view-mediafile'; +import { ViewMotionCategory } from '../../../site/pages/meetings/pages/motions/modules/categories/view-models/view-motion-category'; +import { ViewMotionChangeRecommendation } from '../../../site/pages/meetings/pages/motions/modules/change-recommendations/view-models/view-motion-change-recommendation'; +import { ViewMotionComment } from '../../../site/pages/meetings/pages/motions/modules/comments/view-models/view-motion-comment'; +import { ViewMotionCommentSection } from '../../../site/pages/meetings/pages/motions/modules/comments/view-models/view-motion-comment-section'; +import { ViewMotionBlock } from '../../../site/pages/meetings/pages/motions/modules/motion-blocks/view-models/view-motion-block'; +import { ViewPersonalNote } from '../../../site/pages/meetings/pages/motions/modules/personal-notes/view-models/view-personal-note'; +import { ViewMotionState } from '../../../site/pages/meetings/pages/motions/modules/states/view-models/view-motion-state'; +import { ViewMotionSubmitter } from '../../../site/pages/meetings/pages/motions/modules/submitters/view-models/view-motion-submitter'; +import { HasTags } from '../../../site/pages/meetings/pages/motions/modules/tags/view-models/has-tags'; +import { ViewTag } from '../../../site/pages/meetings/pages/motions/modules/tags/view-models/view-tag'; +import { ViewMotionWorkflow } from '../../../site/pages/meetings/pages/motions/modules/workflows/view-models/view-motion-workflow'; import { HasReferencedMotionsInExtension, - HasTags, - ViewMotion, - ViewMotionBlock, - ViewMotionCategory, - ViewMotionChangeRecommendation, - ViewMotionComment, - ViewMotionCommentSection, - ViewMotionState, - ViewMotionSubmitter, - ViewMotionWorkflow, - ViewPersonalNote, - ViewTag -} from '../../../site/pages/meetings/pages/motions'; -import { ViewGroup } from '../../../site/pages/meetings/pages/participants'; -import { - HasPoll, - ViewPoll, - ViewPollBallot, - ViewPollConfigApproval, - ViewPollConfigRatingApproval, - ViewPollConfigRatingScore, - ViewPollConfigSelection, - ViewPollConfigStvScottish, - ViewPollOption -} from '../../../site/pages/meetings/pages/polls'; -import { - ViewProjection, - ViewProjector, - ViewProjectorCountdown, - ViewProjectorMessage -} from '../../../site/pages/meetings/pages/projectors'; + ViewMotion +} from '../../../site/pages/meetings/pages/motions/view-models/view-motion'; +import { ViewGroup } from '../../../site/pages/meetings/pages/participants/modules/groups/view-models/view-group'; +import { HasPoll } from '../../../site/pages/meetings/pages/polls/view-models/has-polls'; +import { ViewPollBallot } from '../../../site/pages/meetings/pages/polls/view-models/poll-ballot'; +import { ViewPollConfigApproval } from '../../../site/pages/meetings/pages/polls/view-models/poll-config-approval'; +import { ViewPollConfigRatingApproval } from '../../../site/pages/meetings/pages/polls/view-models/poll-config-rating-approval'; +import { ViewPollConfigRatingScore } from '../../../site/pages/meetings/pages/polls/view-models/poll-config-rating-score'; +import { ViewPollConfigSelection } from '../../../site/pages/meetings/pages/polls/view-models/poll-config-selection'; +import { ViewPollConfigStvScottish } from '../../../site/pages/meetings/pages/polls/view-models/poll-config-stv-scottish'; +import { ViewPollOption } from '../../../site/pages/meetings/pages/polls/view-models/poll-option'; +import { ViewProjection } from '../../../site/pages/meetings/pages/projectors/view-models/view-projection'; +import { ViewProjector } from '../../../site/pages/meetings/pages/projectors/view-models/view-projector'; +import { ViewProjectorCountdown } from '../../../site/pages/meetings/pages/projectors/view-models/view-projector-countdown'; +import { ViewProjectorMessage } from '../../../site/pages/meetings/pages/projectors/view-models/view-projector-message'; import { Projectable } from '../../../site/pages/meetings/view-models/projectable'; import { ViewMeeting } from '../../../site/pages/meetings/view-models/view-meeting'; import { ViewUser } from '../../../site/pages/meetings/view-models/view-user'; -import { ViewCommittee } from '../../../site/pages/organization/pages/committees'; -import { ViewTheme } from '../../../site/pages/organization/pages/designs'; -import { HasOrganizationTags, ViewOrganizationTag } from '../../../site/pages/organization/pages/organization-tags'; +import { ViewCommittee } from '../../../site/pages/organization/pages/committees/view-models/view-committee'; +import { ViewTheme } from '../../../site/pages/organization/pages/designs/view-models/view-theme'; +import { HasOrganizationTags } from '../../../site/pages/organization/pages/organization-tags/view-models/has-organization-tags'; +import { ViewOrganizationTag } from '../../../site/pages/organization/pages/organization-tags/view-models/view-organization-tag'; import { ViewOrganization } from '../../../site/pages/organization/view-models/view-organization'; import { makeGenericM2M, diff --git a/client/src/app/infrastructure/utils/di/openslides-injector.ts b/client/src/app/infrastructure/utils/di/openslides-injector.ts index cf8f69410db..691a0794754 100644 --- a/client/src/app/infrastructure/utils/di/openslides-injector.ts +++ b/client/src/app/infrastructure/utils/di/openslides-injector.ts @@ -1,6 +1,6 @@ import { Injector, ProviderToken } from '@angular/core'; -import { Deferred } from '../promises'; +import { Deferred } from '../promises/deferred'; interface InjectOptions { defaultValue?: any; diff --git a/client/src/app/openslides-main-module/openslides-main.module.ts b/client/src/app/openslides-main-module/openslides-main.module.ts index ff185a5aa4e..356e0e3b111 100644 --- a/client/src/app/openslides-main-module/openslides-main.module.ts +++ b/client/src/app/openslides-main-module/openslides-main.module.ts @@ -2,7 +2,6 @@ import { HttpClient, provideHttpClient, withInterceptorsFromDi, withXhr } from ' import { inject, NgModule, provideAppInitializer } from '@angular/core'; import { MatSnackBarModule } from '@angular/material/snack-bar'; import { BrowserModule } from '@angular/platform-browser'; -import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; import { ServiceWorkerModule } from '@angular/service-worker'; import { GlobalSpinnerModule } from '@app/site/modules/global-spinner'; import { @@ -17,8 +16,8 @@ import { CustomTranslationService } from '../site/modules/translations/custom-tr import { CustomMissingTranslationHandler } from '../site/modules/translations/missing-translation-handler'; import { CustomTranslationParser } from '../site/modules/translations/translation-parser'; import { PruningTranslationLoader } from '../site/modules/translations/translation-pruning-loader'; -import { WaitForActionDialogModule } from '../site/modules/wait-for-action-dialog'; -import { WaitForActionDialogService } from '../site/modules/wait-for-action-dialog/services'; +import { WaitForActionDialogService } from '../site/modules/wait-for-action-dialog/services/wait-for-action-dialog.service'; +import { WaitForActionDialogModule } from '../site/modules/wait-for-action-dialog/wait-for-action-dialog.module'; import { OpenSlidesMainComponent } from './components/openslides-main/openslides-main.component'; import { OpenSlidesOverlayContainerComponent } from './components/openslides-overlay-container/openslides-overlay-container.component'; import { httpInterceptorProviders } from './interceptors'; @@ -48,7 +47,6 @@ if (isFirefox && `serviceWorker` in navigator) { imports: [ BrowserModule, OpenSlidesMainRoutingModule, - BrowserAnimationsModule, ...NOT_LAZY_LOADED_MODULES, ServiceWorkerModule.register(`sw.js`, { enabled: environment.production && !isFirefox, diff --git a/client/src/app/openslides-main-module/services/app-load.service.ts b/client/src/app/openslides-main-module/services/app-load.service.ts index 9f7b0eb59b0..5d380335295 100644 --- a/client/src/app/openslides-main-module/services/app-load.service.ts +++ b/client/src/app/openslides-main-module/services/app-load.service.ts @@ -13,7 +13,7 @@ import { HomeAppConfig } from '@app/site/pages/meetings/pages/home/home.config'; import { MediafileAppConfig } from '@app/site/pages/meetings/pages/mediafiles/mediafiles.config'; import { MeetingMediafileAppConfig } from '@app/site/pages/meetings/pages/mediafiles/meeting-mediafiles.config'; import { MeetingSettingsAppConfig } from '@app/site/pages/meetings/pages/meeting-settings/meeting-settings.config'; -import { MotionsAppConfig } from '@app/site/pages/meetings/pages/motions'; +import { MotionsAppConfig } from '@app/site/pages/meetings/pages/motions/motions.config'; import { PollsAppConfig } from '@app/site/pages/meetings/pages/polls/polls.config'; import { ProjectorAppConfig } from '@app/site/pages/meetings/pages/projectors/projector.config'; import { MainMenuService } from '@app/site/pages/meetings/services/main-menu.service'; diff --git a/client/src/app/site/base/base-controller.ts b/client/src/app/site/base/base-controller.ts index 8592a64abbc..a6b3571e15b 100644 --- a/client/src/app/site/base/base-controller.ts +++ b/client/src/app/site/base/base-controller.ts @@ -1,29 +1,22 @@ -import { Directive } from '@angular/core'; +import { inject, Injectable } from '@angular/core'; import { TranslateService } from '@ngx-translate/core'; import { Observable } from 'rxjs'; import { Id } from '../../domain/definitions/key-types'; import { BaseModel, ModelConstructor } from '../../domain/models/base/base-model'; import { BaseRepository } from '../../gateways/repositories/base-repository'; -import { ControllerServiceCollectorService } from '../services/controller-service-collector.service'; import { BaseViewModel } from './base-view-model'; -@Directive() +@Injectable() export abstract class BaseController { - public get translate(): TranslateService { - return this.controllerServiceCollector.translate; - } + protected abstract baseModelCtor: ModelConstructor; + protected abstract repo: BaseRepository; + public translate = inject(TranslateService); public get collection(): string { return this.repo.collection; } - public constructor( - protected controllerServiceCollector: ControllerServiceCollectorService, - protected baseModelCtor: ModelConstructor, - protected repo: BaseRepository - ) {} - public getViewModel(id: Id): V | null { return this.repo.getViewModel(id); } diff --git a/client/src/app/site/base/base-via-backend-import-list.component.ts b/client/src/app/site/base/base-via-backend-import-list.component.ts index 742aad936cf..7529c17cdc1 100644 --- a/client/src/app/site/base/base-via-backend-import-list.component.ts +++ b/client/src/app/site/base/base-via-backend-import-list.component.ts @@ -5,7 +5,7 @@ import { BackendImportPhase } from '@app/ui/modules/import-list/components/via-backend-import-list/backend-import-list.component'; -import { getLongPreview, getShortPreview } from '../../infrastructure/utils'; +import { getLongPreview, getShortPreview } from '../../infrastructure/utils/functions'; import { BaseBackendImportService } from './base-import.service/base-backend-import.service'; @Directive() diff --git a/client/src/app/site/modules/global-headbar/components/global-headbar/global-headbar.component.html b/client/src/app/site/modules/global-headbar/components/global-headbar/global-headbar.component.html index 9248e5fbb1f..34f926d3ab9 100644 --- a/client/src/app/site/modules/global-headbar/components/global-headbar/global-headbar.component.html +++ b/client/src/app/site/modules/global-headbar/components/global-headbar/global-headbar.component.html @@ -1,7 +1,7 @@ @if (showCommitteeLink) { - layers + layers }
@@ -17,7 +17,7 @@ [attr.aria-label]="'Global search' | translate" (click)="openSearch()" > - search + search } @@ -25,7 +25,7 @@ @if (showLongpollingIcon) {
- sync_problem + sync_problem
} diff --git a/client/src/app/site/modules/global-headbar/components/global-headbar/global-headbar.component.scss b/client/src/app/site/modules/global-headbar/components/global-headbar/global-headbar.component.scss index 2143e2fc325..3130f25076e 100644 --- a/client/src/app/site/modules/global-headbar/components/global-headbar/global-headbar.component.scss +++ b/client/src/app/site/modules/global-headbar/components/global-headbar/global-headbar.component.scss @@ -46,7 +46,7 @@ } .adjust-icon { - margin-left: -1px; + margin-left: -16px; margin-top: -3px; transform: scale(0.75); } diff --git a/client/src/app/site/modules/global-headbar/global-headbar.module.ts b/client/src/app/site/modules/global-headbar/global-headbar.module.ts index 5e16047f7de..4676ae29c64 100644 --- a/client/src/app/site/modules/global-headbar/global-headbar.module.ts +++ b/client/src/app/site/modules/global-headbar/global-headbar.module.ts @@ -21,8 +21,8 @@ import { CommaSeparatedListingComponent } from '@app/ui/modules/comma-separated- import { InputModule } from '@app/ui/modules/input'; import { ChessDialogModule } from '@app/ui/modules/sidenav/modules/easter-egg/modules/chess-dialog'; -import { OpenSlidesTranslationModule } from '../translations'; -import { UserComponentsModule } from '../user-components'; +import { OpenSlidesTranslationModule } from '../translations/openslides-translation.module'; +import { UserComponentsModule } from '../user-components/user-components.module'; import { AccountButtonComponent } from './components/account-button/account-button.component'; import { AccountDialogComponent } from './components/account-dialog/account-dialog.component'; import { AccountDialogMainComponent } from './components/account-dialog-main/account-dialog-main.component'; diff --git a/client/src/app/site/modules/global-spinner/global-spinner.module.ts b/client/src/app/site/modules/global-spinner/global-spinner.module.ts index 4af9ad7de85..5931775616f 100644 --- a/client/src/app/site/modules/global-spinner/global-spinner.module.ts +++ b/client/src/app/site/modules/global-spinner/global-spinner.module.ts @@ -3,7 +3,7 @@ import { NgModule } from '@angular/core'; import { OverlayComponent } from '@app/ui/modules/openslides-overlay'; import { SpinnerModule } from '@app/ui/modules/spinner'; -import { OpenSlidesTranslationModule } from '../translations'; +import { OpenSlidesTranslationModule } from '../translations/openslides-translation.module'; import { GlobalSpinnerComponent } from './components/global-spinner/global-spinner.component'; @NgModule({ diff --git a/client/src/app/site/modules/site-wrapper/components/banner/banner.component.html b/client/src/app/site/modules/site-wrapper/components/banner/banner.component.html index b72a27c864b..100084c2b25 100644 --- a/client/src/app/site/modules/site-wrapper/components/banner/banner.component.html +++ b/client/src/app/site/modules/site-wrapper/components/banner/banner.component.html @@ -2,6 +2,7 @@ @for (banner of activeBanners | async; track banner) {