From c543544fff6d67c9e225c59bc2c926d489699d28 Mon Sep 17 00:00:00 2001 From: romeonicholas Date: Tue, 28 Nov 2023 16:48:07 +0100 Subject: [PATCH] Revert "build: Update frontend versions" This reverts commit 800f6ce72b9fc82eca79b55ec76944a9606265a8. --- .pre-commit-config.yaml | 12 +- ...6_add_user_determined_display_order_to_.py | 1 - .../capellacollab/projects/toolmodels/crud.py | 1 - backend/pyproject.toml | 2 +- docs/docs/user/sessions/troubleshooting.md | 12 +- frontend/package-lock.json | 1902 ++++++++--------- frontend/package.json | 38 +- frontend/src/app/app.module.ts | 7 - frontend/src/app/schemes.ts | 4 + .../floating-window-manager.component.html | 58 - .../floating-window-manager.component.ts | 41 - .../session-iframe.component.css | 14 - .../session-iframe.component.html | 25 - .../session-iframe.component.ts | 16 - .../session/session-viewer.service.ts | 140 -- .../sessions/session/session.component.css | 10 + .../sessions/session/session.component.html | 107 +- .../app/sessions/session/session.component.ts | 103 +- .../tiling-window-manager.component.html | 78 - .../tiling-window-manager.component.ts | 214 -- 20 files changed, 1137 insertions(+), 1648 deletions(-) delete mode 100644 frontend/src/app/sessions/session/floating-window-manager/floating-window-manager.component.html delete mode 100644 frontend/src/app/sessions/session/floating-window-manager/floating-window-manager.component.ts delete mode 100644 frontend/src/app/sessions/session/session-iframe/session-iframe.component.css delete mode 100644 frontend/src/app/sessions/session/session-iframe/session-iframe.component.html delete mode 100644 frontend/src/app/sessions/session/session-iframe/session-iframe.component.ts delete mode 100644 frontend/src/app/sessions/session/session-viewer.service.ts delete mode 100644 frontend/src/app/sessions/session/tiling-window-manager/tiling-window-manager.component.html delete mode 100644 frontend/src/app/sessions/session/tiling-window-manager/tiling-window-manager.component.ts diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index b87fe58143..9f37156657 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -138,14 +138,14 @@ repos: hooks: - id: eslint additional_dependencies: - - "eslint@^8.54.0" - - "@angular-eslint/eslint-plugin@17.1.0" - - "@angular-eslint/eslint-plugin-template@17.1.0" - - "@angular-eslint/template-parser@17.1.0" + - "eslint@^8.50.0" + - "@angular-eslint/eslint-plugin@16.2.0" + - "@angular-eslint/eslint-plugin-template@16.2.0" + - "@angular-eslint/template-parser@16.2.0" - "eslint-config-prettier@^9.0.0" - "eslint-plugin-import@^2.29.0" - - "@typescript-eslint/eslint-plugin@^6.12.0" - - "@typescript-eslint/parser@^6.12.0" + - "@typescript-eslint/eslint-plugin@^6.9.0" + - "@typescript-eslint/parser@^6.9.0" - "eslint-plugin-unused-imports@^3.0.0" - "eslint-plugin-deprecation@^2.0.0" - "eslint-plugin-tailwindcss@^3.13.0" diff --git a/backend/capellacollab/alembic/versions/0e2028f83156_add_user_determined_display_order_to_.py b/backend/capellacollab/alembic/versions/0e2028f83156_add_user_determined_display_order_to_.py index 9b9f2f2382..bb2f2da59a 100644 --- a/backend/capellacollab/alembic/versions/0e2028f83156_add_user_determined_display_order_to_.py +++ b/backend/capellacollab/alembic/versions/0e2028f83156_add_user_determined_display_order_to_.py @@ -11,7 +11,6 @@ import sqlalchemy as sa from alembic import op - # revision identifiers, used by Alembic. revision = "0e2028f83156" down_revision = "ac0e6e0f77ee" diff --git a/backend/capellacollab/projects/toolmodels/crud.py b/backend/capellacollab/projects/toolmodels/crud.py index c33607868a..b2498ae248 100644 --- a/backend/capellacollab/projects/toolmodels/crud.py +++ b/backend/capellacollab/projects/toolmodels/crud.py @@ -92,7 +92,6 @@ def create_model( slug=slugify.slugify(post_model.name), description=post_model.description if post_model.description else "", project=project, - display_order=post_model.display_order, tool=tool, version=version, nature=nature, diff --git a/backend/pyproject.toml b/backend/pyproject.toml index 9326d418cc..133911f237 100644 --- a/backend/pyproject.toml +++ b/backend/pyproject.toml @@ -23,7 +23,7 @@ classifiers = [ ] dependencies = [ "PyYAML", - "alembic==1.12.1", + "alembic==1.12.0", "appdirs", "cachetools", "fastapi>=0.101.0", diff --git a/docs/docs/user/sessions/troubleshooting.md b/docs/docs/user/sessions/troubleshooting.md index 5e24b67a7b..5aa4847358 100644 --- a/docs/docs/user/sessions/troubleshooting.md +++ b/docs/docs/user/sessions/troubleshooting.md @@ -3,8 +3,9 @@ ~ SPDX-License-Identifier: Apache-2.0 --> -??? question "My Capella crashed. What should I do?" + +??? question "My Capella crashed. What should I do?" Capella can crash for many different reasons. Many issues are issues with Eclipse Capella itself, so we try to escalate issues there. Bugs can be reported to the Eclipse Capella team directly in the @@ -52,11 +53,4 @@ please recreate your session to get a valid session password for the models of the required project. - -??? question "I can't use the `Control` key for the secondary/right-click on macOS" - - Please use an external mouse or use the trackpad gesture (click with two - fingers on the trackpad). - - The sessions run on Linux and the `Control` key can't be mapped properly - via the remote desktop protocol. + diff --git a/frontend/package-lock.json b/frontend/package-lock.json index 6f11d16ff5..95bdcd30aa 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -20,15 +20,15 @@ "@angular/router": "~17.0.2", "@ngneat/until-destroy": "^10.0.0", "@panzoom/panzoom": "^4.5.1", - "@types/semver": "^7.5.6", + "@types/semver": "^7.5.4", "buffer": "^6.0.3", "file-saver": "^2.0.5", "http-status-codes": "^2.3.0", "ngx-cookie": "^6.0.1", "ngx-skeleton-loader": "^8.1.0", - "ngx-toastr": "^18.0.0", - "npm": "^10.2.4", - "npm-check-updates": "^16.14.11", + "ngx-toastr": "^17.0.2", + "npm": "^10.2.1", + "npm-check-updates": "^16.14.6", "path-is-absolute": "^2.0.0", "rxjs": "~7.8.1", "semver": "^7.5.4", @@ -38,21 +38,21 @@ }, "devDependencies": { "@angular-devkit/build-angular": "^17.0.0", - "@angular-eslint/builder": "17.1.0", - "@angular-eslint/eslint-plugin": "17.1.0", - "@angular-eslint/eslint-plugin-template": "17.1.0", - "@angular-eslint/schematics": "17.1.0", - "@angular-eslint/template-parser": "17.1.0", - "@angular/cli": "~17.0.3", + "@angular-eslint/builder": "17.0.1", + "@angular-eslint/eslint-plugin": "17.0.1", + "@angular-eslint/eslint-plugin-template": "17.0.1", + "@angular-eslint/schematics": "17.0.1", + "@angular-eslint/template-parser": "17.0.1", + "@angular/cli": "~17.0.0", "@angular/compiler-cli": "~17.0.2", - "@playwright/test": "^1.40.0", - "@types/file-saver": "^2.0.7", - "@types/jasmine": "~5.1.4", - "@types/node": "^20.10.0", - "@typescript-eslint/eslint-plugin": "^6.12.0", - "@typescript-eslint/parser": "^6.12.0", + "@playwright/test": "^1.39.0", + "@types/file-saver": "^2.0.6", + "@types/jasmine": "~5.1.1", + "@types/node": "^20.8.9", + "@typescript-eslint/eslint-plugin": "^6.10.0", + "@typescript-eslint/parser": "^6.10.0", "autoprefixer": "^10.4.16", - "eslint": "^8.54.0", + "eslint": "^8.53.0", "eslint-config-prettier": "^9.0.0", "eslint-plugin-deprecation": "^2.0.0", "eslint-plugin-import": "^2.29.0", @@ -66,8 +66,8 @@ "karma-jasmine": "~5.1.0", "karma-jasmine-html-reporter": "^2.1.0", "postcss": "^8.4.31", - "prettier": "^3.1.0", - "prettier-plugin-tailwindcss": "^0.5.7", + "prettier": "^3.0.3", + "prettier-plugin-tailwindcss": "^0.5.6", "tailwindcss": "^3.3.5", "typescript": "^5.2.2", "webpack": "^5.89.0" @@ -731,12 +731,12 @@ } }, "node_modules/@angular-devkit/schematics": { - "version": "17.0.3", - "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-17.0.3.tgz", - "integrity": "sha512-gNocyYuNJRd24+JSM5kpO7g9Vg4THcoH5It8nJmS3muelLHDzegvDzXB7iPBjVR8Lxts6sbifYdIkKencUc4vg==", + "version": "17.0.0", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-17.0.0.tgz", + "integrity": "sha512-LD7fjDORuBf139/oJ/gSwbIzQPfsm6Y67s1FD+XLi0QXaRt6dw4r7BMD08l1r//oPQofNgbEH4coGVO4NdCL/A==", "dev": true, "dependencies": { - "@angular-devkit/core": "17.0.3", + "@angular-devkit/core": "17.0.0", "jsonc-parser": "3.2.0", "magic-string": "0.30.5", "ora": "5.4.1", @@ -748,53 +748,14 @@ "yarn": ">= 1.13.0" } }, - "node_modules/@angular-devkit/schematics/node_modules/@angular-devkit/core": { - "version": "17.0.3", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-17.0.3.tgz", - "integrity": "sha512-SOngD3rKnwZWhhUV68AYlH8M3LRGvF69jnDrYKwtRy1ESqSH7tt+1vexGC290gKvqH7bNMgYv8f5BS1AASRfzw==", - "dev": true, - "dependencies": { - "ajv": "8.12.0", - "ajv-formats": "2.1.1", - "jsonc-parser": "3.2.0", - "picomatch": "3.0.1", - "rxjs": "7.8.1", - "source-map": "0.7.4" - }, - "engines": { - "node": "^18.13.0 || >=20.9.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" - }, - "peerDependencies": { - "chokidar": "^3.5.2" - }, - "peerDependenciesMeta": { - "chokidar": { - "optional": true - } - } - }, - "node_modules/@angular-devkit/schematics/node_modules/picomatch": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-3.0.1.tgz", - "integrity": "sha512-I3EurrIQMlRc9IaAZnqRR044Phh2DXY+55o7uJ0V+hYZAcQYSuFWsc9q5PvyDHUSCe1Qxn/iBz+78s86zWnGag==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, "node_modules/@angular-eslint/builder": { - "version": "17.1.0", - "resolved": "https://registry.npmjs.org/@angular-eslint/builder/-/builder-17.1.0.tgz", - "integrity": "sha512-rLIInxx9q82DDrfcg5gzjNftxhkqdLILUgjlA9XtA9LayU3rz4CS81we+vAOAPbbnGxoMsEeBg5nVecbKN3dVQ==", + "version": "17.0.1", + "resolved": "https://registry.npmjs.org/@angular-eslint/builder/-/builder-17.0.1.tgz", + "integrity": "sha512-bNXi5tdqIFdNDHxphDRUUbzA+7v6emOX2B/PFLG2pe+K6/JpHS0auwY/nq7hCroH7pMS5HZ+Q4i90q0GN/DWPg==", "dev": true, "dependencies": { - "@nx/devkit": "17.1.2", - "nx": "17.1.2" + "@nx/devkit": "17.0.3", + "nx": "17.0.3" }, "peerDependencies": { "eslint": "^7.20.0 || ^8.0.0", @@ -802,19 +763,19 @@ } }, "node_modules/@angular-eslint/bundled-angular-compiler": { - "version": "17.1.0", - "resolved": "https://registry.npmjs.org/@angular-eslint/bundled-angular-compiler/-/bundled-angular-compiler-17.1.0.tgz", - "integrity": "sha512-Y+CN/8nQZaYjsb2b2sXbkQr0LrgBWhCzyLZ+rLfnLE60B9k4GeDt5b7z/OdSObi1xozXfqiaAZ1eXo0iQMN3JA==", + "version": "17.0.1", + "resolved": "https://registry.npmjs.org/@angular-eslint/bundled-angular-compiler/-/bundled-angular-compiler-17.0.1.tgz", + "integrity": "sha512-E3YK9/uIBsuKC76i6uvPdtq8bwA63WDKDYpsPSTLF2XmL3a5LGev0+NmJCD2zR/0uMenHYB27BwjZotpk1rycg==", "dev": true }, "node_modules/@angular-eslint/eslint-plugin": { - "version": "17.1.0", - "resolved": "https://registry.npmjs.org/@angular-eslint/eslint-plugin/-/eslint-plugin-17.1.0.tgz", - "integrity": "sha512-pQac5h+XwsquDzaasK/xs9tjdQ/f9eLq8e5An9eXJGHWy4KcrMmQ1XrpaMMMg503LF3rRG/dHKBskGsYgSN9oQ==", + "version": "17.0.1", + "resolved": "https://registry.npmjs.org/@angular-eslint/eslint-plugin/-/eslint-plugin-17.0.1.tgz", + "integrity": "sha512-HNXzjvqTCfaxENnfjVHJXcWrfzv/3LDH6aEHF7P8B363JSgx0g4SZtGKBrdbXcJPmf5arVfVgRUvKMJ7Es9aiQ==", "dev": true, "dependencies": { - "@angular-eslint/utils": "17.1.0", - "@typescript-eslint/utils": "6.11.0" + "@angular-eslint/utils": "17.0.1", + "@typescript-eslint/utils": "6.10.0" }, "peerDependencies": { "eslint": "^7.20.0 || ^8.0.0", @@ -822,15 +783,15 @@ } }, "node_modules/@angular-eslint/eslint-plugin-template": { - "version": "17.1.0", - "resolved": "https://registry.npmjs.org/@angular-eslint/eslint-plugin-template/-/eslint-plugin-template-17.1.0.tgz", - "integrity": "sha512-nL9VhChwFQLIRQM4xbTY8Vo095Q4/D77hPtqt3ShYIrORjYTwaWa8+neexToAqXVMapce7oFmFa/OqtxvEerLg==", + "version": "17.0.1", + "resolved": "https://registry.npmjs.org/@angular-eslint/eslint-plugin-template/-/eslint-plugin-template-17.0.1.tgz", + "integrity": "sha512-7aQYUUCrdOvAKesUNsWSNUnPjzb9WI69Mlr/VhKSb4SNWwMr6SmYOsNqSqydIrtpHo4sIgyStGGfzELZ4Kub9Q==", "dev": true, "dependencies": { - "@angular-eslint/bundled-angular-compiler": "17.1.0", - "@angular-eslint/utils": "17.1.0", - "@typescript-eslint/type-utils": "6.11.0", - "@typescript-eslint/utils": "6.11.0", + "@angular-eslint/bundled-angular-compiler": "17.0.1", + "@angular-eslint/utils": "17.0.1", + "@typescript-eslint/type-utils": "6.10.0", + "@typescript-eslint/utils": "6.10.0", "aria-query": "5.3.0", "axobject-query": "4.0.0" }, @@ -840,16 +801,16 @@ } }, "node_modules/@angular-eslint/schematics": { - "version": "17.1.0", - "resolved": "https://registry.npmjs.org/@angular-eslint/schematics/-/schematics-17.1.0.tgz", - "integrity": "sha512-74gW1E5P4z3PvxNXOTXGaF6li/MLcSeJO8z7XtcP7wcXWu0fihOKlMJGgqB3rIcBa8lRcTDLekQERF+kRZ15aQ==", + "version": "17.0.1", + "resolved": "https://registry.npmjs.org/@angular-eslint/schematics/-/schematics-17.0.1.tgz", + "integrity": "sha512-CnQpYJDkGM6NJUOOeHPwfzJbZG90oRGvHVDkDlB2mZ63rQCKNzE1hFnlwBWkzyRH4GkV/84WW0++fXt3cU9ItA==", "dev": true, "dependencies": { - "@angular-eslint/eslint-plugin": "17.1.0", - "@angular-eslint/eslint-plugin-template": "17.1.0", - "@nx/devkit": "17.1.2", + "@angular-eslint/eslint-plugin": "17.0.1", + "@angular-eslint/eslint-plugin-template": "17.0.1", + "@nx/devkit": "17.0.3", "ignore": "5.2.4", - "nx": "17.1.2", + "nx": "17.0.3", "strip-json-comments": "3.1.1", "tmp": "0.2.1" }, @@ -858,12 +819,12 @@ } }, "node_modules/@angular-eslint/template-parser": { - "version": "17.1.0", - "resolved": "https://registry.npmjs.org/@angular-eslint/template-parser/-/template-parser-17.1.0.tgz", - "integrity": "sha512-CTxzB3stjynngTabdO8xTkiPc6Jvo15C2fxb1pYIlDIH2LgPJJxxCHi+IAt9oJpJOPa8QjLVF9VAXE3fLKAcpg==", + "version": "17.0.1", + "resolved": "https://registry.npmjs.org/@angular-eslint/template-parser/-/template-parser-17.0.1.tgz", + "integrity": "sha512-EBN5c0/HuaikvPMqQJ6z2U2qSHof6xgwzNH48F4+Mnn2oMzz0eqtvjNrbTCka/vSCjELczao9px879ywDjVB5g==", "dev": true, "dependencies": { - "@angular-eslint/bundled-angular-compiler": "17.1.0", + "@angular-eslint/bundled-angular-compiler": "17.0.1", "eslint-scope": "^7.0.0" }, "peerDependencies": { @@ -872,13 +833,13 @@ } }, "node_modules/@angular-eslint/utils": { - "version": "17.1.0", - "resolved": "https://registry.npmjs.org/@angular-eslint/utils/-/utils-17.1.0.tgz", - "integrity": "sha512-AmG0xpRtnBQwrbHObonSilmD3hiFEtZHwFY3LT28VWxznB6WIAHFE7SrKWrRsRsXlib8LaRo4uobR5+MO8aLpw==", + "version": "17.0.1", + "resolved": "https://registry.npmjs.org/@angular-eslint/utils/-/utils-17.0.1.tgz", + "integrity": "sha512-yao+cuWmtDKwe/zW/4+e53pgwlk/rz7fjZFYvaYIuoIpqUQhqYYcBW8NeUoo8BscM57IfPqn0l6UkcXJhS1bRA==", "dev": true, "dependencies": { - "@angular-eslint/bundled-angular-compiler": "17.1.0", - "@typescript-eslint/utils": "6.11.0" + "@angular-eslint/bundled-angular-compiler": "17.0.1", + "@typescript-eslint/utils": "6.10.0" }, "peerDependencies": { "eslint": "^7.20.0 || ^8.0.0", @@ -900,9 +861,9 @@ } }, "node_modules/@angular/cdk": { - "version": "16.2.12", - "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-16.2.12.tgz", - "integrity": "sha512-wT8/265zm2WKY0BDaRoYbrAT4kadrmejTRLjuimQIEUKnw4vBsJMWCwQkpFo3s6zr6eznGqYVAFb8KKPVLKGBg==", + "version": "16.2.10", + "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-16.2.10.tgz", + "integrity": "sha512-kOQrPxSMPi66aM9XfwZIjQXhH+q0PkhK4BNMHB9RkvaaQ34ovOrKaGsT7t0+sjlVhiwTiy2mB1Qgz6NlIB0ZZw==", "dependencies": { "tslib": "^2.3.0" }, @@ -916,15 +877,15 @@ } }, "node_modules/@angular/cli": { - "version": "17.0.3", - "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-17.0.3.tgz", - "integrity": "sha512-pRGXms87aEqmB4yPdcPI/VM7JegjDcBIeLadms0wrBkoyQiv+jL5LesxODhid6ujXZOj1xqMCYbCnX7HY+mLcQ==", + "version": "17.0.0", + "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-17.0.0.tgz", + "integrity": "sha512-VzKYmN+1wSE2wLBEFu/NHSrRQbeaKkEDO9aZxd7nAnxC5T1Zcva7dfqZIXMHXH2HESYAZCvOS8ikBE/7DCtWWw==", "dev": true, "dependencies": { - "@angular-devkit/architect": "0.1700.3", - "@angular-devkit/core": "17.0.3", - "@angular-devkit/schematics": "17.0.3", - "@schematics/angular": "17.0.3", + "@angular-devkit/architect": "0.1700.0", + "@angular-devkit/core": "17.0.0", + "@angular-devkit/schematics": "17.0.0", + "@schematics/angular": "17.0.0", "@yarnpkg/lockfile": "1.1.0", "ansi-colors": "4.1.3", "ini": "4.1.1", @@ -949,48 +910,6 @@ "yarn": ">= 1.13.0" } }, - "node_modules/@angular/cli/node_modules/@angular-devkit/architect": { - "version": "0.1700.3", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1700.3.tgz", - "integrity": "sha512-HUjx7vD16paWXHKHYc2LsSn/kaYbFr2YNnlzuSr9C0kauKS1e7sRpRvtGwQzXfohzgyKi81AAU5uA2KLRGq83w==", - "dev": true, - "dependencies": { - "@angular-devkit/core": "17.0.3", - "rxjs": "7.8.1" - }, - "engines": { - "node": "^18.13.0 || >=20.9.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" - } - }, - "node_modules/@angular/cli/node_modules/@angular-devkit/core": { - "version": "17.0.3", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-17.0.3.tgz", - "integrity": "sha512-SOngD3rKnwZWhhUV68AYlH8M3LRGvF69jnDrYKwtRy1ESqSH7tt+1vexGC290gKvqH7bNMgYv8f5BS1AASRfzw==", - "dev": true, - "dependencies": { - "ajv": "8.12.0", - "ajv-formats": "2.1.1", - "jsonc-parser": "3.2.0", - "picomatch": "3.0.1", - "rxjs": "7.8.1", - "source-map": "0.7.4" - }, - "engines": { - "node": "^18.13.0 || >=20.9.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" - }, - "peerDependencies": { - "chokidar": "^3.5.2" - }, - "peerDependenciesMeta": { - "chokidar": { - "optional": true - } - } - }, "node_modules/@angular/cli/node_modules/@npmcli/git": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-5.0.3.tgz", @@ -1360,18 +1279,6 @@ "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/@angular/cli/node_modules/picomatch": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-3.0.1.tgz", - "integrity": "sha512-I3EurrIQMlRc9IaAZnqRR044Phh2DXY+55o7uJ0V+hYZAcQYSuFWsc9q5PvyDHUSCe1Qxn/iBz+78s86zWnGag==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, "node_modules/@angular/cli/node_modules/read-package-json": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-7.0.0.tgz", @@ -1526,9 +1433,9 @@ } }, "node_modules/@angular/material": { - "version": "16.2.12", - "resolved": "https://registry.npmjs.org/@angular/material/-/material-16.2.12.tgz", - "integrity": "sha512-k1DGRfP1mMmhg/nLJjZBOPzX3SyAjgbRBY2KauKOV8OFCXJGoMn/oLgMBh+qB1WugzIna/31dBV8ruHD3Uvp2w==", + "version": "16.2.10", + "resolved": "https://registry.npmjs.org/@angular/material/-/material-16.2.10.tgz", + "integrity": "sha512-0XhMwbcxpEESL11mVO8ycwxa+Jlh+8egOSRleD30zFUesqBA5EhtRpH8cqtna03f/xxtRq00Q315igMIMNiOSg==", "dependencies": { "@material/animation": "15.0.0-canary.bc9ae6c9c.0", "@material/auto-init": "15.0.0-canary.bc9ae6c9c.0", @@ -1581,7 +1488,7 @@ }, "peerDependencies": { "@angular/animations": "^16.0.0 || ^17.0.0", - "@angular/cdk": "16.2.12", + "@angular/cdk": "16.2.10", "@angular/common": "^16.0.0 || ^17.0.0", "@angular/core": "^16.0.0 || ^17.0.0", "@angular/forms": "^16.0.0 || ^17.0.0", @@ -3853,9 +3760,9 @@ } }, "node_modules/@eslint/js": { - "version": "8.54.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.54.0.tgz", - "integrity": "sha512-ut5V+D+fOoWPgGGNj83GGjnntO39xDy6DWxO0wb7Jp3DcMX0TfIqdzHF85VTQkerdyGmuuMD9AKAo5KiNlf/AQ==", + "version": "8.53.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.53.0.tgz", + "integrity": "sha512-Kn7K8dx/5U6+cT1yEhpX1w4PCSg0M+XyRILPgvwcEBjerFWCwQj5sbr3/VmxqV0JGHCBCzyd6LxypEuehypY1w==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -5132,21 +5039,21 @@ } }, "node_modules/@nrwl/devkit": { - "version": "17.1.2", - "resolved": "https://registry.npmjs.org/@nrwl/devkit/-/devkit-17.1.2.tgz", - "integrity": "sha512-INPZk4qts3xNJt8E9fttuVTufXdigPUOvUiAiPJmR2oUGDF8SeOlIYNForbz+XMRvxyIVtf45O32azUsgeZe3Q==", + "version": "17.0.3", + "resolved": "https://registry.npmjs.org/@nrwl/devkit/-/devkit-17.0.3.tgz", + "integrity": "sha512-k1o0tvmGcg2/Kw2d56ULixqngCj5zTfp3mn6yS0ytIJrTQnJVkI8GcFCtpnqbzQjD8nKHhvTIcOMsj2BzLos9A==", "dev": true, "dependencies": { - "@nx/devkit": "17.1.2" + "@nx/devkit": "17.0.3" } }, "node_modules/@nrwl/tao": { - "version": "17.1.2", - "resolved": "https://registry.npmjs.org/@nrwl/tao/-/tao-17.1.2.tgz", - "integrity": "sha512-tL+dlygeor/kLG5fuK5qaiVFJ4hEtvJ/E+xY9epp20UKCNQSEkrSFiesiXtX6E/PPf4YbOQ4B4itWR2EYCm03Q==", + "version": "17.0.3", + "resolved": "https://registry.npmjs.org/@nrwl/tao/-/tao-17.0.3.tgz", + "integrity": "sha512-X6zcwf6c3z7TuztRJWM/OCfzm7+LI4Uw4coc9+PWr44ohHkgId2wEJTzXrDT3+lvv8DgwPpgWPwqntw+YcgRYg==", "dev": true, "dependencies": { - "nx": "17.1.2", + "nx": "17.0.3", "tslib": "^2.3.0" }, "bin": { @@ -5154,12 +5061,12 @@ } }, "node_modules/@nx/devkit": { - "version": "17.1.2", - "resolved": "https://registry.npmjs.org/@nx/devkit/-/devkit-17.1.2.tgz", - "integrity": "sha512-9Izd9jsa++AaZSSlhi0zkv58k4clzE0kICurx9DjfWN6zXnD08HqJoUYCVVaeYS/SrWlQUbMig8e49BO8ZV5mw==", + "version": "17.0.3", + "resolved": "https://registry.npmjs.org/@nx/devkit/-/devkit-17.0.3.tgz", + "integrity": "sha512-gW9aVc2BJBQ6PME07lsiaHg2Tjm9FN/qFjzxeSQYe2cR/s4hXqCBUfgKEqjgzMq+ykDR2Japkd8Vg8BN0uWnpA==", "dev": true, "dependencies": { - "@nrwl/devkit": "17.1.2", + "@nrwl/devkit": "17.0.3", "ejs": "^3.1.7", "enquirer": "~2.3.6", "ignore": "^5.0.4", @@ -5205,9 +5112,9 @@ "dev": true }, "node_modules/@nx/nx-darwin-arm64": { - "version": "17.1.2", - "resolved": "https://registry.npmjs.org/@nx/nx-darwin-arm64/-/nx-darwin-arm64-17.1.2.tgz", - "integrity": "sha512-U8fwkuw0vmDfeRQX9LSMt1XiAXM57fxOiuHlrIBn8hUBvMAugAgSAYd7K9YQjrFf9UFUtQeSHDU9N/c/n63hdg==", + "version": "17.0.3", + "resolved": "https://registry.npmjs.org/@nx/nx-darwin-arm64/-/nx-darwin-arm64-17.0.3.tgz", + "integrity": "sha512-KA75JC/hgkt9qwK4dnN1tlaTXWdYItkNMjji6YjkyAYabbLKQKVcQoPocYP/RB/Gng+vNslXwuug2atgxDf43g==", "cpu": [ "arm64" ], @@ -5221,9 +5128,9 @@ } }, "node_modules/@nx/nx-darwin-x64": { - "version": "17.1.2", - "resolved": "https://registry.npmjs.org/@nx/nx-darwin-x64/-/nx-darwin-x64-17.1.2.tgz", - "integrity": "sha512-QR9Jrm32UK2nLdDRtjFabfCvF5SOQJ2IuYkw6Sxe16xGZU2DS9nQku0TQO3Uy2HV1xSR7vzj7ys5z4eI2k+/mA==", + "version": "17.0.3", + "resolved": "https://registry.npmjs.org/@nx/nx-darwin-x64/-/nx-darwin-x64-17.0.3.tgz", + "integrity": "sha512-YVWk9jNibD7fzn8oNBl/UNu8NEfcVwFo5wiNyfOql495yP0tyGdZNHD4i/7aS2Y654G1JYDRf7TutJ7wWFU8bg==", "cpu": [ "x64" ], @@ -5237,9 +5144,9 @@ } }, "node_modules/@nx/nx-freebsd-x64": { - "version": "17.1.2", - "resolved": "https://registry.npmjs.org/@nx/nx-freebsd-x64/-/nx-freebsd-x64-17.1.2.tgz", - "integrity": "sha512-6rDuFHJREVg5XpcM5RlE8pHP4bgcbns8sSemF/g75SV4iEkBqxRvSe88oBtF44b7IpX2zdONRDV4qQcRf3DxRg==", + "version": "17.0.3", + "resolved": "https://registry.npmjs.org/@nx/nx-freebsd-x64/-/nx-freebsd-x64-17.0.3.tgz", + "integrity": "sha512-yiYkfY+3IrlBrlaXN6SO4Fnb0a+Ti+FPwAqRPpH6q3uTCh0NmNgE99ydtT31ZbgCF1ZwRK8NdCbuNO3w9uznwA==", "cpu": [ "x64" ], @@ -5253,9 +5160,9 @@ } }, "node_modules/@nx/nx-linux-arm-gnueabihf": { - "version": "17.1.2", - "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm-gnueabihf/-/nx-linux-arm-gnueabihf-17.1.2.tgz", - "integrity": "sha512-4FwqUX7NxVfJ0v7frBKNbjENz6pvp3slDfoG2/WmnAj5a6TCu7magwlg1qLQaHYJ1m/i8u7RrG0Uz4SYHWzkVw==", + "version": "17.0.3", + "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm-gnueabihf/-/nx-linux-arm-gnueabihf-17.0.3.tgz", + "integrity": "sha512-x4h6QJlESJZ0bigUlxNEVyi7F/VWQQx+1IBptofXhK5eTOPjJ5qgINdM38AZg+kBJDz5XOVMDejg6RzHlhs0Tg==", "cpu": [ "arm" ], @@ -5269,9 +5176,9 @@ } }, "node_modules/@nx/nx-linux-arm64-gnu": { - "version": "17.1.2", - "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm64-gnu/-/nx-linux-arm64-gnu-17.1.2.tgz", - "integrity": "sha512-r6UATY0dVdxwpVJPf/f/KfRkFpMP06wC6HcfNMGbTBTKiKtsdYF42bWoSkDgtgP2bOx9FDH+Hwu3U/Rtj44FIA==", + "version": "17.0.3", + "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm64-gnu/-/nx-linux-arm64-gnu-17.0.3.tgz", + "integrity": "sha512-1lysnsZv9FS+9fciK0qh5PhsQ8U+vyFoR/jiJl+3vqYNUwEmNLD0VEAZzpZL2SJXQqD5E0bjuQpYxiD7YRXImQ==", "cpu": [ "arm64" ], @@ -5285,9 +5192,9 @@ } }, "node_modules/@nx/nx-linux-arm64-musl": { - "version": "17.1.2", - "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm64-musl/-/nx-linux-arm64-musl-17.1.2.tgz", - "integrity": "sha512-MXGYY/KCzQhbj5UKwnRO2/GhByOkRlI+EeH1Mazam8wZ1BiBfcVWZoOUybIlxxes1o4cAnkZwB527tCmwrHvGw==", + "version": "17.0.3", + "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm64-musl/-/nx-linux-arm64-musl-17.0.3.tgz", + "integrity": "sha512-0/bvSpbc4vOy9E24fu0ajDGe3SO8lmLtlxjXwGRcnzlt/MWM8sazoO0lX163/X2wF6tuL6+HXHOr6AeqsdeRXQ==", "cpu": [ "arm64" ], @@ -5301,9 +5208,9 @@ } }, "node_modules/@nx/nx-linux-x64-gnu": { - "version": "17.1.2", - "resolved": "https://registry.npmjs.org/@nx/nx-linux-x64-gnu/-/nx-linux-x64-gnu-17.1.2.tgz", - "integrity": "sha512-3cC131hJ3VhuxjzzBlwIdVp46onykOo78EmnURNdLxcWOpmcKgYXn7OnVwjrglYi+JL7D0vABGKKUpt1cs6/rA==", + "version": "17.0.3", + "resolved": "https://registry.npmjs.org/@nx/nx-linux-x64-gnu/-/nx-linux-x64-gnu-17.0.3.tgz", + "integrity": "sha512-tKO6MYUxpUsHMuZrYy8hG20RIOdBY3kyEK8wxH8JZZaXKeYUK+5vv5DavWpY5wuu2jffNIJNsbUzcrqOlcbDOg==", "cpu": [ "x64" ], @@ -5317,9 +5224,9 @@ } }, "node_modules/@nx/nx-linux-x64-musl": { - "version": "17.1.2", - "resolved": "https://registry.npmjs.org/@nx/nx-linux-x64-musl/-/nx-linux-x64-musl-17.1.2.tgz", - "integrity": "sha512-1UrR87ByhE0zSXt0C+RNT5ZiAsctOSWZwPYQAGolz8K70BxomDeRVtIaRog5KK5SHlEd1ILvgsmrhovjLjrJNw==", + "version": "17.0.3", + "resolved": "https://registry.npmjs.org/@nx/nx-linux-x64-musl/-/nx-linux-x64-musl-17.0.3.tgz", + "integrity": "sha512-H88yBLrI51m6NGoCkpBYhacRyTBfDuf7x00SnxSfD1yLlxCazPUG7CGkMedpzXo10YHxCFvg7B/Fa23DRRleUg==", "cpu": [ "x64" ], @@ -5333,9 +5240,9 @@ } }, "node_modules/@nx/nx-win32-arm64-msvc": { - "version": "17.1.2", - "resolved": "https://registry.npmjs.org/@nx/nx-win32-arm64-msvc/-/nx-win32-arm64-msvc-17.1.2.tgz", - "integrity": "sha512-2M7FfzfPGAN7tCUWZilPGNk/RbbGcA00MKOA4MDqMwJtLobW8KqfMedilRNTEuyNibejOHwvGzA9T/Ac/ahHgA==", + "version": "17.0.3", + "resolved": "https://registry.npmjs.org/@nx/nx-win32-arm64-msvc/-/nx-win32-arm64-msvc-17.0.3.tgz", + "integrity": "sha512-bKzmzjvgLB4IzLWTySqXgBgXawfw0ZSjUkscFQ3ZHrK9loMba1Ue8Ugy2DktlkUrCyPmGSot+YZViTzWP75C3w==", "cpu": [ "arm64" ], @@ -5349,9 +5256,9 @@ } }, "node_modules/@nx/nx-win32-x64-msvc": { - "version": "17.1.2", - "resolved": "https://registry.npmjs.org/@nx/nx-win32-x64-msvc/-/nx-win32-x64-msvc-17.1.2.tgz", - "integrity": "sha512-oxKCKunuo4wRusMlNu7PlhBijhtNy7eBZPAWyqUsdfnb+CjY2QncjCguW3fnsG9gHQFCa+y0b1WkSkvJ5G1DiQ==", + "version": "17.0.3", + "resolved": "https://registry.npmjs.org/@nx/nx-win32-x64-msvc/-/nx-win32-x64-msvc-17.0.3.tgz", + "integrity": "sha512-SJssAOyUM1IW9t84/Uzau9JHo14hnG5mxvcrborNGlLq+WnP0jzISVs7gvV2xWZ9j1JemxA5KLbkMuIkJyR6qQ==", "cpu": [ "x64" ], @@ -5379,12 +5286,12 @@ } }, "node_modules/@playwright/test": { - "version": "1.40.0", - "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.40.0.tgz", - "integrity": "sha512-PdW+kn4eV99iP5gxWNSDQCbhMaDVej+RXL5xr6t04nbKLCBwYtA046t7ofoczHOm8u6c+45hpDKQVZqtqwkeQg==", + "version": "1.39.0", + "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.39.0.tgz", + "integrity": "sha512-3u1iFqgzl7zr004bGPYiN/5EZpRUSFddQBra8Rqll5N0/vfpqlP9I9EXqAoGacuAbX6c9Ulg/Cjqglp5VkK6UQ==", "dev": true, "dependencies": { - "playwright": "1.40.0" + "playwright": "1.39.0" }, "bin": { "playwright": "cli.js" @@ -5431,13 +5338,13 @@ } }, "node_modules/@schematics/angular": { - "version": "17.0.3", - "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-17.0.3.tgz", - "integrity": "sha512-pFHAqHMNm2WLoquJD4osSA/OAgH+wsFayPuqQnKjDEzeVW/YfJSbUksJ2iFt+uSfrhc/VxPf6pmGBMzi+9d0ng==", + "version": "17.0.0", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-17.0.0.tgz", + "integrity": "sha512-9jKU5x/WzaBsfSkUowK1X74FqtMXa6+A60XgW4ACO8i6fwKfPeS+tIrAieeYOX80/njBh7I5CvcpHmWA2SbcXQ==", "dev": true, "dependencies": { - "@angular-devkit/core": "17.0.3", - "@angular-devkit/schematics": "17.0.3", + "@angular-devkit/core": "17.0.0", + "@angular-devkit/schematics": "17.0.0", "jsonc-parser": "3.2.0" }, "engines": { @@ -5446,45 +5353,6 @@ "yarn": ">= 1.13.0" } }, - "node_modules/@schematics/angular/node_modules/@angular-devkit/core": { - "version": "17.0.3", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-17.0.3.tgz", - "integrity": "sha512-SOngD3rKnwZWhhUV68AYlH8M3LRGvF69jnDrYKwtRy1ESqSH7tt+1vexGC290gKvqH7bNMgYv8f5BS1AASRfzw==", - "dev": true, - "dependencies": { - "ajv": "8.12.0", - "ajv-formats": "2.1.1", - "jsonc-parser": "3.2.0", - "picomatch": "3.0.1", - "rxjs": "7.8.1", - "source-map": "0.7.4" - }, - "engines": { - "node": "^18.13.0 || >=20.9.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" - }, - "peerDependencies": { - "chokidar": "^3.5.2" - }, - "peerDependenciesMeta": { - "chokidar": { - "optional": true - } - } - }, - "node_modules/@schematics/angular/node_modules/picomatch": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-3.0.1.tgz", - "integrity": "sha512-I3EurrIQMlRc9IaAZnqRR044Phh2DXY+55o7uJ0V+hYZAcQYSuFWsc9q5PvyDHUSCe1Qxn/iBz+78s86zWnGag==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, "node_modules/@sigstore/bundle": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/@sigstore/bundle/-/bundle-1.0.0.tgz", @@ -5796,9 +5664,9 @@ } }, "node_modules/@types/file-saver": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/@types/file-saver/-/file-saver-2.0.7.tgz", - "integrity": "sha512-dNKVfHd/jk0SkR/exKGj2ggkB45MAkzvWCaqLUUgkyjITkGNzH8H+yUwr+BLJUBjZOe9w8X3wgmXhZDRg1ED6A==", + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/file-saver/-/file-saver-2.0.6.tgz", + "integrity": "sha512-Mw671DVqoMHbjw0w4v2iiOro01dlT/WhWp5uwecBa0Wg8c+bcZOjgF1ndBnlaxhtvFCgTRBtsGivSVhrK/vnag==", "dev": true }, "node_modules/@types/http-cache-semantics": { @@ -5822,9 +5690,9 @@ } }, "node_modules/@types/jasmine": { - "version": "5.1.4", - "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-5.1.4.tgz", - "integrity": "sha512-px7OMFO/ncXxixDe1zR13V1iycqWae0MxTaw62RpFlksUi5QuNWgQJFkTQjIOvrmutJbI7Fp2Y2N1F6D2R4G6w==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-5.1.1.tgz", + "integrity": "sha512-qL4GoZHHJl1JQ0vK31OtXMfkfGxYJnysmYz9kk0E8j5W96ThKykBF90uD3PcVmQUAzulbsaus2eFiBhCH5itfw==", "dev": true }, "node_modules/@types/json-schema": { @@ -5846,9 +5714,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "20.10.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.10.0.tgz", - "integrity": "sha512-D0WfRmU9TQ8I9PFx9Yc+EBHw+vSpIub4IDvQivcp26PtPrdMGAq5SDcpXEo/epqa/DXotVpekHiLNTg3iaKXBQ==", + "version": "20.8.9", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.8.9.tgz", + "integrity": "sha512-UzykFsT3FhHb1h7yD4CA4YhBHq545JC0YnEz41xkipN88eKQtL6rSgocL5tbAP6Ola9Izm/Aw4Ora8He4x0BHg==", "dev": true, "dependencies": { "undici-types": "~5.26.4" @@ -5882,9 +5750,9 @@ "dev": true }, "node_modules/@types/semver": { - "version": "7.5.6", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.6.tgz", - "integrity": "sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==" + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-MMzuxN3GdFwskAnb6fz0orFvhfqi752yjaXylr0Rp4oDg5H0Zn1IuyRhDVvYOwAXoJirx2xuS16I3WjxnAIHiQ==" }, "node_modules/@types/send": { "version": "0.17.4", @@ -5935,16 +5803,16 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "6.12.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.12.0.tgz", - "integrity": "sha512-XOpZ3IyJUIV1b15M7HVOpgQxPPF7lGXgsfcEIu3yDxFPaf/xZKt7s9QO/pbk7vpWQyVulpJbu4E5LwpZiQo4kA==", + "version": "6.10.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.10.0.tgz", + "integrity": "sha512-uoLj4g2OTL8rfUQVx2AFO1hp/zja1wABJq77P6IclQs6I/m9GLrm7jCdgzZkvWdDCQf1uEvoa8s8CupsgWQgVg==", "dev": true, "dependencies": { "@eslint-community/regexpp": "^4.5.1", - "@typescript-eslint/scope-manager": "6.12.0", - "@typescript-eslint/type-utils": "6.12.0", - "@typescript-eslint/utils": "6.12.0", - "@typescript-eslint/visitor-keys": "6.12.0", + "@typescript-eslint/scope-manager": "6.10.0", + "@typescript-eslint/type-utils": "6.10.0", + "@typescript-eslint/utils": "6.10.0", + "@typescript-eslint/visitor-keys": "6.10.0", "debug": "^4.3.4", "graphemer": "^1.4.0", "ignore": "^5.2.4", @@ -5969,14 +5837,42 @@ } } }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/scope-manager": { - "version": "6.12.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.12.0.tgz", - "integrity": "sha512-5gUvjg+XdSj8pcetdL9eXJzQNTl3RD7LgUiYTl8Aabdi8hFkaGSYnaS6BLc0BGNaDH+tVzVwmKtWvu0jLgWVbw==", + "node_modules/@typescript-eslint/parser": { + "version": "6.10.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.10.0.tgz", + "integrity": "sha512-+sZwIj+s+io9ozSxIWbNB5873OSdfeBEH/FR0re14WLI6BaKuSOnnwCJ2foUiu8uXf4dRp1UqHP0vrZ1zXGrog==", + "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "6.10.0", + "@typescript-eslint/types": "6.10.0", + "@typescript-eslint/typescript-estree": "6.10.0", + "@typescript-eslint/visitor-keys": "6.10.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "6.10.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.10.0.tgz", + "integrity": "sha512-TN/plV7dzqqC2iPNf1KrxozDgZs53Gfgg5ZHyw8erd6jd5Ta/JIEcdCheXFt9b1NYb93a1wmIIVW/2gLkombDg==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.12.0", - "@typescript-eslint/visitor-keys": "6.12.0" + "@typescript-eslint/types": "6.10.0", + "@typescript-eslint/visitor-keys": "6.10.0" }, "engines": { "node": "^16.0.0 || >=18.0.0" @@ -5986,14 +5882,14 @@ "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/type-utils": { - "version": "6.12.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.12.0.tgz", - "integrity": "sha512-WWmRXxhm1X8Wlquj+MhsAG4dU/Blvf1xDgGaYCzfvStP2NwPQh6KBvCDbiOEvaE0filhranjIlK/2fSTVwtBng==", + "node_modules/@typescript-eslint/type-utils": { + "version": "6.10.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.10.0.tgz", + "integrity": "sha512-wYpPs3hgTFblMYwbYWPT3eZtaDOjbLyIYuqpwuLBBqhLiuvJ+9sEp2gNRJEtR5N/c9G1uTtQQL5AhV0fEPJYcg==", "dev": true, "dependencies": { - "@typescript-eslint/typescript-estree": "6.12.0", - "@typescript-eslint/utils": "6.12.0", + "@typescript-eslint/typescript-estree": "6.10.0", + "@typescript-eslint/utils": "6.10.0", "debug": "^4.3.4", "ts-api-utils": "^1.0.1" }, @@ -6013,10 +5909,10 @@ } } }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/types": { - "version": "6.12.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.12.0.tgz", - "integrity": "sha512-MA16p/+WxM5JG/F3RTpRIcuOghWO30//VEOvzubM8zuOOBYXsP+IfjoCXXiIfy2Ta8FRh9+IO9QLlaFQUU+10Q==", + "node_modules/@typescript-eslint/types": { + "version": "6.10.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.10.0.tgz", + "integrity": "sha512-36Fq1PWh9dusgo3vH7qmQAj5/AZqARky1Wi6WpINxB6SkQdY5vQoT2/7rW7uBIsPDcvvGCLi4r10p0OJ7ITAeg==", "dev": true, "engines": { "node": "^16.0.0 || >=18.0.0" @@ -6026,14 +5922,14 @@ "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/typescript-estree": { - "version": "6.12.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.12.0.tgz", - "integrity": "sha512-vw9E2P9+3UUWzhgjyyVczLWxZ3GuQNT7QpnIY3o5OMeLO/c8oHljGc8ZpryBMIyympiAAaKgw9e5Hl9dCWFOYw==", + "node_modules/@typescript-eslint/typescript-estree": { + "version": "6.10.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.10.0.tgz", + "integrity": "sha512-ek0Eyuy6P15LJVeghbWhSrBCj/vJpPXXR+EpaRZqou7achUWL8IdYnMSC5WHAeTWswYQuP2hAZgij/bC9fanBg==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.12.0", - "@typescript-eslint/visitor-keys": "6.12.0", + "@typescript-eslint/types": "6.10.0", + "@typescript-eslint/visitor-keys": "6.10.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -6053,18 +5949,18 @@ } } }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/utils": { - "version": "6.12.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.12.0.tgz", - "integrity": "sha512-LywPm8h3tGEbgfyjYnu3dauZ0U7R60m+miXgKcZS8c7QALO9uWJdvNoP+duKTk2XMWc7/Q3d/QiCuLN9X6SWyQ==", + "node_modules/@typescript-eslint/utils": { + "version": "6.10.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.10.0.tgz", + "integrity": "sha512-v+pJ1/RcVyRc0o4wAGux9x42RHmAjIGzPRo538Z8M1tVx6HOnoQBCX/NoadHQlZeC+QO2yr4nNSFWOoraZCAyg==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", "@types/json-schema": "^7.0.12", "@types/semver": "^7.5.0", - "@typescript-eslint/scope-manager": "6.12.0", - "@typescript-eslint/types": "6.12.0", - "@typescript-eslint/typescript-estree": "6.12.0", + "@typescript-eslint/scope-manager": "6.10.0", + "@typescript-eslint/types": "6.10.0", + "@typescript-eslint/typescript-estree": "6.10.0", "semver": "^7.5.4" }, "engines": { @@ -6078,13 +5974,13 @@ "eslint": "^7.0.0 || ^8.0.0" } }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/visitor-keys": { - "version": "6.12.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.12.0.tgz", - "integrity": "sha512-rg3BizTZHF1k3ipn8gfrzDXXSFKyOEB5zxYXInQ6z0hUvmQlhaZQzK+YmHmNViMA9HzW5Q9+bPPt90bU6GQwyw==", + "node_modules/@typescript-eslint/visitor-keys": { + "version": "6.10.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.10.0.tgz", + "integrity": "sha512-xMGluxQIEtOM7bqFCo+rCMh5fqI+ZxV5RUUOa29iVPz1OgCZrtc7rFnz5cLUazlkPKYqX+75iuDq7m0HQ48nCg==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.12.0", + "@typescript-eslint/types": "6.10.0", "eslint-visitor-keys": "^3.4.1" }, "engines": { @@ -6095,301 +5991,73 @@ "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@typescript-eslint/parser": { - "version": "6.12.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.12.0.tgz", - "integrity": "sha512-s8/jNFPKPNRmXEnNXfuo1gemBdVmpQsK1pcu+QIvuNJuhFzGrpD7WjOcvDc/+uEdfzSYpNu7U/+MmbScjoQ6vg==", + "node_modules/@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "dev": true + }, + "node_modules/@vitejs/plugin-basic-ssl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-basic-ssl/-/plugin-basic-ssl-1.0.1.tgz", + "integrity": "sha512-pcub+YbFtFhaGRTo1832FQHQSHvMrlb43974e2eS8EKleR3p1cDdkJFPci1UhwkEf1J9Bz+wKBSzqpKp7nNj2A==", "dev": true, - "dependencies": { - "@typescript-eslint/scope-manager": "6.12.0", - "@typescript-eslint/types": "6.12.0", - "@typescript-eslint/typescript-estree": "6.12.0", - "@typescript-eslint/visitor-keys": "6.12.0", - "debug": "^4.3.4" - }, "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "node": ">=14.6.0" }, "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "vite": "^3.0.0 || ^4.0.0" } }, - "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/scope-manager": { - "version": "6.12.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.12.0.tgz", - "integrity": "sha512-5gUvjg+XdSj8pcetdL9eXJzQNTl3RD7LgUiYTl8Aabdi8hFkaGSYnaS6BLc0BGNaDH+tVzVwmKtWvu0jLgWVbw==", + "node_modules/@webassemblyjs/ast": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.6.tgz", + "integrity": "sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.12.0", - "@typescript-eslint/visitor-keys": "6.12.0" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "@webassemblyjs/helper-numbers": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6" } }, - "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/types": { - "version": "6.12.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.12.0.tgz", - "integrity": "sha512-MA16p/+WxM5JG/F3RTpRIcuOghWO30//VEOvzubM8zuOOBYXsP+IfjoCXXiIfy2Ta8FRh9+IO9QLlaFQUU+10Q==", + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", + "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", + "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz", + "integrity": "sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", + "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==", "dev": true, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "dependencies": { + "@webassemblyjs/floating-point-hex-parser": "1.11.6", + "@webassemblyjs/helper-api-error": "1.11.6", + "@xtuc/long": "4.2.2" } }, - "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/typescript-estree": { - "version": "6.12.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.12.0.tgz", - "integrity": "sha512-vw9E2P9+3UUWzhgjyyVczLWxZ3GuQNT7QpnIY3o5OMeLO/c8oHljGc8ZpryBMIyympiAAaKgw9e5Hl9dCWFOYw==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "6.12.0", - "@typescript-eslint/visitor-keys": "6.12.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.5.4", - "ts-api-utils": "^1.0.1" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/visitor-keys": { - "version": "6.12.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.12.0.tgz", - "integrity": "sha512-rg3BizTZHF1k3ipn8gfrzDXXSFKyOEB5zxYXInQ6z0hUvmQlhaZQzK+YmHmNViMA9HzW5Q9+bPPt90bU6GQwyw==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "6.12.0", - "eslint-visitor-keys": "^3.4.1" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/scope-manager": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.11.0.tgz", - "integrity": "sha512-0A8KoVvIURG4uhxAdjSaxy8RdRE//HztaZdG8KiHLP8WOXSk0vlF7Pvogv+vlJA5Rnjj/wDcFENvDaHb+gKd1A==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "6.11.0", - "@typescript-eslint/visitor-keys": "6.11.0" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/type-utils": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.11.0.tgz", - "integrity": "sha512-nA4IOXwZtqBjIoYrJcYxLRO+F9ri+leVGoJcMW1uqr4r1Hq7vW5cyWrA43lFbpRvQ9XgNrnfLpIkO3i1emDBIA==", - "dev": true, - "dependencies": { - "@typescript-eslint/typescript-estree": "6.11.0", - "@typescript-eslint/utils": "6.11.0", - "debug": "^4.3.4", - "ts-api-utils": "^1.0.1" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/types": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.11.0.tgz", - "integrity": "sha512-ZbEzuD4DwEJxwPqhv3QULlRj8KYTAnNsXxmfuUXFCxZmO6CF2gM/y+ugBSAQhrqaJL3M+oe4owdWunaHM6beqA==", - "dev": true, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/typescript-estree": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.11.0.tgz", - "integrity": "sha512-Aezzv1o2tWJwvZhedzvD5Yv7+Lpu1by/U1LZ5gLc4tCx8jUmuSCMioPFRjliN/6SJIvY6HpTtJIWubKuYYYesQ==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "6.11.0", - "@typescript-eslint/visitor-keys": "6.11.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.5.4", - "ts-api-utils": "^1.0.1" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/utils": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.11.0.tgz", - "integrity": "sha512-p23ibf68fxoZy605dc0dQAEoUsoiNoP3MD9WQGiHLDuTSOuqoTsa4oAy+h3KDkTcxbbfOtUjb9h3Ta0gT4ug2g==", - "dev": true, - "dependencies": { - "@eslint-community/eslint-utils": "^4.4.0", - "@types/json-schema": "^7.0.12", - "@types/semver": "^7.5.0", - "@typescript-eslint/scope-manager": "6.11.0", - "@typescript-eslint/types": "6.11.0", - "@typescript-eslint/typescript-estree": "6.11.0", - "semver": "^7.5.4" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0" - } - }, - "node_modules/@typescript-eslint/visitor-keys": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.11.0.tgz", - "integrity": "sha512-+SUN/W7WjBr05uRxPggJPSzyB8zUpaYo2hByKasWbqr3PM8AXfZt8UHdNpBS1v9SA62qnSSMF3380SwDqqprgQ==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "6.11.0", - "eslint-visitor-keys": "^3.4.1" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@ungap/structured-clone": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", - "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", - "dev": true - }, - "node_modules/@vitejs/plugin-basic-ssl": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-basic-ssl/-/plugin-basic-ssl-1.0.1.tgz", - "integrity": "sha512-pcub+YbFtFhaGRTo1832FQHQSHvMrlb43974e2eS8EKleR3p1cDdkJFPci1UhwkEf1J9Bz+wKBSzqpKp7nNj2A==", - "dev": true, - "engines": { - "node": ">=14.6.0" - }, - "peerDependencies": { - "vite": "^3.0.0 || ^4.0.0" - } - }, - "node_modules/@webassemblyjs/ast": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.6.tgz", - "integrity": "sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q==", - "dev": true, - "dependencies": { - "@webassemblyjs/helper-numbers": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6" - } - }, - "node_modules/@webassemblyjs/floating-point-hex-parser": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", - "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==", - "dev": true - }, - "node_modules/@webassemblyjs/helper-api-error": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", - "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==", - "dev": true - }, - "node_modules/@webassemblyjs/helper-buffer": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz", - "integrity": "sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA==", - "dev": true - }, - "node_modules/@webassemblyjs/helper-numbers": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", - "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==", - "dev": true, - "dependencies": { - "@webassemblyjs/floating-point-hex-parser": "1.11.6", - "@webassemblyjs/helper-api-error": "1.11.6", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/helper-wasm-bytecode": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", - "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==", - "dev": true - }, - "node_modules/@webassemblyjs/helper-wasm-section": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz", - "integrity": "sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g==", + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", + "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz", + "integrity": "sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g==", "dev": true, "dependencies": { "@webassemblyjs/ast": "1.11.6", @@ -9552,15 +9220,15 @@ } }, "node_modules/eslint": { - "version": "8.54.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.54.0.tgz", - "integrity": "sha512-NY0DfAkM8BIZDVl6PgSa1ttZbx3xHgJzSNJKYcQglem6CppHyMhRIQkBVSSMaSRnLhig3jsDbEzOjwCVt4AmmA==", + "version": "8.53.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.53.0.tgz", + "integrity": "sha512-N4VuiPjXDUa4xVeV/GC/RV3hQW9Nw+Y463lkWaKKXKYMvmRiRDAtfpuPFLN+E1/6ZhyR8J2ig+eVREnYgUsiag==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", "@eslint/eslintrc": "^2.1.3", - "@eslint/js": "8.54.0", + "@eslint/js": "8.53.0", "@humanwhocodes/config-array": "^0.11.13", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", @@ -14026,9 +13694,9 @@ } }, "node_modules/ngx-toastr": { - "version": "18.0.0", - "resolved": "https://registry.npmjs.org/ngx-toastr/-/ngx-toastr-18.0.0.tgz", - "integrity": "sha512-jZ3rOG6kygl8ittY8OltIMSo47P1VStuS01igm3MZXK6InJwHVvxU7wDHI/HGMlXSyNvWncyOuFHnnMEAifsew==", + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/ngx-toastr/-/ngx-toastr-17.0.2.tgz", + "integrity": "sha512-KehiPx6bkbiUyJbabf0ZA04+ASumS8r/y4wPsUOMI9OrBvBcfq27UQmWuQKoVR8E+9y4Pq7eZkSg2kvxNvpxTA==", "dependencies": { "tslib": "^2.3.0" }, @@ -14221,9 +13889,9 @@ } }, "node_modules/npm": { - "version": "10.2.4", - "resolved": "https://registry.npmjs.org/npm/-/npm-10.2.4.tgz", - "integrity": "sha512-umEuYneVEYO9KoEEI8n2sSGmNQeqco/3BSeacRlqIkCzw4E7XGtYSWMeJobxzr6hZ2n9cM+u5TsMTcC5bAgoWA==", + "version": "10.2.1", + "resolved": "https://registry.npmjs.org/npm/-/npm-10.2.1.tgz", + "integrity": "sha512-YVh8UDw5lR2bPS6rrS0aPG9ZXKDWeaeO/zMoZMp7g3Thrho9cqEnSrcvg4Pic2QhDAQptAynx5KgrPgCSRscqg==", "bundleDependencies": [ "@isaacs/string-locale-compare", "@npmcli/arborist", @@ -14299,19 +13967,19 @@ ], "dependencies": { "@isaacs/string-locale-compare": "^1.1.0", - "@npmcli/arborist": "^7.2.1", - "@npmcli/config": "^8.0.2", + "@npmcli/arborist": "^7.2.0", + "@npmcli/config": "^8.0.1", "@npmcli/fs": "^3.1.0", "@npmcli/map-workspaces": "^3.0.4", "@npmcli/package-json": "^5.0.0", "@npmcli/promise-spawn": "^7.0.0", - "@npmcli/run-script": "^7.0.2", - "@sigstore/tuf": "^2.2.0", + "@npmcli/run-script": "^7.0.1", + "@sigstore/tuf": "^2.1.0", "abbrev": "^2.0.0", "archy": "~1.0.0", "cacache": "^18.0.0", "chalk": "^5.3.0", - "ci-info": "^4.0.0", + "ci-info": "^3.9.0", "cli-columns": "^4.0.0", "cli-table3": "^0.6.3", "columnify": "^1.6.0", @@ -14322,25 +13990,25 @@ "hosted-git-info": "^7.0.1", "ini": "^4.1.1", "init-package-json": "^6.0.0", - "is-cidr": "^5.0.3", + "is-cidr": "^4.0.2", "json-parse-even-better-errors": "^3.0.0", "libnpmaccess": "^8.0.1", - "libnpmdiff": "^6.0.3", - "libnpmexec": "^7.0.4", - "libnpmfund": "^5.0.1", + "libnpmdiff": "^6.0.2", + "libnpmexec": "^7.0.2", + "libnpmfund": "^5.0.0", "libnpmhook": "^10.0.0", "libnpmorg": "^6.0.1", - "libnpmpack": "^6.0.3", - "libnpmpublish": "^9.0.2", + "libnpmpack": "^6.0.2", + "libnpmpublish": "^9.0.1", "libnpmsearch": "^7.0.0", "libnpmteam": "^6.0.0", - "libnpmversion": "^5.0.1", + "libnpmversion": "^5.0.0", "make-fetch-happen": "^13.0.0", "minimatch": "^9.0.3", "minipass": "^7.0.4", "minipass-pipeline": "^1.2.4", "ms": "^2.1.2", - "node-gyp": "^10.0.1", + "node-gyp": "^9.4.0", "nopt": "^7.2.0", "normalize-package-data": "^6.0.0", "npm-audit-report": "^5.0.0", @@ -14360,7 +14028,7 @@ "semver": "^7.5.4", "spdx-expression-parse": "^3.0.1", "ssri": "^10.0.5", - "strip-ansi": "^7.1.0", + "strip-ansi": "^6.0.1", "supports-color": "^9.4.0", "tar": "^6.2.0", "text-table": "~0.2.0", @@ -14390,9 +14058,9 @@ } }, "node_modules/npm-check-updates": { - "version": "16.14.11", - "resolved": "https://registry.npmjs.org/npm-check-updates/-/npm-check-updates-16.14.11.tgz", - "integrity": "sha512-0MMWGbGci22Pu77bR9jRsy5qgxdQSJVqNtSyyFeubDPtbcU36z4gjEDITu26PMabFWPNkAoVfKF31M3uKUvzFg==", + "version": "16.14.6", + "resolved": "https://registry.npmjs.org/npm-check-updates/-/npm-check-updates-16.14.6.tgz", + "integrity": "sha512-sJ6w4AmSDP7YzBXah94Ul2JhiIbjBDfx9XYgib15um2wtiQkOyjE7Lov3MNUSQ84Ry7T81mE4ynMbl/mGbK4HQ==", "dependencies": { "chalk": "^5.3.0", "cli-table3": "^0.6.3", @@ -14725,6 +14393,17 @@ "node": ">=12" } }, + "node_modules/npm/node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.0.1", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, "node_modules/npm/node_modules/@isaacs/cliui/node_modules/emoji-regex": { "version": "9.2.2", "inBundle": true, @@ -14746,6 +14425,20 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/npm/node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, "node_modules/npm/node_modules/@isaacs/string-locale-compare": { "version": "1.1.0", "inBundle": true, @@ -14766,38 +14459,86 @@ "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/npm/node_modules/@npmcli/arborist": { - "version": "7.2.1", + "node_modules/npm/node_modules/@npmcli/agent/node_modules/agent-base": { + "version": "7.1.0", "inBundle": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "@isaacs/string-locale-compare": "^1.1.0", - "@npmcli/fs": "^3.1.0", - "@npmcli/installed-package-contents": "^2.0.2", - "@npmcli/map-workspaces": "^3.0.2", - "@npmcli/metavuln-calculator": "^7.0.0", - "@npmcli/name-from-folder": "^2.0.0", - "@npmcli/node-gyp": "^3.0.0", - "@npmcli/package-json": "^5.0.0", - "@npmcli/query": "^3.0.1", - "@npmcli/run-script": "^7.0.2", - "bin-links": "^4.0.1", - "cacache": "^18.0.0", - "common-ancestor-path": "^1.0.1", - "hosted-git-info": "^7.0.1", - "json-parse-even-better-errors": "^3.0.0", - "json-stringify-nice": "^1.1.4", - "minimatch": "^9.0.0", - "nopt": "^7.0.0", - "npm-install-checks": "^6.2.0", - "npm-package-arg": "^11.0.1", - "npm-pick-manifest": "^9.0.0", - "npm-registry-fetch": "^16.0.0", - "npmlog": "^7.0.1", - "pacote": "^17.0.4", - "parse-conflict-json": "^3.0.0", - "proc-log": "^3.0.0", - "promise-all-reject-late": "^1.0.0", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/npm/node_modules/@npmcli/agent/node_modules/http-proxy-agent": { + "version": "7.0.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/npm/node_modules/@npmcli/agent/node_modules/https-proxy-agent": { + "version": "7.0.2", + "inBundle": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.0.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/npm/node_modules/@npmcli/agent/node_modules/socks-proxy-agent": { + "version": "8.0.2", + "inBundle": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.0.2", + "debug": "^4.3.4", + "socks": "^2.7.1" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/npm/node_modules/@npmcli/arborist": { + "version": "7.2.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "@isaacs/string-locale-compare": "^1.1.0", + "@npmcli/fs": "^3.1.0", + "@npmcli/installed-package-contents": "^2.0.2", + "@npmcli/map-workspaces": "^3.0.2", + "@npmcli/metavuln-calculator": "^7.0.0", + "@npmcli/name-from-folder": "^2.0.0", + "@npmcli/node-gyp": "^3.0.0", + "@npmcli/package-json": "^5.0.0", + "@npmcli/query": "^3.0.1", + "@npmcli/run-script": "^7.0.1", + "bin-links": "^4.0.1", + "cacache": "^18.0.0", + "common-ancestor-path": "^1.0.1", + "hosted-git-info": "^7.0.1", + "json-parse-even-better-errors": "^3.0.0", + "json-stringify-nice": "^1.1.4", + "minimatch": "^9.0.0", + "nopt": "^7.0.0", + "npm-install-checks": "^6.2.0", + "npm-package-arg": "^11.0.1", + "npm-pick-manifest": "^9.0.0", + "npm-registry-fetch": "^16.0.0", + "npmlog": "^7.0.1", + "pacote": "^17.0.4", + "parse-conflict-json": "^3.0.0", + "proc-log": "^3.0.0", + "promise-all-reject-late": "^1.0.0", "promise-call-limit": "^1.0.2", "read-package-json-fast": "^3.0.2", "semver": "^7.3.7", @@ -14813,12 +14554,12 @@ } }, "node_modules/npm/node_modules/@npmcli/config": { - "version": "8.0.2", + "version": "8.0.1", "inBundle": true, "license": "ISC", "dependencies": { "@npmcli/map-workspaces": "^3.0.2", - "ci-info": "^4.0.0", + "ci-info": "^3.8.0", "ini": "^4.1.0", "nopt": "^7.0.0", "proc-log": "^3.0.0", @@ -14841,20 +14582,6 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/npm/node_modules/@npmcli/disparity-colors/node_modules/ansi-styles": { - "version": "4.3.0", - "inBundle": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, "node_modules/npm/node_modules/@npmcli/fs": { "version": "3.1.0", "inBundle": true, @@ -14983,13 +14710,13 @@ } }, "node_modules/npm/node_modules/@npmcli/run-script": { - "version": "7.0.2", + "version": "7.0.1", "inBundle": true, "license": "ISC", "dependencies": { "@npmcli/node-gyp": "^3.0.0", "@npmcli/promise-spawn": "^7.0.0", - "node-gyp": "^10.0.0", + "node-gyp": "^9.0.0", "read-package-json-fast": "^3.0.0", "which": "^4.0.0" }, @@ -15026,7 +14753,7 @@ } }, "node_modules/npm/node_modules/@sigstore/sign": { - "version": "2.2.0", + "version": "2.1.0", "inBundle": true, "license": "Apache-2.0", "dependencies": { @@ -15039,7 +14766,7 @@ } }, "node_modules/npm/node_modules/@sigstore/tuf": { - "version": "2.2.0", + "version": "2.1.0", "inBundle": true, "license": "Apache-2.0", "dependencies": { @@ -15050,6 +14777,14 @@ "node": "^16.14.0 || >=18.0.0" } }, + "node_modules/npm/node_modules/@tootallnate/once": { + "version": "2.0.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, "node_modules/npm/node_modules/@tufjs/canonical-json": { "version": "2.0.0", "inBundle": true, @@ -15090,14 +14825,25 @@ } }, "node_modules/npm/node_modules/agent-base": { - "version": "7.1.0", + "version": "6.0.2", "inBundle": true, "license": "MIT", "dependencies": { - "debug": "^4.3.4" + "debug": "4" }, "engines": { - "node": ">= 14" + "node": ">= 6.0.0" + } + }, + "node_modules/npm/node_modules/agentkeepalive": { + "version": "4.5.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "humanize-ms": "^1.2.1" + }, + "engines": { + "node": ">= 8.0.0" } }, "node_modules/npm/node_modules/aggregate-error": { @@ -15113,22 +14859,22 @@ } }, "node_modules/npm/node_modules/ansi-regex": { - "version": "6.0.1", + "version": "5.0.1", "inBundle": true, "license": "MIT", "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" + "node": ">=8" } }, "node_modules/npm/node_modules/ansi-styles": { - "version": "6.2.1", + "version": "4.3.0", "inBundle": true, "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, "engines": { - "node": ">=12" + "node": ">=8" }, "funding": { "url": "https://github.com/chalk/ansi-styles?sponsor=1" @@ -15283,7 +15029,7 @@ } }, "node_modules/npm/node_modules/ci-info": { - "version": "4.0.0", + "version": "3.9.0", "funding": [ { "type": "github", @@ -15297,14 +15043,14 @@ } }, "node_modules/npm/node_modules/cidr-regex": { - "version": "4.0.3", + "version": "3.1.1", "inBundle": true, "license": "BSD-2-Clause", "dependencies": { - "ip-regex": "^5.0.0" + "ip-regex": "^4.1.0" }, "engines": { - "node": ">=14" + "node": ">=10" } }, "node_modules/npm/node_modules/clean-stack": { @@ -15327,25 +15073,6 @@ "node": ">= 10" } }, - "node_modules/npm/node_modules/cli-columns/node_modules/ansi-regex": { - "version": "5.0.1", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/npm/node_modules/cli-columns/node_modules/strip-ansi": { - "version": "6.0.1", - "inBundle": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/npm/node_modules/cli-table3": { "version": "0.6.3", "inBundle": true, @@ -15412,30 +15139,16 @@ "node": ">=8.0.0" } }, - "node_modules/npm/node_modules/columnify/node_modules/ansi-regex": { - "version": "5.0.1", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/npm/node_modules/columnify/node_modules/strip-ansi": { - "version": "6.0.1", - "inBundle": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/npm/node_modules/common-ancestor-path": { "version": "1.0.1", "inBundle": true, "license": "ISC" }, + "node_modules/npm/node_modules/concat-map": { + "version": "0.0.1", + "inBundle": true, + "license": "MIT" + }, "node_modules/npm/node_modules/console-control-strings": { "version": "1.1.0", "inBundle": true, @@ -15611,13 +15324,15 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, + "node_modules/npm/node_modules/fs.realpath": { + "version": "1.0.0", + "inBundle": true, + "license": "ISC" + }, "node_modules/npm/node_modules/function-bind": { - "version": "1.1.2", + "version": "1.1.1", "inBundle": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } + "license": "MIT" }, "node_modules/npm/node_modules/gauge": { "version": "5.0.1", @@ -15637,25 +15352,6 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/npm/node_modules/gauge/node_modules/ansi-regex": { - "version": "5.0.1", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/npm/node_modules/gauge/node_modules/strip-ansi": { - "version": "6.0.1", - "inBundle": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/npm/node_modules/glob": { "version": "10.3.10", "inBundle": true, @@ -15682,22 +15378,22 @@ "inBundle": true, "license": "ISC" }, - "node_modules/npm/node_modules/has-unicode": { - "version": "2.0.1", - "inBundle": true, - "license": "ISC" - }, - "node_modules/npm/node_modules/hasown": { - "version": "2.0.0", + "node_modules/npm/node_modules/has": { + "version": "1.0.3", "inBundle": true, "license": "MIT", "dependencies": { - "function-bind": "^1.1.2" + "function-bind": "^1.1.1" }, "engines": { - "node": ">= 0.4" + "node": ">= 0.4.0" } }, + "node_modules/npm/node_modules/has-unicode": { + "version": "2.0.1", + "inBundle": true, + "license": "ISC" + }, "node_modules/npm/node_modules/hosted-git-info": { "version": "7.0.1", "inBundle": true, @@ -15715,27 +15411,36 @@ "license": "BSD-2-Clause" }, "node_modules/npm/node_modules/http-proxy-agent": { - "version": "7.0.0", + "version": "5.0.0", "inBundle": true, "license": "MIT", "dependencies": { - "agent-base": "^7.1.0", - "debug": "^4.3.4" + "@tootallnate/once": "2", + "agent-base": "6", + "debug": "4" }, "engines": { - "node": ">= 14" + "node": ">= 6" } }, "node_modules/npm/node_modules/https-proxy-agent": { - "version": "7.0.2", + "version": "5.0.1", "inBundle": true, "license": "MIT", "dependencies": { - "agent-base": "^7.0.2", + "agent-base": "6", "debug": "4" }, "engines": { - "node": ">= 14" + "node": ">= 6" + } + }, + "node_modules/npm/node_modules/humanize-ms": { + "version": "1.2.1", + "inBundle": true, + "license": "MIT", + "dependencies": { + "ms": "^2.0.0" } }, "node_modules/npm/node_modules/iconv-lite": { @@ -15796,6 +15501,20 @@ "node": ">=8" } }, + "node_modules/npm/node_modules/inflight": { + "version": "1.0.6", + "inBundle": true, + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/npm/node_modules/inherits": { + "version": "2.0.4", + "inBundle": true, + "license": "ISC" + }, "node_modules/npm/node_modules/ini": { "version": "4.1.1", "inBundle": true, @@ -15827,33 +15546,30 @@ "license": "MIT" }, "node_modules/npm/node_modules/ip-regex": { - "version": "5.0.0", + "version": "4.3.0", "inBundle": true, "license": "MIT", "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=8" } }, "node_modules/npm/node_modules/is-cidr": { - "version": "5.0.3", + "version": "4.0.2", "inBundle": true, "license": "BSD-2-Clause", "dependencies": { - "cidr-regex": "4.0.3" + "cidr-regex": "^3.1.1" }, "engines": { - "node": ">=14" + "node": ">=10" } }, "node_modules/npm/node_modules/is-core-module": { - "version": "2.13.1", + "version": "2.13.0", "inBundle": true, "license": "MIT", "dependencies": { - "hasown": "^2.0.0" + "has": "^1.0.3" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -15941,11 +15657,11 @@ } }, "node_modules/npm/node_modules/libnpmdiff": { - "version": "6.0.3", + "version": "6.0.2", "inBundle": true, "license": "ISC", "dependencies": { - "@npmcli/arborist": "^7.2.1", + "@npmcli/arborist": "^7.2.0", "@npmcli/disparity-colors": "^3.0.0", "@npmcli/installed-package-contents": "^2.0.2", "binary-extensions": "^2.2.0", @@ -15960,13 +15676,13 @@ } }, "node_modules/npm/node_modules/libnpmexec": { - "version": "7.0.4", + "version": "7.0.2", "inBundle": true, "license": "ISC", "dependencies": { - "@npmcli/arborist": "^7.2.1", - "@npmcli/run-script": "^7.0.2", - "ci-info": "^4.0.0", + "@npmcli/arborist": "^7.2.0", + "@npmcli/run-script": "^7.0.1", + "ci-info": "^3.7.1", "npm-package-arg": "^11.0.1", "npmlog": "^7.0.1", "pacote": "^17.0.4", @@ -15981,11 +15697,11 @@ } }, "node_modules/npm/node_modules/libnpmfund": { - "version": "5.0.1", + "version": "5.0.0", "inBundle": true, "license": "ISC", "dependencies": { - "@npmcli/arborist": "^7.2.1" + "@npmcli/arborist": "^7.2.0" }, "engines": { "node": "^16.14.0 || >=18.0.0" @@ -16016,12 +15732,12 @@ } }, "node_modules/npm/node_modules/libnpmpack": { - "version": "6.0.3", + "version": "6.0.2", "inBundle": true, "license": "ISC", "dependencies": { - "@npmcli/arborist": "^7.2.1", - "@npmcli/run-script": "^7.0.2", + "@npmcli/arborist": "^7.2.0", + "@npmcli/run-script": "^7.0.1", "npm-package-arg": "^11.0.1", "pacote": "^17.0.4" }, @@ -16030,11 +15746,11 @@ } }, "node_modules/npm/node_modules/libnpmpublish": { - "version": "9.0.2", + "version": "9.0.1", "inBundle": true, "license": "ISC", "dependencies": { - "ci-info": "^4.0.0", + "ci-info": "^3.6.1", "normalize-package-data": "^6.0.0", "npm-package-arg": "^11.0.1", "npm-registry-fetch": "^16.0.0", @@ -16071,12 +15787,12 @@ } }, "node_modules/npm/node_modules/libnpmversion": { - "version": "5.0.1", + "version": "5.0.0", "inBundle": true, "license": "ISC", "dependencies": { "@npmcli/git": "^5.0.3", - "@npmcli/run-script": "^7.0.2", + "@npmcli/run-script": "^7.0.1", "json-parse-even-better-errors": "^3.0.0", "proc-log": "^3.0.0", "semver": "^7.3.7" @@ -16086,12 +15802,9 @@ } }, "node_modules/npm/node_modules/lru-cache": { - "version": "10.0.2", + "version": "10.0.1", "inBundle": true, "license": "ISC", - "dependencies": { - "semver": "^7.3.5" - }, "engines": { "node": "14 || >=16.14" } @@ -16238,107 +15951,356 @@ "yallist": "^4.0.0" }, "engines": { - "node": ">=8" + "node": ">=8" + } + }, + "node_modules/npm/node_modules/minipass-sized": { + "version": "1.0.3", + "inBundle": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/minipass-sized/node_modules/minipass": { + "version": "3.3.6", + "inBundle": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/minizlib": { + "version": "2.1.2", + "inBundle": true, + "license": "MIT", + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/npm/node_modules/minizlib/node_modules/minipass": { + "version": "3.3.6", + "inBundle": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/mkdirp": { + "version": "1.0.4", + "inBundle": true, + "license": "MIT", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/ms": { + "version": "2.1.3", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/mute-stream": { + "version": "1.0.0", + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/negotiator": { + "version": "0.6.3", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/npm/node_modules/node-gyp": { + "version": "9.4.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "env-paths": "^2.2.0", + "exponential-backoff": "^3.1.1", + "glob": "^7.1.4", + "graceful-fs": "^4.2.6", + "make-fetch-happen": "^11.0.3", + "nopt": "^6.0.0", + "npmlog": "^6.0.0", + "rimraf": "^3.0.2", + "semver": "^7.3.5", + "tar": "^6.1.2", + "which": "^2.0.2" + }, + "bin": { + "node-gyp": "bin/node-gyp.js" + }, + "engines": { + "node": "^12.13 || ^14.13 || >=16" + } + }, + "node_modules/npm/node_modules/node-gyp/node_modules/abbrev": { + "version": "1.1.1", + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/node-gyp/node_modules/are-we-there-yet": { + "version": "3.0.1", + "inBundle": true, + "license": "ISC", + "dependencies": { + "delegates": "^1.0.0", + "readable-stream": "^3.6.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm/node_modules/node-gyp/node_modules/brace-expansion": { + "version": "1.1.11", + "inBundle": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/npm/node_modules/node-gyp/node_modules/cacache": { + "version": "17.1.4", + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/fs": "^3.1.0", + "fs-minipass": "^3.0.0", + "glob": "^10.2.2", + "lru-cache": "^7.7.1", + "minipass": "^7.0.3", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "p-map": "^4.0.0", + "ssri": "^10.0.0", + "tar": "^6.1.11", + "unique-filename": "^3.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/node-gyp/node_modules/cacache/node_modules/brace-expansion": { + "version": "2.0.1", + "inBundle": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob": { + "version": "10.3.3", + "inBundle": true, + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^2.0.3", + "minimatch": "^9.0.1", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", + "path-scurry": "^1.10.1" + }, + "bin": { + "glob": "dist/cjs/src/bin.js" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm/node_modules/node-gyp/node_modules/cacache/node_modules/minimatch": { + "version": "9.0.3", + "inBundle": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm/node_modules/node-gyp/node_modules/cacache/node_modules/minipass": { + "version": "7.0.4", + "inBundle": true, + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/npm/node_modules/node-gyp/node_modules/gauge": { + "version": "4.0.4", + "inBundle": true, + "license": "ISC", + "dependencies": { + "aproba": "^1.0.3 || ^2.0.0", + "color-support": "^1.1.3", + "console-control-strings": "^1.1.0", + "has-unicode": "^2.0.1", + "signal-exit": "^3.0.7", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "wide-align": "^1.1.5" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm/node_modules/node-gyp/node_modules/glob": { + "version": "7.2.3", + "inBundle": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm/node_modules/node-gyp/node_modules/lru-cache": { + "version": "7.18.3", + "inBundle": true, + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/npm/node_modules/node-gyp/node_modules/make-fetch-happen": { + "version": "11.1.1", + "inBundle": true, + "license": "ISC", + "dependencies": { + "agentkeepalive": "^4.2.1", + "cacache": "^17.0.0", + "http-cache-semantics": "^4.1.1", + "http-proxy-agent": "^5.0.0", + "https-proxy-agent": "^5.0.0", + "is-lambda": "^1.0.1", + "lru-cache": "^7.7.1", + "minipass": "^5.0.0", + "minipass-fetch": "^3.0.0", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.3", + "promise-retry": "^2.0.1", + "socks-proxy-agent": "^7.0.0", + "ssri": "^10.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/npm/node_modules/minipass-sized": { - "version": "1.0.3", + "node_modules/npm/node_modules/node-gyp/node_modules/minimatch": { + "version": "3.1.2", "inBundle": true, "license": "ISC", "dependencies": { - "minipass": "^3.0.0" + "brace-expansion": "^1.1.7" }, "engines": { - "node": ">=8" + "node": "*" } }, - "node_modules/npm/node_modules/minipass-sized/node_modules/minipass": { - "version": "3.3.6", + "node_modules/npm/node_modules/node-gyp/node_modules/minipass": { + "version": "5.0.0", "inBundle": true, "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, "engines": { "node": ">=8" } }, - "node_modules/npm/node_modules/minizlib": { - "version": "2.1.2", + "node_modules/npm/node_modules/node-gyp/node_modules/nopt": { + "version": "6.0.0", "inBundle": true, - "license": "MIT", + "license": "ISC", "dependencies": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" + "abbrev": "^1.0.0" + }, + "bin": { + "nopt": "bin/nopt.js" }, "engines": { - "node": ">= 8" + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, - "node_modules/npm/node_modules/minizlib/node_modules/minipass": { - "version": "3.3.6", + "node_modules/npm/node_modules/node-gyp/node_modules/npmlog": { + "version": "6.0.2", "inBundle": true, "license": "ISC", "dependencies": { - "yallist": "^4.0.0" + "are-we-there-yet": "^3.0.0", + "console-control-strings": "^1.1.0", + "gauge": "^4.0.3", + "set-blocking": "^2.0.0" }, "engines": { - "node": ">=8" + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, - "node_modules/npm/node_modules/mkdirp": { - "version": "1.0.4", + "node_modules/npm/node_modules/node-gyp/node_modules/readable-stream": { + "version": "3.6.2", "inBundle": true, "license": "MIT", - "bin": { - "mkdirp": "bin/cmd.js" + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" }, "engines": { - "node": ">=10" + "node": ">= 6" } }, - "node_modules/npm/node_modules/ms": { - "version": "2.1.3", + "node_modules/npm/node_modules/node-gyp/node_modules/signal-exit": { + "version": "3.0.7", "inBundle": true, - "license": "MIT" + "license": "ISC" }, - "node_modules/npm/node_modules/mute-stream": { - "version": "1.0.0", + "node_modules/npm/node_modules/node-gyp/node_modules/which": { + "version": "2.0.2", "inBundle": true, "license": "ISC", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/negotiator": { - "version": "0.6.3", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/npm/node_modules/node-gyp": { - "version": "10.0.1", - "inBundle": true, - "license": "MIT", "dependencies": { - "env-paths": "^2.2.0", - "exponential-backoff": "^3.1.1", - "glob": "^10.3.10", - "graceful-fs": "^4.2.6", - "make-fetch-happen": "^13.0.0", - "nopt": "^7.0.0", - "proc-log": "^3.0.0", - "semver": "^7.3.5", - "tar": "^6.1.2", - "which": "^4.0.0" + "isexe": "^2.0.0" }, "bin": { - "node-gyp": "bin/node-gyp.js" + "node-which": "bin/node-which" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": ">= 8" } }, "node_modules/npm/node_modules/nopt": { @@ -16497,6 +16459,14 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, + "node_modules/npm/node_modules/once": { + "version": "1.4.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, "node_modules/npm/node_modules/p-map": { "version": "4.0.0", "inBundle": true, @@ -16555,6 +16525,14 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, + "node_modules/npm/node_modules/path-is-absolute": { + "version": "1.0.1", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/npm/node_modules/path-key": { "version": "3.1.1", "inBundle": true, @@ -16725,6 +16703,59 @@ "node": ">= 4" } }, + "node_modules/npm/node_modules/rimraf": { + "version": "3.0.2", + "inBundle": true, + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm/node_modules/rimraf/node_modules/brace-expansion": { + "version": "1.1.11", + "inBundle": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/npm/node_modules/rimraf/node_modules/glob": { + "version": "7.2.3", + "inBundle": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm/node_modules/rimraf/node_modules/minimatch": { + "version": "3.1.2", + "inBundle": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/npm/node_modules/safe-buffer": { "version": "5.2.1", "funding": [ @@ -16800,7 +16831,7 @@ } }, "node_modules/npm/node_modules/signal-exit": { - "version": "4.1.0", + "version": "4.0.2", "inBundle": true, "license": "ISC", "engines": { @@ -16847,16 +16878,16 @@ } }, "node_modules/npm/node_modules/socks-proxy-agent": { - "version": "8.0.2", + "version": "7.0.0", "inBundle": true, "license": "MIT", "dependencies": { - "agent-base": "^7.0.2", - "debug": "^4.3.4", - "socks": "^2.7.1" + "agent-base": "^6.0.2", + "debug": "^4.3.3", + "socks": "^2.6.2" }, "engines": { - "node": ">= 14" + "node": ">= 10" } }, "node_modules/npm/node_modules/spdx-correct": { @@ -16933,34 +16964,7 @@ "node": ">=8" } }, - "node_modules/npm/node_modules/string-width-cjs/node_modules/ansi-regex": { - "version": "5.0.1", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/npm/node_modules/string-width-cjs/node_modules/strip-ansi": { - "version": "6.0.1", - "inBundle": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/npm/node_modules/string-width/node_modules/ansi-regex": { - "version": "5.0.1", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/npm/node_modules/string-width/node_modules/strip-ansi": { + "node_modules/npm/node_modules/strip-ansi": { "version": "6.0.1", "inBundle": true, "license": "MIT", @@ -16971,20 +16975,6 @@ "node": ">=8" } }, - "node_modules/npm/node_modules/strip-ansi": { - "version": "7.1.0", - "inBundle": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, "node_modules/npm/node_modules/strip-ansi-cjs": { "name": "strip-ansi", "version": "6.0.1", @@ -16997,14 +16987,6 @@ "node": ">=8" } }, - "node_modules/npm/node_modules/strip-ansi-cjs/node_modules/ansi-regex": { - "version": "5.0.1", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/npm/node_modules/supports-color": { "version": "9.4.0", "inBundle": true, @@ -17216,39 +17198,28 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/npm/node_modules/wrap-ansi-cjs/node_modules/ansi-regex": { - "version": "5.0.1", + "node_modules/npm/node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "6.0.1", "inBundle": true, "license": "MIT", "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, - "node_modules/npm/node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { - "version": "4.3.0", + "node_modules/npm/node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "6.2.1", "inBundle": true, "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, "engines": { - "node": ">=8" + "node": ">=12" }, "funding": { "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/npm/node_modules/wrap-ansi-cjs/node_modules/strip-ansi": { - "version": "6.0.1", - "inBundle": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/npm/node_modules/wrap-ansi/node_modules/emoji-regex": { "version": "9.2.2", "inBundle": true, @@ -17270,6 +17241,25 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/npm/node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "7.1.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/npm/node_modules/wrappy": { + "version": "1.0.2", + "inBundle": true, + "license": "ISC" + }, "node_modules/npm/node_modules/write-file-atomic": { "version": "5.0.1", "inBundle": true, @@ -17314,13 +17304,13 @@ } }, "node_modules/nx": { - "version": "17.1.2", - "resolved": "https://registry.npmjs.org/nx/-/nx-17.1.2.tgz", - "integrity": "sha512-pf94ri36cAiSzbYcPTJwQzttgAsHSjCLEni0Ilw6aVdjpoV2l6cggYxwddX7pgtCWuokVp/6KhAxVkbzvH65wg==", + "version": "17.0.3", + "resolved": "https://registry.npmjs.org/nx/-/nx-17.0.3.tgz", + "integrity": "sha512-VShJISKCYt3iVJoMUPZiv67+0tiItxWMnfVmTmPZPio2Fu+wGc9U4ijjPxcmp2RJmLRaxkB9cn5rlrAvkIrNMA==", "dev": true, "hasInstallScript": true, "dependencies": { - "@nrwl/tao": "17.1.2", + "@nrwl/tao": "17.0.3", "@yarnpkg/lockfile": "^1.1.0", "@yarnpkg/parsers": "3.0.0-rc.46", "@zkochan/js-yaml": "0.0.6", @@ -17361,16 +17351,16 @@ "nx-cloud": "bin/nx-cloud.js" }, "optionalDependencies": { - "@nx/nx-darwin-arm64": "17.1.2", - "@nx/nx-darwin-x64": "17.1.2", - "@nx/nx-freebsd-x64": "17.1.2", - "@nx/nx-linux-arm-gnueabihf": "17.1.2", - "@nx/nx-linux-arm64-gnu": "17.1.2", - "@nx/nx-linux-arm64-musl": "17.1.2", - "@nx/nx-linux-x64-gnu": "17.1.2", - "@nx/nx-linux-x64-musl": "17.1.2", - "@nx/nx-win32-arm64-msvc": "17.1.2", - "@nx/nx-win32-x64-msvc": "17.1.2" + "@nx/nx-darwin-arm64": "17.0.3", + "@nx/nx-darwin-x64": "17.0.3", + "@nx/nx-freebsd-x64": "17.0.3", + "@nx/nx-linux-arm-gnueabihf": "17.0.3", + "@nx/nx-linux-arm64-gnu": "17.0.3", + "@nx/nx-linux-arm64-musl": "17.0.3", + "@nx/nx-linux-x64-gnu": "17.0.3", + "@nx/nx-linux-x64-musl": "17.0.3", + "@nx/nx-win32-arm64-msvc": "17.0.3", + "@nx/nx-win32-x64-msvc": "17.0.3" }, "peerDependencies": { "@swc-node/register": "^1.6.7", @@ -17407,9 +17397,9 @@ "dev": true }, "node_modules/nx/node_modules/axios": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.2.tgz", - "integrity": "sha512-7i24Ri4pmDRfJTR7LDBhsOTtcm+9kjX5WiY1X3wIisx6G9So3pfMkEiU7emUBe46oceVImccTEM3k6C5dbVW8A==", + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.1.tgz", + "integrity": "sha512-vfBmhDpKafglh0EldBEbVuoe7DyAavGSLWhuSm5ZSEKQnHhBf0xAAwybbNH1IkrJNGnS/VG4I5yxig1pCEXE4g==", "dev": true, "dependencies": { "follow-redirects": "^1.15.0", @@ -18398,12 +18388,12 @@ } }, "node_modules/playwright": { - "version": "1.40.0", - "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.40.0.tgz", - "integrity": "sha512-gyHAgQjiDf1m34Xpwzaqb76KgfzYrhK7iih+2IzcOCoZWr/8ZqmdBw+t0RU85ZmfJMgtgAiNtBQ/KS2325INXw==", + "version": "1.39.0", + "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.39.0.tgz", + "integrity": "sha512-naE5QT11uC/Oiq0BwZ50gDmy8c8WLPRTEWuSSFVG2egBka/1qMoSqYQcROMT9zLwJ86oPofcTH2jBY/5wWOgIw==", "dev": true, "dependencies": { - "playwright-core": "1.40.0" + "playwright-core": "1.39.0" }, "bin": { "playwright": "cli.js" @@ -18416,9 +18406,9 @@ } }, "node_modules/playwright-core": { - "version": "1.40.0", - "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.40.0.tgz", - "integrity": "sha512-fvKewVJpGeca8t0ipM56jkVSU6Eo0RmFvQ/MaCQNDYm+sdvKkMBBWTE1FdeMqIdumRaXXjZChWHvIzCGM/tA/Q==", + "version": "1.39.0", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.39.0.tgz", + "integrity": "sha512-+k4pdZgs1qiM+OUkSjx96YiKsXsmb59evFoqv8SKO067qBA+Z2s/dCzJij/ZhdQcs2zlTAgRKfeiiLm8PQ2qvw==", "dev": true, "bin": { "playwright-core": "cli.js" @@ -18672,9 +18662,9 @@ } }, "node_modules/prettier": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.1.0.tgz", - "integrity": "sha512-TQLvXjq5IAibjh8EpBIkNKxO749UEWABoiIZehEPiY4GNpVdhaFKqSTu+QrlU6D2dPAfubRmtJTi4K4YkQ5eXw==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.0.3.tgz", + "integrity": "sha512-L/4pUDMxcNa8R/EthV08Zt42WBO4h1rarVtK0K+QJG0X187OLo7l699jWw0GKuwzkPQ//jMFA/8Xm6Fh3J/DAg==", "dev": true, "bin": { "prettier": "bin/prettier.cjs" @@ -18687,9 +18677,9 @@ } }, "node_modules/prettier-plugin-tailwindcss": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/prettier-plugin-tailwindcss/-/prettier-plugin-tailwindcss-0.5.7.tgz", - "integrity": "sha512-4v6uESAgwCni6YF6DwJlRaDjg9Z+al5zM4JfngcazMy4WEf/XkPS5TEQjbD+DZ5iNuG6RrKQLa/HuX2SYzC3kQ==", + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/prettier-plugin-tailwindcss/-/prettier-plugin-tailwindcss-0.5.6.tgz", + "integrity": "sha512-2Xgb+GQlkPAUCFi3sV+NOYcSI5XgduvDBL2Zt/hwJudeKXkyvRS65c38SB0yb9UB40+1rL83I6m0RtlOQ8eHdg==", "dev": true, "engines": { "node": ">=14.21.3" diff --git a/frontend/package.json b/frontend/package.json index 7353b2fe90..22b0865508 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -25,15 +25,15 @@ "@angular/router": "~17.0.2", "@ngneat/until-destroy": "^10.0.0", "@panzoom/panzoom": "^4.5.1", - "@types/semver": "^7.5.6", + "@types/semver": "^7.5.4", "buffer": "^6.0.3", "file-saver": "^2.0.5", "http-status-codes": "^2.3.0", "ngx-cookie": "^6.0.1", "ngx-skeleton-loader": "^8.1.0", - "ngx-toastr": "^18.0.0", - "npm": "^10.2.4", - "npm-check-updates": "^16.14.11", + "ngx-toastr": "^17.0.2", + "npm": "^10.2.1", + "npm-check-updates": "^16.14.6", "path-is-absolute": "^2.0.0", "rxjs": "~7.8.1", "semver": "^7.5.4", @@ -43,21 +43,21 @@ }, "devDependencies": { "@angular-devkit/build-angular": "^17.0.0", - "@angular-eslint/builder": "17.1.0", - "@angular-eslint/eslint-plugin": "17.1.0", - "@angular-eslint/eslint-plugin-template": "17.1.0", - "@angular-eslint/schematics": "17.1.0", - "@angular-eslint/template-parser": "17.1.0", - "@angular/cli": "~17.0.3", + "@angular-eslint/builder": "17.0.1", + "@angular-eslint/eslint-plugin": "17.0.1", + "@angular-eslint/eslint-plugin-template": "17.0.1", + "@angular-eslint/schematics": "17.0.1", + "@angular-eslint/template-parser": "17.0.1", + "@angular/cli": "~17.0.0", "@angular/compiler-cli": "~17.0.2", - "@playwright/test": "^1.40.0", - "@types/file-saver": "^2.0.7", - "@types/jasmine": "~5.1.4", - "@types/node": "^20.10.0", - "@typescript-eslint/eslint-plugin": "^6.12.0", - "@typescript-eslint/parser": "^6.12.0", + "@playwright/test": "^1.39.0", + "@types/file-saver": "^2.0.6", + "@types/jasmine": "~5.1.1", + "@types/node": "^20.8.9", + "@typescript-eslint/eslint-plugin": "^6.10.0", + "@typescript-eslint/parser": "^6.10.0", "autoprefixer": "^10.4.16", - "eslint": "^8.54.0", + "eslint": "^8.53.0", "eslint-config-prettier": "^9.0.0", "eslint-plugin-deprecation": "^2.0.0", "eslint-plugin-import": "^2.29.0", @@ -71,8 +71,8 @@ "karma-jasmine": "~5.1.0", "karma-jasmine-html-reporter": "^2.1.0", "postcss": "^8.4.31", - "prettier": "^3.1.0", - "prettier-plugin-tailwindcss": "^0.5.7", + "prettier": "^3.0.3", + "prettier-plugin-tailwindcss": "^0.5.6", "tailwindcss": "^3.3.5", "typescript": "^5.2.2", "webpack": "^5.89.0" diff --git a/frontend/src/app/app.module.ts b/frontend/src/app/app.module.ts index 38bc471bc9..fc8f5ce2a4 100644 --- a/frontend/src/app/app.module.ts +++ b/frontend/src/app/app.module.ts @@ -108,10 +108,7 @@ import { ProjectOverviewComponent } from './projects/project-overview/project-ov import { ProjectWrapperComponent } from './projects/project-wrapper/project-wrapper.component'; import { WhitespaceUrlInterceptor } from './services/encoder/encoder.interceptor'; import { DeleteSessionDialogComponent } from './sessions/delete-session-dialog/delete-session-dialog.component'; -import { FloatingWindowManagerComponent } from './sessions/session/floating-window-manager/floating-window-manager.component'; -import { SessionIFrameComponent } from './sessions/session/session-iframe/session-iframe.component'; import { SessionComponent } from './sessions/session/session.component'; -import { TilingWindowManagerComponent } from './sessions/session/tiling-window-manager/tiling-window-manager.component'; import { SessionOverviewComponent } from './sessions/session-overview/session-overview.component'; import { SessionsComponent } from './sessions/sessions.component'; import { ActiveSessionsComponent } from './sessions/user-sessions-wrapper/active-sessions/active-sessions.component'; @@ -143,7 +140,6 @@ import { T4CRepoDeletionDialogComponent } from './settings/modelsources/t4c-sett import { T4CSettingsWrapperComponent } from './settings/modelsources/t4c-settings/t4c-settings-wrapper/t4c-settings-wrapper.component'; import { T4CSettingsComponent } from './settings/modelsources/t4c-settings/t4c-settings.component'; import { SettingsComponent } from './settings/settings.component'; -import { ReorderModelsComponent } from './projects/project-detail/model-overview/reorder-models/reorder-models.component'; @NgModule({ declarations: [ @@ -177,7 +173,6 @@ import { ReorderModelsComponent } from './projects/project-detail/model-overview EventsComponent, FileBrowserDialogComponent, FileExistsDialogComponent, - FloatingWindowManagerComponent, FooterComponent, FormFieldSkeletonLoaderComponent, GitSettingsComponent, @@ -218,7 +213,6 @@ import { ReorderModelsComponent } from './projects/project-detail/model-overview PureVariantsComponent, ReorderModelsComponent, SessionComponent, - SessionIFrameComponent, SessionOverviewComponent, SessionsComponent, SettingsComponent, @@ -228,7 +222,6 @@ import { ReorderModelsComponent } from './projects/project-detail/model-overview T4CSettingsComponent, T4CSettingsWrapperComponent, TextLineSkeletonLoaderComponent, - TilingWindowManagerComponent, ToolDeletionDialogComponent, ToolDetailsComponent, ToolIntegrationsComponent, diff --git a/frontend/src/app/schemes.ts b/frontend/src/app/schemes.ts index cf37f6e06e..9e71d84612 100644 --- a/frontend/src/app/schemes.ts +++ b/frontend/src/app/schemes.ts @@ -3,6 +3,7 @@ * SPDX-License-Identifier: Apache-2.0 */ +import { SafeResourceUrl } from '@angular/platform-browser'; import { User } from 'src/app/services/user/user.service'; import { ToolVersionWithTool } from 'src/app/settings/core/tools-settings/tool.service'; import { Project } from './projects/service/project.service'; @@ -23,6 +24,9 @@ export interface Session { owner: User; t4c_password: string; download_in_progress: boolean; + safeResourceURL?: SafeResourceUrl; + focused: boolean; + reloadToResize: boolean; } export interface ReadonlySession extends Session { diff --git a/frontend/src/app/sessions/session/floating-window-manager/floating-window-manager.component.html b/frontend/src/app/sessions/session/floating-window-manager/floating-window-manager.component.html deleted file mode 100644 index a9b0b19b27..0000000000 --- a/frontend/src/app/sessions/session/floating-window-manager/floating-window-manager.component.html +++ /dev/null @@ -1,58 +0,0 @@ - - - -
-
-
-
- control_camera - - {{ session.version?.tool?.name }} {{ session.version?.name }}, - {{ session.type }} - - (project {{ session.project!.name }}) - - -
- -
-
- Focusedphonelink -
-
- Not focused - phonelink_off -
-
- - -
- - -
-
-
diff --git a/frontend/src/app/sessions/session/floating-window-manager/floating-window-manager.component.ts b/frontend/src/app/sessions/session/floating-window-manager/floating-window-manager.component.ts deleted file mode 100644 index 7547e8e169..0000000000 --- a/frontend/src/app/sessions/session/floating-window-manager/floating-window-manager.component.ts +++ /dev/null @@ -1,41 +0,0 @@ -/* - * SPDX-FileCopyrightText: Copyright DB Netz AG and the capella-collab-manager contributors - * SPDX-License-Identifier: Apache-2.0 - */ - -import { Component, OnInit } from '@angular/core'; -import { Component, OnInit } from '@angular/core'; -import { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy'; -import { debounceTime, fromEvent } from 'rxjs'; -import { SessionViewerService, ViewerSession } from '../session-viewer.service'; -import { debounceTime, fromEvent } from 'rxjs'; -import { SessionViewerService, ViewerSession } from '../session-viewer.service'; - -@Component({ - selector: 'app-floating-window-manager', - templateUrl: './floating-window-manager.component.html', -}) -@UntilDestroy() -export class FloatingWindowManagerComponent implements OnInit { - draggingActive = false; - - constructor(public sessionViewerService: SessionViewerService) {} - - ngOnInit(): void { - fromEvent(window, 'resize') - .pipe(untilDestroyed(this), debounceTime(250)) - .subscribe(() => this.sessionViewerService.resizeSessions()); - } - - dragStart(): void { - this.draggingActive = true; - } - - dragStop(): void { - this.draggingActive = false; - } - - trackBySessionId(_: number, session: ViewerSession): string { - return session.id; - } -} diff --git a/frontend/src/app/sessions/session/session-iframe/session-iframe.component.css b/frontend/src/app/sessions/session/session-iframe/session-iframe.component.css deleted file mode 100644 index 229fd309c0..0000000000 --- a/frontend/src/app/sessions/session/session-iframe/session-iframe.component.css +++ /dev/null @@ -1,14 +0,0 @@ -/* - * SPDX-FileCopyrightText: Copyright DB Netz AG and the capella-collab-manager contributors - * SPDX-License-Identifier: Apache-2.0 - */ - -.iframe-overlay { - position: absolute; - top: 0; - left: 0; - right: 0; - bottom: 0; - - z-index: 40; -} diff --git a/frontend/src/app/sessions/session/session-iframe/session-iframe.component.html b/frontend/src/app/sessions/session/session-iframe/session-iframe.component.html deleted file mode 100644 index c304f291f1..0000000000 --- a/frontend/src/app/sessions/session/session-iframe/session-iframe.component.html +++ /dev/null @@ -1,25 +0,0 @@ - - -
-
- -
diff --git a/frontend/src/app/sessions/session/session-iframe/session-iframe.component.ts b/frontend/src/app/sessions/session/session-iframe/session-iframe.component.ts deleted file mode 100644 index 577cbec71a..0000000000 --- a/frontend/src/app/sessions/session/session-iframe/session-iframe.component.ts +++ /dev/null @@ -1,16 +0,0 @@ -/* - * SPDX-FileCopyrightText: Copyright DB Netz AG and the capella-collab-manager contributors - * SPDX-License-Identifier: Apache-2.0 - */ - -import { Component, Input } from '@angular/core'; -import { ViewerSession } from '../session-viewer.service'; - -@Component({ - selector: 'app-session-iframe', - templateUrl: './session-iframe.component.html', - styleUrls: ['./session-iframe.component.css'], -}) -export class SessionIFrameComponent { - @Input({ required: true }) session!: ViewerSession; -} diff --git a/frontend/src/app/sessions/session/session-viewer.service.ts b/frontend/src/app/sessions/session/session-viewer.service.ts deleted file mode 100644 index 8adc3df87c..0000000000 --- a/frontend/src/app/sessions/session/session-viewer.service.ts +++ /dev/null @@ -1,140 +0,0 @@ -/* - * SPDX-FileCopyrightText: Copyright DB Netz AG and the capella-collab-manager contributors - * SPDX-License-Identifier: Apache-2.0 - */ - -import { Injectable } from '@angular/core'; -import { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser'; -import { BehaviorSubject, map } from 'rxjs'; -import { LocalStorageService } from 'src/app/general/auth/local-storage/local-storage.service'; -import { Session } from 'src/app/schemes'; -import { GuacamoleService } from 'src/app/services/guacamole/guacamole.service'; - -@Injectable({ - providedIn: 'root', -}) -export class SessionViewerService { - constructor( - private guacamoleService: GuacamoleService, - private localStorageService: LocalStorageService, - private domSanitizer: DomSanitizer, - ) {} - - private _sessions = new BehaviorSubject( - undefined, - ); - - public readonly sessions$ = this._sessions.pipe( - map((sessions) => { - const fullscreenSession = sessions?.find((session) => session.fullscreen); - return fullscreenSession ? [fullscreenSession] : sessions; - }), - ); - - pushJupyterSession(session: Session): void { - if (session.jupyter_uri) { - const viewerSession = session as ViewerSession; - - viewerSession.focused = false; - viewerSession.safeResourceURL = - this.domSanitizer.bypassSecurityTrustResourceUrl(session.jupyter_uri); - viewerSession.reloadToResize = false; - - this.insertViewerSession(viewerSession); - } - } - - pushGuacamoleSession(session: Session): void { - const viewerSession = session as ViewerSession; - - this.guacamoleService.getGucamoleToken(session.id).subscribe({ - next: (guacamoleAuthInfo) => { - this.localStorageService.setValue('GUAC_AUTH', guacamoleAuthInfo.token); - - viewerSession.focused = false; - viewerSession.safeResourceURL = - this.domSanitizer.bypassSecurityTrustResourceUrl( - guacamoleAuthInfo.url, - ); - viewerSession.reloadToResize = true; - - this.insertViewerSession(viewerSession); - }, - }); - } - - focusSession(session: Session): void { - document.getElementById('session-' + session.id)?.focus(); - - const updatedSessions = this._sessions.value?.map((curSession) => ({ - ...curSession, - focused: session.id === curSession.id, - })); - - this._sessions.next(updatedSessions); - } - - resizeSessions(): void { - document.querySelectorAll('iframe').forEach((iframe) => { - const session = this._sessions.value?.find( - (session) => `session-${session.id}` === iframe.id, - ); - - if (session?.reloadToResize) { - this.reloadIFrame(iframe); - } - }); - } - - resizeSession(session: ViewerSession): void { - const sessionIFrame = document.querySelector( - `iframe#session-${session.id}`, - ); - - if (sessionIFrame && session.reloadToResize) { - this.reloadIFrame(sessionIFrame); - } - } - - toggleFullscreen(session: ViewerSession): void { - const updatedSessions = this._sessions.value?.map((curSession) => { - if (session.id === curSession.id) { - return { ...curSession, fullscreen: !curSession.fullscreen }; - } - return curSession; - }); - this._sessions.next(updatedSessions); - this.resizeSession(session); - } - - clearSessions(): void { - this._sessions.next(undefined); - } - - private reloadIFrame(iframe: HTMLIFrameElement) { - const src = iframe.src; - - iframe.removeAttribute('src'); - - setTimeout(() => { - iframe.src = src; - }, 100); - } - - private insertViewerSession(viewerSession: ViewerSession): void { - const currentSessions = this._sessions.value; - - if (currentSessions === undefined) { - this._sessions.next([viewerSession]); - } else { - this._sessions.next([...currentSessions, viewerSession]); - } - } -} - -export type ViewerSession = Session & { - safeResourceURL?: SafeResourceUrl; - focused: boolean; - reloadToResize: boolean; - fullscreen: boolean; -}; diff --git a/frontend/src/app/sessions/session/session.component.css b/frontend/src/app/sessions/session/session.component.css index 24491c155f..00d1f55736 100644 --- a/frontend/src/app/sessions/session/session.component.css +++ b/frontend/src/app/sessions/session/session.component.css @@ -6,3 +6,13 @@ .height { height: calc(100vh - 2vh - 65px - 110px); } + +.iframe-overlay { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + + z-index: 40; +} diff --git a/frontend/src/app/sessions/session/session.component.html b/frontend/src/app/sessions/session/session.component.html index 56d1a4ea5a..5404bc4751 100644 --- a/frontend/src/app/sessions/session/session.component.html +++ b/frontend/src/app/sessions/session/session.component.html @@ -3,15 +3,11 @@ ~ SPDX-License-Identifier: Apache-2.0 --> -
- - Please select the sessions that you'd like to open in the session viewer: - +
+ Please select the sessions that you'd like to open in the session + viewer:
No sessions found. Please create a session in the 'Sessions' tab first.
@@ -37,7 +33,7 @@ matTooltip="Please wait until the session is running. You can check the status in the 'Sessions' tab." [matTooltipDisabled]="sessionService.beautifyState(session.state).success" [value]="session.id" - [(ngModel)]="session.checked" + (change)="changeSessionSelection($event, session)" *ngFor="let session of cachedSessions" >{{ session.version?.tool?.name }} {{ session.version?.name }}, {{ session.type @@ -53,15 +49,6 @@ server will not let you connect to the sessions. We're working on making this possible.
-
- - - Floating window manager - - Tiling window manager - -
-
- +
- +
+
+ control_camera + + {{ session.version?.tool?.name }} {{ session.version?.name }}, + {{ session.type }} + (project {{ session.project!.name }}) + +
+
+ Focusedphonelink +
+
+ Not focused + phonelink_off +
+
- - - +
+
+
+ +
+
-
- -
-
+ fullscreen_exit + +
diff --git a/frontend/src/app/sessions/session/session.component.ts b/frontend/src/app/sessions/session/session.component.ts index c1bd4f95dc..f4f23cd510 100644 --- a/frontend/src/app/sessions/session/session.component.ts +++ b/frontend/src/app/sessions/session/session.component.ts @@ -3,14 +3,17 @@ * SPDX-License-Identifier: Apache-2.0 */ -import { Component, OnDestroy, OnInit } from '@angular/core'; +import { Component, HostListener, OnInit } from '@angular/core'; +import { MatLegacyCheckboxChange as MatCheckboxChange } from '@angular/material/legacy-checkbox'; +import { DomSanitizer } from '@angular/platform-browser'; import { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy'; import { filter, take } from 'rxjs'; +import { LocalStorageService } from 'src/app/general/auth/local-storage/local-storage.service'; import { Session } from 'src/app/schemes'; +import { GuacamoleService } from 'src/app/services/guacamole/guacamole.service'; import { FullscreenService } from 'src/app/sessions/service/fullscreen.service'; import { SessionService } from 'src/app/sessions/service/session.service'; import { UserSessionService } from 'src/app/sessions/service/user-session.service'; -import { SessionViewerService } from './session-viewer.service'; @Component({ selector: 'app-session', @@ -18,42 +21,38 @@ import { SessionViewerService } from './session-viewer.service'; styleUrls: ['./session.component.css'], }) @UntilDestroy() -export class SessionComponent implements OnInit, OnDestroy { +export class SessionComponent implements OnInit { cachedSessions?: CachedSession[] = undefined; + selectedSessions: Session[] = []; + private debounceTimer?: number; - selectedWindowType: string = 'floating'; + draggingActive = false; constructor( public userSessionService: UserSessionService, public sessionService: SessionService, - public sessionViewerService: SessionViewerService, public fullscreenService: FullscreenService, + private guacamoleService: GuacamoleService, + private localStorageService: LocalStorageService, + private domSanitizer: DomSanitizer, ) { this.userSessionService.loadSessions(); - - this.fullscreenService.isFullscreen$ - .pipe(untilDestroyed(this)) - .subscribe(() => this.sessionViewerService.resizeSessions()); } get checkedSessions(): undefined | CachedSession[] { return this.cachedSessions?.filter((session) => session.checked); } - get isTilingWindowManager(): boolean { - return this.selectedWindowType === 'tiling'; - } - - get isFloatingWindowManager(): boolean { - return this.selectedWindowType === 'floating'; + changeSessionSelection(event: MatCheckboxChange, session: CachedSession) { + session.checked = event.checked; } ngOnInit(): void { this.initializeCachedSessions(); - } - ngOnDestroy(): void { - this.sessionViewerService.clearSessions(); + this.fullscreenService.isFullscreen$ + .pipe(untilDestroyed(this)) + .subscribe(() => this.resizeSessions()); } initializeCachedSessions() { @@ -72,13 +71,77 @@ export class SessionComponent implements OnInit, OnDestroy { selectSessions() { this.checkedSessions?.forEach((session) => { + session.focused = false; if (session.jupyter_uri) { - this.sessionViewerService.pushJupyterSession(session); + session.safeResourceURL = + this.domSanitizer.bypassSecurityTrustResourceUrl(session.jupyter_uri); + session.reloadToResize = false; + this.selectedSessions.push(session); } else { - this.sessionViewerService.pushGuacamoleSession(session); + this.guacamoleService.getGucamoleToken(session?.id).subscribe((res) => { + this.localStorageService.setValue('GUAC_AUTH', res.token); + session.safeResourceURL = + this.domSanitizer.bypassSecurityTrustResourceUrl(res.url); + session.reloadToResize = true; + this.selectedSessions.push(session); + }); } }); } + + focusSession(session: Session) { + this.unfocusSession(session); + + document.getElementById('session-' + session.id)?.focus(); + session.focused = true; + } + + unfocusSession(focusedSession: Session) { + this.selectedSessions + .filter((session) => session !== focusedSession) + .map((session) => { + session.focused = false; + }); + } + + dragStart() { + this.draggingActive = true; + } + + dragStop() { + this.draggingActive = false; + } + + @HostListener('window:resize', ['$event']) + onResize() { + window.clearTimeout(this.debounceTimer); + + this.debounceTimer = window.setTimeout(() => { + this.resizeSessions(); + }, 250); + } + + resizeSessions() { + Array.from(document.getElementsByTagName('iframe')).forEach((iframe) => { + const session = this.selectedSessions.find( + (session) => 'session-' + session.id === iframe.id, + ); + + if (session?.reloadToResize) { + this.reloadIFrame(iframe); + } + }); + } + + reloadIFrame(iframe: HTMLIFrameElement) { + const src = iframe.src; + + iframe.removeAttribute('src'); + + setTimeout(() => { + iframe.src = src; + }, 100); + } } type CachedSession = Session & { diff --git a/frontend/src/app/sessions/session/tiling-window-manager/tiling-window-manager.component.html b/frontend/src/app/sessions/session/tiling-window-manager/tiling-window-manager.component.html deleted file mode 100644 index d516f49185..0000000000 --- a/frontend/src/app/sessions/session/tiling-window-manager/tiling-window-manager.component.html +++ /dev/null @@ -1,78 +0,0 @@ - - -
- -
-
- - {{ session.version?.tool?.name }} {{ session.version?.name }}, - {{ session.type }} - - (project {{ session.project!.name }}) - - - -
-
- Focusedphonelink -
-
- Not focused - phonelink_off -
-
- -
-
- - - -
- - -
-
- - -
- -
-
-
diff --git a/frontend/src/app/sessions/session/tiling-window-manager/tiling-window-manager.component.ts b/frontend/src/app/sessions/session/tiling-window-manager/tiling-window-manager.component.ts deleted file mode 100644 index a061060b8a..0000000000 --- a/frontend/src/app/sessions/session/tiling-window-manager/tiling-window-manager.component.ts +++ /dev/null @@ -1,214 +0,0 @@ -/* - * SPDX-FileCopyrightText: Copyright DB Netz AG and the capella-collab-manager contributors - * SPDX-License-Identifier: Apache-2.0 - */ - -import { Component, HostListener, OnInit } from '@angular/core'; -import { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy'; -import { filter } from 'rxjs'; -import { SessionViewerService, ViewerSession } from '../session-viewer.service'; - -@Component({ - selector: 'app-tiling-window-manager', - templateUrl: './tiling-window-manager.component.html', -}) -@UntilDestroy() -export class TilingWindowManagerComponent implements OnInit { - private _tilingSessions: TilingSession[] = []; - - get sessions(): TilingSession[] { - return this._tilingSessions.sort((a, b) => a.index - b.index); - } - - public resizeState: ResizeState = {}; - - private minimumSessionWidth = 0; - - constructor(public sessionViewerService: SessionViewerService) {} - - ngOnInit(): void { - this.sessionViewerService.sessions$ - .pipe(untilDestroyed(this), filter(Boolean)) - .subscribe((viewerSessions) => { - const sessionMap = new Map(viewerSessions.map((s) => [s.id, s])); - - const hasSessionDifference = - this._tilingSessions.length !== viewerSessions.length || - viewerSessions.some( - (session) => - !this._tilingSessions.some((ts) => ts.id === session.id), - ); - - if (hasSessionDifference) { - this._tilingSessions = viewerSessions.map((session, index) => ({ - ...session, - index: index, - width: -1, - fullscreen: false, - })); - this.resetWidths(); - } else { - this._tilingSessions = this._tilingSessions.map((tilingSession) => { - const sessionUpdate = sessionMap.get(tilingSession.id); - return sessionUpdate - ? { ...tilingSession, ...sessionUpdate } - : tilingSession; - }); - } - }); - } - - onMouseDown(event: MouseEvent, index: number): void { - const leftSession = this.getSessionByIndex(index); - const rightSession = this.getSessionByIndex(index + 1); - - if (leftSession && rightSession) { - this.resizeState = { - index: index, - startX: event.clientX, - leftSession: leftSession, - rightSession: rightSession, - startWidthLeft: leftSession.width, - startWidthRight: rightSession.width, - }; - } - } - - @HostListener('window:mousemove', ['$event']) - onMouseMove(event: MouseEvent): void { - if (this.isValidResizeState(this.resizeState)) { - const delta = event.clientX - this.resizeState.startX; - const [newWidthLeft, newWidthRight] = this.calculateNewWidths( - this.resizeState, - delta, - ); - - this.resizeState.leftSession.width = newWidthLeft; - this.resizeState.rightSession.width = newWidthRight; - } - } - - @HostListener('window:mouseup') - onMouseUp(): void { - if (this.isValidResizeState(this.resizeState)) { - this.resizeState = {}; - this.sessionViewerService.resizeSessions(); - } - } - - @HostListener('window:resize') - onResize() { - this.resetWidths(); - } - - onLeftArrowClick(session: TilingSession) { - const leftIndexSession = this.getSessionByIndex(session.index - 1); - - if (leftIndexSession) { - this.swapSessions(session, leftIndexSession); - } - } - - onRightArrowClick(session: TilingSession) { - const rightIndexSession = this.getSessionByIndex(session.index + 1); - - if (rightIndexSession) { - this.swapSessions(session, rightIndexSession); - } - } - - trackBySessionIndexAndId(_: number, session: TilingSession): string { - return `${session.index}-${session.id}`; - } - - isValidResizeState(state: ResizeState): state is ValidResizeState { - return ( - state.index !== undefined && - state.startX !== undefined && - state.leftSession !== undefined && - state.rightSession !== undefined && - state.startWidthLeft !== undefined && - state.startWidthRight !== undefined - ); - } - - private calculateNewWidths( - validResizeState: ValidResizeState, - delta: number, - ): [number, number] { - let newWidthLeft = validResizeState.startWidthLeft + delta; - let newWidthRight = validResizeState.startWidthRight - delta; - - [newWidthLeft, newWidthRight] = this.adjustWidthsWithMinimum( - validResizeState, - newWidthLeft, - newWidthRight, - ); - return [newWidthLeft, newWidthRight]; - } - - private adjustWidthsWithMinimum( - validResizeState: ValidResizeState, - newWidthLeft: number, - newWidthRight: number, - ): [number, number] { - if (newWidthLeft < this.minimumSessionWidth) { - newWidthLeft = this.minimumSessionWidth; - newWidthRight = - validResizeState.startWidthLeft + - validResizeState.startWidthRight - - newWidthLeft; - } else if (newWidthRight < this.minimumSessionWidth) { - newWidthRight = this.minimumSessionWidth; - newWidthLeft = - validResizeState.startWidthLeft + - validResizeState.startWidthRight - - newWidthRight; - } - return [newWidthLeft, newWidthRight]; - } - - private resetWidths() { - this.minimumSessionWidth = window.innerWidth * 0.15; - this._tilingSessions.forEach( - (session) => - (session.width = window.innerWidth / this._tilingSessions.length), - ); - this.sessionViewerService.resizeSessions(); - } - - private getSessionByIndex(index: number): TilingSession | undefined { - return this._tilingSessions.find((session) => session.index === index); - } - - private swapSessions( - firstSession: TilingSession, - secondSession: TilingSession, - ) { - const firstSessionIndex = firstSession.index; - const firstSessionWidth = firstSession.width; - - firstSession.index = secondSession.index; - firstSession.width = secondSession.width; - - secondSession.index = firstSessionIndex; - secondSession.width = firstSessionWidth; - } -} - -type ResizeState = { - index?: number; - startX?: number; - leftSession?: TilingSession; - rightSession?: TilingSession; - startWidthLeft?: number; - startWidthRight?: number; -}; - -type ValidResizeState = Required; - -type TilingSession = ViewerSession & { - index: number; - width: number; - fullscreen: boolean; -};