From 30c38675a165c826094946477e7e343e55d681ba Mon Sep 17 00:00:00 2001 From: Deidre Beavers <107586218+beaversd@users.noreply.github.com> Date: Thu, 2 May 2024 14:12:40 -0700 Subject: [PATCH 01/49] initial commit --- .editorconfig | 16 + .gitignore | 42 + .vscode/extensions.json | 4 + .vscode/launch.json | 20 + .vscode/tasks.json | 42 + README.md | 27 + angular.json | 95 + package-lock.json | 12507 ++++++++++++++++++++++++++++++++ package.json | 38 + src/app/app.component.css | 0 src/app/app.component.html | 336 + src/app/app.component.spec.ts | 29 + src/app/app.component.ts | 13 + src/app/app.config.ts | 8 + src/app/app.routes.ts | 3 + src/assets/.gitkeep | 0 src/favicon.ico | Bin 0 -> 15086 bytes src/index.html | 13 + src/main.ts | 6 + src/styles.css | 1 + tsconfig.app.json | 14 + tsconfig.json | 32 + tsconfig.spec.json | 14 + 23 files changed, 13260 insertions(+) create mode 100644 .editorconfig create mode 100644 .gitignore create mode 100644 .vscode/extensions.json create mode 100644 .vscode/launch.json create mode 100644 .vscode/tasks.json create mode 100644 README.md create mode 100644 angular.json create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 src/app/app.component.css create mode 100644 src/app/app.component.html create mode 100644 src/app/app.component.spec.ts create mode 100644 src/app/app.component.ts create mode 100644 src/app/app.config.ts create mode 100644 src/app/app.routes.ts create mode 100644 src/assets/.gitkeep create mode 100644 src/favicon.ico create mode 100644 src/index.html create mode 100644 src/main.ts create mode 100644 src/styles.css create mode 100644 tsconfig.app.json create mode 100644 tsconfig.json create mode 100644 tsconfig.spec.json diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..59d9a3a --- /dev/null +++ b/.editorconfig @@ -0,0 +1,16 @@ +# Editor configuration, see https://editorconfig.org +root = true + +[*] +charset = utf-8 +indent_style = space +indent_size = 2 +insert_final_newline = true +trim_trailing_whitespace = true + +[*.ts] +quote_type = single + +[*.md] +max_line_length = off +trim_trailing_whitespace = false diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..0711527 --- /dev/null +++ b/.gitignore @@ -0,0 +1,42 @@ +# See http://help.github.com/ignore-files/ for more about ignoring files. + +# Compiled output +/dist +/tmp +/out-tsc +/bazel-out + +# Node +/node_modules +npm-debug.log +yarn-error.log + +# IDEs and editors +.idea/ +.project +.classpath +.c9/ +*.launch +.settings/ +*.sublime-workspace + +# Visual Studio Code +.vscode/* +!.vscode/settings.json +!.vscode/tasks.json +!.vscode/launch.json +!.vscode/extensions.json +.history/* + +# Miscellaneous +/.angular/cache +.sass-cache/ +/connect.lock +/coverage +/libpeerconnection.log +testem.log +/typings + +# System files +.DS_Store +Thumbs.db diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 0000000..77b3745 --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,4 @@ +{ + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=827846 + "recommendations": ["angular.ng-template"] +} diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000..925af83 --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,20 @@ +{ + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "name": "ng serve", + "type": "chrome", + "request": "launch", + "preLaunchTask": "npm: start", + "url": "http://localhost:4200/" + }, + { + "name": "ng test", + "type": "chrome", + "request": "launch", + "preLaunchTask": "npm: test", + "url": "http://localhost:9876/debug.html" + } + ] +} diff --git a/.vscode/tasks.json b/.vscode/tasks.json new file mode 100644 index 0000000..a298b5b --- /dev/null +++ b/.vscode/tasks.json @@ -0,0 +1,42 @@ +{ + // For more information, visit: https://go.microsoft.com/fwlink/?LinkId=733558 + "version": "2.0.0", + "tasks": [ + { + "type": "npm", + "script": "start", + "isBackground": true, + "problemMatcher": { + "owner": "typescript", + "pattern": "$tsc", + "background": { + "activeOnStart": true, + "beginsPattern": { + "regexp": "(.*?)" + }, + "endsPattern": { + "regexp": "bundle generation complete" + } + } + } + }, + { + "type": "npm", + "script": "test", + "isBackground": true, + "problemMatcher": { + "owner": "typescript", + "pattern": "$tsc", + "background": { + "activeOnStart": true, + "beginsPattern": { + "regexp": "(.*?)" + }, + "endsPattern": { + "regexp": "bundle generation complete" + } + } + } + } + ] +} diff --git a/README.md b/README.md new file mode 100644 index 0000000..094dd0d --- /dev/null +++ b/README.md @@ -0,0 +1,27 @@ +# NgxReactomeBase + +This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 17.3.6. + +## Development server + +Run `ng serve` for a dev server. Navigate to `http://localhost:4200/`. The application will automatically reload if you change any of the source files. + +## Code scaffolding + +Run `ng generate component component-name` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module`. + +## Build + +Run `ng build` to build the project. The build artifacts will be stored in the `dist/` directory. + +## Running unit tests + +Run `ng test` to execute the unit tests via [Karma](https://karma-runner.github.io). + +## Running end-to-end tests + +Run `ng e2e` to execute the end-to-end tests via a platform of your choice. To use this command, you need to first add a package that implements end-to-end testing capabilities. + +## Further help + +To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page. diff --git a/angular.json b/angular.json new file mode 100644 index 0000000..2410c68 --- /dev/null +++ b/angular.json @@ -0,0 +1,95 @@ +{ + "$schema": "./node_modules/@angular/cli/lib/config/schema.json", + "version": 1, + "newProjectRoot": "projects", + "projects": { + "ngx-reactome-base": { + "projectType": "application", + "schematics": {}, + "root": "", + "sourceRoot": "src", + "prefix": "app", + "architect": { + "build": { + "builder": "@angular-devkit/build-angular:application", + "options": { + "outputPath": "dist/ngx-reactome-base", + "index": "src/index.html", + "browser": "src/main.ts", + "polyfills": [ + "zone.js" + ], + "tsConfig": "tsconfig.app.json", + "assets": [ + "src/favicon.ico", + "src/assets" + ], + "styles": [ + "src/styles.css" + ], + "scripts": [] + }, + "configurations": { + "production": { + "budgets": [ + { + "type": "initial", + "maximumWarning": "500kb", + "maximumError": "1mb" + }, + { + "type": "anyComponentStyle", + "maximumWarning": "2kb", + "maximumError": "4kb" + } + ], + "outputHashing": "all" + }, + "development": { + "optimization": false, + "extractLicenses": false, + "sourceMap": true + } + }, + "defaultConfiguration": "production" + }, + "serve": { + "builder": "@angular-devkit/build-angular:dev-server", + "configurations": { + "production": { + "buildTarget": "ngx-reactome-base:build:production" + }, + "development": { + "buildTarget": "ngx-reactome-base:build:development" + } + }, + "defaultConfiguration": "development" + }, + "extract-i18n": { + "builder": "@angular-devkit/build-angular:extract-i18n", + "options": { + "buildTarget": "ngx-reactome-base:build" + } + }, + "test": { + "builder": "@angular-devkit/build-angular:karma", + "options": { + "polyfills": [ + "zone.js", + "zone.js/testing" + ], + "tsConfig": "tsconfig.spec.json", + "assets": [ + "src/favicon.ico", + "src/assets" + ], + "styles": [ + "src/styles.css" + ], + "scripts": [] + } + } + } + } + } +} diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..fe18e16 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,12507 @@ +{ + "name": "ngx-reactome-base", + "version": "0.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "ngx-reactome-base", + "version": "0.0.0", + "dependencies": { + "@angular/animations": "^17.3.0", + "@angular/common": "^17.3.0", + "@angular/compiler": "^17.3.0", + "@angular/core": "^17.3.0", + "@angular/forms": "^17.3.0", + "@angular/platform-browser": "^17.3.0", + "@angular/platform-browser-dynamic": "^17.3.0", + "@angular/router": "^17.3.0", + "rxjs": "~7.8.0", + "tslib": "^2.3.0", + "zone.js": "~0.14.3" + }, + "devDependencies": { + "@angular-devkit/build-angular": "^17.3.6", + "@angular/cli": "^17.3.6", + "@angular/compiler-cli": "^17.3.0", + "@types/jasmine": "~5.1.0", + "jasmine-core": "~5.1.0", + "karma": "~6.4.0", + "karma-chrome-launcher": "~3.2.0", + "karma-coverage": "~2.2.0", + "karma-jasmine": "~5.1.0", + "karma-jasmine-html-reporter": "~2.1.0", + "typescript": "~5.4.2" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@angular-devkit/architect": { + "version": "0.1703.6", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1703.6.tgz", + "integrity": "sha512-Ck501FD/QuOjeKVFs7hU92w8+Ffetv0d5Sq09XY2/uygo5c/thMzp9nkevaIWBxUSeU5RqYZizDrhFVgYzbbOw==", + "dev": true, + "dependencies": { + "@angular-devkit/core": "17.3.6", + "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-devkit/build-angular": { + "version": "17.3.6", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-17.3.6.tgz", + "integrity": "sha512-K4CEZvhQZUUOpmXPVoI1YBM8BARbIlqE6FZRxakmnr+YOtVTYE5s+Dr1wgja8hZIohNz6L7j167G9Aut7oPU/w==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "2.3.0", + "@angular-devkit/architect": "0.1703.6", + "@angular-devkit/build-webpack": "0.1703.6", + "@angular-devkit/core": "17.3.6", + "@babel/core": "7.24.0", + "@babel/generator": "7.23.6", + "@babel/helper-annotate-as-pure": "7.22.5", + "@babel/helper-split-export-declaration": "7.22.6", + "@babel/plugin-transform-async-generator-functions": "7.23.9", + "@babel/plugin-transform-async-to-generator": "7.23.3", + "@babel/plugin-transform-runtime": "7.24.0", + "@babel/preset-env": "7.24.0", + "@babel/runtime": "7.24.0", + "@discoveryjs/json-ext": "0.5.7", + "@ngtools/webpack": "17.3.6", + "@vitejs/plugin-basic-ssl": "1.1.0", + "ansi-colors": "4.1.3", + "autoprefixer": "10.4.18", + "babel-loader": "9.1.3", + "babel-plugin-istanbul": "6.1.1", + "browserslist": "^4.21.5", + "copy-webpack-plugin": "11.0.0", + "critters": "0.0.22", + "css-loader": "6.10.0", + "esbuild-wasm": "0.20.1", + "fast-glob": "3.3.2", + "http-proxy-middleware": "2.0.6", + "https-proxy-agent": "7.0.4", + "inquirer": "9.2.15", + "jsonc-parser": "3.2.1", + "karma-source-map-support": "1.4.0", + "less": "4.2.0", + "less-loader": "11.1.0", + "license-webpack-plugin": "4.0.2", + "loader-utils": "3.2.1", + "magic-string": "0.30.8", + "mini-css-extract-plugin": "2.8.1", + "mrmime": "2.0.0", + "open": "8.4.2", + "ora": "5.4.1", + "parse5-html-rewriting-stream": "7.0.0", + "picomatch": "4.0.1", + "piscina": "4.4.0", + "postcss": "8.4.35", + "postcss-loader": "8.1.1", + "resolve-url-loader": "5.0.0", + "rxjs": "7.8.1", + "sass": "1.71.1", + "sass-loader": "14.1.1", + "semver": "7.6.0", + "source-map-loader": "5.0.0", + "source-map-support": "0.5.21", + "terser": "5.29.1", + "tree-kill": "1.2.2", + "tslib": "2.6.2", + "undici": "6.11.1", + "vite": "5.1.7", + "watchpack": "2.4.0", + "webpack": "5.90.3", + "webpack-dev-middleware": "6.1.2", + "webpack-dev-server": "4.15.1", + "webpack-merge": "5.10.0", + "webpack-subresource-integrity": "5.1.0" + }, + "engines": { + "node": "^18.13.0 || >=20.9.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "optionalDependencies": { + "esbuild": "0.20.1" + }, + "peerDependencies": { + "@angular/compiler-cli": "^17.0.0", + "@angular/localize": "^17.0.0", + "@angular/platform-server": "^17.0.0", + "@angular/service-worker": "^17.0.0", + "@web/test-runner": "^0.18.0", + "browser-sync": "^3.0.2", + "jest": "^29.5.0", + "jest-environment-jsdom": "^29.5.0", + "karma": "^6.3.0", + "ng-packagr": "^17.0.0", + "protractor": "^7.0.0", + "tailwindcss": "^2.0.0 || ^3.0.0", + "typescript": ">=5.2 <5.5" + }, + "peerDependenciesMeta": { + "@angular/localize": { + "optional": true + }, + "@angular/platform-server": { + "optional": true + }, + "@angular/service-worker": { + "optional": true + }, + "@web/test-runner": { + "optional": true + }, + "browser-sync": { + "optional": true + }, + "jest": { + "optional": true + }, + "jest-environment-jsdom": { + "optional": true + }, + "karma": { + "optional": true + }, + "ng-packagr": { + "optional": true + }, + "protractor": { + "optional": true + }, + "tailwindcss": { + "optional": true + } + } + }, + "node_modules/@angular-devkit/build-webpack": { + "version": "0.1703.6", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1703.6.tgz", + "integrity": "sha512-pJu0et2SiF0kfXenHSTtAART0omzbWpLgBfeUo4hBh4uwX5IaT+mRpYpr8gCXMq+qsjoQp3HobSU3lPDeBn+bg==", + "dev": true, + "dependencies": { + "@angular-devkit/architect": "0.1703.6", + "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" + }, + "peerDependencies": { + "webpack": "^5.30.0", + "webpack-dev-server": "^4.0.0" + } + }, + "node_modules/@angular-devkit/core": { + "version": "17.3.6", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-17.3.6.tgz", + "integrity": "sha512-FVbkT9dEwHEvjnxr4mvMNSMg2bCFoGoP4X68xXU9dhLEUpC05opLvfbaR3Qh543eCJ5AstosBFVzB/krfIkOvA==", + "dev": true, + "dependencies": { + "ajv": "8.12.0", + "ajv-formats": "2.1.1", + "jsonc-parser": "3.2.1", + "picomatch": "4.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": { + "version": "17.3.6", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-17.3.6.tgz", + "integrity": "sha512-2G1YuPInd8znG7uUgKOS7z72Aku50lTzB/2csWkWPJLAFkh7vKC8QZ40x8S1nC9npVYPhI5CRLX/HVpBh9CyxA==", + "dev": true, + "dependencies": { + "@angular-devkit/core": "17.3.6", + "jsonc-parser": "3.2.1", + "magic-string": "0.30.8", + "ora": "5.4.1", + "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/animations": { + "version": "17.3.7", + "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-17.3.7.tgz", + "integrity": "sha512-ahenGALPPweeHgqtl9BMkGIAV4fUNI5kOWUrLNbKBfwIJN+aOBOYV1Jz6NKUQq6eYn/1ZYtm0f3lIkHIdtLKEw==", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^18.13.0 || >=20.9.0" + }, + "peerDependencies": { + "@angular/core": "17.3.7" + } + }, + "node_modules/@angular/cli": { + "version": "17.3.6", + "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-17.3.6.tgz", + "integrity": "sha512-poKaRPeI+hFqX+AxIaEriaIggFVcC3XqlT9E1/uBC2rfHirE1n5F9Z7xqEDtMHduKwLbNXhQIPoKIKya8+Hnew==", + "dev": true, + "dependencies": { + "@angular-devkit/architect": "0.1703.6", + "@angular-devkit/core": "17.3.6", + "@angular-devkit/schematics": "17.3.6", + "@schematics/angular": "17.3.6", + "@yarnpkg/lockfile": "1.1.0", + "ansi-colors": "4.1.3", + "ini": "4.1.2", + "inquirer": "9.2.15", + "jsonc-parser": "3.2.1", + "npm-package-arg": "11.0.1", + "npm-pick-manifest": "9.0.0", + "open": "8.4.2", + "ora": "5.4.1", + "pacote": "17.0.6", + "resolve": "1.22.8", + "semver": "7.6.0", + "symbol-observable": "4.0.0", + "yargs": "17.7.2" + }, + "bin": { + "ng": "bin/ng.js" + }, + "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/common": { + "version": "17.3.7", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-17.3.7.tgz", + "integrity": "sha512-A7LRJu1vVCGGgrfZXjU+njz50SiU4weheKCar5PIUprcdIofS1IrHAJDqYh+kwXxkjXbZMOr/ijQY0+AESLEsw==", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^18.13.0 || >=20.9.0" + }, + "peerDependencies": { + "@angular/core": "17.3.7", + "rxjs": "^6.5.3 || ^7.4.0" + } + }, + "node_modules/@angular/compiler": { + "version": "17.3.7", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-17.3.7.tgz", + "integrity": "sha512-AlKiqPoxnrpQ0hn13fIaQPSVodaVAIjBW4vpFyuKFqs2LBKg6iolwZ21s8rEI0KR2gXl+8ugj0/UZ6YADiVM5w==", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^18.13.0 || >=20.9.0" + }, + "peerDependencies": { + "@angular/core": "17.3.7" + }, + "peerDependenciesMeta": { + "@angular/core": { + "optional": true + } + } + }, + "node_modules/@angular/compiler-cli": { + "version": "17.3.7", + "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-17.3.7.tgz", + "integrity": "sha512-vSg5IQZ9jGmvYjpbfH8KbH4Sl1IVeE+Mr1ogcxkGEsURSRvKo7EWc0K7LSEI9+gg0VLamMiP9EyCJdPxiJeLJQ==", + "dev": true, + "dependencies": { + "@babel/core": "7.23.9", + "@jridgewell/sourcemap-codec": "^1.4.14", + "chokidar": "^3.0.0", + "convert-source-map": "^1.5.1", + "reflect-metadata": "^0.2.0", + "semver": "^7.0.0", + "tslib": "^2.3.0", + "yargs": "^17.2.1" + }, + "bin": { + "ng-xi18n": "bundles/src/bin/ng_xi18n.js", + "ngc": "bundles/src/bin/ngc.js", + "ngcc": "bundles/ngcc/index.js" + }, + "engines": { + "node": "^18.13.0 || >=20.9.0" + }, + "peerDependencies": { + "@angular/compiler": "17.3.7", + "typescript": ">=5.2 <5.5" + } + }, + "node_modules/@angular/compiler-cli/node_modules/@babel/core": { + "version": "7.23.9", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.9.tgz", + "integrity": "sha512-5q0175NOjddqpvvzU+kDiSOAk4PfdO6FvwCWoQ6RO7rTzEe8vlo+4HVfcnAREhD4npMs0e9uZypjTwzZPCf/cw==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.23.5", + "@babel/generator": "^7.23.6", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helpers": "^7.23.9", + "@babel/parser": "^7.23.9", + "@babel/template": "^7.23.9", + "@babel/traverse": "^7.23.9", + "@babel/types": "^7.23.9", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@angular/compiler-cli/node_modules/@babel/core/node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true + }, + "node_modules/@angular/compiler-cli/node_modules/@babel/core/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@angular/core": { + "version": "17.3.7", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-17.3.7.tgz", + "integrity": "sha512-HWcrbxqnvIMSxFuQdN0KPt08bc87hqr0LKm89yuRTUwx/2sNJlNQUobk6aJj4trswGBttcRDT+GOS4DQP2Nr4g==", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^18.13.0 || >=20.9.0" + }, + "peerDependencies": { + "rxjs": "^6.5.3 || ^7.4.0", + "zone.js": "~0.14.0" + } + }, + "node_modules/@angular/forms": { + "version": "17.3.7", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-17.3.7.tgz", + "integrity": "sha512-FEhXh/VmT++XCoO8i7bBtzxG7Am/cE1zrr9aF+fWW+4jpWvJvVN1IaSiJxgBB+iPsOJ9lTBRwfRW3onlcDkhrw==", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^18.13.0 || >=20.9.0" + }, + "peerDependencies": { + "@angular/common": "17.3.7", + "@angular/core": "17.3.7", + "@angular/platform-browser": "17.3.7", + "rxjs": "^6.5.3 || ^7.4.0" + } + }, + "node_modules/@angular/platform-browser": { + "version": "17.3.7", + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-17.3.7.tgz", + "integrity": "sha512-Nn8ZMaftAvO9dEwribWdNv+QBHhYIBrRkv85G6et80AXfXoYAr/xcfnQECRFtZgPmANqHC5auv/xrmExQG+Yeg==", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^18.13.0 || >=20.9.0" + }, + "peerDependencies": { + "@angular/animations": "17.3.7", + "@angular/common": "17.3.7", + "@angular/core": "17.3.7" + }, + "peerDependenciesMeta": { + "@angular/animations": { + "optional": true + } + } + }, + "node_modules/@angular/platform-browser-dynamic": { + "version": "17.3.7", + "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-17.3.7.tgz", + "integrity": "sha512-9c2I4u0L1p2v1/lW8qy+WaNHisUWbyy6wqsv2v9FfCaSM49Lxymgo9LPFPC4qEG5ei5nE+eIQ2ocRiXXsf5QkQ==", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^18.13.0 || >=20.9.0" + }, + "peerDependencies": { + "@angular/common": "17.3.7", + "@angular/compiler": "17.3.7", + "@angular/core": "17.3.7", + "@angular/platform-browser": "17.3.7" + } + }, + "node_modules/@angular/router": { + "version": "17.3.7", + "resolved": "https://registry.npmjs.org/@angular/router/-/router-17.3.7.tgz", + "integrity": "sha512-lMkuRrc1ZjP5JPDxNHqoAhB0uAnfPQ/q6mJrw1s8IZoVV6VyM+FxR5r13ajNcXWC38xy/YhBjpXPF1vBdxuLXg==", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^18.13.0 || >=20.9.0" + }, + "peerDependencies": { + "@angular/common": "17.3.7", + "@angular/core": "17.3.7", + "@angular/platform-browser": "17.3.7", + "rxjs": "^6.5.3 || ^7.4.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.24.2", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.2.tgz", + "integrity": "sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.24.2", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.24.4", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.4.tgz", + "integrity": "sha512-vg8Gih2MLK+kOkHJp4gBEIkyaIi00jgWot2D9QOmmfLC8jINSOzmCLta6Bvz/JSBCqnegV0L80jhxkol5GWNfQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.0.tgz", + "integrity": "sha512-fQfkg0Gjkza3nf0c7/w6Xf34BW4YvzNfACRLmmb7XRLa6XHdR+K9AlJlxneFfWYf6uhOzuzZVTjF/8KfndZANw==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.23.5", + "@babel/generator": "^7.23.6", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helpers": "^7.24.0", + "@babel/parser": "^7.24.0", + "@babel/template": "^7.24.0", + "@babel/traverse": "^7.24.0", + "@babel/types": "^7.24.0", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true + }, + "node_modules/@babel/core/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/generator": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.6.tgz", + "integrity": "sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.23.6", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", + "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz", + "integrity": "sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", + "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.23.5", + "@babel/helper-validator-option": "^7.23.5", + "browserslist": "^4.22.2", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.5.tgz", + "integrity": "sha512-uRc4Cv8UQWnE4NXlYTIIdM7wfFkOqlFztcC/gVXDKohKoVB3OyonfelUBaJzSwpBntZ2KYGF/9S7asCHsXwW6g==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-member-expression-to-functions": "^7.24.5", + "@babel/helper-optimise-call-expression": "^7.22.5", + "@babel/helper-replace-supers": "^7.24.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.24.5", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-class-features-plugin/node_modules/@babel/helper-split-export-declaration": { + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.5.tgz", + "integrity": "sha512-5CHncttXohrHk8GWOFCcCl4oRD9fKosWlIRgWm4ql9VYioKm52Mk2xsmoohvm7f3JoiLSM5ZgJuRaf5QZZYd3Q==", + "dev": true, + "dependencies": { + "@babel/types": "^7.24.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz", + "integrity": "sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "regexpu-core": "^5.3.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.2.tgz", + "integrity": "sha512-LV76g+C502biUK6AyZ3LK10vDpDyCzZnhZFXkH1L75zHPj68+qc8Zfpx2th+gzwA2MzyK+1g/3EPl62yFnVttQ==", + "dev": true, + "dependencies": { + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-plugin-utils": "^7.22.5", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", + "dev": true, + "dependencies": { + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.24.5.tgz", + "integrity": "sha512-4owRteeihKWKamtqg4JmWSsEZU445xpFRXPEwp44HbgbxdWlUV1b4Agg4lkA806Lil5XM/e+FJyS0vj5T6vmcA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.24.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.24.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.3.tgz", + "integrity": "sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.24.5.tgz", + "integrity": "sha512-9GxeY8c2d2mdQUP1Dye0ks3VDyIMS98kt/llQ2nUId8IsWqTF0l1LkSX0/uP7l7MCDrzXS009Hyhe2gzTiGW8A==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-module-imports": "^7.24.3", + "@babel/helper-simple-access": "^7.24.5", + "@babel/helper-split-export-declaration": "^7.24.5", + "@babel/helper-validator-identifier": "^7.24.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-module-transforms/node_modules/@babel/helper-split-export-declaration": { + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.5.tgz", + "integrity": "sha512-5CHncttXohrHk8GWOFCcCl4oRD9fKosWlIRgWm4ql9VYioKm52Mk2xsmoohvm7f3JoiLSM5ZgJuRaf5QZZYd3Q==", + "dev": true, + "dependencies": { + "@babel/types": "^7.24.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", + "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.5.tgz", + "integrity": "sha512-xjNLDopRzW2o6ba0gKbkZq5YWEBaK3PCyTOY1K2P/O07LGMhMqlMXPxwN4S5/RhWuCobT8z0jrlKGlYmeR1OhQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz", + "integrity": "sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-wrap-function": "^7.22.20" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.24.1.tgz", + "integrity": "sha512-QCR1UqC9BzG5vZl8BMicmZ28RuUBnHhAMddD8yHFHDRH9lLTZ9uUPehX8ctVPT8l0TKblJidqcgUUKGVrePleQ==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-member-expression-to-functions": "^7.23.0", + "@babel/helper-optimise-call-expression": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.5.tgz", + "integrity": "sha512-uH3Hmf5q5n7n8mz7arjUlDOCbttY/DW4DYhE6FUsjKJ/oYC1kQQUvwEQWxRwUpX9qQKRXeqLwWxrqilMrf32sQ==", + "dev": true, + "dependencies": { + "@babel/types": "^7.24.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", + "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", + "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.1.tgz", + "integrity": "sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.5.tgz", + "integrity": "sha512-3q93SSKX2TWCG30M2G2kwaKeTYgEUp5Snjuj8qm729SObL6nbtUldAi37qbxkD5gg3xnBio+f9nqpSepGZMvxA==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", + "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-wrap-function": { + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.24.5.tgz", + "integrity": "sha512-/xxzuNvgRl4/HLNKvnFwdhdgN3cpLxgLROeLDl83Yx0AJ1SGvq1ak0OszTOjDfiB8Vx03eJbeDWh9r+jCCWttw==", + "dev": true, + "dependencies": { + "@babel/helper-function-name": "^7.23.0", + "@babel/template": "^7.24.0", + "@babel/types": "^7.24.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.5.tgz", + "integrity": "sha512-CiQmBMMpMQHwM5m01YnrM6imUG1ebgYJ+fAIW4FZe6m4qHTPaRHti+R8cggAwkdz4oXhtO4/K9JWlh+8hIfR2Q==", + "dev": true, + "dependencies": { + "@babel/template": "^7.24.0", + "@babel/traverse": "^7.24.5", + "@babel/types": "^7.24.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.5.tgz", + "integrity": "sha512-8lLmua6AVh/8SLJRRVD6V8p73Hir9w5mJrhE+IPpILG31KKlI9iz5zmBYKcWPS59qSfgP9RaSBQSHHE81WKuEw==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.24.5", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.5.tgz", + "integrity": "sha512-EOv5IK8arwh3LI47dz1b0tKUb/1uhHAnHJOrjgtQMIpu1uXd9mlFrJg9IUgGUgZ41Ch0K8REPTYpO7B76b4vJg==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.24.1.tgz", + "integrity": "sha512-y4HqEnkelJIOQGd+3g1bTeKsA5c6qM7eOn7VggGVbBc0y8MLSKHacwcIE2PplNlQSj0PqS9rrXL/nkPVK+kUNg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.24.1.tgz", + "integrity": "sha512-Hj791Ii4ci8HqnaKHAlLNs+zaLXb0EzSDhiAWp5VNlyvCNymYfacs64pxTxbH1znW/NcArSmwpmG9IKE/TUVVQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/plugin-transform-optional-chaining": "^7.24.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.13.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.24.1.tgz", + "integrity": "sha512-m9m/fXsXLiHfwdgydIFnpk+7jlVbnvlK5B2EKiPdLUb6WX654ZaaEWJUjk8TftRbZpK0XibovlLWX4KIZhV6jw==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.0-placeholder-for-preset-env.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", + "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", + "dev": true, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-assertions": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.24.1.tgz", + "integrity": "sha512-IuwnI5XnuF189t91XbxmXeCDz3qs6iDRO7GJ++wcfgeXNs/8FmIlKcpDSXNVyuLQxlwvskmI3Ct73wUODkJBlQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.24.1.tgz", + "integrity": "sha512-zhQTMH0X2nVLnb04tz+s7AMuasX8U0FnpE+nHTOhSOINjWMnopoZTxtIKsd45n4GQ/HIZLyfIpoul8e2m0DnRA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-unicode-sets-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", + "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.24.1.tgz", + "integrity": "sha512-ngT/3NkRhsaep9ck9uj2Xhv9+xB1zShY3tM3g6om4xxCELwCDN4g4Aq5dRn48+0hasAql7s2hdBOysCfNpr4fw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-generator-functions": { + "version": "7.23.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.9.tgz", + "integrity": "sha512-8Q3veQEDGe14dTYuwagbRtwxQDnytyg1JFu4/HwEMETeofocrB0U0ejBJIXoeG/t2oXZ8kzCyI0ZZfbT80VFNQ==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-remap-async-to-generator": "^7.22.20", + "@babel/plugin-syntax-async-generators": "^7.8.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.23.3.tgz", + "integrity": "sha512-A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-remap-async-to-generator": "^7.22.20" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.24.1.tgz", + "integrity": "sha512-TWWC18OShZutrv9C6mye1xwtam+uNi2bnTOCBUd5sZxyHOiWbU6ztSROofIMrK84uweEZC219POICK/sTYwfgg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.24.5.tgz", + "integrity": "sha512-sMfBc3OxghjC95BkYrYocHL3NaOplrcaunblzwXhGmlPwpmfsxr4vK+mBBt49r+S240vahmv+kUxkeKgs+haCw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-properties": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.24.1.tgz", + "integrity": "sha512-OMLCXi0NqvJfORTaPQBwqLXHhb93wkBKZ4aNwMl6WtehO7ar+cmp+89iPEQPqxAnxsOKTaMcs3POz3rKayJ72g==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.24.1", + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-static-block": { + "version": "7.24.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.24.4.tgz", + "integrity": "sha512-B8q7Pz870Hz/q9UgP8InNpY01CSLDSCyqX7zcRuv3FcPl87A2G17lASroHWaCtbdIcbYzOZ7kWmXFKbijMSmFg==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.24.4", + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.24.5.tgz", + "integrity": "sha512-gWkLP25DFj2dwe9Ck8uwMOpko4YsqyfZJrOmqqcegeDYEbp7rmn4U6UQZNj08UF6MaX39XenSpKRCvpDRBtZ7Q==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-plugin-utils": "^7.24.5", + "@babel/helper-replace-supers": "^7.24.1", + "@babel/helper-split-export-declaration": "^7.24.5", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-classes/node_modules/@babel/helper-split-export-declaration": { + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.5.tgz", + "integrity": "sha512-5CHncttXohrHk8GWOFCcCl4oRD9fKosWlIRgWm4ql9VYioKm52Mk2xsmoohvm7f3JoiLSM5ZgJuRaf5QZZYd3Q==", + "dev": true, + "dependencies": { + "@babel/types": "^7.24.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.24.1.tgz", + "integrity": "sha512-5pJGVIUfJpOS+pAqBQd+QMaTD2vCL/HcePooON6pDpHgRp4gNRmzyHTPIkXntwKsq3ayUFVfJaIKPw2pOkOcTw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/template": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.5.tgz", + "integrity": "sha512-SZuuLyfxvsm+Ah57I/i1HVjveBENYK9ue8MJ7qkc7ndoNjqquJiElzA7f5yaAXjyW2hKojosOTAQQRX50bPSVg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.24.1.tgz", + "integrity": "sha512-p7uUxgSoZwZ2lPNMzUkqCts3xlp8n+o05ikjy7gbtFJSt9gdU88jAmtfmOxHM14noQXBxfgzf2yRWECiNVhTCw==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.24.1.tgz", + "integrity": "sha512-msyzuUnvsjsaSaocV6L7ErfNsa5nDWL1XKNnDePLgmz+WdU4w/J8+AxBMrWfi9m4IxfL5sZQKUPQKDQeeAT6lA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dynamic-import": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.24.1.tgz", + "integrity": "sha512-av2gdSTyXcJVdI+8aFZsCAtR29xJt0S5tas+Ef8NvBNmD1a+N/3ecMLeMBgfcK+xzsjdLDT6oHt+DFPyeqUbDA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.24.1.tgz", + "integrity": "sha512-U1yX13dVBSwS23DEAqU+Z/PkwE9/m7QQy8Y9/+Tdb8UWYaGNDYwTLi19wqIAiROr8sXVum9A/rtiH5H0boUcTw==", + "dev": true, + "dependencies": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.15", + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-export-namespace-from": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.24.1.tgz", + "integrity": "sha512-Ft38m/KFOyzKw2UaJFkWG9QnHPG/Q/2SkOrRk4pNBPg5IPZ+dOxcmkK5IyuBcxiNPyyYowPGUReyBvrvZs7IlQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.24.1.tgz", + "integrity": "sha512-OxBdcnF04bpdQdR3i4giHZNZQn7cm8RQKcSwA17wAAqEELo1ZOwp5FFgeptWUQXFyT9kwHo10aqqauYkRZPCAg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.24.1.tgz", + "integrity": "sha512-BXmDZpPlh7jwicKArQASrj8n22/w6iymRnvHYYd2zO30DbE277JO20/7yXJT3QxDPtiQiOxQBbZH4TpivNXIxA==", + "dev": true, + "dependencies": { + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-json-strings": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.24.1.tgz", + "integrity": "sha512-U7RMFmRvoasscrIFy5xA4gIp8iWnWubnKkKuUGJjsuOH7GfbMkB+XZzeslx2kLdEGdOJDamEmCqOks6e8nv8DQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/plugin-syntax-json-strings": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-literals": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.24.1.tgz", + "integrity": "sha512-zn9pwz8U7nCqOYIiBaOxoQOtYmMODXTJnkxG4AtX8fPmnCRYWBOHD0qcpwS9e2VDSp1zNJYpdnFMIKb8jmwu6g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-logical-assignment-operators": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.24.1.tgz", + "integrity": "sha512-OhN6J4Bpz+hIBqItTeWJujDOfNP+unqv/NJgyhlpSqgBTPm37KkMmZV6SYcOj+pnDbdcl1qRGV/ZiIjX9Iy34w==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.24.1.tgz", + "integrity": "sha512-4ojai0KysTWXzHseJKa1XPNXKRbuUrhkOPY4rEGeR+7ChlJVKxFa3H3Bz+7tWaGKgJAXUWKOGmltN+u9B3+CVg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.24.1.tgz", + "integrity": "sha512-lAxNHi4HVtjnHd5Rxg3D5t99Xm6H7b04hUS7EHIXcUl2EV4yl1gWdqZrNzXnSrHveL9qMdbODlLF55mvgjAfaQ==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.1.tgz", + "integrity": "sha512-szog8fFTUxBfw0b98gEWPaEqF42ZUD/T3bkynW/wtgx2p/XCP55WEsb+VosKceRSd6njipdZvNogqdtI4Q0chw==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-simple-access": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.24.1.tgz", + "integrity": "sha512-mqQ3Zh9vFO1Tpmlt8QPnbwGHzNz3lpNEMxQb1kAemn/erstyqw1r9KeOlOfo3y6xAnFEcOv2tSyrXfmMk+/YZA==", + "dev": true, + "dependencies": { + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-validator-identifier": "^7.22.20" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.24.1.tgz", + "integrity": "sha512-tuA3lpPj+5ITfcCluy6nWonSL7RvaG0AOTeAuvXqEKS34lnLzXpDb0dcP6K8jD0zWZFNDVly90AGFJPnm4fOYg==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz", + "integrity": "sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.24.1.tgz", + "integrity": "sha512-/rurytBM34hYy0HKZQyA0nHbQgQNFm4Q/BOc9Hflxi2X3twRof7NaE5W46j4kQitm7SvACVRXsa6N/tSZxvPug==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.24.1.tgz", + "integrity": "sha512-iQ+caew8wRrhCikO5DrUYx0mrmdhkaELgFa+7baMcVuhxIkN7oxt06CZ51D65ugIb1UWRQ8oQe+HXAVM6qHFjw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-numeric-separator": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.24.1.tgz", + "integrity": "sha512-7GAsGlK4cNL2OExJH1DzmDeKnRv/LXq0eLUSvudrehVA5Rgg4bIrqEUW29FbKMBRT0ztSqisv7kjP+XIC4ZMNw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-rest-spread": { + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.5.tgz", + "integrity": "sha512-7EauQHszLGM3ay7a161tTQH7fj+3vVM/gThlz5HpFtnygTxjrlvoeq7MPVA1Vy9Q555OB8SnAOsMkLShNkkrHA==", + "dev": true, + "dependencies": { + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-plugin-utils": "^7.24.5", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.24.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.24.1.tgz", + "integrity": "sha512-oKJqR3TeI5hSLRxudMjFQ9re9fBVUU0GICqM3J1mi8MqlhVr6hC/ZN4ttAyMuQR6EZZIY6h/exe5swqGNNIkWQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-replace-supers": "^7.24.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-catch-binding": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.24.1.tgz", + "integrity": "sha512-oBTH7oURV4Y+3EUrf6cWn1OHio3qG/PVwO5J03iSJmBg6m2EhKjkAu/xuaXaYwWW9miYtvbWv4LNf0AmR43LUA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-chaining": { + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.24.5.tgz", + "integrity": "sha512-xWCkmwKT+ihmA6l7SSTpk8e4qQl/274iNbSKRRS8mpqFR32ksy36+a+LWY8OXCCEefF8WFlnOHVsaDI2231wBg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.24.5.tgz", + "integrity": "sha512-9Co00MqZ2aoky+4j2jhofErthm6QVLKbpQrvz20c3CH9KQCLHyNB+t2ya4/UrRpQGR+Wrwjg9foopoeSdnHOkA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-methods": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.24.1.tgz", + "integrity": "sha512-tGvisebwBO5em4PaYNqt4fkw56K2VALsAbAakY0FjTYqJp7gfdrgr7YX76Or8/cpik0W6+tj3rZ0uHU9Oil4tw==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.24.1", + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-property-in-object": { + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.24.5.tgz", + "integrity": "sha512-JM4MHZqnWR04jPMujQDTBVRnqxpLLpx2tkn7iPn+Hmsc0Gnb79yvRWOkvqFOx3Z7P7VxiRIR22c4eGSNj87OBQ==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-create-class-features-plugin": "^7.24.5", + "@babel/helper-plugin-utils": "^7.24.5", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.24.1.tgz", + "integrity": "sha512-LetvD7CrHmEx0G442gOomRr66d7q8HzzGGr4PMHGr+5YIm6++Yke+jxj246rpvsbyhJwCLxcTn6zW1P1BSenqA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.24.1.tgz", + "integrity": "sha512-sJwZBCzIBE4t+5Q4IGLaaun5ExVMRY0lYwos/jNecjMrVCygCdph3IKv0tkP5Fc87e/1+bebAmEAGBfnRD+cnw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0", + "regenerator-transform": "^0.15.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.24.1.tgz", + "integrity": "sha512-JAclqStUfIwKN15HrsQADFgeZt+wexNQ0uLhuqvqAUFoqPMjEcFCYZBhq0LUdz6dZK/mD+rErhW71fbx8RYElg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-runtime": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.24.0.tgz", + "integrity": "sha512-zc0GA5IitLKJrSfXlXmp8KDqLrnGECK7YRfQBmEKg1NmBOQ7e+KuclBEKJgzifQeUYLdNiAw4B4bjyvzWVLiSA==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-plugin-utils": "^7.24.0", + "babel-plugin-polyfill-corejs2": "^0.4.8", + "babel-plugin-polyfill-corejs3": "^0.9.0", + "babel-plugin-polyfill-regenerator": "^0.5.5", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-runtime/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.24.1.tgz", + "integrity": "sha512-LyjVB1nsJ6gTTUKRjRWx9C1s9hE7dLfP/knKdrfeH9UPtAGjYGgxIbFfx7xyLIEWs7Xe1Gnf8EWiUqfjLhInZA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-spread": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.24.1.tgz", + "integrity": "sha512-KjmcIM+fxgY+KxPVbjelJC6hrH1CgtPmTvdXAfn3/a9CnWGSTY7nH4zm5+cjmWJybdcPSsD0++QssDsjcpe47g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.24.1.tgz", + "integrity": "sha512-9v0f1bRXgPVcPrngOQvLXeGNNVLc8UjMVfebo9ka0WF3/7+aVUHmaJVT3sa0XCzEFioPfPHZiOcYG9qOsH63cw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.24.1.tgz", + "integrity": "sha512-WRkhROsNzriarqECASCNu/nojeXCDTE/F2HmRgOzi7NGvyfYGq1NEjKBK3ckLfRgGc6/lPAqP0vDOSw3YtG34g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.24.5.tgz", + "integrity": "sha512-UTGnhYVZtTAjdwOTzT+sCyXmTn8AhaxOS/MjG9REclZ6ULHWF9KoCZur0HSGU7hk8PdBFKKbYe6+gqdXWz84Jg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.24.1.tgz", + "integrity": "sha512-RlkVIcWT4TLI96zM660S877E7beKlQw7Ig+wqkKBiWfj0zH5Q4h50q6er4wzZKRNSYpfo6ILJ+hrJAGSX2qcNw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-property-regex": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.24.1.tgz", + "integrity": "sha512-Ss4VvlfYV5huWApFsF8/Sq0oXnGO+jB+rijFEFugTd3cwSObUSnUi88djgR5528Csl0uKlrI331kRqe56Ov2Ng==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.24.1.tgz", + "integrity": "sha512-2A/94wgZgxfTsiLaQ2E36XAOdcZmGAaEEgVmxQWwZXWkGhvoHbaqXcKnU8zny4ycpu3vNqg0L/PcCiYtHtA13g==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-sets-regex": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.24.1.tgz", + "integrity": "sha512-fqj4WuzzS+ukpgerpAoOnMfQXwUHFxXUZUE84oL2Kao2N8uSlvcpnAidKASgsNgzZHBsHWvcm8s9FPWUhAb8fA==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.24.0.tgz", + "integrity": "sha512-ZxPEzV9IgvGn73iK0E6VB9/95Nd7aMFpbE0l8KQFDG70cOV9IxRP7Y2FUPmlK0v6ImlLqYX50iuZ3ZTVhOF2lA==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.23.5", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-validator-option": "^7.23.5", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.23.3", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.23.3", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.23.7", + "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-import-assertions": "^7.23.3", + "@babel/plugin-syntax-import-attributes": "^7.23.3", + "@babel/plugin-syntax-import-meta": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", + "@babel/plugin-transform-arrow-functions": "^7.23.3", + "@babel/plugin-transform-async-generator-functions": "^7.23.9", + "@babel/plugin-transform-async-to-generator": "^7.23.3", + "@babel/plugin-transform-block-scoped-functions": "^7.23.3", + "@babel/plugin-transform-block-scoping": "^7.23.4", + "@babel/plugin-transform-class-properties": "^7.23.3", + "@babel/plugin-transform-class-static-block": "^7.23.4", + "@babel/plugin-transform-classes": "^7.23.8", + "@babel/plugin-transform-computed-properties": "^7.23.3", + "@babel/plugin-transform-destructuring": "^7.23.3", + "@babel/plugin-transform-dotall-regex": "^7.23.3", + "@babel/plugin-transform-duplicate-keys": "^7.23.3", + "@babel/plugin-transform-dynamic-import": "^7.23.4", + "@babel/plugin-transform-exponentiation-operator": "^7.23.3", + "@babel/plugin-transform-export-namespace-from": "^7.23.4", + "@babel/plugin-transform-for-of": "^7.23.6", + "@babel/plugin-transform-function-name": "^7.23.3", + "@babel/plugin-transform-json-strings": "^7.23.4", + "@babel/plugin-transform-literals": "^7.23.3", + "@babel/plugin-transform-logical-assignment-operators": "^7.23.4", + "@babel/plugin-transform-member-expression-literals": "^7.23.3", + "@babel/plugin-transform-modules-amd": "^7.23.3", + "@babel/plugin-transform-modules-commonjs": "^7.23.3", + "@babel/plugin-transform-modules-systemjs": "^7.23.9", + "@babel/plugin-transform-modules-umd": "^7.23.3", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5", + "@babel/plugin-transform-new-target": "^7.23.3", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.23.4", + "@babel/plugin-transform-numeric-separator": "^7.23.4", + "@babel/plugin-transform-object-rest-spread": "^7.24.0", + "@babel/plugin-transform-object-super": "^7.23.3", + "@babel/plugin-transform-optional-catch-binding": "^7.23.4", + "@babel/plugin-transform-optional-chaining": "^7.23.4", + "@babel/plugin-transform-parameters": "^7.23.3", + "@babel/plugin-transform-private-methods": "^7.23.3", + "@babel/plugin-transform-private-property-in-object": "^7.23.4", + "@babel/plugin-transform-property-literals": "^7.23.3", + "@babel/plugin-transform-regenerator": "^7.23.3", + "@babel/plugin-transform-reserved-words": "^7.23.3", + "@babel/plugin-transform-shorthand-properties": "^7.23.3", + "@babel/plugin-transform-spread": "^7.23.3", + "@babel/plugin-transform-sticky-regex": "^7.23.3", + "@babel/plugin-transform-template-literals": "^7.23.3", + "@babel/plugin-transform-typeof-symbol": "^7.23.3", + "@babel/plugin-transform-unicode-escapes": "^7.23.3", + "@babel/plugin-transform-unicode-property-regex": "^7.23.3", + "@babel/plugin-transform-unicode-regex": "^7.23.3", + "@babel/plugin-transform-unicode-sets-regex": "^7.23.3", + "@babel/preset-modules": "0.1.6-no-external-plugins", + "babel-plugin-polyfill-corejs2": "^0.4.8", + "babel-plugin-polyfill-corejs3": "^0.9.0", + "babel-plugin-polyfill-regenerator": "^0.5.5", + "core-js-compat": "^3.31.0", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-env/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/preset-modules": { + "version": "0.1.6-no-external-plugins", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", + "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", + "dev": true + }, + "node_modules/@babel/runtime": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.0.tgz", + "integrity": "sha512-Chk32uHMg6TnQdvw2e9IlqPpFX/6NLuK0Ys2PqLb7/gL5uFn9mXvK715FGLlOLQrcO4qIkNHkvPGktzzXexsFw==", + "dev": true, + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.0.tgz", + "integrity": "sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.23.5", + "@babel/parser": "^7.24.0", + "@babel/types": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.5.tgz", + "integrity": "sha512-7aaBLeDQ4zYcUFDUD41lJc1fG8+5IU9DaNSJAgal866FGvmD5EbWQgnEC6kO1gGLsX0esNkfnJSndbTXA3r7UA==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.24.2", + "@babel/generator": "^7.24.5", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.24.5", + "@babel/parser": "^7.24.5", + "@babel/types": "^7.24.5", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse/node_modules/@babel/generator": { + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.5.tgz", + "integrity": "sha512-x32i4hEXvr+iI0NEoEfDKzlemF8AmtOP8CcrRaEcpzysWuoEb1KknpcvMsHKPONoKZiDuItklgWhB18xEhr9PA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.24.5", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse/node_modules/@babel/helper-split-export-declaration": { + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.5.tgz", + "integrity": "sha512-5CHncttXohrHk8GWOFCcCl4oRD9fKosWlIRgWm4ql9VYioKm52Mk2xsmoohvm7f3JoiLSM5ZgJuRaf5QZZYd3Q==", + "dev": true, + "dependencies": { + "@babel/types": "^7.24.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.5.tgz", + "integrity": "sha512-6mQNsaLeXTw0nxYUYu+NSa4Hx4BlF1x1x8/PMFbiR+GBSr+2DkECc69b8hgy2frEodNcvPffeH8YfWd3LI6jhQ==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.24.1", + "@babel/helper-validator-identifier": "^7.24.5", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@colors/colors": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", + "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", + "dev": true, + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/@discoveryjs/json-ext": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", + "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", + "dev": true, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.20.1.tgz", + "integrity": "sha512-m55cpeupQ2DbuRGQMMZDzbv9J9PgVelPjlcmM5kxHnrBdBx6REaEd7LamYV7Dm8N7rCyR/XwU6rVP8ploKtIkA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.20.1.tgz", + "integrity": "sha512-4j0+G27/2ZXGWR5okcJi7pQYhmkVgb4D7UKwxcqrjhvp5TKWx3cUjgB1CGj1mfdmJBQ9VnUGgUhign+FPF2Zgw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.20.1.tgz", + "integrity": "sha512-hCnXNF0HM6AjowP+Zou0ZJMWWa1VkD77BXe959zERgGJBBxB+sV+J9f/rcjeg2c5bsukD/n17RKWXGFCO5dD5A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.20.1.tgz", + "integrity": "sha512-MSfZMBoAsnhpS+2yMFYIQUPs8Z19ajwfuaSZx+tSl09xrHZCjbeXXMsUF/0oq7ojxYEpsSo4c0SfjxOYXRbpaA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.20.1.tgz", + "integrity": "sha512-Ylk6rzgMD8klUklGPzS414UQLa5NPXZD5tf8JmQU8GQrj6BrFA/Ic9tb2zRe1kOZyCbGl+e8VMbDRazCEBqPvA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.20.1.tgz", + "integrity": "sha512-pFIfj7U2w5sMp52wTY1XVOdoxw+GDwy9FsK3OFz4BpMAjvZVs0dT1VXs8aQm22nhwoIWUmIRaE+4xow8xfIDZA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.1.tgz", + "integrity": "sha512-UyW1WZvHDuM4xDz0jWun4qtQFauNdXjXOtIy7SYdf7pbxSWWVlqhnR/T2TpX6LX5NI62spt0a3ldIIEkPM6RHw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.20.1.tgz", + "integrity": "sha512-itPwCw5C+Jh/c624vcDd9kRCCZVpzpQn8dtwoYIt2TJF3S9xJLiRohnnNrKwREvcZYx0n8sCSbvGH349XkcQeg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.20.1.tgz", + "integrity": "sha512-LojC28v3+IhIbfQ+Vu4Ut5n3wKcgTu6POKIHN9Wpt0HnfgUGlBuyDDQR4jWZUZFyYLiz4RBBBmfU6sNfn6RhLw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.20.1.tgz", + "integrity": "sha512-cX8WdlF6Cnvw/DO9/X7XLH2J6CkBnz7Twjpk56cshk9sjYVcuh4sXQBy5bmTwzBjNVZze2yaV1vtcJS04LbN8w==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.20.1.tgz", + "integrity": "sha512-4H/sQCy1mnnGkUt/xszaLlYJVTz3W9ep52xEefGtd6yXDQbz/5fZE5dFLUgsPdbUOQANcVUa5iO6g3nyy5BJiw==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.20.1.tgz", + "integrity": "sha512-c0jgtB+sRHCciVXlyjDcWb2FUuzlGVRwGXgI+3WqKOIuoo8AmZAddzeOHeYLtD+dmtHw3B4Xo9wAUdjlfW5yYA==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.20.1.tgz", + "integrity": "sha512-TgFyCfIxSujyuqdZKDZ3yTwWiGv+KnlOeXXitCQ+trDODJ+ZtGOzLkSWngynP0HZnTsDyBbPy7GWVXWaEl6lhA==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.20.1.tgz", + "integrity": "sha512-b+yuD1IUeL+Y93PmFZDZFIElwbmFfIKLKlYI8M6tRyzE6u7oEP7onGk0vZRh8wfVGC2dZoy0EqX1V8qok4qHaw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.20.1.tgz", + "integrity": "sha512-wpDlpE0oRKZwX+GfomcALcouqjjV8MIX8DyTrxfyCfXxoKQSDm45CZr9fanJ4F6ckD4yDEPT98SrjvLwIqUCgg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.20.1.tgz", + "integrity": "sha512-5BepC2Au80EohQ2dBpyTquqGCES7++p7G+7lXe1bAIvMdXm4YYcEfZtQrP4gaoZ96Wv1Ute61CEHFU7h4FMueQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.20.1.tgz", + "integrity": "sha512-5gRPk7pKuaIB+tmH+yKd2aQTRpqlf1E4f/mC+tawIm/CGJemZcHZpp2ic8oD83nKgUPMEd0fNanrnFljiruuyA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.20.1.tgz", + "integrity": "sha512-4fL68JdrLV2nVW2AaWZBv3XEm3Ae3NZn/7qy2KGAt3dexAgSVT+Hc97JKSZnqezgMlv9x6KV0ZkZY7UO5cNLCg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.20.1.tgz", + "integrity": "sha512-GhRuXlvRE+twf2ES+8REbeCb/zeikNqwD3+6S5y5/x+DYbAQUNl0HNBs4RQJqrechS4v4MruEr8ZtAin/hK5iw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.20.1.tgz", + "integrity": "sha512-ZnWEyCM0G1Ex6JtsygvC3KUUrlDXqOihw8RicRuQAzw+c4f1D66YlPNNV3rkjVW90zXVsHwZYWbJh3v+oQFM9Q==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.20.1.tgz", + "integrity": "sha512-QZ6gXue0vVQY2Oon9WyLFCdSuYbXSoxaZrPuJ4c20j6ICedfsDilNPYfHLlMH7vGfU5DQR0czHLmJvH4Nzis/A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.20.1.tgz", + "integrity": "sha512-HzcJa1NcSWTAU0MJIxOho8JftNp9YALui3o+Ny7hCh0v5f90nprly1U3Sj1Ldj/CvKKdvvFsCRvDkpsEMp4DNw==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.20.1.tgz", + "integrity": "sha512-0MBh53o6XtI6ctDnRMeQ+xoCN8kD2qI1rY1KgF/xdWQwoFeKou7puvDfV8/Wv4Ctx2rRpET/gGdz3YlNtNACSA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dev": true, + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true + }, + "node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "dev": true, + "dependencies": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", + "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@leichtgewicht/ip-codec": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz", + "integrity": "sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==", + "dev": true + }, + "node_modules/@ljharb/through": { + "version": "2.3.13", + "resolved": "https://registry.npmjs.org/@ljharb/through/-/through-2.3.13.tgz", + "integrity": "sha512-/gKJun8NNiWGZJkGzI/Ragc53cOdcLNdzjLaIa+GEjguQs0ulsurx8WN0jijdK9yPqDvziX995sMRLyLt1uZMQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/@ngtools/webpack": { + "version": "17.3.6", + "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-17.3.6.tgz", + "integrity": "sha512-equxbgh2DKzZtiFMoVf1KD4yJcH1q8lpqQ/GSPPQUvONcmHrr+yqdRUdaJ7oZCyCYmXF/nByBxtMKtJr6nKZVg==", + "dev": true, + "engines": { + "node": "^18.13.0 || >=20.9.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "peerDependencies": { + "@angular/compiler-cli": "^17.0.0", + "typescript": ">=5.2 <5.5", + "webpack": "^5.54.0" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@npmcli/agent": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@npmcli/agent/-/agent-2.2.2.tgz", + "integrity": "sha512-OrcNPXdpSl9UX7qPVRWbmWMCSXrcDa2M9DvrbOTj7ao1S4PlqVFYv9/yLKMkrJKZ/V5A/kDBC690or307i26Og==", + "dev": true, + "dependencies": { + "agent-base": "^7.1.0", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.1", + "lru-cache": "^10.0.1", + "socks-proxy-agent": "^8.0.3" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/agent/node_modules/lru-cache": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz", + "integrity": "sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==", + "dev": true, + "engines": { + "node": "14 || >=16.14" + } + }, + "node_modules/@npmcli/fs": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-3.1.0.tgz", + "integrity": "sha512-7kZUAaLscfgbwBQRbvdMYaZOWyMEcPTH/tJjnyAWJ/dvvs9Ef+CERx/qJb9GExJpl1qipaDGn7KqHnFGGixd0w==", + "dev": true, + "dependencies": { + "semver": "^7.3.5" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/git": { + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-5.0.6.tgz", + "integrity": "sha512-4x/182sKXmQkf0EtXxT26GEsaOATpD7WVtza5hrYivWZeo6QefC6xq9KAXrnjtFKBZ4rZwR7aX/zClYYXgtwLw==", + "dev": true, + "dependencies": { + "@npmcli/promise-spawn": "^7.0.0", + "lru-cache": "^10.0.1", + "npm-pick-manifest": "^9.0.0", + "proc-log": "^4.0.0", + "promise-inflight": "^1.0.1", + "promise-retry": "^2.0.1", + "semver": "^7.3.5", + "which": "^4.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/git/node_modules/isexe": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", + "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", + "dev": true, + "engines": { + "node": ">=16" + } + }, + "node_modules/@npmcli/git/node_modules/lru-cache": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz", + "integrity": "sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==", + "dev": true, + "engines": { + "node": "14 || >=16.14" + } + }, + "node_modules/@npmcli/git/node_modules/proc-log": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-4.2.0.tgz", + "integrity": "sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/git/node_modules/which": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", + "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", + "dev": true, + "dependencies": { + "isexe": "^3.1.1" + }, + "bin": { + "node-which": "bin/which.js" + }, + "engines": { + "node": "^16.13.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/installed-package-contents": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-2.1.0.tgz", + "integrity": "sha512-c8UuGLeZpm69BryRykLuKRyKFZYJsZSCT4aVY5ds4omyZqJ172ApzgfKJ5eV/r3HgLdUYgFVe54KSFVjKoe27w==", + "dev": true, + "dependencies": { + "npm-bundled": "^3.0.0", + "npm-normalize-package-bin": "^3.0.0" + }, + "bin": { + "installed-package-contents": "bin/index.js" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/node-gyp": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/node-gyp/-/node-gyp-3.0.0.tgz", + "integrity": "sha512-gp8pRXC2oOxu0DUE1/M3bYtb1b3/DbJ5aM113+XJBgfXdussRAsX0YOrOhdd8WvnAR6auDBvJomGAkLKA5ydxA==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/package-json": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@npmcli/package-json/-/package-json-5.1.0.tgz", + "integrity": "sha512-1aL4TuVrLS9sf8quCLerU3H9J4vtCtgu8VauYozrmEyU57i/EdKleCnsQ7vpnABIH6c9mnTxcH5sFkO3BlV8wQ==", + "dev": true, + "dependencies": { + "@npmcli/git": "^5.0.0", + "glob": "^10.2.2", + "hosted-git-info": "^7.0.0", + "json-parse-even-better-errors": "^3.0.0", + "normalize-package-data": "^6.0.0", + "proc-log": "^4.0.0", + "semver": "^7.5.3" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/package-json/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@npmcli/package-json/node_modules/glob": { + "version": "10.3.12", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.12.tgz", + "integrity": "sha512-TCNv8vJ+xz4QiqTpfOJA7HvYv+tNIRHKfUWw/q+v2jdgN4ebz+KY9tGx5J4rHP0o84mNP+ApH66HRX8us3Khqg==", + "dev": true, + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^2.3.6", + "minimatch": "^9.0.1", + "minipass": "^7.0.4", + "path-scurry": "^1.10.2" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@npmcli/package-json/node_modules/minimatch": { + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", + "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@npmcli/package-json/node_modules/proc-log": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-4.2.0.tgz", + "integrity": "sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/promise-spawn": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-7.0.1.tgz", + "integrity": "sha512-P4KkF9jX3y+7yFUxgcUdDtLy+t4OlDGuEBLNs57AZsfSfg+uV6MLndqGpnl4831ggaEdXwR50XFoZP4VFtHolg==", + "dev": true, + "dependencies": { + "which": "^4.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/promise-spawn/node_modules/isexe": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", + "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", + "dev": true, + "engines": { + "node": ">=16" + } + }, + "node_modules/@npmcli/promise-spawn/node_modules/which": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", + "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", + "dev": true, + "dependencies": { + "isexe": "^3.1.1" + }, + "bin": { + "node-which": "bin/which.js" + }, + "engines": { + "node": "^16.13.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/redact": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@npmcli/redact/-/redact-1.1.0.tgz", + "integrity": "sha512-PfnWuOkQgu7gCbnSsAisaX7hKOdZ4wSAhAzH3/ph5dSGau52kCRrMMGbiSQLwyTZpgldkZ49b0brkOr1AzGBHQ==", + "dev": true, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/run-script": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-7.0.4.tgz", + "integrity": "sha512-9ApYM/3+rBt9V80aYg6tZfzj3UWdiYyCt7gJUD1VJKvWF5nwKDSICXbYIQbspFTq6TOpbsEtIC0LArB8d9PFmg==", + "dev": true, + "dependencies": { + "@npmcli/node-gyp": "^3.0.0", + "@npmcli/package-json": "^5.0.0", + "@npmcli/promise-spawn": "^7.0.0", + "node-gyp": "^10.0.0", + "which": "^4.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/run-script/node_modules/isexe": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", + "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", + "dev": true, + "engines": { + "node": ">=16" + } + }, + "node_modules/@npmcli/run-script/node_modules/which": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", + "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", + "dev": true, + "dependencies": { + "isexe": "^3.1.1" + }, + "bin": { + "node-which": "bin/which.js" + }, + "engines": { + "node": "^16.13.0 || >=18.0.0" + } + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "dev": true, + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.17.2.tgz", + "integrity": "sha512-NM0jFxY8bB8QLkoKxIQeObCaDlJKewVlIEkuyYKm5An1tdVZ966w2+MPQ2l8LBZLjR+SgyV+nRkTIunzOYBMLQ==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.17.2.tgz", + "integrity": "sha512-yeX/Usk7daNIVwkq2uGoq2BYJKZY1JfyLTaHO/jaiSwi/lsf8fTFoQW/n6IdAsx5tx+iotu2zCJwz8MxI6D/Bw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.17.2.tgz", + "integrity": "sha512-kcMLpE6uCwls023+kknm71ug7MZOrtXo+y5p/tsg6jltpDtgQY1Eq5sGfHcQfb+lfuKwhBmEURDga9N0ol4YPw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.17.2.tgz", + "integrity": "sha512-AtKwD0VEx0zWkL0ZjixEkp5tbNLzX+FCqGG1SvOu993HnSz4qDI6S4kGzubrEJAljpVkhRSlg5bzpV//E6ysTQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.17.2.tgz", + "integrity": "sha512-3reX2fUHqN7sffBNqmEyMQVj/CKhIHZd4y631duy0hZqI8Qoqf6lTtmAKvJFYa6bhU95B1D0WgzHkmTg33In0A==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.17.2.tgz", + "integrity": "sha512-uSqpsp91mheRgw96xtyAGP9FW5ChctTFEoXP0r5FAzj/3ZRv3Uxjtc7taRQSaQM/q85KEKjKsZuiZM3GyUivRg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.17.2.tgz", + "integrity": "sha512-EMMPHkiCRtE8Wdk3Qhtciq6BndLtstqZIroHiiGzB3C5LDJmIZcSzVtLRbwuXuUft1Cnv+9fxuDtDxz3k3EW2A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.17.2.tgz", + "integrity": "sha512-NMPylUUZ1i0z/xJUIx6VUhISZDRT+uTWpBcjdv0/zkp7b/bQDF+NfnfdzuTiB1G6HTodgoFa93hp0O1xl+/UbA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.17.2.tgz", + "integrity": "sha512-T19My13y8uYXPw/L/k0JYaX1fJKFT/PWdXiHr8mTbXWxjVF1t+8Xl31DgBBvEKclw+1b00Chg0hxE2O7bTG7GQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.17.2.tgz", + "integrity": "sha512-BOaNfthf3X3fOWAB+IJ9kxTgPmMqPPH5f5k2DcCsRrBIbWnaJCgX2ll77dV1TdSy9SaXTR5iDXRL8n7AnoP5cg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.17.2.tgz", + "integrity": "sha512-W0UP/x7bnn3xN2eYMql2T/+wpASLE5SjObXILTMPUBDB/Fg/FxC+gX4nvCfPBCbNhz51C+HcqQp2qQ4u25ok6g==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.17.2.tgz", + "integrity": "sha512-Hy7pLwByUOuyaFC6mAr7m+oMC+V7qyifzs/nW2OJfC8H4hbCzOX07Ov0VFk/zP3kBsELWNFi7rJtgbKYsav9QQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.17.2.tgz", + "integrity": "sha512-h1+yTWeYbRdAyJ/jMiVw0l6fOOm/0D1vNLui9iPuqgRGnXA0u21gAqOyB5iHjlM9MMfNOm9RHCQ7zLIzT0x11Q==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.17.2.tgz", + "integrity": "sha512-tmdtXMfKAjy5+IQsVtDiCfqbynAQE/TQRpWdVataHmhMb9DCoJxp9vLcCBjEQWMiUYxO1QprH/HbY9ragCEFLA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.17.2.tgz", + "integrity": "sha512-7II/QCSTAHuE5vdZaQEwJq2ZACkBpQDOmQsE6D6XUbnBHW8IAhm4eTufL6msLJorzrHDFv3CF8oCA/hSIRuZeQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.17.2.tgz", + "integrity": "sha512-TGGO7v7qOq4CYmSBVEYpI1Y5xDuCEnbVC5Vth8mOsW0gDSzxNrVERPc790IGHsrT2dQSimgMr9Ub3Y1Jci5/8w==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@schematics/angular": { + "version": "17.3.6", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-17.3.6.tgz", + "integrity": "sha512-jCNZdjHSVrI8TrrCnCoXC8GYvQRj7zh+SDdmm91Ve8dbikYNmBOKYLuPaCTsmojWx7ytv962yLlgKzpaa2bbfw==", + "dev": true, + "dependencies": { + "@angular-devkit/core": "17.3.6", + "@angular-devkit/schematics": "17.3.6", + "jsonc-parser": "3.2.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/@sigstore/bundle": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@sigstore/bundle/-/bundle-2.3.1.tgz", + "integrity": "sha512-eqV17lO3EIFqCWK3969Rz+J8MYrRZKw9IBHpSo6DEcEX2c+uzDFOgHE9f2MnyDpfs48LFO4hXmk9KhQ74JzU1g==", + "dev": true, + "dependencies": { + "@sigstore/protobuf-specs": "^0.3.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@sigstore/core": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@sigstore/core/-/core-1.1.0.tgz", + "integrity": "sha512-JzBqdVIyqm2FRQCulY6nbQzMpJJpSiJ8XXWMhtOX9eKgaXXpfNOF53lzQEjIydlStnd/eFtuC1dW4VYdD93oRg==", + "dev": true, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@sigstore/protobuf-specs": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@sigstore/protobuf-specs/-/protobuf-specs-0.3.1.tgz", + "integrity": "sha512-aIL8Z9NsMr3C64jyQzE0XlkEyBLpgEJJFDHLVVStkFV5Q3Il/r/YtY6NJWKQ4cy4AE7spP1IX5Jq7VCAxHHMfQ==", + "dev": true, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@sigstore/sign": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@sigstore/sign/-/sign-2.3.0.tgz", + "integrity": "sha512-tsAyV6FC3R3pHmKS880IXcDJuiFJiKITO1jxR1qbplcsBkZLBmjrEw5GbC7ikD6f5RU1hr7WnmxB/2kKc1qUWQ==", + "dev": true, + "dependencies": { + "@sigstore/bundle": "^2.3.0", + "@sigstore/core": "^1.0.0", + "@sigstore/protobuf-specs": "^0.3.1", + "make-fetch-happen": "^13.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@sigstore/tuf": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/@sigstore/tuf/-/tuf-2.3.2.tgz", + "integrity": "sha512-mwbY1VrEGU4CO55t+Kl6I7WZzIl+ysSzEYdA1Nv/FTrl2bkeaPXo5PnWZAVfcY2zSdhOpsUTJW67/M2zHXGn5w==", + "dev": true, + "dependencies": { + "@sigstore/protobuf-specs": "^0.3.0", + "tuf-js": "^2.2.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@sigstore/verify": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@sigstore/verify/-/verify-1.2.0.tgz", + "integrity": "sha512-hQF60nc9yab+Csi4AyoAmilGNfpXT+EXdBgFkP9OgPwIBPwyqVf7JAWPtmqrrrneTmAT6ojv7OlH1f6Ix5BG4Q==", + "dev": true, + "dependencies": { + "@sigstore/bundle": "^2.3.1", + "@sigstore/core": "^1.1.0", + "@sigstore/protobuf-specs": "^0.3.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@socket.io/component-emitter": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.2.tgz", + "integrity": "sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==", + "dev": true + }, + "node_modules/@tufjs/canonical-json": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tufjs/canonical-json/-/canonical-json-2.0.0.tgz", + "integrity": "sha512-yVtV8zsdo8qFHe+/3kw81dSLyF7D576A5cCFCi4X7B39tWT7SekaEFUnvnWJHz+9qO7qJTah1JbrDjWKqFtdWA==", + "dev": true, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@tufjs/models": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tufjs/models/-/models-2.0.0.tgz", + "integrity": "sha512-c8nj8BaOExmZKO2DXhDfegyhSGcG9E/mPN3U13L+/PsoWm1uaGiHHjxqSHQiasDBQwDA3aHuw9+9spYAP1qvvg==", + "dev": true, + "dependencies": { + "@tufjs/canonical-json": "2.0.0", + "minimatch": "^9.0.3" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@tufjs/models/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@tufjs/models/node_modules/minimatch": { + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", + "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@types/body-parser": { + "version": "1.19.5", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz", + "integrity": "sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==", + "dev": true, + "dependencies": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "node_modules/@types/bonjour": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.13.tgz", + "integrity": "sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/connect": { + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", + "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/connect-history-api-fallback": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.4.tgz", + "integrity": "sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==", + "dev": true, + "dependencies": { + "@types/express-serve-static-core": "*", + "@types/node": "*" + } + }, + "node_modules/@types/cookie": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz", + "integrity": "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==", + "dev": true + }, + "node_modules/@types/cors": { + "version": "2.8.17", + "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.17.tgz", + "integrity": "sha512-8CGDvrBj1zgo2qE+oS3pOCyYNqCPryMWY2bGfwA0dcfopWGgxs+78df0Rs3rc9THP4JkOhLsAa+15VdpAqkcUA==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/eslint": { + "version": "8.56.10", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.10.tgz", + "integrity": "sha512-Shavhk87gCtY2fhXDctcfS3e6FdxWkCx1iUZ9eEUbh7rTqlZT0/IzOkCOVt0fCjcFuZ9FPYfuezTBImfHCDBGQ==", + "dev": true, + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "node_modules/@types/eslint-scope": { + "version": "3.7.7", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", + "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", + "dev": true, + "dependencies": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "node_modules/@types/estree": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", + "dev": true + }, + "node_modules/@types/express": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz", + "integrity": "sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==", + "dev": true, + "dependencies": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.33", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, + "node_modules/@types/express-serve-static-core": { + "version": "4.19.0", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.0.tgz", + "integrity": "sha512-bGyep3JqPCRry1wq+O5n7oiBgGWmeIJXPjXXCo8EK0u8duZGSYar7cGqd3ML2JUsLGeB7fmc06KYo9fLGWqPvQ==", + "dev": true, + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*", + "@types/send": "*" + } + }, + "node_modules/@types/http-errors": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz", + "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==", + "dev": true + }, + "node_modules/@types/http-proxy": { + "version": "1.17.14", + "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.14.tgz", + "integrity": "sha512-SSrD0c1OQzlFX7pGu1eXxSEjemej64aaNPRhhVYUGqXh0BtldAAx37MG8btcumvpgKyZp1F5Gn3JkktdxiFv6w==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/jasmine": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-5.1.4.tgz", + "integrity": "sha512-px7OMFO/ncXxixDe1zR13V1iycqWae0MxTaw62RpFlksUi5QuNWgQJFkTQjIOvrmutJbI7Fp2Y2N1F6D2R4G6w==", + "dev": true + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true + }, + "node_modules/@types/mime": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", + "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==", + "dev": true + }, + "node_modules/@types/node": { + "version": "20.12.8", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.8.tgz", + "integrity": "sha512-NU0rJLJnshZWdE/097cdCBbyW1h4hEg0xpovcoAQYHl8dnEyp/NAOiE45pvc+Bd1Dt+2r94v2eGFpQJ4R7g+2w==", + "dev": true, + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/@types/node-forge": { + "version": "1.3.11", + "resolved": "https://registry.npmjs.org/@types/node-forge/-/node-forge-1.3.11.tgz", + "integrity": "sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/qs": { + "version": "6.9.15", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.15.tgz", + "integrity": "sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg==", + "dev": true + }, + "node_modules/@types/range-parser": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", + "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==", + "dev": true + }, + "node_modules/@types/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==", + "dev": true + }, + "node_modules/@types/send": { + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz", + "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==", + "dev": true, + "dependencies": { + "@types/mime": "^1", + "@types/node": "*" + } + }, + "node_modules/@types/serve-index": { + "version": "1.9.4", + "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.4.tgz", + "integrity": "sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==", + "dev": true, + "dependencies": { + "@types/express": "*" + } + }, + "node_modules/@types/serve-static": { + "version": "1.15.7", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.7.tgz", + "integrity": "sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==", + "dev": true, + "dependencies": { + "@types/http-errors": "*", + "@types/node": "*", + "@types/send": "*" + } + }, + "node_modules/@types/sockjs": { + "version": "0.3.36", + "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.36.tgz", + "integrity": "sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/ws": { + "version": "8.5.10", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.10.tgz", + "integrity": "sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@vitejs/plugin-basic-ssl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-basic-ssl/-/plugin-basic-ssl-1.1.0.tgz", + "integrity": "sha512-wO4Dk/rm8u7RNhOf95ZzcEmC9rYOncYgvq4z3duaJrCgjN8BxAnDVyndanfcJZ0O6XZzHz6Q0hTimxTg8Y9g/A==", + "dev": true, + "engines": { + "node": ">=14.6.0" + }, + "peerDependencies": { + "vite": "^3.0.0 || ^4.0.0 || ^5.0.0" + } + }, + "node_modules/@webassemblyjs/ast": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.12.1.tgz", + "integrity": "sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==", + "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.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.12.1.tgz", + "integrity": "sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==", + "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.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.12.1.tgz", + "integrity": "sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-buffer": "1.12.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/wasm-gen": "1.12.1" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", + "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", + "dev": true, + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/leb128": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", + "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", + "dev": true, + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/utf8": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", + "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==", + "dev": true + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.12.1.tgz", + "integrity": "sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-buffer": "1.12.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/helper-wasm-section": "1.12.1", + "@webassemblyjs/wasm-gen": "1.12.1", + "@webassemblyjs/wasm-opt": "1.12.1", + "@webassemblyjs/wasm-parser": "1.12.1", + "@webassemblyjs/wast-printer": "1.12.1" + } + }, + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.12.1.tgz", + "integrity": "sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.12.1.tgz", + "integrity": "sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-buffer": "1.12.1", + "@webassemblyjs/wasm-gen": "1.12.1", + "@webassemblyjs/wasm-parser": "1.12.1" + } + }, + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.12.1.tgz", + "integrity": "sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-api-error": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.12.1.tgz", + "integrity": "sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true + }, + "node_modules/@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true + }, + "node_modules/@yarnpkg/lockfile": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz", + "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==", + "dev": true + }, + "node_modules/abbrev": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-2.0.0.tgz", + "integrity": "sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dev": true, + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "8.11.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", + "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-import-assertions": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz", + "integrity": "sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==", + "dev": true, + "peerDependencies": { + "acorn": "^8" + } + }, + "node_modules/adjust-sourcemap-loader": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-4.0.0.tgz", + "integrity": "sha512-OXwN5b9pCUXNQHJpwwD2qP40byEmSgzj8B4ydSN0uMNYWiFmJ6x6KwUllMmfk8Rwu/HJDFR7U8ubsWBoN0Xp0A==", + "dev": true, + "dependencies": { + "loader-utils": "^2.0.0", + "regex-parser": "^2.2.11" + }, + "engines": { + "node": ">=8.9" + } + }, + "node_modules/adjust-sourcemap-loader/node_modules/loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "dev": true, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/agent-base": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", + "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", + "dev": true, + "dependencies": { + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dev": true, + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "dev": true, + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/ansi-colors": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-html-community": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", + "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==", + "dev": true, + "engines": [ + "node >= 0.8.0" + ], + "bin": { + "ansi-html": "bin/ansi-html" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/anymatch/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", + "dev": true + }, + "node_modules/autoprefixer": { + "version": "10.4.18", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.18.tgz", + "integrity": "sha512-1DKbDfsr6KUElM6wg+0zRNkB/Q7WcKYAaK+pzXn+Xqmszm/5Xa9coeNdtP88Vi+dPzZnMjhge8GIV49ZQkDa+g==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "browserslist": "^4.23.0", + "caniuse-lite": "^1.0.30001591", + "fraction.js": "^4.3.7", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.0", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/babel-loader": { + "version": "9.1.3", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-9.1.3.tgz", + "integrity": "sha512-xG3ST4DglodGf8qSwv0MdeWLhrDsw/32QMdTO5T1ZIp9gQur0HkCyFs7Awskr10JKXFXwpAhiCuYX5oGXnRGbw==", + "dev": true, + "dependencies": { + "find-cache-dir": "^4.0.0", + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 14.15.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0", + "webpack": ">=5" + } + }, + "node_modules/babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.4.11", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.11.tgz", + "integrity": "sha512-sMEJ27L0gRHShOh5G54uAAPaiCOygY/5ratXuiyb2G46FmlSpc9eFCzYVyDiPxfNbwzA7mYahmjQc5q+CZQ09Q==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.22.6", + "@babel/helper-define-polyfill-provider": "^0.6.2", + "semver": "^6.3.1" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.9.0.tgz", + "integrity": "sha512-7nZPG1uzK2Ymhy/NbaOWTg3uibM2BmGASS4vHS4szRZAIR8R6GwA/xAujpdrXU5iyklrimWnLWU+BLF9suPTqg==", + "dev": true, + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.5.0", + "core-js-compat": "^3.34.0" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs3/node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.5.0.tgz", + "integrity": "sha512-NovQquuQLAQ5HuyjCz7WQP9MjRj7dx++yspwiyUiGl9ZyadHRSql1HZh5ogRd8W8w6YM6EQ/NTB8rgjLt5W65Q==", + "dev": true, + "dependencies": { + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-plugin-utils": "^7.22.5", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.5.tgz", + "integrity": "sha512-OJGYZlhLqBh2DDHeqAxWB1XIvr49CxiJ2gIt61/PU55CQK4Z58OzMqjDe1zwQdQk+rBYsRc+1rJmdajM3gimHg==", + "dev": true, + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.5.0" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-regenerator/node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.5.0.tgz", + "integrity": "sha512-NovQquuQLAQ5HuyjCz7WQP9MjRj7dx++yspwiyUiGl9ZyadHRSql1HZh5ogRd8W8w6YM6EQ/NTB8rgjLt5W65Q==", + "dev": true, + "dependencies": { + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-plugin-utils": "^7.22.5", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/base64id": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz", + "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==", + "dev": true, + "engines": { + "node": "^4.5.0 || >= 5.9" + } + }, + "node_modules/batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==", + "dev": true + }, + "node_modules/big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dev": true, + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "node_modules/body-parser": { + "version": "1.20.2", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", + "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", + "dev": true, + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.5", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.2", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/body-parser/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/body-parser/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/bonjour-service": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.2.1.tgz", + "integrity": "sha512-oSzCS2zV14bh2kji6vNe7vrpJYCHGvcZnlffFQ1MEoX/WOeQ/teD8SYWKR942OI3INjq8OMNJlbPK5LLLUxFDw==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.3", + "multicast-dns": "^7.2.5" + } + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", + "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001587", + "electron-to-chromium": "^1.4.668", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.0.13" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "node_modules/builtins": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.1.0.tgz", + "integrity": "sha512-SW9lzGTLvWTP1AY8xeAMZimqDrIaSdLQUcVr9DMef51niJ022Ri87SwRRKYm4A6iHfkPaiVUu/Duw2Wc4J7kKg==", + "dev": true, + "dependencies": { + "semver": "^7.0.0" + } + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/cacache": { + "version": "18.0.2", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-18.0.2.tgz", + "integrity": "sha512-r3NU8h/P+4lVUHfeRw1dtgQYar3DZMm4/cm2bZgOvrFC/su7budSOeqh52VJIC4U4iG1WWwV6vRW0znqBvxNuw==", + "dev": true, + "dependencies": { + "@npmcli/fs": "^3.1.0", + "fs-minipass": "^3.0.0", + "glob": "^10.2.2", + "lru-cache": "^10.0.1", + "minipass": "^7.0.3", + "minipass-collect": "^2.0.1", + "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": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/cacache/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/cacache/node_modules/glob": { + "version": "10.3.12", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.12.tgz", + "integrity": "sha512-TCNv8vJ+xz4QiqTpfOJA7HvYv+tNIRHKfUWw/q+v2jdgN4ebz+KY9tGx5J4rHP0o84mNP+ApH66HRX8us3Khqg==", + "dev": true, + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^2.3.6", + "minimatch": "^9.0.1", + "minipass": "^7.0.4", + "path-scurry": "^1.10.2" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/cacache/node_modules/lru-cache": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz", + "integrity": "sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==", + "dev": true, + "engines": { + "node": "14 || >=16.14" + } + }, + "node_modules/cacache/node_modules/minimatch": { + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", + "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/call-bind": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "dev": true, + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001615", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001615.tgz", + "integrity": "sha512-1IpazM5G3r38meiae0bHRnPhz+CBQ3ZLqbQMtrg+AsTPKAXgW38JNsXkyZ+v8waCsDmPq87lmfun5Q2AGysNEQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "dev": true + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dev": true, + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/chrome-trace-event": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", + "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", + "dev": true, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "dependencies": { + "restore-cursor": "^3.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-spinners": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz", + "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-width": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-4.1.0.tgz", + "integrity": "sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==", + "dev": true, + "engines": { + "node": ">= 12" + } + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/cliui/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/cliui/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/cliui/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/cliui/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "dev": true, + "dependencies": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/colorette": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", + "dev": true + }, + "node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "node_modules/common-path-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-3.0.0.tgz", + "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==", + "dev": true + }, + "node_modules/compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "dev": true, + "dependencies": { + "mime-db": ">= 1.43.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/compression": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", + "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", + "dev": true, + "dependencies": { + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.16", + "debug": "2.6.9", + "on-headers": "~1.0.2", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/compression/node_modules/bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/compression/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/compression/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/compression/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/connect": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz", + "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "finalhandler": "1.1.2", + "parseurl": "~1.3.3", + "utils-merge": "1.0.1" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/connect-history-api-fallback": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz", + "integrity": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/connect/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/connect/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "dev": true, + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true + }, + "node_modules/cookie": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", + "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", + "dev": true + }, + "node_modules/copy-anything": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-2.0.6.tgz", + "integrity": "sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==", + "dev": true, + "dependencies": { + "is-what": "^3.14.1" + }, + "funding": { + "url": "https://github.com/sponsors/mesqueeb" + } + }, + "node_modules/copy-webpack-plugin": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-11.0.0.tgz", + "integrity": "sha512-fX2MWpamkW0hZxMEg0+mYnA40LTosOSa5TqZ9GYIBzyJa9C3QUaMPSE2xAi/buNr8u89SfD9wHSQVBzrRa/SOQ==", + "dev": true, + "dependencies": { + "fast-glob": "^3.2.11", + "glob-parent": "^6.0.1", + "globby": "^13.1.1", + "normalize-path": "^3.0.0", + "schema-utils": "^4.0.0", + "serialize-javascript": "^6.0.0" + }, + "engines": { + "node": ">= 14.15.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + } + }, + "node_modules/copy-webpack-plugin/node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/core-js-compat": { + "version": "3.37.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.37.0.tgz", + "integrity": "sha512-vYq4L+T8aS5UuFg4UwDhc7YNRWVeVZwltad9C/jV3R2LgVOpS9BDr7l/WL6BN0dbV3k1XejPTHqqEzJgsa0frA==", + "dev": true, + "dependencies": { + "browserslist": "^4.23.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true + }, + "node_modules/cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "dev": true, + "dependencies": { + "object-assign": "^4", + "vary": "^1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/cosmiconfig": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz", + "integrity": "sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==", + "dev": true, + "dependencies": { + "env-paths": "^2.2.1", + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + }, + "peerDependencies": { + "typescript": ">=4.9.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/cosmiconfig/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/cosmiconfig/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/critters": { + "version": "0.0.22", + "resolved": "https://registry.npmjs.org/critters/-/critters-0.0.22.tgz", + "integrity": "sha512-NU7DEcQZM2Dy8XTKFHxtdnIM/drE312j2T4PCVaSUcS0oBeyT/NImpRw/Ap0zOr/1SE7SgPK9tGPg1WK/sVakw==", + "dev": true, + "dependencies": { + "chalk": "^4.1.0", + "css-select": "^5.1.0", + "dom-serializer": "^2.0.0", + "domhandler": "^5.0.2", + "htmlparser2": "^8.0.2", + "postcss": "^8.4.23", + "postcss-media-query-parser": "^0.2.3" + } + }, + "node_modules/critters/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/critters/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/critters/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/critters/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/critters/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/critters/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/cross-spawn/node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/css-loader": { + "version": "6.10.0", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.10.0.tgz", + "integrity": "sha512-LTSA/jWbwdMlk+rhmElbDR2vbtQoTBPr7fkJE+mxrHj+7ru0hUmHafDRzWIjIHTwpitWVaqY2/UWGRca3yUgRw==", + "dev": true, + "dependencies": { + "icss-utils": "^5.1.0", + "postcss": "^8.4.33", + "postcss-modules-extract-imports": "^3.0.0", + "postcss-modules-local-by-default": "^4.0.4", + "postcss-modules-scope": "^3.1.1", + "postcss-modules-values": "^4.0.0", + "postcss-value-parser": "^4.2.0", + "semver": "^7.5.4" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "@rspack/core": "0.x || 1.x", + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "@rspack/core": { + "optional": true + }, + "webpack": { + "optional": true + } + } + }, + "node_modules/css-select": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", + "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", + "dev": true, + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "dev": true, + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/custom-event": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz", + "integrity": "sha512-GAj5FOq0Hd+RsCGVJxZuKaIDXDf3h6GQoNEjFgbLLI/trgtavwUbSnZ5pVfg27DVCaWjIohryS0JFwIJyT2cMg==", + "dev": true + }, + "node_modules/date-format": { + "version": "4.0.14", + "resolved": "https://registry.npmjs.org/date-format/-/date-format-4.0.14.tgz", + "integrity": "sha512-39BOQLs9ZjKh0/patS9nrT8wc3ioX3/eA/zgbKNopnF2wCqJEoxywwwElATYvRsXdnOxA/OQeQoFZ3rFjVajhg==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/default-gateway": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", + "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", + "dev": true, + "dependencies": { + "execa": "^5.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/defaults": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", + "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", + "dev": true, + "dependencies": { + "clone": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dev": true, + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "dev": true, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", + "dev": true + }, + "node_modules/di": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/di/-/di-0.0.1.tgz", + "integrity": "sha512-uJaamHkagcZtHPqCIHZxnFrXlunQXgBOsZSUOWwFw31QJCAbyTBoHMW75YOTur5ZNx8pIeAKgf6GWIgaqqiLhA==", + "dev": true + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dns-packet": { + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.6.1.tgz", + "integrity": "sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==", + "dev": true, + "dependencies": { + "@leichtgewicht/ip-codec": "^2.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/dom-serialize": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/dom-serialize/-/dom-serialize-2.2.1.tgz", + "integrity": "sha512-Yra4DbvoW7/Z6LBN560ZwXMjoNOSAN2wRsKFGc4iBeso+mpIA6qj1vfdf9HpMaKAqG6wXTy+1SYEzmNpKXOSsQ==", + "dev": true, + "dependencies": { + "custom-event": "~1.0.0", + "ent": "~2.2.0", + "extend": "^3.0.0", + "void-elements": "^2.0.0" + } + }, + "node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "dev": true, + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ] + }, + "node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "dev": true, + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", + "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", + "dev": true, + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "dev": true + }, + "node_modules/electron-to-chromium": { + "version": "1.4.754", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.754.tgz", + "integrity": "sha512-7Kr5jUdns5rL/M9wFFmMZAgFDuL2YOnanFH4OI4iFzUqyh3XOL7nAGbSlSMZdzKMIyyTpNSbqZsWG9odwLeKvA==", + "dev": true + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/encoding": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "dev": true, + "optional": true, + "dependencies": { + "iconv-lite": "^0.6.2" + } + }, + "node_modules/encoding/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "optional": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/engine.io": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.5.4.tgz", + "integrity": "sha512-KdVSDKhVKyOi+r5uEabrDLZw2qXStVvCsEB/LN3mw4WFi6Gx50jTyuxYVCwAAC0U46FdnzP/ScKRBTXb/NiEOg==", + "dev": true, + "dependencies": { + "@types/cookie": "^0.4.1", + "@types/cors": "^2.8.12", + "@types/node": ">=10.0.0", + "accepts": "~1.3.4", + "base64id": "2.0.0", + "cookie": "~0.4.1", + "cors": "~2.8.5", + "debug": "~4.3.1", + "engine.io-parser": "~5.2.1", + "ws": "~8.11.0" + }, + "engines": { + "node": ">=10.2.0" + } + }, + "node_modules/engine.io-parser": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.2.2.tgz", + "integrity": "sha512-RcyUFKA93/CXH20l4SoVvzZfrSDMOTUS3bWVpTt2FuFP+XYrL8i8oonHP7WInRyVHXh0n/ORtoeiE1os+8qkSw==", + "dev": true, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/enhanced-resolve": { + "version": "5.16.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.16.0.tgz", + "integrity": "sha512-O+QWCviPNSSLAD9Ucn8Awv+poAkqn3T1XY5/N7kR7rQO9yfSGWkYZDwpJ+iKF7B8rxaQKWngSqACpgzeapSyoA==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/ent": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz", + "integrity": "sha512-GHrMyVZQWvTIdDtpiEXdHZnFQKzeO09apj8Cbl4pKWy4i0Oprcq17usfDt5aO63swf0JOeMWjWQE/LzgSRuWpA==", + "dev": true + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "dev": true, + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/err-code": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", + "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", + "dev": true + }, + "node_modules/errno": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", + "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", + "dev": true, + "optional": true, + "dependencies": { + "prr": "~1.0.1" + }, + "bin": { + "errno": "cli.js" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-module-lexer": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.2.tgz", + "integrity": "sha512-l60ETUTmLqbVbVHv1J4/qj+M8nq7AwMzEcg3kmJDt9dCNrTk+yHcYFf/Kw75pMDwd9mPcIGCG5LcS20SxYRzFA==", + "dev": true + }, + "node_modules/esbuild": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.20.1.tgz", + "integrity": "sha512-OJwEgrpWm/PCMsLVWXKqvcjme3bHNpOgN7Tb6cQnR5n0TPbQx1/Xrn7rqM+wn17bYeT6MGB5sn1Bh5YiGi70nA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.20.1", + "@esbuild/android-arm": "0.20.1", + "@esbuild/android-arm64": "0.20.1", + "@esbuild/android-x64": "0.20.1", + "@esbuild/darwin-arm64": "0.20.1", + "@esbuild/darwin-x64": "0.20.1", + "@esbuild/freebsd-arm64": "0.20.1", + "@esbuild/freebsd-x64": "0.20.1", + "@esbuild/linux-arm": "0.20.1", + "@esbuild/linux-arm64": "0.20.1", + "@esbuild/linux-ia32": "0.20.1", + "@esbuild/linux-loong64": "0.20.1", + "@esbuild/linux-mips64el": "0.20.1", + "@esbuild/linux-ppc64": "0.20.1", + "@esbuild/linux-riscv64": "0.20.1", + "@esbuild/linux-s390x": "0.20.1", + "@esbuild/linux-x64": "0.20.1", + "@esbuild/netbsd-x64": "0.20.1", + "@esbuild/openbsd-x64": "0.20.1", + "@esbuild/sunos-x64": "0.20.1", + "@esbuild/win32-arm64": "0.20.1", + "@esbuild/win32-ia32": "0.20.1", + "@esbuild/win32-x64": "0.20.1" + } + }, + "node_modules/esbuild-wasm": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/esbuild-wasm/-/esbuild-wasm-0.20.1.tgz", + "integrity": "sha512-6v/WJubRsjxBbQdz6izgvx7LsVFvVaGmSdwrFHmEzoVgfXL89hkKPoQHsnVI2ngOkcBUQT9kmAM1hVL1k/Av4A==", + "dev": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/escalade": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "dev": true + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "dev": true + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true, + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/exponential-backoff": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.1.tgz", + "integrity": "sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==", + "dev": true + }, + "node_modules/express": { + "version": "4.19.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.19.2.tgz", + "integrity": "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==", + "dev": true, + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.2", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.6.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.11.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/express/node_modules/cookie": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/express/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/express/node_modules/finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/express/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/express/node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, + "node_modules/external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "dev": true, + "dependencies": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/faye-websocket": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", + "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", + "dev": true, + "dependencies": { + "websocket-driver": ">=0.5.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^1.0.5" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/finalhandler/node_modules/on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==", + "dev": true, + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/find-cache-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-4.0.0.tgz", + "integrity": "sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg==", + "dev": true, + "dependencies": { + "common-path-prefix": "^3.0.0", + "pkg-dir": "^7.0.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/flat": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "dev": true, + "bin": { + "flat": "cli.js" + } + }, + "node_modules/flatted": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", + "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", + "dev": true + }, + "node_modules/follow-redirects": { + "version": "1.15.6", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", + "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/foreground-child": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", + "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/foreground-child/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fraction.js": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", + "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", + "dev": true, + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://github.com/sponsors/rawify" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/fs-minipass": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.3.tgz", + "integrity": "sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==", + "dev": true, + "dependencies": { + "minipass": "^7.0.3" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/fs-monkey": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.6.tgz", + "integrity": "sha512-b1FMfwetIKymC0eioW7mTywihSQE4oLzQn1dB6rZB5fx/3NpNEdAWeCSMB+60/AeT0TCXsxzAlcYVEFCTAksWg==", + "dev": true + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "dev": true, + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "dev": true, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "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/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "dev": true + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/globby": { + "version": "13.2.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-13.2.2.tgz", + "integrity": "sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==", + "dev": true, + "dependencies": { + "dir-glob": "^3.0.1", + "fast-glob": "^3.3.0", + "ignore": "^5.2.4", + "merge2": "^1.4.1", + "slash": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true + }, + "node_modules/handle-thing": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", + "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", + "dev": true + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dev": true, + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/hosted-git-info": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.1.tgz", + "integrity": "sha512-+K84LB1DYwMHoHSgaOY/Jfhw3ucPmSET5v98Ke/HdNSw4a0UktWzyW1mjhjpuxxTqOOsfWT/7iVshHmVZ4IpOA==", + "dev": true, + "dependencies": { + "lru-cache": "^10.0.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/hosted-git-info/node_modules/lru-cache": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz", + "integrity": "sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==", + "dev": true, + "engines": { + "node": "14 || >=16.14" + } + }, + "node_modules/hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" + } + }, + "node_modules/hpack.js/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/hpack.js/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/hpack.js/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/html-entities": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.5.2.tgz", + "integrity": "sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/mdevils" + }, + { + "type": "patreon", + "url": "https://patreon.com/mdevils" + } + ] + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, + "node_modules/htmlparser2": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz", + "integrity": "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==", + "dev": true, + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1", + "entities": "^4.4.0" + } + }, + "node_modules/http-cache-semantics": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", + "dev": true + }, + "node_modules/http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==", + "dev": true + }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dev": true, + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-errors/node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-parser-js": { + "version": "0.5.8", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz", + "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==", + "dev": true + }, + "node_modules/http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "dev": true, + "dependencies": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/http-proxy-agent": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", + "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", + "dev": true, + "dependencies": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/http-proxy-middleware": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz", + "integrity": "sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==", + "dev": true, + "dependencies": { + "@types/http-proxy": "^1.17.8", + "http-proxy": "^1.18.1", + "is-glob": "^4.0.1", + "is-plain-obj": "^3.0.0", + "micromatch": "^4.0.2" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "@types/express": "^4.17.13" + }, + "peerDependenciesMeta": { + "@types/express": { + "optional": true + } + } + }, + "node_modules/https-proxy-agent": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.4.tgz", + "integrity": "sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==", + "dev": true, + "dependencies": { + "agent-base": "^7.0.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/icss-utils": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", + "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/ignore": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", + "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/ignore-walk": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-6.0.4.tgz", + "integrity": "sha512-t7sv42WkwFkyKbivUCglsQW5YWMskWtbEf4MNKX5u/CCWHKSPzN4FtBQGsQZgCLbxOzpVlcbWVK5KB3auIOjSw==", + "dev": true, + "dependencies": { + "minimatch": "^9.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/ignore-walk/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/ignore-walk/node_modules/minimatch": { + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", + "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/image-size": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", + "integrity": "sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==", + "dev": true, + "optional": true, + "bin": { + "image-size": "bin/image-size.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/immutable": { + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.5.tgz", + "integrity": "sha512-8eabxkth9gZatlwl5TBuJnCsoTADlL6ftEr7A4qgdaTsPyreilDSnUk57SO+jfKcNtxPa22U5KK6DSeAYhpBJw==", + "dev": true + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-fresh/node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/ini": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.2.tgz", + "integrity": "sha512-AMB1mvwR1pyBFY/nSevUX6y8nJWS63/SzUKD3JyQn97s4xgIdgQPT75IRouIiBAN4yLQBUShNYVW0+UG25daCw==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/inquirer": { + "version": "9.2.15", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-9.2.15.tgz", + "integrity": "sha512-vI2w4zl/mDluHt9YEQ/543VTCwPKWiHzKtm9dM2V0NdFcqEexDAjUHzO1oA60HRNaVifGXXM1tRRNluLVHa0Kg==", + "dev": true, + "dependencies": { + "@ljharb/through": "^2.3.12", + "ansi-escapes": "^4.3.2", + "chalk": "^5.3.0", + "cli-cursor": "^3.1.0", + "cli-width": "^4.1.0", + "external-editor": "^3.1.0", + "figures": "^3.2.0", + "lodash": "^4.17.21", + "mute-stream": "1.0.0", + "ora": "^5.4.1", + "run-async": "^3.0.0", + "rxjs": "^7.8.1", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^6.2.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/inquirer/node_modules/chalk": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", + "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", + "dev": true, + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/ip-address": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-9.0.5.tgz", + "integrity": "sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==", + "dev": true, + "dependencies": { + "jsbn": "1.1.0", + "sprintf-js": "^1.1.3" + }, + "engines": { + "node": ">= 12" + } + }, + "node_modules/ip-address/node_modules/sprintf-js": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", + "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", + "dev": true + }, + "node_modules/ipaddr.js": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.2.0.tgz", + "integrity": "sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-core-module": { + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "dev": true, + "dependencies": { + "hasown": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "dev": true, + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-interactive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-lambda": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", + "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==", + "dev": true + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-plain-obj": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", + "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-what": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/is-what/-/is-what-3.14.1.tgz", + "integrity": "sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==", + "dev": true + }, + "node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "node_modules/isbinaryfile": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.10.tgz", + "integrity": "sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==", + "dev": true, + "engines": { + "node": ">= 8.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/gjtorikian/" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", + "dev": true, + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/istanbul-lib-report": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", + "dev": true, + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^4.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-report/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-source-maps/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/istanbul-reports": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz", + "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==", + "dev": true, + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jackspeak": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", + "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", + "dev": true, + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/jasmine-core": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-5.1.2.tgz", + "integrity": "sha512-2oIUMGn00FdUiqz6epiiJr7xcFyNYj3rDcfmnzfkBnHyBQ3cBQUs4mmyGsOb7TTLb9kxk7dBcmEmqhDKkBoDyA==", + "dev": true + }, + "node_modules/jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dev": true, + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/jest-worker/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/jiti": { + "version": "1.21.0", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.0.tgz", + "integrity": "sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==", + "dev": true, + "bin": { + "jiti": "bin/jiti.js" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsbn": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz", + "integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==", + "dev": true + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-parse-even-better-errors": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.1.tgz", + "integrity": "sha512-aatBvbL26wVUCLmbWdCpeu9iF5wOyWpagiKkInA+kfws3sWdBrTnsvN2CKcyCYyUrc7rebNBlK6+kteg7ksecg==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonc-parser": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.1.tgz", + "integrity": "sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==", + "dev": true + }, + "node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsonparse": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==", + "dev": true, + "engines": [ + "node >= 0.2.0" + ] + }, + "node_modules/karma": { + "version": "6.4.3", + "resolved": "https://registry.npmjs.org/karma/-/karma-6.4.3.tgz", + "integrity": "sha512-LuucC/RE92tJ8mlCwqEoRWXP38UMAqpnq98vktmS9SznSoUPPUJQbc91dHcxcunROvfQjdORVA/YFviH+Xci9Q==", + "dev": true, + "dependencies": { + "@colors/colors": "1.5.0", + "body-parser": "^1.19.0", + "braces": "^3.0.2", + "chokidar": "^3.5.1", + "connect": "^3.7.0", + "di": "^0.0.1", + "dom-serialize": "^2.2.1", + "glob": "^7.1.7", + "graceful-fs": "^4.2.6", + "http-proxy": "^1.18.1", + "isbinaryfile": "^4.0.8", + "lodash": "^4.17.21", + "log4js": "^6.4.1", + "mime": "^2.5.2", + "minimatch": "^3.0.4", + "mkdirp": "^0.5.5", + "qjobs": "^1.2.0", + "range-parser": "^1.2.1", + "rimraf": "^3.0.2", + "socket.io": "^4.7.2", + "source-map": "^0.6.1", + "tmp": "^0.2.1", + "ua-parser-js": "^0.7.30", + "yargs": "^16.1.1" + }, + "bin": { + "karma": "bin/karma" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/karma-chrome-launcher": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-3.2.0.tgz", + "integrity": "sha512-rE9RkUPI7I9mAxByQWkGJFXfFD6lE4gC5nPuZdobf/QdTEJI6EU4yIay/cfU/xV4ZxlM5JiTv7zWYgA64NpS5Q==", + "dev": true, + "dependencies": { + "which": "^1.2.1" + } + }, + "node_modules/karma-coverage": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/karma-coverage/-/karma-coverage-2.2.1.tgz", + "integrity": "sha512-yj7hbequkQP2qOSb20GuNSIyE//PgJWHwC2IydLE6XRtsnaflv+/OSGNssPjobYUlhVVagy99TQpqUt3vAUG7A==", + "dev": true, + "dependencies": { + "istanbul-lib-coverage": "^3.2.0", + "istanbul-lib-instrument": "^5.1.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.1", + "istanbul-reports": "^3.0.5", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/karma-jasmine": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/karma-jasmine/-/karma-jasmine-5.1.0.tgz", + "integrity": "sha512-i/zQLFrfEpRyQoJF9fsCdTMOF5c2dK7C7OmsuKg2D0YSsuZSfQDiLuaiktbuio6F2wiCsZSnSnieIQ0ant/uzQ==", + "dev": true, + "dependencies": { + "jasmine-core": "^4.1.0" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "karma": "^6.0.0" + } + }, + "node_modules/karma-jasmine-html-reporter": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/karma-jasmine-html-reporter/-/karma-jasmine-html-reporter-2.1.0.tgz", + "integrity": "sha512-sPQE1+nlsn6Hwb5t+HHwyy0A1FNCVKuL1192b+XNauMYWThz2kweiBVW1DqloRpVvZIJkIoHVB7XRpK78n1xbQ==", + "dev": true, + "peerDependencies": { + "jasmine-core": "^4.0.0 || ^5.0.0", + "karma": "^6.0.0", + "karma-jasmine": "^5.0.0" + } + }, + "node_modules/karma-jasmine/node_modules/jasmine-core": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-4.6.0.tgz", + "integrity": "sha512-O236+gd0ZXS8YAjFx8xKaJ94/erqUliEkJTDedyE7iHvv4ZVqi+q+8acJxu05/WJDKm512EUNn809In37nWlAQ==", + "dev": true + }, + "node_modules/karma-source-map-support": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/karma-source-map-support/-/karma-source-map-support-1.4.0.tgz", + "integrity": "sha512-RsBECncGO17KAoJCYXjv+ckIz+Ii9NCi+9enk+rq6XC81ezYkb4/RHE6CTXdA7IOJqoF3wcaLfVG0CPmE5ca6A==", + "dev": true, + "dependencies": { + "source-map-support": "^0.5.5" + } + }, + "node_modules/karma/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/karma/node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/karma/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/karma/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/karma/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/karma/node_modules/tmp": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.3.tgz", + "integrity": "sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==", + "dev": true, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/karma/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/karma/node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/karma/node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/klona": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.6.tgz", + "integrity": "sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/launch-editor": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.6.1.tgz", + "integrity": "sha512-eB/uXmFVpY4zezmGp5XtU21kwo7GBbKB+EQ+UZeWtGb9yAM5xt/Evk+lYH3eRNAtId+ej4u7TYPFZ07w4s7rRw==", + "dev": true, + "dependencies": { + "picocolors": "^1.0.0", + "shell-quote": "^1.8.1" + } + }, + "node_modules/less": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/less/-/less-4.2.0.tgz", + "integrity": "sha512-P3b3HJDBtSzsXUl0im2L7gTO5Ubg8mEN6G8qoTS77iXxXX4Hvu4Qj540PZDvQ8V6DmX6iXo98k7Md0Cm1PrLaA==", + "dev": true, + "dependencies": { + "copy-anything": "^2.0.1", + "parse-node-version": "^1.0.1", + "tslib": "^2.3.0" + }, + "bin": { + "lessc": "bin/lessc" + }, + "engines": { + "node": ">=6" + }, + "optionalDependencies": { + "errno": "^0.1.1", + "graceful-fs": "^4.1.2", + "image-size": "~0.5.0", + "make-dir": "^2.1.0", + "mime": "^1.4.1", + "needle": "^3.1.0", + "source-map": "~0.6.0" + } + }, + "node_modules/less-loader": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-11.1.0.tgz", + "integrity": "sha512-C+uDBV7kS7W5fJlUjq5mPBeBVhYpTIm5gB09APT9o3n/ILeaXVsiSFTbZpTJCJwQ/Crczfn3DmfQFwxYusWFug==", + "dev": true, + "dependencies": { + "klona": "^2.0.4" + }, + "engines": { + "node": ">= 14.15.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "less": "^3.5.0 || ^4.0.0", + "webpack": "^5.0.0" + } + }, + "node_modules/less/node_modules/make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "optional": true, + "dependencies": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/less/node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true, + "optional": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/less/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "optional": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/less/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/license-webpack-plugin": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/license-webpack-plugin/-/license-webpack-plugin-4.0.2.tgz", + "integrity": "sha512-771TFWFD70G1wLTC4oU2Cw4qvtmNrIw+wRvBtn+okgHl7slJVi7zfNcdmqDL72BojM30VNJ2UHylr1o77U37Jw==", + "dev": true, + "dependencies": { + "webpack-sources": "^3.0.0" + }, + "peerDependenciesMeta": { + "webpack": { + "optional": true + }, + "webpack-sources": { + "optional": true + } + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, + "node_modules/loader-runner": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", + "dev": true, + "engines": { + "node": ">=6.11.5" + } + }, + "node_modules/loader-utils": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.2.1.tgz", + "integrity": "sha512-ZvFw1KWS3GVyYBYb7qkmRM/WwL2TQQBxgCK62rlvm4WpVQ23Nb4tYjApUlfjrEGvOs7KHEsmyUn75OHZrJMWPw==", + "dev": true, + "engines": { + "node": ">= 12.13.0" + } + }, + "node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "dev": true + }, + "node_modules/log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dev": true, + "dependencies": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-symbols/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/log-symbols/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/log-symbols/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/log-symbols/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/log-symbols/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/log-symbols/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/log4js": { + "version": "6.9.1", + "resolved": "https://registry.npmjs.org/log4js/-/log4js-6.9.1.tgz", + "integrity": "sha512-1somDdy9sChrr9/f4UlzhdaGfDR2c/SaD2a4T7qEkG4jTS57/B3qmnjLYePwQ8cqWnUHZI0iAKxMBpCZICiZ2g==", + "dev": true, + "dependencies": { + "date-format": "^4.0.14", + "debug": "^4.3.4", + "flatted": "^3.2.7", + "rfdc": "^1.3.0", + "streamroller": "^3.1.5" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/magic-string": { + "version": "0.30.8", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.8.tgz", + "integrity": "sha512-ISQTe55T2ao7XtlAStud6qwYPZjE4GK1S/BeVPus4jrq6JuOnQ00YKQC581RWhR122W7msZV263KzVeLoqidyQ==", + "dev": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.15" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/make-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", + "dev": true, + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-fetch-happen": { + "version": "13.0.1", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-13.0.1.tgz", + "integrity": "sha512-cKTUFc/rbKUd/9meOvgrpJ2WrNzymt6jfRDdwg5UCnVzv9dTpEj9JS5m3wtziXVCjluIXyL8pcaukYqezIzZQA==", + "dev": true, + "dependencies": { + "@npmcli/agent": "^2.0.0", + "cacache": "^18.0.0", + "http-cache-semantics": "^4.1.1", + "is-lambda": "^1.0.1", + "minipass": "^7.0.2", + "minipass-fetch": "^3.0.0", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.3", + "proc-log": "^4.2.0", + "promise-retry": "^2.0.1", + "ssri": "^10.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/make-fetch-happen/node_modules/proc-log": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-4.2.0.tgz", + "integrity": "sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/memfs": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.5.3.tgz", + "integrity": "sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==", + "dev": true, + "dependencies": { + "fs-monkey": "^1.0.4" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==", + "dev": true + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/micromatch/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/mime": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", + "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/mini-css-extract-plugin": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.8.1.tgz", + "integrity": "sha512-/1HDlyFRxWIZPI1ZpgqlZ8jMw/1Dp/dl3P0L1jtZ+zVcHqwPhGwaJwKL00WVgfnBy6PWCde9W65or7IIETImuA==", + "dev": true, + "dependencies": { + "schema-utils": "^4.0.0", + "tapable": "^2.2.1" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "dev": true + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/minipass": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", + "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", + "dev": true, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/minipass-collect": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-2.0.1.tgz", + "integrity": "sha512-D7V8PO9oaz7PWGLbCACuI1qEOsq7UKfLotx/C0Aet43fCUB/wfQ7DYeq2oR/svFJGYDHPr38SHATeaj/ZoKHKw==", + "dev": true, + "dependencies": { + "minipass": "^7.0.3" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/minipass-fetch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.4.tgz", + "integrity": "sha512-jHAqnA728uUpIaFm7NWsCnqKT6UqZz7GcI/bDpPATuwYyKwJwW0remxSCxUlKiEty+eopHGa3oc8WxgQ1FFJqg==", + "dev": true, + "dependencies": { + "minipass": "^7.0.3", + "minipass-sized": "^1.0.3", + "minizlib": "^2.1.2" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + }, + "optionalDependencies": { + "encoding": "^0.1.13" + } + }, + "node_modules/minipass-flush": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", + "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minipass-flush/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-flush/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/minipass-json-stream": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz", + "integrity": "sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==", + "dev": true, + "dependencies": { + "jsonparse": "^1.3.1", + "minipass": "^3.0.0" + } + }, + "node_modules/minipass-json-stream/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-json-stream/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/minipass-pipeline": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", + "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-pipeline/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-pipeline/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/minipass-sized": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", + "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-sized/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-sized/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minizlib/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minizlib/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/mrmime": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.0.tgz", + "integrity": "sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/multicast-dns": { + "version": "7.2.5", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz", + "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==", + "dev": true, + "dependencies": { + "dns-packet": "^5.2.2", + "thunky": "^1.0.2" + }, + "bin": { + "multicast-dns": "cli.js" + } + }, + "node_modules/mute-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-1.0.0.tgz", + "integrity": "sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/needle": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/needle/-/needle-3.3.1.tgz", + "integrity": "sha512-6k0YULvhpw+RoLNiQCRKOl09Rv1dPLr8hHnVjHqdolKwDrdNyk+Hmrthi4lIGPPz3r39dLx0hsF5s40sZ3Us4Q==", + "dev": true, + "optional": true, + "dependencies": { + "iconv-lite": "^0.6.3", + "sax": "^1.2.4" + }, + "bin": { + "needle": "bin/needle" + }, + "engines": { + "node": ">= 4.4.x" + } + }, + "node_modules/needle/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "optional": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true + }, + "node_modules/nice-napi": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/nice-napi/-/nice-napi-1.0.2.tgz", + "integrity": "sha512-px/KnJAJZf5RuBGcfD+Sp2pAKq0ytz8j+1NehvgIGFkvtvFrDM3T8E4x/JJODXK9WZow8RRGrbA9QQ3hs+pDhA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "!win32" + ], + "dependencies": { + "node-addon-api": "^3.0.0", + "node-gyp-build": "^4.2.2" + } + }, + "node_modules/node-addon-api": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.2.1.tgz", + "integrity": "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==", + "dev": true, + "optional": true + }, + "node_modules/node-forge": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", + "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", + "dev": true, + "engines": { + "node": ">= 6.13.0" + } + }, + "node_modules/node-gyp": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-10.1.0.tgz", + "integrity": "sha512-B4J5M1cABxPc5PwfjhbV5hoy2DP9p8lFXASnEN6hugXOa61416tnTZ29x9sSwAd0o99XNIcpvDDy1swAExsVKA==", + "dev": true, + "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" + }, + "bin": { + "node-gyp": "bin/node-gyp.js" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/node-gyp-build": { + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.1.tgz", + "integrity": "sha512-OSs33Z9yWr148JZcbZd5WiAXhh/n9z8TxQcdMhIOlpN9AhWpLfvVFO73+m77bBABQMaY9XSvIa+qk0jlI7Gcaw==", + "dev": true, + "optional": true, + "bin": { + "node-gyp-build": "bin.js", + "node-gyp-build-optional": "optional.js", + "node-gyp-build-test": "build-test.js" + } + }, + "node_modules/node-gyp/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/node-gyp/node_modules/glob": { + "version": "10.3.12", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.12.tgz", + "integrity": "sha512-TCNv8vJ+xz4QiqTpfOJA7HvYv+tNIRHKfUWw/q+v2jdgN4ebz+KY9tGx5J4rHP0o84mNP+ApH66HRX8us3Khqg==", + "dev": true, + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^2.3.6", + "minimatch": "^9.0.1", + "minipass": "^7.0.4", + "path-scurry": "^1.10.2" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/node-gyp/node_modules/isexe": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", + "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", + "dev": true, + "engines": { + "node": ">=16" + } + }, + "node_modules/node-gyp/node_modules/minimatch": { + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", + "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/node-gyp/node_modules/which": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", + "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", + "dev": true, + "dependencies": { + "isexe": "^3.1.1" + }, + "bin": { + "node-which": "bin/which.js" + }, + "engines": { + "node": "^16.13.0 || >=18.0.0" + } + }, + "node_modules/node-releases": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", + "dev": true + }, + "node_modules/nopt": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-7.2.0.tgz", + "integrity": "sha512-CVDtwCdhYIvnAzFoJ6NJ6dX3oga9/HyciQDnG1vQDjSLMeKLJ4A93ZqYKDrgYSr1FBY5/hMYC+2VCi24pgpkGA==", + "dev": true, + "dependencies": { + "abbrev": "^2.0.0" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/normalize-package-data": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-6.0.0.tgz", + "integrity": "sha512-UL7ELRVxYBHBgYEtZCXjxuD5vPxnmvMGq0jp/dGPKKrN7tfsBh2IY7TlJ15WWwdjRWD3RJbnsygUurTK3xkPkg==", + "dev": true, + "dependencies": { + "hosted-git-info": "^7.0.0", + "is-core-module": "^2.8.1", + "semver": "^7.3.5", + "validate-npm-package-license": "^3.0.4" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-bundled": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-3.0.0.tgz", + "integrity": "sha512-Vq0eyEQy+elFpzsKjMss9kxqb9tG3YHg4dsyWuUENuzvSUWe1TCnW/vV9FkhvBk/brEDoDiVd+M1Btosa6ImdQ==", + "dev": true, + "dependencies": { + "npm-normalize-package-bin": "^3.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm-install-checks": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-6.3.0.tgz", + "integrity": "sha512-W29RiK/xtpCGqn6f3ixfRYGk+zRyr+Ew9F2E20BfXxT5/euLdA/Nm7fO7OeTGuAmTs30cpgInyJ0cYe708YTZw==", + "dev": true, + "dependencies": { + "semver": "^7.1.1" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm-normalize-package-bin": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-3.0.1.tgz", + "integrity": "sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm-package-arg": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-11.0.1.tgz", + "integrity": "sha512-M7s1BD4NxdAvBKUPqqRW957Xwcl/4Zvo8Aj+ANrzvIPzGJZElrH7Z//rSaec2ORcND6FHHLnZeY8qgTpXDMFQQ==", + "dev": true, + "dependencies": { + "hosted-git-info": "^7.0.0", + "proc-log": "^3.0.0", + "semver": "^7.3.5", + "validate-npm-package-name": "^5.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm-packlist": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-8.0.2.tgz", + "integrity": "sha512-shYrPFIS/JLP4oQmAwDyk5HcyysKW8/JLTEA32S0Z5TzvpaeeX2yMFfoK1fjEBnCBvVyIB/Jj/GBFdm0wsgzbA==", + "dev": true, + "dependencies": { + "ignore-walk": "^6.0.4" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm-pick-manifest": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-9.0.0.tgz", + "integrity": "sha512-VfvRSs/b6n9ol4Qb+bDwNGUXutpy76x6MARw/XssevE0TnctIKcmklJZM5Z7nqs5z5aW+0S63pgCNbpkUNNXBg==", + "dev": true, + "dependencies": { + "npm-install-checks": "^6.0.0", + "npm-normalize-package-bin": "^3.0.0", + "npm-package-arg": "^11.0.0", + "semver": "^7.3.5" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm-registry-fetch": { + "version": "16.2.1", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-16.2.1.tgz", + "integrity": "sha512-8l+7jxhim55S85fjiDGJ1rZXBWGtRLi1OSb4Z3BPLObPuIaeKRlPRiYMSHU4/81ck3t71Z+UwDDl47gcpmfQQA==", + "dev": true, + "dependencies": { + "@npmcli/redact": "^1.1.0", + "make-fetch-happen": "^13.0.0", + "minipass": "^7.0.2", + "minipass-fetch": "^3.0.0", + "minipass-json-stream": "^1.0.1", + "minizlib": "^2.1.2", + "npm-package-arg": "^11.0.0", + "proc-log": "^4.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm-registry-fetch/node_modules/proc-log": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-4.2.0.tgz", + "integrity": "sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dev": true, + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", + "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/obuf": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", + "dev": true + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dev": true, + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/open": { + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", + "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", + "dev": true, + "dependencies": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ora": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", + "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", + "dev": true, + "dependencies": { + "bl": "^4.1.0", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "log-symbols": "^4.1.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ora/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/ora/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/ora/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/ora/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/ora/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ora/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dev": true, + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-retry": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz", + "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==", + "dev": true, + "dependencies": { + "@types/retry": "0.12.0", + "retry": "^0.13.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-retry/node_modules/retry": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", + "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/pacote": { + "version": "17.0.6", + "resolved": "https://registry.npmjs.org/pacote/-/pacote-17.0.6.tgz", + "integrity": "sha512-cJKrW21VRE8vVTRskJo78c/RCvwJCn1f4qgfxL4w77SOWrTCRcmfkYHlHtS0gqpgjv3zhXflRtgsrUCX5xwNnQ==", + "dev": true, + "dependencies": { + "@npmcli/git": "^5.0.0", + "@npmcli/installed-package-contents": "^2.0.1", + "@npmcli/promise-spawn": "^7.0.0", + "@npmcli/run-script": "^7.0.0", + "cacache": "^18.0.0", + "fs-minipass": "^3.0.0", + "minipass": "^7.0.2", + "npm-package-arg": "^11.0.0", + "npm-packlist": "^8.0.0", + "npm-pick-manifest": "^9.0.0", + "npm-registry-fetch": "^16.0.0", + "proc-log": "^3.0.0", + "promise-retry": "^2.0.1", + "read-package-json": "^7.0.0", + "read-package-json-fast": "^3.0.0", + "sigstore": "^2.2.0", + "ssri": "^10.0.0", + "tar": "^6.1.11" + }, + "bin": { + "pacote": "lib/bin.js" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parse-json/node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "node_modules/parse-node-version": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", + "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/parse5": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", + "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", + "dev": true, + "dependencies": { + "entities": "^4.4.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parse5-html-rewriting-stream": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/parse5-html-rewriting-stream/-/parse5-html-rewriting-stream-7.0.0.tgz", + "integrity": "sha512-mazCyGWkmCRWDI15Zp+UiCqMp/0dgEmkZRvhlsqqKYr4SsVm/TvnSpD9fCvqCA2zoWJcfRym846ejWBBHRiYEg==", + "dev": true, + "dependencies": { + "entities": "^4.3.0", + "parse5": "^7.0.0", + "parse5-sax-parser": "^7.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parse5-sax-parser": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/parse5-sax-parser/-/parse5-sax-parser-7.0.0.tgz", + "integrity": "sha512-5A+v2SNsq8T6/mG3ahcz8ZtQ0OUFTatxPbeidoMB7tkJSGDY3tdfl4MHovtLQHkEn5CGxijNWRQHhRQ6IRpXKg==", + "dev": true, + "dependencies": { + "parse5": "^7.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/path-scurry": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.2.tgz", + "integrity": "sha512-7xTavNy5RQXnsjANvVvMkEjvloOinkAjv/Z6Ildz9v2RinZ4SBKTWFOVRbaF8p0vpHnyjV/UwNDdKuUv6M5qcA==", + "dev": true, + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz", + "integrity": "sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==", + "dev": true, + "engines": { + "node": "14 || >=16.14" + } + }, + "node_modules/path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==", + "dev": true + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "node_modules/picomatch": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.1.tgz", + "integrity": "sha512-xUXwsxNjwTQ8K3GnT4pCJm+xq3RUPQbmkYJTP5aFIfNIvbcc/4MUxgBaaRSZJ6yGJZiGSyYlM6MzwTsRk8SYCg==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true, + "optional": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/piscina": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/piscina/-/piscina-4.4.0.tgz", + "integrity": "sha512-+AQduEJefrOApE4bV7KRmp3N2JnnyErlVqq4P/jmko4FPz9Z877BCccl/iB3FdrWSUkvbGV9Kan/KllJgat3Vg==", + "dev": true, + "optionalDependencies": { + "nice-napi": "^1.0.2" + } + }, + "node_modules/pkg-dir": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-7.0.0.tgz", + "integrity": "sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==", + "dev": true, + "dependencies": { + "find-up": "^6.3.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/find-up": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz", + "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", + "dev": true, + "dependencies": { + "locate-path": "^7.1.0", + "path-exists": "^5.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/locate-path": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", + "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", + "dev": true, + "dependencies": { + "p-locate": "^6.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/p-limit": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", + "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^1.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/p-locate": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", + "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", + "dev": true, + "dependencies": { + "p-limit": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/path-exists": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", + "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/postcss": { + "version": "8.4.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.35.tgz", + "integrity": "sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-loader": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-8.1.1.tgz", + "integrity": "sha512-0IeqyAsG6tYiDRCYKQJLAmgQr47DX6N7sFSWvQxt6AcupX8DIdmykuk/o/tx0Lze3ErGHJEp5OSRxrelC6+NdQ==", + "dev": true, + "dependencies": { + "cosmiconfig": "^9.0.0", + "jiti": "^1.20.0", + "semver": "^7.5.4" + }, + "engines": { + "node": ">= 18.12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "@rspack/core": "0.x || 1.x", + "postcss": "^7.0.0 || ^8.0.1", + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "@rspack/core": { + "optional": true + }, + "webpack": { + "optional": true + } + } + }, + "node_modules/postcss-media-query-parser": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz", + "integrity": "sha512-3sOlxmbKcSHMjlUXQZKQ06jOswE7oVkXPxmZdoB1r5l0q6gTFTQSHxNxOrCccElbW7dxNytifNEo8qidX2Vsig==", + "dev": true + }, + "node_modules/postcss-modules-extract-imports": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.1.0.tgz", + "integrity": "sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-local-by-default": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.5.tgz", + "integrity": "sha512-6MieY7sIfTK0hYfafw1OMEG+2bg8Q1ocHCpoWLqOKj3JXlKu4G7btkmM/B7lFubYkYWmRSPLZi5chid63ZaZYw==", + "dev": true, + "dependencies": { + "icss-utils": "^5.0.0", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.1.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-scope": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.2.0.tgz", + "integrity": "sha512-oq+g1ssrsZOsx9M96c5w8laRmvEu9C3adDSjI8oTcbfkrTE8hx/zfyobUoWIxaKPO8bt6S62kxpw5GqypEw1QQ==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.4" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-values": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", + "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", + "dev": true, + "dependencies": { + "icss-utils": "^5.0.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.0.16", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.16.tgz", + "integrity": "sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true + }, + "node_modules/proc-log": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-3.0.0.tgz", + "integrity": "sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "node_modules/promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==", + "dev": true + }, + "node_modules/promise-retry": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", + "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", + "dev": true, + "dependencies": { + "err-code": "^2.0.2", + "retry": "^0.12.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dev": true, + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/proxy-addr/node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", + "dev": true, + "optional": true + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/qjobs": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/qjobs/-/qjobs-1.2.0.tgz", + "integrity": "sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg==", + "dev": true, + "engines": { + "node": ">=0.9" + } + }, + "node_modules/qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dev": true, + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "dev": true, + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/read-package-json": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-7.0.0.tgz", + "integrity": "sha512-uL4Z10OKV4p6vbdvIXB+OzhInYtIozl/VxUBPgNkBuUi2DeRonnuspmaVAMcrkmfjKGNmRndyQAbE7/AmzGwFg==", + "dev": true, + "dependencies": { + "glob": "^10.2.2", + "json-parse-even-better-errors": "^3.0.0", + "normalize-package-data": "^6.0.0", + "npm-normalize-package-bin": "^3.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/read-package-json-fast": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-3.0.2.tgz", + "integrity": "sha512-0J+Msgym3vrLOUB3hzQCuZHII0xkNGCtz/HJH9xZshwv9DbDwkw1KaE3gx/e2J5rpEY5rtOy6cyhKOPrkP7FZw==", + "dev": true, + "dependencies": { + "json-parse-even-better-errors": "^3.0.0", + "npm-normalize-package-bin": "^3.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/read-package-json/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/read-package-json/node_modules/glob": { + "version": "10.3.12", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.12.tgz", + "integrity": "sha512-TCNv8vJ+xz4QiqTpfOJA7HvYv+tNIRHKfUWw/q+v2jdgN4ebz+KY9tGx5J4rHP0o84mNP+ApH66HRX8us3Khqg==", + "dev": true, + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^2.3.6", + "minimatch": "^9.0.1", + "minipass": "^7.0.4", + "path-scurry": "^1.10.2" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/read-package-json/node_modules/minimatch": { + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", + "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/readdirp/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/reflect-metadata": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.2.2.tgz", + "integrity": "sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==", + "dev": true + }, + "node_modules/regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "dev": true + }, + "node_modules/regenerate-unicode-properties": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz", + "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==", + "dev": true, + "dependencies": { + "regenerate": "^1.4.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", + "dev": true + }, + "node_modules/regenerator-transform": { + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", + "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.8.4" + } + }, + "node_modules/regex-parser": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.3.0.tgz", + "integrity": "sha512-TVILVSz2jY5D47F4mA4MppkBrafEaiUWJO/TcZHEIuI13AqoZMkK1WMA4Om1YkYbTx+9Ki1/tSUXbceyr9saRg==", + "dev": true + }, + "node_modules/regexpu-core": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", + "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", + "dev": true, + "dependencies": { + "@babel/regjsgen": "^0.8.0", + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.1.0", + "regjsparser": "^0.9.1", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regjsparser": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", + "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", + "dev": true, + "dependencies": { + "jsesc": "~0.5.0" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/regjsparser/node_modules/jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", + "dev": true + }, + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dev": true, + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-url-loader": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-5.0.0.tgz", + "integrity": "sha512-uZtduh8/8srhBoMx//5bwqjQ+rfYOUq8zC9NrMUGtjBiGTtFJM42s58/36+hTqeqINcnYe08Nj3LkK9lW4N8Xg==", + "dev": true, + "dependencies": { + "adjust-sourcemap-loader": "^4.0.0", + "convert-source-map": "^1.7.0", + "loader-utils": "^2.0.0", + "postcss": "^8.2.14", + "source-map": "0.6.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/resolve-url-loader/node_modules/loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "dev": true, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/resolve-url-loader/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rfdc": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.1.tgz", + "integrity": "sha512-r5a3l5HzYlIC68TpmYKlxWjmOP6wiPJ1vWv2HeLhNsRZMrCkxeqxiHlQ21oXmQ4F3SiryXBHhAD7JZqvOJjFmg==", + "dev": true + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rollup": { + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.17.2.tgz", + "integrity": "sha512-/9ClTJPByC0U4zNLowV1tMBe8yMEAxewtR3cUNX5BoEpGH3dQEWpJLr6CLp0fPdYRF/fzVOgvDb1zXuakwF5kQ==", + "dev": true, + "dependencies": { + "@types/estree": "1.0.5" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.17.2", + "@rollup/rollup-android-arm64": "4.17.2", + "@rollup/rollup-darwin-arm64": "4.17.2", + "@rollup/rollup-darwin-x64": "4.17.2", + "@rollup/rollup-linux-arm-gnueabihf": "4.17.2", + "@rollup/rollup-linux-arm-musleabihf": "4.17.2", + "@rollup/rollup-linux-arm64-gnu": "4.17.2", + "@rollup/rollup-linux-arm64-musl": "4.17.2", + "@rollup/rollup-linux-powerpc64le-gnu": "4.17.2", + "@rollup/rollup-linux-riscv64-gnu": "4.17.2", + "@rollup/rollup-linux-s390x-gnu": "4.17.2", + "@rollup/rollup-linux-x64-gnu": "4.17.2", + "@rollup/rollup-linux-x64-musl": "4.17.2", + "@rollup/rollup-win32-arm64-msvc": "4.17.2", + "@rollup/rollup-win32-ia32-msvc": "4.17.2", + "@rollup/rollup-win32-x64-msvc": "4.17.2", + "fsevents": "~2.3.2" + } + }, + "node_modules/run-async": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-3.0.0.tgz", + "integrity": "sha512-540WwVDOMxA6dN6We19EcT9sc3hkXPw5mzRNGM3FkdN/vtE9NFvj5lFAPNwUDmJjXidm3v7TC1cTE7t17Ulm1Q==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "node_modules/sass": { + "version": "1.71.1", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.71.1.tgz", + "integrity": "sha512-wovtnV2PxzteLlfNzbgm1tFXPLoZILYAMJtvoXXkD7/+1uP41eKkIt1ypWq5/q2uT94qHjXehEYfmjKOvjL9sg==", + "dev": true, + "dependencies": { + "chokidar": ">=3.0.0 <4.0.0", + "immutable": "^4.0.0", + "source-map-js": ">=0.6.2 <2.0.0" + }, + "bin": { + "sass": "sass.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-loader": { + "version": "14.1.1", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-14.1.1.tgz", + "integrity": "sha512-QX8AasDg75monlybel38BZ49JP5Z+uSKfKwF2rO7S74BywaRmGQMUBw9dtkS+ekyM/QnP+NOrRYq8ABMZ9G8jw==", + "dev": true, + "dependencies": { + "neo-async": "^2.6.2" + }, + "engines": { + "node": ">= 18.12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "@rspack/core": "0.x || 1.x", + "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0", + "sass": "^1.3.0", + "sass-embedded": "*", + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "@rspack/core": { + "optional": true + }, + "node-sass": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "webpack": { + "optional": true + } + } + }, + "node_modules/sax": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.3.0.tgz", + "integrity": "sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==", + "dev": true, + "optional": true + }, + "node_modules/schema-utils": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", + "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==", + "dev": true + }, + "node_modules/selfsigned": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.4.1.tgz", + "integrity": "sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==", + "dev": true, + "dependencies": { + "@types/node-forge": "^1.3.0", + "node-forge": "^1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/send/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/send/node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/send/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "node_modules/send/node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/serialize-javascript": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", + "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", + "dev": true, + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==", + "dev": true, + "dependencies": { + "accepts": "~1.3.4", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/serve-index/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/serve-index/node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", + "dev": true, + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", + "dev": true + }, + "node_modules/serve-index/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/serve-index/node_modules/setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "dev": true + }, + "node_modules/serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "dev": true, + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dev": true, + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "dev": true + }, + "node_modules/shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/shell-quote": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", + "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "node_modules/sigstore": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/sigstore/-/sigstore-2.3.0.tgz", + "integrity": "sha512-q+o8L2ebiWD1AxD17eglf1pFrl9jtW7FHa0ygqY6EKvibK8JHyq9Z26v9MZXeDiw+RbfOJ9j2v70M10Hd6E06A==", + "dev": true, + "dependencies": { + "@sigstore/bundle": "^2.3.1", + "@sigstore/core": "^1.0.0", + "@sigstore/protobuf-specs": "^0.3.1", + "@sigstore/sign": "^2.3.0", + "@sigstore/tuf": "^2.3.1", + "@sigstore/verify": "^1.2.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/slash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", + "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/smart-buffer": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", + "dev": true, + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socket.io": { + "version": "4.7.5", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.7.5.tgz", + "integrity": "sha512-DmeAkF6cwM9jSfmp6Dr/5/mfMwb5Z5qRrSXLpo3Fq5SqyU8CMF15jIN4ZhfSwu35ksM1qmHZDQ/DK5XTccSTvA==", + "dev": true, + "dependencies": { + "accepts": "~1.3.4", + "base64id": "~2.0.0", + "cors": "~2.8.5", + "debug": "~4.3.2", + "engine.io": "~6.5.2", + "socket.io-adapter": "~2.5.2", + "socket.io-parser": "~4.2.4" + }, + "engines": { + "node": ">=10.2.0" + } + }, + "node_modules/socket.io-adapter": { + "version": "2.5.4", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.5.4.tgz", + "integrity": "sha512-wDNHGXGewWAjQPt3pyeYBtpWSq9cLE5UW1ZUPL/2eGK9jtse/FpXib7epSTsz0Q0m+6sg6Y4KtcFTlah1bdOVg==", + "dev": true, + "dependencies": { + "debug": "~4.3.4", + "ws": "~8.11.0" + } + }, + "node_modules/socket.io-parser": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.4.tgz", + "integrity": "sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==", + "dev": true, + "dependencies": { + "@socket.io/component-emitter": "~3.1.0", + "debug": "~4.3.1" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/sockjs": { + "version": "0.3.24", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", + "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", + "dev": true, + "dependencies": { + "faye-websocket": "^0.11.3", + "uuid": "^8.3.2", + "websocket-driver": "^0.7.4" + } + }, + "node_modules/socks": { + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.3.tgz", + "integrity": "sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==", + "dev": true, + "dependencies": { + "ip-address": "^9.0.5", + "smart-buffer": "^4.2.0" + }, + "engines": { + "node": ">= 10.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socks-proxy-agent": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.3.tgz", + "integrity": "sha512-VNegTZKhuGq5vSD6XNKlbqWhyt/40CgoEw8XxD6dhnm8Jq9IEa3nIa4HwnM8XOqU0CdB0BwWVXusqiFXfHB3+A==", + "dev": true, + "dependencies": { + "agent-base": "^7.1.1", + "debug": "^4.3.4", + "socks": "^2.7.1" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/source-map-js": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", + "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-loader": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-5.0.0.tgz", + "integrity": "sha512-k2Dur7CbSLcAH73sBcIkV5xjPV4SzqO1NJ7+XaQl8if3VODDUj3FNchNGpqgJSKbvUfJuhVdv8K2Eu8/TNl2eA==", + "dev": true, + "dependencies": { + "iconv-lite": "^0.6.3", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": ">= 18.12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.72.1" + } + }, + "node_modules/source-map-loader/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/source-map-support/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/spdx-correct": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", + "dev": true, + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", + "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", + "dev": true + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.17", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.17.tgz", + "integrity": "sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==", + "dev": true + }, + "node_modules/spdy": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", + "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", + "dev": true, + "dependencies": { + "debug": "^4.1.0", + "handle-thing": "^2.0.0", + "http-deceiver": "^1.2.7", + "select-hose": "^2.0.0", + "spdy-transport": "^3.0.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/spdy-transport": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", + "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", + "dev": true, + "dependencies": { + "debug": "^4.1.0", + "detect-node": "^2.0.4", + "hpack.js": "^2.1.6", + "obuf": "^1.1.2", + "readable-stream": "^3.0.6", + "wbuf": "^1.7.3" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true + }, + "node_modules/ssri": { + "version": "10.0.5", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.5.tgz", + "integrity": "sha512-bSf16tAFkGeRlUNDjXu8FzaMQt6g2HZJrun7mtMbIPOddxt3GLMSz5VWUWcqTJUPfLEaDIepGxv+bYQW49596A==", + "dev": true, + "dependencies": { + "minipass": "^7.0.3" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/streamroller": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-3.1.5.tgz", + "integrity": "sha512-KFxaM7XT+irxvdqSP1LGLgNWbYN7ay5owZ3r/8t77p+EtSUAfUgtl7be3xtqtOmGUl9K9YPO2ca8133RlTjvKw==", + "dev": true, + "dependencies": { + "date-format": "^4.0.14", + "debug": "^4.3.4", + "fs-extra": "^8.1.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/symbol-observable": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-4.0.0.tgz", + "integrity": "sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ==", + "dev": true, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/tar": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz", + "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==", + "dev": true, + "dependencies": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^5.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/tar/node_modules/fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/tar/node_modules/fs-minipass/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tar/node_modules/minipass": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/tar/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true, + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/tar/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/terser": { + "version": "5.29.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.29.1.tgz", + "integrity": "sha512-lZQ/fyaIGxsbGxApKmoPTODIzELy3++mXhS5hOqaAWZjQtpq/hFHAc+rm29NND1rYRxRWKcjuARNwULNXa5RtQ==", + "dev": true, + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser-webpack-plugin": { + "version": "5.3.10", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz", + "integrity": "sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.20", + "jest-worker": "^27.4.5", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.1", + "terser": "^5.26.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "uglify-js": { + "optional": true + } + } + }, + "node_modules/terser-webpack-plugin/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/terser-webpack-plugin/node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/terser-webpack-plugin/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/terser-webpack-plugin/node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/thunky": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", + "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", + "dev": true + }, + "node_modules/tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, + "dependencies": { + "os-tmpdir": "~1.0.2" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/tree-kill": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", + "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", + "dev": true, + "bin": { + "tree-kill": "cli.js" + } + }, + "node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" + }, + "node_modules/tuf-js": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tuf-js/-/tuf-js-2.2.0.tgz", + "integrity": "sha512-ZSDngmP1z6zw+FIkIBjvOp/II/mIub/O7Pp12j1WNsiCpg5R5wAc//i555bBQsE44O94btLt0xM/Zr2LQjwdCg==", + "dev": true, + "dependencies": { + "@tufjs/models": "2.0.0", + "debug": "^4.3.4", + "make-fetch-happen": "^13.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dev": true, + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typed-assert": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/typed-assert/-/typed-assert-1.0.9.tgz", + "integrity": "sha512-KNNZtayBCtmnNmbo5mG47p1XsCyrx6iVqomjcZnec/1Y5GGARaxPs6r49RnSPeUP3YjNYiU9sQHAtY4BBvnZwg==", + "dev": true + }, + "node_modules/typescript": { + "version": "5.4.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz", + "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/ua-parser-js": { + "version": "0.7.37", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.37.tgz", + "integrity": "sha512-xV8kqRKM+jhMvcHWUKthV9fNebIzrNy//2O9ZwWcfiBFR5f25XVZPLlEajk/sf3Ra15V92isyQqnIEXRDaZWEA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/ua-parser-js" + }, + { + "type": "paypal", + "url": "https://paypal.me/faisalman" + }, + { + "type": "github", + "url": "https://github.com/sponsors/faisalman" + } + ], + "engines": { + "node": "*" + } + }, + "node_modules/undici": { + "version": "6.11.1", + "resolved": "https://registry.npmjs.org/undici/-/undici-6.11.1.tgz", + "integrity": "sha512-KyhzaLJnV1qa3BSHdj4AZ2ndqI0QWPxYzaIOio0WzcEJB9gvuysprJSLtpvc2D9mhR9jPDUk7xlJlZbH2KR5iw==", + "dev": true, + "engines": { + "node": ">=18.0" + } + }, + "node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "dev": true + }, + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", + "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "dev": true, + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-value-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", + "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-property-aliases-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unique-filename": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-3.0.0.tgz", + "integrity": "sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==", + "dev": true, + "dependencies": { + "unique-slug": "^4.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/unique-slug": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-4.0.0.tgz", + "integrity": "sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.0.14", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.14.tgz", + "integrity": "sha512-JixKH8GR2pWYshIPUg/NujK3JO7JiqEEUiNArE86NQyrgUuZeTlZQN3xuS/yiV5Kb48ev9K6RqNkaJjXsdg7Jw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "escalade": "^3.1.2", + "picocolors": "^1.0.0" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "dev": true, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "dev": true, + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/validate-npm-package-name": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-5.0.0.tgz", + "integrity": "sha512-YuKoXDAhBYxY7SfOKxHBDoSyENFeW5VvIIQp2TGQuit8gpK6MnWaQelBKxso72DoxTZfZdcP3W90LqpSkgPzLQ==", + "dev": true, + "dependencies": { + "builtins": "^5.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/vite": { + "version": "5.1.7", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.1.7.tgz", + "integrity": "sha512-sgnEEFTZYMui/sTlH1/XEnVNHMujOahPLGMxn1+5sIT45Xjng1Ec1K78jRP15dSmVgg5WBin9yO81j3o9OxofA==", + "dev": true, + "dependencies": { + "esbuild": "^0.19.3", + "postcss": "^8.4.35", + "rollup": "^4.2.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || >=20.0.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vite/node_modules/@esbuild/aix-ppc64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.19.12.tgz", + "integrity": "sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/android-arm": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.12.tgz", + "integrity": "sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/android-arm64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.12.tgz", + "integrity": "sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/android-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.12.tgz", + "integrity": "sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/darwin-arm64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.12.tgz", + "integrity": "sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/darwin-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.12.tgz", + "integrity": "sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/freebsd-arm64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.12.tgz", + "integrity": "sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/freebsd-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.12.tgz", + "integrity": "sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-arm": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.12.tgz", + "integrity": "sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-arm64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.12.tgz", + "integrity": "sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-ia32": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.12.tgz", + "integrity": "sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-loong64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.12.tgz", + "integrity": "sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-mips64el": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.12.tgz", + "integrity": "sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-ppc64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.12.tgz", + "integrity": "sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-riscv64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.12.tgz", + "integrity": "sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-s390x": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.12.tgz", + "integrity": "sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.12.tgz", + "integrity": "sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/netbsd-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.12.tgz", + "integrity": "sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/openbsd-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.12.tgz", + "integrity": "sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/sunos-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.12.tgz", + "integrity": "sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/win32-arm64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.12.tgz", + "integrity": "sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/win32-ia32": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.12.tgz", + "integrity": "sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/win32-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.12.tgz", + "integrity": "sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/esbuild": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.12.tgz", + "integrity": "sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.19.12", + "@esbuild/android-arm": "0.19.12", + "@esbuild/android-arm64": "0.19.12", + "@esbuild/android-x64": "0.19.12", + "@esbuild/darwin-arm64": "0.19.12", + "@esbuild/darwin-x64": "0.19.12", + "@esbuild/freebsd-arm64": "0.19.12", + "@esbuild/freebsd-x64": "0.19.12", + "@esbuild/linux-arm": "0.19.12", + "@esbuild/linux-arm64": "0.19.12", + "@esbuild/linux-ia32": "0.19.12", + "@esbuild/linux-loong64": "0.19.12", + "@esbuild/linux-mips64el": "0.19.12", + "@esbuild/linux-ppc64": "0.19.12", + "@esbuild/linux-riscv64": "0.19.12", + "@esbuild/linux-s390x": "0.19.12", + "@esbuild/linux-x64": "0.19.12", + "@esbuild/netbsd-x64": "0.19.12", + "@esbuild/openbsd-x64": "0.19.12", + "@esbuild/sunos-x64": "0.19.12", + "@esbuild/win32-arm64": "0.19.12", + "@esbuild/win32-ia32": "0.19.12", + "@esbuild/win32-x64": "0.19.12" + } + }, + "node_modules/void-elements": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz", + "integrity": "sha512-qZKX4RnBzH2ugr8Lxa7x+0V6XD9Sb/ouARtiasEQCHB1EVU4NXtmHsDDrx1dO4ne5fc3J6EW05BP1Dl0z0iung==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", + "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", + "dev": true, + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/wbuf": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", + "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", + "dev": true, + "dependencies": { + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", + "dev": true, + "dependencies": { + "defaults": "^1.0.3" + } + }, + "node_modules/webpack": { + "version": "5.90.3", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.90.3.tgz", + "integrity": "sha512-h6uDYlWCctQRuXBs1oYpVe6sFcWedl0dpcVaTf/YF67J9bKvwJajFulMVSYKHrksMB3I/pIagRzDxwxkebuzKA==", + "dev": true, + "dependencies": { + "@types/eslint-scope": "^3.7.3", + "@types/estree": "^1.0.5", + "@webassemblyjs/ast": "^1.11.5", + "@webassemblyjs/wasm-edit": "^1.11.5", + "@webassemblyjs/wasm-parser": "^1.11.5", + "acorn": "^8.7.1", + "acorn-import-assertions": "^1.9.0", + "browserslist": "^4.21.10", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.15.0", + "es-module-lexer": "^1.2.1", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.9", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.2.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.3.10", + "watchpack": "^2.4.0", + "webpack-sources": "^3.2.3" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-dev-middleware": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-6.1.2.tgz", + "integrity": "sha512-Wu+EHmX326YPYUpQLKmKbTyZZJIB8/n6R09pTmB03kJmnMsVPTo9COzHZFr01txwaCAuZvfBJE4ZCHRcKs5JaQ==", + "dev": true, + "dependencies": { + "colorette": "^2.0.10", + "memfs": "^3.4.12", + "mime-types": "^2.1.31", + "range-parser": "^1.2.1", + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 14.15.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "webpack": { + "optional": true + } + } + }, + "node_modules/webpack-dev-server": { + "version": "4.15.1", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.15.1.tgz", + "integrity": "sha512-5hbAst3h3C3L8w6W4P96L5vaV0PxSmJhxZvWKYIdgxOQm8pNZ5dEOmmSLBVpP85ReeyRt6AS1QJNyo/oFFPeVA==", + "dev": true, + "dependencies": { + "@types/bonjour": "^3.5.9", + "@types/connect-history-api-fallback": "^1.3.5", + "@types/express": "^4.17.13", + "@types/serve-index": "^1.9.1", + "@types/serve-static": "^1.13.10", + "@types/sockjs": "^0.3.33", + "@types/ws": "^8.5.5", + "ansi-html-community": "^0.0.8", + "bonjour-service": "^1.0.11", + "chokidar": "^3.5.3", + "colorette": "^2.0.10", + "compression": "^1.7.4", + "connect-history-api-fallback": "^2.0.0", + "default-gateway": "^6.0.3", + "express": "^4.17.3", + "graceful-fs": "^4.2.6", + "html-entities": "^2.3.2", + "http-proxy-middleware": "^2.0.3", + "ipaddr.js": "^2.0.1", + "launch-editor": "^2.6.0", + "open": "^8.0.9", + "p-retry": "^4.5.0", + "rimraf": "^3.0.2", + "schema-utils": "^4.0.0", + "selfsigned": "^2.1.1", + "serve-index": "^1.9.1", + "sockjs": "^0.3.24", + "spdy": "^4.0.2", + "webpack-dev-middleware": "^5.3.1", + "ws": "^8.13.0" + }, + "bin": { + "webpack-dev-server": "bin/webpack-dev-server.js" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.37.0 || ^5.0.0" + }, + "peerDependenciesMeta": { + "webpack": { + "optional": true + }, + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-dev-server/node_modules/webpack-dev-middleware": { + "version": "5.3.4", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.4.tgz", + "integrity": "sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q==", + "dev": true, + "dependencies": { + "colorette": "^2.0.10", + "memfs": "^3.4.3", + "mime-types": "^2.1.31", + "range-parser": "^1.2.1", + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/webpack-dev-server/node_modules/ws": { + "version": "8.17.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.0.tgz", + "integrity": "sha512-uJq6108EgZMAl20KagGkzCKfMEjxmKvZHG7Tlq0Z6nOky7YF7aq4mOx6xK8TJ/i1LeK4Qus7INktacctDgY8Ow==", + "dev": true, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/webpack-merge": { + "version": "5.10.0", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.10.0.tgz", + "integrity": "sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==", + "dev": true, + "dependencies": { + "clone-deep": "^4.0.1", + "flat": "^5.0.2", + "wildcard": "^2.0.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/webpack-sources": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "dev": true, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack-subresource-integrity": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/webpack-subresource-integrity/-/webpack-subresource-integrity-5.1.0.tgz", + "integrity": "sha512-sacXoX+xd8r4WKsy9MvH/q/vBtEHr86cpImXwyg74pFIpERKt6FmB8cXpeuh0ZLgclOlHI4Wcll7+R5L02xk9Q==", + "dev": true, + "dependencies": { + "typed-assert": "^1.0.8" + }, + "engines": { + "node": ">= 12" + }, + "peerDependencies": { + "html-webpack-plugin": ">= 5.0.0-beta.1 < 6", + "webpack": "^5.12.0" + }, + "peerDependenciesMeta": { + "html-webpack-plugin": { + "optional": true + } + } + }, + "node_modules/webpack/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/webpack/node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/webpack/node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "node_modules/webpack/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/webpack/node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/websocket-driver": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", + "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", + "dev": true, + "dependencies": { + "http-parser-js": ">=0.5.1", + "safe-buffer": ">=5.1.0", + "websocket-extensions": ">=0.1.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/websocket-extensions": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", + "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/wildcard": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz", + "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==", + "dev": true + }, + "node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "node_modules/ws": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", + "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", + "dev": true, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/yocto-queue": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", + "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", + "dev": true, + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/zone.js": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.14.5.tgz", + "integrity": "sha512-9XYWZzY6PhHOSdkYryNcMm7L8EK7a4q+GbTvxbIA2a9lMdRUpGuyaYvLDcg8D6bdn+JomSsbPcilVKg6SmUx6w==", + "dependencies": { + "tslib": "^2.3.0" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..5b5b57b --- /dev/null +++ b/package.json @@ -0,0 +1,38 @@ +{ + "name": "ngx-reactome-base", + "version": "0.0.0", + "scripts": { + "ng": "ng", + "start": "ng serve", + "build": "ng build", + "watch": "ng build --watch --configuration development", + "test": "ng test" + }, + "private": true, + "dependencies": { + "@angular/animations": "^17.3.0", + "@angular/common": "^17.3.0", + "@angular/compiler": "^17.3.0", + "@angular/core": "^17.3.0", + "@angular/forms": "^17.3.0", + "@angular/platform-browser": "^17.3.0", + "@angular/platform-browser-dynamic": "^17.3.0", + "@angular/router": "^17.3.0", + "rxjs": "~7.8.0", + "tslib": "^2.3.0", + "zone.js": "~0.14.3" + }, + "devDependencies": { + "@angular-devkit/build-angular": "^17.3.6", + "@angular/cli": "^17.3.6", + "@angular/compiler-cli": "^17.3.0", + "@types/jasmine": "~5.1.0", + "jasmine-core": "~5.1.0", + "karma": "~6.4.0", + "karma-chrome-launcher": "~3.2.0", + "karma-coverage": "~2.2.0", + "karma-jasmine": "~5.1.0", + "karma-jasmine-html-reporter": "~2.1.0", + "typescript": "~5.4.2" + } +} diff --git a/src/app/app.component.css b/src/app/app.component.css new file mode 100644 index 0000000..e69de29 diff --git a/src/app/app.component.html b/src/app/app.component.html new file mode 100644 index 0000000..36093e1 --- /dev/null +++ b/src/app/app.component.html @@ -0,0 +1,336 @@ + + + + + + + + + + + +
+
+
+ +

Hello, {{ title }}

+

Congratulations! Your app is running. 🎉

+
+ +
+
+ @for (item of [ + { title: 'Explore the Docs', link: 'https://angular.dev' }, + { title: 'Learn with Tutorials', link: 'https://angular.dev/tutorials' }, + { title: 'CLI Docs', link: 'https://angular.dev/tools/cli' }, + { title: 'Angular Language Service', link: 'https://angular.dev/tools/language-service' }, + { title: 'Angular DevTools', link: 'https://angular.dev/tools/devtools' }, + ]; track item.title) { + + {{ item.title }} + + + + + } +
+ +
+
+
+ + + + + + + + + + + diff --git a/src/app/app.component.spec.ts b/src/app/app.component.spec.ts new file mode 100644 index 0000000..361a6d7 --- /dev/null +++ b/src/app/app.component.spec.ts @@ -0,0 +1,29 @@ +import { TestBed } from '@angular/core/testing'; +import { AppComponent } from './app.component'; + +describe('AppComponent', () => { + beforeEach(async () => { + await TestBed.configureTestingModule({ + imports: [AppComponent], + }).compileComponents(); + }); + + it('should create the app', () => { + const fixture = TestBed.createComponent(AppComponent); + const app = fixture.componentInstance; + expect(app).toBeTruthy(); + }); + + it(`should have the 'ngx-reactome-base' title`, () => { + const fixture = TestBed.createComponent(AppComponent); + const app = fixture.componentInstance; + expect(app.title).toEqual('ngx-reactome-base'); + }); + + it('should render title', () => { + const fixture = TestBed.createComponent(AppComponent); + fixture.detectChanges(); + const compiled = fixture.nativeElement as HTMLElement; + expect(compiled.querySelector('h1')?.textContent).toContain('Hello, ngx-reactome-base'); + }); +}); diff --git a/src/app/app.component.ts b/src/app/app.component.ts new file mode 100644 index 0000000..2eede01 --- /dev/null +++ b/src/app/app.component.ts @@ -0,0 +1,13 @@ +import { Component } from '@angular/core'; +import { RouterOutlet } from '@angular/router'; + +@Component({ + selector: 'app-root', + standalone: true, + imports: [RouterOutlet], + templateUrl: './app.component.html', + styleUrl: './app.component.css' +}) +export class AppComponent { + title = 'ngx-reactome-base'; +} diff --git a/src/app/app.config.ts b/src/app/app.config.ts new file mode 100644 index 0000000..6c6ef60 --- /dev/null +++ b/src/app/app.config.ts @@ -0,0 +1,8 @@ +import { ApplicationConfig } from '@angular/core'; +import { provideRouter } from '@angular/router'; + +import { routes } from './app.routes'; + +export const appConfig: ApplicationConfig = { + providers: [provideRouter(routes)] +}; diff --git a/src/app/app.routes.ts b/src/app/app.routes.ts new file mode 100644 index 0000000..dc39edb --- /dev/null +++ b/src/app/app.routes.ts @@ -0,0 +1,3 @@ +import { Routes } from '@angular/router'; + +export const routes: Routes = []; diff --git a/src/assets/.gitkeep b/src/assets/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/src/favicon.ico b/src/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..57614f9c967596fad0a3989bec2b1deff33034f6 GIT binary patch literal 15086 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 Nr__JTFzvMr^FKp4S3v*( literal 0 HcmV?d00001 diff --git a/src/index.html b/src/index.html new file mode 100644 index 0000000..ea7d510 --- /dev/null +++ b/src/index.html @@ -0,0 +1,13 @@ + + + + + NgxReactomeBase + + + + + + + + diff --git a/src/main.ts b/src/main.ts new file mode 100644 index 0000000..35b00f3 --- /dev/null +++ b/src/main.ts @@ -0,0 +1,6 @@ +import { bootstrapApplication } from '@angular/platform-browser'; +import { appConfig } from './app/app.config'; +import { AppComponent } from './app/app.component'; + +bootstrapApplication(AppComponent, appConfig) + .catch((err) => console.error(err)); diff --git a/src/styles.css b/src/styles.css new file mode 100644 index 0000000..90d4ee0 --- /dev/null +++ b/src/styles.css @@ -0,0 +1 @@ +/* You can add global styles to this file, and also import other style files */ diff --git a/tsconfig.app.json b/tsconfig.app.json new file mode 100644 index 0000000..374cc9d --- /dev/null +++ b/tsconfig.app.json @@ -0,0 +1,14 @@ +/* To learn more about this file see: https://angular.io/config/tsconfig. */ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "./out-tsc/app", + "types": [] + }, + "files": [ + "src/main.ts" + ], + "include": [ + "src/**/*.d.ts" + ] +} diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..eb49734 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,32 @@ +/* To learn more about this file see: https://angular.io/config/tsconfig. */ +{ + "compileOnSave": false, + "compilerOptions": { + "outDir": "./dist/out-tsc", + "strict": true, + "noImplicitOverride": true, + "noPropertyAccessFromIndexSignature": true, + "noImplicitReturns": true, + "noFallthroughCasesInSwitch": true, + "skipLibCheck": true, + "esModuleInterop": true, + "sourceMap": true, + "declaration": false, + "experimentalDecorators": true, + "moduleResolution": "node", + "importHelpers": true, + "target": "ES2022", + "module": "ES2022", + "useDefineForClassFields": false, + "lib": [ + "ES2022", + "dom" + ] + }, + "angularCompilerOptions": { + "enableI18nLegacyMessageIdFormat": false, + "strictInjectionParameters": true, + "strictInputAccessModifiers": true, + "strictTemplates": true + } +} diff --git a/tsconfig.spec.json b/tsconfig.spec.json new file mode 100644 index 0000000..be7e9da --- /dev/null +++ b/tsconfig.spec.json @@ -0,0 +1,14 @@ +/* To learn more about this file see: https://angular.io/config/tsconfig. */ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "./out-tsc/spec", + "types": [ + "jasmine" + ] + }, + "include": [ + "src/**/*.spec.ts", + "src/**/*.d.ts" + ] +} From 974a8d432e62e264af285bccdb0ddc3ae8ff7c5f Mon Sep 17 00:00:00 2001 From: Deidre Beavers <107586218+beaversd@users.noreply.github.com> Date: Thu, 2 May 2024 15:29:33 -0700 Subject: [PATCH 02/49] Initialize styles --- angular.json | 34 + package-lock.json | 1139 ++++++++++++++++- package.json | 11 +- .../ngx-reactome-style/src/assets/_index.scss | 142 ++ .../src/assets/_palette-def.scss | 226 ++++ .../src/assets/_variables.scss | 113 ++ .../src/assets/theme-helper.scss | 36 + src/app/app.config.ts | 3 +- src/assets/.gitkeep | 0 src/index.html | 2 + src/styles.css | 3 + tsconfig.json | 5 + 12 files changed, 1708 insertions(+), 6 deletions(-) create mode 100644 projects/ngx-reactome-style/src/assets/_index.scss create mode 100644 projects/ngx-reactome-style/src/assets/_palette-def.scss create mode 100644 projects/ngx-reactome-style/src/assets/_variables.scss create mode 100644 projects/ngx-reactome-style/src/assets/theme-helper.scss delete mode 100644 src/assets/.gitkeep diff --git a/angular.json b/angular.json index 2410c68..19d360f 100644 --- a/angular.json +++ b/angular.json @@ -25,6 +25,7 @@ "src/assets" ], "styles": [ + "src/custom-theme.scss", "src/styles.css" ], "scripts": [] @@ -90,6 +91,39 @@ } } } + }, + "ngx-reactome-style": { + "projectType": "library", + "root": "projects/ngx-reactome-style", + "sourceRoot": "projects/ngx-reactome-style/src", + "prefix": "lib", + "architect": { + "build": { + "builder": "@angular-devkit/build-angular:ng-packagr", + "options": { + "project": "projects/ngx-reactome-style/ng-package.json" + }, + "configurations": { + "production": { + "tsConfig": "projects/ngx-reactome-style/tsconfig.lib.prod.json" + }, + "development": { + "tsConfig": "projects/ngx-reactome-style/tsconfig.lib.json" + } + }, + "defaultConfiguration": "production" + }, + "test": { + "builder": "@angular-devkit/build-angular:karma", + "options": { + "tsConfig": "projects/ngx-reactome-style/tsconfig.spec.json", + "polyfills": [ + "zone.js", + "zone.js/testing" + ] + } + } + } } } } diff --git a/package-lock.json b/package-lock.json index fe18e16..53fd123 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,10 +9,12 @@ "version": "0.0.0", "dependencies": { "@angular/animations": "^17.3.0", + "@angular/cdk": "^17.3.7", "@angular/common": "^17.3.0", "@angular/compiler": "^17.3.0", "@angular/core": "^17.3.0", "@angular/forms": "^17.3.0", + "@angular/material": "^17.3.7", "@angular/platform-browser": "^17.3.0", "@angular/platform-browser-dynamic": "^17.3.0", "@angular/router": "^17.3.0", @@ -31,6 +33,7 @@ "karma-coverage": "~2.2.0", "karma-jasmine": "~5.1.0", "karma-jasmine-html-reporter": "~2.1.0", + "ng-packagr": "^17.3.0", "typescript": "~5.4.2" } }, @@ -269,6 +272,22 @@ "@angular/core": "17.3.7" } }, + "node_modules/@angular/cdk": { + "version": "17.3.7", + "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-17.3.7.tgz", + "integrity": "sha512-aFEh8tzKFOwini6aNEp57S54Ocp9T7YIJfBVMESptu2TCPdMTlJ1HJTg5XS8NcQO+vwi9cFPGVwGF1frOx4LXA==", + "dependencies": { + "tslib": "^2.3.0" + }, + "optionalDependencies": { + "parse5": "^7.1.2" + }, + "peerDependencies": { + "@angular/common": "^17.0.0 || ^18.0.0", + "@angular/core": "^17.0.0 || ^18.0.0", + "rxjs": "^6.5.3 || ^7.4.0" + } + }, "node_modules/@angular/cli": { "version": "17.3.6", "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-17.3.6.tgz", @@ -442,6 +461,70 @@ "rxjs": "^6.5.3 || ^7.4.0" } }, + "node_modules/@angular/material": { + "version": "17.3.7", + "resolved": "https://registry.npmjs.org/@angular/material/-/material-17.3.7.tgz", + "integrity": "sha512-wjSKkk9KZE8QiBPkMd5axh5u/3pUSxoLKNO7OasFhEagMmSv5oYTLm40cErhtb4UdkSmbC19WuuluS6P3leoPA==", + "dependencies": { + "@material/animation": "15.0.0-canary.7f224ddd4.0", + "@material/auto-init": "15.0.0-canary.7f224ddd4.0", + "@material/banner": "15.0.0-canary.7f224ddd4.0", + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/button": "15.0.0-canary.7f224ddd4.0", + "@material/card": "15.0.0-canary.7f224ddd4.0", + "@material/checkbox": "15.0.0-canary.7f224ddd4.0", + "@material/chips": "15.0.0-canary.7f224ddd4.0", + "@material/circular-progress": "15.0.0-canary.7f224ddd4.0", + "@material/data-table": "15.0.0-canary.7f224ddd4.0", + "@material/density": "15.0.0-canary.7f224ddd4.0", + "@material/dialog": "15.0.0-canary.7f224ddd4.0", + "@material/dom": "15.0.0-canary.7f224ddd4.0", + "@material/drawer": "15.0.0-canary.7f224ddd4.0", + "@material/elevation": "15.0.0-canary.7f224ddd4.0", + "@material/fab": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/floating-label": "15.0.0-canary.7f224ddd4.0", + "@material/form-field": "15.0.0-canary.7f224ddd4.0", + "@material/icon-button": "15.0.0-canary.7f224ddd4.0", + "@material/image-list": "15.0.0-canary.7f224ddd4.0", + "@material/layout-grid": "15.0.0-canary.7f224ddd4.0", + "@material/line-ripple": "15.0.0-canary.7f224ddd4.0", + "@material/linear-progress": "15.0.0-canary.7f224ddd4.0", + "@material/list": "15.0.0-canary.7f224ddd4.0", + "@material/menu": "15.0.0-canary.7f224ddd4.0", + "@material/menu-surface": "15.0.0-canary.7f224ddd4.0", + "@material/notched-outline": "15.0.0-canary.7f224ddd4.0", + "@material/radio": "15.0.0-canary.7f224ddd4.0", + "@material/ripple": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0", + "@material/segmented-button": "15.0.0-canary.7f224ddd4.0", + "@material/select": "15.0.0-canary.7f224ddd4.0", + "@material/shape": "15.0.0-canary.7f224ddd4.0", + "@material/slider": "15.0.0-canary.7f224ddd4.0", + "@material/snackbar": "15.0.0-canary.7f224ddd4.0", + "@material/switch": "15.0.0-canary.7f224ddd4.0", + "@material/tab": "15.0.0-canary.7f224ddd4.0", + "@material/tab-bar": "15.0.0-canary.7f224ddd4.0", + "@material/tab-indicator": "15.0.0-canary.7f224ddd4.0", + "@material/tab-scroller": "15.0.0-canary.7f224ddd4.0", + "@material/textfield": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "@material/tooltip": "15.0.0-canary.7f224ddd4.0", + "@material/top-app-bar": "15.0.0-canary.7f224ddd4.0", + "@material/touch-target": "15.0.0-canary.7f224ddd4.0", + "@material/typography": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.3.0" + }, + "peerDependencies": { + "@angular/animations": "^17.0.0 || ^18.0.0", + "@angular/cdk": "17.3.7", + "@angular/common": "^17.0.0 || ^18.0.0", + "@angular/core": "^17.0.0 || ^18.0.0", + "@angular/forms": "^17.0.0 || ^18.0.0", + "@angular/platform-browser": "^17.0.0 || ^18.0.0", + "rxjs": "^6.5.3 || ^7.4.0" + } + }, "node_modules/@angular/platform-browser": { "version": "17.3.7", "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-17.3.7.tgz", @@ -2877,6 +2960,758 @@ "node": ">= 0.4" } }, + "node_modules/@material/animation": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/animation/-/animation-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-1GSJaPKef+7HRuV+HusVZHps64cmZuOItDbt40tjJVaikcaZvwmHlcTxRIqzcRoCdt5ZKHh3NoO7GB9Khg4Jnw==", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/@material/auto-init": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/auto-init/-/auto-init-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-t7ZGpRJ3ec0QDUO0nJu/SMgLW7qcuG2KqIsEYD1Ej8qhI2xpdR2ydSDQOkVEitXmKoGol1oq4nYSBjTlB65GqA==", + "dependencies": { + "@material/base": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/banner": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/banner/-/banner-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-g9wBUZzYBizyBcBQXTIafnRUUPi7efU9gPJfzeGgkynXiccP/vh5XMmH+PBxl5v+4MlP/d4cZ2NUYoAN7UTqSA==", + "dependencies": { + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/button": "15.0.0-canary.7f224ddd4.0", + "@material/dom": "15.0.0-canary.7f224ddd4.0", + "@material/elevation": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/ripple": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0", + "@material/shape": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "@material/tokens": "15.0.0-canary.7f224ddd4.0", + "@material/typography": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/base": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/base/-/base-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-I9KQOKXpLfJkP8MqZyr8wZIzdPHrwPjFvGd9zSK91/vPyE4hzHRJc/0njsh9g8Lm9PRYLbifXX+719uTbHxx+A==", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/@material/button": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/button/-/button-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-BHB7iyHgRVH+JF16+iscR+Qaic+p7LU1FOLgP8KucRlpF9tTwIxQA6mJwGRi5gUtcG+vyCmzVS+hIQ6DqT/7BA==", + "dependencies": { + "@material/density": "15.0.0-canary.7f224ddd4.0", + "@material/dom": "15.0.0-canary.7f224ddd4.0", + "@material/elevation": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/focus-ring": "15.0.0-canary.7f224ddd4.0", + "@material/ripple": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0", + "@material/shape": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "@material/tokens": "15.0.0-canary.7f224ddd4.0", + "@material/touch-target": "15.0.0-canary.7f224ddd4.0", + "@material/typography": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/card": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/card/-/card-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-kt7y9/IWOtJTr3Z/AoWJT3ZLN7CLlzXhx2udCLP9ootZU2bfGK0lzNwmo80bv/pJfrY9ihQKCtuGTtNxUy+vIw==", + "dependencies": { + "@material/dom": "15.0.0-canary.7f224ddd4.0", + "@material/elevation": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/ripple": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0", + "@material/shape": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "@material/tokens": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/checkbox": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/checkbox/-/checkbox-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-rURcrL5O1u6hzWR+dNgiQ/n89vk6tdmdP3mZgnxJx61q4I/k1yijKqNJSLrkXH7Rto3bM5NRKMOlgvMvVd7UMQ==", + "dependencies": { + "@material/animation": "15.0.0-canary.7f224ddd4.0", + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/density": "15.0.0-canary.7f224ddd4.0", + "@material/dom": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/focus-ring": "15.0.0-canary.7f224ddd4.0", + "@material/ripple": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "@material/touch-target": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/chips": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/chips/-/chips-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-AYAivV3GSk/T/nRIpH27sOHFPaSMrE3L0WYbnb5Wa93FgY8a0fbsFYtSH2QmtwnzXveg+B1zGTt7/xIIcynKdQ==", + "dependencies": { + "@material/animation": "15.0.0-canary.7f224ddd4.0", + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/checkbox": "15.0.0-canary.7f224ddd4.0", + "@material/density": "15.0.0-canary.7f224ddd4.0", + "@material/dom": "15.0.0-canary.7f224ddd4.0", + "@material/elevation": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/focus-ring": "15.0.0-canary.7f224ddd4.0", + "@material/ripple": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0", + "@material/shape": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "@material/tokens": "15.0.0-canary.7f224ddd4.0", + "@material/touch-target": "15.0.0-canary.7f224ddd4.0", + "@material/typography": "15.0.0-canary.7f224ddd4.0", + "safevalues": "^0.3.4", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/circular-progress": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/circular-progress/-/circular-progress-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-DJrqCKb+LuGtjNvKl8XigvyK02y36GRkfhMUYTcJEi3PrOE00bwXtyj7ilhzEVshQiXg6AHGWXtf5UqwNrx3Ow==", + "dependencies": { + "@material/animation": "15.0.0-canary.7f224ddd4.0", + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/dom": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/progress-indicator": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/data-table": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/data-table/-/data-table-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-/2WZsuBIq9z9RWYF5Jo6b7P6u0fwit+29/mN7rmAZ6akqUR54nXyNfoSNiyydMkzPlZZsep5KrSHododDhBZbA==", + "dependencies": { + "@material/animation": "15.0.0-canary.7f224ddd4.0", + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/checkbox": "15.0.0-canary.7f224ddd4.0", + "@material/density": "15.0.0-canary.7f224ddd4.0", + "@material/dom": "15.0.0-canary.7f224ddd4.0", + "@material/elevation": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/icon-button": "15.0.0-canary.7f224ddd4.0", + "@material/linear-progress": "15.0.0-canary.7f224ddd4.0", + "@material/list": "15.0.0-canary.7f224ddd4.0", + "@material/menu": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0", + "@material/select": "15.0.0-canary.7f224ddd4.0", + "@material/shape": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "@material/tokens": "15.0.0-canary.7f224ddd4.0", + "@material/touch-target": "15.0.0-canary.7f224ddd4.0", + "@material/typography": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/density": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/density/-/density-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-o9EXmGKVpiQ6mHhyV3oDDzc78Ow3E7v8dlaOhgaDSXgmqaE8v5sIlLNa/LKSyUga83/fpGk3QViSGXotpQx0jA==", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/@material/dialog": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/dialog/-/dialog-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-u0XpTlv1JqWC/bQ3DavJ1JguofTelLT2wloj59l3/1b60jv42JQ6Am7jU3I8/SIUB1MKaW7dYocXjDWtWJakLA==", + "dependencies": { + "@material/animation": "15.0.0-canary.7f224ddd4.0", + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/button": "15.0.0-canary.7f224ddd4.0", + "@material/dom": "15.0.0-canary.7f224ddd4.0", + "@material/elevation": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/icon-button": "15.0.0-canary.7f224ddd4.0", + "@material/ripple": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0", + "@material/shape": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "@material/tokens": "15.0.0-canary.7f224ddd4.0", + "@material/touch-target": "15.0.0-canary.7f224ddd4.0", + "@material/typography": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/dom": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/dom/-/dom-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-mQ1HT186GPQSkRg5S18i70typ5ZytfjL09R0gJ2Qg5/G+MLCGi7TAjZZSH65tuD/QGOjel4rDdWOTmYbPYV6HA==", + "dependencies": { + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/drawer": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/drawer/-/drawer-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-qyO0W0KBftfH8dlLR0gVAgv7ZHNvU8ae11Ao6zJif/YxcvK4+gph1z8AO4H410YmC2kZiwpSKyxM1iQCCzbb4g==", + "dependencies": { + "@material/animation": "15.0.0-canary.7f224ddd4.0", + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/dom": "15.0.0-canary.7f224ddd4.0", + "@material/elevation": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/list": "15.0.0-canary.7f224ddd4.0", + "@material/ripple": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0", + "@material/shape": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "@material/typography": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/elevation": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/elevation/-/elevation-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-tV6s4/pUBECedaI36Yj18KmRCk1vfue/JP/5yYRlFNnLMRVISePbZaKkn/BHXVf+26I3W879+XqIGlDVdmOoMA==", + "dependencies": { + "@material/animation": "15.0.0-canary.7f224ddd4.0", + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/fab": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/fab/-/fab-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-4h76QrzfZTcPdd+awDPZ4Q0YdSqsXQnS540TPtyXUJ/5G99V6VwGpjMPIxAsW0y+pmI9UkLL/srrMaJec+7r4Q==", + "dependencies": { + "@material/animation": "15.0.0-canary.7f224ddd4.0", + "@material/dom": "15.0.0-canary.7f224ddd4.0", + "@material/elevation": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/focus-ring": "15.0.0-canary.7f224ddd4.0", + "@material/ripple": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0", + "@material/shape": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "@material/tokens": "15.0.0-canary.7f224ddd4.0", + "@material/touch-target": "15.0.0-canary.7f224ddd4.0", + "@material/typography": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/feature-targeting": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/feature-targeting/-/feature-targeting-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-SAjtxYh6YlKZriU83diDEQ7jNSP2MnxKsER0TvFeyG1vX/DWsUyYDOIJTOEa9K1N+fgJEBkNK8hY55QhQaspew==", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/@material/floating-label": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/floating-label/-/floating-label-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-0KMo5ijjYaEHPiZ2pCVIcbaTS2LycvH9zEhEMKwPPGssBCX7iz5ffYQFk7e5yrQand1r3jnQQgYfHAwtykArnQ==", + "dependencies": { + "@material/animation": "15.0.0-canary.7f224ddd4.0", + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/dom": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "@material/typography": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/focus-ring": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/focus-ring/-/focus-ring-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-Jmg1nltq4J6S6A10EGMZnvufrvU3YTi+8R8ZD9lkSbun0Fm2TVdICQt/Auyi6An9zP66oQN6c31eqO6KfIPsDg==", + "dependencies": { + "@material/dom": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0" + } + }, + "node_modules/@material/form-field": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/form-field/-/form-field-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-fEPWgDQEPJ6WF7hNnIStxucHR9LE4DoDSMqCsGWS2Yu+NLZYLuCEecgR0UqQsl1EQdNRaFh8VH93KuxGd2hiPg==", + "dependencies": { + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/ripple": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "@material/typography": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/icon-button": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/icon-button/-/icon-button-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-DcK7IL4ICY/DW+48YQZZs9g0U1kRaW0Wb0BxhvppDMYziHo/CTpFdle4gjyuTyRxPOdHQz5a97ru48Z9O4muTw==", + "dependencies": { + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/density": "15.0.0-canary.7f224ddd4.0", + "@material/dom": "15.0.0-canary.7f224ddd4.0", + "@material/elevation": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/focus-ring": "15.0.0-canary.7f224ddd4.0", + "@material/ripple": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "@material/touch-target": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/image-list": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/image-list/-/image-list-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-voMjG2p80XbjL1B2lmF65zO5gEgJOVKClLdqh4wbYzYfwY/SR9c8eLvlYG7DLdFaFBl/7gGxD8TvvZ329HUFPw==", + "dependencies": { + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/shape": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "@material/typography": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/layout-grid": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/layout-grid/-/layout-grid-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-veDABLxMn2RmvfnUO2RUmC1OFfWr4cU+MrxKPoDD2hl3l3eDYv5fxws6r5T1JoSyXoaN+oEZpheS0+M9Ure8Pg==", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/@material/line-ripple": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/line-ripple/-/line-ripple-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-f60hVJhIU6I3/17Tqqzch1emUKEcfVVgHVqADbU14JD+oEIz429ZX9ksZ3VChoU3+eejFl+jVdZMLE/LrAuwpg==", + "dependencies": { + "@material/animation": "15.0.0-canary.7f224ddd4.0", + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/linear-progress": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/linear-progress/-/linear-progress-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-pRDEwPQielDiC9Sc5XhCXrGxP8wWOnAO8sQlMebfBYHYqy5hhiIzibezS8CSaW4MFQFyXmCmpmqWlbqGYRmiyg==", + "dependencies": { + "@material/animation": "15.0.0-canary.7f224ddd4.0", + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/dom": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/progress-indicator": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/list": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/list/-/list-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-Is0NV91sJlXF5pOebYAtWLF4wU2MJDbYqztML/zQNENkQxDOvEXu3nWNb3YScMIYJJXvARO0Liur5K4yPagS1Q==", + "dependencies": { + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/density": "15.0.0-canary.7f224ddd4.0", + "@material/dom": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/ripple": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0", + "@material/shape": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "@material/tokens": "15.0.0-canary.7f224ddd4.0", + "@material/typography": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/menu": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/menu/-/menu-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-D11QU1dXqLbh5X1zKlEhS3QWh0b5BPNXlafc5MXfkdJHhOiieb7LC9hMJhbrHtj24FadJ7evaFW/T2ugJbJNnQ==", + "dependencies": { + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/dom": "15.0.0-canary.7f224ddd4.0", + "@material/elevation": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/list": "15.0.0-canary.7f224ddd4.0", + "@material/menu-surface": "15.0.0-canary.7f224ddd4.0", + "@material/ripple": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0", + "@material/shape": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "@material/tokens": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/menu-surface": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/menu-surface/-/menu-surface-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-7RZHvw0gbwppaAJ/Oh5SWmfAKJ62aw1IMB3+3MRwsb5PLoV666wInYa+zJfE4i7qBeOn904xqT2Nko5hY0ssrg==", + "dependencies": { + "@material/animation": "15.0.0-canary.7f224ddd4.0", + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/elevation": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0", + "@material/shape": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/notched-outline": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/notched-outline/-/notched-outline-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-Yg2usuKB2DKlKIBISbie9BFsOVuffF71xjbxPbybvqemxqUBd+bD5/t6H1fLE+F8/NCu5JMigho4ewUU+0RCiw==", + "dependencies": { + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/floating-label": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0", + "@material/shape": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/progress-indicator": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/progress-indicator/-/progress-indicator-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-UPbDjE5CqT+SqTs0mNFG6uFEw7wBlgYmh+noSkQ6ty/EURm8lF125dmi4dv4kW0+octonMXqkGtAoZwLIHKf/w==", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/@material/radio": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/radio/-/radio-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-wR1X0Sr0KmQLu6+YOFKAI84G3L6psqd7Kys5kfb8WKBM36zxO5HQXC5nJm/Y0rdn22ixzsIz2GBo0MNU4V4k1A==", + "dependencies": { + "@material/animation": "15.0.0-canary.7f224ddd4.0", + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/density": "15.0.0-canary.7f224ddd4.0", + "@material/dom": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/focus-ring": "15.0.0-canary.7f224ddd4.0", + "@material/ripple": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "@material/touch-target": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/ripple": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/ripple/-/ripple-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-JqOsWM1f4aGdotP0rh1vZlPZTg6lZgh39FIYHFMfOwfhR+LAikUJ+37ciqZuewgzXB6iiRO6a8aUH6HR5SJYPg==", + "dependencies": { + "@material/animation": "15.0.0-canary.7f224ddd4.0", + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/dom": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/rtl": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/rtl/-/rtl-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-UVf14qAtmPiaaZjuJtmN36HETyoKWmsZM/qn1L5ciR2URb8O035dFWnz4ZWFMmAYBno/L7JiZaCkPurv2ZNrGA==", + "dependencies": { + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/segmented-button": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/segmented-button/-/segmented-button-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-LCnVRUSAhELTKI/9hSvyvIvQIpPpqF29BV+O9yM4WoNNmNWqTulvuiv7grHZl6Z+kJuxSg4BGbsPxxb9dXozPg==", + "dependencies": { + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/elevation": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/ripple": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "@material/touch-target": "15.0.0-canary.7f224ddd4.0", + "@material/typography": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/select": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/select/-/select-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-WioZtQEXRpglum0cMSzSqocnhsGRr+ZIhvKb3FlaNrTaK8H3Y4QA7rVjv3emRtrLOOjaT6/RiIaUMTo9AGzWQQ==", + "dependencies": { + "@material/animation": "15.0.0-canary.7f224ddd4.0", + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/density": "15.0.0-canary.7f224ddd4.0", + "@material/dom": "15.0.0-canary.7f224ddd4.0", + "@material/elevation": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/floating-label": "15.0.0-canary.7f224ddd4.0", + "@material/line-ripple": "15.0.0-canary.7f224ddd4.0", + "@material/list": "15.0.0-canary.7f224ddd4.0", + "@material/menu": "15.0.0-canary.7f224ddd4.0", + "@material/menu-surface": "15.0.0-canary.7f224ddd4.0", + "@material/notched-outline": "15.0.0-canary.7f224ddd4.0", + "@material/ripple": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0", + "@material/shape": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "@material/tokens": "15.0.0-canary.7f224ddd4.0", + "@material/typography": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/shape": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/shape/-/shape-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-8z8l1W3+cymObunJoRhwFPKZ+FyECfJ4MJykNiaZq7XJFZkV6xNmqAVrrbQj93FtLsECn9g4PjjIomguVn/OEw==", + "dependencies": { + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/slider": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/slider/-/slider-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-QU/WSaSWlLKQRqOhJrPgm29wqvvzRusMqwAcrCh1JTrCl+xwJ43q5WLDfjYhubeKtrEEgGu9tekkAiYfMG7EBw==", + "dependencies": { + "@material/animation": "15.0.0-canary.7f224ddd4.0", + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/dom": "15.0.0-canary.7f224ddd4.0", + "@material/elevation": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/ripple": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "@material/tokens": "15.0.0-canary.7f224ddd4.0", + "@material/typography": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/snackbar": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/snackbar/-/snackbar-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-sm7EbVKddaXpT/aXAYBdPoN0k8yeg9+dprgBUkrdqGzWJAeCkxb4fv2B3He88YiCtvkTz2KLY4CThPQBSEsMFQ==", + "dependencies": { + "@material/animation": "15.0.0-canary.7f224ddd4.0", + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/button": "15.0.0-canary.7f224ddd4.0", + "@material/dom": "15.0.0-canary.7f224ddd4.0", + "@material/elevation": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/icon-button": "15.0.0-canary.7f224ddd4.0", + "@material/ripple": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0", + "@material/shape": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "@material/tokens": "15.0.0-canary.7f224ddd4.0", + "@material/typography": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/switch": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/switch/-/switch-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-lEDJfRvkVyyeHWIBfoxYjJVl+WlEAE2kZ/+6OqB1FW0OV8ftTODZGhHRSzjVBA1/p4FPuhAtKtoK9jTpa4AZjA==", + "dependencies": { + "@material/animation": "15.0.0-canary.7f224ddd4.0", + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/density": "15.0.0-canary.7f224ddd4.0", + "@material/dom": "15.0.0-canary.7f224ddd4.0", + "@material/elevation": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/focus-ring": "15.0.0-canary.7f224ddd4.0", + "@material/ripple": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0", + "@material/shape": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "@material/tokens": "15.0.0-canary.7f224ddd4.0", + "safevalues": "^0.3.4", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/tab": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/tab/-/tab-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-E1xGACImyCLurhnizyOTCgOiVezce4HlBFAI6YhJo/AyVwjN2Dtas4ZLQMvvWWqpyhITNkeYdOchwCC1mrz3AQ==", + "dependencies": { + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/elevation": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/focus-ring": "15.0.0-canary.7f224ddd4.0", + "@material/ripple": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0", + "@material/tab-indicator": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "@material/tokens": "15.0.0-canary.7f224ddd4.0", + "@material/typography": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/tab-bar": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/tab-bar/-/tab-bar-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-p1Asb2NzrcECvAQU3b2SYrpyJGyJLQWR+nXTYzDKE8WOpLIRCXap2audNqD7fvN/A20UJ1J8U01ptrvCkwJ4eA==", + "dependencies": { + "@material/animation": "15.0.0-canary.7f224ddd4.0", + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/density": "15.0.0-canary.7f224ddd4.0", + "@material/elevation": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/tab": "15.0.0-canary.7f224ddd4.0", + "@material/tab-indicator": "15.0.0-canary.7f224ddd4.0", + "@material/tab-scroller": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "@material/tokens": "15.0.0-canary.7f224ddd4.0", + "@material/typography": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/tab-indicator": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/tab-indicator/-/tab-indicator-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-h9Td3MPqbs33spcPS7ecByRHraYgU4tNCZpZzZXw31RypjKvISDv/PS5wcA4RmWqNGih78T7xg4QIGsZg4Pk4w==", + "dependencies": { + "@material/animation": "15.0.0-canary.7f224ddd4.0", + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/tab-scroller": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/tab-scroller/-/tab-scroller-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-LFeYNjQpdXecwECd8UaqHYbhscDCwhGln5Yh+3ctvcEgvmDPNjhKn/DL3sWprWvG8NAhP6sHMrsGhQFVdCWtTg==", + "dependencies": { + "@material/animation": "15.0.0-canary.7f224ddd4.0", + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/dom": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/tab": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/textfield": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/textfield/-/textfield-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-AExmFvgE5nNF0UA4l2cSzPghtxSUQeeoyRjFLHLy+oAaE4eKZFrSy0zEpqPeWPQpEMDZk+6Y+6T3cOFYBeSvsw==", + "dependencies": { + "@material/animation": "15.0.0-canary.7f224ddd4.0", + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/density": "15.0.0-canary.7f224ddd4.0", + "@material/dom": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/floating-label": "15.0.0-canary.7f224ddd4.0", + "@material/line-ripple": "15.0.0-canary.7f224ddd4.0", + "@material/notched-outline": "15.0.0-canary.7f224ddd4.0", + "@material/ripple": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0", + "@material/shape": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "@material/tokens": "15.0.0-canary.7f224ddd4.0", + "@material/typography": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/theme": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/theme/-/theme-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-hs45hJoE9yVnoVOcsN1jklyOa51U4lzWsEnQEuJTPOk2+0HqCQ0yv/q0InpSnm2i69fNSyZC60+8HADZGF8ugQ==", + "dependencies": { + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/tokens": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/tokens/-/tokens-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-r9TDoicmcT7FhUXC4eYMFnt9TZsz0G8T3wXvkKncLppYvZ517gPyD/1+yhuGfGOxAzxTrM66S/oEc1fFE2q4hw==", + "dependencies": { + "@material/elevation": "15.0.0-canary.7f224ddd4.0" + } + }, + "node_modules/@material/tooltip": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/tooltip/-/tooltip-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-8qNk3pmPLTnam3XYC1sZuplQXW9xLn4Z4MI3D+U17Q7pfNZfoOugGr+d2cLA9yWAEjVJYB0mj8Yu86+udo4N9w==", + "dependencies": { + "@material/animation": "15.0.0-canary.7f224ddd4.0", + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/button": "15.0.0-canary.7f224ddd4.0", + "@material/dom": "15.0.0-canary.7f224ddd4.0", + "@material/elevation": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0", + "@material/shape": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "@material/tokens": "15.0.0-canary.7f224ddd4.0", + "@material/typography": "15.0.0-canary.7f224ddd4.0", + "safevalues": "^0.3.4", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/top-app-bar": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/top-app-bar/-/top-app-bar-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-SARR5/ClYT4CLe9qAXakbr0i0cMY0V3V4pe3ElIJPfL2Z2c4wGR1mTR8m2LxU1MfGKK8aRoUdtfKaxWejp+eNA==", + "dependencies": { + "@material/animation": "15.0.0-canary.7f224ddd4.0", + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/elevation": "15.0.0-canary.7f224ddd4.0", + "@material/ripple": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0", + "@material/shape": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "@material/typography": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/touch-target": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/touch-target/-/touch-target-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-BJo/wFKHPYLGsRaIpd7vsQwKr02LtO2e89Psv0on/p0OephlNIgeB9dD9W+bQmaeZsZ6liKSKRl6wJWDiK71PA==", + "dependencies": { + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/typography": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/typography/-/typography-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-kBaZeCGD50iq1DeRRH5OM5Jl7Gdk+/NOfKArkY4ksBZvJiStJ7ACAhpvb8MEGm4s3jvDInQFLsDq3hL+SA79sQ==", + "dependencies": { + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, "node_modules/@ngtools/webpack": { "version": "17.3.6", "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-17.3.6.tgz", @@ -3219,6 +4054,85 @@ "node": ">=14" } }, + "node_modules/@rollup/plugin-json": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-json/-/plugin-json-6.1.0.tgz", + "integrity": "sha512-EGI2te5ENk1coGeADSIwZ7G2Q8CJS2sF120T7jLw4xFw9n7wIOXHo+kIYRAoVpJAN+kmqZSoO3Fp4JtoNF4ReA==", + "dev": true, + "dependencies": { + "@rollup/pluginutils": "^5.1.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-node-resolve": { + "version": "15.2.3", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.2.3.tgz", + "integrity": "sha512-j/lym8nf5E21LwBT4Df1VD6hRO2L2iwUeUmP7litikRsVp1H6NWx20NEp0Y7su+7XGc476GnXXc4kFeZNGmaSQ==", + "dev": true, + "dependencies": { + "@rollup/pluginutils": "^5.0.1", + "@types/resolve": "1.20.2", + "deepmerge": "^4.2.2", + "is-builtin-module": "^3.2.1", + "is-module": "^1.0.0", + "resolve": "^1.22.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^2.78.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/pluginutils": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.0.tgz", + "integrity": "sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==", + "dev": true, + "dependencies": { + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/pluginutils/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "node_modules/@rollup/rollup-android-arm-eabi": { "version": "4.17.2", "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.17.2.tgz", @@ -3427,6 +4341,25 @@ "win32" ] }, + "node_modules/@rollup/wasm-node": { + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@rollup/wasm-node/-/wasm-node-4.17.2.tgz", + "integrity": "sha512-4F6C3XaUn02XY/GJMQTXncWrLyCkRHdRZe4OyWuQUprWKmU2u+esISOtCYdr3Bp9AqCIo/X3So2Ik7N9dNDwow==", + "dev": true, + "dependencies": { + "@types/estree": "1.0.5" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, "node_modules/@schematics/angular": { "version": "17.3.6", "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-17.3.6.tgz", @@ -3733,6 +4666,12 @@ "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==", "dev": true }, + "node_modules/@types/resolve": { + "version": "1.20.2", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.20.2.tgz", + "integrity": "sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==", + "dev": true + }, "node_modules/@types/retry": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", @@ -4562,6 +5501,18 @@ "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", "dev": true }, + "node_modules/builtin-modules": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", + "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/builtins": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.1.0.tgz", @@ -4939,6 +5890,12 @@ "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==", "dev": true }, + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", + "dev": true + }, "node_modules/compressible": { "version": "2.0.18", "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", @@ -5431,6 +6388,15 @@ } } }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/default-gateway": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", @@ -5490,6 +6456,15 @@ "node": ">= 0.8" } }, + "node_modules/dependency-graph": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-1.0.0.tgz", + "integrity": "sha512-cW3gggJ28HZ/LExwxP2B++aiKxhJXMSIt9K48FOXQkm+vuG5gyatXnLsONRJdzO/7VfjDIiaOOa/bs4l464Lwg==", + "dev": true, + "engines": { + "node": ">=4" + } + }, "node_modules/destroy": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", @@ -5721,7 +6696,7 @@ "version": "4.5.0", "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", - "dev": true, + "devOptional": true, "engines": { "node": ">=0.12" }, @@ -5924,6 +6899,12 @@ "node": ">=4.0" } }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true + }, "node_modules/esutils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", @@ -7005,6 +7986,15 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, + "node_modules/injection-js": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/injection-js/-/injection-js-2.4.0.tgz", + "integrity": "sha512-6jiJt0tCAo9zjHbcwLiPL+IuNe9SQ6a9g0PEzafThW3fOQi0mrmiJGBJvDD6tmhPh8cQHIQtCOrJuBfQME4kPA==", + "dev": true, + "dependencies": { + "tslib": "^2.0.0" + } + }, "node_modules/inquirer": { "version": "9.2.15", "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-9.2.15.tgz", @@ -7089,6 +8079,21 @@ "node": ">=8" } }, + "node_modules/is-builtin-module": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.1.tgz", + "integrity": "sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==", + "dev": true, + "dependencies": { + "builtin-modules": "^3.3.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/is-core-module": { "version": "2.13.1", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", @@ -7161,6 +8166,12 @@ "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==", "dev": true }, + "node_modules/is-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", + "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==", + "dev": true + }, "node_modules/is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", @@ -8564,6 +9575,125 @@ "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", "dev": true }, + "node_modules/ng-packagr": { + "version": "17.3.0", + "resolved": "https://registry.npmjs.org/ng-packagr/-/ng-packagr-17.3.0.tgz", + "integrity": "sha512-kMSqxeDgv88SWCoapWNRRN1UdBgwu9/Pw/j7u2WFGmzrIWUFivNWBBSSL94kMxr2La+Z9wMwiL8EwKNvmCpg2A==", + "dev": true, + "dependencies": { + "@rollup/plugin-json": "^6.0.1", + "@rollup/plugin-node-resolve": "^15.2.3", + "@rollup/wasm-node": "^4.5.0", + "ajv": "^8.12.0", + "ansi-colors": "^4.1.3", + "browserslist": "^4.22.1", + "cacache": "^18.0.0", + "chokidar": "^3.5.3", + "commander": "^12.0.0", + "convert-source-map": "^2.0.0", + "dependency-graph": "^1.0.0", + "esbuild-wasm": "^0.20.0", + "fast-glob": "^3.3.1", + "find-cache-dir": "^3.3.2", + "injection-js": "^2.4.0", + "jsonc-parser": "^3.2.0", + "less": "^4.2.0", + "ora": "^5.1.0", + "piscina": "^4.4.0", + "postcss": "^8.4.31", + "rxjs": "^7.8.1", + "sass": "^1.69.5" + }, + "bin": { + "ng-packagr": "cli/main.js" + }, + "engines": { + "node": "^18.13.0 || >=20.9.0" + }, + "optionalDependencies": { + "esbuild": "^0.20.0", + "rollup": "^4.5.0" + }, + "peerDependencies": { + "@angular/compiler-cli": "^17.0.0 || ^17.2.0-next.0 || ^17.3.0-next.0", + "tailwindcss": "^2.0.0 || ^3.0.0", + "tslib": "^2.3.0", + "typescript": ">=5.2 <5.5" + }, + "peerDependenciesMeta": { + "tailwindcss": { + "optional": true + } + } + }, + "node_modules/ng-packagr/node_modules/commander": { + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-12.0.0.tgz", + "integrity": "sha512-MwVNWlYjDTtOjX5PiD7o5pK0UrFU/OYgcJfjjK4RaHZETNtjJqrZa9Y9ds88+A+f+d5lv+561eZ+yCKoS3gbAA==", + "dev": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/ng-packagr/node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true + }, + "node_modules/ng-packagr/node_modules/find-cache-dir": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "dev": true, + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/avajs/find-cache-dir?sponsor=1" + } + }, + "node_modules/ng-packagr/node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ng-packagr/node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ng-packagr/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, "node_modules/nice-napi": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/nice-napi/-/nice-napi-1.0.2.tgz", @@ -9224,7 +10354,7 @@ "version": "7.1.2", "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", - "dev": true, + "devOptional": true, "dependencies": { "entities": "^4.4.0" }, @@ -10192,6 +11322,11 @@ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", "dev": true }, + "node_modules/safevalues": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/safevalues/-/safevalues-0.3.4.tgz", + "integrity": "sha512-LRneZZRXNgjzwG4bDQdOTSbze3fHm1EAKN/8bePxnlEZiBmkYEDggaHbuvHI9/hoqHbGfsEA7tWS9GhYHZBBsw==" + }, "node_modules/sass": { "version": "1.71.1", "resolved": "https://registry.npmjs.org/sass/-/sass-1.71.1.tgz", diff --git a/package.json b/package.json index 5b5b57b..4d066b9 100644 --- a/package.json +++ b/package.json @@ -1,20 +1,24 @@ { "name": "ngx-reactome-base", - "version": "0.0.0", + "version": "0.0.2", "scripts": { "ng": "ng", "start": "ng serve", "build": "ng build", "watch": "ng build --watch --configuration development", - "test": "ng test" + "test": "ng test", + "build-style": "ng build ngx-reactome-style" + }, - "private": true, + "private": false, "dependencies": { "@angular/animations": "^17.3.0", + "@angular/cdk": "^17.3.7", "@angular/common": "^17.3.0", "@angular/compiler": "^17.3.0", "@angular/core": "^17.3.0", "@angular/forms": "^17.3.0", + "@angular/material": "^17.3.7", "@angular/platform-browser": "^17.3.0", "@angular/platform-browser-dynamic": "^17.3.0", "@angular/router": "^17.3.0", @@ -33,6 +37,7 @@ "karma-coverage": "~2.2.0", "karma-jasmine": "~5.1.0", "karma-jasmine-html-reporter": "~2.1.0", + "ng-packagr": "^17.3.0", "typescript": "~5.4.2" } } diff --git a/projects/ngx-reactome-style/src/assets/_index.scss b/projects/ngx-reactome-style/src/assets/_index.scss new file mode 100644 index 0000000..d4f7e1b --- /dev/null +++ b/projects/ngx-reactome-style/src/assets/_index.scss @@ -0,0 +1,142 @@ +// Custom Theming for Angular Material +// For more information: https://material.angular.io/guide/theming +@use '@angular/material' as mat; +@use "palette-def" as p; +@use "variables"; +@use 'sass:map'; +@use 'theme-helper'; + +$bg-color: map.get(p.$primary-colors, 990); + + +// Plus imports for other components in your app. + + +// Include the common styles for Angular Material. We include this here so that you only +// have to load a single css file for Angular Material in your app. +// Be sure that you only ever include this mixin once! +// TODO(v15): As of v15 mat.core no longer includes default typography styles. +// The following line adds: +// 1. Default typography styles for all components +// 2. Styles for typography hierarchy classes (e.g. .mat-headline-1) +// If you specify typography styles for the components you use elsewhere, you should delete this line. +// If you don't need the default component typographies but still want the hierarchy styles, +// you can delete this line and instead use: +// `@include mat.typography-hierarchy(mat.define-typography-config());` +@include mat.all-component-typographies(); +@include mat.core(); + + +// Define the palettes for your theme using the Material Design palettes available in palette.scss +// (imported above). For each palette, you can optionally specify a default, lighter, and darker +// hue. Available color palettes: https://material.io/design/color/ +$primary-palette: mat.define-palette(p.$primary-colors, 600); +$secondary-palette: mat.define-palette(p.$secondary-colors, 600); +$tertiary-palette: mat.define-palette(p.$tertiary-colors, 600); + +// The warn palette is optional (defaults to red). +$error-palette: mat.define-palette(p.$error-colors); +$neutral-palette: mat.define-palette(p.$neutral-colors); +$neutral-variant-palette: mat.define-palette(p.$neutral-variant-colors); + +// Create the theme object. A theme consists of configurations for individual +// theming systems such as "color" or "typography". +$light-theme: mat.define-light-theme(( + color: ( + primary: $primary-palette, + accent: $tertiary-palette, + warn: $error-palette, + ), + density: -1 +)); + +$dark-theme: mat.define-dark-theme(( + color: ( + primary: mat.define-palette(p.$primary-colors, 200), + accent: mat.define-palette(p.$tertiary-colors, 200), + warn: mat.define-palette(p.$error-colors, 200), + ) +)); + +$palettes: ( + primary-palette: $primary-palette, + secondary-palette: $secondary-palette, + tertiary-palette: $tertiary-palette, + error-palette: $error-palette, + neutral-palette: $neutral-palette, + neutral-variant-palette: $neutral-variant-palette +); + +// Include theme styles for core and each component used in your app. +// Alternatively, you can import and @include the theme mixins for each component +// that you are using. +//@include mat.all-component-themes($light-theme); + +@include mat.core-theme($light-theme); +@include mat.card-theme($light-theme); +@include mat.progress-bar-theme($light-theme); +@include mat.tooltip-theme($light-theme); +@include mat.form-field-theme($light-theme); +@include mat.input-theme($light-theme); +@include mat.select-theme($light-theme); +@include mat.dialog-theme($light-theme); +@include mat.slide-toggle-theme($light-theme); +@include mat.checkbox-theme($light-theme); +@include mat.button-theme($light-theme); +@include mat.icon-button-theme($light-theme); +@include mat.fab-theme($light-theme); +@include mat.snack-bar-theme($light-theme); +@include mat.progress-spinner-theme($light-theme); +@include mat.divider-theme($light-theme); +@include mat.expansion-theme($light-theme); +@include mat.icon-theme($light-theme); +@include mat.stepper-theme($light-theme); +@include mat.menu-theme($light-theme); + + +//@include nested-stepper.theme($light-theme); +$bg-color: map.get(p.$primary-colors, 010); + +$color-config: mat.get-color-config($light-theme); + + + +// Apply the dark theme only when the user prefers dark themes. +.dark { + // Use the `-color` mixins to only apply color styles without reapplying the same + // typography and density styles. + $bg-color: map.get(p.$primary-colors, 950); + + $dark-theme: theme-helper.modify-background($dark-theme, p.$dark-theme-background-palette-redef); + $dark-theme: theme-helper.modify-foreground($dark-theme, p.$dark-theme-foreground-palette-redef); + + $color-config: mat.get-color-config($dark-theme); + @include mat.all-component-colors($dark-theme); + + @include mat.core-color($dark-theme); + @include mat.card-color($dark-theme); + @include mat.progress-bar-color($dark-theme); + @include mat.tooltip-color($dark-theme); + @include mat.form-field-color($dark-theme); + @include mat.input-color($dark-theme); + @include mat.select-color($dark-theme); + @include mat.dialog-color($dark-theme); + @include mat.slide-toggle-color($dark-theme); + @include mat.checkbox-color($dark-theme); + @include mat.button-color($dark-theme); + @include mat.icon-button-color($dark-theme); + @include mat.fab-color($dark-theme); + @include mat.snack-bar-color($dark-theme); + @include mat.progress-spinner-color($dark-theme); + @include mat.divider-color($dark-theme); + @include mat.expansion-color($dark-theme); + @include mat.icon-color($dark-theme); + @include mat.stepper-color($dark-theme); + @include mat.menu-color($dark-theme); + +} + +@include variables.theme($palettes); + + + diff --git a/projects/ngx-reactome-style/src/assets/_palette-def.scss b/projects/ngx-reactome-style/src/assets/_palette-def.scss new file mode 100644 index 0000000..fcd4565 --- /dev/null +++ b/projects/ngx-reactome-style/src/assets/_palette-def.scss @@ -0,0 +1,226 @@ +@use "sass:map"; + +$primary-colors: ( + 002: #ffffff, + 010: #fafdff, + 050: #dff4ff, + 100: #baeaff, + 200: #5cd4ff, + 300: #20b9e5, + 400: #009dc4, + 500: #0081a2, + 600: #006782, + 700: #004d62, + 800: #003545, + 900: #001f29, + 950: #0D1617, + 1000: #000000, + contrast: ( + 002: #000000, + 010: #000000, + 050: #000000, + 100: #000000, + 200: #000000, + 300: #000000, + 400: #000000, + 500: #000000, + 600: #ffffff, + 700: #ffffff, + 800: #ffffff, + 900: #ffffff, + 950: #ffffff, + 990: #ffffff, + 1000: #ffffff + ) +); + +$secondary-colors: ( + 002: #ffffff, + 010: #fafdff, + 050: #dff4ff, + 100: #baeaff, + 200: #5cd4ff, + 300: #20b9e5, + 400: #009dc4, + 500: #0081a2, + 600: #006782, + 700: #004d62, + 800: #003545, + 900: #001f29, + 950: #0D1617, + 1000: #000000, + contrast: ( + 002: #000000, + 050: #000000, + 100: #000000, + 200: #000000, + 300: #000000, + 400: #000000, + 500: #000000, + 600: #000000, + 700: #ffffff, + 800: #ffffff, + 900: #ffffff, + 950: #ffffff, + 990: #ffffff, + 1000: #ffffff + ) +); + +$tertiary-colors: ( + 002: #ffffff, + 010: #FDFCFF, + 050: #EAF1FF, + 100: #d3e4ff, + 200: #a3c9ff, + 300: #74aef8, + 400: #5793db, + 500: #3a79c0, + 600: #1660a5, + 700: #004882, + 800: #00315c, + 900: #001c38, + 950: #0D1317, + 1000: #000000, + contrast: ( + 002: #000000, + 100: #000000, + 200: #000000, + 300: #000000, + 400: #000000, + 500: #000000, + 600: #ffffff, + 700: #ffffff, + 800: #ffffff, + 900: #ffffff, + 950: #ffffff, + 990: #ffffff, + 1000: #ffffff + ) +); + +$neutral-colors: ( + 002: #ffffff, + 010: #FAFDFF, + 050: #D0F8FF, + 100: #a6eeff, + 200: #53d7f1, + 300: #29bbd5, + 400: #009fb6, + 500: #008396, + 600: #006878, + 700: #004e5b, + 800: #00363f, + 900: #001f25, + 950: #001013, + 1000: #000000, + contrast: ( + 002: #000, + 100: #000, + 200: #000, + 300: #000, + 400: #000, + 500: #000, + 600: #fff, + 700: #fff, + 800: #fff, + 900: #fff, + 950: #fff, + 990: #fff, + 1000: #fff + ) +); + +$neutral-variant-colors: ( + 002: #ffffff, + 010: #FAFDFF, + 050: #EAF2F7, + 100: #E9F2F6, + 200: #c0c8cc, + 300: #a4acb1, + 400: #8a9296, + 500: #70787d, + 600: #576064, + 700: #40484c, + 800: #2a3235, + 900: #151d20, + 1000: #000000, + contrast: ( + 002: #000, + 010: #000, + 050: #000, + 100: #000, + 200: #000, + 300: #000, + 400: #000, + 500: #fff, + 600: #fff, + 700: #fff, + 800: #fff, + 900: #fff, + 1000: #fff + ) +); + +$error-colors: ( + 002: #ffffff, + 010: #FFFBFF, + 050: #FFEDEA, + 100: #FFEDEA, + 200: #FFC7C2, + 300: #FFA19A, + 400: #FF7A71, + 500: #ff5449, + 600: #de3730, + 700: #ba1a1a, + 800: #93000a, + 900: #690005, + 1000: #410002, + contrast: ( + 002: #000, + 100: #000, + 200: #000, + 300: #000, + 400: #000, + 500: #000, + 600: #fff, + 700: #fff, + 800: #fff, + 900: #fff, + 950: #fff, + 990: #fff, + 1000: #fff + ) +); + + //Background palette for dark themes. +$dark-theme-background-palette-redef: ( + status-bar: black, + app-bar: map.get($neutral-colors, 900), + background: map.get($neutral-colors, 950), + hover: rgba(white, 0.04), + card: map.get($neutral-colors, 800), + dialog: map.get($neutral-colors, 900), + disabled-button: rgba(white, 0.12), + raised-button: map.get($neutral-colors, 800), + selected-button: map.get($neutral-colors, 900), + selected-disabled-button: map.get($neutral-colors, 800), + disabled-button-toggle: black, + unselected-chip: map.get($neutral-colors, 700), + disabled-list-option: rgba(white, 0.12), + tooltip: map.get($neutral-colors, 700), +); + +// Foreground palette for dark themes. +//$light-theme-background-palette +$dark-theme-foreground-palette-redef: ( + base: white, + disabled-button: rgba(white, 0.3), + elevation: map.get($primary-colors, 200), + icon: white, + icons: white, + text: white, + slider-min: white, + slider-off: rgba(white, 0.3), + slider-off-active: rgba(white, 0.3), +); diff --git a/projects/ngx-reactome-style/src/assets/_variables.scss b/projects/ngx-reactome-style/src/assets/_variables.scss new file mode 100644 index 0000000..cae671b --- /dev/null +++ b/projects/ngx-reactome-style/src/assets/_variables.scss @@ -0,0 +1,113 @@ +@use "@angular/material" as mat; +@use "sass:map"; + +@mixin theme($palettes) { + $primary-palette: map.get($palettes, 'primary-palette'); + $secondary-palette: map.get($palettes, 'secondary-palette'); + $tertiary-palette: map.get($palettes, 'tertiary-palette'); + $error-palette: map.get($palettes, 'error-palette'); + $neutral-palette: map.get($palettes, 'neutral-palette'); + $neutral-variant-palette: map.get($palettes, 'neutral-variant-palette'); + + + $primary: mat.get-color-from-palette($primary-palette, 600); + $surface: mat.get-color-from-palette($neutral-palette, 010); + :root { + --primary: #{$primary}; + --on-primary: #{mat.get-color-from-palette($primary-palette, 002)}; + --primary-container: #{mat.get-color-from-palette($primary-palette, 100)}; + --on-primary-container: #{mat.get-color-from-palette($primary-palette, 900)}; + + --secondary: #{ mat.get-color-from-palette($secondary-palette, 600)}; + --on-secondary: #{mat.get-color-from-palette($secondary-palette, 002)}; + --secondary-container: #{ mat.get-color-from-palette($secondary-palette, 100)}; + --on-secondary-container: #{ mat.get-color-from-palette($secondary-palette, 900)}; + + --tertiary: #{mat.get-color-from-palette($tertiary-palette, 600)}; + --on-tertiary: #{mat.get-color-from-palette($tertiary-palette, 002)}; + --tertiary-container: #{ mat.get-color-from-palette($tertiary-palette, 100)}; + --on-tertiary-container: #{ mat.get-color-from-palette($tertiary-palette, 900)}; + + --error: #{mat.get-color-from-palette($error-palette, 600)}; + --on-error: #{mat.get-color-from-palette($error-palette, 002)}; + --error-container: #{ mat.get-color-from-palette($error-palette, 100)}; + --on-error-container: #{mat.get-color-from-palette($error-palette, 900)}; + + --background: #{mat.get-color-from-palette($neutral-palette, 010)}; + --on-background: #{mat.get-color-from-palette($neutral-palette, 900)}; + --surface: #{$surface}; + --on-surface: #{mat.get-color-from-palette($neutral-palette, 900)}; + + --surface-variant: #{mat.get-color-from-palette($neutral-variant-palette, 100)}; + --on-surface-variant: #{mat.get-color-from-palette($neutral-variant-palette, 700)}; + --outline: #{mat.get-color-from-palette($neutral-variant-palette, 500)}; + --outline-variant: #{mat.get-color-from-palette($neutral-variant-palette, 200)}; + + + --surface1: #{linear-gradient(0, transparentize($primary, 0.95), transparentize($primary, 0.95)), $surface}; + --surface2: #{linear-gradient(0, transparentize($primary, 0.92), transparentize($primary, 0.92)), $surface}; + --surface3: #{linear-gradient(0, transparentize($primary, 0.89), transparentize($primary, 0.89)), $surface}; + --surface4: #{linear-gradient(0, transparentize($primary, 0.88), transparentize($primary, 0.88)), $surface}; + --surface5: #{linear-gradient(0, transparentize($primary, 0.86), transparentize($primary, 0.86)), $surface}; + + --card: #{mat.get-color-from-palette($neutral-palette, 010)}; + + --icon-positive: #0C9509; + --hover: rgba(0, 0, 0, 0.04); + } + + + .dark { + $primary: mat.get-color-from-palette($primary-palette, 200); + $surface: mat.get-color-from-palette($neutral-palette, 900); + + + --primary: #{$primary}; + --on-primary: #{mat.get-color-from-palette($primary-palette, 950)}; + --primary-container: #{mat.get-color-from-palette($primary-palette, 700)}; + --on-primary-container: #{mat.get-color-from-palette($primary-palette, 100)}; + + --secondary: #{mat.get-color-from-palette($secondary-palette, 200)}; + --on-secondary: #{mat.get-color-from-palette($secondary-palette, 800)}; + --secondary-container: #{mat.get-color-from-palette($secondary-palette, 700)}; + --on-secondary-container: #{mat.get-color-from-palette($secondary-palette, 100)}; + + --tertiary: #{mat.get-color-from-palette($tertiary-palette, 200)}; + --on-tertiary: #{mat.get-color-from-palette($tertiary-palette, 950)}; + --tertiary-container: #{mat.get-color-from-palette($tertiary-palette, 700)}; + --on-tertiary-container: #{mat.get-color-from-palette($tertiary-palette, 100)}; + + --error: #{mat.get-color-from-palette($error-palette, 200)}; + --on-error: #{mat.get-color-from-palette($error-palette, 800)}; + --error-container: #{mat.get-color-from-palette($error-palette, 700)}; + --on-error-container: #{mat.get-color-from-palette($error-palette, 100)}; + + --background: #{mat.get-color-from-palette($neutral-palette, 900)}; + --on-background: #{mat.get-color-from-palette($neutral-palette, 100)}; + --surface: #{$surface}; + --on-surface: #{mat.get-color-from-palette($neutral-palette, 100)}; + + --surface-variant: #{mat.get-color-from-palette($neutral-variant-palette, 800)}; + --on-surface-variant: #{mat.get-color-from-palette($neutral-variant-palette, 200)}; + --outline: #{mat.get-color-from-palette($neutral-variant-palette, 400)}; + --outline-variant: #{mat.get-color-from-palette($neutral-variant-palette, 700)}; + + --surface1: #{linear-gradient(0, transparentize($primary, 0.95), transparentize($primary, 0.95)), $surface}; + --surface2: #{linear-gradient(0, transparentize($primary, 0.92), transparentize($primary, 0.92)), $surface}; + --surface3: #{linear-gradient(0, transparentize($primary, 0.89), transparentize($primary, 0.89)), $surface}; + --surface4: #{linear-gradient(0, transparentize($primary, 0.88), transparentize($primary, 0.88)), $surface}; + --surface5: #{linear-gradient(0, transparentize($primary, 0.86), transparentize($primary, 0.86)), $surface}; + + --card: #{mat.get-color-from-palette($neutral-palette, 800)}; + + --icon-positive: #51F44D; + --hover: rgba(255, 255, 255, 0.04); + } +} + + + + + + + diff --git a/projects/ngx-reactome-style/src/assets/theme-helper.scss b/projects/ngx-reactome-style/src/assets/theme-helper.scss new file mode 100644 index 0000000..0e8328a --- /dev/null +++ b/projects/ngx-reactome-style/src/assets/theme-helper.scss @@ -0,0 +1,36 @@ +@function modify-background($theme, $background-palette) { + // Replace the background in the color object's background palette. + $theme-color: map-get($theme, color); + $color-background-palette: map-get($theme-color, background); + $color-background-palette: map-merge($color-background-palette, $background-palette); + + // Replace the background in the background palette. + $background-palette: map-get($theme, background); + $background-palette: map-merge($background-palette, $background-palette); + + // Merge the changes into a new theme. + $modified-theme-color: map-merge($theme-color, (background: $color-background-palette)); + $modified-theme: map-merge($theme, (color: $modified-theme-color)); + $modified-theme: map-merge($modified-theme, (background: $background-palette)); + + @return $modified-theme; +} + + +@function modify-foreground($theme, $foreground-palette) { + // Replace the foreground in the color object's foreground palette. + $theme-color: map-get($theme, color); + $color-foreground-palette: map-get($theme-color, foreground); + $color-foreground-palette: map-merge($color-foreground-palette, $foreground-palette); + + // Replace the foreground in the foreground palette. + $foreground-palette: map-get($theme, foreground); + $foreground-palette: map-merge($foreground-palette, $foreground-palette); + + // Merge the changes into a new theme. + $modified-theme-color: map-merge($theme-color, (foreground: $color-foreground-palette)); + $modified-theme: map-merge($theme, (color: $modified-theme-color)); + $modified-theme: map-merge($modified-theme, (foreground: $foreground-palette)); + + @return $modified-theme; +} diff --git a/src/app/app.config.ts b/src/app/app.config.ts index 6c6ef60..1f12eda 100644 --- a/src/app/app.config.ts +++ b/src/app/app.config.ts @@ -2,7 +2,8 @@ import { ApplicationConfig } from '@angular/core'; import { provideRouter } from '@angular/router'; import { routes } from './app.routes'; +import { provideAnimationsAsync } from '@angular/platform-browser/animations/async'; export const appConfig: ApplicationConfig = { - providers: [provideRouter(routes)] + providers: [provideRouter(routes), provideAnimationsAsync('noop')] }; diff --git a/src/assets/.gitkeep b/src/assets/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/src/index.html b/src/index.html index ea7d510..302eb80 100644 --- a/src/index.html +++ b/src/index.html @@ -6,6 +6,8 @@ + + diff --git a/src/styles.css b/src/styles.css index 90d4ee0..7e7239a 100644 --- a/src/styles.css +++ b/src/styles.css @@ -1 +1,4 @@ /* You can add global styles to this file, and also import other style files */ + +html, body { height: 100%; } +body { margin: 0; font-family: Roboto, "Helvetica Neue", sans-serif; } diff --git a/tsconfig.json b/tsconfig.json index eb49734..4dde7e2 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -9,6 +9,11 @@ "noImplicitReturns": true, "noFallthroughCasesInSwitch": true, "skipLibCheck": true, + "paths": { + "ngx-reactome-style": [ + "./dist/ngx-reactome-style" + ] + }, "esModuleInterop": true, "sourceMap": true, "declaration": false, From 4b76ebfa5f021750f8fb46ac0cdec90645354e53 Mon Sep 17 00:00:00 2001 From: Deidre Beavers <107586218+beaversd@users.noreply.github.com> Date: Thu, 2 May 2024 15:30:54 -0700 Subject: [PATCH 03/49] Initialize styles --- projects/ngx-reactome-style/README.md | 24 ++++++++++++ projects/ngx-reactome-style/ng-package.json | 14 +++++++ projects/ngx-reactome-style/package.json | 12 ++++++ .../lib/ngx-reactome-style.component.spec.ts | 23 ++++++++++++ .../src/lib/ngx-reactome-style.component.ts | 16 ++++++++ .../lib/ngx-reactome-style.service.spec.ts | 16 ++++++++ .../src/lib/ngx-reactome-style.service.ts | 9 +++++ projects/ngx-reactome-style/src/public-api.ts | 5 +++ projects/ngx-reactome-style/tsconfig.lib.json | 14 +++++++ .../ngx-reactome-style/tsconfig.lib.prod.json | 10 +++++ .../ngx-reactome-style/tsconfig.spec.json | 14 +++++++ src/custom-theme.scss | 37 +++++++++++++++++++ 12 files changed, 194 insertions(+) create mode 100644 projects/ngx-reactome-style/README.md create mode 100644 projects/ngx-reactome-style/ng-package.json create mode 100644 projects/ngx-reactome-style/package.json create mode 100644 projects/ngx-reactome-style/src/lib/ngx-reactome-style.component.spec.ts create mode 100644 projects/ngx-reactome-style/src/lib/ngx-reactome-style.component.ts create mode 100644 projects/ngx-reactome-style/src/lib/ngx-reactome-style.service.spec.ts create mode 100644 projects/ngx-reactome-style/src/lib/ngx-reactome-style.service.ts create mode 100644 projects/ngx-reactome-style/src/public-api.ts create mode 100644 projects/ngx-reactome-style/tsconfig.lib.json create mode 100644 projects/ngx-reactome-style/tsconfig.lib.prod.json create mode 100644 projects/ngx-reactome-style/tsconfig.spec.json create mode 100644 src/custom-theme.scss diff --git a/projects/ngx-reactome-style/README.md b/projects/ngx-reactome-style/README.md new file mode 100644 index 0000000..32de926 --- /dev/null +++ b/projects/ngx-reactome-style/README.md @@ -0,0 +1,24 @@ +# NgxReactomeStyle + +This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 17.3.0. + +## Code scaffolding + +Run `ng generate component component-name --project ngx-reactome-style` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module --project ngx-reactome-style`. +> Note: Don't forget to add `--project ngx-reactome-style` or else it will be added to the default project in your `angular.json` file. + +## Build + +Run `ng build ngx-reactome-style` to build the project. The build artifacts will be stored in the `dist/` directory. + +## Publishing + +After building your library with `ng build ngx-reactome-style`, go to the dist folder `cd dist/ngx-reactome-style` and run `npm publish`. + +## Running unit tests + +Run `ng test ngx-reactome-style` to execute the unit tests via [Karma](https://karma-runner.github.io). + +## Further help + +To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page. diff --git a/projects/ngx-reactome-style/ng-package.json b/projects/ngx-reactome-style/ng-package.json new file mode 100644 index 0000000..69dbff3 --- /dev/null +++ b/projects/ngx-reactome-style/ng-package.json @@ -0,0 +1,14 @@ +{ + "$schema": "../../node_modules/ng-packagr/ng-package.schema.json", + "dest": "../../dist/ngx-reactome-style", + "lib": { + "entryFile": "src/public-api.ts" + }, + "assets": [ + { + "glob": "**/*", + "input": "/src/assets/", + "output": "/" + } + ] +} diff --git a/projects/ngx-reactome-style/package.json b/projects/ngx-reactome-style/package.json new file mode 100644 index 0000000..3444c15 --- /dev/null +++ b/projects/ngx-reactome-style/package.json @@ -0,0 +1,12 @@ +{ + "name": "ngx-reactome-style", + "version": "0.0.1", + "peerDependencies": { + "@angular/common": "^17.3.0", + "@angular/core": "^17.3.0" + }, + "dependencies": { + "tslib": "^2.3.0" + }, + "sideEffects": false +} diff --git a/projects/ngx-reactome-style/src/lib/ngx-reactome-style.component.spec.ts b/projects/ngx-reactome-style/src/lib/ngx-reactome-style.component.spec.ts new file mode 100644 index 0000000..52de55a --- /dev/null +++ b/projects/ngx-reactome-style/src/lib/ngx-reactome-style.component.spec.ts @@ -0,0 +1,23 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { NgxReactomeStyleComponent } from './ngx-reactome-style.component'; + +describe('NgxReactomeStyleComponent', () => { + let component: NgxReactomeStyleComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + imports: [NgxReactomeStyleComponent] + }) + .compileComponents(); + + fixture = TestBed.createComponent(NgxReactomeStyleComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/projects/ngx-reactome-style/src/lib/ngx-reactome-style.component.ts b/projects/ngx-reactome-style/src/lib/ngx-reactome-style.component.ts new file mode 100644 index 0000000..74badce --- /dev/null +++ b/projects/ngx-reactome-style/src/lib/ngx-reactome-style.component.ts @@ -0,0 +1,16 @@ +import { Component } from '@angular/core'; + +@Component({ + selector: 'lib-ngx-reactome-style', + standalone: true, + imports: [], + template: ` +

+ ngx-reactome-style works! +

+ `, + styles: `` +}) +export class NgxReactomeStyleComponent { + +} diff --git a/projects/ngx-reactome-style/src/lib/ngx-reactome-style.service.spec.ts b/projects/ngx-reactome-style/src/lib/ngx-reactome-style.service.spec.ts new file mode 100644 index 0000000..93c2102 --- /dev/null +++ b/projects/ngx-reactome-style/src/lib/ngx-reactome-style.service.spec.ts @@ -0,0 +1,16 @@ +import { TestBed } from '@angular/core/testing'; + +import { NgxReactomeStyleService } from './ngx-reactome-style.service'; + +describe('NgxReactomeStyleService', () => { + let service: NgxReactomeStyleService; + + beforeEach(() => { + TestBed.configureTestingModule({}); + service = TestBed.inject(NgxReactomeStyleService); + }); + + it('should be created', () => { + expect(service).toBeTruthy(); + }); +}); diff --git a/projects/ngx-reactome-style/src/lib/ngx-reactome-style.service.ts b/projects/ngx-reactome-style/src/lib/ngx-reactome-style.service.ts new file mode 100644 index 0000000..9630fac --- /dev/null +++ b/projects/ngx-reactome-style/src/lib/ngx-reactome-style.service.ts @@ -0,0 +1,9 @@ +import { Injectable } from '@angular/core'; + +@Injectable({ + providedIn: 'root' +}) +export class NgxReactomeStyleService { + + constructor() { } +} diff --git a/projects/ngx-reactome-style/src/public-api.ts b/projects/ngx-reactome-style/src/public-api.ts new file mode 100644 index 0000000..b62b9d3 --- /dev/null +++ b/projects/ngx-reactome-style/src/public-api.ts @@ -0,0 +1,5 @@ +/* + * Public API Surface of ngx-reactome-style + */ + +export default {}; diff --git a/projects/ngx-reactome-style/tsconfig.lib.json b/projects/ngx-reactome-style/tsconfig.lib.json new file mode 100644 index 0000000..543fd47 --- /dev/null +++ b/projects/ngx-reactome-style/tsconfig.lib.json @@ -0,0 +1,14 @@ +/* To learn more about this file see: https://angular.io/config/tsconfig. */ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "outDir": "../../out-tsc/lib", + "declaration": true, + "declarationMap": true, + "inlineSources": true, + "types": [] + }, + "exclude": [ + "**/*.spec.ts" + ] +} diff --git a/projects/ngx-reactome-style/tsconfig.lib.prod.json b/projects/ngx-reactome-style/tsconfig.lib.prod.json new file mode 100644 index 0000000..06de549 --- /dev/null +++ b/projects/ngx-reactome-style/tsconfig.lib.prod.json @@ -0,0 +1,10 @@ +/* To learn more about this file see: https://angular.io/config/tsconfig. */ +{ + "extends": "./tsconfig.lib.json", + "compilerOptions": { + "declarationMap": false + }, + "angularCompilerOptions": { + "compilationMode": "partial" + } +} diff --git a/projects/ngx-reactome-style/tsconfig.spec.json b/projects/ngx-reactome-style/tsconfig.spec.json new file mode 100644 index 0000000..ce7048b --- /dev/null +++ b/projects/ngx-reactome-style/tsconfig.spec.json @@ -0,0 +1,14 @@ +/* To learn more about this file see: https://angular.io/config/tsconfig. */ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "outDir": "../../out-tsc/spec", + "types": [ + "jasmine" + ] + }, + "include": [ + "**/*.spec.ts", + "**/*.d.ts" + ] +} diff --git a/src/custom-theme.scss b/src/custom-theme.scss new file mode 100644 index 0000000..31b428f --- /dev/null +++ b/src/custom-theme.scss @@ -0,0 +1,37 @@ + +// Custom Theming for Angular Material +// For more information: https://material.angular.io/guide/theming +@use '@angular/material' as mat; +// Plus imports for other components in your app. + +// Include the common styles for Angular Material. We include this here so that you only +// have to load a single css file for Angular Material in your app. +// Be sure that you only ever include this mixin once! +@include mat.core(); + +// Define the palettes for your theme using the Material Design palettes available in palette.scss +// (imported above). For each palette, you can optionally specify a default, lighter, and darker +// hue. Available color palettes: https://material.io/design/color/ +$ngx-reactome-base-primary: mat.define-palette(mat.$indigo-palette); +$ngx-reactome-base-accent: mat.define-palette(mat.$pink-palette, A200, A100, A400); + +// The warn palette is optional (defaults to red). +$ngx-reactome-base-warn: mat.define-palette(mat.$red-palette); + +// Create the theme object. A theme consists of configurations for individual +// theming systems such as "color" or "typography". +$ngx-reactome-base-theme: mat.define-light-theme(( + color: ( + primary: $ngx-reactome-base-primary, + accent: $ngx-reactome-base-accent, + warn: $ngx-reactome-base-warn, + ), + typography: mat.define-typography-config(), + density: 0 +)); + +// Include theme styles for core and each component used in your app. +// Alternatively, you can import and @include the theme mixins for each component +// that you are using. +@include mat.all-component-themes($ngx-reactome-base-theme); + From ae75908203446feda0243f9d8cea7568a520e625 Mon Sep 17 00:00:00 2001 From: Deidre Beavers <107586218+beaversd@users.noreply.github.com> Date: Fri, 3 May 2024 16:27:52 -0700 Subject: [PATCH 04/49] Adding the diagram --- angular.json | 66 + package-lock.json | 1810 ++++++++++++++++- package.json | 32 +- .../ngx-reactome-cytoscape-style/README.md | 239 +++ .../assets/Rx.svg | 3 + .../ng-package.json | 14 + .../ngx-reactome-cytoscape-style/package.json | 34 + .../src/lib/color.ts | 147 ++ .../src/lib/drawer/image-builder.ts | 197 ++ .../src/lib/drawer/shape/cell-shape.ts | 76 + .../src/lib/drawer/shape/complex-shape.ts | 112 + .../drawer/shape/disease-interactor-shape.ts | 70 + .../src/lib/drawer/shape/entity-sets-shape.ts | 164 ++ .../src/lib/drawer/shape/gee-shape.ts | 122 ++ .../src/lib/drawer/shape/gene-shape.ts | 122 ++ .../drawer/shape/interacting-pathway-shape.ts | 46 + .../src/lib/drawer/shape/molecule-shape.ts | 78 + .../src/lib/drawer/shape/protein-shape.ts | 68 + .../src/lib/drawer/shape/rna-shape.ts | 75 + .../src/lib/drawer/shape/sub-pathway-shape.ts | 69 + .../src/lib/drawer/types.ts | 35 + .../src/lib/interactivity.ts | 345 ++++ .../src/lib/model/reactome-event.model.ts | 25 + .../src/lib/properties-utils.ts | 51 + .../src/lib/properties.ts | 228 +++ .../src/lib/style.ts | 836 ++++++++ .../src/lib/types.ts | 30 + .../src/public-api.ts | 10 + .../tsconfig.lib.json | 14 + .../tsconfig.lib.prod.json | 10 + .../tsconfig.spec.json | 14 + .../types/cytoscape/index.d.ts | 37 + .../src/app/app-routing.module.ts | 18 + .../src/app/app.component.css | 3 + .../src/app/app.component.css.map | 1 + .../src/app/app.component.html | 1 + .../src/app/app.component.scss | 0 .../src/app/app.component.spec.ts | 27 + .../src/app/app.component.ts | 10 + .../src/app/app.module.ts | 60 + .../diagram-iterator.component.html | 13 + .../diagram-iterator.component.scss | 0 .../diagram-iterator.component.spec.ts | 21 + .../diagram-iterator.component.ts | 46 + .../src/app/diagram/diagram.component.html | 59 + .../src/app/diagram/diagram.component.scss | 234 +++ .../src/app/diagram/diagram.component.spec.ts | 21 + .../src/app/diagram/diagram.component.ts | 446 ++++ .../src/app/model/diagram.model.ts | 137 ++ .../src/app/model/graph.model.ts | 32 + .../src/app/services/dark.service.ts | 41 + .../services/diagram-state.service.spec.ts | 16 + .../src/app/services/diagram-state.service.ts | 84 + .../src/app/services/diagram.service.spec.ts | 34 + .../src/app/services/diagram.service.ts | 803 ++++++++ .../src/app/services/roundness.ts | 69 + .../ngx-reactome-diagram/src/assets/.gitkeep | 0 .../src/assets/data/diagrams-dev-no-ehld.txt | 991 +++++++++ .../src/assets/data/diagrams-dev.txt | 1180 +++++++++++ .../src/assets/data/diagrams-prod.txt | 1209 +++++++++++ .../src/assets/json/legend.json | 940 +++++++++ projects/ngx-reactome-diagram/src/favicon.ico | Bin 0 -> 948 bytes projects/ngx-reactome-diagram/src/index.html | 18 + projects/ngx-reactome-diagram/src/main.ts | 7 + projects/ngx-reactome-diagram/src/styles.scss | 9 + .../src/theme/_palette.scss | 233 +++ .../src/theme/_variables.scss | 114 ++ .../src/theme/custom-theme.scss | 144 ++ .../src/theme/theme-helper.scss | 36 + projects/ngx-reactome-style/package.json | 4 +- tsconfig.app.json | 3 +- tsconfig.json | 12 +- 72 files changed, 12198 insertions(+), 57 deletions(-) create mode 100644 projects/ngx-reactome-cytoscape-style/README.md create mode 100644 projects/ngx-reactome-cytoscape-style/assets/Rx.svg create mode 100644 projects/ngx-reactome-cytoscape-style/ng-package.json create mode 100644 projects/ngx-reactome-cytoscape-style/package.json create mode 100644 projects/ngx-reactome-cytoscape-style/src/lib/color.ts create mode 100644 projects/ngx-reactome-cytoscape-style/src/lib/drawer/image-builder.ts create mode 100644 projects/ngx-reactome-cytoscape-style/src/lib/drawer/shape/cell-shape.ts create mode 100644 projects/ngx-reactome-cytoscape-style/src/lib/drawer/shape/complex-shape.ts create mode 100644 projects/ngx-reactome-cytoscape-style/src/lib/drawer/shape/disease-interactor-shape.ts create mode 100644 projects/ngx-reactome-cytoscape-style/src/lib/drawer/shape/entity-sets-shape.ts create mode 100644 projects/ngx-reactome-cytoscape-style/src/lib/drawer/shape/gee-shape.ts create mode 100644 projects/ngx-reactome-cytoscape-style/src/lib/drawer/shape/gene-shape.ts create mode 100644 projects/ngx-reactome-cytoscape-style/src/lib/drawer/shape/interacting-pathway-shape.ts create mode 100644 projects/ngx-reactome-cytoscape-style/src/lib/drawer/shape/molecule-shape.ts create mode 100644 projects/ngx-reactome-cytoscape-style/src/lib/drawer/shape/protein-shape.ts create mode 100644 projects/ngx-reactome-cytoscape-style/src/lib/drawer/shape/rna-shape.ts create mode 100644 projects/ngx-reactome-cytoscape-style/src/lib/drawer/shape/sub-pathway-shape.ts create mode 100644 projects/ngx-reactome-cytoscape-style/src/lib/drawer/types.ts create mode 100644 projects/ngx-reactome-cytoscape-style/src/lib/interactivity.ts create mode 100644 projects/ngx-reactome-cytoscape-style/src/lib/model/reactome-event.model.ts create mode 100644 projects/ngx-reactome-cytoscape-style/src/lib/properties-utils.ts create mode 100644 projects/ngx-reactome-cytoscape-style/src/lib/properties.ts create mode 100644 projects/ngx-reactome-cytoscape-style/src/lib/style.ts create mode 100644 projects/ngx-reactome-cytoscape-style/src/lib/types.ts create mode 100644 projects/ngx-reactome-cytoscape-style/src/public-api.ts create mode 100644 projects/ngx-reactome-cytoscape-style/tsconfig.lib.json create mode 100644 projects/ngx-reactome-cytoscape-style/tsconfig.lib.prod.json create mode 100644 projects/ngx-reactome-cytoscape-style/tsconfig.spec.json create mode 100644 projects/ngx-reactome-cytoscape-style/types/cytoscape/index.d.ts create mode 100644 projects/ngx-reactome-diagram/src/app/app-routing.module.ts create mode 100644 projects/ngx-reactome-diagram/src/app/app.component.css create mode 100644 projects/ngx-reactome-diagram/src/app/app.component.css.map create mode 100644 projects/ngx-reactome-diagram/src/app/app.component.html create mode 100644 projects/ngx-reactome-diagram/src/app/app.component.scss create mode 100644 projects/ngx-reactome-diagram/src/app/app.component.spec.ts create mode 100644 projects/ngx-reactome-diagram/src/app/app.component.ts create mode 100644 projects/ngx-reactome-diagram/src/app/app.module.ts create mode 100644 projects/ngx-reactome-diagram/src/app/diagram-iterator/diagram-iterator.component.html create mode 100644 projects/ngx-reactome-diagram/src/app/diagram-iterator/diagram-iterator.component.scss create mode 100644 projects/ngx-reactome-diagram/src/app/diagram-iterator/diagram-iterator.component.spec.ts create mode 100644 projects/ngx-reactome-diagram/src/app/diagram-iterator/diagram-iterator.component.ts create mode 100644 projects/ngx-reactome-diagram/src/app/diagram/diagram.component.html create mode 100644 projects/ngx-reactome-diagram/src/app/diagram/diagram.component.scss create mode 100644 projects/ngx-reactome-diagram/src/app/diagram/diagram.component.spec.ts create mode 100644 projects/ngx-reactome-diagram/src/app/diagram/diagram.component.ts create mode 100644 projects/ngx-reactome-diagram/src/app/model/diagram.model.ts create mode 100644 projects/ngx-reactome-diagram/src/app/model/graph.model.ts create mode 100644 projects/ngx-reactome-diagram/src/app/services/dark.service.ts create mode 100644 projects/ngx-reactome-diagram/src/app/services/diagram-state.service.spec.ts create mode 100644 projects/ngx-reactome-diagram/src/app/services/diagram-state.service.ts create mode 100644 projects/ngx-reactome-diagram/src/app/services/diagram.service.spec.ts create mode 100644 projects/ngx-reactome-diagram/src/app/services/diagram.service.ts create mode 100644 projects/ngx-reactome-diagram/src/app/services/roundness.ts create mode 100644 projects/ngx-reactome-diagram/src/assets/.gitkeep create mode 100644 projects/ngx-reactome-diagram/src/assets/data/diagrams-dev-no-ehld.txt create mode 100644 projects/ngx-reactome-diagram/src/assets/data/diagrams-dev.txt create mode 100644 projects/ngx-reactome-diagram/src/assets/data/diagrams-prod.txt create mode 100644 projects/ngx-reactome-diagram/src/assets/json/legend.json create mode 100644 projects/ngx-reactome-diagram/src/favicon.ico create mode 100644 projects/ngx-reactome-diagram/src/index.html create mode 100644 projects/ngx-reactome-diagram/src/main.ts create mode 100644 projects/ngx-reactome-diagram/src/styles.scss create mode 100644 projects/ngx-reactome-diagram/src/theme/_palette.scss create mode 100644 projects/ngx-reactome-diagram/src/theme/_variables.scss create mode 100644 projects/ngx-reactome-diagram/src/theme/custom-theme.scss create mode 100644 projects/ngx-reactome-diagram/src/theme/theme-helper.scss diff --git a/angular.json b/angular.json index 19d360f..e00967c 100644 --- a/angular.json +++ b/angular.json @@ -124,6 +124,72 @@ } } } + }, + "ngx-reactome-diagram": { + "projectType": "library", + "root": "projects/ngx-reactome-diagram", + "sourceRoot": "projects/ngx-reactome-diagram/src", + "prefix": "lib", + "architect": { + "build": { + "builder": "@angular-devkit/build-angular:ng-packagr", + "options": { + "project": "projects/ngx-reactome-diagram/ng-package.json" + }, + "configurations": { + "production": { + "tsConfig": "projects/ngx-reactome-diagram/tsconfig.lib.prod.json" + }, + "development": { + "tsConfig": "projects/ngx-reactome-diagram/tsconfig.lib.json" + } + }, + "defaultConfiguration": "production" + }, + "test": { + "builder": "@angular-devkit/build-angular:karma", + "options": { + "tsConfig": "projects/ngx-reactome-diagram/tsconfig.spec.json", + "polyfills": [ + "zone.js", + "zone.js/testing" + ] + } + } + } + }, + "ngx-reactome-cytoscape-style": { + "projectType": "library", + "root": "projects/ngx-reactome-cytoscape-style", + "sourceRoot": "projects/ngx-reactome-cytoscape-style/src", + "prefix": "lib", + "architect": { + "build": { + "builder": "@angular-devkit/build-angular:ng-packagr", + "options": { + "project": "projects/ngx-reactome-cytoscape-style/ng-package.json" + }, + "configurations": { + "production": { + "tsConfig": "projects/ngx-reactome-cytoscape-style/tsconfig.lib.prod.json" + }, + "development": { + "tsConfig": "projects/ngx-reactome-cytoscape-style/tsconfig.lib.json" + } + }, + "defaultConfiguration": "production" + }, + "test": { + "builder": "@angular-devkit/build-angular:karma", + "options": { + "tsConfig": "projects/ngx-reactome-cytoscape-style/tsconfig.spec.json", + "polyfills": [ + "zone.js", + "zone.js/testing" + ] + } + } + } } } } diff --git a/package-lock.json b/package-lock.json index 53fd123..f389b1e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,40 +1,51 @@ { "name": "ngx-reactome-base", - "version": "0.0.0", + "version": "0.0.2", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "ngx-reactome-base", - "version": "0.0.0", + "version": "0.0.2", "dependencies": { "@angular/animations": "^17.3.0", - "@angular/cdk": "^17.3.7", + "@angular/cdk": "^17.3.0", "@angular/common": "^17.3.0", "@angular/compiler": "^17.3.0", "@angular/core": "^17.3.0", "@angular/forms": "^17.3.0", "@angular/material": "^17.3.7", - "@angular/platform-browser": "^17.3.0", - "@angular/platform-browser-dynamic": "^17.3.0", - "@angular/router": "^17.3.0", + "@angular/platform-browser": "17.3.7", + "@angular/platform-browser-dynamic": "^17.3.7", + "@angular/router": "^17.3.7", + "@ngneat/until-destroy": "^10.0.0", + "cytoscape": "^3.29.2", + "cytoscape-fcose": "^2.2.0", + "cytoscape-layers": "^2.4.4", + "ngx-reactome-cytoscape-style": "^0.0.5", "rxjs": "~7.8.0", "tslib": "^2.3.0", + "vectorious": "^6.1.12", "zone.js": "~0.14.3" }, "devDependencies": { "@angular-devkit/build-angular": "^17.3.6", "@angular/cli": "^17.3.6", - "@angular/compiler-cli": "^17.3.0", - "@types/jasmine": "~5.1.0", - "jasmine-core": "~5.1.0", + "@angular/compiler-cli": "^17.3.7", + "@types/cytoscape": "^3.21.0", + "@types/cytoscape-fcose": "^2.2.4", + "@types/jasmine": "~4.3.0", + "@types/lodash": "^4.14.202", + "angular-cli-ghpages": "^1.0.6", + "jasmine-core": "~4.6.0", "karma": "~6.4.0", "karma-chrome-launcher": "~3.2.0", "karma-coverage": "~2.2.0", "karma-jasmine": "~5.1.0", "karma-jasmine-html-reporter": "~2.1.0", "ng-packagr": "^17.3.0", - "typescript": "~5.4.2" + "npm-run-all": "^4.1.1", + "typescript": "~5.4.5" } }, "node_modules/@ampproject/remapping": { @@ -51,20 +62,55 @@ } }, "node_modules/@angular-devkit/architect": { - "version": "0.1703.6", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1703.6.tgz", - "integrity": "sha512-Ck501FD/QuOjeKVFs7hU92w8+Ffetv0d5Sq09XY2/uygo5c/thMzp9nkevaIWBxUSeU5RqYZizDrhFVgYzbbOw==", + "version": "0.1601.8", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1601.8.tgz", + "integrity": "sha512-kOXVGwsQnZvtz2UZNefcEy64Jiwq0eSoQUeozvDXOaYRJABLjPKI2YaarvKC9/Z1SGLuje0o/eRJO4T8aRk9rQ==", "dev": true, + "peer": true, "dependencies": { - "@angular-devkit/core": "17.3.6", + "@angular-devkit/core": "16.1.8", "rxjs": "7.8.1" }, "engines": { - "node": "^18.13.0 || >=20.9.0", + "node": "^16.14.0 || >=18.10.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular-devkit/architect/node_modules/@angular-devkit/core": { + "version": "16.1.8", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-16.1.8.tgz", + "integrity": "sha512-dSRD/+bGanArIXkj+kaU1kDFleZeQMzmBiOXX+pK0Ah9/0Yn1VmY3RZh1zcX9vgIQXV+t7UPrTpOjaERMUtVGw==", + "dev": true, + "peer": true, + "dependencies": { + "ajv": "8.12.0", + "ajv-formats": "2.1.1", + "jsonc-parser": "3.2.0", + "rxjs": "7.8.1", + "source-map": "0.7.4" + }, + "engines": { + "node": "^16.14.0 || >=18.10.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/architect/node_modules/jsonc-parser": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", + "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", + "dev": true, + "peer": true + }, "node_modules/@angular-devkit/build-angular": { "version": "17.3.6", "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-17.3.6.tgz", @@ -194,6 +240,48 @@ } } }, + "node_modules/@angular-devkit/build-angular/node_modules/@angular-devkit/architect": { + "version": "0.1703.6", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1703.6.tgz", + "integrity": "sha512-Ck501FD/QuOjeKVFs7hU92w8+Ffetv0d5Sq09XY2/uygo5c/thMzp9nkevaIWBxUSeU5RqYZizDrhFVgYzbbOw==", + "dev": true, + "dependencies": { + "@angular-devkit/core": "17.3.6", + "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-devkit/build-angular/node_modules/@angular-devkit/core": { + "version": "17.3.6", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-17.3.6.tgz", + "integrity": "sha512-FVbkT9dEwHEvjnxr4mvMNSMg2bCFoGoP4X68xXU9dhLEUpC05opLvfbaR3Qh543eCJ5AstosBFVzB/krfIkOvA==", + "dev": true, + "dependencies": { + "ajv": "8.12.0", + "ajv-formats": "2.1.1", + "jsonc-parser": "3.2.1", + "picomatch": "4.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/build-webpack": { "version": "0.1703.6", "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1703.6.tgz", @@ -213,7 +301,22 @@ "webpack-dev-server": "^4.0.0" } }, - "node_modules/@angular-devkit/core": { + "node_modules/@angular-devkit/build-webpack/node_modules/@angular-devkit/architect": { + "version": "0.1703.6", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1703.6.tgz", + "integrity": "sha512-Ck501FD/QuOjeKVFs7hU92w8+Ffetv0d5Sq09XY2/uygo5c/thMzp9nkevaIWBxUSeU5RqYZizDrhFVgYzbbOw==", + "dev": true, + "dependencies": { + "@angular-devkit/core": "17.3.6", + "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-devkit/build-webpack/node_modules/@angular-devkit/core": { "version": "17.3.6", "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-17.3.6.tgz", "integrity": "sha512-FVbkT9dEwHEvjnxr4mvMNSMg2bCFoGoP4X68xXU9dhLEUpC05opLvfbaR3Qh543eCJ5AstosBFVzB/krfIkOvA==", @@ -240,24 +343,93 @@ } } }, + "node_modules/@angular-devkit/core": { + "version": "16.2.14", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-16.2.14.tgz", + "integrity": "sha512-Ui14/d2+p7lnmXlK/AX2ieQEGInBV75lonNtPQgwrYgskF8ufCuN0DyVZQUy9fJDkC+xQxbJyYrby/BS0R0e7w==", + "dev": true, + "peer": true, + "dependencies": { + "ajv": "8.12.0", + "ajv-formats": "2.1.1", + "jsonc-parser": "3.2.0", + "picomatch": "2.3.1", + "rxjs": "7.8.1", + "source-map": "0.7.4" + }, + "engines": { + "node": "^16.14.0 || >=18.10.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/core/node_modules/jsonc-parser": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", + "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", + "dev": true, + "peer": true + }, + "node_modules/@angular-devkit/core/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "peer": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "node_modules/@angular-devkit/schematics": { - "version": "17.3.6", - "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-17.3.6.tgz", - "integrity": "sha512-2G1YuPInd8znG7uUgKOS7z72Aku50lTzB/2csWkWPJLAFkh7vKC8QZ40x8S1nC9npVYPhI5CRLX/HVpBh9CyxA==", + "version": "16.2.14", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-16.2.14.tgz", + "integrity": "sha512-B6LQKInCT8w5zx5Pbroext5eFFRTCJdTwHN8GhcVS8IeKCnkeqVTQLjB4lBUg7LEm8Y7UHXwzrVxmk+f+MBXhw==", "dev": true, + "peer": true, "dependencies": { - "@angular-devkit/core": "17.3.6", - "jsonc-parser": "3.2.1", - "magic-string": "0.30.8", + "@angular-devkit/core": "16.2.14", + "jsonc-parser": "3.2.0", + "magic-string": "0.30.1", "ora": "5.4.1", "rxjs": "7.8.1" }, "engines": { - "node": "^18.13.0 || >=20.9.0", + "node": "^16.14.0 || >=18.10.0", "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", "yarn": ">= 1.13.0" } }, + "node_modules/@angular-devkit/schematics/node_modules/jsonc-parser": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", + "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", + "dev": true, + "peer": true + }, + "node_modules/@angular-devkit/schematics/node_modules/magic-string": { + "version": "0.30.1", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.1.tgz", + "integrity": "sha512-mbVKXPmS0z0G4XqFDCTllmDQ6coZzn94aMlb0o/A4HEHJCKcanlDZwYJgwnkmgD3jyWhUgj9VsPrfd972yPffA==", + "dev": true, + "peer": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.15" + }, + "engines": { + "node": ">=12" + } + }, "node_modules/@angular/animations": { "version": "17.3.7", "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-17.3.7.tgz", @@ -322,6 +494,66 @@ "yarn": ">= 1.13.0" } }, + "node_modules/@angular/cli/node_modules/@angular-devkit/architect": { + "version": "0.1703.6", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1703.6.tgz", + "integrity": "sha512-Ck501FD/QuOjeKVFs7hU92w8+Ffetv0d5Sq09XY2/uygo5c/thMzp9nkevaIWBxUSeU5RqYZizDrhFVgYzbbOw==", + "dev": true, + "dependencies": { + "@angular-devkit/core": "17.3.6", + "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.3.6", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-17.3.6.tgz", + "integrity": "sha512-FVbkT9dEwHEvjnxr4mvMNSMg2bCFoGoP4X68xXU9dhLEUpC05opLvfbaR3Qh543eCJ5AstosBFVzB/krfIkOvA==", + "dev": true, + "dependencies": { + "ajv": "8.12.0", + "ajv-formats": "2.1.1", + "jsonc-parser": "3.2.1", + "picomatch": "4.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/@angular-devkit/schematics": { + "version": "17.3.6", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-17.3.6.tgz", + "integrity": "sha512-2G1YuPInd8znG7uUgKOS7z72Aku50lTzB/2csWkWPJLAFkh7vKC8QZ40x8S1nC9npVYPhI5CRLX/HVpBh9CyxA==", + "dev": true, + "dependencies": { + "@angular-devkit/core": "17.3.6", + "jsonc-parser": "3.2.1", + "magic-string": "0.30.8", + "ora": "5.4.1", + "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/common": { "version": "17.3.7", "resolved": "https://registry.npmjs.org/@angular/common/-/common-17.3.7.tgz", @@ -3712,6 +3944,18 @@ "tslib": "^2.1.0" } }, + "node_modules/@ngneat/until-destroy": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/@ngneat/until-destroy/-/until-destroy-10.0.0.tgz", + "integrity": "sha512-xXFAabQ4YVJ82LYxdgUlaKZyR3dSbxqG3woSyaclzxfCgWMEDweCcM/GGYbNiHJa0WwklI98RXHvca+UyCxpeg==", + "dependencies": { + "tslib": "^2.3.0" + }, + "peerDependencies": { + "@angular/core": ">=13", + "rxjs": "^6.4.0 || ^7.0.0" + } + }, "node_modules/@ngtools/webpack": { "version": "17.3.6", "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-17.3.6.tgz", @@ -4376,6 +4620,51 @@ "yarn": ">= 1.13.0" } }, + "node_modules/@schematics/angular/node_modules/@angular-devkit/core": { + "version": "17.3.6", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-17.3.6.tgz", + "integrity": "sha512-FVbkT9dEwHEvjnxr4mvMNSMg2bCFoGoP4X68xXU9dhLEUpC05opLvfbaR3Qh543eCJ5AstosBFVzB/krfIkOvA==", + "dev": true, + "dependencies": { + "ajv": "8.12.0", + "ajv-formats": "2.1.1", + "jsonc-parser": "3.2.1", + "picomatch": "4.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/@angular-devkit/schematics": { + "version": "17.3.6", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-17.3.6.tgz", + "integrity": "sha512-2G1YuPInd8znG7uUgKOS7z72Aku50lTzB/2csWkWPJLAFkh7vKC8QZ40x8S1nC9npVYPhI5CRLX/HVpBh9CyxA==", + "dev": true, + "dependencies": { + "@angular-devkit/core": "17.3.6", + "jsonc-parser": "3.2.1", + "magic-string": "0.30.8", + "ora": "5.4.1", + "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/@sigstore/bundle": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/@sigstore/bundle/-/bundle-2.3.1.tgz", @@ -4553,6 +4842,20 @@ "@types/node": "*" } }, + "node_modules/@types/cytoscape": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/@types/cytoscape/-/cytoscape-3.21.0.tgz", + "integrity": "sha512-RN5SPiyVDpUP+LoOlxxlOYAMzkE7iuv3gA1jt3Hx2qTwArpZVPPdO+SI0hUj49OAn4QABR7JK9Gi0hibzGE0Aw==" + }, + "node_modules/@types/cytoscape-fcose": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/@types/cytoscape-fcose/-/cytoscape-fcose-2.2.4.tgz", + "integrity": "sha512-QwWtnT8HI9h+DHhG5krGc1ZY0Ex+cn85MvX96ZNAjSxuXiZDnjIZW/ypVkvvubTjIY4rSdkJY1D/Nsn8NDpmAw==", + "dev": true, + "dependencies": { + "@types/cytoscape": "*" + } + }, "node_modules/@types/eslint": { "version": "8.56.10", "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.10.tgz", @@ -4619,9 +4922,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": "4.3.6", + "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-4.3.6.tgz", + "integrity": "sha512-3N0FpQTeiWjm+Oo1WUYWguUS7E6JLceiGTriFrG8k5PU7zRLJCzLcWURU3wjMbZGS//a2/LgjsnO3QxIlwxt9g==", "dev": true }, "node_modules/@types/json-schema": { @@ -4630,6 +4933,12 @@ "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", "dev": true }, + "node_modules/@types/lodash": { + "version": "4.17.0", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.0.tgz", + "integrity": "sha512-t7dhREVv6dbNj0q17X12j7yDG4bD/DHYX7o5/DbDxobP0HnGPgpRz2Ej77aL7TZT3DSw13fqUTj8J4mMnqa7WA==", + "dev": true + }, "node_modules/@types/mime": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", @@ -5042,12 +5351,74 @@ "ajv": "^8.8.2" } }, - "node_modules/ansi-colors": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", - "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", + "node_modules/angular-cli-ghpages": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/angular-cli-ghpages/-/angular-cli-ghpages-1.0.7.tgz", + "integrity": "sha512-7uq+NSqmhVBnA1uimVQVoQfXP80aSJc/nZGdRUiADcTeRQFPamaQUbh4bn2EHiC9TJn44lDOEGnzdhAej0wz6w==", "dev": true, - "engines": { + "dependencies": { + "commander": "^3.0.0-0", + "fs-extra": "^9.0.1", + "gh-pages": "^3.1.0" + }, + "bin": { + "angular-cli-ghpages": "angular-cli-ghpages", + "ngh": "angular-cli-ghpages" + }, + "peerDependencies": { + "@angular-devkit/architect": ">= 0.900 < 0.1602.0", + "@angular-devkit/core": "^9.0.0 || ^10.0.0 || ^11.0.0 || ^12.0.0 || ^13.0.0 || ^14.0.0 || ^15.0.0 || ^16.0.0", + "@angular-devkit/schematics": "^9.0.0 || ^10.0.0 || ^11.0.0 || ^12.0.0 || ^13.0.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" + } + }, + "node_modules/angular-cli-ghpages/node_modules/commander": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/commander/-/commander-3.0.2.tgz", + "integrity": "sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow==", + "dev": true + }, + "node_modules/angular-cli-ghpages/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/angular-cli-ghpages/node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/angular-cli-ghpages/node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/ansi-colors": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", + "dev": true, + "engines": { "node": ">=6" } }, @@ -5133,12 +5504,89 @@ "sprintf-js": "~1.0.2" } }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", + "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.5", + "is-array-buffer": "^3.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/array-flatten": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", "dev": true }, + "node_modules/array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==", + "dev": true, + "dependencies": { + "array-uniq": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", + "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", + "dev": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.3", + "es-errors": "^1.2.1", + "get-intrinsic": "^1.2.3", + "is-array-buffer": "^3.0.4", + "is-shared-array-buffer": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/async": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", + "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", + "dev": true, + "dependencies": { + "lodash": "^4.17.14" + } + }, + "node_modules/at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, "node_modules/autoprefixer": { "version": "10.4.18", "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.18.tgz", @@ -5176,6 +5624,21 @@ "postcss": "^8.1.0" } }, + "node_modules/available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "dev": true, + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/babel-loader": { "version": "9.1.3", "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-9.1.3.tgz", @@ -6123,6 +6586,14 @@ "node": ">= 0.10" } }, + "node_modules/cose-base": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/cose-base/-/cose-base-2.2.0.tgz", + "integrity": "sha512-AzlgcsCbUMymkADOJtQm3wO9S3ltPfYOFD5033keQn9NJzIbtnZj+UdBJe7DYml/8TdbtHJW3j58SOnKhWY/5g==", + "dependencies": { + "layout-base": "^2.0.0" + } + }, "node_modules/cosmiconfig": { "version": "9.0.0", "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz", @@ -6362,6 +6833,87 @@ "integrity": "sha512-GAj5FOq0Hd+RsCGVJxZuKaIDXDf3h6GQoNEjFgbLLI/trgtavwUbSnZ5pVfg27DVCaWjIohryS0JFwIJyT2cMg==", "dev": true }, + "node_modules/cytoscape": { + "version": "3.29.2", + "resolved": "https://registry.npmjs.org/cytoscape/-/cytoscape-3.29.2.tgz", + "integrity": "sha512-2G1ycU28Nh7OHT9rkXRLpCDP30MKH1dXJORZuBhtEhEW7pKwgPi77ImqlCWinouyE1PNepIOGZBOrE84DG7LyQ==", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/cytoscape-fcose": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/cytoscape-fcose/-/cytoscape-fcose-2.2.0.tgz", + "integrity": "sha512-ki1/VuRIHFCzxWNrsshHYPs6L7TvLu3DL+TyIGEsRcvVERmxokbf5Gdk7mFxZnTdiGtnA4cfSmjZJMviqSuZrQ==", + "dependencies": { + "cose-base": "^2.2.0" + }, + "peerDependencies": { + "cytoscape": "^3.2.0" + } + }, + "node_modules/cytoscape-layers": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/cytoscape-layers/-/cytoscape-layers-2.4.4.tgz", + "integrity": "sha512-mkq8K+8F0H29q0IhjQu1V/jbEnSi5noDrYZjIqt5u0Y7W70qyRwuDyRpZAXaV4KjhizkSOg35ncLzJG+wGfWxQ==", + "dependencies": { + "@types/cytoscape": "^3.19.16" + }, + "peerDependencies": { + "cytoscape": "^3.23.0" + } + }, + "node_modules/data-view-buffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz", + "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz", + "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-offset": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz", + "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/date-format": { "version": "4.0.14", "resolved": "https://registry.npmjs.org/date-format/-/date-format-4.0.14.tgz", @@ -6447,6 +6999,23 @@ "node": ">=8" } }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/depd": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", @@ -6596,6 +7165,12 @@ "integrity": "sha512-7Kr5jUdns5rL/M9wFFmMZAgFDuL2YOnanFH4OI4iFzUqyh3XOL7nAGbSlSMZdzKMIyyTpNSbqZsWG9odwLeKvA==", "dev": true }, + "node_modules/email-addresses": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/email-addresses/-/email-addresses-3.1.0.tgz", + "integrity": "sha512-k0/r7GrWVL32kZlGwfPNgB2Y/mMXVTq/decgLczm/j34whdaspNrZO8CnXPf1laaHxI6ptUlsnAxN+UAPw+fzg==", + "dev": true + }, "node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", @@ -6741,6 +7316,66 @@ "is-arrayish": "^0.2.1" } }, + "node_modules/es-abstract": { + "version": "1.23.3", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz", + "integrity": "sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==", + "dev": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "arraybuffer.prototype.slice": "^1.0.3", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "data-view-buffer": "^1.0.1", + "data-view-byte-length": "^1.0.1", + "data-view-byte-offset": "^1.0.0", + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-set-tostringtag": "^2.0.3", + "es-to-primitive": "^1.2.1", + "function.prototype.name": "^1.1.6", + "get-intrinsic": "^1.2.4", + "get-symbol-description": "^1.0.2", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.0.3", + "has-symbols": "^1.0.3", + "hasown": "^2.0.2", + "internal-slot": "^1.0.7", + "is-array-buffer": "^3.0.4", + "is-callable": "^1.2.7", + "is-data-view": "^1.0.1", + "is-negative-zero": "^2.0.3", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.3", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.13", + "is-weakref": "^1.0.2", + "object-inspect": "^1.13.1", + "object-keys": "^1.1.1", + "object.assign": "^4.1.5", + "regexp.prototype.flags": "^1.5.2", + "safe-array-concat": "^1.1.2", + "safe-regex-test": "^1.0.3", + "string.prototype.trim": "^1.2.9", + "string.prototype.trimend": "^1.0.8", + "string.prototype.trimstart": "^1.0.8", + "typed-array-buffer": "^1.0.2", + "typed-array-byte-length": "^1.0.1", + "typed-array-byte-offset": "^1.0.2", + "typed-array-length": "^1.0.6", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.15" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/es-define-property": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", @@ -6768,6 +7403,49 @@ "integrity": "sha512-l60ETUTmLqbVbVHv1J4/qj+M8nq7AwMzEcg3kmJDt9dCNrTk+yHcYFf/Kw75pMDwd9mPcIGCG5LcS20SxYRzFA==", "dev": true }, + "node_modules/es-object-atoms": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", + "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", + "dev": true, + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", + "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.4", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/esbuild": { "version": "0.20.1", "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.20.1.tgz", @@ -7144,6 +7822,32 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/filename-reserved-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz", + "integrity": "sha512-lc1bnsSr4L4Bdif8Xb/qrtokGbq5zlsms/CYH8PP+WtCkGNF65DPiQY8vG3SakEdRn8Dlnm+gW/qWKKjS5sZzQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/filenamify": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/filenamify/-/filenamify-4.3.0.tgz", + "integrity": "sha512-hcFKyUG57yWGAzu1CMt/dPzYZuv+jAJUT85bL8mrXvNe6hWj6yEHEc4EdcgiA6Z3oi1/9wXJdZPXF2dZNgwgOg==", + "dev": true, + "dependencies": { + "filename-reserved-regex": "^2.0.0", + "strip-outer": "^1.0.1", + "trim-repeated": "^1.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", @@ -7265,6 +7969,15 @@ } } }, + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.3" + } + }, "node_modules/foreground-child": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", @@ -7385,6 +8098,33 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/function.prototype.name": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", + "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "functions-have-names": "^1.2.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/gensync": { "version": "1.0.0-beta.2", "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", @@ -7443,6 +8183,123 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/get-symbol-description": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", + "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gh-pages": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/gh-pages/-/gh-pages-3.2.3.tgz", + "integrity": "sha512-jA1PbapQ1jqzacECfjUaO9gV8uBgU6XNMV0oXLtfCX3haGLe5Atq8BxlrADhbD6/UdG9j6tZLWAkAybndOXTJg==", + "dev": true, + "dependencies": { + "async": "^2.6.1", + "commander": "^2.18.0", + "email-addresses": "^3.0.1", + "filenamify": "^4.3.0", + "find-cache-dir": "^3.3.1", + "fs-extra": "^8.1.0", + "globby": "^6.1.0" + }, + "bin": { + "gh-pages": "bin/gh-pages.js", + "gh-pages-clean": "bin/gh-pages-clean.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/gh-pages/node_modules/find-cache-dir": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "dev": true, + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/avajs/find-cache-dir?sponsor=1" + } + }, + "node_modules/gh-pages/node_modules/globby": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", + "integrity": "sha512-KVbFv2TQtbzCoxAnfD6JcHZTYCzyliEaaeM/gH8qQdkKr5s0OP9scEgvdcngyk7AVdY6YVW/TJHd+lQ/Df3Daw==", + "dev": true, + "dependencies": { + "array-union": "^1.0.1", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gh-pages/node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/gh-pages/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gh-pages/node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/gh-pages/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, "node_modules/glob": { "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", @@ -7490,6 +8347,22 @@ "node": ">=4" } }, + "node_modules/globalthis": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", + "dev": true, + "dependencies": { + "define-properties": "^1.2.1", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/globby": { "version": "13.2.2", "resolved": "https://registry.npmjs.org/globby/-/globby-13.2.2.tgz", @@ -7533,6 +8406,15 @@ "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", "dev": true }, + "node_modules/has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", @@ -7578,6 +8460,21 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/hasown": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", @@ -8033,6 +8930,20 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, + "node_modules/internal-slot": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", + "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", + "dev": true, + "dependencies": { + "es-errors": "^1.3.0", + "hasown": "^2.0.0", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/ip-address": { "version": "9.0.5", "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-9.0.5.tgz", @@ -8061,22 +8972,66 @@ "node": ">= 10" } }, + "node_modules/is-array-buffer": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", + "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", "dev": true }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-binary-path": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", "dev": true, "dependencies": { - "binary-extensions": "^2.0.0" + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" }, "engines": { - "node": ">=8" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-builtin-module": { @@ -8094,6 +9049,18 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-core-module": { "version": "2.13.1", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", @@ -8106,6 +9073,36 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-data-view": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz", + "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==", + "dev": true, + "dependencies": { + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-docker": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", @@ -8172,6 +9169,18 @@ "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==", "dev": true }, + "node_modules/is-negative-zero": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", + "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", @@ -8181,6 +9190,21 @@ "node": ">=0.12.0" } }, + "node_modules/is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-plain-obj": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", @@ -8205,6 +9229,37 @@ "node": ">=0.10.0" } }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", + "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-stream": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", @@ -8217,6 +9272,51 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", + "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", + "dev": true, + "dependencies": { + "which-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-unicode-supported": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", @@ -8229,6 +9329,18 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-what": { "version": "3.14.1", "resolved": "https://registry.npmjs.org/is-what/-/is-what-3.14.1.tgz", @@ -8404,9 +9516,9 @@ } }, "node_modules/jasmine-core": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-5.1.2.tgz", - "integrity": "sha512-2oIUMGn00FdUiqz6epiiJr7xcFyNYj3rDcfmnzfkBnHyBQ3cBQUs4mmyGsOb7TTLb9kxk7dBcmEmqhDKkBoDyA==", + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-4.6.0.tgz", + "integrity": "sha512-O236+gd0ZXS8YAjFx8xKaJ94/erqUliEkJTDedyE7iHvv4ZVqi+q+8acJxu05/WJDKm512EUNn809In37nWlAQ==", "dev": true }, "node_modules/jest-worker": { @@ -8493,6 +9605,12 @@ "node": ">=4" } }, + "node_modules/json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true + }, "node_modules/json-parse-even-better-errors": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.1.tgz", @@ -8634,12 +9752,6 @@ "karma-jasmine": "^5.0.0" } }, - "node_modules/karma-jasmine/node_modules/jasmine-core": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-4.6.0.tgz", - "integrity": "sha512-O236+gd0ZXS8YAjFx8xKaJ94/erqUliEkJTDedyE7iHvv4ZVqi+q+8acJxu05/WJDKm512EUNn809In37nWlAQ==", - "dev": true - }, "node_modules/karma-source-map-support": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/karma-source-map-support/-/karma-source-map-support-1.4.0.tgz", @@ -8783,6 +9895,11 @@ "shell-quote": "^1.8.1" } }, + "node_modules/layout-base": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/layout-base/-/layout-base-2.0.1.tgz", + "integrity": "sha512-dp3s92+uNI1hWIpPGH3jK2kxE2lMjdXdr+DH8ynZHpd6PUlH6x6cbuXnoMmiNumznqaNO31xu9e79F0uuZ0JFg==" + }, "node_modules/less": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/less/-/less-4.2.0.tgz", @@ -8899,6 +10016,43 @@ "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", "dev": true }, + "node_modules/load-json-file": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", + "integrity": "sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/load-json-file/node_modules/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", + "dev": true, + "dependencies": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/load-json-file/node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "dev": true, + "engines": { + "node": ">=4" + } + }, "node_modules/loader-runner": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", @@ -8941,6 +10095,12 @@ "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", "dev": true }, + "node_modules/lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", + "peer": true + }, "node_modules/log-symbols": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", @@ -9132,6 +10292,15 @@ "node": ">= 4.0.0" } }, + "node_modules/memorystream": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", + "integrity": "sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==", + "dev": true, + "engines": { + "node": ">= 0.10.0" + } + }, "node_modules/merge-descriptors": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", @@ -9530,6 +10699,13 @@ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, + "node_modules/nblas": { + "version": "2.1.13", + "resolved": "https://registry.npmjs.org/nblas/-/nblas-2.1.13.tgz", + "integrity": "sha512-LsnxQIUhMToa3+J/B5t799pXYKKskmfyMwmpDf6BS/MY46tzViZd/Bixc4fl5CEizbWJ/huaj4k0Vojv112MEQ==", + "hasInstallScript": true, + "optional": true + }, "node_modules/needle": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/needle/-/needle-3.3.1.tgz", @@ -9694,6 +10870,22 @@ "semver": "bin/semver.js" } }, + "node_modules/ngx-reactome-cytoscape-style": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/ngx-reactome-cytoscape-style/-/ngx-reactome-cytoscape-style-0.0.5.tgz", + "integrity": "sha512-GZienp8wUMVyOBve37Zsw64urNUQH9kTpSSM6cztT1FlKxRB8g/wXPCxnTXIFI0am0c+cKzOmgVLJZiB+va9pQ==", + "dependencies": { + "tslib": "^2.3.0" + }, + "peerDependencies": { + "@angular/common": "^17.3.0", + "@angular/core": "^17.3.0", + "cytoscape": "^3.27.0", + "cytoscape-fcose": "^2.2.0", + "cytoscape-layers": "^2.4.4", + "lodash.memoize": "^4.1.2" + } + }, "node_modules/nice-napi": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/nice-napi/-/nice-napi-1.0.2.tgz", @@ -9709,6 +10901,19 @@ "node-gyp-build": "^4.2.2" } }, + "node_modules/nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true + }, + "node_modules/nlapack": { + "version": "2.0.9", + "resolved": "https://registry.npmjs.org/nlapack/-/nlapack-2.0.9.tgz", + "integrity": "sha512-NnTUNKURkoRfwjNhCygmtLgu4l3gNwxSM+54U4ovnMX50biSElmOGb9yUALNfhoahfm0EGdk/GLySrZLA8yGTw==", + "hasInstallScript": true, + "optional": true + }, "node_modules/node-addon-api": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.2.1.tgz", @@ -9988,6 +11193,86 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, + "node_modules/npm-run-all": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/npm-run-all/-/npm-run-all-4.1.5.tgz", + "integrity": "sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "chalk": "^2.4.1", + "cross-spawn": "^6.0.5", + "memorystream": "^0.3.1", + "minimatch": "^3.0.4", + "pidtree": "^0.3.0", + "read-pkg": "^3.0.0", + "shell-quote": "^1.6.1", + "string.prototype.padend": "^3.0.0" + }, + "bin": { + "npm-run-all": "bin/npm-run-all/index.js", + "run-p": "bin/run-p/index.js", + "run-s": "bin/run-s/index.js" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/npm-run-all/node_modules/cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "dependencies": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "engines": { + "node": ">=4.8" + } + }, + "node_modules/npm-run-all/node_modules/path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm-run-all/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/npm-run-all/node_modules/shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", + "dev": true, + "dependencies": { + "shebang-regex": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-all/node_modules/shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/npm-run-path": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", @@ -10030,6 +11315,33 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", + "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/obuf": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", @@ -10484,8 +11796,20 @@ "engines": { "node": ">=12" }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pidtree": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.3.1.tgz", + "integrity": "sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==", + "dev": true, + "bin": { + "pidtree": "bin/pidtree.js" + }, + "engines": { + "node": ">=0.10" } }, "node_modules/pify": { @@ -10498,6 +11822,27 @@ "node": ">=6" } }, + "node_modules/pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", + "dev": true, + "dependencies": { + "pinkie": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/piscina": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/piscina/-/piscina-4.4.0.tgz", @@ -10592,6 +11937,15 @@ "node": "^12.20.0 || ^14.13.1 || >=16.0.0" } }, + "node_modules/possible-typed-array-names": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", + "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/postcss": { "version": "8.4.35", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.35.tgz", @@ -10958,6 +12312,68 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/read-pkg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", + "integrity": "sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==", + "dev": true, + "dependencies": { + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg/node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, + "node_modules/read-pkg/node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/read-pkg/node_modules/path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "dev": true, + "dependencies": { + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg/node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, "node_modules/readable-stream": { "version": "3.6.2", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", @@ -11041,6 +12457,24 @@ "integrity": "sha512-TVILVSz2jY5D47F4mA4MppkBrafEaiUWJO/TcZHEIuI13AqoZMkK1WMA4Om1YkYbTx+9Ki1/tSUXbceyr9saRg==", "dev": true }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz", + "integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.6", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "set-function-name": "^2.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/regexpu-core": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", @@ -11296,6 +12730,30 @@ "tslib": "^2.1.0" } }, + "node_modules/safe-array-concat": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz", + "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "get-intrinsic": "^1.2.4", + "has-symbols": "^1.0.3", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-array-concat/node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true + }, "node_modules/safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", @@ -11316,6 +12774,23 @@ } ] }, + "node_modules/safe-regex-test": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", + "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-regex": "^1.1.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", @@ -11638,6 +13113,21 @@ "node": ">= 0.4" } }, + "node_modules/set-function-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", + "dev": true, + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/setprototypeof": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", @@ -12039,6 +13529,73 @@ "node": ">=8" } }, + "node_modules/string.prototype.padend": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.6.tgz", + "integrity": "sha512-XZpspuSB7vJWhvJc9DLSlrXl1mcA2BdoY5jjnS135ydXqLoqhs96JjDtCkjJEQHvfqZIp9hBuBMgI589peyx9Q==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trim": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", + "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.0", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz", + "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", + "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", @@ -12064,6 +13621,15 @@ "node": ">=8" } }, + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, "node_modules/strip-final-newline": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", @@ -12073,6 +13639,18 @@ "node": ">=6" } }, + "node_modules/strip-outer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-outer/-/strip-outer-1.0.1.tgz", + "integrity": "sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^1.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", @@ -12355,6 +13933,18 @@ "tree-kill": "cli.js" } }, + "node_modules/trim-repeated": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-repeated/-/trim-repeated-1.0.0.tgz", + "integrity": "sha512-pkonvlKk8/ZuR0D5tLW8ljt5I8kmxp2XKymhepUeOdCEfKpZaktSArkLHZt76OB1ZvO9bssUsDty4SWhLvZpLg==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^1.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/tslib": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", @@ -12399,6 +13989,79 @@ "node": ">= 0.6" } }, + "node_modules/typed-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", + "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", + "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz", + "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.6.tgz", + "integrity": "sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13", + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/typed-assert": { "version": "1.0.9", "resolved": "https://registry.npmjs.org/typed-assert/-/typed-assert-1.0.9.tgz", @@ -12441,6 +14104,21 @@ "node": "*" } }, + "node_modules/unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/undici": { "version": "6.11.1", "resolved": "https://registry.npmjs.org/undici/-/undici-6.11.1.tgz", @@ -12632,6 +14310,15 @@ "node": ">= 0.8" } }, + "node_modules/vectorious": { + "version": "6.1.12", + "resolved": "https://registry.npmjs.org/vectorious/-/vectorious-6.1.12.tgz", + "integrity": "sha512-agC4qbdhdVe3DE5FEUazXjE5JOwm6BHhSePij3IZQdYLttYr6nBl8zUi0ZHyQWhOgNqh0b8Qh8w4UUfVzgnXqw==", + "optionalDependencies": { + "nblas": "^2.1.11", + "nlapack": "^2.0.7" + } + }, "node_modules/vite": { "version": "5.1.7", "resolved": "https://registry.npmjs.org/vite/-/vite-5.1.7.tgz", @@ -13445,6 +15132,41 @@ "which": "bin/which" } }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz", + "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/wildcard": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz", diff --git a/package.json b/package.json index 4d066b9..a682ec9 100644 --- a/package.json +++ b/package.json @@ -7,37 +7,49 @@ "build": "ng build", "watch": "ng build --watch --configuration development", "test": "ng test", - "build-style": "ng build ngx-reactome-style" - + "build-style": "ng build ngx-reactome-style", + "build-diagram": "ng build ngx-reactome-diagram", + "build-cytoscape-style": "ng build ngx-reactome-cytoscape-style" }, "private": false, "dependencies": { + "ngx-reactome-cytoscape-style": "^0.0.5", "@angular/animations": "^17.3.0", - "@angular/cdk": "^17.3.7", + "@angular/cdk": "^17.3.0", "@angular/common": "^17.3.0", "@angular/compiler": "^17.3.0", "@angular/core": "^17.3.0", "@angular/forms": "^17.3.0", "@angular/material": "^17.3.7", - "@angular/platform-browser": "^17.3.0", - "@angular/platform-browser-dynamic": "^17.3.0", - "@angular/router": "^17.3.0", + "@angular/platform-browser": "17.3.7", + "@angular/platform-browser-dynamic": "^17.3.7", + "@angular/router": "^17.3.7", + "@ngneat/until-destroy": "^10.0.0", + "cytoscape": "^3.29.2", + "cytoscape-fcose": "^2.2.0", + "cytoscape-layers": "^2.4.4", "rxjs": "~7.8.0", "tslib": "^2.3.0", + "vectorious": "^6.1.12", "zone.js": "~0.14.3" }, "devDependencies": { "@angular-devkit/build-angular": "^17.3.6", "@angular/cli": "^17.3.6", - "@angular/compiler-cli": "^17.3.0", - "@types/jasmine": "~5.1.0", - "jasmine-core": "~5.1.0", + "@angular/compiler-cli": "^17.3.7", + "@types/cytoscape": "^3.21.0", + "@types/cytoscape-fcose": "^2.2.4", + "@types/jasmine": "~4.3.0", + "@types/lodash": "^4.14.202", + "angular-cli-ghpages": "^1.0.6", + "jasmine-core": "~4.6.0", "karma": "~6.4.0", "karma-chrome-launcher": "~3.2.0", "karma-coverage": "~2.2.0", "karma-jasmine": "~5.1.0", "karma-jasmine-html-reporter": "~2.1.0", "ng-packagr": "^17.3.0", - "typescript": "~5.4.2" + "npm-run-all": "^4.1.1", + "typescript": "~5.4.5" } } diff --git a/projects/ngx-reactome-cytoscape-style/README.md b/projects/ngx-reactome-cytoscape-style/README.md new file mode 100644 index 0000000..60929ec --- /dev/null +++ b/projects/ngx-reactome-cytoscape-style/README.md @@ -0,0 +1,239 @@ +# Reactome Cytoscape Style + +## Usage + +To use reactome-cytoscape-style, use the following: + +```typescript +import {Reactome} from "reactome-cytoscape-style"; + +const container: HTMLElement = document.querySelector('#cytoscape-container'); +const reactome = new Reactome.Style(container); +const cy = cytoscape({ + ..., + container: container, + style: reactome.getStyleSheet() +}) + +reactome.bindToCytoscape(cy) // Enables style interactivity +``` + +### Types + +In order to use the reactome-cytoscape-style, you need to type your nodes and edges correctly, so that we can style them accordingly. + +```typescript +const element: cytoscape.ElementDefinition = { + data: { + id: 'ID', // string, unique among all elements + height: 100, // number, for nodes + width: 100, // number, for nodes + displayName: "NODE LABEL", // string, for nodes + stoichiometry: 1, // number, for edges + parent: 'COMPARTMENT ID' // string, for nodes | If present, will place the node withing the identified compartment + }, + position: {x: 0, y: 0}, // for nodes, if required to be placed manually + classes: ['Type', 'Family Type'] // Values found in tables bellow +} +``` + +To do so, whee defining your nodes and edges, apply to them the classes that you will find in the table bellow + +#### 1. Nodes + +The first thing to notice is that the output network needs to be [bipartite](https://en.wikipedia.org/wiki/Bipartite_graph). +Indeed, both `reaction` and `PhysicalEntity` (interacting molecules) are represented by nodes. +In principle, you should always have a `reaction` between every 2 `PhysicalEnity` nodes. + +##### 1.a PhysicalEntity + +| Type | Classes | Note | +|---------------------|---------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Protein | `['Protein', 'PhysicalEntity']` | | +| GenomeEncodedEntity | `['GenomeEncodedEntity', 'PhysicalEntity']` | This corresponds to abstract concepts and/or to any macromolecule that is encoded by DNA, but not fitting to any other categories available | +| RNA | `['RNA', 'PhysicalEntity']` | | +| Gene | `['Gene', 'PhysicalEntity']` | | +| Molecule | `['Molecule', 'PhysicalEntity']` | This corresponds to any chemicals, e.g. metabolites | +| | | | +| Complex | `['Complex', 'PhysicalEntity']` | This corresponds to a group of `PhysicalEntity` which chemically bonding together. It is represented as a single node, but represents a group of molecule. | +| EntitySet | `['EntitySet', 'PhysicalEntity']` | This corresponds to a group of `PhysicalEntity` which are interchangeable, e.g. a family of proteins targeted by an enzyme . It is represented as a single node, but represents a group of molecule. | + +##### 1.b reaction + +| Type | Classes | Note | +|--------------|--------------------------------|-------------------------------------------------------------------------------| +| association | `['association', 'reaction']` | 2 `PhysicalEntity` or more binding together | +| dissociation | `['dissociation', 'reaction']` | 1 `Complex` separating in its components | +| transition | `['transition', 'reaction']` | A transition from a compartment to another, or any other non-chemical process | +| uncertain | `['uncertain', 'reaction']` | A reaction which have not been resolved clearly yet | +| omitted | `['omitted', 'reaction']` | A complex process involving many reactions summarized in a single one | + +##### 1.c Compartment + +Compartments are a special case of nodes since they are not interacting. + +| Type | Classes | Note | +|-------------|-------------------|------| +| Compartment | `['Compartment']` | | + +##### 1.c Modifications + +Modifications are a special case of nodes since they are associated to an Entity. + +| Type | Classes | Note | +|--------------|--------------------|-------------------------------------------------------------------------------| +| Modification | `['Modification']` | Requires explicit position, width, height and parent `nodeId` within its data | + +#### 2. Edges + +They are 2 big types of edges: those going from the `PhysicalEntity` to the `reaction`, and those going from `reaction` to the next `PhysicalEntity` + +['production', 'catalysis', 'positive-regulation', 'negative-regulation', 'set-to-member'] + +| Direction | Type | Classes | Note | +|----------------------------------|---------------------|---------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------| +| `PhysicalEntity` --> `reaction` | consumption | `['consumption', 'incoming']` | Is used for reaction's **inputs** | +| | catalysis | `['catalysis', 'incoming']` | Is used for reaction's **catalyzers** | +| | positive-regulation | `['positive-regulation', 'incoming']` | Is used for reaction's **positive regulators** | +| | negative-regulation | `['negative-regulation', 'incoming']` | Is used for reaction's **negative regulators** | +| | | | | +| `reaction` --> `PhysicalEntity` | production | `['production', 'outgoing']` | Is used for reactions' **outputs** | +| | | | | +| `EntitySet` --> `PhysicalEntity` | set-to-member | `['set-to-member']` | Is used to link `EntitySet` to one of its member also visible in the network. Only time when there is a direct link between 2 `PhysicalEntity` | + +### Properties + +Reactome Cytoscape Style defines several properties that allow you to customize it and define strong and switchable color themes (e.g. dark-them and light-theme) + +Here is a table summarizing how to access and customize all those properties. + +| Group | Key | Type | CSS property | Default | Description | +|---------------------|------------------|----------------------|-------------------------|-----------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------| +| global | thickness | number | *Not available* | 4 | Thickness of all the lines in the network | +| | surface | color | `--surface` | `#F6FEFF` ![#F6FEFF](https://placehold.co/65x20/F6FEFF/F6FEFF) | Background color of neutral elements | +| | onSurface | color | `--on-surface` | `#001F24` ![#001F24](https://placehold.co/65x20/001F24/001F24) | Stroke color of elements place on surface, as well as all lines | +| | primary | color | `--primary` | `#006782` ![#006782](https://placehold.co/65x20/006782/006782) | Main color, used for the outline of Genome Encoded Entities by default | +| | onPrimary | color | `--on-primary` | `#FFFFFF` ![#FFFFFF](https://placehold.co/65x20/FFFFFF/FFFFFF) | Color of text placed on top of primary elements | +| | positive | color | `--positive` | `#0C9509` ![#0C9509](https://placehold.co/65x20/0C9509/0C9509) | Color of positive element, like positive regulation | +| | negative | color | `--negative` | `#BA1A1A` ![#BA1A1A](https://placehold.co/65x20/BA1A1A/BA1A1A) | Color of negative elements, like negative regulation | +| | selectNode | color | `--select-node` | `#6EB3E4` ![#6EB3E4](https://placehold.co/65x20/6EB3E4/6EB3E4) | Color of selection on nodes | +| | selectEdge | color | `--select-edge` | `#0561A6` ![#0561A6](https://placehold.co/65x20/0561A6/0561A6) | Color of selection on edges | +| | hoverNode | color | `--hover-node` | `#78E076` ![#78E076](https://placehold.co/65x20/78E076/78E076) | Color of hover on nodes | +| | hoverEdge | color | `--hover-edge` | `#04B601` ![#04B601](https://placehold.co/65x20/04B601/04B601) | Color of hover on edges | +| | | | | | | +| compartment | fill | color | `--compartment` | `#E5834A` ![#E5834A](https://placehold.co/65x20/E5834A/E5834A) | Background and stroke color of compartments. The background opacity is modulated by its own property | +| | opacity | number | *Not available* | 0.12 | Opacity of the background of compartments | +| | | | | | | +| sub-pathway | opacity | `[number, number][]` | *Not available* | [[0.2, 0.4], [0.4, 0]] | Opacity key points for sub-pathways. First value is the zoom level, Second value is the associated opacity | +| | labelOpacity | `[number, number][]` | *Not available* | [[0.2, 1], [0.4, 0]] | Opacity key points for sub-pathways labels. First value is the zoom level, Second value is the associated opacity | +| | | | | | | +| protein | fill | color | `--primary-contrast-1` | `#001F29` ![#001F29](https://placehold.co/65x20/001F29/001F29) | Background color of proteins. The `--primary-contrast-1` corresponds to the shade of primary with the strongest contrast against `--surface` | +| | | | | | | +| genomeEncodedEntity | fill | color | `--primary-contrast-1` | `#001F29` ![#001F29](https://placehold.co/65x20/001F29/001F29) | By default, use the same value as the one used by protein | +| | stroke | color | `--primary` | `#006782` ![#006782](https://placehold.co/65x20/006782/006782) | By default, use the `global.primary` color | +| | | | | | | +| rna | fill | color | `--primary-contrast-2` | `#003545` ![#003545](https://placehold.co/65x20/003545/003545) | The `--primary-contrast-2` corresponds to the shade of primary with the middle contrast against `--surface` | +| | | | | | | +| gene | decorationHeight | number | *Not available* | 20 | Height of the top expression arrow decoration. Should leave enough place to fit arrowHeadSize plus a comfortable margin. | +| | arrowHeadSize | number | *Not available* | 10 | Height of equilateral triangle used as the arrow head of the decoration | +| | borderRadius | number | *Not available* | 8 | Corner radius of the background | +| | arrowRadius | number | *Not available* | 8 | Radius of turn in the decoration arrow. Should be < `gene.decorationHeight` | +| | fill | color | `--primary-contrast-3` | `#004D62` ![#004D62](https://placehold.co/65x20/004D62/004D62) | The `--primary-contrast-3` corresponds to the shade of primary with the weakest contrast against `--surface` | +| | | | | | | +| molecule | fill | color | `--surface` | `#F6FEFF` ![#F6FEFF](https://placehold.co/65x20/F6FEFF/F6FEFF) | By default, use the `global.surface` value | +| | stroke | color | `--on-surface` | `#001F24` ![#001F24](https://placehold.co/65x20/001F24/001F24) | By default, use the `global.onSurface` value | +| | | | | | | +| complex | cut | number | *Not available* | | | +| | fill | color | `--tertiary-contrast-1` | `#00315C` ![#00315C](https://placehold.co/65x20/00315C/00315C) | The `--tertiary-contrast-1` corresponds to the shade of tertiary with the strongest contrast against `--surface` | +| | stroke | color | `--on-tertiary` | `#FFFFFF` ![#FFFFFF](https://placehold.co/65x20/FFFFFF/FFFFFF) | Font and inner border color. Usually close to `global.surface` | +| | | | | | | +| entitySet | radius | number | *Not available* | 10 | Radius of the different swirls of the curly braces bordering the node | +| | fill | color | `--tertiary-contrast-2` | `#1660A5` ![#1660A5](https://placehold.co/65x20/1660A5/1660A5) | The `--tertiary-contrast-2` corresponds to the shade of tertiary with the weakest contrast against `--surface` | +| | stroke | color | `--on-tertiary` | `#FFFFFF` ![#FFFFFF](https://placehold.co/65x20/FFFFFF/FFFFFF) | | + +[//]: # (`#RGB` ![#RGB](https://placehold.co/65x20/RGB/RGB)) + +> All of the JavaScript defined properties accept either a direct value or a function that gives that value + +#### Update by JS properties + +In order to customise your style, you can provide to the `Reactome.Style()` constructor a property object, of type `Reactome.UserProperties`, where you can define the properties that you want to customize. The values can either be a direct value, or a function that provide the required value type + +```typescript +import {Reactome} from "reactome-cytoscape-style"; + +const container: HTMLElement = document.querySelector('#cytoscape-container'); +const properties: Reactome.UserProperties = {}; +const style = new Reactome.Style(container, properties); + +const cy = cytoscape({ + ..., + container: container, + style: style.getStyleSheet() +}) + +function updateJsProperty() { + // Updating initial properties object will update style values + properties.group.key = newValue; + // Needed to apply the changes + style.update(cy); +} +``` + +Updating the `Reactome.UserProperties` you used to initialize the `Reactome.Style`, here `style`, will automatically update the inner state of the style. +You simply need to force an update on the style afterwards so that the new values are taken into account + +#### Update by CSS properties + +Another way to customise the reactome-cytoscape-style is though the usage of css variables. +We are using the values as they can be found on the cytoscape container you provided to the `Reactome.Style()` constructor. +This means that you can define your variables either directly on the container, or within one of its parent in the DOM. + +That is specifically useful when you have defined a light and a dark theme. +However, as it is the case when updating the style though Js properties, you also need to trigger an update on the style after the properties have changed so that the change can be taken into account. + +```typescript +import {Reactome} from "reactome-cytoscape-style"; + +const container: HTMLElement = document.querySelector('#cytoscape-container'); +const style = new Reactome.Style(container); + +const cy = cytoscape({ + ..., + container: container, + style: style.getStyleSheet() +}) + +function updateCssProperty(property: string, newValue: string) { + // Updating Reactome.Style.css is updating the CSS variable on the container element + // in order to mimic a css variable change + Reactome.Style.css.setProperty('--property', newValue); + // Needed to apply the changes + style.update(cy); +} +``` + +## Developers + +This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 16.2.0. + +### Code scaffolding + +Run `ng generate component component-name --project reactome-cytoscape-style` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module --project reactome-cytoscape-style`. +> Note: Don't forget to add `--project reactome-cytoscape-style` or else it will be added to the default project in your `angular.json` file. + +### Build + +Run `ng build reactome-cytoscape-style` to build the project. The build artifacts will be stored in the `dist/` directory. + +### Publishing + +After building your library with `ng build reactome-cytoscape-style`, go to the dist folder `cd dist/reactome-cytoscape-style` and run `npm publish`. + +### Running unit tests + +Run `ng test reactome-cytoscape-style` to execute the unit tests via [Karma](https://karma-runner.github.io). + +### Further help + +To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page. diff --git a/projects/ngx-reactome-cytoscape-style/assets/Rx.svg b/projects/ngx-reactome-cytoscape-style/assets/Rx.svg new file mode 100644 index 0000000..a8bb76c --- /dev/null +++ b/projects/ngx-reactome-cytoscape-style/assets/Rx.svg @@ -0,0 +1,3 @@ + + + diff --git a/projects/ngx-reactome-cytoscape-style/ng-package.json b/projects/ngx-reactome-cytoscape-style/ng-package.json new file mode 100644 index 0000000..8b36f2e --- /dev/null +++ b/projects/ngx-reactome-cytoscape-style/ng-package.json @@ -0,0 +1,14 @@ +{ + "$schema": "../../node_modules/ng-packagr/ng-package.schema.json", + "dest": "../../dist/ngx-reactome-cytoscape-style", + "lib": { + "entryFile": "src/public-api.ts" + }, + "assets": [ + { + "glob": "**/*", + "input": "/src/assets/", + "output": "/" + } + ] +} diff --git a/projects/ngx-reactome-cytoscape-style/package.json b/projects/ngx-reactome-cytoscape-style/package.json new file mode 100644 index 0000000..f361261 --- /dev/null +++ b/projects/ngx-reactome-cytoscape-style/package.json @@ -0,0 +1,34 @@ +{ + "name": "ngx-reactome-cytoscape-style", + "version": "0.0.5", + "peerDependencies": { + "cytoscape": "^3.27.0", + "cytoscape-fcose": "^2.2.0", + "cytoscape-layers": "^2.4.4", + "lodash.memoize": "^4.1.2", + "@angular/common": "^17.3.0", + "@angular/core": "^17.3.0" + }, + "dependencies": { + "tslib": "^2.3.0" + }, + "devDependencies": { + "@angular-devkit/build-angular": "^17.3.6", + "@angular/cli": "^17.3.6", + "@angular/compiler-cli": "^17.3.7", + "@types/cytoscape": "^3.21.0", + "@types/cytoscape-fcose": "^2.2.4", + "@types/jasmine": "~4.3.0", + "@types/lodash": "^4.14.202", + "angular-cli-ghpages": "^1.0.6", + "jasmine-core": "~4.6.0", + "karma": "~6.4.0", + "karma-chrome-launcher": "~3.2.0", + "karma-coverage": "~2.2.0", + "karma-jasmine": "~5.1.0", + "karma-jasmine-html-reporter": "~2.1.0", + "ng-packagr": "^17.3.0", + "npm-run-all": "^4.1.1", + "typescript": "~5.4.5" + } +} diff --git a/projects/ngx-reactome-cytoscape-style/src/lib/color.ts b/projects/ngx-reactome-cytoscape-style/src/lib/color.ts new file mode 100644 index 0000000..719aa9d --- /dev/null +++ b/projects/ngx-reactome-cytoscape-style/src/lib/color.ts @@ -0,0 +1,147 @@ +export class HSL { + constructor(public hue: number, public saturation: number, public luminance: number) { + } + + toString(): string { + return `hsl(${this.h},${this.s},${this.l})` + } + + invertL(): this { + this.l = 100 - this.l; + return this; + } + + invertS(): this { + this.s = 100 - this.s; + return this; + } + + invertH(): this { + this.h = (360 - this.h) % 360; + return this; + } + + get h() { + return this.hue; + } + + set h(value: number) { + this.hue = value; + } + + get s() { + return this.saturation; + } + + set s(value: number) { + this.saturation = value; + } + + get l() { + return this.luminance; + } + + set l(value: number) { + this.luminance = value; + } + + static fromHex(hex: string): HSL { + // Convert hex to RGB first + let rS: string, gS: string, bS: string; + let r = 0, g = 0, b = 0; + if (hex.length == 4) { + rS = "0x" + hex[1] + hex[1]; + gS = "0x" + hex[2] + hex[2]; + bS = "0x" + hex[3] + hex[3]; + } else if (hex.length == 7) { + rS = "0x" + hex[1] + hex[2]; + gS = "0x" + hex[3] + hex[4]; + bS = "0x" + hex[5] + hex[6]; + } else throw new Error('Hexadecimal not properly formatted') + // Then to HSL + r = Number.parseInt(rS, 16) / 255; + g = Number.parseInt(gS, 16) / 255; + b = Number.parseInt(bS, 16) / 255; + + let cmin = Math.min(r, g, b), + cmax = Math.max(r, g, b), + delta = cmax - cmin, + h = 0, + s = 0, + l = 0; + + if (delta == 0) + h = 0; + else if (cmax == r) + h = ((g - b) / delta) % 6; + else if (cmax == g) + h = (b - r) / delta + 2; + else + h = (r - g) / delta + 4; + + h = Math.round(h * 60); + + if (h < 0) + h += 360; + + l = (cmax + cmin) / 2; + s = delta == 0 ? 0 : delta / (1 - Math.abs(2 * l - 1)); + s = +(s * 100).toFixed(1); + l = +(l * 100).toFixed(1); + + return new HSL(h, s, l); + } + + toHex(): string { + const h = this.h; + const s = this.s /= 100; + const l = this.l /= 100; + + let c = (1 - Math.abs(2 * l - 1)) * s, + x = c * (1 - Math.abs((h / 60) % 2 - 1)), + m = l - c / 2, + r = 0, + g = 0, + b = 0; + + if (0 <= h && h < 60) { + r = c; + g = x; + b = 0; + } else if (60 <= h && h < 120) { + r = x; + g = c; + b = 0; + } else if (120 <= h && h < 180) { + r = 0; + g = c; + b = x; + } else if (180 <= h && h < 240) { + r = 0; + g = x; + b = c; + } else if (240 <= h && h < 300) { + r = x; + g = 0; + b = c; + } else if (300 <= h && h < 360) { + r = c; + g = 0; + b = x; + } + // Having obtained RGB, convert channels to hex + let rS = Math.round((r + m) * 255).toString(16); + let gS = Math.round((g + m) * 255).toString(16); + let bS = Math.round((b + m) * 255).toString(16); + + // Prepend 0s, if necessary + if (rS.length == 1) + rS = "0" + rS; + if (gS.length == 1) + gS = "0" + gS; + if (bS.length == 1) + bS = "0" + bS; + + return "#" + rS + gS + bS; + } +} diff --git a/projects/ngx-reactome-cytoscape-style/src/lib/drawer/image-builder.ts b/projects/ngx-reactome-cytoscape-style/src/lib/drawer/image-builder.ts new file mode 100644 index 0000000..b12b0c3 --- /dev/null +++ b/projects/ngx-reactome-cytoscape-style/src/lib/drawer/image-builder.ts @@ -0,0 +1,197 @@ +import cytoscape from "cytoscape"; +import {gene} from "./shape/gene-shape"; +import {isNumber, memoize} from "lodash"; +import {molecule} from "./shape/molecule-shape"; +import {protein} from "./shape/protein-shape"; +import {rna} from "./shape/rna-shape"; +import {genomeEncodedEntity} from "./shape/gee-shape"; +import {complex} from "./shape/complex-shape"; +import {entitySet} from "./shape/entity-sets-shape"; +import {cell} from "./shape/cell-shape"; +import {interactingPathway} from "./shape/interacting-pathway-shape"; +import {diseaseInteractor} from "./shape/disease-interactor-shape"; + +import {subPathway} from "./shape/sub-pathway-shape"; +import {extract} from "../properties-utils"; +import {Node} from "../types"; +import {Aggregated, DrawerParameters, DrawerProvider, Image, Memo} from "./types"; +import {Properties} from "../properties"; + + +export const imageBuilder = (properties: Properties) => memoize((node: cytoscape.NodeSingular): Aggregated => { + let layers: Image[] = []; + const clazz = node.classes().find(clazz => classToDrawers.has(clazz as Node)) as Node + if (!clazz) return aggregate(layers, defaultBg); + + const provider = classToDrawers.get(clazz)!; + const drawerParams: DrawerParameters = { + width: node.data("width"), + height: node.data("height"), + drug: node.hasClass('drug'), + disease: node.hasClass('disease'), + interactor: node.hasClass('Interactor'), + crossed: node.hasClass('crossed'), + lossOfFunction: node.hasClass('loss-of-function') + }; + + const drawer = provider(properties, drawerParams); + + if (node.hasClass('flag') && drawer.flag) layers.push(drawer.flag); + + if (drawer.background) layers.push(drawer.background); + + if (node.selected() && drawer.select) layers.push(drawer.select); + + if (node.hasClass('hover') && drawer.hover) layers.push(drawer.hover); + + if (drawer.decorators) layers.push(...drawer.decorators); + + if (drawerParams.drug) { + layers.push(RX(properties, drawerParams, clazz)); + } + + if (node.classes().includes('Pathway')) { + layers.push(Pathway(properties, drawerParams)) + } + + if (drawerParams.crossed) layers.push(CROSS(properties, drawerParams)) + + // Convert raw HTML to string encoded images + layers = layers.map(l => ({ + ...l, + "background-image": svgStr(l["background-image"] as string, + isNumber(l["background-width"]) ? l["background-width"] : drawerParams.width, + isNumber(l["background-height"]) ? l["background-height"] : drawerParams.height + ) + }) + ); + + const aggregated = aggregate(layers, defaultBg); + aggregated['bounds-expansion'] = [Math.max(...aggregated['bounds-expansion'] as number[], 0)] + return aggregated; +}, node => `${node.id()}-${node.classes().toString()}-s:${node.selected()}`) + +const defaultBg: Image = { + "background-image": "", + "background-position-x": "0", + "background-position-y": "0", + "background-offset-x": "0", + "background-offset-y": "0", + "background-width": "100%", + "background-height": "100%", + "background-fit": "none", + "background-clip": "none", + "background-image-opacity": 1, + "background-image-containment": "over", + "background-image-smoothing": "yes", + "background-height-relative-to": "inner", + "background-width-relative-to": "inner", + "background-repeat": "no-repeat", + "background-image-crossorigin": "anonymous", + "bounds-expansion": 0 +} + +function svg(svgStr: string, width = 100, height = 100) { + const parser = new DOMParser(); + // const cleanedStr = svgStr.replaceAll(/ {2,}|\n/g, " "); // TODO examine performance impact + let svgText = + `${svgStr}`; + return parser.parseFromString(svgText, 'text/xml').documentElement; +} + +function svgStr(svgText: string, viewPortWidth: number, viewPortHeight: number) { + return 'data:image/svg+xml;utf8,' + encodeURIComponent(svg(svgText, viewPortWidth, viewPortHeight).outerHTML); +} + + +const dim = (properties: Properties, { + width, + height, + drug, + disease, + crossed, + interactor, + lossOfFunction +}: DrawerParameters) => `${width}x${height}-${drug}${disease}${crossed}${interactor}${lossOfFunction}`; +const classToDrawers = new Map>([ + ["Protein", memoize(protein, dim)], + ["GenomeEncodedEntity", memoize(genomeEncodedEntity, dim)], + ["RNA", memoize(rna, dim)], + ["Gene", memoize(gene, dim)], + ["Molecule", memoize(molecule, dim)], + ["Complex", memoize(complex, dim)], + ["EntitySet", memoize(entitySet, dim)], + ["Cell", memoize(cell, dim)], + ["Interacting", memoize(interactingPathway, dim)], + ["SUB", memoize(subPathway, dim)], + ["DiseaseInteractor", memoize(diseaseInteractor, dim)] +]); + +export function clearDrawersCache() { + for (let value of classToDrawers.values()) { + value.cache.clear!() + } + OMMITED_ICON.cache.clear!(); +} + +function aggregate(toAggregate: T[], defaultValue: T): Aggregated { + const aggregate: Aggregated = {} as Aggregated; + //@ts-ignore + const keys = new Set(Object.keys(defaultValue)); + keys.forEach(key => aggregate[key] = toAggregate.map(t => t[key] || defaultValue[key])); + return aggregate; +} + +const RX = (properties: Properties, {height}: DrawerParameters, clazz: Node): Image => { + const t = extract(properties.global.thickness); + const color = clazz !== 'Molecule' ? + extract(properties.global.onPrimary) : + extract(properties.molecule.drug); + const x = (clazz !== 'EntitySet' ? 0 : extract(properties.entitySet.radius)) + 3 * t; + + return { + "background-image": ` + + `, + "background-position-x": x, + "background-position-y": (height / 2 - 11) + 'px', + "background-width": 22, + "background-height": 24, + }; + +} + +const Pathway = (properties: Properties, {height, disease}: DrawerParameters): Image => { + const t = extract(properties.global.thickness); + const color = !disease ? + extract(properties.global.onPrimary) : + extract(properties.global.negativeContrast); + + let x = 5 * t; + + return { + "background-image": ` + + `, + "background-position-x": x, + "background-position-y": (height / 2 - 18) + 'px', + "background-width": 36, + "background-height": 36, + }; + +} + +export const CROSS = memoize((properties: Properties, {width, height}: DrawerParameters): Image => { + const s = extract(properties.global.negative); + const t = extract(properties.global.thickness); + return { + "background-image": ``, + "background-image-opacity": 1 + }; +}, (p, {width, height}) => `${width}x${height}`) + +export const OMMITED_ICON = memoize((properties: Properties) => { + const s = extract(properties.global.onSurface); + return svgStr(``, 10, 10) +}, (p) => '') + diff --git a/projects/ngx-reactome-cytoscape-style/src/lib/drawer/shape/cell-shape.ts b/projects/ngx-reactome-cytoscape-style/src/lib/drawer/shape/cell-shape.ts new file mode 100644 index 0000000..daaeaff --- /dev/null +++ b/projects/ngx-reactome-cytoscape-style/src/lib/drawer/shape/cell-shape.ts @@ -0,0 +1,76 @@ +import {extract} from "../../properties-utils"; +import {DrawerProvider} from "../types"; + +export const cell: DrawerProvider = (properties, {width, height}) => { + const select = extract(properties.global.selectNode); + const hover = extract(properties.global.hoverNode); + const flag = extract(properties.global.flag); + const thick = extract(properties.global.thickness); + const cellThick = extract(properties.cell.thickness); + const stroke = extract(properties.cell.stroke) + const fill = extract(properties.cell.fill); + + const ht = thick / 2; + const halfHeight = height / 2; + const oR = halfHeight + thick; + const iR = halfHeight - thick; + const oRx = Math.min(oR, width / 2) + return { + background: { + "background-image": ` + + +` + }, + hover: { + "background-image": ` + +`, + "background-position-y": -thick, + "bounds-expansion": thick, + "background-clip": "none", + "background-image-containment": "over", + "background-height": oR, + }, + select: { + "background-image": ` + +`, + "background-position-y": halfHeight, + "bounds-expansion": thick, + "background-clip": "none", + "background-image-containment": "over", + "background-height": oR, + }, + flag: { + "background-image": ` + +`, + "background-position-x": -2 * thick, + "background-position-y": -thick, + "bounds-expansion": 2 * thick, + "background-clip": "none", + "background-image-containment": "over", + "background-width": width + 4 * thick, + "background-height": height + 2 * thick, + } + } +} + + diff --git a/projects/ngx-reactome-cytoscape-style/src/lib/drawer/shape/complex-shape.ts b/projects/ngx-reactome-cytoscape-style/src/lib/drawer/shape/complex-shape.ts new file mode 100644 index 0000000..fe9760c --- /dev/null +++ b/projects/ngx-reactome-cytoscape-style/src/lib/drawer/shape/complex-shape.ts @@ -0,0 +1,112 @@ +import {extract} from "../../properties-utils"; +import {DrawerProvider} from "../types"; + + +export const complex: DrawerProvider = (properties, {width, height, drug, disease, interactor, lossOfFunction}) => { + const select = extract(properties.global.selectNode); + const hover = extract(properties.global.hoverNode); + const flag = extract(properties.global.flag); + + const t = extract(properties.global.thickness); + const cut = extract(properties.complex.cut); + const fill = !drug ? + interactor ? extract(properties.interactor.fill) : extract(properties.complex.fill) : + extract(properties.complex.drug); + + const stroke = !disease ? extract(properties.complex.stroke) : extract(properties.global.negativeContrast); + + const cut2 = cut * 2; + const t2 = t * 2; + const v = height - cut2 - 2 * t2; // Vertical + + const delta = 0; + const stateHeight = height / 2 + t; + + const defs = ` + + `; + return { + background: { + "background-image": ` + ${defs} + +` + }, + hover: { + "background-image": ` + + `, + "background-position-y": -t, + "background-height": stateHeight, + "background-clip": "none", + "bounds-expansion": t + }, + select: { + "background-image": ` + + `, + "background-position-y": height / 2, + "background-height": stateHeight, + "background-clip": "none", + "bounds-expansion": t + }, + flag: { + "background-image": ` + +`, + "background-position-x": -2 * t, + "background-position-y": -t, + "bounds-expansion": 2 * t, + "background-clip": "none", + "background-image-containment": "over", + "background-width": width + 4 * t, + "background-height": height + 2 * t, + }, + decorators: [ + { + "background-image": ` + ${defs} + + + ` + } + ] + } +} + diff --git a/projects/ngx-reactome-cytoscape-style/src/lib/drawer/shape/disease-interactor-shape.ts b/projects/ngx-reactome-cytoscape-style/src/lib/drawer/shape/disease-interactor-shape.ts new file mode 100644 index 0000000..d21b676 --- /dev/null +++ b/projects/ngx-reactome-cytoscape-style/src/lib/drawer/shape/disease-interactor-shape.ts @@ -0,0 +1,70 @@ +import {extract} from "../../properties-utils"; +import {DrawerProvider} from "../types"; + +export const diseaseInteractor: DrawerProvider = (properties, {width, height, drug, disease, interactor}) => { + + const hover = extract(properties.global.hoverNode); + const select = extract(properties.global.selectNode); + const fill = extract(properties.global.negative); + const t = extract(properties.global.thickness); + const decorationWidth = extract(properties.interactor.decorationWidth); + const t4 = t * 4 + const t2 = t * 2; + const h = height / 2 + t2; + const midH = height / 2; + + return { + decorators: [ + { + "background-image": ` + + `, + } + ], + + hover: { + "background-image": ` + + `, + "background-position-y": -t2, + "background-height": h, + "background-clip": "none", + "bounds-expansion": t2, + "background-image-containment": "over", + }, + + select: { + "background-image": ` + + `, + "background-position-y": midH, + "background-height": h, + "background-clip": "none", + "bounds-expansion": t2, + "background-image-containment": "over", + } + + } +} + + diff --git a/projects/ngx-reactome-cytoscape-style/src/lib/drawer/shape/entity-sets-shape.ts b/projects/ngx-reactome-cytoscape-style/src/lib/drawer/shape/entity-sets-shape.ts new file mode 100644 index 0000000..df19297 --- /dev/null +++ b/projects/ngx-reactome-cytoscape-style/src/lib/drawer/shape/entity-sets-shape.ts @@ -0,0 +1,164 @@ +import {extract} from "../../properties-utils"; +import {DrawerProvider} from "../types"; + + +export const entitySet: DrawerProvider = (properties, {width, height, drug, disease, lossOfFunction, interactor}) => { + const select = extract(properties.global.selectNode); + const hover = extract(properties.global.hoverNode); + const flag = extract(properties.global.flag); + + const t = extract(properties.global.thickness); + let r = extract(properties.entitySet.radius); + + if (2 * r > height / 2 - t) { + + r = height / 4 - (t / 2); + } + + width += 2 * r; + + const fill = + !interactor ? + !drug ? + extract(properties.entitySet.fill) : + extract(properties.entitySet.drug) + : extract(properties.interactor.fill); + const stroke = !disease ? + extract(properties.entitySet.stroke) : + extract(properties.global.negativeContrast); + + const r2 = r * 2; + const t2 = t * 2; + const v = height / 2 - r2 - t; // Vertical + const stateHeight = height / 2 + t; + const bracesOffset = r2 + t2; + + let realDashLength = width; + + if (lossOfFunction) { + const hidingLength = width - 2 * bracesOffset; + const idealDashLength = t2; + const dashNumber = Math.round((hidingLength / idealDashLength + 1) / 2); + realDashLength = hidingLength / (2 * dashNumber - 1); + } + + + const defs = ` + + + + + `; + + const t1_5 = t * 1.5; + return { + background: { + "background-image": ` + ${defs} + + `, + "background-position-x": -r, + "background-width": width + 2 * r, + "background-clip": "none", + "bounds-expansion": 2 * t + }, + hover: { + "background-image": ` + `, + "background-position-x": -r, + "background-width": width + 2 * r, + + "background-clip": "none", + "bounds-expansion": 2 * t, + + "background-position-y": -t, + "background-height": stateHeight + }, + select: { + "background-image": ` + `, + "background-position-x": -r, + "background-width": width + 2 * r, + + "background-clip": "none", + "bounds-expansion": 2 * t, + + "background-position-y": height / 2, + "background-height": stateHeight + }, + flag: { + "background-image": ` + +`, + "background-position-x": -2 * t, + "background-position-y": -t, + "bounds-expansion": 2 * t, + "background-clip": "none", + "background-image-containment": "over", + "background-width": width, + "background-height": height + 2 * t, + }, + decorators: [ + { + "background-image": ` + ${defs} + + + + `, + "background-position-x": -r, + "bounds-expansion": r, + "background-clip": "none", + "background-width": width + 2 * r, + }, + + ] + } +} + +// +// +// diff --git a/projects/ngx-reactome-cytoscape-style/src/lib/drawer/shape/gee-shape.ts b/projects/ngx-reactome-cytoscape-style/src/lib/drawer/shape/gee-shape.ts new file mode 100644 index 0000000..8d81bd4 --- /dev/null +++ b/projects/ngx-reactome-cytoscape-style/src/lib/drawer/shape/gee-shape.ts @@ -0,0 +1,122 @@ +import {extract} from "../../properties-utils"; +import {DrawerProvider} from "../types"; + +export const genomeEncodedEntity: DrawerProvider = (properties, { + width, + height, + drug, + disease, + interactor, + lossOfFunction +}) => { + const fill = !drug ? + extract(properties.complex.fill) : + extract(properties.genomeEncodedEntity.drug); + const select = extract(properties.global.selectNode); + const hover = extract(properties.global.hoverNode); + const flag = extract(properties.global.flag); + const t = extract(properties.global.thickness); + const t_2 = t / 2; + const bottomR = extract(properties.genomeEncodedEntity.bottomRadius); + const stroke = !interactor ? !disease ? null : extract(properties.global.negativeContrast) : extract(properties.interactor.fill); + + const topR = Math.min(extract(properties.genomeEncodedEntity.topRadius), height - bottomR, width / 2 - t); + const v = height - bottomR - topR; + + const topOR = topR + t; + const topIR = topR - t; + + const bottomOR = bottomR + t; + const bottomIR = bottomR - t; + + + return { + background: { + "background-image": ` + + `, + "bounds-expansion": t / 2, + "background-clip": "none", + "background-image-containment": "over", + "background-position-x": -t_2, + "background-position-y": -t_2, + "background-width": width + t, + "background-height": height + t, + }, + hover: { + "background-image": ` + +`, + "background-position-y": -t, + "bounds-expansion": t, + "background-clip": "none", + "background-image-containment": "over", + "background-height": topOR, + }, + select: { + "background-image": ` + +`, + "background-position-y": height - bottomR, + "bounds-expansion": t, + "background-clip": "none", + "background-image-containment": "over", + "background-height": bottomOR, + }, + flag: { + "background-image": ` + +`, + "background-position-x": -2 * t, + "background-position-y": -t, + "bounds-expansion": 2 * t, + "background-clip": "none", + "background-image-containment": "over", + "background-width": width + 4 * t, + "background-height": height + 2 * t, + } + } +} + + diff --git a/projects/ngx-reactome-cytoscape-style/src/lib/drawer/shape/gene-shape.ts b/projects/ngx-reactome-cytoscape-style/src/lib/drawer/shape/gene-shape.ts new file mode 100644 index 0000000..2bdfafe --- /dev/null +++ b/projects/ngx-reactome-cytoscape-style/src/lib/drawer/shape/gene-shape.ts @@ -0,0 +1,122 @@ +import {extract} from "../../properties-utils"; +import {DrawerProvider} from "../types"; + + +export const gene: DrawerProvider = (properties, {width, height, drug, interactor, disease, lossOfFunction}) => { + const t = extract(properties.global.thickness); + const dHeight = extract(properties.gene.decorationHeight); + const dWidth = extract(properties.gene.decorationExtraWidth); + const headSize = extract(properties.gene.arrowHeadSize); + const radius = extract(properties.gene.arrowRadius); + const fill = extract(properties.gene.fill); + const stroke = interactor ? extract(properties.interactor.fill) : disease ? extract(properties.global.negativeContrast) : null; + const select = extract(properties.global.selectNode); + const hover = extract(properties.global.hoverNode); + const flag = extract(properties.global.flag); + const hh = Math.sqrt(Math.pow(headSize, 2) * 3 / 4) + + const halfWidth = width / 2; + + const r = extract(properties.gene.borderRadius); + const oR = r + t; + const iR = r - t; + const t_2 = t / 2; + const t2 = t * 2; + return { + background: { + "background-image": ` + `, + "bounds-expansion": t_2, + "background-clip": "none", + "background-image-containment": "over", + "background-position-x": -t / 2, + "background-position-y": -t / 2, + "background-width": width + t, + "background-height": height + t, + + }, + decorators: [ + { + "background-image": ` + + `, + "background-position-y": -t / 2, + "bounds-expansion": dHeight, + "background-height": dHeight + 1.5 * t, + "background-width": width + dWidth, + "background-clip": "none", + "background-image-containment": "over", + } + ], + hover: { + "background-image": ``, + "background-position-y": dHeight - t, + "bounds-expansion": t, + "background-clip": "none", + "background-image-containment": "over", + "background-height": 2 * t, + }, + select: { + "background-image": ` + +`, + "background-position-y": height - r, + "bounds-expansion": t, + "background-clip": "none", + "background-image-containment": "over", + "background-height": oR, + }, + flag: { + "background-image": ` + +`, + "background-position-x": -2 * t, + "background-position-y": dHeight - t, + "bounds-expansion": 2 * t, + "background-clip": "none", + "background-image-containment": "over", + "background-width": width + 4 * t, + "background-height": height + 2 * t - dHeight, + } + } +} + + diff --git a/projects/ngx-reactome-cytoscape-style/src/lib/drawer/shape/interacting-pathway-shape.ts b/projects/ngx-reactome-cytoscape-style/src/lib/drawer/shape/interacting-pathway-shape.ts new file mode 100644 index 0000000..14f5b6a --- /dev/null +++ b/projects/ngx-reactome-cytoscape-style/src/lib/drawer/shape/interacting-pathway-shape.ts @@ -0,0 +1,46 @@ +import {DrawerProvider} from "../types"; +import {extract} from "../../properties-utils"; + + +export const interactingPathway: DrawerProvider = (properties, {width, height, drug}) => { + const select = extract(properties.global.selectNode); + const hover = extract(properties.global.hoverNode); + const flag = extract(properties.global.flag); + const thick = extract(properties.global.thickness); + + + const stroke = !drug ? + extract(properties.pathway.stroke) : + extract(properties.global.negativeContrast); + const fill = extract(properties.pathway.fill); + + + let realWidth = width; + const t = 3 * thick; + return { + hover: { + "background-image": ``, + "background-width": width, + "background-height": t, + }, + select: { + "background-image": ``, + "background-position-y": height - t, + "background-width": width, + "background-height": t, + }, + flag: { + "background-image": ` + + +`, + "background-width": realWidth + 4 * t, + "background-position-x": - t, + "background-height": height, + "bounds-expansion": 2 * t, + "background-clip": "none", + "background-image-containment": "over", + }, + } +} + diff --git a/projects/ngx-reactome-cytoscape-style/src/lib/drawer/shape/molecule-shape.ts b/projects/ngx-reactome-cytoscape-style/src/lib/drawer/shape/molecule-shape.ts new file mode 100644 index 0000000..2f90fd6 --- /dev/null +++ b/projects/ngx-reactome-cytoscape-style/src/lib/drawer/shape/molecule-shape.ts @@ -0,0 +1,78 @@ +import {extract} from "../../properties-utils"; +import {DrawerProvider} from "../types"; + +export const molecule: DrawerProvider = (properties, {width, height, drug, interactor}) => { + const select = extract(properties.global.selectNode); + const hover = extract(properties.global.hoverNode); + const flag = extract(properties.global.flag); + const thick = extract(properties.global.thickness); + const stroke = !interactor ? ( + !drug ? + extract(properties.molecule.stroke) : + extract(properties.molecule.drug) + ) : extract(properties.interactor.fill); + const fill = extract(properties.molecule.fill); + + const ht = thick / 2; + const halfHeight = height / 2; + const oR = halfHeight + thick; + const iR = halfHeight - thick; + const oRx = Math.min(oR, width / 2) + return { + hover: { + "background-image": ` + +`, + "background-position-y": -thick, + "background-position-x": -thick / 2, + "bounds-expansion": thick, + "background-clip": "none", + "background-image-containment": "over", + "background-height": oR, + "background-width": width + thick, + }, + select: { + "background-image": ` + +`, + "background-position-y": halfHeight, + "background-position-x": -thick / 2, + "bounds-expansion": thick, + "background-clip": "none", + "background-image-containment": "over", + "background-height": oR, + "background-width": width + thick, + }, + flag: { + "background-image": ` + + +`, + "background-position-x": -2 * thick, + "background-position-y": -thick, + "bounds-expansion": 2 * thick, + "background-clip": "none", + "background-image-containment": "over", + "background-width": width + 4 * thick, + "background-height": height + 2 * thick, + } + } +} + + diff --git a/projects/ngx-reactome-cytoscape-style/src/lib/drawer/shape/protein-shape.ts b/projects/ngx-reactome-cytoscape-style/src/lib/drawer/shape/protein-shape.ts new file mode 100644 index 0000000..2ef3905 --- /dev/null +++ b/projects/ngx-reactome-cytoscape-style/src/lib/drawer/shape/protein-shape.ts @@ -0,0 +1,68 @@ +import {extract} from "../../properties-utils"; +import {DrawerProvider} from "../types"; + +export const protein: DrawerProvider = (properties, {width, height, drug}) => { + const fill = extract(properties.protein.fill); + const select = extract(properties.global.selectNode); + const hover = extract(properties.global.hoverNode); + const flag = extract(properties.global.flag); + const thick = extract(properties.global.thickness); + const radius = extract(properties.protein.radius); + + const oR = radius + thick; + const iR = radius - thick; + + return { + hover: { + "background-image": ` + +`, + "background-position-y": -thick, + "bounds-expansion": thick, + "background-clip": "none", + "background-image-containment": "over", + "background-height": oR, + }, + select: { + "background-image": ` + +`, + "background-position-y": height - radius, + "bounds-expansion": thick, + "background-clip": "none", + "background-image-containment": "over", + "background-height": oR, + }, + flag: { + "background-image": ` + + +`, + "background-position-x": -2 * thick, + "background-position-y": -thick, + "bounds-expansion": 2 * thick, + "background-clip": "none", + "background-image-containment": "over", + "background-width": width + 4 * thick, + "background-height": height + 2 * thick, + } + } +} + + diff --git a/projects/ngx-reactome-cytoscape-style/src/lib/drawer/shape/rna-shape.ts b/projects/ngx-reactome-cytoscape-style/src/lib/drawer/shape/rna-shape.ts new file mode 100644 index 0000000..0c1851f --- /dev/null +++ b/projects/ngx-reactome-cytoscape-style/src/lib/drawer/shape/rna-shape.ts @@ -0,0 +1,75 @@ +import {extract} from "../../properties-utils"; +import {DrawerProvider} from "../types"; + + +export const rna: DrawerProvider = (properties, {width, height}) => { + const thick = extract(properties.global.thickness); + const select = extract(properties.global.selectNode); + const hover = extract(properties.global.hoverNode); + const flag = extract(properties.global.flag); + const fill = extract(properties.rna.fill); + + const halfWidth = width / 2; + + const r = extract(properties.rna.radius); + const oR = r + thick; + const iR = r - thick; + return { + hover: { + "background-image": ``, + "background-position-y": -thick, + "bounds-expansion": thick, + "background-clip": "none", + "background-image-containment": "over", + "background-height": 2 * thick, + }, + select: { + "background-image": ` + +`, + "background-position-y": height - r, + "bounds-expansion": thick, + "background-clip": "none", + "background-image-containment": "over", + "background-height": oR, + }, + flag: { + "background-image": ` + + +`, + "background-position-x": -2 * thick, + "background-position-y": -thick, + "bounds-expansion": 2 * thick, + "background-clip": "none", + "background-image-containment": "over", + "background-width": width + 4 * thick, + "background-height": height + 2 * thick, + } + } +} + + diff --git a/projects/ngx-reactome-cytoscape-style/src/lib/drawer/shape/sub-pathway-shape.ts b/projects/ngx-reactome-cytoscape-style/src/lib/drawer/shape/sub-pathway-shape.ts new file mode 100644 index 0000000..6dcc72e --- /dev/null +++ b/projects/ngx-reactome-cytoscape-style/src/lib/drawer/shape/sub-pathway-shape.ts @@ -0,0 +1,69 @@ +import {extract} from "../../properties-utils"; +import {DrawerProvider} from "../types"; + +export const subPathway: DrawerProvider = (properties, {width, height, disease}) => { + const select = extract(properties.global.selectNode); + const hover = extract(properties.global.hoverNode); + const flag = extract(properties.global.flag); + const thick = extract(properties.global.thickness) * 3; + const stroke = !disease ? + extract(properties.pathway.stroke) : + extract(properties.global.negativeContrast); + const fill = extract(properties.pathway.fill); + + const ht = thick / 2; + const halfHeight = height / 2; + const oR = halfHeight; + const iR = halfHeight - thick; + const oRx = Math.min(oR, width / 2) + return { + background: { + "background-image": `` + }, + hover: { + "background-image": ` + +`, + "background-clip": "none", + "background-image-containment": "over", + "background-height": oR, + }, + select: { + "background-image": ` + +`, + "background-position-y": halfHeight, + "background-clip": "none", + "background-image-containment": "over", + "background-height": oR, + }, + flag: { + "background-image": ` + +`, + "background-position-x": -thick, + "bounds-expansion": 2 * thick, + "background-clip": "none", + "background-image-containment": "over", + "background-width": width + 2* thick, + } + } +} + + diff --git a/projects/ngx-reactome-cytoscape-style/src/lib/drawer/types.ts b/projects/ngx-reactome-cytoscape-style/src/lib/drawer/types.ts new file mode 100644 index 0000000..45c9d3b --- /dev/null +++ b/projects/ngx-reactome-cytoscape-style/src/lib/drawer/types.ts @@ -0,0 +1,35 @@ +import BackgroundImage = cytoscape.Css.BackgroundImage; +import PropertyValueNode = cytoscape.Css.PropertyValueNode; +import _ from "lodash"; +import {Properties} from "../properties"; + +export type Image = { + [k in keyof BackgroundImage]: BackgroundImage[k] extends PropertyValueNode ? X : never +} + +export interface Drawer { + background?: Image; + select?: Image; + hover?: Image; + flag?: Image; + decorators?: Image[]; +} + +export interface DrawerParameters { + width: number, + height: number, + drug?: boolean, + disease?: boolean, + crossed?: boolean, + interactor?: boolean, + lossOfFunction?: boolean, +} + +export interface DrawerProvider { + (properties: Properties, params: DrawerParameters): Drawer +} + +export type Memo = T & _.MemoizedFunction; +export type Aggregated = { + [k in keyof T]-?: T[k][] +} diff --git a/projects/ngx-reactome-cytoscape-style/src/lib/interactivity.ts b/projects/ngx-reactome-cytoscape-style/src/lib/interactivity.ts new file mode 100644 index 0000000..c3a1822 --- /dev/null +++ b/projects/ngx-reactome-cytoscape-style/src/lib/interactivity.ts @@ -0,0 +1,345 @@ +import cytoscape from "cytoscape"; +import {extract} from "./properties-utils"; +import {Properties} from "./properties"; +import {ReactomeEvent, ReactomeEventTypes} from "./model/reactome-event.model"; +import Layers, {IHTMLLayer, LayersPlugin} from 'cytoscape-layers'; + + +cytoscape.use(Layers) + +export class Interactivity { + constructor(private cy: cytoscape.Core, private properties: Properties) { + // @ts-ignore + cy.elements().ungrabify().panify(); + this.initHover(cy); + this.initSelect(cy); + this.initZoom(cy); + this.initStructureVideo(cy); + } + + expandReaction(reactionNode: cytoscape.NodeCollection) { + return reactionNode.connectedEdges().add(reactionNode); + } + + applyToReaction = (action: (col: cytoscape.Collection) => void, stateKey: keyof State) => (reactionNode: cytoscape.NodeCollection) => { + if (state[stateKey]) return; + state[stateKey] = true; + action(this.expandReaction(reactionNode)); + state[stateKey] = false; + }; + + initHover(cy: cytoscape.Core, mapper = (x: X) => x) { + const hoverReaction = this.applyToReaction(col => col.addClass('hover'), 'hovering') + const deHoverReaction = this.applyToReaction(col => col.removeClass('hover'), 'deHovering') + + + const container = cy.container()!; + cy + .on('mouseover', 'node.PhysicalEntity', e => container.dispatchEvent(new ReactomeEvent(ReactomeEventTypes.hover, { + element: e.target, + type: "PhysicalEntity", + reactomeId: e.target.data('reactomeId'), + cy + }))) + .on('mouseover', 'node.Pathway', e => container.dispatchEvent(new ReactomeEvent(ReactomeEventTypes.hover, { + element: e.target, + type: "Pathway", + reactomeId: e.target.data('reactomeId'), + cy + }))) + .on('mouseover', 'node.reaction', e => container.dispatchEvent(new ReactomeEvent(ReactomeEventTypes.hover, { + element: e.target, + type: "reaction", + reactomeId: e.target.data('reactomeId'), + cy + }))) + .on('mouseover', 'edge.reaction', e => container.dispatchEvent(new ReactomeEvent(ReactomeEventTypes.hover, { + element: e.target.connectedNodes('.reaction'), + type: "reaction", + reactomeId: e.target.data('reactomeId'), + cy + }))) + + .on('mouseout', 'node.PhysicalEntity', e => container.dispatchEvent(new ReactomeEvent(ReactomeEventTypes.leave, { + element: e.target, + type: "PhysicalEntity", + reactomeId: e.target.data('reactomeId'), + cy + }))) + .on('mouseout', 'node.Pathway', e => container.dispatchEvent(new ReactomeEvent(ReactomeEventTypes.leave, { + element: e.target, + type: "Pathway", + reactomeId: e.target.data('reactomeId'), + cy + }))) + .on('mouseout', 'node.reaction', e => container.dispatchEvent(new ReactomeEvent(ReactomeEventTypes.leave, { + element: e.target, + type: "reaction", + reactomeId: e.target.data('reactomeId'), + cy + }))) + .on('mouseout', 'edge.reaction', e => container.dispatchEvent(new ReactomeEvent(ReactomeEventTypes.leave, { + element: e.target.connectedNodes('.reaction'), + type: "reaction", + reactomeId: e.target.data('reactomeId'), + cy + }))) + + .on('mouseover', 'node', e => mapper(e.target).addClass('hover')) + .on('mouseout', 'node', e => mapper(e.target).removeClass('hover')) + + .on('mouseover', 'node.reaction', e => hoverReaction(mapper(e.target))) + .on('mouseout', 'node.reaction', e => deHoverReaction(mapper(e.target))) + + .on('mouseover', 'edge', e => { + const mapped = mapper(e.target); + if (mapped !== e.target) console.log(mapped, mapped.connectedNodes('.reaction')) + + hoverReaction(mapped.connectedNodes('.reaction')) + }) + .on('mouseout', 'edge', e => deHoverReaction(mapper(e.target).connectedNodes('.reaction'))) + + .on('mouseover', 'node.Modification', e => mapper(cy.nodes(`#${e.target.data('nodeId')}`)).addClass('hover')) + .on('mouseout', 'node.Modification', e => mapper(cy.nodes(`#${e.target.data('nodeId')}`)).removeClass('hover')) + + .on('mouseover', 'edge.Interactor', e => mapper(cy.edges(`#${e.target.data('id')}`)).addClass('hover')) + .on('mouseout', 'edge.Interactor', e => mapper(cy.edges(`#${e.target.data('id')}`)).removeClass('hover')) + } + + initSelect(cy: cytoscape.Core, mapper = (x: X) => x) { + const selectReaction = this.applyToReaction(col => col.select(), 'selecting') + const container = cy.container()!; + + cy + .on('select', 'node.PhysicalEntity', e => container.dispatchEvent(new ReactomeEvent(ReactomeEventTypes.select, { + element: e.target, + type: "PhysicalEntity", + reactomeId: e.target.data('reactomeId'), + cy + }))) + .on('select', 'node.Pathway', e => container.dispatchEvent(new ReactomeEvent(ReactomeEventTypes.select, { + element: e.target, + type: "Pathway", + reactomeId: e.target.data('reactomeId'), + cy + }))) + .on('select', 'node.reaction', e => container.dispatchEvent(new ReactomeEvent(ReactomeEventTypes.select, { + element: e.target, + type: "reaction", + reactomeId: e.target.data('reactomeId'), + cy + }))) + .on('select', 'edge.reaction', e => container.dispatchEvent(new ReactomeEvent(ReactomeEventTypes.select, { + element: e.target.connectedNodes('.reaction'), + type: "reaction", + reactomeId: e.target.data('reactomeId'), + cy + }))) + + .on('click', 'node.InteractorOccurrences', e => { + const openClass = 'opened'; + e.target.toggleClass(openClass); + let eventType = !e.target.hasClass(openClass) ? ReactomeEventTypes.open : ReactomeEventTypes.close; + container.dispatchEvent(new ReactomeEvent(eventType, { + element: e.target, + type: "Interactor", + reactomeId: e.target.data('reactomeId'), + cy + })) + }) + + .on('unselect', 'node.PhysicalEntity', e => container.dispatchEvent(new ReactomeEvent(ReactomeEventTypes.unselect, { + element: e.target, + type: "PhysicalEntity", + reactomeId: e.target.data('reactomeId'), + cy + }))) + .on('unselect', 'node.Pathway', e => container.dispatchEvent(new ReactomeEvent(ReactomeEventTypes.unselect, { + element: e.target, + type: "Pathway", + reactomeId: e.target.data('reactomeId'), + cy + }))) + .on('unselect', 'node.reaction', e => container.dispatchEvent(new ReactomeEvent(ReactomeEventTypes.unselect, { + element: e.target, + type: "reaction", + reactomeId: e.target.data('reactomeId'), + cy + }))) + .on('unselect', 'edge.reaction', e => container.dispatchEvent(new ReactomeEvent(ReactomeEventTypes.unselect, { + element: e.target.connectedNodes('.reaction'), + type: "reaction", + reactomeId: e.target.data('reactomeId'), + cy + }))) + + .on('select', 'edge', e => selectReaction(mapper(e.target).connectedNodes('.reaction'))) + .on('unselect', 'edge', e => selectReaction( + mapper(cy.edges(':selected').connectedNodes('.reaction') + .add(cy.nodes('.reaction:selected'))) + )) // Avoid single element selection when double-clicking + + .on('select', 'node.reaction', event => selectReaction(mapper(event.target))) + .on('select', 'node.Modification', e => mapper(cy.nodes(`#${e.target.data('nodeId')}`)).select()) + + .on('click', '.Interactor', e => { + const prop = e.target.isNode() ? 'accURL' : 'evidenceURLs'; + const url = e.target.data(prop); + if (url) window.open(url); + }); + + } + + private videoLayer!: IHTMLLayer; + + + initStructureVideo(cy: cytoscape.Core) { + // @ts-ignore + const layers: LayersPlugin = cy.layers(); + + this.videoLayer = layers.append('html'); + layers.renderPerNode( + this.videoLayer, + (elem: HTMLElement, node: cytoscape.NodeSingular) => { + + }, + { + init: (elem: HTMLElement, node: cytoscape.NodeSingular) => { + elem.innerHTML = node.data('html') || ''; + elem.style.display = "flex" + }, + transform: `translate(-70%, -50%)`, + position: 'center', + uniqueElements: true, + checkBounds: false, + selector: '.Protein', + queryEachTime: false, + } + ); + this.cy + ?.on('mouseover', 'node.Protein', (event) => { + const videoId = event.target.id(); + const videoElement = this.videoLayer.node.querySelector(`#video-${videoId}`) as HTMLVideoElement; + if (videoElement) { + videoElement.play(); + } + }) + .on('mouseout', 'node.Protein', (event) => { + const videoId = event.target.id(); + const videoElement = this.videoLayer.node.querySelector(`#video-${videoId}`) as HTMLVideoElement; + if (videoElement) { + videoElement.pause(); + } + }); + } + + onZoom!: (e?: cytoscape.EventObjectCore) => void; + + proteins!: cytoscape.NodeCollection; + + updateProteins() { + this.proteins = this.cy.nodes('.Protein'); + } + + initZoom(cy: cytoscape.Core) { + const shadows = cy.edges('[?pathway]'); + const shadowLabels = cy.nodes('.Shadow'); + const trivial = cy.elements('.trivial'); + this.updateProteins(); + + cy.minZoom(Math.min(cy.zoom(), extract(this.properties.shadow.labelOpacity)[0][0] / 100)); + cy.maxZoom(15); + + let baseFontSize = extract(this.properties.font.size); + const structureOpacityArray = extract(this.properties.structure.opacity) + const zoomStart = structureOpacityArray[0][0]; + const zoomEnd = structureOpacityArray[structureOpacityArray.length - 1][0] + + + this.onZoom = e => { + const zoomLevel = cy.zoom(); + const z = zoomLevel * 100; + const shadowLabelOpacity = this.interpolate(z, extract(this.properties.shadow.labelOpacity).map(v => this.p(...v))) / 100; + const trivialOpacity = this.interpolate(z, extract(this.properties.trivial.opacity).map(v => this.p(...v))) / 100; + const shadowOpacity = this.interpolate(z, extract(this.properties.shadow.opacity).map(v => this.p(...v))) / 100; + const videoOpacity = this.interpolate(z, extract(this.properties.structure.opacity).map(v => this.p(...v))) / 100; + + const maxWidth = this.interpolate(z, [this.p(zoomStart, 100), this.p(zoomEnd, 50)]); + const margin = this.interpolate(z, [this.p(zoomStart, 0), this.p(zoomEnd, 25)]); + const fontSize = this.interpolate(z, [this.p(zoomStart, baseFontSize), this.p(zoomEnd, baseFontSize / 2)]); + shadows.style({ + 'underlay-opacity': shadowOpacity + }); + shadowLabels.style({ + 'text-opacity': shadowLabelOpacity + }); + trivial.style({ + 'opacity': trivialOpacity, + 'underlay-opacity': Math.min(shadowOpacity, trivialOpacity) + }); + this.proteins.style( + { + 'font-size': fontSize, + 'text-margin-x': margin + "%", + 'text-max-width': maxWidth + "%", + }) + + this.videoLayer.node.style.opacity = videoOpacity + ''; + } + + cy.on('zoom', this.onZoom); + } + + p(x: number, y: number): P { + return new P(x, y) + } + + interpolate(x: number, points: P[]): number { + if (x < points.at(0)!.x) return points.at(0)!.y; + if (x > points.at(-1)!.x) return points.at(-1)!.y; + for (let i = 0; i + 1 < points.length; i++) { + let y = this.lerp(x, points[i], points[i + 1]) + if (y) return y; + } + console.assert(false, "Should not arrive here") + return 0; + } + + /** + * Linear interpolation as described in https://en.wikipedia.org/wiki/Linear_interpolation + * @param x : number number to determine corresponding value + * @param p0 : P lower bound point for the linear interpolation + * @param p1 : P upper bound point for the linear interpolation + */ + lerp(x: number, p0: P, p1: P): number | undefined { + if (x < p0.x || x > p1.x) return undefined; + return (p0.y * (p1.x - x) + p1.y * (x - p0.x)) / (p1.x - p0.x); + } +} + +interface State { + [k: string]: boolean +} + +const state: State = { + selecting: false, + hovering: false, + deHovering: false +} + +class P extends Array { + constructor(x: number, y: number) { + super(x, y); + } + + get x() { + return this[0] + } + + get y() { + return this[1] + } +} + + + diff --git a/projects/ngx-reactome-cytoscape-style/src/lib/model/reactome-event.model.ts b/projects/ngx-reactome-cytoscape-style/src/lib/model/reactome-event.model.ts new file mode 100644 index 0000000..a0975d3 --- /dev/null +++ b/projects/ngx-reactome-cytoscape-style/src/lib/model/reactome-event.model.ts @@ -0,0 +1,25 @@ +import cytoscape from "cytoscape"; +export interface ReactomeEventTarget { + reactomeId: string, + type: 'PhysicalEntity' | 'Pathway' | 'reaction' | 'Interactor', + element: cytoscape.NodeSingular, + cy: cytoscape.Core +} + +export enum ReactomeEventTypes { + hover = 'reactome::hover', + leave = 'reactome::leave', + + select = 'reactome::select', + unselect = 'reactome::unselect', + + open = 'reactome::open', + close = 'reactome::close' +} + +export class ReactomeEvent extends CustomEvent { + constructor(type: ReactomeEventTypes, target: ReactomeEventTarget) { + super(type, {detail: target}); + } + +} diff --git a/projects/ngx-reactome-cytoscape-style/src/lib/properties-utils.ts b/projects/ngx-reactome-cytoscape-style/src/lib/properties-utils.ts new file mode 100644 index 0000000..fece617 --- /dev/null +++ b/projects/ngx-reactome-cytoscape-style/src/lib/properties-utils.ts @@ -0,0 +1,51 @@ +import {Properties} from "./properties"; + +export type Provider = () => T; + +export type Property = T | Provider; + +/** + * This is a guard function to check if a property is a Provider function, or a direct value + * + * @param property The value to check + * @return true if is a Provider function + */ +export function isProvider(property: Property): property is Provider { + return (property as Provider).apply !== undefined; +} + +/** + * This function extracts the value from a property, and if the property is a Provider, it calls the property function to get the actual value. + * + * @param property A value of type Property. + */ +export function extract(property: Property): T { + return isProvider(property) ? property() : property; +} + +export type PropertiesType = { + [k: string]: Property +} + +export type Defaultable = T & { + setDefault(key: KA, defaultValue: VA): Defaultable; +} & { + [P in K]-?: T[P]; +} + + +export function defaultable(object: T): Defaultable { + const defaultable = (object) as Defaultable; + + defaultable.setDefault = function (this: Defaultable, key: KA, defaultValue: VA): Defaultable { + if (!object[key]) object[key] = defaultValue; + return defaultable as Defaultable; + }; + + return defaultable; +} + +export const propertyExtractor = (properties: Properties) => (group: G, key: K) => properties[group][key] +export const propertyMapper = (properties: Properties) => ? X : never, M extends (t: T) => any>(group: G, key: K, mapper: M) => mapper(extract(properties[group][key])) + + diff --git a/projects/ngx-reactome-cytoscape-style/src/lib/properties.ts b/projects/ngx-reactome-cytoscape-style/src/lib/properties.ts new file mode 100644 index 0000000..35a886c --- /dev/null +++ b/projects/ngx-reactome-cytoscape-style/src/lib/properties.ts @@ -0,0 +1,228 @@ +import {defaultable, extract, PropertiesType, Property} from "./properties-utils"; + +export interface Properties extends PropertiesType { + global: { + thickness: Property + surface: Property + onSurface: Property + primary: Property + onPrimary: Property + positive: Property + negative: Property + negativeContrast: Property + selectNode: Property + selectEdge: Property + hoverNode: Property + hoverEdge: Property + flag: Property + }, + compartment: { + fill: Property + opacity: Property + } + shadow: { + luminosity: Property + opacity: Property<[number, number][]> + labelOpacity: Property<[number, number][]> + } + protein: { + fill: Property + drug: Property + radius: Property + } + genomeEncodedEntity: { + fill: Property + drug: Property + bottomRadius: Property + topRadius: Property + } + rna: { + fill: Property + drug: Property + radius: Property + } + gene: { + fill: Property + decorationHeight: Property + decorationExtraWidth: Property + arrowHeadSize: Property + borderRadius: Property + arrowRadius: Property + } + molecule: { + fill: Property + stroke: Property + drug: Property + } + entitySet: { + fill: Property + stroke: Property + drug: Property + radius: Property + } + complex: { + fill: Property + stroke: Property + drug: Property + cut: Property + } + cell: { + thickness: Property + fill: Property + stroke: Property + } + //interacting pathway and sub pathway + pathway: { + fill: Property + stroke: Property + } + modification: { + fill: Property + } + interactor: { + fill: Property + stroke: Property + decorationWidth: Property + } + trivial: { + opacity: Property<[number, number][]> + } + structure: { + opacity: Property<[number, number][]> + } + font: { + size: Property + } +} + +export function setDefaults(properties: UserProperties = {}, css: CSSStyleDeclaration): Properties { + const global: Properties['global'] = defaultable(properties.global || {}) + .setDefault('thickness', 4) + .setDefault('surface', () => css.getPropertyValue('--surface') || '#F6FEFF') + .setDefault('onSurface', () => css.getPropertyValue('--on-surface') || '#001F24') + .setDefault('primary', () => css.getPropertyValue('--primary') || '#006782') + .setDefault('onPrimary', () => css.getPropertyValue('--on-primary') || '#FFFFFF') + .setDefault('positive', () => css.getPropertyValue('--positive') || '#0C9509') + .setDefault('negative', () => css.getPropertyValue('--negative') || '#BA1A1A') + .setDefault('negativeContrast', () => css.getPropertyValue('--negative-contrast') || '#ea7d7d') + .setDefault('selectNode', () => css.getPropertyValue('--select-node') || '#6EB3E4') + .setDefault('selectEdge', () => css.getPropertyValue('--select-edge') || '#0561A6') + .setDefault('hoverNode', () => css.getPropertyValue('--hover-node') || '#78E076') + .setDefault('hoverEdge', () => css.getPropertyValue('--hover-edge') || '#04B601') + .setDefault('flag', () => css.getPropertyValue('--flag') || '#DE75B4') + + const compartment: Properties['compartment'] = defaultable(properties.compartment || {}) + .setDefault('opacity', () => Number.parseFloat(css.getPropertyValue('--opacity')) || 0.06) + .setDefault('fill', () => css.getPropertyValue('--compartment') || '#E5834A') + + const shadow: Properties['shadow'] = defaultable(properties.shadow || {}) + .setDefault('luminosity', () => Number.parseFloat(css.getPropertyValue('--shadow-luminosity')) || 40) + .setDefault('opacity', () => { + const p = css.getPropertyValue('--shadow-opacity'); + return p ? JSON.parse(p) : [[20, 20], [40, 0]]; + }) + .setDefault('labelOpacity', () => { + const p = css.getPropertyValue('--shadow-label-opacity'); + return p ? JSON.parse(p) : [[20, 100], [40, 0]]; + }) + + const protein: Properties['protein'] = defaultable(properties.protein || {}) + .setDefault('fill', () => css.getPropertyValue('--primary-contrast-1') || '#001F29') + .setDefault('drug', () => css.getPropertyValue('--drug-contrast-1') || '#3E001D') + .setDefault('radius', 8) + + + const genomeEncodedEntity: Properties['genomeEncodedEntity'] = defaultable(properties.genomeEncodedEntity || {}) + .setDefault('fill', () => css.getPropertyValue('--primary-contrast-4') || '#006782') + .setDefault('drug', () => css.getPropertyValue('--drug-contrast-4') || '#BB557A') + .setDefault('bottomRadius', 6) + .setDefault('topRadius', 40) + + const rna: Properties['rna'] = defaultable(properties.rna || {}) + .setDefault('fill', () => css.getPropertyValue('--primary-contrast-2') || '#003545') + .setDefault('drug', () => css.getPropertyValue('--drug-contrast-2') || '#610B33') + .setDefault('radius', 8) + + const gene: Properties['gene'] = defaultable(properties.gene || {}) + .setDefault('decorationHeight', 20) + .setDefault('decorationExtraWidth', 17) + .setDefault("arrowHeadSize", 10) + .setDefault("borderRadius", 8) + .setDefault("arrowRadius", 8) + .setDefault("fill", () => css.getPropertyValue('--primary-contrast-3') || '#004D62') + + const molecule: Properties['molecule'] = defaultable(properties.molecule || {}) + .setDefault("fill", () => extract(global.surface)) + .setDefault("stroke", () => extract(global.onSurface)) + .setDefault('drug', () => css.getPropertyValue('--drug-contrast-3') || '#9C3D61') + + const complex: Properties['complex'] = defaultable(properties.complex || {}) + .setDefault("cut", 8) + .setDefault("fill", () => css.getPropertyValue('--tertiary-contrast-1') || '#00315C') + .setDefault("stroke", () => css.getPropertyValue('--on-tertiary') || '#FFFFFF') + .setDefault('drug', () => css.getPropertyValue('--drug-contrast-3') || '#7E2549') + + const entitySet: Properties['entitySet'] = defaultable(properties.entitySet || {}) + .setDefault("radius", 8) + .setDefault("fill", () => css.getPropertyValue('--tertiary-contrast-3') || '#1660A5') + .setDefault("stroke", () => css.getPropertyValue('--on-tertiary') || '#FFFFFF') + .setDefault('drug', () => css.getPropertyValue('--drug-contrast-4') || '#BB557A') + + const cell: Properties['cell'] = defaultable(properties.cell || {}) + .setDefault('thickness', () => Number.parseFloat(css.getPropertyValue('--cell-thickness')) || 16) + .setDefault("fill", () => css.getPropertyValue('--tertiary-contrast-2') || '#004882') + .setDefault("stroke", () => css.getPropertyValue('--on-tertiary') || '#FFFFFF') + + const pathway: Properties['pathway'] = defaultable(properties.pathway || {}) + .setDefault("fill", () => css.getPropertyValue('--primary-contrast-4') || '#006782') + .setDefault("stroke", () => extract(global.onPrimary)) + + const modification: Properties['modification'] = defaultable(properties.modification || {}) + .setDefault("fill", () => css.getPropertyValue('--primary-contrast-2') || '#003545') + + const interactor: Properties['interactor'] = defaultable(properties.interactor || {}) + .setDefault("fill", () => css.getPropertyValue('--interactor-fill') || '#68297C') + .setDefault("stroke", () => css.getPropertyValue('--interactor-stroke') || '#9f5cb5') + .setDefault('decorationWidth', () => Number.parseFloat(css.getPropertyValue('--decorationWidth')) || 20) + + const trivial: Properties['trivial'] = defaultable(properties.trivial || {}) + .setDefault('opacity', () => { + const p = css.getPropertyValue('--trivial-opacity'); + return p ? JSON.parse(p) : [[40, 0], [60, 100]]; + }) + + const structure: Properties['structure'] = defaultable(properties.structure || {}) + .setDefault('opacity', () => { + const p = css.getPropertyValue('--structure-opacity'); + return p ? JSON.parse(p) : [[130, 0], [150, 100]]; + }) + + const font: Properties['font'] = defaultable(properties.font || {}) + .setDefault('size', 12) + + + return { + global, + compartment, + shadow, + protein, + genomeEncodedEntity, + rna, + gene, + molecule, + complex, + entitySet, + cell, + pathway, + modification, + interactor, + trivial, + structure, + font + } +} + +export type UserProperties = Partial<{ + [k in keyof Properties]: Partial +}> + diff --git a/projects/ngx-reactome-cytoscape-style/src/lib/style.ts b/projects/ngx-reactome-cytoscape-style/src/lib/style.ts new file mode 100644 index 0000000..b05c205 --- /dev/null +++ b/projects/ngx-reactome-cytoscape-style/src/lib/style.ts @@ -0,0 +1,836 @@ +import cytoscape from "cytoscape"; +import {clearDrawersCache, imageBuilder, OMMITED_ICON} from "./drawer/image-builder"; +import {extract, propertyExtractor, propertyMapper} from "./properties-utils"; + +import {Properties, setDefaults, UserProperties} from "./properties"; +import {Interactivity} from "./interactivity"; +import {HSL} from "./color"; + + +export class Style { + public css: CSSStyleDeclaration; + public properties: Properties; + private cy?: cytoscape.Core; + private readonly imageBuilder; + private readonly p; + private readonly pm; + public interactivity!: Interactivity; + + constructor(container: HTMLElement, properties: UserProperties = {}) { + this.css = getComputedStyle(container); + this.properties = setDefaults(properties, this.css); + this.imageBuilder = imageBuilder(this.properties); + this.p = propertyExtractor(this.properties); + this.pm = propertyMapper(this.properties); + } + + bindToCytoscape(cy: cytoscape.Core) { + this.cy = cy; + this.interactivity = new Interactivity(cy, this.properties); + this.initSubPathwayColors() + } + + initSubPathwayColors() { + const subPathways = this.cy?.nodes('.Shadow'); + if (!subPathways) return; + const dH = 360 / subPathways.length; + + const subpathwayIdToColor = new Map(subPathways.map((subPathway, i) => { + const hex = new HSL(dH * i, 100, extract(this.properties.shadow.luminosity)).toHex(); + subPathway.data('color', hex); + return [subPathway.data('reactomeId'), hex] + })) + + this.cy?.edges('[?pathway]').forEach(edge => { + edge.data('color', subpathwayIdToColor.get(edge.data('pathway')) + ) + }) + } + + + getStyleSheet(): cytoscape.Stylesheet[] { + return [ + { + selector: "*", + style: { + "font-family": "Roboto", + "font-weight": 600, + "z-index": 1 + } + }, + { + selector: 'node.Compartment', + style: { + "shape": "round-rectangle", + "width": 'data(width)', + "height": 'data(height)', + + "border-style": 'double', + + "z-index": 0, + "z-compound-depth": "bottom", + "overlay-opacity": 0, + + "color": this.p('compartment', 'fill'), + "border-color": this.p('compartment', 'fill'), + "background-color": this.p('compartment', 'fill'), + "background-opacity": this.p('compartment', 'opacity'), + "border-width": this.pm('global', 'thickness', t => 3 * t) + } + }, + { + selector: 'node.Compartment.inner, node.Compartment.outer', + style: { + "border-style": 'solid', + "border-width": this.p('global', 'thickness') + } + }, + { + selector: 'node.Compartment.outer', + style: { + 'label': 'data(displayName)', + "text-opacity": 1, + "text-valign": "bottom", + "text-halign": "right", + // @ts-ignore + "text-margin-x": "data(textX)", + // @ts-ignore + "text-margin-y": "data(textY)", + } + }, + { + selector: 'node[?radius]', + style: { + // @ts-ignore + 'corner-radius': 'data(radius)' + } + }, + { + selector: 'node.Shadow', + style: { + 'label': 'data(displayName)', + "font-size": 80, + "background-opacity": 0, + "shape": "rectangle", + "text-valign": "center", + "text-halign": "center", + "text-outline-color": this.p('global', 'surface'), + "text-outline-width": 15, + "text-wrap": 'wrap', + "text-max-width": "data(width)", + } + }, + { + selector: 'node.Shadow[?color]', + style: { + "color": 'data(color)', + } + }, + { + selector: 'node.drug', + style: { + "text-max-width": (node: cytoscape.NodeSingular) => (node.width() - 44) + 'px', + "text-margin-x": 4, + "font-style": "italic" + } + }, { + selector: 'node.PhysicalEntity, node.Pathway, node.Modification, node.Protein', + style: { + 'font-size': this.p('font','size'), + 'text-margin-x' : 0, + 'label': 'data(displayName)', + 'width': 'data(width)', + 'height': 'data(height)', + "background-fit": "none", + "text-halign": 'center', + "text-valign": 'center', + "text-wrap": 'wrap', + "text-max-width": (node:cytoscape.NodeSingular) => node.data('width') + 'px', + // @ts-ignore + "background-image-smoothing": "no no no no no no no no", + + // @ts-ignore + "background-image": node => this.imageBuilder(node)["background-image"], + // @ts-ignore + "background-position-y": node => this.imageBuilder(node)["background-position-y"] || 0, + // @ts-ignore + "background-position-x": node => this.imageBuilder(node)["background-position-x"] || 0, + // @ts-ignore + "background-height": node => this.imageBuilder(node)["background-height"] || '100%', + // @ts-ignore + "background-width": node => this.imageBuilder(node)["background-width"] || '100%', + // @ts-ignore + "background-clip": node => this.imageBuilder(node)["background-clip"] || 'node', + // @ts-ignore + "background-image-containment": node => this.imageBuilder(node)["background-image-containment"] || 'inside', + // @ts-ignore + "background-image-opacity": node => this.imageBuilder(node)["background-image-opacity"] || 1, + // @ts-ignore + "bounds-expansion": node => this.imageBuilder(node)["bounds-expansion"][0] || 0, + 'color': this.p('global', 'onPrimary'), + } + }, + + { + selector: 'node.InteractorOccurrences', + style: { + 'label': 'data(displayName)', + 'color': this.p('global', 'surface'), + "shape": "ellipse", + "text-valign": "center", + "text-halign": "center", + "text-wrap": 'wrap', + "background-color": this.p('interactor', 'fill') + } + }, + { + selector: 'node.InteractorOccurrences.Disease', + style: { + "background-color": this.p('global', 'negative') + } + }, + { + selector: 'node.InteractorOccurrences.hover', + style: { + "border-width": this.pm('global', 'thickness', t => t * 1), + "border-color": this.p('global', 'hoverNode'), + } + }, + { + selector: 'node.InteractorOccurrences.select', + style: { + "border-width": this.pm('global', 'thickness', t => t * 1), + "border-color": this.p('global', 'selectNode'), + } + }, + { + selector: 'node.Interactor', + style: { + "label": "data(displayName)", + "font-family": "Roboto Mono, monospace", + // "border-color": this.p('interactor', 'stroke'), + "border-width": this.p('global', 'thickness'), + "text-wrap": "ellipsis", + "border-color": this.p('interactor', 'fill') + } + }, + { + selector: 'node.DiseaseInteractor', + style: { + "shape": "round-hexagon", + "background-color": this.p('global', 'negative'), + "background-opacity": 0, + "font-family": "Roboto Mono, monospace", + "color": this.p('global', 'onPrimary'), + "text-wrap": "ellipsis", + "text-max-width": (node: cytoscape.NodeSingular) => (node.width() - 40) + 'px', + } + }, + + { + selector: 'node.PhysicalEntity.disease', + style: { + "border-color": this.p('global', 'negativeContrast'), + "color": this.p('global', 'negativeContrast'), + "border-width": this.p('global', 'thickness'), + } + }, { + selector: 'node.Protein', + style: { + "shape": "round-rectangle", + "background-color": this.p('protein', 'fill') + } + }, { + selector: 'node.Protein.drug', + style: { + "background-color": this.p('protein', 'drug') + } + }, { + selector: 'node.GenomeEncodedEntity', + style: { + "shape": "round-rectangle", + "background-opacity": 0, + "background-color": this.p('genomeEncodedEntity', 'fill'), + "text-margin-y": this.pm('genomeEncodedEntity', 'topRadius', r => r / 10), + "border-width": 0 // Avoid disease border + } + }, { + selector: 'node.RNA', + style: { + "shape": "bottom-round-rectangle", + "background-color": this.p('rna', 'fill'), + } + }, { + selector: 'node.RNA.drug', + style: { + "background-color": this.p('rna', 'drug'), + } + }, { + selector: 'node.Gene', + style: { + "shape": "bottom-round-rectangle", + "background-opacity": 0, + "background-color": this.p('gene', 'fill'), + "bounds-expansion": this.p('gene', 'decorationExtraWidth'), + "text-margin-y": this.pm('gene', 'decorationHeight', h => h / 2), + "border-width": 0 // Avoid disease border + } + }, { + selector: 'node.Molecule', + style: { + "shape": 'round-rectangle', + "color": this.p("molecule", 'stroke'), + "background-color": this.p("molecule", 'fill'), + "border-color": this.p("molecule", 'stroke'), + "border-width": this.p("global", 'thickness'), + // @ts-ignore + "corner-radius": (node: cytoscape.NodeSingular) => Math.min(node.data('width'), node.data('height')) / 2, + } + }, { + selector: 'node.Molecule.drug', + style: { + "color": this.p("molecule", 'drug'), + "border-color": this.p("molecule", 'drug'), + } + }, { + selector: 'node.Molecule.Interactor', + style: { + "border-color": this.p("interactor", 'fill'), + } + }, { + selector: 'node.EntitySet', + style: { + "background-opacity": 0, + "shape": "round-rectangle", + "border-width": 0, // Avoid disease border + "text-max-width": (node: cytoscape.NodeSingular) => + this.pm('global', 'thickness', t => + this.pm('entitySet', 'radius', r => `${node.width() - 2 * r - 6 * t}px` + ) + ) + } + }, { + selector: 'node.EntitySet.drug', + style: { + "text-max-width": (node: cytoscape.NodeSingular) => + this.pm('global', 'thickness', t => + this.pm('entitySet', 'radius', r => `${node.width() - 2 * r - 6 * t - 44}px` + ) + ) + } + }, { + selector: 'node.Complex', + style: { + "shape": "cut-rectangle", + "text-max-width": (node: cytoscape.NodeSingular) => this.pm('global', 'thickness', t => (node.width() - t * 6) + 'px'), + "background-opacity": 0, + "border-width": 0, // Avoid disease border + + // "background-color": this.p("complex", 'fill'), + // "width": (node: cytoscape.NodeSingular) => this.pm('global', 'thickness', t => node.data('width') - 2 * t) , + // "height": (node: cytoscape.NodeSingular) => this.pm('global', 'thickness', t => node.data('height') - 2 * t) , + // // @ts-ignore + // "corner-radius": this.pm('complex', 'cut', c => c), + // "outline-width": this.p('global', 'thickness'), + // "outline-color": this.p('complex', 'fill'), + // "outline-offset": this.pm('global', 'thickness', t => - t), + // "outline-opacity": 1, + // + // // "border-position": 'inside', + // "border-join": 'round', + // "border-color": this.p('complex', 'stroke'), + // "border-width": this.p('global', 'thickness'), + } + }, { + selector: 'node.Complex.drug', + style: { + "text-margin-x": 4, + "text-max-width": (node: cytoscape.NodeSingular) => this.pm('global', 'thickness', t => (node.width() - t * 6 - 44) + 'px') + } + }, { + selector: 'node.Cell', + style: { + "background-opacity": 0, + "shape": "round-rectangle", + // @ts-ignore + "corner-radius": 999999, + "border-width": 0, // Avoid disease border + + "text-max-width": (node: cytoscape.NodeSingular) => + this.pm('global', 'thickness', t => this.pm('cell', 'thickness', ct => (node.width() - t * 2 - ct * 2) + 'px')) + } + }, + { + selector: 'node.Pathway', + style: { + "background-color": this.p('pathway', 'fill'), + "text-margin-x": 18, + } + }, + { + selector: 'node.Interacting.Pathway', + style: { + "shape": "rectangle", + "border-color": this.p('pathway', 'stroke'), + "border-width": this.pm('global', 'thickness', t => 3 * t), + // @ts-ignore + "border-position": "inside", + "text-max-width": (node: cytoscape.NodeSingular) => + this.pm('global', 'thickness', t => `${node.width() - (6 * t + 36) * 2}px` + ), + } + }, + { + selector: 'node.SUB.Pathway', + style: { + "background-opacity": 0, + "shape": 'round-rectangle', + "text-max-width": (node: cytoscape.NodeSingular) => + this.pm('global', 'thickness', t => `${node.width() - (6 * t + 36) * 2}px` + ), + } + }, { + selector: 'node.Pathway.disease', + style: { + "border-color": this.p('global', 'negativeContrast'), + "color": this.p('global', 'negativeContrast'), + } + }, { + selector: 'node.Modification', + style: { + "background-color": this.p('modification', 'fill'), + "shape": 'round-rectangle' + } + }, + { + selector: 'node.loss-of-function', + style: { + "border-style": 'dashed', + //@ts-ignore + "border-dash-pattern": this.pm('global', 'thickness', t => [t, t * 2]), + "border-cap": "round" + } + }, + + + { + selector: 'node.reaction', + style: { + "width": this.pm('global', 'thickness', t => t * 6), + "height": this.pm('global', 'thickness', t => t * 6), + "shape": "round-rectangle", + "text-halign": "center", + "text-valign": "center", + "border-width": this.p('global', 'thickness'), + "border-color": this.p('global', 'onSurface'), + "color": this.p('global', 'onSurface'), + "background-color": this.p('global', 'surface'), + } + }, { + selector: 'node.reaction[?displayName]', + style: { + "label": "data(displayName)", + "font-weight": 400, + "text-valign": "top", + "text-margin-y": -5, + } + }, { + selector: 'node.reaction.hover', + style: { + "border-width": this.pm('global', 'thickness', t => t * 1), + "border-color": this.p('global', 'hoverEdge'), + } + }, { + selector: 'node.reaction:selected', + style: { + "border-width": this.pm('global', 'thickness', t => t * 1.5), + "border-color": this.p('global', 'selectEdge'), + } + }, { + selector: 'node.reaction.flag', + style: { + // @ts-ignore + "outline-width": this.pm('global', 'thickness', t => t * 1.5), + "outline-color": this.p('global', 'flag'), + } + }, { + selector: 'node.association', + style: { + "shape": "ellipse", + "background-color": this.p('global', 'onSurface'), + } + }, { + selector: 'node.dissociation', + style: { + "shape": "ellipse", + "border-style": "double", + "border-width": this.pm('global', 'thickness', t => 3 * t) + } + }, { + selector: 'node.uncertain', + style: { + "label": "?", + "text-valign": "center", + "text-margin-y": 0, + "font-weight": 600 + } + }, { + selector: 'node.omitted', + style: { + "background-image": OMMITED_ICON(this.properties), + "background-fit": "cover", + "background-height": "100%", + "background-width": "100%", + } + }, + { + selector: 'node.InteractorOccurrences', + style: { + 'label': 'data(displayName)', + 'color': this.p('global', 'surface'), + "shape": "ellipse", + "text-valign": "center", + "text-halign": "center", + "text-wrap": 'wrap', + "background-color": this.p('interactor', 'fill') + } + }, + { + selector: 'node.InteractorOccurrences.Disease', + style: { + "background-color": this.p('global', 'negative') + } + }, + { + selector: 'node.InteractorOccurrences.hover', + style: { + "border-width": this.pm('global', 'thickness', t => t * 1), + "border-color": this.p('global', 'hoverNode'), + } + }, + { + selector: 'node.InteractorOccurrences.select', + style: { + "border-width": this.pm('global', 'thickness', t => t * 1), + "border-color": this.p('global', 'selectNode'), + } + }, + { + selector: 'node.Interactor', + style: { + "label": "data(displayName)", + "font-family": "Roboto Mono, monospace", + "border-color": this.p('interactor', 'stroke'), + "text-wrap": "ellipsis", + } + }, + { + selector: 'node.RNA.Interactor, node.Protein.Interactor', + style: { + "border-color": this.p('interactor', 'fill'), + "border-width": this.p('global', 'thickness'), + + } + }, + { + selector: 'node.Molecule.Interactor', + style: { + "color": this.p("molecule", 'stroke'), + "background-color": this.p("molecule", 'fill'), + "border-color": this.p("interactor", 'stroke'), + "border-width": this.p("global", 'thickness'), + // @ts-ignore + "corner-radius": (node: cytoscape.NodeSingular) => Math.min(node.data('width'), node.data('height')) / 2, + } + }, + // { + // selector: 'node.Interactor.Disease', + // style: { + // "shape": "round-hexagon", + // "background-color": this.p('global', 'negative'), + // "color": this.p('global', 'onPrimary'), + // "border-width": 0, + // "width": "data(width)", + // "height": "data(height)", + // "text-halign": 'center', + // "text-valign": 'center', + // "text-max-width": (node: cytoscape.NodeSingular) => (node.width() - 40) + 'px', + // } + // }, + { + selector: 'node.DiseaseInteractor', + style: { + "shape": "round-hexagon", + "background-color": this.p('global', 'negative'), + "color": this.p('global', 'onPrimary'), + "border-width": 0, + "width": "data(width)", + "height": "data(height)", + "text-halign": 'center', + "text-valign": 'center', + "text-max-width": (node: cytoscape.NodeSingular) => (node.width() - 60) + 'px', + } + }, + + + { + selector: 'edge', + style: { + "curve-style": "straight", + "line-cap": "round", + "source-endpoint": "outside-to-node", + "arrow-scale": 1.5, + + 'width': this.p('global', 'thickness'), + 'color': this.p('global', 'onSurface'), + 'line-color': this.p('global', 'onSurface'), + 'target-arrow-color': this.p('global', 'onSurface'), + 'mid-source-arrow-color': this.p('global', 'onSurface'), + 'mid-target-arrow-color': this.p('global', 'onSurface'), + 'source-arrow-color': this.p('global', 'onSurface'), + // @ts-ignore + 'source-arrow-width': '100%', + // @ts-ignore + 'target-arrow-width': '100%', + } + }, { + selector: 'edge.disease', + style: { + "color": this.p('global', 'negative'), + "line-color": this.p('global', 'negative'), + "border-color": this.p('global', 'negative'), + 'target-arrow-color': this.p('global', 'negative'), + 'source-arrow-color': this.p('global', 'negative'), + } + }, { + selector: "edge.hover", + style: { + "line-color": this.p('global', 'hoverEdge'), + "width": this.pm('global', 'thickness', t => t * 1.5), + "arrow-scale": 1, + "source-arrow-color": this.p('global', 'hoverEdge'), + "target-arrow-color": this.p('global', 'hoverEdge'), + // @ts-ignore + 'source-arrow-width': '50%', + // @ts-ignore + 'target-arrow-width': '50%', + "z-index": 2 + } + }, { + selector: "edge:selected", + style: { + "line-color": this.p('global', 'selectEdge'), + "width": this.pm('global', 'thickness', t => t * 2), + "arrow-scale": 1, + "source-arrow-color": this.p('global', 'selectEdge'), + "target-arrow-color": this.p('global', 'selectEdge'), + // @ts-ignore + 'source-arrow-width': '50%', + // @ts-ignore + 'target-arrow-width': '50%', + "z-index": 3 + } + }, + { + selector: 'edge.consumption', + style: {"target-endpoint": "inside-to-node", "source-endpoint": "outside-to-node"} + } + , { + selector: 'edge.production', + style: {'target-arrow-shape': 'triangle'} + }, { + selector: 'edge.catalysis', + style: { + 'target-arrow-shape': 'circle', + "target-arrow-fill": "hollow", + "target-arrow-color": this.p('global', 'positive') + } + }, { + selector: 'edge.positive-regulation', + style: { + 'target-arrow-shape': 'triangle', + "target-arrow-fill": "hollow", + "target-arrow-color": this.p('global', 'positive') + } + }, { + selector: 'edge.negative-regulation', + style: { + 'target-arrow-shape': 'tee', + "line-cap": "butt", + "source-endpoint": "inside-to-node", + "target-arrow-color": this.p('global', 'negative') + } + }, { + selector: 'edge.set-to-member', + style: {'target-arrow-shape': 'circle', "line-style": "dashed", "line-dash-pattern": [6, 10], "opacity": 0.5} + }, { + selector: 'edge[stoichiometry > 1]', + style: { + "text-background-color": this.p('global', 'surface'), + "text-background-opacity": 1, + "text-border-width": this.pm('global', 'thickness', t => t / 2), + "text-border-opacity": 1, + "text-border-color": this.p('global', 'onSurface'), + "text-background-shape": 'roundrectangle', + "text-background-padding": this.pm('global', 'thickness', t => t + 'px'), + } + }, { + selector: 'edge[stoichiometry > 1].incoming', + style: { + "source-label": "data(stoichiometry)", + "source-text-offset": 30, + } + }, { + selector: 'edge[stoichiometry > 1].outgoing', + style: { + "target-label": "data(stoichiometry)", + "target-text-offset": 35, + } + }, { + selector: "edge.shadow[?color]", + style: { + // @ts-ignore + "underlay-color": "data(color)", + "underlay-padding": 20, + "underlay-opacity": this.pm('shadow', 'opacity', o => o[0][1] / 100), + } + }, { + selector: "edge.flag", + style: { + // @ts-ignore + "underlay-color": this.p('global', 'flag'), + "underlay-padding": 10, + "underlay-opacity": 1, + } + }, { + selector: "edge[?weights]", + style: { + // @ts-ignore + "curve-style": "round-segments", + "segment-distances": "data(distances)", + "segment-weights": "data(weights)", + "segment-radius": 30, + "radius-type": 'influence-radius', + // @ts-ignore + "edge-distances": "endpoints", + } + }, { + selector: "edge[?sourceEndpoint]", + style: { + // @ts-ignore + "source-endpoint": "data(sourceEndpoint)", + } + }, { + selector: "edge[?targetEndpoint]", + style: { + // @ts-ignore + "target-endpoint": "data(targetEndpoint)", + } + }, { + selector: "edge[?sourceLabel]", + style: { + "source-label": "data(sourceLabel)", + "source-text-margin-y": -12, + "font-weight": 400 + } + }, { + selector: "edge[?label]", + style: { + "label": "data(label)", + "text-margin-y": 12, + "font-weight": 400 + } + }, + { + selector: 'edge.Interactor', + style: { + 'line-color': this.p('interactor', 'stroke'), + 'line-style': 'dashed', + 'line-dash-pattern': [1, 8] + } + }, + { + selector: 'edge.DiseaseInteractor', + style: { + 'line-color': this.p('global', 'negativeContrast'), + } + }, + { + selector: 'edge.Interactor.hover, edge.DiseaseInteractor.hover', + style: { + "line-color": this.p('global', 'hoverEdge') + } + }, + { + selector: "edge[?sourceOffset]", + style: { + // @ts-ignore + "source-text-offset": "data(sourceOffset)", + } + }, + { + selector: "[?labelColor]", + style: { + "color": (e: cytoscape.EdgeSingular) => extract(this.p('global', e.data("labelColor"))) + } + }, { + selector: "node.debug", + style: { + label: "data(id)", + "text-outline-width": 4, + "text-outline-color": 'black', + "text-outline-opacity": 1, + color: 'white' + } + }, + + { + selector: "node.Legend.Label", + style: { + "label": "data(displayName)", + "text-halign": "center", + "text-valign": "center", + "font-size": 24, + "font-weight": 400, + "background-opacity": 0, + "color": this.p('global', 'onSurface') + } + }, + { + selector: "node.Legend.Placeholder", + style: { + "background-opacity": 0, + "border-opacity": 0, + width: 20, + height: 20, + shape: "rectangle" + } + }, + { + selector: "node.Legend.Placeholder[?displayName]", + style: { + "label": "data(displayName)", + "font-weight": 400, + } + }, + { + selector: '.trivial', + style: { + 'opacity': 0, + } + }, + ] + } + + clearCache() { + this.imageBuilder.cache.clear!() + clearDrawersCache(); + } + + update(cy: cytoscape.Core) { + this.clearCache(); + cy.style(this.getStyleSheet()); + this.initSubPathwayColors(); + this.interactivity.onZoom() + } +} diff --git a/projects/ngx-reactome-cytoscape-style/src/lib/types.ts b/projects/ngx-reactome-cytoscape-style/src/lib/types.ts new file mode 100644 index 0000000..5380b7f --- /dev/null +++ b/projects/ngx-reactome-cytoscape-style/src/lib/types.ts @@ -0,0 +1,30 @@ +export type SimpleEntity = 'Protein' | 'GenomeEncodedEntity' | 'RNA' | 'Gene' | 'Molecule'; +export type ComposedEntity = 'EntitySet' | 'Complex' | 'Cell'; +export type PhysicalEntity = SimpleEntity | ComposedEntity; +export type PhysicalEntityDefinition = [PhysicalEntity, 'PhysicalEntity', ...string[]]; +export type PathwayEntity = 'Interacting' | 'SUB'; +export type PathwayEntityDefinition = [PathwayEntity, 'Pathway', ...string[]]; +export type DiseaseInteractorEntity = 'DiseaseInteractor'; +export type Node = PhysicalEntity | PathwayEntity | DiseaseInteractorEntity; + +export type NodeDefinition = PathwayEntityDefinition | PhysicalEntityDefinition ; + +export type CompartmentDefinition = ['Compartment', ...string[]]; +export type ModificationDefinition = ['Modification', ...string[]]; + + +export type Reaction = 'association' | 'dissociation' | 'transition' | 'uncertain' | 'omitted'; +export type ReactionDefinition = [Reaction, 'reaction', ...string[]]; + + +export type IncomingEdge = + 'consumption' + | 'catalysis' + | 'positive-regulation' + | 'negative-regulation' + | 'set-to-member'; +export type OutgoingEdge = 'production'; +export type EdgeType = IncomingEdge | OutgoingEdge; +export type IncomingEdgeDefinition = [IncomingEdge, 'incoming', ...string[]]; +export type OutgoingEdgeDefinition = [OutgoingEdge, 'outgoing', ...string[]]; +export type EdgeTypeDefinition = IncomingEdgeDefinition | OutgoingEdgeDefinition; diff --git a/projects/ngx-reactome-cytoscape-style/src/public-api.ts b/projects/ngx-reactome-cytoscape-style/src/public-api.ts new file mode 100644 index 0000000..3490c7a --- /dev/null +++ b/projects/ngx-reactome-cytoscape-style/src/public-api.ts @@ -0,0 +1,10 @@ +/* + * Public API Surface of reactome-cytoscape-style + */ + + export {Style} from './lib/style'; + export {UserProperties} from './lib/properties'; + export {Interactivity} from './lib/interactivity'; + export * as Types from './lib/types'; + export {ReactomeEvent, ReactomeEventTarget, ReactomeEventTypes} from './lib/model/reactome-event.model'; + diff --git a/projects/ngx-reactome-cytoscape-style/tsconfig.lib.json b/projects/ngx-reactome-cytoscape-style/tsconfig.lib.json new file mode 100644 index 0000000..04fbfad --- /dev/null +++ b/projects/ngx-reactome-cytoscape-style/tsconfig.lib.json @@ -0,0 +1,14 @@ +/* To learn more about this file see: https://angular.io/config/tsconfig. */ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "outDir": "../../out-tsc/lib", + "declaration": true, + "declarationMap": true, + "inlineSources": true, + "types": [], + }, + "exclude": [ + "**/*.spec.ts" + ] +} diff --git a/projects/ngx-reactome-cytoscape-style/tsconfig.lib.prod.json b/projects/ngx-reactome-cytoscape-style/tsconfig.lib.prod.json new file mode 100644 index 0000000..06de549 --- /dev/null +++ b/projects/ngx-reactome-cytoscape-style/tsconfig.lib.prod.json @@ -0,0 +1,10 @@ +/* To learn more about this file see: https://angular.io/config/tsconfig. */ +{ + "extends": "./tsconfig.lib.json", + "compilerOptions": { + "declarationMap": false + }, + "angularCompilerOptions": { + "compilationMode": "partial" + } +} diff --git a/projects/ngx-reactome-cytoscape-style/tsconfig.spec.json b/projects/ngx-reactome-cytoscape-style/tsconfig.spec.json new file mode 100644 index 0000000..ce7048b --- /dev/null +++ b/projects/ngx-reactome-cytoscape-style/tsconfig.spec.json @@ -0,0 +1,14 @@ +/* To learn more about this file see: https://angular.io/config/tsconfig. */ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "outDir": "../../out-tsc/spec", + "types": [ + "jasmine" + ] + }, + "include": [ + "**/*.spec.ts", + "**/*.d.ts" + ] +} diff --git a/projects/ngx-reactome-cytoscape-style/types/cytoscape/index.d.ts b/projects/ngx-reactome-cytoscape-style/types/cytoscape/index.d.ts new file mode 100644 index 0000000..b7fc318 --- /dev/null +++ b/projects/ngx-reactome-cytoscape-style/types/cytoscape/index.d.ts @@ -0,0 +1,37 @@ +// /// +// import {Reactome} from "../../src/lib/reactome-style"; +// import cytoscape from 'cytoscape'; +// import ReactionDefinition = Reactome.ReactionDefinition; +// import PhysicalEntityDefinition = Reactome.PhysicalEntityDefinition; +// import EdgeTypeDefinition = Reactome.EdgeTypeDefinition; +// +// +// declare module 'cytoscape' { +// // import PhysicalEntityDefinition = Reactome.PhysicalEntityDefinition; +// // import ReactionDefinition = Reactome.ReactionDefinition; +// // import EdgeTypeDefinition = Reactome.EdgeTypeDefinition; +// +// +// // export interface ElementDefinition { +// // classes: PhysicalEntityDefinition | ReactionDefinition | EdgeTypeDefinition | string[] | string | undefined; +// // } +// +// export interface NodeDefinition extends cytoscape.ElementDefinition { +// classes: PhysicalEntityDefinition | ReactionDefinition | string[] | string | undefined; +// } +// +// export interface EdgeDefinition extends cytoscape.ElementDefinition { +// classes: EdgeTypeDefinition | string[] | string | undefined; +// } +// +// // export namespace Css { +// // interface BackgroundImage extends cytoscape.Css.BackgroundImage { +// // "background-image"?: PropertyValueNode | PropertyValueNode; +// // "background-"?: PropertyValueNode | PropertyValueNode; +// // } +// // } +// +// } +// +// +// diff --git a/projects/ngx-reactome-diagram/src/app/app-routing.module.ts b/projects/ngx-reactome-diagram/src/app/app-routing.module.ts new file mode 100644 index 0000000..2c86ca1 --- /dev/null +++ b/projects/ngx-reactome-diagram/src/app/app-routing.module.ts @@ -0,0 +1,18 @@ +import {RouterModule, Routes} from "@angular/router"; +import {NgModule} from "@angular/core"; +import {DiagramComponent} from "./diagram/diagram.component"; +import {DiagramIteratorComponent} from "./diagram-iterator/diagram-iterator.component"; + +export const routes: Routes = [ + {path: 'iterate', component: DiagramIteratorComponent}, + {path: 'iterate/:id', component: DiagramIteratorComponent}, + {path: ':id', component: DiagramComponent}, + {path: '**', redirectTo: 'R-HSA-453279'} +] + + +@NgModule({ + imports: [RouterModule.forRoot(routes, {bindToComponentInputs: true})], + exports: [RouterModule] +}) +export class AppRoutingModule { } diff --git a/projects/ngx-reactome-diagram/src/app/app.component.css b/projects/ngx-reactome-diagram/src/app/app.component.css new file mode 100644 index 0000000..2d17866 --- /dev/null +++ b/projects/ngx-reactome-diagram/src/app/app.component.css @@ -0,0 +1,3 @@ + + +/*# sourceMappingURL=app.component.css.map */ diff --git a/projects/ngx-reactome-diagram/src/app/app.component.css.map b/projects/ngx-reactome-diagram/src/app/app.component.css.map new file mode 100644 index 0000000..3e4f015 --- /dev/null +++ b/projects/ngx-reactome-diagram/src/app/app.component.css.map @@ -0,0 +1 @@ +{"version":3,"sourceRoot":"","sources":[],"names":[],"mappings":"","file":"app.component.css"} \ No newline at end of file diff --git a/projects/ngx-reactome-diagram/src/app/app.component.html b/projects/ngx-reactome-diagram/src/app/app.component.html new file mode 100644 index 0000000..0680b43 --- /dev/null +++ b/projects/ngx-reactome-diagram/src/app/app.component.html @@ -0,0 +1 @@ + diff --git a/projects/ngx-reactome-diagram/src/app/app.component.scss b/projects/ngx-reactome-diagram/src/app/app.component.scss new file mode 100644 index 0000000..e69de29 diff --git a/projects/ngx-reactome-diagram/src/app/app.component.spec.ts b/projects/ngx-reactome-diagram/src/app/app.component.spec.ts new file mode 100644 index 0000000..303b7ec --- /dev/null +++ b/projects/ngx-reactome-diagram/src/app/app.component.spec.ts @@ -0,0 +1,27 @@ +import { TestBed } from '@angular/core/testing'; +import { AppComponent } from './app.component'; + +describe('AppComponent', () => { + beforeEach(() => TestBed.configureTestingModule({ + declarations: [AppComponent] + })); + + it('should create the app', () => { + const fixture = TestBed.createComponent(AppComponent); + const app = fixture.componentInstance; + expect(app).toBeTruthy(); + }); + + it(`should have as title 'pathway-browser'`, () => { + const fixture = TestBed.createComponent(AppComponent); + const app = fixture.componentInstance; + expect(app.title).toEqual('pathway-browser'); + }); + + it('should render title', () => { + const fixture = TestBed.createComponent(AppComponent); + fixture.detectChanges(); + const compiled = fixture.nativeElement as HTMLElement; + expect(compiled.querySelector('.content span')?.textContent).toContain('pathway-browser app is running!'); + }); +}); diff --git a/projects/ngx-reactome-diagram/src/app/app.component.ts b/projects/ngx-reactome-diagram/src/app/app.component.ts new file mode 100644 index 0000000..2d2c4d4 --- /dev/null +++ b/projects/ngx-reactome-diagram/src/app/app.component.ts @@ -0,0 +1,10 @@ +import {Component} from '@angular/core'; + +@Component({ + selector: 'cr-root', + templateUrl: './app.component.html', + styleUrls: ['./app.component.scss'] +}) +export class AppComponent { + title = 'PathwayBrowser' +} diff --git a/projects/ngx-reactome-diagram/src/app/app.module.ts b/projects/ngx-reactome-diagram/src/app/app.module.ts new file mode 100644 index 0000000..aea8955 --- /dev/null +++ b/projects/ngx-reactome-diagram/src/app/app.module.ts @@ -0,0 +1,60 @@ +import {NgModule} from '@angular/core'; +import {BrowserModule} from '@angular/platform-browser'; + +import {AppComponent} from './app.component'; +import {FormsModule, ReactiveFormsModule} from "@angular/forms"; +import {CommonModule} from "@angular/common"; +import {HttpClientModule} from "@angular/common/http"; +import {DiagramComponent} from './diagram/diagram.component'; +import {RouterOutlet} from "@angular/router"; +import {AppRoutingModule} from "./app-routing.module"; +import {BrowserAnimationsModule} from '@angular/platform-browser/animations'; +import {MatButtonModule} from "@angular/material/button"; +import {MatSlideToggleModule} from "@angular/material/slide-toggle"; +import {CdkDrag, CdkDragHandle} from "@angular/cdk/drag-drop"; +import {DiagramIteratorComponent} from './diagram-iterator/diagram-iterator.component'; +import {MatInputModule} from "@angular/material/input"; +import {MatSelectModule} from "@angular/material/select"; +import {MatProgressSpinnerModule} from "@angular/material/progress-spinner"; +import {MatDialogModule} from "@angular/material/dialog"; +import {MatTabsModule} from "@angular/material/tabs"; +import {MatCheckboxModule} from "@angular/material/checkbox"; +import {MatRadioModule} from "@angular/material/radio"; +import {MatIconModule} from "@angular/material/icon"; +import {MatListModule} from "@angular/material/list"; + +@NgModule({ + declarations: [ + AppComponent, + DiagramComponent, + DiagramIteratorComponent, + ], + imports: [ + BrowserModule, + FormsModule, + CommonModule, + HttpClientModule, + RouterOutlet, + AppRoutingModule, + // NoopAnimationsModule, + MatButtonModule, + MatSlideToggleModule, + CdkDragHandle, + CdkDrag, + MatInputModule, + MatSelectModule, + ReactiveFormsModule, + MatProgressSpinnerModule, + BrowserAnimationsModule, + MatDialogModule, + MatTabsModule, + MatCheckboxModule, + MatRadioModule, + MatIconModule, + MatListModule + ], + providers: [], + bootstrap: [AppComponent] +}) +export class AppModule { +} diff --git a/projects/ngx-reactome-diagram/src/app/diagram-iterator/diagram-iterator.component.html b/projects/ngx-reactome-diagram/src/app/diagram-iterator/diagram-iterator.component.html new file mode 100644 index 0000000..f515a4e --- /dev/null +++ b/projects/ngx-reactome-diagram/src/app/diagram-iterator/diagram-iterator.component.html @@ -0,0 +1,13 @@ +
+ + + + + Diagram ID + + + + +
+ + diff --git a/projects/ngx-reactome-diagram/src/app/diagram-iterator/diagram-iterator.component.scss b/projects/ngx-reactome-diagram/src/app/diagram-iterator/diagram-iterator.component.scss new file mode 100644 index 0000000..e69de29 diff --git a/projects/ngx-reactome-diagram/src/app/diagram-iterator/diagram-iterator.component.spec.ts b/projects/ngx-reactome-diagram/src/app/diagram-iterator/diagram-iterator.component.spec.ts new file mode 100644 index 0000000..a92f76c --- /dev/null +++ b/projects/ngx-reactome-diagram/src/app/diagram-iterator/diagram-iterator.component.spec.ts @@ -0,0 +1,21 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { DiagramIteratorComponent } from './diagram-iterator.component'; + +describe('DiagramIteratorComponent', () => { + let component: DiagramIteratorComponent; + let fixture: ComponentFixture; + + beforeEach(() => { + TestBed.configureTestingModule({ + declarations: [DiagramIteratorComponent] + }); + fixture = TestBed.createComponent(DiagramIteratorComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/projects/ngx-reactome-diagram/src/app/diagram-iterator/diagram-iterator.component.ts b/projects/ngx-reactome-diagram/src/app/diagram-iterator/diagram-iterator.component.ts new file mode 100644 index 0000000..11dd7fa --- /dev/null +++ b/projects/ngx-reactome-diagram/src/app/diagram-iterator/diagram-iterator.component.ts @@ -0,0 +1,46 @@ +import {AfterViewInit, Component, ViewChild} from '@angular/core'; +import {ActivatedRoute, Router} from "@angular/router"; +import {HttpClient} from "@angular/common/http"; +import {DiagramComponent} from "../diagram/diagram.component"; +import {combineLatest} from "rxjs"; + +@Component({ + selector: 'cr-diagram-iterator', + templateUrl: './diagram-iterator.component.html', + styleUrls: ['./diagram-iterator.component.scss'] +}) +export class DiagramIteratorComponent implements AfterViewInit { + + @ViewChild('diagram') + diagram!: DiagramComponent; + + diagramId: string = ''; + + diagramIndex: number = 0; + diagramIds: string[] = []; + + constructor(private route: ActivatedRoute, private client: HttpClient, private router: Router) { + } + + ngAfterViewInit(): void { + combineLatest([ + this.route.params, + this.client.get('/assets/data/diagrams-dev-no-ehld.txt', {responseType: "text"}) + ]).subscribe(([params, diagrams]) => { + this.diagramIds = diagrams.split('\n').filter(s => s.length !== 0); + this.diagramId = this.diagramIds[0]; + }) + } + + next() { + this.diagramIndex++; + if (this.diagramIndex > this.diagramIds.length - 1) this.diagramIndex = 0; + this.diagramId = this.diagramIds[this.diagramIndex]; + } + previous() { + this.diagramIndex--; + if (this.diagramIndex < 0) this.diagramIndex = this.diagramIds.length - 1; + this.diagramId = this.diagramIds[this.diagramIndex]; + } + +} diff --git a/projects/ngx-reactome-diagram/src/app/diagram/diagram.component.html b/projects/ngx-reactome-diagram/src/app/diagram/diagram.component.html new file mode 100644 index 0000000..eef3ce3 --- /dev/null +++ b/projects/ngx-reactome-diagram/src/app/diagram/diagram.component.html @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/projects/ngx-reactome-diagram/src/app/diagram/diagram.component.scss b/projects/ngx-reactome-diagram/src/app/diagram/diagram.component.scss new file mode 100644 index 0000000..6669e50 --- /dev/null +++ b/projects/ngx-reactome-diagram/src/app/diagram/diagram.component.scss @@ -0,0 +1,234 @@ +.variables { + position: absolute; + inset: 0 0 40px 0; + --opacity: 0.08; + --structure-opacity: [[130,0], [150,100]]; + + --shadow-luminosity: 40; + --on-surface: #001F24; + --primary: #006782; + --on-primary: #FFFFFF; + --on-tertiary: #FFFFFF; + --positive: #0C9509; + --negative: #BA1A1A; + --negative-contrast: #ea7d7d; + --select-node: #6EB3E4; + --select-edge: #0561A6; + --hover-node: #78E076; + --hover-edge: #04B601; + --interactor-fill: #68297C; + --interactor-stroke: #9f5cb5; + --flag: #DE75B4; + + + --compartment: #E5834A; + + --primary-contrast-1: #001F29; + --primary-contrast-2: #003545; + --primary-contrast-3: #004D62; + --primary-contrast-4: #006782; + + --tertiary-contrast-1: #00315C; + --tertiary-contrast-2: #004882; + --tertiary-contrast-3: #1660A5; + + --drug-contrast-1: #3E001D; + --drug-contrast-2: #610B33; + --drug-contrast-3: #7E2549; + --drug-contrast-4: #BB557A; + + &.dark { + --opacity: 0.08; + --shadow-luminosity: 70; + --shadow-opacity: [[20, 40], [40, 0]]; + + + --on-surface: #97F0FF; + --primary: #5CD4FF; + --on-primary: #0D1617; + --on-tertiary: #0D1317; + --positive: #10d70b; + --negative: #ea2323; + --select-node: #00ffff; + --negative-contrast: #8f0000; + --select-edge: #1d85cc; + --hover-node: #ffff00; + --hover-edge: #ffff00; + //--interactor-stroke: #68297C; + //--interactor-fill: #9f5cb5; + --flag: #DA429E; + + --compartment: #5e232d; + + --primary-contrast-1: #5CD4FF; + --primary-contrast-2: #20B9E5; + --primary-contrast-3: #009DC4; + --primary-contrast-4: #0081A2; + + --tertiary-contrast-1: #a48ee0; + --tertiary-contrast-2: #9b73d3; + --tertiary-contrast-3: #8c63c5; + + --drug-contrast-1: #FFB1C8; + --drug-contrast-2: #F988AE; + --drug-contrast-3: #DA6E94; + --drug-contrast-4: #c4527b; + } +} + +#controls { + position: absolute; + inset: calc(100vh - 40px) 0 0 0; + + * { + background: var(--surface); + color: var(--on-surface); + } + + background: var(--surface); + +} + +#cytoscape { + position: absolute; + inset: 0 0 0 0; + background: var(--surface); +} + + +#legend-boundary { + --legend-width: 400px; + --border-width: 2px; + --handle-width: 20px; + + position: absolute; + pointer-events: none; + right: calc(-1 * var(--legend-width) - var(--border-width)); + height: 100%; + width: calc(2 * var(--legend-width) + var(--handle-width)); + + #legend-container { + position: relative; + z-index: 1; + display: flex; + align-items: center; + width: fit-content; + left: calc(var(--legend-width) - var(--border-width)); + pointer-events: all; + height: 100%; + } + + #legend-handle { + width: var(--handle-width); + text-orientation: upright; + writing-mode: vertical-lr; + + border-radius: 8.5px 0 0 8.5px; + background: color-mix(in srgb, var(--surface) 80%, transparent); + backdrop-filter: blur(5px); + border-left: var(--border-width) solid var(--primary); + border-top: var(--border-width) solid var(--primary); + border-bottom: var(--border-width) solid var(--primary); + border-right: 0; + cursor: ew-resize; + color: var(--on-surface); + } + + #legend { + width: var(--legend-width); + height: 100%; + //border-left: var(--border-width) solid var(--primary); + background: color-mix(in srgb, var(--surface) 80%, transparent); + backdrop-filter: blur(5px); + + &:before { + content: ""; + height: 100%; + width: 2px; + background-color: var(--primary); + position: absolute; + left: -1px; + z-index: 4; + } + } +} + +.drag-container { + position: absolute; + left: 10%; + width: 100%; + pointer-events: all; + //position: relative; + z-index: 1; + display: flex; + align-items: center; + height: 100%; +} + +#handle-limits { + --width: 500px; + --height: 500px; + position: absolute; + left: calc(-1 / 2 * var(--width)); + top: calc(50% - 1 / 2 * var(--height)); + width: var(--width); + height: var(--height); + //background:#000000aa; + z-index: 5; + pointer-events: none; + + &.active { + pointer-events: all; + cursor: ew-resize; + } +} + +.drag-handle { + --width: 4px; + --height: 30px; + + position: absolute; + left: calc(50% - 1 / 2 * var(--width) - 4px); + top: calc(50% - 1 / 2 * var(--height) - 4px); + + border-radius: var(--height); + width: var(--width); + height: var(--height); + border: 4px solid var(--primary); + cursor: ew-resize; + color: var(--on-surface); + pointer-events: all; + filter: drop-shadow(-2px 0px 0px var(--primary-container)) drop-shadow(2px 0px 0px var(--error-container)); + background: var(--surface); + +} + + +#cytoscape-compare { + box-sizing: border-box; + position: absolute; + //border-left: 4px solid var(--error); + height: 100%; + width: 100%; + inset: 0 0 0 0; + background-color: color-mix(in srgb, var(--error) 5%, color-mix(in srgb, var(--surface) 50%, transparent)); + + &:before { + content: ""; + height: 100%; + width: 4px; + background-color: var(--primary); + filter: drop-shadow(-2px 0px 0px var(--primary-container)) drop-shadow(2px 0px 0px var(--error-container)); + position: absolute; + left: -2px; + z-index: 4; + } +} + +.option-content { + width: 100%; + display: flex; + justify-content: space-between; + gap: 100px; + align-items: center; +} diff --git a/projects/ngx-reactome-diagram/src/app/diagram/diagram.component.spec.ts b/projects/ngx-reactome-diagram/src/app/diagram/diagram.component.spec.ts new file mode 100644 index 0000000..b7bc1ff --- /dev/null +++ b/projects/ngx-reactome-diagram/src/app/diagram/diagram.component.spec.ts @@ -0,0 +1,21 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { DiagramComponent } from './diagram.component'; + +describe('DiagramComponent', () => { + let component: DiagramComponent; + let fixture: ComponentFixture; + + beforeEach(() => { + TestBed.configureTestingModule({ + declarations: [DiagramComponent] + }); + fixture = TestBed.createComponent(DiagramComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/projects/ngx-reactome-diagram/src/app/diagram/diagram.component.ts b/projects/ngx-reactome-diagram/src/app/diagram/diagram.component.ts new file mode 100644 index 0000000..0b8976e --- /dev/null +++ b/projects/ngx-reactome-diagram/src/app/diagram/diagram.component.ts @@ -0,0 +1,446 @@ +import { + AfterViewInit, + ChangeDetectorRef, + Component, + ElementRef, + Input, + OnChanges, + Output, + SimpleChanges, + ViewChild +} from '@angular/core'; +import {DiagramService} from "../services/diagram.service"; +import cytoscape from "cytoscape"; +// @ts-ignore +import {Interactivity, ReactomeEvent, ReactomeEventTypes, Style} from "ngx-reactome-cytoscape-style"; +import {DarkService} from "../services/dark.service"; +import {delay, distinctUntilChanged, filter, Observable, share, Subject, tap} from "rxjs"; +import {MatSelect} from "@angular/material/select"; +import {FormControl} from "@angular/forms"; +import {DiagramStateService} from "../services/diagram-state.service"; +import {UntilDestroy} from "@ngneat/until-destroy"; +import {MatDialog} from "@angular/material/dialog"; + +@UntilDestroy({checkProperties: true}) +@Component({ + selector: 'cr-diagram', + templateUrl: './diagram.component.html', + styleUrls: ['./diagram.component.scss'] +}) +export class DiagramComponent implements AfterViewInit, OnChanges { + title = 'pathway-browser'; + @ViewChild('cytoscape') cytoscapeContainer?: ElementRef; + @ViewChild('cytoscapeCompare') compareContainer?: ElementRef; + @ViewChild('legend') legendContainer?: ElementRef; + + comparing: boolean = false; + selectedPsicquicResource = new FormControl(); + isDataFromPsicquicLoading: boolean = false; + + + constructor(private diagram: DiagramService, public dark: DarkService, private state: DiagramStateService, public dialog: MatDialog, private cdr: ChangeDetectorRef) { + } + + cy!: cytoscape.Core; + cyCompare!: cytoscape.Core; + legend!: cytoscape.Core; + reactomeStyle!: Style; + private _reactomeEvents$: Subject = new Subject(); + private _ignore = false; + + @Output() + public reactomeEvents$: Observable = this._reactomeEvents$.asObservable().pipe( + distinctUntilChanged((prev, current) => prev.type === current.type && prev.detail.reactomeId === current.detail.reactomeId), + tap(e => console.log(e.type, e.detail, e.detail.element.data(), e.detail.cy.container()?.id)), + filter(() => !this._ignore), + share() + ); + + + @Input('id') diagramId: string = ''; + + ngOnChanges(changes: SimpleChanges): void { + if (changes['diagramId']) this.loadDiagram(); + } + + + ngAfterViewInit(): void { + this.dark.$dark.subscribe(this.updateStyle.bind(this)) + + const container = this.cytoscapeContainer!.nativeElement; + const compareContainer = this.compareContainer!.nativeElement; + const legendContainer = this.legendContainer!.nativeElement; + + Object.values(ReactomeEventTypes).forEach((type) => { + container.addEventListener(type, (e) => this._reactomeEvents$.next(e as ReactomeEvent)) + compareContainer.addEventListener(type, (e) => this._reactomeEvents$.next(e as ReactomeEvent)) + legendContainer.addEventListener(type, (e) => this._reactomeEvents$.next(e as ReactomeEvent)) + }) + + this.reactomeStyle = new Style(container); + + this.diagram.getLegend() + .subscribe(legend => { + this.legend = cytoscape({ + container: legendContainer, + elements: legend, + style: this.reactomeStyle?.getStyleSheet(), + layout: {name: "preset"}, + boxSelectionEnabled: false + }); + this.reactomeStyle?.bindToCytoscape(this.legend); + this.legend.zoomingEnabled(false); + this.legend.panningEnabled(false); + this.legend.minZoom(0) + const bb = this.legend.elements().boundingBox(); + // this.ratio = bb.w / bb.h; + }); + + this.loadDiagram(); + + //this.getPsicquicResources(); + } + + loadDiagram() { + if (!this.cytoscapeContainer) return; + + const container = this.cytoscapeContainer!.nativeElement; + + this.diagram.getDiagram(this.diagramId) + .subscribe(elements => { + this.comparing = elements.nodes.some(node => node.data['isFadeOut']) || elements.edges.some(edge => edge.data['isFadeOut']) + this.cy = cytoscape({ + container: container, + elements: elements, + style: this.reactomeStyle?.getStyleSheet(), + layout: {name: "preset"}, + }); + this.reactomeStyle.bindToCytoscape(this.cy); + this.reactomeStyle.clearCache(); + + this.loadCompare(elements, container); + + this.stateToDiagram(); + }) + } + + + private loadCompare(elements: cytoscape.ElementsDefinition, container: HTMLDivElement) { + if (this.comparing) { + this.cy.elements('[!isBackground]').style('visibility', 'hidden') + this.replacedElements = this.cy! + .elements('[?replacedBy]') + .add('[?isCrossed]') + .sort((a, b) => a.boundingBox().x1 - b.boundingBox().x1); + this.replacedElementsLeft = this.replacedElements.map(ele => ele.boundingBox().x1); + this.cy!.elements('.Compartment').style('visibility', 'visible') + + const compareContainer = this.compareContainer!.nativeElement; + this.cyCompare = cytoscape({ + container: compareContainer, + elements: elements, + style: this.reactomeStyle?.getStyleSheet(), + layout: {name: "preset"}, + }); + + this.cyCompare.elements('[?isFadeOut]').style('visibility', 'hidden'); + this.cyCompare.elements('.Compartment').style('visibility', 'hidden'); + this.cy!.nodes('.crossed').removeClass('crossed'); + + this.cyCompare!.on('viewport', () => this.syncViewports(this.cyCompare, compareContainer, this.cy, container)) + this.cy!.on('viewport', () => this.syncViewports(this.cy, container, this.cyCompare, compareContainer)) + + this.reactomeStyle?.bindToCytoscape(this.cyCompare); + this.cyCompare.minZoom(this.cy!.minZoom()) + this.cyCompare.maxZoom(this.cy!.maxZoom()) + this.updateReplacementVisibility() + + setTimeout(() => { + this.syncViewports(this.cy!, container, this.cyCompare, compareContainer) + }) + } + } + + private stateToDiagram() { + for (let cy of [this.cy, this.cyCompare].filter(cy => cy !== undefined)) { + this.flag(this.state.get('flag'), cy); + this.select(this.state.get("select"), cy); + } + } + + readonly classRegex = /class:(\w+)([!.]drug)?/ + + getElements(tokens: (string | number)[], cy: cytoscape.Core): cytoscape.CollectionArgument { + let elements: cytoscape.Collection; + + elements = cy.collection() + tokens.forEach(token => { + if (typeof token === 'string') { + if (token.startsWith('R-')) { + elements = elements.or(`[graph.stId="${token}"]`) + } else { + const matchArray = token.match(this.classRegex); + if (matchArray) { + const [_, clazz, drug] = matchArray; + if (drug === '.drug') { // Drug physical entity + elements = elements.or(`.${clazz}`).and('.drug'); + } else if (drug === '!drug') { // Non drug physical entity + elements = elements.or(`.${clazz}`).not('.drug'); + } else { // Non physical entity + elements = elements.or(`.${clazz}`); + } + } else { + elements = elements.or(`[acc=${token}]`) + } + } + } else { + console.log('number') + elements = elements.or(`[acc=${token}]`).or(`[reactomeId=${token}]`) + } + }); + return elements; + } + + select(tokens: (string | number)[], cy: cytoscape.Core): cytoscape.CollectionArgument { + let selected = this.getElements(tokens, cy); + selected.select(); + if ("connectedNodes" in selected) { + selected = selected.add(selected.connectedNodes()); + } + cy.fit(selected, 100) + + return selected; + } + + flag(accs: (string | number)[], cy: cytoscape.Core): cytoscape.CollectionArgument { + return this.flagElements(this.getElements(accs, cy), cy) + } + + flagElements(toFlag: cytoscape.CollectionArgument, cy: cytoscape.Core): cytoscape.CollectionArgument { + const shadowNodes = cy.nodes('.Shadow'); + const shadowEdges = cy.edges('[?color]'); + const trivials = cy.elements('.trivial'); + + if (toFlag.nonempty()) { + this.cy.batch(() => { + shadowNodes.style({visibility: 'hidden'}) + shadowEdges.removeClass('shadow') + cy.off('zoom', this.reactomeStyle.interactivity.onZoom) + trivials.style({opacity: 1}) + cy.edges().style({'underlay-opacity': 0}) + cy.elements().removeClass('flag') + toFlag.addClass('flag') + .edges().style({'underlay-opacity': 1}) + }) + + return toFlag + } else { + this.cy.batch(() => { + shadowNodes.style({visibility: 'visible'}) + trivials.style({opacity: 1}) + shadowEdges.addClass('shadow') + + cy.elements().removeClass('flag') + cy.on('zoom', this.reactomeStyle.interactivity.onZoom) + this.reactomeStyle.interactivity.onZoom() + }) + + return cy.collection() + } + } + + + applyEvent(event: ReactomeEvent, affectedElements: cytoscape.NodeCollection | cytoscape.EdgeCollection) { + switch (event.type) { + case ReactomeEventTypes.hover: + affectedElements.addClass('hover'); + break; + case ReactomeEventTypes.leave: + affectedElements.removeClass('hover'); + break; + case ReactomeEventTypes.select: + affectedElements.select(); + break; + case ReactomeEventTypes.unselect: + affectedElements.unselect(); + break; + } + } + + + ratio = 0.384; + + replacedElements!: cytoscape.Collection; + replacedElementsLeft: number[] = []; + + lastIndex = 0; + + private updateReplacementVisibility() { + const extent = this.cyCompare!.extent(); + let limitIndex = this.replacedElementsLeft.findIndex(x1 => x1 >= extent.x1); + if (limitIndex === -1) limitIndex = this.replacedElements.length; + if (this.lastIndex !== limitIndex) { + if (limitIndex < this.lastIndex) this.replacedElements.slice(limitIndex, this.lastIndex).style('visibility', 'hidden'); + if (limitIndex > this.lastIndex) this.replacedElements.slice(this.lastIndex, limitIndex).style('visibility', 'visible'); + } + this.lastIndex = limitIndex + } + + syncing = false; + syncViewports = (source: cytoscape.Core, sourceContainer: HTMLElement, target: cytoscape.Core, targetContainer: HTMLElement) => { + if (this.syncing) return; + this.syncing = true; + this.updateReplacementVisibility(); + + const position = {...source.pan()}; + const sourceX = sourceContainer.getBoundingClientRect().x; + const targetX = targetContainer.getBoundingClientRect().x; + position.x += sourceX - targetX; + target.viewport({ + zoom: source.zoom(), + pan: position, + }) + this.syncing = false; + }; + + + updateStyle() { + this.cy ? setTimeout(() => this.reactomeStyle?.update(this.cy), 5) : null; + this.cyCompare ? setTimeout(() => this.reactomeStyle?.update(this.cyCompare), 5) : null; + this.legend ? setTimeout(() => this.reactomeStyle?.update(this.legend), 5) : null; + } + + compareDragging = false; + + dragStart() { + this.compareDragging = true; + } + + dragEnd() { + this.compareDragging = false; + } + + dragMove($event: MouseEvent, compareContainer: HTMLDivElement) { + if (!this.compareDragging) return; + compareContainer.style['left'] = $event.x + 'px'; + this.cyCompare.resize() + this.syncViewports(this.cy!, this.cytoscapeContainer!.nativeElement, this.cyCompare!, this.compareContainer!.nativeElement); + } + + updateLegend() { + this.legend.resize() + this.legend.panningEnabled(true) + this.legend.zoomingEnabled(true) + this.legend.fit(this.legend.elements(), 2) + this.legend.panningEnabled(false) + this.legend.zoomingEnabled(false) + } + + // ----- Event Syncing ----- + + stateToDiagramSub = this.state.state$.subscribe(() => this.stateToDiagram()); + compareBackgroundSync = this.reactomeEvents$.pipe( + filter(() => this.comparing), + filter((e) => e.detail.cy !== this.legend) + ).subscribe(event => { + const src = event.detail.cy; + const tgt = src === this.cy ? this.cyCompare : this.cy; + + const replacedBy = event.detail.element.data('replacedBy') || + event.detail.element.data('replacement') || + (event.detail.element.data('isBackground') && !event.detail.element.data('isFadeOut') && event.detail.element.data('id')) + if (!replacedBy) return; + + let replacements = tgt.getElementById(replacedBy); + if (event.detail.type === 'reaction') { + replacements = replacements.add(tgt.elements(`[reactionId=${replacedBy}]`)) + } + + this.applyEvent(event, replacements) + }); + + // interactorHandling = this.reactomeEvents$ + // .pipe( + // filter((e) => e.detail.cy !== this.legend), + // filter(e => [ReactomeEventTypes.open, ReactomeEventTypes.close].includes(e.type as ReactomeEventTypes)), + // filter(e => e.detail.type === 'Interactor'), + // ).subscribe(e => { + // this.interactorsService.addInteractorNodes(e.detail.element.nodes(), this.cy); + // this.reactomeStyle.interactivity.updateProteins(); + // this.reactomeStyle.interactivity.onZoom(); + // } + // ); + + diagram2legend = this.reactomeEvents$.pipe( + filter((e) => e.detail.cy !== this.legend), + ).subscribe(event => { + const classes = event.detail.element.classes(); + let matchingElement: cytoscape.NodeCollection | cytoscape.EdgeCollection = this.legend.elements(`.${classes[0]}`); + + if (event.detail.type === 'PhysicalEntity') { + if (classes.includes('drug')) matchingElement = matchingElement.nodes('.drug') + else matchingElement = matchingElement.not('.drug') + } else if (event.detail.type === 'reaction') { + const reaction = event.detail.element.nodes('.reaction'); + matchingElement = this.legend.nodes(`.${reaction.classes()[0]}`).first() + matchingElement = matchingElement.add(matchingElement.connectedEdges()) + } + + this._ignore = true; + this.applyEvent(event, matchingElement); + this._ignore = false; + }); + + diagramSelect2state = this.reactomeEvents$.pipe( + filter((e) => e.detail.cy !== this.legend), + delay(0) + ).subscribe(e => { + if (e.type !== ReactomeEventTypes.select) return; + let elements: cytoscape.NodeSingular = e.detail.element; + if (e.detail.type === 'reaction') { + elements = e.detail.cy.elements('node.reaction:selected') + } + const reactomeIds = elements.map(el => el.data('graph.stId')); + this.state.set('select', reactomeIds) + } + ); + + legend2state = this.reactomeEvents$.pipe( + filter((e) => e.detail.cy === this.legend), + filter(() => !this._ignore), + ).subscribe((e) => { + const event = e as ReactomeEvent; + const classes = event.detail.element.classes(); + let matchingElement: cytoscape.NodeCollection | cytoscape.EdgeCollection = this.cy.elements(`.${classes[0]}`); + + if (event.detail.type === 'PhysicalEntity' || event.detail.type === 'Pathway') { + if (classes.includes('drug')) matchingElement = matchingElement.nodes('.drug') + else matchingElement = matchingElement.not('.drug') + } else if (event.detail.type === 'reaction') { + const reaction = event.detail.element.nodes('.reaction'); + matchingElement = this.cy.nodes(`.${reaction.classes()[0]}`) + matchingElement = matchingElement.add(matchingElement.connectedEdges()) + } + + switch (event.type) { + case ReactomeEventTypes.select: + this.state.set('flag', ['class:' + classes[0] + (classes.includes('drug') ? '.' : '!') + 'drug']) + this.stateToDiagram(); + break; + case ReactomeEventTypes.unselect: + this.state.set('flag', []) + this.stateToDiagram(); + break; + case ReactomeEventTypes.hover: + matchingElement.addClass('hover') + break; + case ReactomeEventTypes.leave: + matchingElement.removeClass('hover') + break; + } + }); + + logProteins() { + console.debug(new Set(this.cy.nodes(".Protein").map(node => node.data("acc") || node.data("iAcc")))) + } +} diff --git a/projects/ngx-reactome-diagram/src/app/model/diagram.model.ts b/projects/ngx-reactome-diagram/src/app/model/diagram.model.ts new file mode 100644 index 0000000..adb544c --- /dev/null +++ b/projects/ngx-reactome-diagram/src/app/model/diagram.model.ts @@ -0,0 +1,137 @@ +export interface Position { + x: number; + y: number; +} + +export interface Prop extends Position { + width: number; + height: number; +} + +export type Rectangle = { left: number, right: number, top: number, bottom: number } + +export type Segment = { from: Position, to: Position }; + +export interface Diagram { + displayName: string; + edges: Edge[]; + nodes: Node[]; + compartments: Compartment[]; + links: Link[]; + /** + * The list of contained shadows(subpathways) + */ + shadows: SubPathway[]; + forNormalDraw: boolean; +} + + +export interface ReactionShape { + a: Position; + b: Position; + centre: Position; + type: string; +} + +export interface ConnectorHolder { + [k: string]: EdgeConnector[] + + catalysts: EdgeConnector[]; + inputs: EdgeConnector[]; + outputs: EdgeConnector[]; + inhibitors: EdgeConnector[]; + activators: EdgeConnector[]; +} + +export type Entity = { + id: number; + reactomeId: number; + displayName: string; + position: Position; + renderableClass: string; + schemaClass: string; + isDisease: boolean; + isFadeOut?: boolean; + isCrossed?: boolean; + // Added by service + rect?: Rectangle; + isBackground?: boolean; +} + +// reactions +export type Edge = { + reactionShape: ReactionShape; + reactionType: string; + segments: Segment[]; +} & ConnectorHolder & Entity; + + +export interface EdgeConnector { + id: number, + points?: Position[], + stoichiometry?: number + isFadeOut?: boolean +} + +export interface NodeConnector { + edgeId: number; + type: 'INPUT' | 'OUTPUT' | 'CATALYST' | 'ACTIVATOR' | 'INHIBITOR'; + segments: Segment[] + stoichiometry: { value: number } + endShape: { centre: Position } + isFadeOut?: boolean +} + +// entities +export interface Node extends Entity { + prop: Prop, + connectors: NodeConnector[] + interactorsSummary: InteractorsSummary; + nodeAttachments?: Attachment[]; + needDashedBorder?: boolean; + trivial?: boolean; +} + +export interface Compartment extends Entity { + componentIds: number[]; + prop: Prop, + insets: Prop; + textPosition: Position; +} + +export interface Link { + id: number; + inputs: EdgeConnector[]; + outputs: EdgeConnector[]; + renderableClass: string; + segments: Segment[]; + isFadeOut?: boolean; + isDisease?: boolean; +} + +interface SubPathway extends Entity { + prop: Prop; + colour: string; +} + + +interface InteractorsSummary { + shape: Shape; + type: string; +} + +interface Shape { + type: string; + a: Position; + b: Position; + centre: Position; + empty: boolean; + s: string; +} + +interface Attachment { + description: string; + label: string; + reactomeId: number; + shape: Shape +} diff --git a/projects/ngx-reactome-diagram/src/app/model/graph.model.ts b/projects/ngx-reactome-diagram/src/app/model/graph.model.ts new file mode 100644 index 0000000..bf577b0 --- /dev/null +++ b/projects/ngx-reactome-diagram/src/app/model/graph.model.ts @@ -0,0 +1,32 @@ + +export interface Graph { + dbId: number; + stId: string; + speciesName: string; + edges: Edge[]; + nodes: Node[]; + subpathways: SubPathway[]; +} + +export type Entity = { + dbId: number; + stId: string + displayName: string; +} + +export interface Edge extends Entity { + schemaClass: string; +} + +export interface Node extends Entity { + diagramIds?: number[]; + identifier: string + parents: number[]; + children: number[]; + schemaClass: string; + referenceType: string +} + +export interface SubPathway extends Entity { + events: number[] +} diff --git a/projects/ngx-reactome-diagram/src/app/services/dark.service.ts b/projects/ngx-reactome-diagram/src/app/services/dark.service.ts new file mode 100644 index 0000000..4ac6a6e --- /dev/null +++ b/projects/ngx-reactome-diagram/src/app/services/dark.service.ts @@ -0,0 +1,41 @@ +import {Injectable} from '@angular/core'; +import {BehaviorSubject} from "rxjs"; + +@Injectable({ + providedIn: 'root' +}) +export class DarkService { + + private _body: HTMLBodyElement | null; + private _isDark: boolean = false; + + private readonly $_dark = new BehaviorSubject(this._isDark); + public readonly $dark = this.$_dark.asObservable(); + + constructor() { + this._body = document.querySelector('body'); + + // Update theme if other tabs are changing it + // window.addEventListener('storage', (e) => { + // if (e.key === 'is-dark') this.isDark = JSON.parse(e.newValue || 'false'); + // }); + + const localValue = localStorage.getItem('is-dark'); + if (localValue) this.isDark = JSON.parse(localValue); + else if (window.matchMedia('(prefers-color-scheme)').media !== 'not all') { + this.isDark = window.matchMedia('(prefers-color-scheme: dark)').matches; + } + } + + get isDark(): boolean { + return this._isDark; + } + + set isDark(value: boolean) { + this._isDark = value; + localStorage.setItem('is-dark', JSON.stringify(value)); + if (value) this._body?.classList.add('dark'); + else this._body?.classList.remove('dark'); + this.$_dark.next(this._isDark); + } +} diff --git a/projects/ngx-reactome-diagram/src/app/services/diagram-state.service.spec.ts b/projects/ngx-reactome-diagram/src/app/services/diagram-state.service.spec.ts new file mode 100644 index 0000000..115ac16 --- /dev/null +++ b/projects/ngx-reactome-diagram/src/app/services/diagram-state.service.spec.ts @@ -0,0 +1,16 @@ +import { TestBed } from '@angular/core/testing'; + +import { DiagramStateService } from './diagram-state.service'; + +describe('BrowserStateServiceService', () => { + let service: DiagramStateService; + + beforeEach(() => { + TestBed.configureTestingModule({}); + service = TestBed.inject(DiagramStateService); + }); + + it('should be created', () => { + expect(service).toBeTruthy(); + }); +}); diff --git a/projects/ngx-reactome-diagram/src/app/services/diagram-state.service.ts b/projects/ngx-reactome-diagram/src/app/services/diagram-state.service.ts new file mode 100644 index 0000000..16af79e --- /dev/null +++ b/projects/ngx-reactome-diagram/src/app/services/diagram-state.service.ts @@ -0,0 +1,84 @@ +import {Injectable} from '@angular/core'; +import {ActivatedRoute, Router} from "@angular/router"; +import {BehaviorSubject} from "rxjs"; +import {isArray} from "lodash"; + + +export interface UrlParam { + value: T + otherTokens?: string[] +} + +export type State = { + [token: string]: UrlParam + select: UrlParam<(string | number)[]> + flag: UrlParam<(string | number)[]> + overlay: UrlParam<(string)> +}; + +@Injectable({ + providedIn: 'root' +}) +export class DiagramStateService { + + private ignore = false; + + private state: State = { + select: {otherTokens: ['SEL'], value: []}, + flag: {otherTokens: ['FLG'], value: []}, + overlay: {value: ''} + }; + + private _state$ = new BehaviorSubject(this.state); + public state$ = this._state$.asObservable() + + constructor(route: ActivatedRoute, private router: Router) { + route.queryParamMap.subscribe(params => { + if (this.ignore) return; + let change = false; + for (const mainToken in this.state) { + const param = this.state[mainToken]; + const tokens: string[] = [mainToken, ...param.otherTokens || []]; + const token = tokens.find(token => params.has(token)); + if (token) { + const formerValue = param.value; + if (isArray(param.value)) { + const rawValue = params.get(token)!; + param.value = rawValue.split(',').map(v => v.charAt(0).match(/d/) ? parseInt(v) : v); + } else { + param.value = params.get(token)!; + } + change = change || formerValue == param.value; + } + } + if (change) this._state$.next(this.state); + }); + } + + get(token: T): State[T]['value'] { + return this.state[token].value + } + + set(token: T, value: State[T]['value']): void { + this.state[token].value = value; + this.ignore = false; + this.onPropertyModified().then(() => + this.ignore = false + ); + } + + onPropertyModified() { + return this.router.navigate([], { + queryParams: { + ...Object.entries(this.state) + .filter(([token, param]) => param.value && param.value.length !== 0) + .reduce((acc, [token, param]) => ({ + ...acc, + [token]: Array.isArray(param.value) ? param.value.join(',') : param.value + }), {}) + } + }) + } + + +} diff --git a/projects/ngx-reactome-diagram/src/app/services/diagram.service.spec.ts b/projects/ngx-reactome-diagram/src/app/services/diagram.service.spec.ts new file mode 100644 index 0000000..e272600 --- /dev/null +++ b/projects/ngx-reactome-diagram/src/app/services/diagram.service.spec.ts @@ -0,0 +1,34 @@ +import {TestBed} from '@angular/core/testing'; + +import {DiagramService} from './diagram.service'; +import {HttpClient, HttpClientModule} from "@angular/common/http"; +import {concatMap, delay, from, interval, tap, zip} from "rxjs"; + +describe('DiagramService', () => { + let service: DiagramService; + let client: HttpClient; + + beforeEach(() => { + TestBed.configureTestingModule({ + imports: [HttpClientModule], + teardown: {destroyAfterEach: false} + }); + service = TestBed.inject(DiagramService); + client = TestBed.inject(HttpClient); + }); + + it('should be created', () => { + expect(service).toBeTruthy(); + }); + + it("shouldn't have too small edge to be rendered", () => { + zip( + interval(50), + client.get('/assets/data/diagrams-prod.txt', {responseType: "text"}).pipe( + concatMap(ids => from(ids.split('\n').filter(s => s.length !== 0))) + ) + ).pipe( + tap(([_, id]) => service.getDiagram(id).subscribe()), + ).subscribe(); + }) +}); diff --git a/projects/ngx-reactome-diagram/src/app/services/diagram.service.ts b/projects/ngx-reactome-diagram/src/app/services/diagram.service.ts new file mode 100644 index 0000000..0c431fe --- /dev/null +++ b/projects/ngx-reactome-diagram/src/app/services/diagram.service.ts @@ -0,0 +1,803 @@ +import {Injectable} from '@angular/core'; +import {forkJoin, map, Observable, of, tap} from "rxjs"; +import {HttpClient, HttpHeaders} from "@angular/common/http"; +import {Diagram, Edge, Node, NodeConnector, Position, Prop, Rectangle} from "../model/diagram.model"; +import {Edge as GraphEdge, Graph, Node as GraphNode} from "../model/graph.model"; +// @ts-ignore +import Reactome, {Style} from "reactome-cytoscape-style"; +// @ts-ignore +import legend from "../../assets/json/legend.json" +import {array} from "vectorious"; + +import cytoscape from "cytoscape"; +import cytoscapeFcose, {FcoseLayoutOptions} from "cytoscape-fcose"; +import NodeDefinition = Reactome.Types.NodeDefinition; +import ReactionDefinition = Reactome.Types.ReactionDefinition; +import EdgeTypeDefinition = Reactome.Types.EdgeTypeDefinition; + +cytoscape.use(cytoscapeFcose) + + +type RelativePosition = { distances: number[], weights: number[] }; + +const posToStr = (edge: Edge, pos: Position) => `${edge.id}-${pos.x},${pos.y}` + +const pointToStr = (point: Position) => `${point.x};${point.y}`; + +const scale = (pos: T, scale = 2): T => { + if (typeof pos === 'number') return pos * scale as T + return { + x: pos.x * scale, + y: pos.y * scale + } as T +} + +const equal = (pos1: Position, pos2: Position) => pos1.x === pos2.x && pos1.y === pos2.y; + +const avg = (positions: Position[]): Position => { + const sum = {x: 0, y: 0}; + positions.forEach(pos => { + sum.x += pos.x; + sum.y += pos.y; + }); + sum.x /= positions.length; + sum.y /= positions.length; + return sum; +} +const squaredDist = (pos1: Position, pos2: Position) => { + return Math.pow(pos2.x - pos1.x, 2) + Math.pow(pos2.y - pos1.y, 2) +} + +const dist = (pos1: Position, pos2: Position) => Math.sqrt(squaredDist(pos1, pos2)) + +const closestToAverage = (positions: Position[]): Position => { + const average = avg(positions); + let closest = positions[0]; + let min = squaredDist(closest, average); + for (let i = 1; i < positions.length; i++) { + const pos = positions[i]; + const dist = squaredDist(pos, average); + if (dist < min) { + min = dist; + closest = pos + } + } + return closest; +} + +@Injectable({ + providedIn: 'root' +}) +export class DiagramService { + + extraLine: Map = new Map(); + reverseExtraLine: Map = new Map(); + + constructor(private http: HttpClient) { + } + + nodeTypeMap = new Map([ + ['Gene', ['Gene', 'PhysicalEntity']], + ['RNA', ['RNA', 'PhysicalEntity']], + ['Protein', ['Protein', 'PhysicalEntity']], + ['Entity', ['GenomeEncodedEntity', 'PhysicalEntity']], + ['Complex', ['Complex', 'PhysicalEntity']], + ['EntitySet', ['EntitySet', 'PhysicalEntity']], + ['Chemical', ['Molecule', 'PhysicalEntity']], + ['Cell', ['Cell', 'PhysicalEntity']], + + ['ProteinDrug', ['Protein', 'PhysicalEntity', 'drug']], + ['ComplexDrug', ['Complex', 'PhysicalEntity', 'drug']], + ['ChemicalDrug', ['Molecule', 'PhysicalEntity', 'drug']], + ['EntitySetDrug', ['EntitySet', 'PhysicalEntity', 'drug']], + + ['ProcessNode', ['SUB', 'Pathway']], + ['EncapsulatedNode', ['Interacting', 'Pathway']] + ] + ) + + reactionTypeMap = new Map([ + [undefined, ['transition', 'reaction']], + ['transition', ['transition', 'reaction']], + ['Transition', ['transition', 'reaction']], + ['Process', ['transition', 'reaction']], + + ['binding', ['association', 'reaction']], + ['Association', ['association', 'reaction']], + + ['dissociation', ['dissociation', 'reaction']], + ['Dissociation', ['dissociation', 'reaction']], + + ['omitted', ['omitted', 'reaction']], + ['Omitted Process', ['omitted', 'reaction']], + + ['uncertain', ['uncertain', 'reaction']], + ['Uncertain Process', ['uncertain', 'reaction']], + ] + ) + + edgeTypeMap = new Map([ + ['INPUT', ['consumption', 'incoming', 'reaction']], + ['ACTIVATOR', ['positive-regulation', 'incoming', 'reaction']], + ['REQUIRED', ['positive-regulation', 'incoming', 'reaction']], + ['INHIBITOR', ['negative-regulation', 'incoming', 'reaction']], + ['CATALYST', ['catalysis', 'incoming', 'reaction']], + ['OUTPUT', ['production', 'outgoing', 'reaction']], + ] + ) + + edgeTypeToStr = new Map([ + ['INPUT', '-'], + ['ACTIVATOR', '+'], + ['REQUIRED', '+>'], + ['INHIBITOR', '|'], + ['CATALYST', 'o'], + ['OUTPUT', '>'], + ] + ) + + + linkClassMap = new Map([ + ['EntitySetAndMemberLink', ['set-to-member', 'incoming']], + ['EntitySetAndEntitySetLink', ['set-to-member', 'incoming']], + ['Interaction', ['production', 'outgoing']], + ['FlowLine', ['production', 'outgoing']] + ]) + + + random(min: number, max: number) { + return Math.floor((Math.random()) * (max - min + 1)) + min; + } + + pick(values: T[]): T { + return values[this.random(0, values.length - 1)]; + } + + private readonly COMPARTMENT_SHIFT = 35; + + public getLegend(): Observable { + return of(legend) + } + + public getDiagram(id: number | string): Observable { + return forkJoin({ + diagram: this.http.get(`https://release.reactome.org/download/current/diagram/${id}.json`), + graph: this.http.get(`https://release.reactome.org/download/current/diagram/${id}.graph.json`) + }).pipe( + tap((mergedResponse) => console.log('All responses:', mergedResponse)), + map((response) => { + + const data = response.diagram + const graph = response.graph + + console.log("edge.reactionType", new Set(data.edges.flatMap(edge => edge.reactionType))) + console.log("node.connectors.types", new Set(data.nodes.flatMap(node => node.connectors.flatMap(con => con.type)))) + console.log("node.renderableClass", new Set(data.nodes.flatMap(node => node.renderableClass))) + console.log("links.renderableClass", new Set(data.links.flatMap(link => link.renderableClass))) + console.log("shadow.renderableClass", new Set(data.shadows.flatMap(shadow => shadow.renderableClass))) + + const idToEdges = new Map(data.edges.map(edge => [edge.id, edge])); + const idToNodes = new Map(data.nodes.map(node => [node.id, node])); + const reactomeIdToEdge = new Map( + [ + // ...data.nodes.map(node => [node.reactomeId, node]), + ...data.edges.map(edge => [edge.reactomeId, edge]) + ] as [number, Edge][] + ); + + const edgeIds = new Map(); + const forwardArray = data.edges.flatMap(edge => edge.segments.map(segment => [posToStr(edge, scale(segment.from)), scale(segment.to)])) as [string, Position][]; + this.extraLine = new Map(forwardArray); + console.assert(forwardArray.length === this.extraLine.size, "Some edge data have been lost because 2 segments are starting from the same point") + + const backwardArray = data.edges.flatMap(edge => edge.segments.map(segment => [posToStr(edge, scale(segment.to)), scale(segment.from)])) as [string, Position][]; + this.reverseExtraLine = new Map(backwardArray); + console.assert(backwardArray.length == this.reverseExtraLine.size, "Some edge data have been lost because 2 segments are ending at the same point") + + + const subpathwayIds = new Set(data.shadows.map((shadow) => shadow.reactomeId)) + + const eventIdToSubPathwayId = new Map(graph.subpathways?.flatMap(subpathway => subpathway.events + .map(event => [event, subpathway.dbId]) + .filter(entry => subpathwayIds.has(entry[1]))) as [number, number][] || []) + + const subpathwayIdToEventIds = new Map(graph.subpathways?.map(subpathway => [subpathway.dbId, subpathway.events])); + + // create a node id - graph node mapping + const dbIdToGraphNode = new Map(graph.nodes.map(node => ([node.dbId, node]) || [])) + const mappingList: [number, GraphNode][] = graph.nodes.flatMap(node => { + if (node.children && node.children.length === 1) { + return node.diagramIds?.map(id => [id, dbIdToGraphNode.get(node.children[0])]).filter(entry => entry[1] !== undefined) as [number, GraphNode][] + } else return node.diagramIds?.map(id => [id, node]) as [number, GraphNode][] + }).filter(entry => entry !== undefined); + + const idToGraphNodes = new Map([...mappingList]); + const idToGraphEdges = new Map(graph.edges.map(edge => [edge.dbId, edge])); + + const dbIdToGraphEdge = new Map(graph.edges.map(edge => ([edge.dbId, edge]) || [])) + + const hasFadeOut = data.nodes.some(node => node.isFadeOut); + const normalNodes = data.nodes.filter(node => node.isFadeOut); + const specialNodes = data.nodes.filter(node => !node.isFadeOut); + const posToNormalNode = new Map(normalNodes.map(node => [pointToStr(node.position), node])); + const posToSpecialNode = new Map(specialNodes.map(node => [pointToStr(node.position), node])); + + const normalEdges = data.edges.filter(edge => edge.isFadeOut); + const specialEdges = data.edges.filter(edge => !edge.isFadeOut); + const posToNormalEdge = new Map(normalEdges.map(edge => [pointToStr(edge.position), edge])); + const posToSpecialEdge = new Map(specialEdges.map(edge => [pointToStr(edge.position), edge])); + + //compartment nodes + const compartmentNodes: cytoscape.NodeDefinition[] = data?.compartments.flatMap(item => { + const propToRects = (prop: Prop): { [p: string]: number } => ({ + left: scale(prop.x), + top: scale(prop.y), + right: scale(prop.x + prop.width), + bottom: scale(prop.x + prop.height), + }) + + let innerCR = 10; + let outerCR + if (item.insets) { + const rects = [propToRects(item.prop), propToRects(item.insets)] + outerCR = Object.keys(rects[0]).reduce((smallest, key) => Math.min(smallest, Math.abs(rects[0][key] - rects[1][key])), Number.MAX_SAFE_INTEGER); + outerCR = innerCR + Math.min(outerCR, 100) + } + + const layers: cytoscape.NodeDefinition[] = [ + { + data: { + id: item.id + '-outer', + displayName: item.displayName, + textX: scale(item.textPosition.x - (item.prop.x + item.prop.width)) + this.COMPARTMENT_SHIFT, + textY: scale(item.textPosition.y - (item.prop.y + item.prop.height)) + this.COMPARTMENT_SHIFT, + width: scale(item.prop.width), + height: scale(item.prop.height), + radius: outerCR + }, + classes: ['Compartment', 'outer'], + position: scale(item.position), + selectable: false, + } + ]; + + if (item.insets) { + layers.push({ + data: { + id: item.id + '-inner', + width: scale(item.insets.width), + height: scale(item.insets.height), + radius: innerCR + }, + classes: ['Compartment', 'inner'], + position: scale({x: item.insets.x + item.insets.width / 2, y: item.insets.y + item.insets.height / 2}), + selectable: false, + }) + } + return layers; + }); + + const replacementMap = new Map(); + + //reaction nodes + const reactionNodes: cytoscape.NodeDefinition[] = data?.edges.map(item => { + let replacement, replacedBy; + if (item.isFadeOut) { + replacedBy = posToSpecialEdge.get(pointToStr(item.position))?.id.toString() || specialEdges.find(edge => squaredDist(scale(edge.position), scale(item.position)) < 5 ** 2)?.id.toString(); + if (replacedBy) { + replacementMap.set(item.id.toString(), replacedBy) + replacementMap.set(replacedBy, item.id.toString()) + } + } + if (!item.isFadeOut) replacement = posToNormalEdge.get(pointToStr(item.position)) || normalEdges.find(edge => squaredDist(scale(edge.position), scale(item.position)) < 5 ** 2)?.id.toString(); + return ({ + data: { + id: item.id + '', + // displayName: item.displayName, + inputs: item.inputs, + output: item.outputs, + isFadeOut: item.isFadeOut, + isBackground: item.isFadeOut, + reactomeId: item.reactomeId, + reactionId: item.id, + graph: idToGraphEdges.get(item.reactomeId), + replacement, replacedBy + }, + classes: this.reactionTypeMap.get(item.reactionType), + position: scale(item.position) + }); + }); + + + //entity nodes + const entityNodes: cytoscape.NodeDefinition[] = data?.nodes.flatMap(item => { + const classes = [...this.nodeTypeMap.get(item.renderableClass)!] || [item.renderableClass.toLowerCase()]; + let replacedBy: string | undefined; + let replacement: string | undefined; + if (item.isDisease) classes.push('disease'); + if (item.isCrossed) classes.push('crossed'); + if (item.trivial) classes.push('trivial'); + if (item.needDashedBorder) classes.push('loss-of-function'); + if (item.isFadeOut) { + replacedBy = posToSpecialNode.get(pointToStr(item.position))?.id.toString() + if (!replacedBy) { + replacedBy = specialNodes.find(node => overlapLimited(item, node, 0.8))?.id.toString(); + } + if (replacedBy) { + replacementMap.set(item.id.toString(), replacedBy) + replacementMap.set(replacedBy, item.id.toString()) + } + } + if (!item.isFadeOut) replacement = posToNormalNode.get(pointToStr(item.position))?.id.toString() //|| normalNodes.find(node => overlap(item, node))?.id.toString(); + if (classes.some(clazz => clazz === 'RNA')) item.prop.height -= 10; + if (classes.some(clazz => clazz === 'Cell')) item.prop.height /= 2; + + const isBackground = item.isFadeOut || classes.some(clazz => clazz === 'Pathway') || item.connectors.some(connector => connector.isFadeOut); + item.isBackground = isBackground; + let html = undefined; + let width = scale(item.prop.width); + let height = scale(item.prop.height); + let uniprotId = idToGraphNodes.get(item.id)?.identifier; + if (classes.some(clazz => clazz === 'Protein')) { + html = this.getStructureVideoHtml({...item, type: 'Protein'}, width, height, uniprotId); + } + if (isBackground && !item.isFadeOut) { + replacementMap.set(item.id.toString(), item.id.toString()) + } + const isFadeOut = !item.isCrossed && item.isFadeOut; + const nodes: cytoscape.NodeDefinition[] = [ + { + data: { + id: item.id + '', + reactomeId: item.reactomeId, + displayName: item.displayName.replace(/([/,:;-])/g, "$1\u200b"), + height: height, + width: width, + graph: idToGraphNodes.get(item.id), + acc: uniprotId, + html, + isFadeOut, + isBackground, + replacement, + replacedBy + }, + classes: classes, + position: scale(item.position) + } + ]; + if (item.nodeAttachments) { + nodes.push(...item.nodeAttachments.map(ptm => ({ + data: { + id: item.id + '-' + ptm.reactomeId, + reactomeId: ptm.reactomeId, + nodeId: item.id, + nodeReactomeId: item.reactomeId, + displayName: ptm.label, + height: scale(ptm.shape.b.y - ptm.shape.a.y), + width: scale(ptm.shape.b.x - ptm.shape.a.x), + isFadeOut, + isBackground, + replacement, + replacedBy + }, + classes: "Modification", + position: scale(ptm.shape.centre) + }))) + } + return nodes + }); + + //sub pathways + const shadowNodes: cytoscape.NodeDefinition[] = data?.shadows.map(item => { + return { + data: { + id: item.id + '', + displayName: item.displayName, + height: scale(item.prop.height), + width: scale(item.prop.width), + reactomeId: item.reactomeId, + }, + classes: ['Shadow'], + position: closestToAverage(subpathwayIdToEventIds.get(item.reactomeId)!.map(reactionId => reactomeIdToEdge.get(reactionId)!).map(edge => scale(edge!.position))) + } + }); + + avoidOverlap(shadowNodes); + + const T = 4; + const ARROW_MULT = 1.5; + const EDGE_MARGIN = 6; + const REACTION_RADIUS = 3 * T; + const MIN_DIST = EDGE_MARGIN; + + + /** + * iterate nodes connectors to get all edges information based on the connector type. + * + */ + const edges: cytoscape.EdgeDefinition[] = + data.nodes.flatMap(node => { + return node.connectors.map(connector => { + const reaction = idToEdges.get(connector.edgeId)!; + + const reactionP = scale(reaction.position); + const nodeP = scale(node.position); + + const [source, target] = connector.type !== 'OUTPUT' ? + [node, reaction] : + [reaction, node]; + + const sourceP = scale(source.position); + const targetP = scale(target.position); + + let points = connector.segments + .flatMap((segment, i) => i === 0 ? [segment.from, segment.to] : [segment.to]) + .map(pos => scale(pos)); + if (connector.type === 'OUTPUT') points.reverse(); + if (points.length === 0) points.push(reactionP); + + this.addEdgeInfo(reaction, points, 'backward', sourceP); + this.addEdgeInfo(reaction, points, 'forward', targetP); + + let [from, to] = [points.shift()!, points.pop()!] + from = from ?? nodeP; // Quick fix to avoid problem with reaction without visible outputs like R-HSA-2424252 in R-HSA-1474244 + to = to ?? reactionP; // Quick fix to avoid problem with reaction without visible outputs like R-HSA-2424252 in R-HSA-1474244 + if (connector.type === 'CATALYST') { + to = scale(connector.endShape.centre); + } + + // points = addRoundness(from, to, points); + const relatives = this.absoluteToRelative(from, to, points); + + const classes = [...this.edgeTypeMap.get(connector.type)!]; + if (reaction.isDisease) classes.push('disease'); + if (node.trivial) classes.push('trivial'); + if (eventIdToSubPathwayId.has(reaction.reactomeId)) classes.push('shadow'); + + let d = dist(from, to); + if (equal(from, reactionP) || equal(to, reactionP)) d -= REACTION_RADIUS; + if (classes.includes('positive-regulation') || classes.includes('catalysis') || classes.includes('production')) d -= ARROW_MULT * T; + // console.assert(d > MIN_DIST, `The edge between reaction: R-HSA-${reaction.reactomeId} and entity: R-HSA-${node.reactomeId} in pathway ${id} has a visible length of ${d} which is shorter than ${MIN_DIST}`) + console.assert(d > MIN_DIST, `${id}\t${data.displayName}\t${hasFadeOut}\tR-HSA-${reaction.reactomeId}\tR-HSA-${node.reactomeId}\thttps://release.reactome.org/PathwayBrowser/#/${id}&SEL=R-HSA-${reaction.reactomeId}&FLG=R-HSA-${node.reactomeId}\thttps://reactome-pwp.github.io/PathwayBrowser/${id}?select=${reaction.reactomeId}&flag=${node.reactomeId}`) + + let replacement, replacedBy; + if (connector.isFadeOut) { + // First case: same node is used both special and normal context + // replacedBy = node.connectors.find(otherConnector => otherConnector !== connector && !otherConnector.isFadeOut && samePoint(idToEdges.get(otherConnector.edgeId)!.position, reaction.position))?.edgeId; + // Second case: different nodes are used between special and normal context + // replacedBy = replacedBy || (posToSpecialNode.get(pointToStr(node.position)) && posToSpecialEdge.get(pointToStr(reaction.position)))?.id; + + replacedBy = replacementMap.get(node.id.toString()) && replacementMap.get(reaction.id.toString()) + } + if (!connector.isFadeOut) { + // First case: same node is used both special and normal context + replacement = node.connectors.find(otherConnector => otherConnector !== connector && otherConnector.isFadeOut && samePoint(idToEdges.get(otherConnector.edgeId)!.position, reaction.position))?.edgeId; + // Second case: different nodes are used between special and normal context + replacement = replacement || (posToNormalNode.get(pointToStr(node.position)) && posToNormalEdge.get(pointToStr(reaction.position)))?.id; + } + const edge: cytoscape.EdgeDefinition = { + data: { + id: this.getEdgeId(source, connector, target, edgeIds), + graph: dbIdToGraphEdge.get(reaction.reactomeId), + source: source.id + '', + target: target.id + '', + stoichiometry: connector.stoichiometry.value, + weights: relatives.weights.join(" "), + distances: relatives.distances.join(" "), + sourceEndpoint: this.endpoint(sourceP, from), + targetEndpoint: this.endpoint(targetP, to), + pathway: eventIdToSubPathwayId.get(reaction.reactomeId), + reactomeId: reaction.reactomeId, + reactionId: reaction.id, + isFadeOut: reaction.isFadeOut, + isBackground: reaction.isFadeOut, + replacedBy, replacement + }, + classes: classes + }; + return edge + }); + } + ); + + const linkEdges: cytoscape.EdgeDefinition[] = data.links + ?.filter(link => !link.renderableClass.includes('EntitySet') || link.inputs[0].id !== link.outputs[0].id) + ?.map(link => { + const source = idToNodes.get(link.inputs[0].id)!; + const target = idToNodes.get(link.outputs[0].id)!; + + const sourceP = scale(source.position); + const targetP = scale(target.position); + + let points = link.segments + .flatMap((segment, i) => i === 0 ? [segment.from, segment.to] : [segment.to]) + .map(pos => scale(pos)); + + let [from, to] = [points.shift()!, points.pop()!] + from = from ?? sourceP; // Quick fix to avoid problem with reaction without visible outputs like R-HSA-2424252 in R-HSA-1474244 + to = to ?? targetP; // Quick fix to avoid problem with reaction without visible outputs like R-HSA-2424252 in R-HSA-1474244 + + // points = addRoundness(from, to, points); + const relatives = this.absoluteToRelative(from, to, points); + + const classes = [...this.linkClassMap.get(link.renderableClass)!]; + if (link.isDisease) classes.push('disease'); + const isBackground = link.isFadeOut || + idToNodes.get(link.inputs[0].id)?.isBackground && + idToNodes.get(link.outputs[0].id)?.isBackground; + + return { + data: { + id: link.id + '', + source: link.inputs[0].id + '', + target: link.outputs[0].id + '', + weights: relatives.weights.join(" "), + distances: relatives.distances.join(" "), + sourceEndpoint: this.endpoint(sourceP, from), + targetEndpoint: this.endpoint(targetP, to), + isFadeOut: link.isFadeOut, + isBackground: isBackground + }, + classes: classes, + selectable: false + } + } + ) + + return { + nodes: [...compartmentNodes, ...reactionNodes, ...entityNodes, ...shadowNodes], + edges: [...edges, ...linkEdges] + }; + }), + tap((output) => console.log('Output:', output)), + ) + + } + + getStructureVideoHtml(item: { + id: string | number, + type: string + }, width: number, height: number, uniprotId: string | undefined) { + if (item.type === 'Protein') + return ``; + return undefined; + } + + private getEdgeId(source: Edge | Node, connector: NodeConnector, target: Edge | Node, edgeIds: Map) { + let edgeId = `${source.id} --${this.edgeTypeToStr.get(connector.type)} ${target.id}`; + + if (edgeIds.has(edgeId)) { + let count = edgeIds.get(edgeId)!; + edgeIds.set(edgeId, count++); + edgeId += ` (${count})`; + console.warn('Conflicting edge id: ', edgeId) + } else { + edgeIds.set(edgeId, 0) + } + return edgeId; + } + + private addEdgeInfo(edge: Edge, points: Position[], direction: 'forward' | 'backward', stop: Position) { + const stopPos = posToStr(edge, stop); + if (direction === 'forward') { + const map = this.extraLine; + let pos = posToStr(edge, points.at(-1)!) + while (map.has(pos) && pos !== stopPos) { + points.push(map.get(pos)!) + pos = posToStr(edge, points.at(-1)!) + } + } else { + const map = this.reverseExtraLine; + let pos = posToStr(edge, points.at(0)!) + while (map.has(pos) && pos !== stopPos) { + points.unshift(map.get(pos)!) + pos = posToStr(edge, points.at(0)!) + } + } + } + + private endpoint(source: Position, point: Position): string { + return `${point.x - source.x} ${point.y - source.y}` + } + + + lastSelectedResource: string | undefined + private INTACT: string = "IntAct"; + + /** + * Use Matrix power to convert points from an absolute coordinate system to an edge relative system + * + * Visually explained by https://youtu.be/kYB8IZa5AuE?si=vJKi-MUv2dCRQ5oA
+ * Short version ==> https://math.stackexchange.com/q/1855051/683621 + * @param source Position position of the edge source: {x:number, y:number} + * @param target Position position of the edge target: {x:number, y:number} + * @param toConvert Array of Position to convert to the edge-relative system + * @return The points converted to relative coordinates {distances: number[], weights: number[]} + */ + private absoluteToRelative(source: Position, target: Position, toConvert: Position[]): RelativePosition { + const relatives: RelativePosition = {distances: [], weights: []}; + if (toConvert.length === 0) return relatives; + + const mainVector = array([target.x - source.x, target.y - source.y]); // Edge vector + const orthoVector = array([-mainVector.y, mainVector.x]) // Perpendicular vector + .normalize(); //Normalized to have the distance expressed in pixels https://math.stackexchange.com/a/413235/683621 + let transform = array([ + [mainVector.x, mainVector.y], + [orthoVector.x, orthoVector.y], + ]).inv(); // Should always be invertible if the ortho vector is indeed perpendicular + + for (let coord of toConvert) { + const absolute = array([[coord.x - source.x, coord.y - source.y]]); + const relative = absolute.multiply(transform); + relatives.weights.push(relative.get(0, 0)) + relatives.distances.push(relative.get(0, 1)) + } + return relatives; + } + + public randomNetwork(): Observable { + const amount = 100; + const peTypes = ['Protein', 'EntitySet', 'GenomeEncodedEntity', 'RNA', 'Gene', 'Complex', 'Molecule']; + // const peTypes = ['Gene']; + const reactionTypes = ['association', 'dissociation', 'transition', 'uncertain', 'omitted']; + + const physicalEntities: cytoscape.NodeDefinition[] = Array.from({length: amount}, (x, i) => { + const clazz = this.pick(peTypes); + return { + group: 'nodes', + data: { + id: i.toString(), + width: this.random(150, 300), + height: this.random(50, 150), + displayName: clazz, + parent: 'Compartment' + }, + classes: [clazz, "PhysicalEntity", this.pick(["drug", "", ""])] + }; + }); + + const reactions: cytoscape.NodeDefinition[] = physicalEntities.map((node, i) => + ({ + group: 'nodes', + data: { + id: `${i}-react`, + parent: 'Compartment' + }, + classes: [this.pick(reactionTypes), 'reaction'] + }) + ); + + const nodes: cytoscape.NodeDefinition[] = physicalEntities.flatMap((node, i) => + [node, reactions[i]] + ); + + + const inOut: cytoscape.EdgeDefinition[] = physicalEntities.flatMap((node, i) => [ + { + group: 'edges', + data: { + source: `${i}`, + target: `${i}-react`, + stoichiometry: this.pick([undefined, -1, 0, 1, 2]) + }, + classes: ['consumption'] + }, + { + group: 'edges', + data: { + source: `${i}-react`, + target: `${(i + 1) % amount}`, + stoichiometry: this.pick([undefined, -1, 0, 1, 2]) + }, + + classes: ['production'] + }, + ]) + + const additionalIn: cytoscape.EdgeDefinition[] = Array.from({length: amount / 4}).map(() => ({ + group: 'edges', + data: { + source: this.pick(physicalEntities).data.id!, + target: this.pick(reactions).data.id!, + }, + classes: this.pick(['catalysis', 'positive-regulation', 'negative-regulation', 'set-to-member']) + })); + + + const edges: cytoscape.EdgeDefinition[] = [...inOut, ...additionalIn]; + + return of({ // list of graph elements to start with + nodes: [ + { + data: {id: 'Compartment'}, + classes: ['Compartment'], + pannable: true, + grabbable: false, + selectable: false + }, + ...nodes + ] + , edges + }) + } +} + +function samePoint(p1: Position, p2: Position) { + return p1.x === p2.x && p1.y === p2.y +} + +function overlapLimited(nodeA: Node, nodeB: Node, limit: number = 0.8): boolean { + if (nodeA.position.x === nodeB.position.x && nodeA.position.y === nodeB.position.y) return true; + const rectA = getRect(nodeA), rectB = getRect(nodeB); + const o: Rectangle = { + left: Math.max(rectA.left, rectB.left), + right: Math.min(rectA.right, rectB.right), + top: Math.max(rectA.top, rectB.top), + bottom: Math.min(rectA.bottom, rectB.bottom) + } + return (o.left < o.right && o.top < o.bottom) && ((area(o) / area(rectA)) > limit); +} + +function overlap(nodeA: Node, nodeB: Node): boolean { + if (nodeA.position.x === nodeB.position.x && nodeA.position.y === nodeB.position.y) return true; + const rectA = getRect(nodeA), rectB = getRect(nodeB); + return Math.max(rectA.left, rectB.left) < Math.min(rectA.right, rectB.right) + && Math.max(rectA.top, rectB.top) < Math.min(rectA.bottom, rectB.bottom); +} + +function area(rect: Rectangle) { + return (rect.right - rect.left) * (rect.bottom - rect.top) +} + +function getRect(node: Node): Rectangle { + if (node.rect) return node.rect + const halfWidth = node.prop.width / 2; + const halfHeight = node.prop.height / 2; + node.rect = { + left: node.position.x - halfWidth, + right: node.position.x + halfWidth, + top: node.position.y - halfHeight, + bottom: node.position.y + halfHeight, + } + return node.rect; +} + +/** + * Create a temporary cytoscape session to apply a layout to the nodes in order to avoid them to overlap each others + */ +function avoidOverlap(definitions: cytoscape.NodeDefinition[]) { + const container = document.createElement("div"); + + const style = new Style(container, {}); + const cy = cytoscape({ + container: container, + style: style.getStyleSheet(), + elements: definitions, + layout: {name: 'preset'} + }); + + const nodes = cy.nodes(); + nodes.forEach(node => { + const bb = node.boundingBox({includeLabels: true, includeNodes: false}); + node.style({width: bb.w, height: bb.h}) + }) + + const layout = nodes.layout({ + name: 'fcose', + nodeRepulsion: 15, + animate: false, + fit: true, + packComponents: false, + randomize: false, + tile: false, + } as FcoseLayoutOptions); + layout.run() + + definitions.forEach(def => def.position = cy.getElementById(def.data.id!).position()); + + cy.destroy() + container.remove() +} diff --git a/projects/ngx-reactome-diagram/src/app/services/roundness.ts b/projects/ngx-reactome-diagram/src/app/services/roundness.ts new file mode 100644 index 0000000..80804fc --- /dev/null +++ b/projects/ngx-reactome-diagram/src/app/services/roundness.ts @@ -0,0 +1,69 @@ +import {Position} from "cytoscape"; +import {add, array, NDArray, subtract} from "vectorious"; + +/** + * Add roundness to a segment edge by adding for each anchor position an additional point just before and just after + * at a distance of radius from the original anchor point. + * + * With Cytoscape Bezier edges, this renders as a segmented edges with smoothed corner. + * For a schematic explanation, @see https://raw.githubusercontent.com/reactome-pwp/PathwayBrowser/main/doc/smooth-segments.png + * + * @param source The position of the source node + * @param target The position of the target node + * @param anchors The intermediate segment points + * @param radius How far away the new points need to be from the anchor points. + * A bigger radius means smoother corners, + * but it shouldn't be bigger than the segment + * @private + */ +export function addRoundness(source: Position, target: Position, anchors: Position[], radius = 60): Position[] { + const output: NDArray[] = [] + if (anchors.length === 0) return output; + + const points = [source, ...anchors, target]; + for (let i = 1; i < points.length - 1; i++) { + let previousPoint = toVector(points[i - 1]); + let currentPoint = toVector(points[i]); + let nextPoint = toVector(points[i + 1]); + + const previousVector = subtract(previousPoint.copy(), currentPoint); + const nextVector = subtract(nextPoint.copy(), currentPoint); + + // Scaling to fit to radius + scaleTo([previousVector, nextVector], radius); + + previousPoint = add(currentPoint.copy(), previousVector); + nextPoint = add(currentPoint.copy(), nextVector); + + output.push(previousPoint, currentPoint, nextPoint); + } + return output.map(toPosition); +} + +/** + * Scale a list of vectors to a desired length. + * + * If limit is true, limiting the resulting length to half the minimum norm of all vectors, in order to avoid clashing + * @param vectors + * @param length + * @param limit + * @private + */ +function scaleTo(vectors: NDArray[], length: number, limit = true): NDArray[] { + const norms = vectors.map(vector => vector.norm()); + if (limit) { + const minNorm = Math.min(...norms); + if (length >= minNorm) length = minNorm / 2.1; + } + return vectors.map((vector, i) => vector.scale(length / norms[i])); +} + + +function toVector(position: Position): NDArray { + return array([position.x, position.y]); +} + +function toPosition(vector: NDArray): Position { + return {x: vector.x, y: vector.y} +} + diff --git a/projects/ngx-reactome-diagram/src/assets/.gitkeep b/projects/ngx-reactome-diagram/src/assets/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/projects/ngx-reactome-diagram/src/assets/data/diagrams-dev-no-ehld.txt b/projects/ngx-reactome-diagram/src/assets/data/diagrams-dev-no-ehld.txt new file mode 100644 index 0000000..5694412 --- /dev/null +++ b/projects/ngx-reactome-diagram/src/assets/data/diagrams-dev-no-ehld.txt @@ -0,0 +1,991 @@ +R-HSA-9748787 +R-HSA-201451 +R-HSA-3560796 +R-HSA-5619049 +R-HSA-5467333 +R-HSA-3232118 +R-HSA-9613829 +R-HSA-9752946 +R-HSA-9674404 +R-HSA-6790901 +R-HSA-5173105 +R-HSA-166058 +R-HSA-983231 +R-HSA-112307 +R-HSA-5609976 +R-HSA-8964572 +R-HSA-4655427 +R-HSA-9670621 +R-HSA-6806834 +R-HSA-9018679 +R-HSA-9630791 +R-HSA-2206296 +R-HSA-3359467 +R-HSA-9793242 +R-HSA-2160456 +R-HSA-6802955 +R-HSA-9818028 +R-HSA-5619078 +R-HSA-8876384 +R-HSA-388841 +R-HSA-6791055 +R-HSA-201681 +R-HSA-5619045 +R-HSA-5656364 +R-HSA-196791 +R-HSA-2161522 +R-HSA-2559582 +R-HSA-5625740 +R-HSA-1483255 +R-HSA-202131 +R-HSA-8877330 +R-HSA-8957275 +R-HSA-5632968 +R-HSA-5579006 +R-HSA-9035968 +R-HSA-8864260 +R-HSA-2206282 +R-HSA-8942233 +R-HSA-4720489 +R-HSA-6784531 +R-HSA-351202 +R-HSA-1630316 +R-HSA-453279 +R-HSA-2682334 +R-HSA-418889 +R-HSA-451326 +R-HSA-5658208 +R-HSA-75205 +R-HSA-9609736 +R-HSA-6791461 +R-HSA-927802 +R-HSA-1655829 +R-HSA-390522 +R-HSA-4793950 +R-HSA-174824 +R-HSA-9692914 +R-HSA-5619040 +R-HSA-5619077 +R-HSA-9018683 +R-HSA-9614657 +R-HSA-9665244 +R-HSA-5358749 +R-HSA-5686938 +R-HSA-9662851 +R-HSA-499943 +R-HSA-5652084 +R-HSA-9665246 +R-HSA-4717374 +R-HSA-418597 +R-HSA-2206305 +R-HSA-1234174 +R-HSA-187037 +R-HSA-450294 +R-HSA-9818027 +R-HSA-9674428 +R-HSA-9656249 +R-HSA-9617828 +R-HSA-9648895 +R-HSA-5619099 +R-HSA-9036092 +R-HSA-9734281 +R-HSA-9702636 +R-HSA-6802948 +R-HSA-3282872 +R-HSA-381426 +R-HSA-5661231 +R-HSA-1247673 +R-HSA-9673766 +R-HSA-5610787 +R-HSA-5658034 +R-HSA-111885 +R-HSA-9710421 +R-HSA-450531 +R-HSA-6803157 +R-HSA-5617472 +R-HSA-9665233 +R-HSA-5687583 +R-HSA-9702614 +R-HSA-5467343 +R-HSA-9632700 +R-HSA-8935690 +R-HSA-425393 +R-HSA-72086 +R-HSA-5602498 +R-HSA-70635 +R-HSA-380972 +R-HSA-9717189 +R-HSA-9012999 +R-HSA-73942 +R-HSA-9669921 +R-HSA-3560783 +R-HSA-5654736 +R-HSA-8876198 +R-HSA-2173782 +R-HSA-9614085 +R-HSA-4043916 +R-HSA-9662361 +R-HSA-5619061 +R-HSA-9665250 +R-HSA-6802952 +R-HSA-5693606 +R-HSA-9663199 +R-HSA-3899300 +R-HSA-5467337 +R-HSA-1475029 +R-HSA-5632987 +R-HSA-9657689 +R-HSA-163200 +R-HSA-3560801 +R-HSA-3595172 +R-HSA-5678520 +R-HSA-9669936 +R-HSA-9753512 +R-HSA-9680350 +R-HSA-3656237 +R-HSA-5545483 +R-HSA-453276 +R-HSA-9703465 +R-HSA-204005 +R-HSA-5083632 +R-HSA-8851680 +R-HSA-5579028 +R-HSA-73864 +R-HSA-162587 +R-HSA-9699150 +R-HSA-6802946 +R-HSA-5602571 +R-HSA-5579024 +R-HSA-5619072 +R-HSA-9702600 +R-HSA-373760 +R-HSA-1799339 +R-HSA-4720454 +R-HSA-9754189 +R-HSA-373755 +R-HSA-9753510 +R-HSA-9630221 +R-HSA-9717301 +R-HSA-375165 +R-HSA-6782315 +R-HSA-4085023 +R-HSA-2206292 +R-HSA-69239 +R-HSA-1980145 +R-HSA-2187338 +R-HSA-416476 +R-HSA-9706019 +R-HSA-983169 +R-HSA-3858516 +R-HSA-9764260 +R-HSA-8856828 +R-HSA-5674400 +R-HSA-5669034 +R-HSA-3878781 +R-HSA-5625900 +R-HSA-2586552 +R-HSA-3359454 +R-HSA-5358752 +R-HSA-399721 +R-HSA-9673768 +R-HSA-9018677 +R-HSA-5609974 +R-HSA-202403 +R-HSA-198933 +R-HSA-3371599 +R-HSA-9629232 +R-HSA-1643713 +R-HSA-5660862 +R-HSA-5625886 +R-HSA-5627117 +R-HSA-400206 +R-HSA-8986944 +R-HSA-5627123 +R-HSA-2142700 +R-HSA-211945 +R-HSA-5579011 +R-HSA-71240 +R-HSA-9605310 +R-HSA-5633231 +R-HSA-5602566 +R-HSA-2206280 +R-HSA-6804758 +R-HSA-73933 +R-HSA-194138 +R-HSA-73857 +R-HSA-9646399 +R-HSA-8985947 +R-HSA-9734195 +R-HSA-5579026 +R-HSA-9715370 +R-HSA-5339716 +R-HSA-9609523 +R-HSA-9661069 +R-HSA-9607240 +R-HSA-70370 +R-HSA-4341670 +R-HSA-9669924 +R-HSA-74182 +R-HSA-9702596 +R-HSA-8983711 +R-HSA-5688426 +R-HSA-9703009 +R-HSA-9701193 +R-HSA-6793080 +R-HSA-5619094 +R-HSA-5339700 +R-HSA-4549356 +R-HSA-1187000 +R-HSA-2206308 +R-HSA-9665348 +R-HSA-5250924 +R-HSA-5609977 +R-HSA-5619060 +R-HSA-5685939 +R-HSA-9702620 +R-HSA-5619070 +R-HSA-9758919 +R-HSA-2132295 +R-HSA-3642279 +R-HSA-5619058 +R-HSA-8852135 +R-HSA-9704646 +R-HSA-5619036 +R-HSA-2028269 +R-HSA-5655799 +R-HSA-1474244 +R-HSA-8979227 +R-HSA-9664422 +R-HSA-9723905 +R-HSA-5603027 +R-HSA-9726840 +R-HSA-354192 +R-HSA-1296071 +R-HSA-3656243 +R-HSA-6806003 +R-HSA-6809583 +R-HSA-9702509 +R-HSA-1445148 +R-HSA-5619092 +R-HSA-170834 +R-HSA-71064 +R-HSA-9702581 +R-HSA-5676590 +R-HSA-5619097 +R-HSA-9649948 +R-HSA-9669917 +R-HSA-5660724 +R-HSA-3828062 +R-HSA-9679191 +R-HSA-196807 +R-HSA-2559585 +R-HSA-5633008 +R-HSA-9717323 +R-HSA-6798163 +R-HSA-390918 +R-HSA-4719377 +R-HSA-5637812 +R-HSA-3371598 +R-HSA-2564830 +R-HSA-416482 +R-HSA-5339717 +R-HSA-9630794 +R-HSA-2206302 +R-HSA-392517 +R-HSA-75105 +R-HSA-9755088 +R-HSA-9669929 +R-HSA-9006335 +R-HSA-5213460 +R-HSA-5619104 +R-HSA-9673767 +R-HSA-8956321 +R-HSA-9690406 +R-HSA-2206291 +R-HSA-76005 +R-HSA-5083630 +R-HSA-186797 +R-HSA-5632684 +R-HSA-9772572 +R-HSA-71262 +R-HSA-4549349 +R-HSA-3304347 +R-HSA-75893 +R-HSA-3359471 +R-HSA-3359463 +R-HSA-5579027 +R-HSA-4549380 +R-HSA-425366 +R-HSA-9705683 +R-HSA-418594 +R-HSA-9633012 +R-HSA-6811442 +R-HSA-3359474 +R-HSA-2892245 +R-HSA-9796292 +R-HSA-3656248 +R-HSA-9669933 +R-HSA-446203 +R-HSA-75892 +R-HSA-5638302 +R-HSA-4551295 +R-HSA-418346 +R-HSA-5578995 +R-HSA-8953750 +R-HSA-5579030 +R-HSA-5673001 +R-HSA-5603037 +R-HSA-8949613 +R-HSA-9034015 +R-HSA-189200 +R-HSA-373753 +R-HSA-112313 +R-HSA-5688354 +R-HSA-9702624 +R-HSA-157858 +R-HSA-8849932 +R-HSA-381038 +R-HSA-917937 +R-HSA-5627083 +R-HSA-5083627 +R-HSA-9027604 +R-HSA-181431 +R-HSA-211000 +R-HSA-5619056 +R-HSA-425397 +R-HSA-9664433 +R-HSA-2559586 +R-HSA-5682294 +R-HSA-196757 +R-HSA-446728 +R-HSA-5609978 +R-HSA-5693567 +R-HSA-1181150 +R-HSA-3108214 +R-HSA-6791312 +R-HSA-9818025 +R-HSA-5467348 +R-HSA-9670439 +R-HSA-9824272 +R-HSA-3000170 +R-HSA-9645135 +R-HSA-9672383 +R-HSA-8983432 +R-HSA-2046104 +R-HSA-430116 +R-HSA-9734735 +R-HSA-9759774 +R-HSA-5655253 +R-HSA-5617833 +R-HSA-4085001 +R-HSA-9759475 +R-HSA-69242 +R-HSA-9635486 +R-HSA-5467340 +R-HSA-9707564 +R-HSA-167060 +R-HSA-5210891 +R-HSA-5579014 +R-HSA-9664417 +R-HSA-5083633 +R-HSA-5654743 +R-HSA-9033241 +R-HSA-420499 +R-HSA-1362409 +R-HSA-3656532 +R-HSA-112308 +R-HSA-199992 +R-HSA-4755579 +R-HSA-3656253 +R-HSA-9823730 +R-HSA-3642278 +R-HSA-3359473 +R-HSA-8941413 +R-HSA-446652 +R-HSA-6791226 +R-HSA-452723 +R-HSA-427389 +R-HSA-8949215 +R-HSA-3560792 +R-HSA-8956319 +R-HSA-6806664 +R-HSA-9758920 +R-HSA-9665245 +R-HSA-68877 +R-HSA-5676934 +R-HSA-209776 +R-HSA-977347 +R-HSA-8955332 +R-HSA-9672397 +R-HSA-453274 +R-HSA-5579002 +R-HSA-9648002 +R-HSA-9670613 +R-HSA-1592389 +R-HSA-400508 +R-HSA-9022538 +R-HSA-6796648 +R-HSA-9006821 +R-HSA-72312 +R-HSA-9656255 +R-HSA-5688890 +R-HSA-5619043 +R-HSA-1170546 +R-HSA-1227986 +R-HSA-5683177 +R-HSA-68884 +R-HSA-418555 +R-HSA-5619081 +R-HSA-1592230 +R-HSA-388844 +R-HSA-8854691 +R-HSA-9761174 +R-HSA-201556 +R-HSA-5602410 +R-HSA-9652169 +R-HSA-975871 +R-HSA-5423646 +R-HSA-5578996 +R-HSA-5619068 +R-HSA-5660489 +R-HSA-9726842 +R-HSA-200425 +R-HSA-5579010 +R-HSA-114604 +R-HSA-5619054 +R-HSA-9632697 +R-HSA-72203 +R-HSA-112310 +R-HSA-373080 +R-HSA-9006115 +R-HSA-157579 +R-HSA-177929 +R-HSA-9702569 +R-HSA-6783589 +R-HSA-5619089 +R-HSA-9772573 +R-HSA-5678771 +R-HSA-112409 +R-HSA-4720475 +R-HSA-9657688 +R-HSA-5619066 +R-HSA-877300 +R-HSA-381340 +R-HSA-3656534 +R-HSA-5578997 +R-HSA-5619047 +R-HSA-2029480 +R-HSA-70895 +R-HSA-6807878 +R-HSA-5663213 +R-HSA-1368082 +R-HSA-75944 +R-HSA-5221030 +R-HSA-5579022 +R-HSA-9616333 +R-HSA-9709275 +R-HSA-9656256 +R-HSA-264876 +R-HSA-6791462 +R-HSA-3215018 +R-HSA-70326 +R-HSA-1650814 +R-HSA-447115 +R-HSA-5579031 +R-HSA-9702998 +R-HSA-8853659 +R-HSA-9665737 +R-HSA-5619035 +R-HSA-8981607 +R-HSA-69002 +R-HSA-5619087 +R-HSA-9634597 +R-HSA-8876725 +R-HSA-9665686 +R-HSA-3359475 +R-HSA-8866376 +R-HSA-6802953 +R-HSA-6794361 +R-HSA-5579019 +R-HSA-5654741 +R-HSA-112311 +R-HSA-5682113 +R-HSA-8963691 +R-HSA-1614635 +R-HSA-5663220 +R-HSA-9022535 +R-HSA-5662702 +R-HSA-9652817 +R-HSA-5632928 +R-HSA-9701192 +R-HSA-9012852 +R-HSA-5205647 +R-HSA-9630222 +R-HSA-5602680 +R-HSA-3315487 +R-HSA-5579007 +R-HSA-8848021 +R-HSA-5619071 +R-HSA-983705 +R-HSA-3656234 +R-HSA-5579015 +R-HSA-9608290 +R-HSA-5659898 +R-HSA-5083635 +R-HSA-9615017 +R-HSA-2555396 +R-HSA-5619073 +R-HSA-8937144 +R-HSA-917729 +R-HSA-72613 +R-HSA-5658471 +R-HSA-73893 +R-HSA-9669914 +R-HSA-8848584 +R-HSA-9664420 +R-HSA-4793954 +R-HSA-3304356 +R-HSA-4719360 +R-HSA-73929 +R-HSA-2162123 +R-HSA-3371556 +R-HSA-109606 +R-HSA-5655302 +R-HSA-9673324 +R-HSA-3785653 +R-HSA-1632852 +R-HSA-427359 +R-HSA-6785807 +R-HSA-191273 +R-HSA-5621481 +R-HSA-5579000 +R-HSA-9753281 +R-HSA-9703648 +R-HSA-140534 +R-HSA-9630750 +R-HSA-2644602 +R-HSA-450282 +R-HSA-9673221 +R-HSA-432040 +R-HSA-6807505 +R-HSA-2173793 +R-HSA-8873719 +R-HSA-169911 +R-HSA-977225 +R-HSA-5579004 +R-HSA-381119 +R-HSA-5358346 +R-HSA-68962 +R-HSA-9717329 +R-HSA-9031628 +R-HSA-445989 +R-HSA-3371497 +R-HSA-3359485 +R-HSA-5545619 +R-HSA-8949664 +R-HSA-2404192 +R-HSA-381183 +R-HSA-1222499 +R-HSA-186712 +R-HSA-5625970 +R-HSA-5579013 +R-HSA-4755583 +R-HSA-9662360 +R-HSA-9613354 +R-HSA-429914 +R-HSA-5602636 +R-HSA-70688 +R-HSA-5602415 +R-HSA-1368108 +R-HSA-2022377 +R-HSA-4570464 +R-HSA-75067 +R-HSA-9709570 +R-HSA-9673770 +R-HSA-2032785 +R-HSA-5334118 +R-HSA-9680187 +R-HSA-9669935 +R-HSA-5666185 +R-HSA-6785470 +R-HSA-9687136 +R-HSA-9664424 +R-HSA-5619041 +R-HSA-209952 +R-HSA-6782861 +R-HSA-3656244 +R-HSA-4090294 +R-HSA-2206285 +R-HSA-975634 +R-HSA-9657050 +R-HSA-879415 +R-HSA-75157 +R-HSA-5619110 +R-HSA-109704 +R-HSA-5578998 +R-HSA-5579012 +R-HSA-5579016 +R-HSA-8852405 +R-HSA-8877627 +R-HSA-72764 +R-HSA-432047 +R-HSA-5362517 +R-HSA-1679131 +R-HSA-9634815 +R-HSA-156842 +R-HSA-9717326 +R-HSA-9818749 +R-HSA-5619085 +R-HSA-5336415 +R-HSA-5603041 +R-HSA-5626467 +R-HSA-9009391 +R-HSA-9673218 +R-HSA-1489509 +R-HSA-5619052 +R-HSA-5690338 +R-HSA-9672391 +R-HSA-3645790 +R-HSA-5660686 +R-HSA-1566948 +R-HSA-2426168 +R-HSA-9616334 +R-HSA-6798695 +R-HSA-6807070 +R-HSA-5678420 +R-HSA-5083625 +R-HSA-5659735 +R-HSA-5619067 +R-HSA-5696398 +R-HSA-9659787 +R-HSA-5663020 +R-HSA-1474228 +R-HSA-2454202 +R-HSA-71288 +R-HSA-3299685 +R-HSA-9763198 +R-HSA-9665247 +R-HSA-9656223 +R-HSA-71336 +R-HSA-5637815 +R-HSA-196849 +R-HSA-5662853 +R-HSA-2206307 +R-HSA-216083 +R-HSA-1236394 +R-HSA-9674519 +R-HSA-8950505 +R-HSA-5619088 +R-HSA-5654738 +R-HSA-9672393 +R-HSA-3656535 +R-HSA-5619053 +R-HSA-9709603 +R-HSA-8856825 +R-HSA-168928 +R-HSA-1461973 +R-HSA-69620 +R-HSA-168799 +R-HSA-5694530 +R-HSA-166658 +R-HSA-2172127 +R-HSA-5579020 +R-HSA-168255 +R-HSA-5619042 +R-HSA-5619079 +R-HSA-5362768 +R-HSA-5619098 +R-HSA-2206290 +R-HSA-156580 +R-HSA-4755510 +R-HSA-909733 +R-HSA-373752 +R-HSA-9674555 +R-HSA-9669926 +R-HSA-8963676 +R-HSA-4724325 +R-HSA-9664407 +R-HSA-5674404 +R-HSA-4724289 +R-HSA-9632693 +R-HSA-9615710 +R-HSA-2644605 +R-HSA-8956320 +R-HSA-3232142 +R-HSA-8849175 +R-HSA-389661 +R-HSA-5620971 +R-HSA-194441 +R-HSA-3656225 +R-HSA-422085 +R-HSA-5368287 +R-HSA-5467345 +R-HSA-432030 +R-HSA-5619101 +R-HSA-379724 +R-HSA-5619046 +R-HSA-5619095 +R-HSA-9757110 +R-HSA-2219530 +R-HSA-9645460 +R-HSA-9022534 +R-HSA-6787450 +R-HSA-8866654 +R-HSA-5083636 +R-HSA-9673202 +R-HSA-1221632 +R-HSA-9772755 +R-HSA-9702632 +R-HSA-5358747 +R-HSA-3595177 +R-HSA-5655291 +R-HSA-9672395 +R-HSA-5661270 +R-HSA-163841 +R-HSA-5679090 +R-HSA-983189 +R-HSA-71737 +R-HSA-5576891 +R-HSA-8878159 +R-HSA-212300 +R-HSA-5223345 +R-HSA-5340573 +R-HSA-9723907 +R-HSA-5687128 +R-HSA-4793953 +R-HSA-5619113 +R-HSA-9674396 +R-HSA-8862803 +R-HSA-70921 +R-HSA-9755511 +R-HSA-397795 +R-HSA-9672396 +R-HSA-9793528 +R-HSA-5668599 +R-HSA-163125 +R-HSA-202733 +R-HSA-9793380 +R-HSA-442755 +R-HSA-3229133 +R-HSA-4687000 +R-HSA-9033658 +R-HSA-6783310 +R-HSA-456926 +R-HSA-3359457 +R-HSA-163685 +R-HSA-9665249 +R-HSA-5579005 +R-HSA-2142753 +R-HSA-9717316 +R-HSA-4085011 +R-HSA-5578999 +R-HSA-114508 +R-HSA-2408522 +R-HSA-4043911 +R-HSA-5683329 +R-HSA-2892247 +R-HSA-5688031 +R-HSA-376176 +R-HSA-5683371 +R-HSA-5659996 +R-HSA-5083629 +R-HSA-4085377 +R-HSA-8853884 +R-HSA-5603029 +R-HSA-4551638 +R-HSA-75153 +R-HSA-9033500 +R-HSA-9717264 +R-HSA-74158 +R-HSA-448424 +R-HSA-391160 +R-HSA-2660825 +R-HSA-5683826 +R-HSA-9603798 +R-HSA-428359 +R-HSA-9022537 +R-HSA-8936459 +R-HSA-9013694 +R-HSA-8939902 +R-HSA-1268020 +R-HSA-9616222 +R-HSA-9673240 +R-HSA-9702590 +R-HSA-1502540 +R-HSA-9646303 +R-HSA-6783783 +R-HSA-5688849 +R-HSA-9665251 +R-HSA-5688399 +R-HSA-9725370 +R-HSA-9608287 +R-HSA-9674401 +R-HSA-3359469 +R-HSA-8934593 +R-HSA-9827857 +R-HSA-449836 +R-HSA-76009 +R-HSA-3595174 +R-HSA-982772 +R-HSA-74752 +R-HSA-392518 +R-HSA-5683678 +R-HSA-6805567 +R-HSA-5632927 +R-HSA-8878166 +R-HSA-5619048 +R-HSA-451927 +R-HSA-5619062 +R-HSA-196071 +R-HSA-9664565 +R-HSA-2453864 +R-HSA-9707616 +R-HSA-9674403 +R-HSA-9702577 +R-HSA-168643 +R-HSA-9619665 +R-HSA-400253 +R-HSA-5628897 +R-HSA-189445 +R-HSA-9717319 +R-HSA-4755609 +R-HSA-194068 +R-HSA-5619083 +R-HSA-5358508 +R-HSA-5579009 +R-HSA-5684045 +R-HSA-5357609 +R-HSA-9693928 +R-HSA-9672387 +R-HSA-5579032 +R-HSA-9646304 +R-HSA-5655332 +R-HSA-5659729 +R-HSA-193704 +R-HSA-5579021 +R-HSA-3359462 +R-HSA-1169408 +R-HSA-5678895 +R-HSA-9024446 +R-HSA-5340588 +R-HSA-9634285 +R-HSA-4839726 +R-HSA-9670615 +R-HSA-5679001 +R-HSA-5682910 +R-HSA-8854214 +R-HSA-6804760 +R-HSA-2978092 +R-HSA-5619050 +R-HSA-512988 +R-HSA-77289 +R-HSA-166166 +R-HSA-2894858 +R-HSA-1483249 +R-HSA-983712 +R-HSA-2559580 +R-HSA-5619096 +R-HSA-9665230 +R-HSA-9645722 +R-HSA-165159 +R-HSA-3238698 +R-HSA-8963693 +R-HSA-8878171 +R-HSA-9678108 +R-HSA-8964539 +R-HSA-1433557 +R-HSA-1428517 +R-HSA-448706 +R-HSA-112314 +R-HSA-9701190 +R-HSA-3311021 +R-HSA-445355 +R-HSA-5657562 +R-HSA-8951664 +R-HSA-4570571 +R-HSA-9700645 +R-HSA-1912422 +R-HSA-5679096 +R-HSA-5579017 +R-HSA-8948216 +R-HSA-212436 +R-HSA-382556 +R-HSA-1980143 +R-HSA-9669934 +R-HSA-9702605 +R-HSA-5358751 +R-HSA-9733709 +R-HSA-428157 +R-HSA-9609646 +R-HSA-5660883 +R-HSA-5657560 +R-HSA-140877 +R-HSA-1266695 +R-HSA-373076 +R-HSA-5619044 +R-HSA-5619108 +R-HSA-1257604 +R-HSA-774815 +R-HSA-5693571 +R-HSA-391251 +R-HSA-5619076 +R-HSA-5668541 +R-HSA-9661070 +R-HSA-8863678 +R-HSA-8978934 +R-HSA-380994 +R-HSA-3858494 +R-HSA-168164 +R-HSA-8982491 +R-HSA-2691230 +R-HSA-6804759 +R-HSA-1237044 +R-HSA-5619055 +R-HSA-5619039 +R-HSA-1222556 +R-HSA-75072 +R-HSA-8853383 +R-HSA-5619107 +R-HSA-8964540 +R-HSA-9759476 +R-HSA-8939211 +R-HSA-6804756 +R-HSA-1483206 +R-HSA-881907 +R-HSA-381753 +R-HSA-9754706 +R-HSA-5653890 +R-HSA-5687868 +R-HSA-3814836 +R-HSA-2022090 +R-HSA-1834949 +R-HSA-912446 +R-HSA-5619109 +R-HSA-9735763 +R-HSA-5619114 +R-HSA-68875 +R-HSA-9639288 +R-HSA-4615885 +R-HSA-9664873 +R-HSA-9764302 +R-HSA-9749641 +R-HSA-162909 +R-HSA-427413 +R-HSA-5083628 +R-HSA-5619063 +R-HSA-5619037 +R-HSA-9706377 +R-HSA-168898 +R-HSA-1368071 +R-HSA-977443 +R-HSA-888590 +R-HSA-4420332 +R-HSA-1442490 +R-HSA-9704331 +R-HSA-4793952 +R-HSA-525793 +R-HSA-5619111 +R-HSA-195253 +R-HSA-75158 +R-HSA-975155 +R-HSA-3274531 diff --git a/projects/ngx-reactome-diagram/src/assets/data/diagrams-dev.txt b/projects/ngx-reactome-diagram/src/assets/data/diagrams-dev.txt new file mode 100644 index 0000000..6f3b5ac --- /dev/null +++ b/projects/ngx-reactome-diagram/src/assets/data/diagrams-dev.txt @@ -0,0 +1,1180 @@ +"R-HSA-109581", +"R-HSA-109582", +"R-HSA-109606", +"R-HSA-109704", +"R-HSA-111885", +"R-HSA-112307", +"R-HSA-112308", +"R-HSA-112310", +"R-HSA-112311", +"R-HSA-112313", +"R-HSA-112314", +"R-HSA-112315", +"R-HSA-112316", +"R-HSA-112409", +"R-HSA-114508", +"R-HSA-114604", +"R-HSA-1169408", +"R-HSA-1169410", +"R-HSA-1170546", +"R-HSA-1181150", +"R-HSA-1187000", +"R-HSA-1221632", +"R-HSA-1222499", +"R-HSA-1222556", +"R-HSA-1226099", +"R-HSA-1227986", +"R-HSA-1227990", +"R-HSA-1234174", +"R-HSA-1236394", +"R-HSA-1237044", +"R-HSA-1247673", +"R-HSA-1257604", +"R-HSA-1266695", +"R-HSA-1266738", +"R-HSA-1268020", +"R-HSA-1280215", +"R-HSA-1280218", +"R-HSA-1296071", +"R-HSA-1362409", +"R-HSA-1368071", +"R-HSA-1368082", +"R-HSA-1368108", +"R-HSA-140534", +"R-HSA-140877", +"R-HSA-1428517", +"R-HSA-1430728", +"R-HSA-1433557", +"R-HSA-1442490", +"R-HSA-1445148", +"R-HSA-1461973", +"R-HSA-1474165", +"R-HSA-1474228", +"R-HSA-1474244", +"R-HSA-1474290", +"R-HSA-1475029", +"R-HSA-1480926", +"R-HSA-1483206", +"R-HSA-1483249", +"R-HSA-1483255", +"R-HSA-1483257", +"R-HSA-1489509", +"R-HSA-1500620", +"R-HSA-1500931", +"R-HSA-1502540", +"R-HSA-156580", +"R-HSA-1566948", +"R-HSA-156842", +"R-HSA-157118", +"R-HSA-157579", +"R-HSA-157858", +"R-HSA-15869", +"R-HSA-1592230", +"R-HSA-1592389", +"R-HSA-1614635", +"R-HSA-162582", +"R-HSA-162587", +"R-HSA-162906", +"R-HSA-162909", +"R-HSA-1630316", +"R-HSA-163125", +"R-HSA-163200", +"R-HSA-1632852", +"R-HSA-163685", +"R-HSA-163841", +"R-HSA-1640170", +"R-HSA-1643685", +"R-HSA-1643713", +"R-HSA-1650814", +"R-HSA-165159", +"R-HSA-1655829", +"R-HSA-166058", +"R-HSA-166166", +"R-HSA-166520", +"R-HSA-166658", +"R-HSA-167060", +"R-HSA-1679131", +"R-HSA-168164", +"R-HSA-168249", +"R-HSA-168255", +"R-HSA-168256", +"R-HSA-168643", +"R-HSA-168799", +"R-HSA-168898", +"R-HSA-168928", +"R-HSA-169911", +"R-HSA-170834", +"R-HSA-174824", +"R-HSA-177929", +"R-HSA-1799339", +"R-HSA-181431", +"R-HSA-1834949", +"R-HSA-1852241", +"R-HSA-186712", +"R-HSA-186797", +"R-HSA-187037", +"R-HSA-189200", +"R-HSA-189445", +"R-HSA-190236", +"R-HSA-1912422", +"R-HSA-191273", +"R-HSA-193704", +"R-HSA-194068", +"R-HSA-194138", +"R-HSA-194315", +"R-HSA-194441", +"R-HSA-195253", +"R-HSA-195258", +"R-HSA-195721", +"R-HSA-196071", +"R-HSA-196757", +"R-HSA-196791", +"R-HSA-196807", +"R-HSA-196849", +"R-HSA-196854", +"R-HSA-1980143", +"R-HSA-1980145", +"R-HSA-198933", +"R-HSA-199977", +"R-HSA-199991", +"R-HSA-199992", +"R-HSA-200425", +"R-HSA-201451", +"R-HSA-201556", +"R-HSA-201681", +"R-HSA-202131", +"R-HSA-2022090", +"R-HSA-2022377", +"R-HSA-202403", +"R-HSA-202733", +"R-HSA-2028269", +"R-HSA-2029480", +"R-HSA-2032785", +"R-HSA-204005", +"R-HSA-2046104", +"R-HSA-209776", +"R-HSA-209952", +"R-HSA-211000", +"R-HSA-211859", +"R-HSA-211945", +"R-HSA-212165", +"R-HSA-212300", +"R-HSA-212436", +"R-HSA-2132295", +"R-HSA-2142700", +"R-HSA-2142753", +"R-HSA-2160456", +"R-HSA-216083", +"R-HSA-2161522", +"R-HSA-2162123", +"R-HSA-2172127", +"R-HSA-2173782", +"R-HSA-2173793", +"R-HSA-2187338", +"R-HSA-2206280", +"R-HSA-2206281", +"R-HSA-2206282", +"R-HSA-2206285", +"R-HSA-2206290", +"R-HSA-2206291", +"R-HSA-2206292", +"R-HSA-2206296", +"R-HSA-2206302", +"R-HSA-2206305", +"R-HSA-2206307", +"R-HSA-2206308", +"R-HSA-2219528", +"R-HSA-2219530", +"R-HSA-2262752", +"R-HSA-2404192", +"R-HSA-2408522", +"R-HSA-2426168", +"R-HSA-2453864", +"R-HSA-2454202", +"R-HSA-2474795", +"R-HSA-2555396", +"R-HSA-2559580", +"R-HSA-2559582", +"R-HSA-2559583", +"R-HSA-2559585", +"R-HSA-2559586", +"R-HSA-2564830", +"R-HSA-2586552", +"R-HSA-2644602", +"R-HSA-2644603", +"R-HSA-2644605", +"R-HSA-264876", +"R-HSA-2660825", +"R-HSA-2682334", +"R-HSA-2691230", +"R-HSA-2892245", +"R-HSA-2892247", +"R-HSA-2894858", +"R-HSA-2978092", +"R-HSA-2980736", +"R-HSA-2990846", +"R-HSA-3000170", +"R-HSA-3108214", +"R-HSA-3108232", +"R-HSA-3215018", +"R-HSA-3229121", +"R-HSA-3229133", +"R-HSA-3232118", +"R-HSA-3232142", +"R-HSA-3238698", +"R-HSA-3274531", +"R-HSA-3282872", +"R-HSA-3296469", +"R-HSA-3296482", +"R-HSA-3299685", +"R-HSA-3304347", +"R-HSA-3304349", +"R-HSA-3304351", +"R-HSA-3304356", +"R-HSA-3311021", +"R-HSA-3315487", +"R-HSA-3323169", +"R-HSA-3359454", +"R-HSA-3359457", +"R-HSA-3359462", +"R-HSA-3359463", +"R-HSA-3359467", +"R-HSA-3359469", +"R-HSA-3359471", +"R-HSA-3359473", +"R-HSA-3359474", +"R-HSA-3359475", +"R-HSA-3359485", +"R-HSA-3371497", +"R-HSA-3371556", +"R-HSA-3371598", +"R-HSA-3371599", +"R-HSA-351202", +"R-HSA-354192", +"R-HSA-3560782", +"R-HSA-3560783", +"R-HSA-3560792", +"R-HSA-3560796", +"R-HSA-3560801", +"R-HSA-3595172", +"R-HSA-3595174", +"R-HSA-3595177", +"R-HSA-3642278", +"R-HSA-3642279", +"R-HSA-3645790", +"R-HSA-3656225", +"R-HSA-3656234", +"R-HSA-3656237", +"R-HSA-3656243", +"R-HSA-3656244", +"R-HSA-3656248", +"R-HSA-3656253", +"R-HSA-3656532", +"R-HSA-3656534", +"R-HSA-3656535", +"R-HSA-3700989", +"R-HSA-372790", +"R-HSA-373076", +"R-HSA-373080", +"R-HSA-373752", +"R-HSA-373753", +"R-HSA-373755", +"R-HSA-373760", +"R-HSA-375165", +"R-HSA-376176", +"R-HSA-3781860", +"R-HSA-3781865", +"R-HSA-3785653", +"R-HSA-379724", +"R-HSA-380972", +"R-HSA-380994", +"R-HSA-381038", +"R-HSA-381119", +"R-HSA-381183", +"R-HSA-381340", +"R-HSA-381426", +"R-HSA-3814836", +"R-HSA-381753", +"R-HSA-382551", +"R-HSA-382556", +"R-HSA-3828062", +"R-HSA-3858494", +"R-HSA-3858516", +"R-HSA-3878781", +"R-HSA-388396", +"R-HSA-388841", +"R-HSA-388844", +"R-HSA-389661", +"R-HSA-3899300", +"R-HSA-390522", +"R-HSA-3906995", +"R-HSA-390918", +"R-HSA-391160", +"R-HSA-391251", +"R-HSA-392499", +"R-HSA-392517", +"R-HSA-392518", +"R-HSA-397014", +"R-HSA-397795", +"R-HSA-399721", +"R-HSA-400206", +"R-HSA-400253", +"R-HSA-400508", +"R-HSA-4043911", +"R-HSA-4043916", +"R-HSA-4085001", +"R-HSA-4085011", +"R-HSA-4085023", +"R-HSA-4085377", +"R-HSA-4090294", +"R-HSA-416476", +"R-HSA-416482", +"R-HSA-418346", +"R-HSA-418555", +"R-HSA-418594", +"R-HSA-418597", +"R-HSA-418889", +"R-HSA-420499", +"R-HSA-422085", +"R-HSA-422475", +"R-HSA-425366", +"R-HSA-425393", +"R-HSA-425397", +"R-HSA-425407", +"R-HSA-427359", +"R-HSA-427389", +"R-HSA-427413", +"R-HSA-428157", +"R-HSA-428359", +"R-HSA-429914", +"R-HSA-430116", +"R-HSA-432030", +"R-HSA-432040", +"R-HSA-432047", +"R-HSA-4341670", +"R-HSA-4420332", +"R-HSA-442755", +"R-HSA-445355", +"R-HSA-445717", +"R-HSA-445989", +"R-HSA-446203", +"R-HSA-446652", +"R-HSA-446728", +"R-HSA-447115", +"R-HSA-448424", +"R-HSA-448706", +"R-HSA-449147", +"R-HSA-449836", +"R-HSA-450282", +"R-HSA-450294", +"R-HSA-450531", +"R-HSA-451326", +"R-HSA-451927", +"R-HSA-452723", +"R-HSA-453274", +"R-HSA-453276", +"R-HSA-453279", +"R-HSA-4549349", +"R-HSA-4549356", +"R-HSA-4549380", +"R-HSA-4551295", +"R-HSA-4551638", +"R-HSA-456926", +"R-HSA-4570464", +"R-HSA-4570571", +"R-HSA-4615885", +"R-HSA-4655427", +"R-HSA-4687000", +"R-HSA-4717374", +"R-HSA-4719360", +"R-HSA-4719377", +"R-HSA-4720454", +"R-HSA-4720475", +"R-HSA-4720489", +"R-HSA-4724289", +"R-HSA-4724325", +"R-HSA-4755510", +"R-HSA-4755579", +"R-HSA-4755583", +"R-HSA-4755609", +"R-HSA-4791275", +"R-HSA-4793950", +"R-HSA-4793952", +"R-HSA-4793953", +"R-HSA-4793954", +"R-HSA-4839726", +"R-HSA-4839735", +"R-HSA-4839743", +"R-HSA-4839744", +"R-HSA-4839748", +"R-HSA-499943", +"R-HSA-500792", +"R-HSA-5083625", +"R-HSA-5083627", +"R-HSA-5083628", +"R-HSA-5083629", +"R-HSA-5083630", +"R-HSA-5083632", +"R-HSA-5083633", +"R-HSA-5083635", +"R-HSA-5083636", +"R-HSA-512988", +"R-HSA-5173105", +"R-HSA-5205647", +"R-HSA-5210891", +"R-HSA-5213460", +"R-HSA-5218859", +"R-HSA-5221030", +"R-HSA-5223345", +"R-HSA-5250913", +"R-HSA-5250924", +"R-HSA-5250941", +"R-HSA-525793", +"R-HSA-5260271", +"R-HSA-5334118", +"R-HSA-5336415", +"R-HSA-5339562", +"R-HSA-5339700", +"R-HSA-5339716", +"R-HSA-5339717", +"R-HSA-5340573", +"R-HSA-5340588", +"R-HSA-5357609", +"R-HSA-5357769", +"R-HSA-5357801", +"R-HSA-5358346", +"R-HSA-5358351", +"R-HSA-5358508", +"R-HSA-5358747", +"R-HSA-5358749", +"R-HSA-5358751", +"R-HSA-5358752", +"R-HSA-5362517", +"R-HSA-5362768", +"R-HSA-5368287", +"R-HSA-5387390", +"R-HSA-5423599", +"R-HSA-5423646", +"R-HSA-5467333", +"R-HSA-5467337", +"R-HSA-5467340", +"R-HSA-5467343", +"R-HSA-5467345", +"R-HSA-5467348", +"R-HSA-5545483", +"R-HSA-5545619", +"R-HSA-556833", +"R-HSA-5576891", +"R-HSA-5578995", +"R-HSA-5578996", +"R-HSA-5578997", +"R-HSA-5578998", +"R-HSA-5578999", +"R-HSA-5579000", +"R-HSA-5579002", +"R-HSA-5579004", +"R-HSA-5579005", +"R-HSA-5579006", +"R-HSA-5579007", +"R-HSA-5579009", +"R-HSA-5579010", +"R-HSA-5579011", +"R-HSA-5579012", +"R-HSA-5579013", +"R-HSA-5579014", +"R-HSA-5579015", +"R-HSA-5579016", +"R-HSA-5579017", +"R-HSA-5579019", +"R-HSA-5579020", +"R-HSA-5579021", +"R-HSA-5579022", +"R-HSA-5579024", +"R-HSA-5579026", +"R-HSA-5579027", +"R-HSA-5579028", +"R-HSA-5579029", +"R-HSA-5579030", +"R-HSA-5579031", +"R-HSA-5579032", +"R-HSA-5602358", +"R-HSA-5602410", +"R-HSA-5602415", +"R-HSA-5602498", +"R-HSA-5602566", +"R-HSA-5602571", +"R-HSA-5602636", +"R-HSA-5602680", +"R-HSA-5603027", +"R-HSA-5603029", +"R-HSA-5603037", +"R-HSA-5603041", +"R-HSA-5609974", +"R-HSA-5609975", +"R-HSA-5609976", +"R-HSA-5609977", +"R-HSA-5609978", +"R-HSA-5610787", +"R-HSA-5617472", +"R-HSA-5617833", +"R-HSA-5619035", +"R-HSA-5619036", +"R-HSA-5619037", +"R-HSA-5619039", +"R-HSA-5619040", +"R-HSA-5619041", +"R-HSA-5619042", +"R-HSA-5619043", +"R-HSA-5619044", +"R-HSA-5619045", +"R-HSA-5619046", +"R-HSA-5619047", +"R-HSA-5619048", +"R-HSA-5619049", +"R-HSA-5619050", +"R-HSA-5619052", +"R-HSA-5619053", +"R-HSA-5619054", +"R-HSA-5619055", +"R-HSA-5619056", +"R-HSA-5619058", +"R-HSA-5619060", +"R-HSA-5619061", +"R-HSA-5619062", +"R-HSA-5619063", +"R-HSA-5619066", +"R-HSA-5619067", +"R-HSA-5619068", +"R-HSA-5619070", +"R-HSA-5619071", +"R-HSA-5619072", +"R-HSA-5619073", +"R-HSA-5619076", +"R-HSA-5619077", +"R-HSA-5619078", +"R-HSA-5619079", +"R-HSA-5619081", +"R-HSA-5619083", +"R-HSA-5619084", +"R-HSA-5619085", +"R-HSA-5619087", +"R-HSA-5619088", +"R-HSA-5619089", +"R-HSA-5619092", +"R-HSA-5619094", +"R-HSA-5619095", +"R-HSA-5619096", +"R-HSA-5619097", +"R-HSA-5619098", +"R-HSA-5619099", +"R-HSA-5619101", +"R-HSA-5619102", +"R-HSA-5619104", +"R-HSA-5619107", +"R-HSA-5619108", +"R-HSA-5619109", +"R-HSA-5619110", +"R-HSA-5619111", +"R-HSA-5619113", +"R-HSA-5619114", +"R-HSA-5619115", +"R-HSA-5619507", +"R-HSA-5620971", +"R-HSA-5621481", +"R-HSA-5625740", +"R-HSA-5625886", +"R-HSA-5625900", +"R-HSA-5625970", +"R-HSA-5626467", +"R-HSA-5627083", +"R-HSA-5627117", +"R-HSA-5627123", +"R-HSA-5628897", +"R-HSA-5632684", +"R-HSA-5632927", +"R-HSA-5632928", +"R-HSA-5632968", +"R-HSA-5632987", +"R-HSA-5633007", +"R-HSA-5633008", +"R-HSA-5633231", +"R-HSA-5637812", +"R-HSA-5637815", +"R-HSA-5638302", +"R-HSA-5652084", +"R-HSA-5653656", +"R-HSA-5653890", +"R-HSA-5654736", +"R-HSA-5654738", +"R-HSA-5654741", +"R-HSA-5654743", +"R-HSA-5655253", +"R-HSA-5655291", +"R-HSA-5655302", +"R-HSA-5655332", +"R-HSA-5655799", +"R-HSA-5656364", +"R-HSA-5657560", +"R-HSA-5657562", +"R-HSA-5658034", +"R-HSA-5658208", +"R-HSA-5658471", +"R-HSA-5659729", +"R-HSA-5659735", +"R-HSA-5659898", +"R-HSA-5659996", +"R-HSA-5660489", +"R-HSA-5660526", +"R-HSA-5660686", +"R-HSA-5660724", +"R-HSA-5660862", +"R-HSA-5660883", +"R-HSA-5661231", +"R-HSA-5661270", +"R-HSA-5662702", +"R-HSA-5662853", +"R-HSA-5663020", +"R-HSA-5663084", +"R-HSA-5663202", +"R-HSA-5663205", +"R-HSA-5663213", +"R-HSA-5663220", +"R-HSA-5666185", +"R-HSA-5668541", +"R-HSA-5668599", +"R-HSA-5668914", +"R-HSA-5669034", +"R-HSA-5673001", +"R-HSA-5674400", +"R-HSA-5674404", +"R-HSA-5676590", +"R-HSA-5676934", +"R-HSA-5678420", +"R-HSA-5678520", +"R-HSA-5678771", +"R-HSA-5678895", +"R-HSA-5679001", +"R-HSA-5679090", +"R-HSA-5679096", +"R-HSA-5682113", +"R-HSA-5682294", +"R-HSA-5682910", +"R-HSA-5683057", +"R-HSA-5683177", +"R-HSA-5683329", +"R-HSA-5683371", +"R-HSA-5683678", +"R-HSA-5683826", +"R-HSA-5684045", +"R-HSA-5684996", +"R-HSA-5685939", +"R-HSA-5686938", +"R-HSA-5687128", +"R-HSA-5687583", +"R-HSA-5687613", +"R-HSA-5687868", +"R-HSA-5688031", +"R-HSA-5688354", +"R-HSA-5688399", +"R-HSA-5688426", +"R-HSA-5688849", +"R-HSA-5688890", +"R-HSA-5690338", +"R-HSA-5693532", +"R-HSA-5693538", +"R-HSA-5693567", +"R-HSA-5693571", +"R-HSA-5693606", +"R-HSA-5694530", +"R-HSA-5696398", +"R-HSA-597592", +"R-HSA-6782315", +"R-HSA-6782861", +"R-HSA-6783310", +"R-HSA-6783589", +"R-HSA-6783783", +"R-HSA-6784531", +"R-HSA-6785470", +"R-HSA-6785807", +"R-HSA-6787450", +"R-HSA-6790901", +"R-HSA-6791055", +"R-HSA-6791226", +"R-HSA-6791312", +"R-HSA-6791461", +"R-HSA-6791462", +"R-HSA-6791465", +"R-HSA-6793080", +"R-HSA-6794361", +"R-HSA-6794362", +"R-HSA-6796648", +"R-HSA-6798163", +"R-HSA-6798695", +"R-HSA-6802946", +"R-HSA-6802948", +"R-HSA-6802949", +"R-HSA-6802952", +"R-HSA-6802953", +"R-HSA-6802955", +"R-HSA-6802957", +"R-HSA-6803157", +"R-HSA-6804756", +"R-HSA-6804758", +"R-HSA-6804759", +"R-HSA-6804760", +"R-HSA-6805567", +"R-HSA-6806003", +"R-HSA-6806664", +"R-HSA-6806667", +"R-HSA-6806834", +"R-HSA-6807070", +"R-HSA-6807505", +"R-HSA-6807878", +"R-HSA-6809583", +"R-HSA-6811442", +"R-HSA-68875", +"R-HSA-68877", +"R-HSA-68884", +"R-HSA-68886", +"R-HSA-68962", +"R-HSA-69002", +"R-HSA-69239", +"R-HSA-69242", +"R-HSA-69278", +"R-HSA-69306", +"R-HSA-69620", +"R-HSA-70326", +"R-HSA-70370", +"R-HSA-70635", +"R-HSA-70688", +"R-HSA-70895", +"R-HSA-70921", +"R-HSA-71064", +"R-HSA-71240", +"R-HSA-71262", +"R-HSA-71288", +"R-HSA-71291", +"R-HSA-71336", +"R-HSA-71387", +"R-HSA-71737", +"R-HSA-72086", +"R-HSA-72203", +"R-HSA-72306", +"R-HSA-72312", +"R-HSA-72613", +"R-HSA-72764", +"R-HSA-72766", +"R-HSA-73857", +"R-HSA-73864", +"R-HSA-73884", +"R-HSA-73886", +"R-HSA-73887", +"R-HSA-73893", +"R-HSA-73894", +"R-HSA-73929", +"R-HSA-73933", +"R-HSA-73942", +"R-HSA-74158", +"R-HSA-74160", +"R-HSA-74182", +"R-HSA-74752", +"R-HSA-75067", +"R-HSA-75072", +"R-HSA-75105", +"R-HSA-75153", +"R-HSA-75157", +"R-HSA-75158", +"R-HSA-75205", +"R-HSA-75892", +"R-HSA-75893", +"R-HSA-75944", +"R-HSA-76002", +"R-HSA-76005", +"R-HSA-76009", +"R-HSA-77289", +"R-HSA-774815", +"R-HSA-877300", +"R-HSA-879415", +"R-HSA-881907", +"R-HSA-8848021", +"R-HSA-8848584", +"R-HSA-8849175", +"R-HSA-8849932", +"R-HSA-8851680", +"R-HSA-8852135", +"R-HSA-8852405", +"R-HSA-8853383", +"R-HSA-8853659", +"R-HSA-8853884", +"R-HSA-8854214", +"R-HSA-8854691", +"R-HSA-8856825", +"R-HSA-8856828", +"R-HSA-8862803", +"R-HSA-8863678", +"R-HSA-8864260", +"R-HSA-8866376", +"R-HSA-8866654", +"R-HSA-8868773", +"R-HSA-8873719", +"R-HSA-8876198", +"R-HSA-8876384", +"R-HSA-8876725", +"R-HSA-8877330", +"R-HSA-8877627", +"R-HSA-8878159", +"R-HSA-8878166", +"R-HSA-8878171", +"R-HSA-888590", +"R-HSA-8934593", +"R-HSA-8935690", +"R-HSA-8936459", +"R-HSA-8937144", +"R-HSA-8939211", +"R-HSA-8939902", +"R-HSA-8941413", +"R-HSA-8942233", +"R-HSA-8948216", +"R-HSA-8949215", +"R-HSA-8949613", +"R-HSA-8949664", +"R-HSA-8950505", +"R-HSA-8951664", +"R-HSA-8953750", +"R-HSA-8953854", +"R-HSA-8953897", +"R-HSA-8955332", +"R-HSA-8956319", +"R-HSA-8956320", +"R-HSA-8956321", +"R-HSA-8957275", +"R-HSA-8957322", +"R-HSA-8963676", +"R-HSA-8963691", +"R-HSA-8963693", +"R-HSA-8963743", +"R-HSA-8964539", +"R-HSA-8964540", +"R-HSA-8964572", +"R-HSA-8978868", +"R-HSA-8978934", +"R-HSA-8979227", +"R-HSA-8981607", +"R-HSA-8982491", +"R-HSA-8983432", +"R-HSA-8983711", +"R-HSA-8985947", +"R-HSA-8986944", +"R-HSA-9005891", +"R-HSA-9005895", +"R-HSA-9006115", +"R-HSA-9006335", +"R-HSA-9006821", +"R-HSA-9006925", +"R-HSA-9006927", +"R-HSA-9006931", +"R-HSA-9006934", +"R-HSA-9006936", +"R-HSA-9007101", +"R-HSA-9009391", +"R-HSA-9012852", +"R-HSA-9012999", +"R-HSA-9013694", +"R-HSA-9018677", +"R-HSA-9018678", +"R-HSA-9018679", +"R-HSA-9018683", +"R-HSA-9022534", +"R-HSA-9022535", +"R-HSA-9022537", +"R-HSA-9022538", +"R-HSA-9024446", +"R-HSA-9027604", +"R-HSA-9031628", +"R-HSA-9033241", +"R-HSA-9033500", +"R-HSA-9033658", +"R-HSA-9034015", +"R-HSA-9035968", +"R-HSA-9036092", +"R-HSA-9036866", +"R-HSA-909733", +"R-HSA-912446", +"R-HSA-913531", +"R-HSA-917729", +"R-HSA-917937", +"R-HSA-927802", +"R-HSA-9603798", +"R-HSA-9605308", +"R-HSA-9605310", +"R-HSA-9607240", +"R-HSA-9608287", +"R-HSA-9608290", +"R-HSA-9609507", +"R-HSA-9609523", +"R-HSA-9609646", +"R-HSA-9609736", +"R-HSA-9612973", +"R-HSA-9613354", +"R-HSA-9613829", +"R-HSA-9614085", +"R-HSA-9614657", +"R-HSA-9615017", +"R-HSA-9615710", +"R-HSA-9616222", +"R-HSA-9616333", +"R-HSA-9616334", +"R-HSA-9617828", +"R-HSA-9619665", +"R-HSA-9629232", +"R-HSA-9630221", +"R-HSA-9630222", +"R-HSA-9630747", +"R-HSA-9630750", +"R-HSA-9630791", +"R-HSA-9630794", +"R-HSA-9632693", +"R-HSA-9632697", +"R-HSA-9632700", +"R-HSA-9633012", +"R-HSA-9634285", +"R-HSA-9634597", +"R-HSA-9634815", +"R-HSA-9635486", +"R-HSA-9639288", +"R-HSA-9645135", +"R-HSA-9645460", +"R-HSA-9645722", +"R-HSA-9645723", +"R-HSA-9646303", +"R-HSA-9646304", +"R-HSA-9646399", +"R-HSA-9648002", +"R-HSA-9648895", +"R-HSA-9649913", +"R-HSA-9649948", +"R-HSA-9651496", +"R-HSA-9652169", +"R-HSA-9652817", +"R-HSA-9656223", +"R-HSA-9656249", +"R-HSA-9656255", +"R-HSA-9656256", +"R-HSA-9657050", +"R-HSA-9657688", +"R-HSA-9657689", +"R-HSA-9658195", +"R-HSA-9659379", +"R-HSA-9659787", +"R-HSA-9660537", +"R-HSA-9661069", +"R-HSA-9661070", +"R-HSA-9662001", +"R-HSA-9662360", +"R-HSA-9662361", +"R-HSA-9662851", +"R-HSA-9663199", +"R-HSA-9663891", +"R-HSA-9664407", +"R-HSA-9664417", +"R-HSA-9664420", +"R-HSA-9664422", +"R-HSA-9664424", +"R-HSA-9664433", +"R-HSA-9664565", +"R-HSA-9664873", +"R-HSA-9665230", +"R-HSA-9665233", +"R-HSA-9665244", +"R-HSA-9665245", +"R-HSA-9665246", +"R-HSA-9665247", +"R-HSA-9665249", +"R-HSA-9665250", +"R-HSA-9665251", +"R-HSA-9665348", +"R-HSA-9665686", +"R-HSA-9665737", +"R-HSA-9668250", +"R-HSA-9669914", +"R-HSA-9669917", +"R-HSA-9669921", +"R-HSA-9669924", +"R-HSA-9669926", +"R-HSA-9669929", +"R-HSA-9669933", +"R-HSA-9669934", +"R-HSA-9669935", +"R-HSA-9669936", +"R-HSA-9669937", +"R-HSA-9669938", +"R-HSA-9670439", +"R-HSA-9670613", +"R-HSA-9670615", +"R-HSA-9670621", +"R-HSA-9671555", +"R-HSA-9671793", +"R-HSA-9672383", +"R-HSA-9672387", +"R-HSA-9672391", +"R-HSA-9672393", +"R-HSA-9672395", +"R-HSA-9672396", +"R-HSA-9672397", +"R-HSA-9673013", +"R-HSA-9673202", +"R-HSA-9673218", +"R-HSA-9673221", +"R-HSA-9673240", +"R-HSA-9673324", +"R-HSA-9673766", +"R-HSA-9673767", +"R-HSA-9673768", +"R-HSA-9673770", +"R-HSA-9674396", +"R-HSA-9674401", +"R-HSA-9674403", +"R-HSA-9674404", +"R-HSA-9674415", +"R-HSA-9674428", +"R-HSA-9674519", +"R-HSA-9674555", +"R-HSA-9675108", +"R-HSA-9675126", +"R-HSA-9675132", +"R-HSA-9675135", +"R-HSA-9675136", +"R-HSA-9675143", +"R-HSA-9675151", +"R-HSA-9678108", +"R-HSA-9679191", +"R-HSA-9679506", +"R-HSA-9680187", +"R-HSA-9680350", +"R-HSA-9682385", +"R-HSA-9687136", +"R-HSA-9687139", +"R-HSA-9690406", +"R-HSA-9692914", +"R-HSA-9693928", +"R-HSA-9694516", +"R-HSA-9697154", +"R-HSA-9699150", +"R-HSA-9700206", +"R-HSA-9700645", +"R-HSA-9700649", +"R-HSA-9701190", +"R-HSA-9701192", +"R-HSA-9701193", +"R-HSA-9702506", +"R-HSA-9702509", +"R-HSA-9702569", +"R-HSA-9702577", +"R-HSA-9702581", +"R-HSA-9702590", +"R-HSA-9702596", +"R-HSA-9702600", +"R-HSA-9702605", +"R-HSA-9702614", +"R-HSA-9702620", +"R-HSA-9702624", +"R-HSA-9702632", +"R-HSA-9702636", +"R-HSA-9702998", +"R-HSA-9703009", +"R-HSA-9703465", +"R-HSA-9703648", +"R-HSA-9704331", +"R-HSA-9704646", +"R-HSA-9705683", +"R-HSA-9706019", +"R-HSA-9706377", +"R-HSA-9707564", +"R-HSA-9707616", +"R-HSA-9709275", +"R-HSA-9709570", +"R-HSA-9709603", +"R-HSA-9709957", +"R-HSA-9710421", +"R-HSA-9711097", +"R-HSA-9711123", +"R-HSA-9715370", +"R-HSA-9716542", +"R-HSA-9717189", +"R-HSA-9717264", +"R-HSA-9717301", +"R-HSA-9717316", +"R-HSA-9717319", +"R-HSA-9717323", +"R-HSA-9717326", +"R-HSA-9717329", +"R-HSA-9723905", +"R-HSA-9723907", +"R-HSA-9725370", +"R-HSA-9725554", +"R-HSA-9726840", +"R-HSA-9726842", +"R-HSA-9733709", +"R-HSA-9734009", +"R-HSA-9734195", +"R-HSA-9734207", +"R-HSA-9734281", +"R-HSA-9734735", +"R-HSA-9734767", +"R-HSA-9734779", +"R-HSA-9734781", +"R-HSA-9734796", +"R-HSA-9735763", +"R-HSA-9735786", +"R-HSA-9735804", +"R-HSA-9748784", +"R-HSA-9748787", +"R-HSA-9749641", +"R-HSA-975155", +"R-HSA-9752946", +"R-HSA-9753281", +"R-HSA-9753510", +"R-HSA-9753512", +"R-HSA-9754189", +"R-HSA-9754706", +"R-HSA-9755088", +"R-HSA-9755511", +"R-HSA-975634", +"R-HSA-9757110", +"R-HSA-975871", +"R-HSA-9758919", +"R-HSA-9758920", +"R-HSA-9758941", +"R-HSA-9759475", +"R-HSA-9759476", +"R-HSA-9759774", +"R-HSA-9761174", +"R-HSA-9763198", +"R-HSA-9764260", +"R-HSA-9764302", +"R-HSA-977225", +"R-HSA-9772572", +"R-HSA-9772573", +"R-HSA-9772755", +"R-HSA-977347", +"R-HSA-977443", +"R-HSA-9793242", +"R-HSA-9793380", +"R-HSA-9793528", +"R-HSA-9796292", +"R-HSA-9818025", +"R-HSA-9818027", +"R-HSA-9818028", +"R-HSA-9818749", +"R-HSA-9823730", +"R-HSA-9824272", +"R-HSA-9824439", +"R-HSA-9824443", +"R-HSA-9824446", +"R-HSA-982772", +"R-HSA-9827857", +"R-HSA-983169", +"R-HSA-983189", +"R-HSA-983231", +"R-HSA-983705", +"R-HSA-983712" diff --git a/projects/ngx-reactome-diagram/src/assets/data/diagrams-prod.txt b/projects/ngx-reactome-diagram/src/assets/data/diagrams-prod.txt new file mode 100644 index 0000000..6db0567 --- /dev/null +++ b/projects/ngx-reactome-diagram/src/assets/data/diagrams-prod.txt @@ -0,0 +1,1209 @@ +R-HSA-109581 +R-HSA-109582 +R-HSA-109606 +R-HSA-109704 +R-HSA-111885 +R-HSA-112307 +R-HSA-112308 +R-HSA-112310 +R-HSA-112311 +R-HSA-112313 +R-HSA-112314 +R-HSA-112315 +R-HSA-112316 +R-HSA-112409 +R-HSA-114508 +R-HSA-114604 +R-HSA-1169408 +R-HSA-1169410 +R-HSA-1170546 +R-HSA-1181150 +R-HSA-1187000 +R-HSA-1221632 +R-HSA-1222499 +R-HSA-1222556 +R-HSA-1226099 +R-HSA-1227986 +R-HSA-1227990 +R-HSA-1234174 +R-HSA-1236394 +R-HSA-1237044 +R-HSA-1247673 +R-HSA-1257604 +R-HSA-1266695 +R-HSA-1266738 +R-HSA-1268020 +R-HSA-1280215 +R-HSA-1280218 +R-HSA-1296071 +R-HSA-1362409 +R-HSA-1368071 +R-HSA-1368082 +R-HSA-1368108 +R-HSA-140534 +R-HSA-140877 +R-HSA-1428517 +R-HSA-1430728 +R-HSA-1433557 +R-HSA-1442490 +R-HSA-1445148 +R-HSA-1461973 +R-HSA-1474165 +R-HSA-1474228 +R-HSA-1474244 +R-HSA-1474290 +R-HSA-1475029 +R-HSA-1480926 +R-HSA-1483206 +R-HSA-1483249 +R-HSA-1483255 +R-HSA-1483257 +R-HSA-1489509 +R-HSA-1500620 +R-HSA-1500931 +R-HSA-1502540 +R-HSA-156580 +R-HSA-1566948 +R-HSA-156842 +R-HSA-157118 +R-HSA-157579 +R-HSA-157858 +R-HSA-15869 +R-HSA-1592230 +R-HSA-1592389 +R-HSA-1614635 +R-HSA-162582 +R-HSA-162587 +R-HSA-162906 +R-HSA-162909 +R-HSA-1630316 +R-HSA-163125 +R-HSA-163200 +R-HSA-1632852 +R-HSA-163685 +R-HSA-163841 +R-HSA-1640170 +R-HSA-1643685 +R-HSA-1643713 +R-HSA-1650814 +R-HSA-165159 +R-HSA-1655829 +R-HSA-166058 +R-HSA-166166 +R-HSA-166520 +R-HSA-166658 +R-HSA-167060 +R-HSA-1679131 +R-HSA-168164 +R-HSA-168249 +R-HSA-168255 +R-HSA-168256 +R-HSA-168643 +R-HSA-168799 +R-HSA-168898 +R-HSA-168928 +R-HSA-169911 +R-HSA-170834 +R-HSA-174824 +R-HSA-177929 +R-HSA-1799339 +R-HSA-181431 +R-HSA-1834949 +R-HSA-1852241 +R-HSA-186712 +R-HSA-186797 +R-HSA-187037 +R-HSA-189200 +R-HSA-189445 +R-HSA-190236 +R-HSA-1912422 +R-HSA-191273 +R-HSA-193704 +R-HSA-194068 +R-HSA-194138 +R-HSA-194315 +R-HSA-194441 +R-HSA-195253 +R-HSA-195258 +R-HSA-195721 +R-HSA-196071 +R-HSA-196757 +R-HSA-196791 +R-HSA-196807 +R-HSA-196849 +R-HSA-196854 +R-HSA-1980143 +R-HSA-1980145 +R-HSA-198933 +R-HSA-199977 +R-HSA-199991 +R-HSA-199992 +R-HSA-200425 +R-HSA-201451 +R-HSA-201556 +R-HSA-201681 +R-HSA-202131 +R-HSA-2022090 +R-HSA-2022377 +R-HSA-202403 +R-HSA-202733 +R-HSA-2028269 +R-HSA-2029480 +R-HSA-2032785 +R-HSA-204005 +R-HSA-2046104 +R-HSA-209776 +R-HSA-209952 +R-HSA-211000 +R-HSA-211859 +R-HSA-211945 +R-HSA-212165 +R-HSA-212300 +R-HSA-212436 +R-HSA-2132295 +R-HSA-2142700 +R-HSA-2142753 +R-HSA-2160456 +R-HSA-216083 +R-HSA-2161522 +R-HSA-2162123 +R-HSA-2172127 +R-HSA-2173782 +R-HSA-2173793 +R-HSA-2187338 +R-HSA-2206280 +R-HSA-2206281 +R-HSA-2206282 +R-HSA-2206285 +R-HSA-2206290 +R-HSA-2206291 +R-HSA-2206292 +R-HSA-2206296 +R-HSA-2206302 +R-HSA-2206305 +R-HSA-2206307 +R-HSA-2206308 +R-HSA-2219528 +R-HSA-2219530 +R-HSA-2262752 +R-HSA-2404192 +R-HSA-2408522 +R-HSA-2426168 +R-HSA-2453864 +R-HSA-2454202 +R-HSA-2474795 +R-HSA-2555396 +R-HSA-2559580 +R-HSA-2559582 +R-HSA-2559583 +R-HSA-2559585 +R-HSA-2559586 +R-HSA-2564830 +R-HSA-2586552 +R-HSA-2644602 +R-HSA-2644603 +R-HSA-2644605 +R-HSA-264876 +R-HSA-2660825 +R-HSA-2682334 +R-HSA-2691230 +R-HSA-2892245 +R-HSA-2892247 +R-HSA-2894858 +R-HSA-2978092 +R-HSA-2980736 +R-HSA-2990846 +R-HSA-3000170 +R-HSA-3108214 +R-HSA-3108232 +R-HSA-3215018 +R-HSA-3229121 +R-HSA-3229133 +R-HSA-3232118 +R-HSA-3232142 +R-HSA-3238698 +R-HSA-3274531 +R-HSA-3282872 +R-HSA-3296469 +R-HSA-3296482 +R-HSA-3299685 +R-HSA-3304347 +R-HSA-3304349 +R-HSA-3304351 +R-HSA-3304356 +R-HSA-3311021 +R-HSA-3315487 +R-HSA-3323169 +R-HSA-3359454 +R-HSA-3359457 +R-HSA-3359462 +R-HSA-3359463 +R-HSA-3359467 +R-HSA-3359469 +R-HSA-3359471 +R-HSA-3359473 +R-HSA-3359474 +R-HSA-3359475 +R-HSA-3359485 +R-HSA-3371497 +R-HSA-3371556 +R-HSA-3371598 +R-HSA-3371599 +R-HSA-351202 +R-HSA-354192 +R-HSA-3560782 +R-HSA-3560783 +R-HSA-3560792 +R-HSA-3560796 +R-HSA-3560801 +R-HSA-3595172 +R-HSA-3595174 +R-HSA-3595177 +R-HSA-3642278 +R-HSA-3642279 +R-HSA-3645790 +R-HSA-3656225 +R-HSA-3656234 +R-HSA-3656237 +R-HSA-3656243 +R-HSA-3656244 +R-HSA-3656248 +R-HSA-3656253 +R-HSA-3656532 +R-HSA-3656534 +R-HSA-3656535 +R-HSA-3700989 +R-HSA-372790 +R-HSA-373076 +R-HSA-373080 +R-HSA-373752 +R-HSA-373753 +R-HSA-373755 +R-HSA-373760 +R-HSA-375165 +R-HSA-376176 +R-HSA-3781860 +R-HSA-3781865 +R-HSA-3785653 +R-HSA-379724 +R-HSA-380972 +R-HSA-380994 +R-HSA-381038 +R-HSA-381119 +R-HSA-381183 +R-HSA-381340 +R-HSA-381426 +R-HSA-3814836 +R-HSA-381753 +R-HSA-382551 +R-HSA-382556 +R-HSA-3828062 +R-HSA-3858494 +R-HSA-3858516 +R-HSA-3878781 +R-HSA-388396 +R-HSA-388841 +R-HSA-388844 +R-HSA-389661 +R-HSA-3899300 +R-HSA-390522 +R-HSA-3906995 +R-HSA-390918 +R-HSA-391160 +R-HSA-391251 +R-HSA-392499 +R-HSA-392517 +R-HSA-392518 +R-HSA-397014 +R-HSA-397795 +R-HSA-399721 +R-HSA-400206 +R-HSA-400253 +R-HSA-400508 +R-HSA-4043911 +R-HSA-4043916 +R-HSA-4085001 +R-HSA-4085011 +R-HSA-4085023 +R-HSA-4085377 +R-HSA-4090294 +R-HSA-416476 +R-HSA-416482 +R-HSA-418346 +R-HSA-418555 +R-HSA-418594 +R-HSA-418597 +R-HSA-418889 +R-HSA-420499 +R-HSA-422085 +R-HSA-422475 +R-HSA-425366 +R-HSA-425393 +R-HSA-425397 +R-HSA-425407 +R-HSA-427359 +R-HSA-427389 +R-HSA-427413 +R-HSA-428157 +R-HSA-428359 +R-HSA-429914 +R-HSA-430116 +R-HSA-432030 +R-HSA-432040 +R-HSA-432047 +R-HSA-4341670 +R-HSA-4420332 +R-HSA-442755 +R-HSA-445355 +R-HSA-445717 +R-HSA-445989 +R-HSA-446203 +R-HSA-446652 +R-HSA-446728 +R-HSA-447115 +R-HSA-448424 +R-HSA-448706 +R-HSA-449147 +R-HSA-449836 +R-HSA-450282 +R-HSA-450294 +R-HSA-450531 +R-HSA-451326 +R-HSA-451927 +R-HSA-452723 +R-HSA-453274 +R-HSA-453276 +R-HSA-453279 +R-HSA-4549349 +R-HSA-4549356 +R-HSA-4549380 +R-HSA-4551295 +R-HSA-4551638 +R-HSA-456926 +R-HSA-4570464 +R-HSA-4570571 +R-HSA-4615885 +R-HSA-4655427 +R-HSA-4687000 +R-HSA-4717374 +R-HSA-4719360 +R-HSA-4719377 +R-HSA-4720454 +R-HSA-4720475 +R-HSA-4720489 +R-HSA-4724289 +R-HSA-4724325 +R-HSA-4755510 +R-HSA-4755579 +R-HSA-4755583 +R-HSA-4755609 +R-HSA-4791275 +R-HSA-4793950 +R-HSA-4793952 +R-HSA-4793953 +R-HSA-4793954 +R-HSA-4839726 +R-HSA-4839735 +R-HSA-4839743 +R-HSA-4839744 +R-HSA-4839748 +R-HSA-499943 +R-HSA-500792 +R-HSA-5083625 +R-HSA-5083627 +R-HSA-5083628 +R-HSA-5083629 +R-HSA-5083630 +R-HSA-5083632 +R-HSA-5083633 +R-HSA-5083635 +R-HSA-5083636 +R-HSA-512988 +R-HSA-5173105 +R-HSA-5205647 +R-HSA-5210891 +R-HSA-5213460 +R-HSA-5218859 +R-HSA-5221030 +R-HSA-5223345 +R-HSA-5250913 +R-HSA-5250924 +R-HSA-5250941 +R-HSA-525793 +R-HSA-5260271 +R-HSA-5334118 +R-HSA-5336415 +R-HSA-5339562 +R-HSA-5339700 +R-HSA-5339716 +R-HSA-5339717 +R-HSA-5340573 +R-HSA-5340588 +R-HSA-5357609 +R-HSA-5357769 +R-HSA-5357801 +R-HSA-5358346 +R-HSA-5358351 +R-HSA-5358508 +R-HSA-5358747 +R-HSA-5358749 +R-HSA-5358751 +R-HSA-5358752 +R-HSA-5362517 +R-HSA-5362768 +R-HSA-5368287 +R-HSA-5387390 +R-HSA-5423599 +R-HSA-5423646 +R-HSA-5467333 +R-HSA-5467337 +R-HSA-5467340 +R-HSA-5467343 +R-HSA-5467345 +R-HSA-5467348 +R-HSA-5545483 +R-HSA-5545619 +R-HSA-556833 +R-HSA-5576891 +R-HSA-5578995 +R-HSA-5578996 +R-HSA-5578997 +R-HSA-5578998 +R-HSA-5578999 +R-HSA-5579000 +R-HSA-5579002 +R-HSA-5579004 +R-HSA-5579005 +R-HSA-5579006 +R-HSA-5579007 +R-HSA-5579009 +R-HSA-5579010 +R-HSA-5579011 +R-HSA-5579012 +R-HSA-5579013 +R-HSA-5579014 +R-HSA-5579015 +R-HSA-5579016 +R-HSA-5579017 +R-HSA-5579019 +R-HSA-5579020 +R-HSA-5579021 +R-HSA-5579022 +R-HSA-5579024 +R-HSA-5579026 +R-HSA-5579027 +R-HSA-5579028 +R-HSA-5579029 +R-HSA-5579030 +R-HSA-5579031 +R-HSA-5579032 +R-HSA-5602358 +R-HSA-5602410 +R-HSA-5602415 +R-HSA-5602498 +R-HSA-5602566 +R-HSA-5602571 +R-HSA-5602636 +R-HSA-5602680 +R-HSA-5603027 +R-HSA-5603029 +R-HSA-5603037 +R-HSA-5603041 +R-HSA-5609974 +R-HSA-5609975 +R-HSA-5609976 +R-HSA-5609977 +R-HSA-5609978 +R-HSA-5610787 +R-HSA-5617472 +R-HSA-5617833 +R-HSA-5619035 +R-HSA-5619036 +R-HSA-5619037 +R-HSA-5619039 +R-HSA-5619040 +R-HSA-5619041 +R-HSA-5619042 +R-HSA-5619043 +R-HSA-5619044 +R-HSA-5619045 +R-HSA-5619046 +R-HSA-5619047 +R-HSA-5619048 +R-HSA-5619049 +R-HSA-5619050 +R-HSA-5619052 +R-HSA-5619053 +R-HSA-5619054 +R-HSA-5619055 +R-HSA-5619056 +R-HSA-5619058 +R-HSA-5619060 +R-HSA-5619061 +R-HSA-5619062 +R-HSA-5619063 +R-HSA-5619066 +R-HSA-5619067 +R-HSA-5619068 +R-HSA-5619070 +R-HSA-5619071 +R-HSA-5619072 +R-HSA-5619073 +R-HSA-5619076 +R-HSA-5619077 +R-HSA-5619078 +R-HSA-5619079 +R-HSA-5619081 +R-HSA-5619083 +R-HSA-5619084 +R-HSA-5619085 +R-HSA-5619087 +R-HSA-5619088 +R-HSA-5619089 +R-HSA-5619092 +R-HSA-5619094 +R-HSA-5619095 +R-HSA-5619096 +R-HSA-5619097 +R-HSA-5619098 +R-HSA-5619099 +R-HSA-5619101 +R-HSA-5619102 +R-HSA-5619104 +R-HSA-5619107 +R-HSA-5619108 +R-HSA-5619109 +R-HSA-5619110 +R-HSA-5619111 +R-HSA-5619113 +R-HSA-5619114 +R-HSA-5619115 +R-HSA-5619507 +R-HSA-5620971 +R-HSA-5621481 +R-HSA-5625740 +R-HSA-5625886 +R-HSA-5625900 +R-HSA-5625970 +R-HSA-5626467 +R-HSA-5627083 +R-HSA-5627117 +R-HSA-5627123 +R-HSA-5628897 +R-HSA-5632684 +R-HSA-5632927 +R-HSA-5632928 +R-HSA-5632968 +R-HSA-5632987 +R-HSA-5633007 +R-HSA-5633008 +R-HSA-5633231 +R-HSA-5637812 +R-HSA-5637815 +R-HSA-5638302 +R-HSA-5652084 +R-HSA-5653656 +R-HSA-5653890 +R-HSA-5654736 +R-HSA-5654738 +R-HSA-5654741 +R-HSA-5654743 +R-HSA-5655253 +R-HSA-5655291 +R-HSA-5655302 +R-HSA-5655332 +R-HSA-5655799 +R-HSA-5656364 +R-HSA-5657560 +R-HSA-5657562 +R-HSA-5658034 +R-HSA-5658208 +R-HSA-5658471 +R-HSA-5659729 +R-HSA-5659735 +R-HSA-5659898 +R-HSA-5659996 +R-HSA-5660489 +R-HSA-5660526 +R-HSA-5660686 +R-HSA-5660724 +R-HSA-5660862 +R-HSA-5660883 +R-HSA-5661231 +R-HSA-5661270 +R-HSA-5662702 +R-HSA-5662853 +R-HSA-5663020 +R-HSA-5663084 +R-HSA-5663202 +R-HSA-5663205 +R-HSA-5663213 +R-HSA-5663220 +R-HSA-5666185 +R-HSA-5668541 +R-HSA-5668599 +R-HSA-5668914 +R-HSA-5669034 +R-HSA-5673001 +R-HSA-5674400 +R-HSA-5674404 +R-HSA-5676590 +R-HSA-5676934 +R-HSA-5678420 +R-HSA-5678520 +R-HSA-5678771 +R-HSA-5678895 +R-HSA-5679001 +R-HSA-5679090 +R-HSA-5679096 +R-HSA-5682113 +R-HSA-5682294 +R-HSA-5682910 +R-HSA-5683057 +R-HSA-5683177 +R-HSA-5683329 +R-HSA-5683371 +R-HSA-5683678 +R-HSA-5683826 +R-HSA-5684045 +R-HSA-5684996 +R-HSA-5685939 +R-HSA-5686938 +R-HSA-5687128 +R-HSA-5687583 +R-HSA-5687613 +R-HSA-5687868 +R-HSA-5688031 +R-HSA-5688354 +R-HSA-5688399 +R-HSA-5688426 +R-HSA-5688849 +R-HSA-5688890 +R-HSA-5690338 +R-HSA-5693532 +R-HSA-5693538 +R-HSA-5693567 +R-HSA-5693571 +R-HSA-5693606 +R-HSA-5694530 +R-HSA-5696398 +R-HSA-597592 +R-HSA-6782315 +R-HSA-6782861 +R-HSA-6783310 +R-HSA-6783589 +R-HSA-6783783 +R-HSA-6784531 +R-HSA-6785470 +R-HSA-6785807 +R-HSA-6787450 +R-HSA-6790901 +R-HSA-6791055 +R-HSA-6791226 +R-HSA-6791312 +R-HSA-6791461 +R-HSA-6791462 +R-HSA-6791465 +R-HSA-6793080 +R-HSA-6794361 +R-HSA-6794362 +R-HSA-6796648 +R-HSA-6798163 +R-HSA-6798695 +R-HSA-6802946 +R-HSA-6802948 +R-HSA-6802949 +R-HSA-6802952 +R-HSA-6802953 +R-HSA-6802955 +R-HSA-6802957 +R-HSA-6803157 +R-HSA-6804756 +R-HSA-6804758 +R-HSA-6804759 +R-HSA-6804760 +R-HSA-6805567 +R-HSA-6806003 +R-HSA-6806664 +R-HSA-6806667 +R-HSA-6806834 +R-HSA-6807070 +R-HSA-6807505 +R-HSA-6807878 +R-HSA-6809583 +R-HSA-6811442 +R-HSA-68875 +R-HSA-68877 +R-HSA-68884 +R-HSA-68886 +R-HSA-68962 +R-HSA-69002 +R-HSA-69239 +R-HSA-69242 +R-HSA-69278 +R-HSA-69306 +R-HSA-69620 +R-HSA-70326 +R-HSA-70370 +R-HSA-70635 +R-HSA-70688 +R-HSA-70895 +R-HSA-70921 +R-HSA-71064 +R-HSA-71240 +R-HSA-71262 +R-HSA-71288 +R-HSA-71291 +R-HSA-71336 +R-HSA-71387 +R-HSA-71737 +R-HSA-72086 +R-HSA-72203 +R-HSA-72306 +R-HSA-72312 +R-HSA-72613 +R-HSA-72764 +R-HSA-72766 +R-HSA-73857 +R-HSA-73864 +R-HSA-73884 +R-HSA-73886 +R-HSA-73887 +R-HSA-73893 +R-HSA-73894 +R-HSA-73929 +R-HSA-73933 +R-HSA-73942 +R-HSA-74158 +R-HSA-74160 +R-HSA-74182 +R-HSA-74752 +R-HSA-75067 +R-HSA-75072 +R-HSA-75105 +R-HSA-75153 +R-HSA-75157 +R-HSA-75158 +R-HSA-75205 +R-HSA-75892 +R-HSA-75893 +R-HSA-75944 +R-HSA-76002 +R-HSA-76005 +R-HSA-76009 +R-HSA-77289 +R-HSA-774815 +R-HSA-877300 +R-HSA-879415 +R-HSA-881907 +R-HSA-8848021 +R-HSA-8848584 +R-HSA-8849175 +R-HSA-8849932 +R-HSA-8851680 +R-HSA-8852135 +R-HSA-8852405 +R-HSA-8853383 +R-HSA-8853659 +R-HSA-8853884 +R-HSA-8854214 +R-HSA-8854691 +R-HSA-8856825 +R-HSA-8856828 +R-HSA-8862803 +R-HSA-8863678 +R-HSA-8864260 +R-HSA-8866376 +R-HSA-8866654 +R-HSA-8868773 +R-HSA-8873719 +R-HSA-8876198 +R-HSA-8876384 +R-HSA-8876725 +R-HSA-8877330 +R-HSA-8877627 +R-HSA-8878159 +R-HSA-8878166 +R-HSA-8878171 +R-HSA-888590 +R-HSA-8934593 +R-HSA-8935690 +R-HSA-8936459 +R-HSA-8937144 +R-HSA-8939211 +R-HSA-8939902 +R-HSA-8941413 +R-HSA-8942233 +R-HSA-8948216 +R-HSA-8949215 +R-HSA-8949613 +R-HSA-8949664 +R-HSA-8950505 +R-HSA-8951664 +R-HSA-8953750 +R-HSA-8953854 +R-HSA-8953897 +R-HSA-8955332 +R-HSA-8956319 +R-HSA-8956320 +R-HSA-8956321 +R-HSA-8957275 +R-HSA-8957322 +R-HSA-8963676 +R-HSA-8963691 +R-HSA-8963693 +R-HSA-8963743 +R-HSA-8964539 +R-HSA-8964540 +R-HSA-8964572 +R-HSA-8978868 +R-HSA-8978934 +R-HSA-8979227 +R-HSA-8981607 +R-HSA-8982491 +R-HSA-8983432 +R-HSA-8983711 +R-HSA-8985947 +R-HSA-8986944 +R-HSA-9005891 +R-HSA-9005895 +R-HSA-9006115 +R-HSA-9006335 +R-HSA-9006821 +R-HSA-9006925 +R-HSA-9006927 +R-HSA-9006931 +R-HSA-9006934 +R-HSA-9006936 +R-HSA-9007101 +R-HSA-9009391 +R-HSA-9012852 +R-HSA-9012999 +R-HSA-9013694 +R-HSA-9018677 +R-HSA-9018678 +R-HSA-9018679 +R-HSA-9018683 +R-HSA-9022534 +R-HSA-9022535 +R-HSA-9022537 +R-HSA-9022538 +R-HSA-9024446 +R-HSA-9027604 +R-HSA-9031628 +R-HSA-9033241 +R-HSA-9033500 +R-HSA-9033658 +R-HSA-9034015 +R-HSA-9035968 +R-HSA-9036092 +R-HSA-9036866 +R-HSA-909733 +R-HSA-912446 +R-HSA-913531 +R-HSA-917729 +R-HSA-917937 +R-HSA-927802 +R-HSA-9603798 +R-HSA-9605308 +R-HSA-9605310 +R-HSA-9607240 +R-HSA-9608287 +R-HSA-9608290 +R-HSA-9609507 +R-HSA-9609523 +R-HSA-9609646 +R-HSA-9609736 +R-HSA-9612973 +R-HSA-9613354 +R-HSA-9613829 +R-HSA-9614085 +R-HSA-9614657 +R-HSA-9615017 +R-HSA-9615710 +R-HSA-9616222 +R-HSA-9616333 +R-HSA-9616334 +R-HSA-9617828 +R-HSA-9619665 +R-HSA-9629232 +R-HSA-9630221 +R-HSA-9630222 +R-HSA-9630747 +R-HSA-9630750 +R-HSA-9630791 +R-HSA-9630794 +R-HSA-9632693 +R-HSA-9632697 +R-HSA-9632700 +R-HSA-9633012 +R-HSA-9634285 +R-HSA-9634597 +R-HSA-9634815 +R-HSA-9635486 +R-HSA-9639288 +R-HSA-9645135 +R-HSA-9645460 +R-HSA-9645722 +R-HSA-9645723 +R-HSA-9646303 +R-HSA-9646304 +R-HSA-9646399 +R-HSA-9648002 +R-HSA-9648895 +R-HSA-9649913 +R-HSA-9649948 +R-HSA-9651496 +R-HSA-9652169 +R-HSA-9652817 +R-HSA-9656223 +R-HSA-9656249 +R-HSA-9656255 +R-HSA-9656256 +R-HSA-9657050 +R-HSA-9657688 +R-HSA-9657689 +R-HSA-9658195 +R-HSA-9659379 +R-HSA-9659787 +R-HSA-9660537 +R-HSA-9661069 +R-HSA-9661070 +R-HSA-9662001 +R-HSA-9662360 +R-HSA-9662361 +R-HSA-9662851 +R-HSA-9663199 +R-HSA-9663891 +R-HSA-9664407 +R-HSA-9664417 +R-HSA-9664420 +R-HSA-9664422 +R-HSA-9664424 +R-HSA-9664433 +R-HSA-9664565 +R-HSA-9664873 +R-HSA-9665230 +R-HSA-9665233 +R-HSA-9665244 +R-HSA-9665245 +R-HSA-9665246 +R-HSA-9665247 +R-HSA-9665249 +R-HSA-9665250 +R-HSA-9665251 +R-HSA-9665348 +R-HSA-9665686 +R-HSA-9665737 +R-HSA-9668250 +R-HSA-9669914 +R-HSA-9669917 +R-HSA-9669921 +R-HSA-9669924 +R-HSA-9669926 +R-HSA-9669929 +R-HSA-9669933 +R-HSA-9669934 +R-HSA-9669935 +R-HSA-9669936 +R-HSA-9669937 +R-HSA-9669938 +R-HSA-9670439 +R-HSA-9670613 +R-HSA-9670615 +R-HSA-9670621 +R-HSA-9671555 +R-HSA-9671793 +R-HSA-9672383 +R-HSA-9672387 +R-HSA-9672391 +R-HSA-9672393 +R-HSA-9672395 +R-HSA-9672396 +R-HSA-9672397 +R-HSA-9673013 +R-HSA-9673202 +R-HSA-9673218 +R-HSA-9673221 +R-HSA-9673240 +R-HSA-9673324 +R-HSA-9673766 +R-HSA-9673767 +R-HSA-9673768 +R-HSA-9673770 +R-HSA-9674396 +R-HSA-9674401 +R-HSA-9674403 +R-HSA-9674404 +R-HSA-9674415 +R-HSA-9674428 +R-HSA-9674519 +R-HSA-9674555 +R-HSA-9675108 +R-HSA-9675126 +R-HSA-9675132 +R-HSA-9675135 +R-HSA-9675136 +R-HSA-9675143 +R-HSA-9675151 +R-HSA-9678108 +R-HSA-9679191 +R-HSA-9679506 +R-HSA-9680187 +R-HSA-9680350 +R-HSA-9682385 +R-HSA-9687136 +R-HSA-9687139 +R-HSA-9690406 +R-HSA-9692914 +R-HSA-9693928 +R-HSA-9694516 +R-HSA-9697154 +R-HSA-9699150 +R-HSA-9700206 +R-HSA-9700645 +R-HSA-9700649 +R-HSA-9701190 +R-HSA-9701192 +R-HSA-9701193 +R-HSA-9702506 +R-HSA-9702509 +R-HSA-9702569 +R-HSA-9702577 +R-HSA-9702581 +R-HSA-9702590 +R-HSA-9702596 +R-HSA-9702600 +R-HSA-9702605 +R-HSA-9702614 +R-HSA-9702620 +R-HSA-9702624 +R-HSA-9702632 +R-HSA-9702636 +R-HSA-9702998 +R-HSA-9703009 +R-HSA-9703465 +R-HSA-9703648 +R-HSA-9704331 +R-HSA-9704646 +R-HSA-9705683 +R-HSA-9706019 +R-HSA-9706377 +R-HSA-9707564 +R-HSA-9707616 +R-HSA-9709275 +R-HSA-9709570 +R-HSA-9709603 +R-HSA-9709957 +R-HSA-9710421 +R-HSA-9711097 +R-HSA-9711123 +R-HSA-9715370 +R-HSA-9716542 +R-HSA-9717189 +R-HSA-9717264 +R-HSA-9717301 +R-HSA-9717316 +R-HSA-9717319 +R-HSA-9717323 +R-HSA-9717326 +R-HSA-9717329 +R-HSA-9723905 +R-HSA-9723907 +R-HSA-9725370 +R-HSA-9726840 +R-HSA-9726842 +R-HSA-9733709 +R-HSA-9734009 +R-HSA-9734195 +R-HSA-9734207 +R-HSA-9734281 +R-HSA-9734735 +R-HSA-9735763 +R-HSA-9735786 +R-HSA-9735804 +R-HSA-9748784 +R-HSA-9748787 +R-HSA-9749641 +R-HSA-975155 +R-HSA-9752946 +R-HSA-9753281 +R-HSA-9753510 +R-HSA-9753512 +R-HSA-9754189 +R-HSA-9754706 +R-HSA-9755088 +R-HSA-9755511 +R-HSA-975634 +R-HSA-9757110 +R-HSA-975871 +R-HSA-9758919 +R-HSA-9758920 +R-HSA-9758941 +R-HSA-9759475 +R-HSA-9759476 +R-HSA-9759774 +R-HSA-9761174 +R-HSA-9763198 +R-HSA-9764260 +R-HSA-9764302 +R-HSA-977225 +R-HSA-9772572 +R-HSA-9772573 +R-HSA-9772755 +R-HSA-977347 +R-HSA-977443 +R-HSA-9793242 +R-HSA-9793380 +R-HSA-9793528 +R-HSA-9796292 +R-HSA-9816359 +R-HSA-9818025 +R-HSA-9818026 +R-HSA-9818027 +R-HSA-9818028 +R-HSA-9818030 +R-HSA-9818032 +R-HSA-9818035 +R-HSA-9818749 +R-HSA-9819196 +R-HSA-9820841 +R-HSA-9820865 +R-HSA-9820952 +R-HSA-9820960 +R-HSA-9820962 +R-HSA-9820965 +R-HSA-9821002 +R-HSA-9821993 +R-HSA-9823587 +R-HSA-9823730 +R-HSA-9823739 +R-HSA-9824272 +R-HSA-9824439 +R-HSA-9824443 +R-HSA-9824446 +R-HSA-982772 +R-HSA-9827857 +R-HSA-9828806 +R-HSA-9830364 +R-HSA-9830369 +R-HSA-9830674 +R-HSA-983169 +R-HSA-983189 +R-HSA-9831926 +R-HSA-983231 +R-HSA-9832991 +R-HSA-9833110 +R-HSA-9833482 +R-HSA-9834899 +R-HSA-9836573 +R-HSA-983705 +R-HSA-983712 +R-HSA-9837999 +R-HSA-9840373 +R-HSA-9845576 +R-HSA-9845619 +R-HSA-9845620 +R-HSA-9845621 +R-HSA-9845622 +R-HSA-9846298 diff --git a/projects/ngx-reactome-diagram/src/assets/json/legend.json b/projects/ngx-reactome-diagram/src/assets/json/legend.json new file mode 100644 index 0000000..d70b3b6 --- /dev/null +++ b/projects/ngx-reactome-diagram/src/assets/json/legend.json @@ -0,0 +1,940 @@ +{ + "nodes": [ + { + "data": { + "id": "Label 1", + "displayName": "Molecules" + }, + "classes": [ + "Label", + "Legend" + ], + "position": { + "x": 250, + "y": -20 + } + }, + { + "data": { + "id": "Gene", + "displayName": "Gene", + "height": 80, + "width": 220 + }, + "classes": [ + "Gene", + "PhysicalEntity" + ], + "position": { + "x": 130, + "y": 40 + } + }, + { + "data": { + "id": "Genome Encoded Entity", + "displayName": "Genome Encoded Entity", + "height": 60, + "width": 220 + }, + "classes": [ + "GenomeEncodedEntity", + "PhysicalEntity" + ], + "position": { + "x": 370, + "y": 50 + } + }, + { + "data": { + "id": "RNA", + "displayName": "RNA", + "height": 60, + "width": 220 + }, + "classes": [ + "RNA", + "PhysicalEntity" + ], + "position": { + "x": 130, + "y": 130 + } + }, + { + "data": { + "id": "RNA-drug", + "displayName": "RNA Drug", + "height": 60, + "width": 220 + }, + "classes": [ + "RNA", + "PhysicalEntity", + "drug" + ], + "position": { + "x": 370, + "y": 130 + } + }, + { + "data": { + "id": "Protein", + "displayName": "Protein", + "height": 60, + "width": 220 + }, + "classes": [ + "Protein", + "PhysicalEntity" + ], + "position": { + "x": 130, + "y": 210 + } + }, + { + "data": { + "id": "Protein-drug", + "displayName": "Protein Drug", + "height": 60, + "width": 220 + }, + "classes": [ + "Protein", + "PhysicalEntity", + "drug" + ], + "position": { + "x": 370, + "y": 210 + } + }, + { + "data": { + "id": "Molecule", + "displayName": "Molecule", + "height": 60, + "width": 220 + }, + "classes": [ + "Molecule", + "PhysicalEntity" + ], + "position": { + "x": 130, + "y": 290 + } + }, + { + "data": { + "id": "Molecule-drug", + "displayName": "Molecule Drug", + "height": 60, + "width": 220 + }, + "classes": [ + "Molecule", + "PhysicalEntity", + "drug" + ], + "position": { + "x": 370, + "y": 290 + } + }, + { + "data": { + "id": "Complex", + "displayName": "Complex", + "height": 60, + "width": 220 + }, + "classes": [ + "Complex", + "PhysicalEntity" + ], + "position": { + "x": 130, + "y": 370 + } + }, + { + "data": { + "id": "Complex-drug", + "displayName": "Complex Drug", + "height": 60, + "width": 220 + }, + "classes": [ + "Complex", + "PhysicalEntity", + "drug" + ], + "position": { + "x": 370, + "y": 370 + } + }, + { + "data": { + "id": "EntitySet", + "displayName": "Set", + "height": 60, + "width": 220 + }, + "classes": [ + "EntitySet", + "PhysicalEntity" + ], + "position": { + "x": 130, + "y": 450 + } + }, + { + "data": { + "id": "EntitySet-drug", + "displayName": "Set Drug", + "height": 60, + "width": 220 + }, + "classes": [ + "EntitySet", + "PhysicalEntity", + "drug" + ], + "position": { + "x": 370, + "y": 450 + } + }, + { + "data": { + "id": "Cell", + "displayName": "Cell", + "height": 60, + "width": 220 + }, + "classes": [ + "Cell", + "PhysicalEntity" + ], + "position": { + "x": 250, + "y": 530 + } + }, + + { + "data": { + "id": "SubPathway", + "displayName": "SubPathway", + "height": 80, + "width": 220 + }, + "classes": [ + "SUB", + "Pathway" + ], + "position": { + "x": 130, + "y": 610 + } + }, + { + "data": { + "id": "interacting pathway", + "displayName": "Interacting Pathway", + "height": 80, + "width": 220 + }, + "classes": [ + "Interacting", + "Pathway" + ], + "position": { + "x": 370, + "y": 610 + } + }, + + + { + "data": { + "id": "Label 2", + "displayName": "Reaction Types" + }, + "classes": [ + "Label", + "Legend" + ], + "position": { + "x": 250, + "y": 690 + } + }, + { + "data": { + "id": "a" + }, + "classes": [ + "Placeholder", + "Legend" + ], + "position": { + "x": 15, + "y": 760 + } + }, + { + "data": { + "id": "dissociation", + "displayName": "Dissociation" + }, + "classes": [ + "dissociation", + "reaction" + ], + "position": { + "x": 130, + "y": 760 + } + }, + { + "data": { + "id": "b" + }, + "classes": [ + "Placeholder", + "Legend" + ], + "position": { + "x": 250, + "y": 740 + } + }, + { + "data": { + "id": "c" + }, + "classes": [ + "Placeholder", + "Legend" + ], + "position": { + "x": 250, + "y": 780 + } + }, + { + "data": { + "id": "association", + "displayName": "Association" + }, + "classes": [ + "association", + "reaction" + ], + "position": { + "x": 370, + "y": 760 + } + }, + { + "data": { + "id": "d" + }, + "classes": [ + "Placeholder", + "Legend" + ], + "position": { + "x": 485, + "y": 760 + } + }, + { + "data": { + "id": "e" + }, + "classes": [ + "Placeholder", + "Legend" + ], + "position": { + "x": 15, + "y": 840 + } + }, + { + "data": { + "id": "transition", + "displayName": "Transition" + }, + "classes": [ + "transition", + "reaction" + ], + "position": { + "x": 130, + "y": 840 + } + }, + { + "data": { + "id": "f" + }, + "classes": [ + "Placeholder", + "Legend" + ], + "position": { + "x": 250, + "y": 840 + } + }, + { + "data": { + "id": "omitted", + "displayName": "Omitted" + }, + "classes": [ + "omitted", + "reaction" + ], + "position": { + "x": 370, + "y": 840 + } + }, + { + "data": { + "id": "g" + }, + "classes": [ + "Placeholder", + "Legend" + ], + "position": { + "x": 485, + "y": 840 + } + }, + { + "data": { + "id": "h" + }, + "classes": [ + "Placeholder", + "Legend" + ], + "position": { + "x": 15, + "y": 920 + } + }, + { + "data": { + "id": "uncertain-l", + "displayName": "Uncertain" + }, + "classes": [ + "Placeholder", + "reaction", + "Legend" + ], + "position": { + "x": 250, + "y": 916 + } + }, + { + "data": { + "id": "uncertain" + }, + "classes": [ + "uncertain", + "reaction" + ], + "position": { + "x": 250, + "y": 920 + } + }, + { + "data": { + "id": "i" + }, + "classes": [ + "Placeholder", + "Legend" + ], + "position": { + "x": 485, + "y": 920 + } + }, + { + "data": { + "id": "Label 3", + "displayName": "Reaction Attributes" + }, + "classes": [ + "Label", + "Legend" + ], + "position": { + "x": 250, + "y": 980 + } + }, + { + "data": { + "id": "attr-catalysis" + }, + "classes": [ + "Placeholder", + "Legend" + ], + "position": { + "x": 15, + "y": 1020 + } + }, + { + "data": { + "id": "attr-reg+" + }, + "classes": [ + "Placeholder", + "Legend" + ], + "position": { + "x": 485, + "y": 1020 + } + }, + { + "data": { + "id": "attr-a" + }, + "classes": [ + "Placeholder", + "Legend" + ], + "position": { + "x": 15, + "y": 1060 + } + }, + { + "data": { + "id": "attr-b" + }, + "classes": [ + "Placeholder", + "Legend" + ], + "position": { + "x": 15, + "y": 1100 + } + }, + { + "data": { + "id": "attr-reaction" + }, + "classes": [ + "association", + "reaction" + ], + "position": { + "x": 250, + "y": 1080 + } + }, + { + "data": { + "id": "attr-c" + }, + "classes": [ + "Placeholder", + "Legend" + ], + "position": { + "x": 485, + "y": 1080 + } + }, + { + "data": { + "id": "attr-reg-" + }, + "classes": [ + "Placeholder", + "Legend" + ], + "position": { + "x": 485, + "y": 1145 + } + }, + { + "data": { + "id": "attr-s-l", + "displayName": "Stoichiometry", + "labelColor": "onSurface" + }, + "classes": [ + "Placeholder", + "Legend" + ], + "position": { + "x": 73, + "y": 1150 + } + }, + { + "data": { + "id": "line-a" + }, + "classes": [ + "Placeholder", + "Legend" + ], + "position": { + "x": 15, + "y": 1185 + } + }, + { + "data": { + "id": "line-b" + }, + "classes": [ + "Placeholder", + "Legend" + ], + "position": { + "x": 250, + "y": 1185 + } + }, + { + "data": { + "id": "line-c" + }, + "classes": [ + "Placeholder", + "Legend" + ], + "position": { + "x": 485, + "y": 1185 + } + }, + { + "data": { + "id": "line-d" + }, + "classes": [ + "Placeholder", + "Legend" + ], + "position": { + "x": 15, + "y": 1225 + } + }, + { + "data": { + "id": "line-e" + }, + "classes": [ + "Placeholder", + "Legend" + ], + "position": { + "x": 485, + "y": 1225 + } + } + ], + "edges": [ + { + "data": { + "source": "a", + "target": "dissociation" + }, + "classes": [ + "consumption", + "incoming" + ] + }, + { + "data": { + "source": "dissociation", + "target": "b", + "weights": "0.270 0.523", + "distances": "5.535 -9.976", + "sourceEndpoint": "18 0", + "targetEndpoint": "-10 0" + }, + "classes": [ + "production", + "outgoing" + ] + }, + { + "data": { + "source": "dissociation", + "target": "c", + "weights": "0.270 0.523", + "distances": "-5.535 9.976", + "sourceEndpoint": "18 0", + "targetEndpoint": "-10 0" + }, + "classes": [ + "production", + "outgoing" + ] + }, + { + "data": { + "source": "b", + "target": "association", + "weights": "0.285 0.521", + "distances": "-5.82 9.777", + "sourceEndpoint": "10 0", + "targetEndpoint": "-10 0" + }, + "classes": [ + "consumption", + "outgoing" + ] + }, + { + "data": { + "source": "c", + "target": "association", + "weights": "0.285 0.521", + "distances": "5.82 -9.777", + "sourceEndpoint": "10 0", + "targetEndpoint": "-10 0" + }, + "classes": [ + "consumption", + "outgoing" + ] + }, + { + "data": { + "source": "association", + "target": "d" + }, + "classes": [ + "production", + "outgoing" + ] + }, + { + "data": { + "source": "e", + "target": "transition" + }, + "classes": [ + "consumption", + "incoming" + ] + }, + { + "data": { + "source": "transition", + "target": "f" + }, + "classes": [ + "production", + "outgoing" + ] + }, + { + "data": { + "source": "f", + "target": "omitted" + }, + "classes": [ + "consumption", + "incoming" + ] + }, + { + "data": { + "source": "omitted", + "target": "g" + }, + "classes": [ + "production", + "outgoing" + ] + }, + { + "data": { + "source": "h", + "target": "uncertain" + }, + "classes": [ + "consumption", + "incoming" + ] + }, + { + "data": { + "source": "uncertain", + "target": "i" + }, + "classes": [ + "production", + "outgoing" + ] + }, + { + "data": { + "source": "attr-a", + "target": "attr-reaction", + "weights": "0.582 0.683", + "distances": "-11.686 6.357", + "sourceEndpoint": "10 0", + "targetEndpoint": "-12 0" + }, + "classes": [ + "consumption", + "incoming" + ] + }, + { + "data": { + "source": "attr-b", + "target": "attr-reaction", + "weights": "0.582 0.683", + "distances": "11.686 -6.357", + "sourceEndpoint": "10 0", + "targetEndpoint": "-12 0", + "stoichiometry": 3, + "sourceOffset": 50 + }, + "classes": [ + "consumption", + "incoming" + ] + }, + { + "data": { + "source": "attr-reaction", + "target": "attr-c", + "sourceEndpoint": "12 0", + "targetEndpoint": "-10 0" + }, + "classes": [ + "production", + "outgoing" + ] + }, + { + "data": { + "source": "attr-catalysis", + "target": "attr-reaction", + "weights": "0.754", + "distances": "-34.250", + "sourceEndpoint": "10 0", + "targetEndpoint": "-15.556 -15.556", + "sourceLabel": "Catalysis", + "sourceOffset": 30, + "labelColor": "positive" + }, + "classes": [ + "catalysis", + "incoming" + ] + }, + { + "data": { + "source": "attr-reg+", + "target": "attr-reaction", + "weights": "0.754", + "distances": "34.250", + "sourceEndpoint": "-10 0", + "targetEndpoint": "15.556 -15.556", + "sourceLabel": "Positive Regulation", + "sourceOffset": 70, + "labelColor": "positive" + }, + "classes": [ + "positive-regulation", + "incoming" + ] + }, + { + "data": { + "source": "attr-reg-", + "target": "attr-reaction", + "sourceEndpoint": "-10 0", + "targetEndpoint": "0 22", + "weights": "0.966", + "distances": "-41.287", + "sourceLabel": "Negative regulation", + "sourceOffset": 72, + "labelColor": "negative" + }, + "classes": [ + "negative-regulation", + "incoming" + ] + }, + { + "data": { + "source": "line-a", + "target": "line-b", + "sourceEndpoint": "12 0", + "targetEndpoint": "-12 0", + "label": "Wild Type" + }, + "classes": [ + "consumption", + "incoming" + ] + }, + { + "data": { + "source": "line-b", + "target": "line-c", + "sourceEndpoint": "12 0", + "targetEndpoint": "-12 0", + "label": "Disease Associated", + "labelColor": "negative" + }, + "classes": [ + "consumption", + "incoming", + "disease" + ] + }, + { + "data": { + "source": "line-d", + "target": "line-e", + "sourceEndpoint": "12 0", + "targetEndpoint": "-12 0", + "label": "Member of Set", + "labelColor": "onSurface" + }, + "classes": [ + "set-to-member" + ] + } + ], + "Reaction Types GeoGebra": "https://www.geogebra.org/calculator/bydd8bz5", + "Reaction Attributes GeoGebra": "https://www.geogebra.org/calculator/hgu6afmu" +} diff --git a/projects/ngx-reactome-diagram/src/favicon.ico b/projects/ngx-reactome-diagram/src/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..997406ad22c29aae95893fb3d666c30258a09537 GIT binary patch literal 948 zcmV;l155mgP)CBYU7IjCFmI-B}4sMJt3^s9NVg!P0 z6hDQy(L`XWMkB@zOLgN$4KYz;j0zZxq9KKdpZE#5@k0crP^5f9KO};h)ZDQ%ybhht z%t9#h|nu0K(bJ ztIkhEr!*UyrZWQ1k2+YkGqDi8Z<|mIN&$kzpKl{cNP=OQzXHz>vn+c)F)zO|Bou>E z2|-d_=qY#Y+yOu1a}XI?cU}%04)zz%anD(XZC{#~WreV!a$7k2Ug`?&CUEc0EtrkZ zL49MB)h!_K{H(*l_93D5tO0;BUnvYlo+;yss%n^&qjt6fZOa+}+FDO(~2>G z2dx@=JZ?DHP^;b7*Y1as5^uphBsh*s*z&MBd?e@I>-9kU>63PjP&^#5YTOb&x^6Cf z?674rmSHB5Fk!{Gv7rv!?qX#ei_L(XtwVqLX3L}$MI|kJ*w(rhx~tc&L&xP#?cQow zX_|gx$wMr3pRZIIr_;;O|8fAjd;1`nOeu5K(pCu7>^3E&D2OBBq?sYa(%S?GwG&_0-s%_v$L@R!5H_fc)lOb9ZoOO#p`Nn`KU z3LTTBtjwo`7(HA6 z7gmO$yTR!5L>Bsg!X8616{JUngg_@&85%>W=mChTR;x4`P=?PJ~oPuy5 zU-L`C@_!34D21{fD~Y8NVnR3t;aqZI3fIhmgmx}$oc-dKDC6Ap$Gy>a!`A*x2L1v0 WcZ@i?LyX}70000 + + + + PathwayBrowser + + + + + + + + + + + + + diff --git a/projects/ngx-reactome-diagram/src/main.ts b/projects/ngx-reactome-diagram/src/main.ts new file mode 100644 index 0000000..c58dc05 --- /dev/null +++ b/projects/ngx-reactome-diagram/src/main.ts @@ -0,0 +1,7 @@ +import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; + +import { AppModule } from './app/app.module'; + + +platformBrowserDynamic().bootstrapModule(AppModule) + .catch(err => console.error(err)); diff --git a/projects/ngx-reactome-diagram/src/styles.scss b/projects/ngx-reactome-diagram/src/styles.scss new file mode 100644 index 0000000..6341559 --- /dev/null +++ b/projects/ngx-reactome-diagram/src/styles.scss @@ -0,0 +1,9 @@ +body { + height: 100%; + overflow: hidden; + background: var(--surface); +} + +video { + //transform: translate(-10px, -10px); +} diff --git a/projects/ngx-reactome-diagram/src/theme/_palette.scss b/projects/ngx-reactome-diagram/src/theme/_palette.scss new file mode 100644 index 0000000..357390a --- /dev/null +++ b/projects/ngx-reactome-diagram/src/theme/_palette.scss @@ -0,0 +1,233 @@ +@use "sass:map"; +@use "palette"; + +$primary-colors: ( + 002: #ffffff, + 010: #fafdff, + 050: #dff4ff, + 100: #baeaff, + 200: #5cd4ff, + 300: #20b9e5, + 400: #009dc4, + 500: #0081a2, + 600: #006782, + 700: #004d62, + 800: #003545, + 900: #001f29, + 950: #0D1617, + 1000: #000000, + contrast: ( + 002: #000000, + 010: #000000, + 050: #000000, + 100: #000000, + 200: #000000, + 300: #000000, + 400: #000000, + 500: #000000, + 600: #ffffff, + 700: #ffffff, + 800: #ffffff, + 900: #ffffff, + 950: #ffffff, + 990: #ffffff, + 1000: #ffffff + ) +); + +$secondary-colors: ( + 002: #ffffff, + 010: #fafdff, + 050: #dff4ff, + 100: #baeaff, + 200: #5cd4ff, + 300: #20b9e5, + 400: #009dc4, + 500: #0081a2, + 600: #006782, + 700: #004d62, + 800: #003545, + 900: #001f29, + 950: #0D1617, + 1000: #000000, + contrast: ( + 002: #000000, + 050: #000000, + 100: #000000, + 200: #000000, + 300: #000000, + 400: #000000, + 500: #000000, + 600: #000000, + 700: #ffffff, + 800: #ffffff, + 900: #ffffff, + 950: #ffffff, + 990: #ffffff, + 1000: #ffffff + ) +); + +$tertiary-colors: ( + 002: #ffffff, + 010: #FDFCFF, + 050: #EAF1FF, + 100: #d3e4ff, + 200: #a3c9ff, + 300: #74aef8, + 400: #5793db, + 500: #3a79c0, + 600: #1660a5, + 700: #004882, + 800: #00315c, + 900: #001c38, + 950: #0D1317, + 1000: #000000, + contrast: ( + 002: #000000, + 100: #000000, + 200: #000000, + 300: #000000, + 400: #000000, + 500: #000000, + 600: #ffffff, + 700: #ffffff, + 800: #ffffff, + 900: #ffffff, + 950: #ffffff, + 990: #ffffff, + 1000: #ffffff + ) +); + +$neutral-colors: ( + 002: #ffffff, + 010: #FAFDFF, + 050: #D0F8FF, + 100: #a6eeff, + 200: #53d7f1, + 300: #29bbd5, + 400: #009fb6, + 500: #008396, + 600: #006878, + 700: #004e5b, + 800: #00363f, + 900: #001f25, + 950: #001013, + 1000: #000000, + contrast: ( + 002: #000, + 100: #000, + 200: #000, + 300: #000, + 400: #000, + 500: #000, + 600: #fff, + 700: #fff, + 800: #fff, + 900: #fff, + 950: #fff, + 990: #fff, + 1000: #fff + ) +); + +$neutral-variant-colors: ( + 002: #ffffff, + 010: #FAFDFF, + 050: #EAF2F7, + 100: #E9F2F6, + 200: #c0c8cc, + 300: #a4acb1, + 400: #8a9296, + 500: #70787d, + 600: #576064, + 700: #40484c, + 800: #2a3235, + 900: #151d20, + 1000: #000000, + contrast: ( + 002: #000, + 010: #000, + 050: #000, + 100: #000, + 200: #000, + 300: #000, + 400: #000, + 500: #fff, + 600: #fff, + 700: #fff, + 800: #fff, + 900: #fff, + 1000: #fff + ) +); + +$error-colors: ( + 002: #ffffff, + 010: #FFFBFF, + 050: #FFEDEA, + 100: #FFEDEA, + 200: #FFC7C2, + 300: #FFA19A, + 400: #FF7A71, + 500: #ff5449, + 600: #de3730, + 700: #ba1a1a, + 800: #93000a, + 900: #690005, + 1000: #410002, + contrast: ( + 002: #000, + 100: #000, + 200: #000, + 300: #000, + 400: #000, + 500: #000, + 600: #fff, + 700: #fff, + 800: #fff, + 900: #fff, + 950: #fff, + 990: #fff, + 1000: #fff + ) +); + +// Background palette for dark themes. +$dark-theme-background-palette: ( + status-bar: black, + app-bar: map.get($neutral-colors, 900), + background: map.get($neutral-colors, 950), + hover: rgba(white, 0.04), + card: map.get($neutral-colors, 800), + dialog: map.get($neutral-colors, 900), + disabled-button: rgba(white, 0.12), + raised-button: map.get($neutral-colors, 800), + focused-button: palette.$light-focused, + selected-button: map.get($neutral-colors, 900), + selected-disabled-button: map.get($neutral-colors, 800), + disabled-button-toggle: black, + unselected-chip: map.get($neutral-colors, 700), + disabled-list-option: rgba(white, 0.12), + tooltip: map.get($neutral-colors, 700), +); + +// Foreground palette for dark themes. +$dark-theme-foreground-palette: ( + base: white, + divider: palette.$light-dividers, + dividers: palette.$light-dividers, + disabled: palette.$light-disabled-text, + disabled-button: rgba(white, 0.3), + disabled-text: palette.$light-disabled-text, + elevation: map.get($primary-colors, 200), + hint-text: palette.$light-disabled-text, + secondary-text: palette.$light-secondary-text, + icon: white, + icons: white, + text: white, + slider-min: white, + slider-off: rgba(white, 0.3), + slider-off-active: rgba(white, 0.3), +); diff --git a/projects/ngx-reactome-diagram/src/theme/_variables.scss b/projects/ngx-reactome-diagram/src/theme/_variables.scss new file mode 100644 index 0000000..a229468 --- /dev/null +++ b/projects/ngx-reactome-diagram/src/theme/_variables.scss @@ -0,0 +1,114 @@ +@use "material/index" as mat; +@use "sass:map"; +@use "palette"; + +@mixin theme($palettes) { + $primary-palette: map.get($palettes, 'primary-palette'); + $secondary-palette: map.get($palettes, 'secondary-palette'); + $tertiary-palette: map.get($palettes, 'tertiary-palette'); + $error-palette: map.get($palettes, 'error-palette'); + $neutral-palette: map.get($palettes, 'neutral-palette'); + $neutral-variant-palette: map.get($palettes, 'neutral-variant-palette'); + + + $primary: mat.get-color-from-palette($primary-palette, 600); + $surface: mat.get-color-from-palette($neutral-palette, 010); + :root { + --primary: #{$primary}; + --on-primary: #{mat.get-color-from-palette($primary-palette, 002)}; + --primary-container: #{mat.get-color-from-palette($primary-palette, 100)}; + --on-primary-container: #{mat.get-color-from-palette($primary-palette, 900)}; + + --secondary: #{ mat.get-color-from-palette($secondary-palette, 600)}; + --on-secondary: #{mat.get-color-from-palette($secondary-palette, 002)}; + --secondary-container: #{ mat.get-color-from-palette($secondary-palette, 100)}; + --on-secondary-container: #{ mat.get-color-from-palette($secondary-palette, 900)}; + + --tertiary: #{mat.get-color-from-palette($tertiary-palette, 600)}; + --on-tertiary: #{mat.get-color-from-palette($tertiary-palette, 002)}; + --tertiary-container: #{ mat.get-color-from-palette($tertiary-palette, 100)}; + --on-tertiary-container: #{ mat.get-color-from-palette($tertiary-palette, 900)}; + + --error: #{mat.get-color-from-palette($error-palette, 600)}; + --on-error: #{mat.get-color-from-palette($error-palette, 002)}; + --error-container: #{ mat.get-color-from-palette($error-palette, 100)}; + --on-error-container: #{mat.get-color-from-palette($error-palette, 900)}; + + --background: #{mat.get-color-from-palette($neutral-palette, 010)}; + --on-background: #{mat.get-color-from-palette($neutral-palette, 900)}; + --surface: #{$surface}; + --on-surface: #{mat.get-color-from-palette($neutral-palette, 900)}; + + --surface-variant: #{mat.get-color-from-palette($neutral-variant-palette, 100)}; + --on-surface-variant: #{mat.get-color-from-palette($neutral-variant-palette, 700)}; + --outline: #{mat.get-color-from-palette($neutral-variant-palette, 500)}; + --outline-variant: #{mat.get-color-from-palette($neutral-variant-palette, 200)}; + + + --surface1: #{linear-gradient(0, transparentize($primary, 0.95), transparentize($primary, 0.95)), $surface}; + --surface2: #{linear-gradient(0, transparentize($primary, 0.92), transparentize($primary, 0.92)), $surface}; + --surface3: #{linear-gradient(0, transparentize($primary, 0.89), transparentize($primary, 0.89)), $surface}; + --surface4: #{linear-gradient(0, transparentize($primary, 0.88), transparentize($primary, 0.88)), $surface}; + --surface5: #{linear-gradient(0, transparentize($primary, 0.86), transparentize($primary, 0.86)), $surface}; + + --card: #{mat.get-color-from-palette($neutral-palette, 010)}; + + --icon-positive: #0C9509; + --hover: rgba(0, 0, 0, 0.04); + } + + + .dark { + $primary: mat.get-color-from-palette($primary-palette, 200); + $surface: mat.get-color-from-palette($neutral-palette, 950); + + + --primary: #{$primary}; + --on-primary: #{mat.get-color-from-palette($primary-palette, 950)}; + --primary-container: #{mat.get-color-from-palette($primary-palette, 700)}; + --on-primary-container: #{mat.get-color-from-palette($primary-palette, 100)}; + + --secondary: #{mat.get-color-from-palette($secondary-palette, 200)}; + --on-secondary: #{mat.get-color-from-palette($secondary-palette, 800)}; + --secondary-container: #{mat.get-color-from-palette($secondary-palette, 700)}; + --on-secondary-container: #{mat.get-color-from-palette($secondary-palette, 100)}; + + --tertiary: #{mat.get-color-from-palette($tertiary-palette, 200)}; + --on-tertiary: #{mat.get-color-from-palette($tertiary-palette, 950)}; + --tertiary-container: #{mat.get-color-from-palette($tertiary-palette, 700)}; + --on-tertiary-container: #{mat.get-color-from-palette($tertiary-palette, 100)}; + + --error: #{mat.get-color-from-palette($error-palette, 200)}; + --on-error: #{mat.get-color-from-palette($error-palette, 800)}; + --error-container: #{mat.get-color-from-palette($error-palette, 700)}; + --on-error-container: #{mat.get-color-from-palette($error-palette, 100)}; + + --background: #{mat.get-color-from-palette($neutral-palette, 900)}; + --on-background: #{mat.get-color-from-palette($neutral-palette, 100)}; + --surface: #{$surface}; + --on-surface: #{mat.get-color-from-palette($neutral-palette, 100)}; + + --surface-variant: #{mat.get-color-from-palette($neutral-variant-palette, 800)}; + --on-surface-variant: #{mat.get-color-from-palette($neutral-variant-palette, 200)}; + --outline: #{mat.get-color-from-palette($neutral-variant-palette, 400)}; + --outline-variant: #{mat.get-color-from-palette($neutral-variant-palette, 700)}; + + --surface1: #{linear-gradient(0, transparentize($primary, 0.95), transparentize($primary, 0.95)), $surface}; + --surface2: #{linear-gradient(0, transparentize($primary, 0.92), transparentize($primary, 0.92)), $surface}; + --surface3: #{linear-gradient(0, transparentize($primary, 0.89), transparentize($primary, 0.89)), $surface}; + --surface4: #{linear-gradient(0, transparentize($primary, 0.88), transparentize($primary, 0.88)), $surface}; + --surface5: #{linear-gradient(0, transparentize($primary, 0.86), transparentize($primary, 0.86)), $surface}; + + --card: #{mat.get-color-from-palette($neutral-palette, 800)}; + + --icon-positive: #51F44D; + --hover: rgba(255, 255, 255, 0.04); + } +} + + + + + + + diff --git a/projects/ngx-reactome-diagram/src/theme/custom-theme.scss b/projects/ngx-reactome-diagram/src/theme/custom-theme.scss new file mode 100644 index 0000000..e62aa9d --- /dev/null +++ b/projects/ngx-reactome-diagram/src/theme/custom-theme.scss @@ -0,0 +1,144 @@ +// Custom Theming for Angular Material +// For more information: https://material.angular.io/guide/theming +@use 'material/index' as mat; +@use "palette" as p; +@use "variables"; +@use 'sass:map'; +@use 'theme-helper'; + +$bg-color: map.get(p.$primary-colors, 990); + + +// Plus imports for other components in your app. + + +// Include the common styles for Angular Material. We include this here so that you only +// have to load a single css file for Angular Material in your app. +// Be sure that you only ever include this mixin once! +// TODO(v15): As of v15 mat.core no longer includes default typography styles. +// The following line adds: +// 1. Default typography styles for all components +// 2. Styles for typography hierarchy classes (e.g. .mat-headline-1) +// If you specify typography styles for the components you use elsewhere, you should delete this line. +// If you don't need the default component typographies but still want the hierarchy styles, +// you can delete this line and instead use: +// `@include mat.typography-hierarchy(mat.define-typography-config());` +@include mat.all-component-typographies(); +@include mat.core(); +@include mat.list-theme(); + + +// Define the palettes for your theme using the Material Design palettes available in palette.scss +// (imported above). For each palette, you can optionally specify a default, lighter, and darker +// hue. Available color palettes: https://material.io/design/color/ +$primary-palette: mat.define-palette(p.$primary-colors, 600); +$secondary-palette: mat.define-palette(p.$secondary-colors, 600); +$tertiary-palette: mat.define-palette(p.$tertiary-colors, 600); + +// The warn palette is optional (defaults to red). +$error-palette: mat.define-palette(p.$error-colors); +$neutral-palette: mat.define-palette(p.$neutral-colors); +$neutral-variant-palette: mat.define-palette(p.$neutral-variant-colors); + +// Create the theme object. A theme consists of configurations for individual +// theming systems such as "color" or "typography". +$light-theme: mat.define-light-theme(( + color: ( + primary: $primary-palette, + accent: $tertiary-palette, + warn: $error-palette, + ), + density: -1 +)); + +$dark-theme: mat.define-dark-theme(( + color: ( + primary: mat.define-palette(p.$primary-colors, 200), + accent: mat.define-palette(p.$tertiary-colors, 200), + warn: mat.define-palette(p.$error-colors, 200), + ) +)); + +$palettes: ( + primary-palette: $primary-palette, + secondary-palette: $secondary-palette, + tertiary-palette: $tertiary-palette, + error-palette: $error-palette, + neutral-palette: $neutral-palette, + neutral-variant-palette: $neutral-variant-palette +); + +// Include theme styles for core and each component used in your app. +// Alternatively, you can import and @include the theme mixins for each component +// that you are using. +//@include mat.all-component-themes($light-theme); + +@include mat.core-theme($light-theme); +@include mat.card-theme($light-theme); +@include mat.progress-bar-theme($light-theme); +@include mat.tooltip-theme($light-theme); +@include mat.form-field-theme($light-theme); +@include mat.input-theme($light-theme); +@include mat.select-theme($light-theme); +@include mat.dialog-theme($light-theme); +@include mat.slide-toggle-theme($light-theme); +@include mat.checkbox-theme($light-theme); +@include mat.button-theme($light-theme); +@include mat.icon-button-theme($light-theme); +@include mat.fab-theme($light-theme); +@include mat.snack-bar-theme($light-theme); +@include mat.progress-spinner-theme($light-theme); +@include mat.divider-theme($light-theme); +@include mat.expansion-theme($light-theme); +@include mat.icon-theme($light-theme); +@include mat.stepper-theme($light-theme); +@include mat.menu-theme($light-theme); +@include mat.list-theme($light-theme); + + +//@include nested-stepper.theme($light-theme); +$bg-color: map.get(p.$primary-colors, 010); + +$color-config: mat.get-color-config($light-theme); + + + +// Apply the dark theme only when the user prefers dark themes. +.dark { + // Use the `-color` mixins to only apply color styles without reapplying the same + // typography and density styles. + $bg-color: map.get(p.$primary-colors, 950); + + $dark-theme: theme-helper.modify-background($dark-theme, p.$dark-theme-background-palette); + $dark-theme: theme-helper.modify-foreground($dark-theme, p.$dark-theme-foreground-palette); + + $color-config: mat.get-color-config($dark-theme); + @include mat.all-component-colors($dark-theme); + + @include mat.core-color($dark-theme); + @include mat.card-color($dark-theme); + @include mat.progress-bar-color($dark-theme); + @include mat.tooltip-color($dark-theme); + @include mat.form-field-color($dark-theme); + @include mat.input-color($dark-theme); + @include mat.select-color($dark-theme); + @include mat.dialog-color($dark-theme); + @include mat.slide-toggle-color($dark-theme); + @include mat.checkbox-color($dark-theme); + @include mat.button-color($dark-theme); + @include mat.icon-button-color($dark-theme); + @include mat.fab-color($dark-theme); + @include mat.snack-bar-color($dark-theme); + @include mat.progress-spinner-color($dark-theme); + @include mat.divider-color($dark-theme); + @include mat.expansion-color($dark-theme); + @include mat.icon-color($dark-theme); + @include mat.stepper-color($dark-theme); + @include mat.menu-color($dark-theme); + +} + +@include variables.theme($palettes); + + + diff --git a/projects/ngx-reactome-diagram/src/theme/theme-helper.scss b/projects/ngx-reactome-diagram/src/theme/theme-helper.scss new file mode 100644 index 0000000..0e8328a --- /dev/null +++ b/projects/ngx-reactome-diagram/src/theme/theme-helper.scss @@ -0,0 +1,36 @@ +@function modify-background($theme, $background-palette) { + // Replace the background in the color object's background palette. + $theme-color: map-get($theme, color); + $color-background-palette: map-get($theme-color, background); + $color-background-palette: map-merge($color-background-palette, $background-palette); + + // Replace the background in the background palette. + $background-palette: map-get($theme, background); + $background-palette: map-merge($background-palette, $background-palette); + + // Merge the changes into a new theme. + $modified-theme-color: map-merge($theme-color, (background: $color-background-palette)); + $modified-theme: map-merge($theme, (color: $modified-theme-color)); + $modified-theme: map-merge($modified-theme, (background: $background-palette)); + + @return $modified-theme; +} + + +@function modify-foreground($theme, $foreground-palette) { + // Replace the foreground in the color object's foreground palette. + $theme-color: map-get($theme, color); + $color-foreground-palette: map-get($theme-color, foreground); + $color-foreground-palette: map-merge($color-foreground-palette, $foreground-palette); + + // Replace the foreground in the foreground palette. + $foreground-palette: map-get($theme, foreground); + $foreground-palette: map-merge($foreground-palette, $foreground-palette); + + // Merge the changes into a new theme. + $modified-theme-color: map-merge($theme-color, (foreground: $color-foreground-palette)); + $modified-theme: map-merge($theme, (color: $modified-theme-color)); + $modified-theme: map-merge($modified-theme, (foreground: $foreground-palette)); + + @return $modified-theme; +} diff --git a/projects/ngx-reactome-style/package.json b/projects/ngx-reactome-style/package.json index 3444c15..b47d612 100644 --- a/projects/ngx-reactome-style/package.json +++ b/projects/ngx-reactome-style/package.json @@ -3,7 +3,9 @@ "version": "0.0.1", "peerDependencies": { "@angular/common": "^17.3.0", - "@angular/core": "^17.3.0" + "@angular/core": "^17.3.0", + "@angular/material": "^17.3.7", + "@angular/m" }, "dependencies": { "tslib": "^2.3.0" diff --git a/tsconfig.app.json b/tsconfig.app.json index 374cc9d..ef214f3 100644 --- a/tsconfig.app.json +++ b/tsconfig.app.json @@ -3,7 +3,8 @@ "extends": "./tsconfig.json", "compilerOptions": { "outDir": "./out-tsc/app", - "types": [] + "types": [], + "resolveJsonModule": true }, "files": [ "src/main.ts" diff --git a/tsconfig.json b/tsconfig.json index 4dde7e2..fe76815 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -10,6 +10,12 @@ "noFallthroughCasesInSwitch": true, "skipLibCheck": true, "paths": { + "ngx-reactome-cytoscape-style": [ + "./dist/ngx-reactome-cytoscape-style" + ], + "ngx-reactome-diagram": [ + "./dist/ngx-reactome-diagram" + ], "ngx-reactome-style": [ "./dist/ngx-reactome-style" ] @@ -32,6 +38,10 @@ "enableI18nLegacyMessageIdFormat": false, "strictInjectionParameters": true, "strictInputAccessModifiers": true, - "strictTemplates": true + "strictTemplates": true, + "typeRoots": [ + "node_modules/@types", + "node_modules/ngx-reactome-cytoscape-style/types" + ] } } From 4484c61c72e2646eb48cd62d067d79a93730d02d Mon Sep 17 00:00:00 2001 From: guanmingwu Date: Sat, 4 May 2024 12:44:31 -0700 Subject: [PATCH 05/49] compliable diagram component --- angular.json | 3 + package.json | 2 +- projects/ngx-reactome-diagram/README.md | 239 ++++++++++++++++++ .../ngx-reactome-diagram/json-typings.d.ts | 4 + projects/ngx-reactome-diagram/ng-package.json | 8 + projects/ngx-reactome-diagram/package.json | 34 +++ .../src/{app => lib}/app-routing.module.ts | 0 .../src/{app => lib}/app.component.css | 0 .../src/{app => lib}/app.component.css.map | 0 .../src/{app => lib}/app.component.html | 0 .../src/{app => lib}/app.component.scss | 0 .../src/{app => lib}/app.component.spec.ts | 0 .../src/{app => lib}/app.component.ts | 0 .../src/{app => lib}/app.module.ts | 0 .../diagram-iterator.component.html | 0 .../diagram-iterator.component.scss | 0 .../diagram-iterator.component.spec.ts | 0 .../diagram-iterator.component.ts | 0 .../diagram/diagram.component.html | 0 .../diagram/diagram.component.scss | 0 .../diagram/diagram.component.spec.ts | 0 .../{app => lib}/diagram/diagram.component.ts | 35 +-- .../src/{app => lib}/model/diagram.model.ts | 0 .../src/{app => lib}/model/graph.model.ts | 0 .../src/{app => lib}/services/dark.service.ts | 0 .../services/diagram-state.service.spec.ts | 0 .../services/diagram-state.service.ts | 0 .../services/diagram.service.spec.ts | 0 .../{app => lib}/services/diagram.service.ts | 4 +- .../src/{app => lib}/services/roundness.ts | 0 projects/ngx-reactome-diagram/src/main.ts | 2 +- .../ngx-reactome-diagram/src/public-api.ts | 6 + .../ngx-reactome-diagram/tsconfig.lib.json | 15 ++ .../tsconfig.lib.prod.json | 10 + .../ngx-reactome-diagram/tsconfig.spec.json | 14 + 35 files changed, 354 insertions(+), 22 deletions(-) create mode 100644 projects/ngx-reactome-diagram/README.md create mode 100644 projects/ngx-reactome-diagram/json-typings.d.ts create mode 100644 projects/ngx-reactome-diagram/ng-package.json create mode 100644 projects/ngx-reactome-diagram/package.json rename projects/ngx-reactome-diagram/src/{app => lib}/app-routing.module.ts (100%) rename projects/ngx-reactome-diagram/src/{app => lib}/app.component.css (100%) rename projects/ngx-reactome-diagram/src/{app => lib}/app.component.css.map (100%) rename projects/ngx-reactome-diagram/src/{app => lib}/app.component.html (100%) rename projects/ngx-reactome-diagram/src/{app => lib}/app.component.scss (100%) rename projects/ngx-reactome-diagram/src/{app => lib}/app.component.spec.ts (100%) rename projects/ngx-reactome-diagram/src/{app => lib}/app.component.ts (100%) rename projects/ngx-reactome-diagram/src/{app => lib}/app.module.ts (100%) rename projects/ngx-reactome-diagram/src/{app => lib}/diagram-iterator/diagram-iterator.component.html (100%) rename projects/ngx-reactome-diagram/src/{app => lib}/diagram-iterator/diagram-iterator.component.scss (100%) rename projects/ngx-reactome-diagram/src/{app => lib}/diagram-iterator/diagram-iterator.component.spec.ts (100%) rename projects/ngx-reactome-diagram/src/{app => lib}/diagram-iterator/diagram-iterator.component.ts (100%) rename projects/ngx-reactome-diagram/src/{app => lib}/diagram/diagram.component.html (100%) rename projects/ngx-reactome-diagram/src/{app => lib}/diagram/diagram.component.scss (100%) rename projects/ngx-reactome-diagram/src/{app => lib}/diagram/diagram.component.spec.ts (100%) rename projects/ngx-reactome-diagram/src/{app => lib}/diagram/diagram.component.ts (95%) rename projects/ngx-reactome-diagram/src/{app => lib}/model/diagram.model.ts (100%) rename projects/ngx-reactome-diagram/src/{app => lib}/model/graph.model.ts (100%) rename projects/ngx-reactome-diagram/src/{app => lib}/services/dark.service.ts (100%) rename projects/ngx-reactome-diagram/src/{app => lib}/services/diagram-state.service.spec.ts (100%) rename projects/ngx-reactome-diagram/src/{app => lib}/services/diagram-state.service.ts (100%) rename projects/ngx-reactome-diagram/src/{app => lib}/services/diagram.service.spec.ts (100%) rename projects/ngx-reactome-diagram/src/{app => lib}/services/diagram.service.ts (99%) rename projects/ngx-reactome-diagram/src/{app => lib}/services/roundness.ts (100%) create mode 100644 projects/ngx-reactome-diagram/src/public-api.ts create mode 100644 projects/ngx-reactome-diagram/tsconfig.lib.json create mode 100644 projects/ngx-reactome-diagram/tsconfig.lib.prod.json create mode 100644 projects/ngx-reactome-diagram/tsconfig.spec.json diff --git a/angular.json b/angular.json index e00967c..89215a1 100644 --- a/angular.json +++ b/angular.json @@ -191,5 +191,8 @@ } } } + }, + "cli": { + "analytics": false } } diff --git a/package.json b/package.json index a682ec9..14992c4 100644 --- a/package.json +++ b/package.json @@ -13,7 +13,6 @@ }, "private": false, "dependencies": { - "ngx-reactome-cytoscape-style": "^0.0.5", "@angular/animations": "^17.3.0", "@angular/cdk": "^17.3.0", "@angular/common": "^17.3.0", @@ -28,6 +27,7 @@ "cytoscape": "^3.29.2", "cytoscape-fcose": "^2.2.0", "cytoscape-layers": "^2.4.4", + "ngx-reactome-cytoscape-style": "^0.0.5", "rxjs": "~7.8.0", "tslib": "^2.3.0", "vectorious": "^6.1.12", diff --git a/projects/ngx-reactome-diagram/README.md b/projects/ngx-reactome-diagram/README.md new file mode 100644 index 0000000..60929ec --- /dev/null +++ b/projects/ngx-reactome-diagram/README.md @@ -0,0 +1,239 @@ +# Reactome Cytoscape Style + +## Usage + +To use reactome-cytoscape-style, use the following: + +```typescript +import {Reactome} from "reactome-cytoscape-style"; + +const container: HTMLElement = document.querySelector('#cytoscape-container'); +const reactome = new Reactome.Style(container); +const cy = cytoscape({ + ..., + container: container, + style: reactome.getStyleSheet() +}) + +reactome.bindToCytoscape(cy) // Enables style interactivity +``` + +### Types + +In order to use the reactome-cytoscape-style, you need to type your nodes and edges correctly, so that we can style them accordingly. + +```typescript +const element: cytoscape.ElementDefinition = { + data: { + id: 'ID', // string, unique among all elements + height: 100, // number, for nodes + width: 100, // number, for nodes + displayName: "NODE LABEL", // string, for nodes + stoichiometry: 1, // number, for edges + parent: 'COMPARTMENT ID' // string, for nodes | If present, will place the node withing the identified compartment + }, + position: {x: 0, y: 0}, // for nodes, if required to be placed manually + classes: ['Type', 'Family Type'] // Values found in tables bellow +} +``` + +To do so, whee defining your nodes and edges, apply to them the classes that you will find in the table bellow + +#### 1. Nodes + +The first thing to notice is that the output network needs to be [bipartite](https://en.wikipedia.org/wiki/Bipartite_graph). +Indeed, both `reaction` and `PhysicalEntity` (interacting molecules) are represented by nodes. +In principle, you should always have a `reaction` between every 2 `PhysicalEnity` nodes. + +##### 1.a PhysicalEntity + +| Type | Classes | Note | +|---------------------|---------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Protein | `['Protein', 'PhysicalEntity']` | | +| GenomeEncodedEntity | `['GenomeEncodedEntity', 'PhysicalEntity']` | This corresponds to abstract concepts and/or to any macromolecule that is encoded by DNA, but not fitting to any other categories available | +| RNA | `['RNA', 'PhysicalEntity']` | | +| Gene | `['Gene', 'PhysicalEntity']` | | +| Molecule | `['Molecule', 'PhysicalEntity']` | This corresponds to any chemicals, e.g. metabolites | +| | | | +| Complex | `['Complex', 'PhysicalEntity']` | This corresponds to a group of `PhysicalEntity` which chemically bonding together. It is represented as a single node, but represents a group of molecule. | +| EntitySet | `['EntitySet', 'PhysicalEntity']` | This corresponds to a group of `PhysicalEntity` which are interchangeable, e.g. a family of proteins targeted by an enzyme . It is represented as a single node, but represents a group of molecule. | + +##### 1.b reaction + +| Type | Classes | Note | +|--------------|--------------------------------|-------------------------------------------------------------------------------| +| association | `['association', 'reaction']` | 2 `PhysicalEntity` or more binding together | +| dissociation | `['dissociation', 'reaction']` | 1 `Complex` separating in its components | +| transition | `['transition', 'reaction']` | A transition from a compartment to another, or any other non-chemical process | +| uncertain | `['uncertain', 'reaction']` | A reaction which have not been resolved clearly yet | +| omitted | `['omitted', 'reaction']` | A complex process involving many reactions summarized in a single one | + +##### 1.c Compartment + +Compartments are a special case of nodes since they are not interacting. + +| Type | Classes | Note | +|-------------|-------------------|------| +| Compartment | `['Compartment']` | | + +##### 1.c Modifications + +Modifications are a special case of nodes since they are associated to an Entity. + +| Type | Classes | Note | +|--------------|--------------------|-------------------------------------------------------------------------------| +| Modification | `['Modification']` | Requires explicit position, width, height and parent `nodeId` within its data | + +#### 2. Edges + +They are 2 big types of edges: those going from the `PhysicalEntity` to the `reaction`, and those going from `reaction` to the next `PhysicalEntity` + +['production', 'catalysis', 'positive-regulation', 'negative-regulation', 'set-to-member'] + +| Direction | Type | Classes | Note | +|----------------------------------|---------------------|---------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------| +| `PhysicalEntity` --> `reaction` | consumption | `['consumption', 'incoming']` | Is used for reaction's **inputs** | +| | catalysis | `['catalysis', 'incoming']` | Is used for reaction's **catalyzers** | +| | positive-regulation | `['positive-regulation', 'incoming']` | Is used for reaction's **positive regulators** | +| | negative-regulation | `['negative-regulation', 'incoming']` | Is used for reaction's **negative regulators** | +| | | | | +| `reaction` --> `PhysicalEntity` | production | `['production', 'outgoing']` | Is used for reactions' **outputs** | +| | | | | +| `EntitySet` --> `PhysicalEntity` | set-to-member | `['set-to-member']` | Is used to link `EntitySet` to one of its member also visible in the network. Only time when there is a direct link between 2 `PhysicalEntity` | + +### Properties + +Reactome Cytoscape Style defines several properties that allow you to customize it and define strong and switchable color themes (e.g. dark-them and light-theme) + +Here is a table summarizing how to access and customize all those properties. + +| Group | Key | Type | CSS property | Default | Description | +|---------------------|------------------|----------------------|-------------------------|-----------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------| +| global | thickness | number | *Not available* | 4 | Thickness of all the lines in the network | +| | surface | color | `--surface` | `#F6FEFF` ![#F6FEFF](https://placehold.co/65x20/F6FEFF/F6FEFF) | Background color of neutral elements | +| | onSurface | color | `--on-surface` | `#001F24` ![#001F24](https://placehold.co/65x20/001F24/001F24) | Stroke color of elements place on surface, as well as all lines | +| | primary | color | `--primary` | `#006782` ![#006782](https://placehold.co/65x20/006782/006782) | Main color, used for the outline of Genome Encoded Entities by default | +| | onPrimary | color | `--on-primary` | `#FFFFFF` ![#FFFFFF](https://placehold.co/65x20/FFFFFF/FFFFFF) | Color of text placed on top of primary elements | +| | positive | color | `--positive` | `#0C9509` ![#0C9509](https://placehold.co/65x20/0C9509/0C9509) | Color of positive element, like positive regulation | +| | negative | color | `--negative` | `#BA1A1A` ![#BA1A1A](https://placehold.co/65x20/BA1A1A/BA1A1A) | Color of negative elements, like negative regulation | +| | selectNode | color | `--select-node` | `#6EB3E4` ![#6EB3E4](https://placehold.co/65x20/6EB3E4/6EB3E4) | Color of selection on nodes | +| | selectEdge | color | `--select-edge` | `#0561A6` ![#0561A6](https://placehold.co/65x20/0561A6/0561A6) | Color of selection on edges | +| | hoverNode | color | `--hover-node` | `#78E076` ![#78E076](https://placehold.co/65x20/78E076/78E076) | Color of hover on nodes | +| | hoverEdge | color | `--hover-edge` | `#04B601` ![#04B601](https://placehold.co/65x20/04B601/04B601) | Color of hover on edges | +| | | | | | | +| compartment | fill | color | `--compartment` | `#E5834A` ![#E5834A](https://placehold.co/65x20/E5834A/E5834A) | Background and stroke color of compartments. The background opacity is modulated by its own property | +| | opacity | number | *Not available* | 0.12 | Opacity of the background of compartments | +| | | | | | | +| sub-pathway | opacity | `[number, number][]` | *Not available* | [[0.2, 0.4], [0.4, 0]] | Opacity key points for sub-pathways. First value is the zoom level, Second value is the associated opacity | +| | labelOpacity | `[number, number][]` | *Not available* | [[0.2, 1], [0.4, 0]] | Opacity key points for sub-pathways labels. First value is the zoom level, Second value is the associated opacity | +| | | | | | | +| protein | fill | color | `--primary-contrast-1` | `#001F29` ![#001F29](https://placehold.co/65x20/001F29/001F29) | Background color of proteins. The `--primary-contrast-1` corresponds to the shade of primary with the strongest contrast against `--surface` | +| | | | | | | +| genomeEncodedEntity | fill | color | `--primary-contrast-1` | `#001F29` ![#001F29](https://placehold.co/65x20/001F29/001F29) | By default, use the same value as the one used by protein | +| | stroke | color | `--primary` | `#006782` ![#006782](https://placehold.co/65x20/006782/006782) | By default, use the `global.primary` color | +| | | | | | | +| rna | fill | color | `--primary-contrast-2` | `#003545` ![#003545](https://placehold.co/65x20/003545/003545) | The `--primary-contrast-2` corresponds to the shade of primary with the middle contrast against `--surface` | +| | | | | | | +| gene | decorationHeight | number | *Not available* | 20 | Height of the top expression arrow decoration. Should leave enough place to fit arrowHeadSize plus a comfortable margin. | +| | arrowHeadSize | number | *Not available* | 10 | Height of equilateral triangle used as the arrow head of the decoration | +| | borderRadius | number | *Not available* | 8 | Corner radius of the background | +| | arrowRadius | number | *Not available* | 8 | Radius of turn in the decoration arrow. Should be < `gene.decorationHeight` | +| | fill | color | `--primary-contrast-3` | `#004D62` ![#004D62](https://placehold.co/65x20/004D62/004D62) | The `--primary-contrast-3` corresponds to the shade of primary with the weakest contrast against `--surface` | +| | | | | | | +| molecule | fill | color | `--surface` | `#F6FEFF` ![#F6FEFF](https://placehold.co/65x20/F6FEFF/F6FEFF) | By default, use the `global.surface` value | +| | stroke | color | `--on-surface` | `#001F24` ![#001F24](https://placehold.co/65x20/001F24/001F24) | By default, use the `global.onSurface` value | +| | | | | | | +| complex | cut | number | *Not available* | | | +| | fill | color | `--tertiary-contrast-1` | `#00315C` ![#00315C](https://placehold.co/65x20/00315C/00315C) | The `--tertiary-contrast-1` corresponds to the shade of tertiary with the strongest contrast against `--surface` | +| | stroke | color | `--on-tertiary` | `#FFFFFF` ![#FFFFFF](https://placehold.co/65x20/FFFFFF/FFFFFF) | Font and inner border color. Usually close to `global.surface` | +| | | | | | | +| entitySet | radius | number | *Not available* | 10 | Radius of the different swirls of the curly braces bordering the node | +| | fill | color | `--tertiary-contrast-2` | `#1660A5` ![#1660A5](https://placehold.co/65x20/1660A5/1660A5) | The `--tertiary-contrast-2` corresponds to the shade of tertiary with the weakest contrast against `--surface` | +| | stroke | color | `--on-tertiary` | `#FFFFFF` ![#FFFFFF](https://placehold.co/65x20/FFFFFF/FFFFFF) | | + +[//]: # (`#RGB` ![#RGB](https://placehold.co/65x20/RGB/RGB)) + +> All of the JavaScript defined properties accept either a direct value or a function that gives that value + +#### Update by JS properties + +In order to customise your style, you can provide to the `Reactome.Style()` constructor a property object, of type `Reactome.UserProperties`, where you can define the properties that you want to customize. The values can either be a direct value, or a function that provide the required value type + +```typescript +import {Reactome} from "reactome-cytoscape-style"; + +const container: HTMLElement = document.querySelector('#cytoscape-container'); +const properties: Reactome.UserProperties = {}; +const style = new Reactome.Style(container, properties); + +const cy = cytoscape({ + ..., + container: container, + style: style.getStyleSheet() +}) + +function updateJsProperty() { + // Updating initial properties object will update style values + properties.group.key = newValue; + // Needed to apply the changes + style.update(cy); +} +``` + +Updating the `Reactome.UserProperties` you used to initialize the `Reactome.Style`, here `style`, will automatically update the inner state of the style. +You simply need to force an update on the style afterwards so that the new values are taken into account + +#### Update by CSS properties + +Another way to customise the reactome-cytoscape-style is though the usage of css variables. +We are using the values as they can be found on the cytoscape container you provided to the `Reactome.Style()` constructor. +This means that you can define your variables either directly on the container, or within one of its parent in the DOM. + +That is specifically useful when you have defined a light and a dark theme. +However, as it is the case when updating the style though Js properties, you also need to trigger an update on the style after the properties have changed so that the change can be taken into account. + +```typescript +import {Reactome} from "reactome-cytoscape-style"; + +const container: HTMLElement = document.querySelector('#cytoscape-container'); +const style = new Reactome.Style(container); + +const cy = cytoscape({ + ..., + container: container, + style: style.getStyleSheet() +}) + +function updateCssProperty(property: string, newValue: string) { + // Updating Reactome.Style.css is updating the CSS variable on the container element + // in order to mimic a css variable change + Reactome.Style.css.setProperty('--property', newValue); + // Needed to apply the changes + style.update(cy); +} +``` + +## Developers + +This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 16.2.0. + +### Code scaffolding + +Run `ng generate component component-name --project reactome-cytoscape-style` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module --project reactome-cytoscape-style`. +> Note: Don't forget to add `--project reactome-cytoscape-style` or else it will be added to the default project in your `angular.json` file. + +### Build + +Run `ng build reactome-cytoscape-style` to build the project. The build artifacts will be stored in the `dist/` directory. + +### Publishing + +After building your library with `ng build reactome-cytoscape-style`, go to the dist folder `cd dist/reactome-cytoscape-style` and run `npm publish`. + +### Running unit tests + +Run `ng test reactome-cytoscape-style` to execute the unit tests via [Karma](https://karma-runner.github.io). + +### Further help + +To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page. diff --git a/projects/ngx-reactome-diagram/json-typings.d.ts b/projects/ngx-reactome-diagram/json-typings.d.ts new file mode 100644 index 0000000..09eae41 --- /dev/null +++ b/projects/ngx-reactome-diagram/json-typings.d.ts @@ -0,0 +1,4 @@ +declare module "*.json" { + const value: any; + export default value; +} \ No newline at end of file diff --git a/projects/ngx-reactome-diagram/ng-package.json b/projects/ngx-reactome-diagram/ng-package.json new file mode 100644 index 0000000..287aa40 --- /dev/null +++ b/projects/ngx-reactome-diagram/ng-package.json @@ -0,0 +1,8 @@ +{ + "$schema": "../../node_modules/ng-packagr/ng-package.schema.json", + "dest": "../../dist/ngx-reactome-diagram", + "lib": { + "entryFile": "src/public-api.ts" + }, + "assets": ["./src/assets"] +} diff --git a/projects/ngx-reactome-diagram/package.json b/projects/ngx-reactome-diagram/package.json new file mode 100644 index 0000000..55062fa --- /dev/null +++ b/projects/ngx-reactome-diagram/package.json @@ -0,0 +1,34 @@ +{ + "name": "ngx-reactome-diagram", + "version": "0.0.5", + "peerDependencies": { + "cytoscape": "^3.27.0", + "cytoscape-fcose": "^2.2.0", + "cytoscape-layers": "^2.4.4", + "lodash.memoize": "^4.1.2", + "@angular/common": "^17.3.0", + "@angular/core": "^17.3.0" + }, + "dependencies": { + "tslib": "^2.3.0" + }, + "devDependencies": { + "@angular-devkit/build-angular": "^17.3.6", + "@angular/cli": "^17.3.6", + "@angular/compiler-cli": "^17.3.7", + "@types/cytoscape": "^3.21.0", + "@types/cytoscape-fcose": "^2.2.4", + "@types/jasmine": "~4.3.0", + "@types/lodash": "^4.14.202", + "angular-cli-ghpages": "^1.0.6", + "jasmine-core": "~4.6.0", + "karma": "~6.4.0", + "karma-chrome-launcher": "~3.2.0", + "karma-coverage": "~2.2.0", + "karma-jasmine": "~5.1.0", + "karma-jasmine-html-reporter": "~2.1.0", + "ng-packagr": "^17.3.0", + "npm-run-all": "^4.1.1", + "typescript": "~5.4.5" + } +} diff --git a/projects/ngx-reactome-diagram/src/app/app-routing.module.ts b/projects/ngx-reactome-diagram/src/lib/app-routing.module.ts similarity index 100% rename from projects/ngx-reactome-diagram/src/app/app-routing.module.ts rename to projects/ngx-reactome-diagram/src/lib/app-routing.module.ts diff --git a/projects/ngx-reactome-diagram/src/app/app.component.css b/projects/ngx-reactome-diagram/src/lib/app.component.css similarity index 100% rename from projects/ngx-reactome-diagram/src/app/app.component.css rename to projects/ngx-reactome-diagram/src/lib/app.component.css diff --git a/projects/ngx-reactome-diagram/src/app/app.component.css.map b/projects/ngx-reactome-diagram/src/lib/app.component.css.map similarity index 100% rename from projects/ngx-reactome-diagram/src/app/app.component.css.map rename to projects/ngx-reactome-diagram/src/lib/app.component.css.map diff --git a/projects/ngx-reactome-diagram/src/app/app.component.html b/projects/ngx-reactome-diagram/src/lib/app.component.html similarity index 100% rename from projects/ngx-reactome-diagram/src/app/app.component.html rename to projects/ngx-reactome-diagram/src/lib/app.component.html diff --git a/projects/ngx-reactome-diagram/src/app/app.component.scss b/projects/ngx-reactome-diagram/src/lib/app.component.scss similarity index 100% rename from projects/ngx-reactome-diagram/src/app/app.component.scss rename to projects/ngx-reactome-diagram/src/lib/app.component.scss diff --git a/projects/ngx-reactome-diagram/src/app/app.component.spec.ts b/projects/ngx-reactome-diagram/src/lib/app.component.spec.ts similarity index 100% rename from projects/ngx-reactome-diagram/src/app/app.component.spec.ts rename to projects/ngx-reactome-diagram/src/lib/app.component.spec.ts diff --git a/projects/ngx-reactome-diagram/src/app/app.component.ts b/projects/ngx-reactome-diagram/src/lib/app.component.ts similarity index 100% rename from projects/ngx-reactome-diagram/src/app/app.component.ts rename to projects/ngx-reactome-diagram/src/lib/app.component.ts diff --git a/projects/ngx-reactome-diagram/src/app/app.module.ts b/projects/ngx-reactome-diagram/src/lib/app.module.ts similarity index 100% rename from projects/ngx-reactome-diagram/src/app/app.module.ts rename to projects/ngx-reactome-diagram/src/lib/app.module.ts diff --git a/projects/ngx-reactome-diagram/src/app/diagram-iterator/diagram-iterator.component.html b/projects/ngx-reactome-diagram/src/lib/diagram-iterator/diagram-iterator.component.html similarity index 100% rename from projects/ngx-reactome-diagram/src/app/diagram-iterator/diagram-iterator.component.html rename to projects/ngx-reactome-diagram/src/lib/diagram-iterator/diagram-iterator.component.html diff --git a/projects/ngx-reactome-diagram/src/app/diagram-iterator/diagram-iterator.component.scss b/projects/ngx-reactome-diagram/src/lib/diagram-iterator/diagram-iterator.component.scss similarity index 100% rename from projects/ngx-reactome-diagram/src/app/diagram-iterator/diagram-iterator.component.scss rename to projects/ngx-reactome-diagram/src/lib/diagram-iterator/diagram-iterator.component.scss diff --git a/projects/ngx-reactome-diagram/src/app/diagram-iterator/diagram-iterator.component.spec.ts b/projects/ngx-reactome-diagram/src/lib/diagram-iterator/diagram-iterator.component.spec.ts similarity index 100% rename from projects/ngx-reactome-diagram/src/app/diagram-iterator/diagram-iterator.component.spec.ts rename to projects/ngx-reactome-diagram/src/lib/diagram-iterator/diagram-iterator.component.spec.ts diff --git a/projects/ngx-reactome-diagram/src/app/diagram-iterator/diagram-iterator.component.ts b/projects/ngx-reactome-diagram/src/lib/diagram-iterator/diagram-iterator.component.ts similarity index 100% rename from projects/ngx-reactome-diagram/src/app/diagram-iterator/diagram-iterator.component.ts rename to projects/ngx-reactome-diagram/src/lib/diagram-iterator/diagram-iterator.component.ts diff --git a/projects/ngx-reactome-diagram/src/app/diagram/diagram.component.html b/projects/ngx-reactome-diagram/src/lib/diagram/diagram.component.html similarity index 100% rename from projects/ngx-reactome-diagram/src/app/diagram/diagram.component.html rename to projects/ngx-reactome-diagram/src/lib/diagram/diagram.component.html diff --git a/projects/ngx-reactome-diagram/src/app/diagram/diagram.component.scss b/projects/ngx-reactome-diagram/src/lib/diagram/diagram.component.scss similarity index 100% rename from projects/ngx-reactome-diagram/src/app/diagram/diagram.component.scss rename to projects/ngx-reactome-diagram/src/lib/diagram/diagram.component.scss diff --git a/projects/ngx-reactome-diagram/src/app/diagram/diagram.component.spec.ts b/projects/ngx-reactome-diagram/src/lib/diagram/diagram.component.spec.ts similarity index 100% rename from projects/ngx-reactome-diagram/src/app/diagram/diagram.component.spec.ts rename to projects/ngx-reactome-diagram/src/lib/diagram/diagram.component.spec.ts diff --git a/projects/ngx-reactome-diagram/src/app/diagram/diagram.component.ts b/projects/ngx-reactome-diagram/src/lib/diagram/diagram.component.ts similarity index 95% rename from projects/ngx-reactome-diagram/src/app/diagram/diagram.component.ts rename to projects/ngx-reactome-diagram/src/lib/diagram/diagram.component.ts index 0b8976e..4de815e 100644 --- a/projects/ngx-reactome-diagram/src/app/diagram/diagram.component.ts +++ b/projects/ngx-reactome-diagram/src/lib/diagram/diagram.component.ts @@ -25,7 +25,8 @@ import {MatDialog} from "@angular/material/dialog"; @Component({ selector: 'cr-diagram', templateUrl: './diagram.component.html', - styleUrls: ['./diagram.component.scss'] + styleUrls: ['./diagram.component.scss'], + standalone: true }) export class DiagramComponent implements AfterViewInit, OnChanges { title = 'pathway-browser'; @@ -79,22 +80,22 @@ export class DiagramComponent implements AfterViewInit, OnChanges { this.reactomeStyle = new Style(container); - this.diagram.getLegend() - .subscribe(legend => { - this.legend = cytoscape({ - container: legendContainer, - elements: legend, - style: this.reactomeStyle?.getStyleSheet(), - layout: {name: "preset"}, - boxSelectionEnabled: false - }); - this.reactomeStyle?.bindToCytoscape(this.legend); - this.legend.zoomingEnabled(false); - this.legend.panningEnabled(false); - this.legend.minZoom(0) - const bb = this.legend.elements().boundingBox(); - // this.ratio = bb.w / bb.h; - }); + // this.diagram.getLegend() + // .subscribe(legend => { + // this.legend = cytoscape({ + // container: legendContainer, + // elements: legend, + // style: this.reactomeStyle?.getStyleSheet(), + // layout: {name: "preset"}, + // boxSelectionEnabled: false + // }); + // this.reactomeStyle?.bindToCytoscape(this.legend); + // this.legend.zoomingEnabled(false); + // this.legend.panningEnabled(false); + // this.legend.minZoom(0) + // const bb = this.legend.elements().boundingBox(); + // // this.ratio = bb.w / bb.h; + // }); this.loadDiagram(); diff --git a/projects/ngx-reactome-diagram/src/app/model/diagram.model.ts b/projects/ngx-reactome-diagram/src/lib/model/diagram.model.ts similarity index 100% rename from projects/ngx-reactome-diagram/src/app/model/diagram.model.ts rename to projects/ngx-reactome-diagram/src/lib/model/diagram.model.ts diff --git a/projects/ngx-reactome-diagram/src/app/model/graph.model.ts b/projects/ngx-reactome-diagram/src/lib/model/graph.model.ts similarity index 100% rename from projects/ngx-reactome-diagram/src/app/model/graph.model.ts rename to projects/ngx-reactome-diagram/src/lib/model/graph.model.ts diff --git a/projects/ngx-reactome-diagram/src/app/services/dark.service.ts b/projects/ngx-reactome-diagram/src/lib/services/dark.service.ts similarity index 100% rename from projects/ngx-reactome-diagram/src/app/services/dark.service.ts rename to projects/ngx-reactome-diagram/src/lib/services/dark.service.ts diff --git a/projects/ngx-reactome-diagram/src/app/services/diagram-state.service.spec.ts b/projects/ngx-reactome-diagram/src/lib/services/diagram-state.service.spec.ts similarity index 100% rename from projects/ngx-reactome-diagram/src/app/services/diagram-state.service.spec.ts rename to projects/ngx-reactome-diagram/src/lib/services/diagram-state.service.spec.ts diff --git a/projects/ngx-reactome-diagram/src/app/services/diagram-state.service.ts b/projects/ngx-reactome-diagram/src/lib/services/diagram-state.service.ts similarity index 100% rename from projects/ngx-reactome-diagram/src/app/services/diagram-state.service.ts rename to projects/ngx-reactome-diagram/src/lib/services/diagram-state.service.ts diff --git a/projects/ngx-reactome-diagram/src/app/services/diagram.service.spec.ts b/projects/ngx-reactome-diagram/src/lib/services/diagram.service.spec.ts similarity index 100% rename from projects/ngx-reactome-diagram/src/app/services/diagram.service.spec.ts rename to projects/ngx-reactome-diagram/src/lib/services/diagram.service.spec.ts diff --git a/projects/ngx-reactome-diagram/src/app/services/diagram.service.ts b/projects/ngx-reactome-diagram/src/lib/services/diagram.service.ts similarity index 99% rename from projects/ngx-reactome-diagram/src/app/services/diagram.service.ts rename to projects/ngx-reactome-diagram/src/lib/services/diagram.service.ts index 0c431fe..83c1cbf 100644 --- a/projects/ngx-reactome-diagram/src/app/services/diagram.service.ts +++ b/projects/ngx-reactome-diagram/src/lib/services/diagram.service.ts @@ -3,9 +3,7 @@ import {forkJoin, map, Observable, of, tap} from "rxjs"; import {HttpClient, HttpHeaders} from "@angular/common/http"; import {Diagram, Edge, Node, NodeConnector, Position, Prop, Rectangle} from "../model/diagram.model"; import {Edge as GraphEdge, Graph, Node as GraphNode} from "../model/graph.model"; -// @ts-ignore -import Reactome, {Style} from "reactome-cytoscape-style"; -// @ts-ignore +import Reactome, {Style} from "ngx-reactome-cytoscape-style"; import legend from "../../assets/json/legend.json" import {array} from "vectorious"; diff --git a/projects/ngx-reactome-diagram/src/app/services/roundness.ts b/projects/ngx-reactome-diagram/src/lib/services/roundness.ts similarity index 100% rename from projects/ngx-reactome-diagram/src/app/services/roundness.ts rename to projects/ngx-reactome-diagram/src/lib/services/roundness.ts diff --git a/projects/ngx-reactome-diagram/src/main.ts b/projects/ngx-reactome-diagram/src/main.ts index c58dc05..a45079c 100644 --- a/projects/ngx-reactome-diagram/src/main.ts +++ b/projects/ngx-reactome-diagram/src/main.ts @@ -1,6 +1,6 @@ import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; -import { AppModule } from './app/app.module'; +import { AppModule } from './lib/app.module'; platformBrowserDynamic().bootstrapModule(AppModule) diff --git a/projects/ngx-reactome-diagram/src/public-api.ts b/projects/ngx-reactome-diagram/src/public-api.ts new file mode 100644 index 0000000..3d7d884 --- /dev/null +++ b/projects/ngx-reactome-diagram/src/public-api.ts @@ -0,0 +1,6 @@ +/* + * Public API Surface of ngx-reactome-diagram + */ + +// export default {}; +export {DiagramComponent} from './lib/diagram/diagram.component'; diff --git a/projects/ngx-reactome-diagram/tsconfig.lib.json b/projects/ngx-reactome-diagram/tsconfig.lib.json new file mode 100644 index 0000000..f26e583 --- /dev/null +++ b/projects/ngx-reactome-diagram/tsconfig.lib.json @@ -0,0 +1,15 @@ +/* To learn more about this file see: https://angular.io/config/tsconfig. */ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "outDir": "../../out-tsc/lib", + "declaration": true, + "declarationMap": true, + "inlineSources": true, + "resolveJsonModule": true, + "types": [], + }, + "exclude": [ + "**/*.spec.ts" + ] +} diff --git a/projects/ngx-reactome-diagram/tsconfig.lib.prod.json b/projects/ngx-reactome-diagram/tsconfig.lib.prod.json new file mode 100644 index 0000000..06de549 --- /dev/null +++ b/projects/ngx-reactome-diagram/tsconfig.lib.prod.json @@ -0,0 +1,10 @@ +/* To learn more about this file see: https://angular.io/config/tsconfig. */ +{ + "extends": "./tsconfig.lib.json", + "compilerOptions": { + "declarationMap": false + }, + "angularCompilerOptions": { + "compilationMode": "partial" + } +} diff --git a/projects/ngx-reactome-diagram/tsconfig.spec.json b/projects/ngx-reactome-diagram/tsconfig.spec.json new file mode 100644 index 0000000..ce7048b --- /dev/null +++ b/projects/ngx-reactome-diagram/tsconfig.spec.json @@ -0,0 +1,14 @@ +/* To learn more about this file see: https://angular.io/config/tsconfig. */ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "outDir": "../../out-tsc/spec", + "types": [ + "jasmine" + ] + }, + "include": [ + "**/*.spec.ts", + "**/*.d.ts" + ] +} From c0a55d82342bb8486bc1802825e4a516e04e6a5a Mon Sep 17 00:00:00 2001 From: guanmingwu Date: Sun, 5 May 2024 15:35:21 -0700 Subject: [PATCH 06/49] minor update --- .../src/lib/diagram/diagram.component.html | 118 +++++++++--------- .../src/lib/diagram/diagram.component.ts | 6 +- 2 files changed, 64 insertions(+), 60 deletions(-) diff --git a/projects/ngx-reactome-diagram/src/lib/diagram/diagram.component.html b/projects/ngx-reactome-diagram/src/lib/diagram/diagram.component.html index eef3ce3..c97035d 100644 --- a/projects/ngx-reactome-diagram/src/lib/diagram/diagram.component.html +++ b/projects/ngx-reactome-diagram/src/lib/diagram/diagram.component.html @@ -1,59 +1,59 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + +

This is a diagram view

\ No newline at end of file diff --git a/projects/ngx-reactome-diagram/src/lib/diagram/diagram.component.ts b/projects/ngx-reactome-diagram/src/lib/diagram/diagram.component.ts index 4de815e..abf4c99 100644 --- a/projects/ngx-reactome-diagram/src/lib/diagram/diagram.component.ts +++ b/projects/ngx-reactome-diagram/src/lib/diagram/diagram.component.ts @@ -20,13 +20,17 @@ import {FormControl} from "@angular/forms"; import {DiagramStateService} from "../services/diagram-state.service"; import {UntilDestroy} from "@ngneat/until-destroy"; import {MatDialog} from "@angular/material/dialog"; +import { CommonModule } from '@angular/common'; @UntilDestroy({checkProperties: true}) @Component({ selector: 'cr-diagram', templateUrl: './diagram.component.html', styleUrls: ['./diagram.component.scss'], - standalone: true + standalone: true, + imports: [ + CommonModule + ] }) export class DiagramComponent implements AfterViewInit, OnChanges { title = 'pathway-browser'; From 09fe9cc573daaa141cdadfbad61b80f4a9fd74a2 Mon Sep 17 00:00:00 2001 From: guanmingwu Date: Tue, 14 May 2024 13:24:50 -0700 Subject: [PATCH 07/49] updated to show legend --- .../ngx-reactome-cytoscape-style/package.json | 6 +- .../src/lib/interactivity.ts | 2 +- projects/ngx-reactome-diagram/package.json | 6 +- .../src/lib/app-routing.module.ts | 18 ------ .../src/lib/app.component.css | 3 - .../src/lib/app.component.css.map | 1 - .../src/lib/app.component.html | 1 - .../src/lib/app.component.scss | 0 .../src/lib/app.component.spec.ts | 27 --------- .../src/lib/app.component.ts | 10 ---- .../src/lib/app.module.ts | 60 ------------------- .../src/lib/diagram/diagram.component.html | 8 +-- .../src/lib/diagram/diagram.component.ts | 35 ++++++----- 13 files changed, 30 insertions(+), 147 deletions(-) delete mode 100644 projects/ngx-reactome-diagram/src/lib/app-routing.module.ts delete mode 100644 projects/ngx-reactome-diagram/src/lib/app.component.css delete mode 100644 projects/ngx-reactome-diagram/src/lib/app.component.css.map delete mode 100644 projects/ngx-reactome-diagram/src/lib/app.component.html delete mode 100644 projects/ngx-reactome-diagram/src/lib/app.component.scss delete mode 100644 projects/ngx-reactome-diagram/src/lib/app.component.spec.ts delete mode 100644 projects/ngx-reactome-diagram/src/lib/app.component.ts delete mode 100644 projects/ngx-reactome-diagram/src/lib/app.module.ts diff --git a/projects/ngx-reactome-cytoscape-style/package.json b/projects/ngx-reactome-cytoscape-style/package.json index f361261..3124092 100644 --- a/projects/ngx-reactome-cytoscape-style/package.json +++ b/projects/ngx-reactome-cytoscape-style/package.json @@ -1,13 +1,13 @@ { "name": "ngx-reactome-cytoscape-style", - "version": "0.0.5", + "version": "0.0.6", "peerDependencies": { "cytoscape": "^3.27.0", "cytoscape-fcose": "^2.2.0", "cytoscape-layers": "^2.4.4", "lodash.memoize": "^4.1.2", - "@angular/common": "^17.3.0", - "@angular/core": "^17.3.0" + "@angular/common": "^17.2.4", + "@angular/core": "^17.2.4" }, "dependencies": { "tslib": "^2.3.0" diff --git a/projects/ngx-reactome-cytoscape-style/src/lib/interactivity.ts b/projects/ngx-reactome-cytoscape-style/src/lib/interactivity.ts index c3a1822..e25c4ef 100644 --- a/projects/ngx-reactome-cytoscape-style/src/lib/interactivity.ts +++ b/projects/ngx-reactome-cytoscape-style/src/lib/interactivity.ts @@ -10,7 +10,7 @@ cytoscape.use(Layers) export class Interactivity { constructor(private cy: cytoscape.Core, private properties: Properties) { // @ts-ignore - cy.elements().ungrabify().panify(); + // cy.elements().ungrabify().panify(); this.initHover(cy); this.initSelect(cy); this.initZoom(cy); diff --git a/projects/ngx-reactome-diagram/package.json b/projects/ngx-reactome-diagram/package.json index 55062fa..701a91a 100644 --- a/projects/ngx-reactome-diagram/package.json +++ b/projects/ngx-reactome-diagram/package.json @@ -1,13 +1,13 @@ { "name": "ngx-reactome-diagram", - "version": "0.0.5", + "version": "0.0.6", "peerDependencies": { "cytoscape": "^3.27.0", "cytoscape-fcose": "^2.2.0", "cytoscape-layers": "^2.4.4", "lodash.memoize": "^4.1.2", - "@angular/common": "^17.3.0", - "@angular/core": "^17.3.0" + "@angular/common": "^17.2.4", + "@angular/core": "^17.2.4" }, "dependencies": { "tslib": "^2.3.0" diff --git a/projects/ngx-reactome-diagram/src/lib/app-routing.module.ts b/projects/ngx-reactome-diagram/src/lib/app-routing.module.ts deleted file mode 100644 index 2c86ca1..0000000 --- a/projects/ngx-reactome-diagram/src/lib/app-routing.module.ts +++ /dev/null @@ -1,18 +0,0 @@ -import {RouterModule, Routes} from "@angular/router"; -import {NgModule} from "@angular/core"; -import {DiagramComponent} from "./diagram/diagram.component"; -import {DiagramIteratorComponent} from "./diagram-iterator/diagram-iterator.component"; - -export const routes: Routes = [ - {path: 'iterate', component: DiagramIteratorComponent}, - {path: 'iterate/:id', component: DiagramIteratorComponent}, - {path: ':id', component: DiagramComponent}, - {path: '**', redirectTo: 'R-HSA-453279'} -] - - -@NgModule({ - imports: [RouterModule.forRoot(routes, {bindToComponentInputs: true})], - exports: [RouterModule] -}) -export class AppRoutingModule { } diff --git a/projects/ngx-reactome-diagram/src/lib/app.component.css b/projects/ngx-reactome-diagram/src/lib/app.component.css deleted file mode 100644 index 2d17866..0000000 --- a/projects/ngx-reactome-diagram/src/lib/app.component.css +++ /dev/null @@ -1,3 +0,0 @@ - - -/*# sourceMappingURL=app.component.css.map */ diff --git a/projects/ngx-reactome-diagram/src/lib/app.component.css.map b/projects/ngx-reactome-diagram/src/lib/app.component.css.map deleted file mode 100644 index 3e4f015..0000000 --- a/projects/ngx-reactome-diagram/src/lib/app.component.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sourceRoot":"","sources":[],"names":[],"mappings":"","file":"app.component.css"} \ No newline at end of file diff --git a/projects/ngx-reactome-diagram/src/lib/app.component.html b/projects/ngx-reactome-diagram/src/lib/app.component.html deleted file mode 100644 index 0680b43..0000000 --- a/projects/ngx-reactome-diagram/src/lib/app.component.html +++ /dev/null @@ -1 +0,0 @@ - diff --git a/projects/ngx-reactome-diagram/src/lib/app.component.scss b/projects/ngx-reactome-diagram/src/lib/app.component.scss deleted file mode 100644 index e69de29..0000000 diff --git a/projects/ngx-reactome-diagram/src/lib/app.component.spec.ts b/projects/ngx-reactome-diagram/src/lib/app.component.spec.ts deleted file mode 100644 index 303b7ec..0000000 --- a/projects/ngx-reactome-diagram/src/lib/app.component.spec.ts +++ /dev/null @@ -1,27 +0,0 @@ -import { TestBed } from '@angular/core/testing'; -import { AppComponent } from './app.component'; - -describe('AppComponent', () => { - beforeEach(() => TestBed.configureTestingModule({ - declarations: [AppComponent] - })); - - it('should create the app', () => { - const fixture = TestBed.createComponent(AppComponent); - const app = fixture.componentInstance; - expect(app).toBeTruthy(); - }); - - it(`should have as title 'pathway-browser'`, () => { - const fixture = TestBed.createComponent(AppComponent); - const app = fixture.componentInstance; - expect(app.title).toEqual('pathway-browser'); - }); - - it('should render title', () => { - const fixture = TestBed.createComponent(AppComponent); - fixture.detectChanges(); - const compiled = fixture.nativeElement as HTMLElement; - expect(compiled.querySelector('.content span')?.textContent).toContain('pathway-browser app is running!'); - }); -}); diff --git a/projects/ngx-reactome-diagram/src/lib/app.component.ts b/projects/ngx-reactome-diagram/src/lib/app.component.ts deleted file mode 100644 index 2d2c4d4..0000000 --- a/projects/ngx-reactome-diagram/src/lib/app.component.ts +++ /dev/null @@ -1,10 +0,0 @@ -import {Component} from '@angular/core'; - -@Component({ - selector: 'cr-root', - templateUrl: './app.component.html', - styleUrls: ['./app.component.scss'] -}) -export class AppComponent { - title = 'PathwayBrowser' -} diff --git a/projects/ngx-reactome-diagram/src/lib/app.module.ts b/projects/ngx-reactome-diagram/src/lib/app.module.ts deleted file mode 100644 index aea8955..0000000 --- a/projects/ngx-reactome-diagram/src/lib/app.module.ts +++ /dev/null @@ -1,60 +0,0 @@ -import {NgModule} from '@angular/core'; -import {BrowserModule} from '@angular/platform-browser'; - -import {AppComponent} from './app.component'; -import {FormsModule, ReactiveFormsModule} from "@angular/forms"; -import {CommonModule} from "@angular/common"; -import {HttpClientModule} from "@angular/common/http"; -import {DiagramComponent} from './diagram/diagram.component'; -import {RouterOutlet} from "@angular/router"; -import {AppRoutingModule} from "./app-routing.module"; -import {BrowserAnimationsModule} from '@angular/platform-browser/animations'; -import {MatButtonModule} from "@angular/material/button"; -import {MatSlideToggleModule} from "@angular/material/slide-toggle"; -import {CdkDrag, CdkDragHandle} from "@angular/cdk/drag-drop"; -import {DiagramIteratorComponent} from './diagram-iterator/diagram-iterator.component'; -import {MatInputModule} from "@angular/material/input"; -import {MatSelectModule} from "@angular/material/select"; -import {MatProgressSpinnerModule} from "@angular/material/progress-spinner"; -import {MatDialogModule} from "@angular/material/dialog"; -import {MatTabsModule} from "@angular/material/tabs"; -import {MatCheckboxModule} from "@angular/material/checkbox"; -import {MatRadioModule} from "@angular/material/radio"; -import {MatIconModule} from "@angular/material/icon"; -import {MatListModule} from "@angular/material/list"; - -@NgModule({ - declarations: [ - AppComponent, - DiagramComponent, - DiagramIteratorComponent, - ], - imports: [ - BrowserModule, - FormsModule, - CommonModule, - HttpClientModule, - RouterOutlet, - AppRoutingModule, - // NoopAnimationsModule, - MatButtonModule, - MatSlideToggleModule, - CdkDragHandle, - CdkDrag, - MatInputModule, - MatSelectModule, - ReactiveFormsModule, - MatProgressSpinnerModule, - BrowserAnimationsModule, - MatDialogModule, - MatTabsModule, - MatCheckboxModule, - MatRadioModule, - MatIconModule, - MatListModule - ], - providers: [], - bootstrap: [AppComponent] -}) -export class AppModule { -} diff --git a/projects/ngx-reactome-diagram/src/lib/diagram/diagram.component.html b/projects/ngx-reactome-diagram/src/lib/diagram/diagram.component.html index c97035d..3e5832a 100644 --- a/projects/ngx-reactome-diagram/src/lib/diagram/diagram.component.html +++ b/projects/ngx-reactome-diagram/src/lib/diagram/diagram.component.html @@ -1,4 +1,4 @@ - - - -

This is a diagram view

\ No newline at end of file + \ No newline at end of file diff --git a/projects/ngx-reactome-diagram/src/lib/diagram/diagram.component.ts b/projects/ngx-reactome-diagram/src/lib/diagram/diagram.component.ts index abf4c99..b72ce72 100644 --- a/projects/ngx-reactome-diagram/src/lib/diagram/diagram.component.ts +++ b/projects/ngx-reactome-diagram/src/lib/diagram/diagram.component.ts @@ -84,22 +84,22 @@ export class DiagramComponent implements AfterViewInit, OnChanges { this.reactomeStyle = new Style(container); - // this.diagram.getLegend() - // .subscribe(legend => { - // this.legend = cytoscape({ - // container: legendContainer, - // elements: legend, - // style: this.reactomeStyle?.getStyleSheet(), - // layout: {name: "preset"}, - // boxSelectionEnabled: false - // }); - // this.reactomeStyle?.bindToCytoscape(this.legend); - // this.legend.zoomingEnabled(false); - // this.legend.panningEnabled(false); - // this.legend.minZoom(0) - // const bb = this.legend.elements().boundingBox(); - // // this.ratio = bb.w / bb.h; - // }); + this.diagram.getLegend() + .subscribe(legend => { + this.legend = cytoscape({ + container: legendContainer, + elements: legend, + style: this.reactomeStyle?.getStyleSheet(), + layout: {name: "preset"}, + boxSelectionEnabled: false + }); + this.reactomeStyle?.bindToCytoscape(this.legend); + this.legend.zoomingEnabled(false); + this.legend.panningEnabled(false); + this.legend.minZoom(0) + const bb = this.legend.elements().boundingBox(); + // this.ratio = bb.w / bb.h; + }); this.loadDiagram(); @@ -119,6 +119,9 @@ export class DiagramComponent implements AfterViewInit, OnChanges { elements: elements, style: this.reactomeStyle?.getStyleSheet(), layout: {name: "preset"}, + userPanningEnabled: false, + userZoomingEnabled: false, + autoungrabify: false }); this.reactomeStyle.bindToCytoscape(this.cy); this.reactomeStyle.clearCache(); From 9f26746ee0e58c8d3e288dd1a2fd50ef771ec09b Mon Sep 17 00:00:00 2001 From: guanmingwu Date: Fri, 17 May 2024 21:29:30 -0700 Subject: [PATCH 08/49] added cdkdrag module to enable legend dnd --- package.json | 2 +- projects/ngx-reactome-diagram/package.json | 2 +- .../ngx-reactome-diagram/src/lib/diagram/diagram.component.ts | 4 +++- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index 14992c4..f492b8e 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,7 @@ "watch": "ng build --watch --configuration development", "test": "ng test", "build-style": "ng build ngx-reactome-style", - "build-diagram": "ng build ngx-reactome-diagram", + "build-diagram": "ng build ngx-reactome-diagram && cd dist/ngx-reactome-diagram && npm pack", "build-cytoscape-style": "ng build ngx-reactome-cytoscape-style" }, "private": false, diff --git a/projects/ngx-reactome-diagram/package.json b/projects/ngx-reactome-diagram/package.json index 701a91a..bee0b01 100644 --- a/projects/ngx-reactome-diagram/package.json +++ b/projects/ngx-reactome-diagram/package.json @@ -1,6 +1,6 @@ { "name": "ngx-reactome-diagram", - "version": "0.0.6", + "version": "0.0.8", "peerDependencies": { "cytoscape": "^3.27.0", "cytoscape-fcose": "^2.2.0", diff --git a/projects/ngx-reactome-diagram/src/lib/diagram/diagram.component.ts b/projects/ngx-reactome-diagram/src/lib/diagram/diagram.component.ts index b72ce72..2ec49b3 100644 --- a/projects/ngx-reactome-diagram/src/lib/diagram/diagram.component.ts +++ b/projects/ngx-reactome-diagram/src/lib/diagram/diagram.component.ts @@ -21,6 +21,7 @@ import {DiagramStateService} from "../services/diagram-state.service"; import {UntilDestroy} from "@ngneat/until-destroy"; import {MatDialog} from "@angular/material/dialog"; import { CommonModule } from '@angular/common'; +import {CdkDrag} from '@angular/cdk/drag-drop'; @UntilDestroy({checkProperties: true}) @Component({ @@ -29,7 +30,8 @@ import { CommonModule } from '@angular/common'; styleUrls: ['./diagram.component.scss'], standalone: true, imports: [ - CommonModule + CommonModule, + CdkDrag ] }) export class DiagramComponent implements AfterViewInit, OnChanges { From 32184ac8a2244d4195293d2782068bc30d18e978 Mon Sep 17 00:00:00 2001 From: guanmingwu Date: Fri, 31 May 2024 11:54:09 -0700 Subject: [PATCH 09/49] expose PathwayDiagramService --- package.json | 2 +- projects/ngx-reactome-cytoscape-style/package.json | 2 +- projects/ngx-reactome-diagram/package.json | 2 +- .../src/lib/diagram/diagram.component.ts | 8 +++++++- .../src/lib/services/diagram.service.ts | 4 ++-- projects/ngx-reactome-diagram/src/public-api.ts | 2 ++ 6 files changed, 14 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index f492b8e..a290776 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,7 @@ "test": "ng test", "build-style": "ng build ngx-reactome-style", "build-diagram": "ng build ngx-reactome-diagram && cd dist/ngx-reactome-diagram && npm pack", - "build-cytoscape-style": "ng build ngx-reactome-cytoscape-style" + "build-cytoscape-style": "ng build ngx-reactome-cytoscape-style && cd dist/ngx-reactome-cytoscape-style && npm pack" }, "private": false, "dependencies": { diff --git a/projects/ngx-reactome-cytoscape-style/package.json b/projects/ngx-reactome-cytoscape-style/package.json index 3124092..46f0a54 100644 --- a/projects/ngx-reactome-cytoscape-style/package.json +++ b/projects/ngx-reactome-cytoscape-style/package.json @@ -1,6 +1,6 @@ { "name": "ngx-reactome-cytoscape-style", - "version": "0.0.6", + "version": "0.0.7", "peerDependencies": { "cytoscape": "^3.27.0", "cytoscape-fcose": "^2.2.0", diff --git a/projects/ngx-reactome-diagram/package.json b/projects/ngx-reactome-diagram/package.json index bee0b01..d3de929 100644 --- a/projects/ngx-reactome-diagram/package.json +++ b/projects/ngx-reactome-diagram/package.json @@ -1,6 +1,6 @@ { "name": "ngx-reactome-diagram", - "version": "0.0.8", + "version": "0.0.14", "peerDependencies": { "cytoscape": "^3.27.0", "cytoscape-fcose": "^2.2.0", diff --git a/projects/ngx-reactome-diagram/src/lib/diagram/diagram.component.ts b/projects/ngx-reactome-diagram/src/lib/diagram/diagram.component.ts index 2ec49b3..1d24a71 100644 --- a/projects/ngx-reactome-diagram/src/lib/diagram/diagram.component.ts +++ b/projects/ngx-reactome-diagram/src/lib/diagram/diagram.component.ts @@ -70,7 +70,6 @@ export class DiagramComponent implements AfterViewInit, OnChanges { if (changes['diagramId']) this.loadDiagram(); } - ngAfterViewInit(): void { this.dark.$dark.subscribe(this.updateStyle.bind(this)) @@ -453,4 +452,11 @@ export class DiagramComponent implements AfterViewInit, OnChanges { logProteins() { console.debug(new Set(this.cy.nodes(".Protein").map(node => node.data("acc") || node.data("iAcc")))) } + + /** + * Somehow DiagramService cannot be exported for use out of this package. Therefore, use this method to get this instance. + */ + getDiagramService(): DiagramService { + return this.diagram; + } } diff --git a/projects/ngx-reactome-diagram/src/lib/services/diagram.service.ts b/projects/ngx-reactome-diagram/src/lib/services/diagram.service.ts index 83c1cbf..9bbb1ae 100644 --- a/projects/ngx-reactome-diagram/src/lib/services/diagram.service.ts +++ b/projects/ngx-reactome-diagram/src/lib/services/diagram.service.ts @@ -159,8 +159,8 @@ export class DiagramService { public getDiagram(id: number | string): Observable { return forkJoin({ - diagram: this.http.get(`https://release.reactome.org/download/current/diagram/${id}.json`), - graph: this.http.get(`https://release.reactome.org/download/current/diagram/${id}.graph.json`) + diagram: this.http.get(`https://dev.reactome.org/download/current/diagram/${id}.json`), + graph: this.http.get(`https://dev.reactome.org/download/current/diagram/${id}.graph.json`) }).pipe( tap((mergedResponse) => console.log('All responses:', mergedResponse)), map((response) => { diff --git a/projects/ngx-reactome-diagram/src/public-api.ts b/projects/ngx-reactome-diagram/src/public-api.ts index 3d7d884..c230bc2 100644 --- a/projects/ngx-reactome-diagram/src/public-api.ts +++ b/projects/ngx-reactome-diagram/src/public-api.ts @@ -2,5 +2,7 @@ * Public API Surface of ngx-reactome-diagram */ + // export default {}; export {DiagramComponent} from './lib/diagram/diagram.component'; +export {DiagramService} from './lib/services/diagram.service'; \ No newline at end of file From 19f2705c228f03e51cfa07b389531150b96f7749 Mon Sep 17 00:00:00 2001 From: guanmingwu Date: Sat, 1 Jun 2024 11:22:22 -0700 Subject: [PATCH 10/49] epxanded for added input/output accessory nodes --- projects/ngx-reactome-cytoscape-style/src/lib/style.ts | 10 +++++++++- .../src/lib/diagram/diagram.component.ts | 5 ++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/projects/ngx-reactome-cytoscape-style/src/lib/style.ts b/projects/ngx-reactome-cytoscape-style/src/lib/style.ts index b05c205..24935fd 100644 --- a/projects/ngx-reactome-cytoscape-style/src/lib/style.ts +++ b/projects/ngx-reactome-cytoscape-style/src/lib/style.ts @@ -571,6 +571,14 @@ export class Style { "text-max-width": (node: cytoscape.NodeSingular) => (node.width() - 60) + 'px', } }, + { + selector: 'node.input_output', + style: { + "shape": "ellipse", + "width": this.pm('global', 'thickness', t => t * 4), + "height": this.pm('global', 'thickness', t => t * 4), + } + }, { @@ -706,7 +714,7 @@ export class Style { selector: "edge[?weights]", style: { // @ts-ignore - "curve-style": "round-segments", + "curve-style": (ele) => ele.data('curveStyle') || 'round-segments', "segment-distances": "data(distances)", "segment-weights": "data(weights)", "segment-radius": 30, diff --git a/projects/ngx-reactome-diagram/src/lib/diagram/diagram.component.ts b/projects/ngx-reactome-diagram/src/lib/diagram/diagram.component.ts index 1d24a71..3042a78 100644 --- a/projects/ngx-reactome-diagram/src/lib/diagram/diagram.component.ts +++ b/projects/ngx-reactome-diagram/src/lib/diagram/diagram.component.ts @@ -409,7 +409,10 @@ export class DiagramComponent implements AfterViewInit, OnChanges { if (e.detail.type === 'reaction') { elements = e.detail.cy.elements('node.reaction:selected') } - const reactomeIds = elements.map(el => el.data('graph.stId')); + let reactomeIds = elements.map(el => el.data('graph.stId')); + // Make sure reactomeIds don't contain duplicated element + const uniqueSet = new Set(reactomeIds); + reactomeIds = Array.from(uniqueSet); this.state.set('select', reactomeIds) } ); From 1a5185d7e9f978aa93bc5df4c501e084645a7577 Mon Sep 17 00:00:00 2001 From: guanmingwu Date: Mon, 3 Jun 2024 21:40:23 -0700 Subject: [PATCH 11/49] changed initZoom for new nodes or edges --- .../ngx-reactome-cytoscape-style/src/lib/interactivity.ts | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/projects/ngx-reactome-cytoscape-style/src/lib/interactivity.ts b/projects/ngx-reactome-cytoscape-style/src/lib/interactivity.ts index e25c4ef..404efb0 100644 --- a/projects/ngx-reactome-cytoscape-style/src/lib/interactivity.ts +++ b/projects/ngx-reactome-cytoscape-style/src/lib/interactivity.ts @@ -242,9 +242,7 @@ export class Interactivity { } initZoom(cy: cytoscape.Core) { - const shadows = cy.edges('[?pathway]'); - const shadowLabels = cy.nodes('.Shadow'); - const trivial = cy.elements('.trivial'); + this.updateProteins(); cy.minZoom(Math.min(cy.zoom(), extract(this.properties.shadow.labelOpacity)[0][0] / 100)); @@ -267,6 +265,10 @@ export class Interactivity { const maxWidth = this.interpolate(z, [this.p(zoomStart, 100), this.p(zoomEnd, 50)]); const margin = this.interpolate(z, [this.p(zoomStart, 0), this.p(zoomEnd, 25)]); const fontSize = this.interpolate(z, [this.p(zoomStart, baseFontSize), this.p(zoomEnd, baseFontSize / 2)]); + + const shadows = cy.edges('[?pathway]'); + const shadowLabels = cy.nodes('.Shadow'); + const trivial = cy.elements('.trivial'); shadows.style({ 'underlay-opacity': shadowOpacity }); From 46681b07f7200bae3a2d290587556dfa30e060c4 Mon Sep 17 00:00:00 2001 From: guanmingwu Date: Sat, 27 Jul 2024 17:42:37 -0700 Subject: [PATCH 12/49] Used INJECT_TOKEN to set the diagram url --- .../ngx-reactome-cytoscape-style/package.json | 2 +- projects/ngx-reactome-diagram/package.json | 2 +- .../src/lib/diagram/diagram.component.ts | 22 +++++++++---------- .../src/lib/services/diagram.service.ts | 19 +++++++++++----- .../ngx-reactome-diagram/src/public-api.ts | 3 ++- 5 files changed, 28 insertions(+), 20 deletions(-) diff --git a/projects/ngx-reactome-cytoscape-style/package.json b/projects/ngx-reactome-cytoscape-style/package.json index 46f0a54..b8a2c2c 100644 --- a/projects/ngx-reactome-cytoscape-style/package.json +++ b/projects/ngx-reactome-cytoscape-style/package.json @@ -1,6 +1,6 @@ { "name": "ngx-reactome-cytoscape-style", - "version": "0.0.7", + "version": "0.0.12", "peerDependencies": { "cytoscape": "^3.27.0", "cytoscape-fcose": "^2.2.0", diff --git a/projects/ngx-reactome-diagram/package.json b/projects/ngx-reactome-diagram/package.json index d3de929..e75b508 100644 --- a/projects/ngx-reactome-diagram/package.json +++ b/projects/ngx-reactome-diagram/package.json @@ -1,6 +1,6 @@ { "name": "ngx-reactome-diagram", - "version": "0.0.14", + "version": "0.0.20", "peerDependencies": { "cytoscape": "^3.27.0", "cytoscape-fcose": "^2.2.0", diff --git a/projects/ngx-reactome-diagram/src/lib/diagram/diagram.component.ts b/projects/ngx-reactome-diagram/src/lib/diagram/diagram.component.ts index 3042a78..c21a50d 100644 --- a/projects/ngx-reactome-diagram/src/lib/diagram/diagram.component.ts +++ b/projects/ngx-reactome-diagram/src/lib/diagram/diagram.component.ts @@ -2,26 +2,24 @@ import { AfterViewInit, ChangeDetectorRef, Component, - ElementRef, - Input, + ElementRef, Input, OnChanges, Output, SimpleChanges, ViewChild } from '@angular/core'; -import {DiagramService} from "../services/diagram.service"; +import { DiagramService } from "../services/diagram.service"; import cytoscape from "cytoscape"; // @ts-ignore -import {Interactivity, ReactomeEvent, ReactomeEventTypes, Style} from "ngx-reactome-cytoscape-style"; -import {DarkService} from "../services/dark.service"; -import {delay, distinctUntilChanged, filter, Observable, share, Subject, tap} from "rxjs"; -import {MatSelect} from "@angular/material/select"; -import {FormControl} from "@angular/forms"; -import {DiagramStateService} from "../services/diagram-state.service"; -import {UntilDestroy} from "@ngneat/until-destroy"; -import {MatDialog} from "@angular/material/dialog"; +import { ReactomeEvent, ReactomeEventTypes, Style } from "ngx-reactome-cytoscape-style"; +import { DarkService } from "../services/dark.service"; +import { delay, distinctUntilChanged, filter, Observable, share, Subject, tap } from "rxjs"; +import { FormControl } from "@angular/forms"; +import { DiagramStateService } from "../services/diagram-state.service"; +import { UntilDestroy } from "@ngneat/until-destroy"; +import { MatDialog } from "@angular/material/dialog"; import { CommonModule } from '@angular/common'; -import {CdkDrag} from '@angular/cdk/drag-drop'; +import { CdkDrag } from '@angular/cdk/drag-drop'; @UntilDestroy({checkProperties: true}) @Component({ diff --git a/projects/ngx-reactome-diagram/src/lib/services/diagram.service.ts b/projects/ngx-reactome-diagram/src/lib/services/diagram.service.ts index 9bbb1ae..25464f2 100644 --- a/projects/ngx-reactome-diagram/src/lib/services/diagram.service.ts +++ b/projects/ngx-reactome-diagram/src/lib/services/diagram.service.ts @@ -1,4 +1,4 @@ -import {Injectable} from '@angular/core'; +import {Inject, Injectable, InjectionToken, OnInit} from '@angular/core'; import {forkJoin, map, Observable, of, tap} from "rxjs"; import {HttpClient, HttpHeaders} from "@angular/common/http"; import {Diagram, Edge, Node, NodeConnector, Position, Prop, Rectangle} from "../model/diagram.model"; @@ -70,8 +70,10 @@ export class DiagramService { extraLine: Map = new Map(); reverseExtraLine: Map = new Map(); - - constructor(private http: HttpClient) { + + constructor(private http: HttpClient, @Inject(DIAGRAM_CONFIG_TOKEN) private config: any) { + // This is a service object. Therefore, we have to extract configure here if any + this.diagramUrl = this.config?.diagramUrl; } nodeTypeMap = new Map([ @@ -153,14 +155,18 @@ export class DiagramService { private readonly COMPARTMENT_SHIFT = 35; + // The server address: this should be injected from the client that setting up this. + private diagramUrl: string = 'https://dev.reactome.org/download/current/diagram'; + public getLegend(): Observable { return of(legend) } + //TODO: Don't do anything if id is undefined here - GW public getDiagram(id: number | string): Observable { return forkJoin({ - diagram: this.http.get(`https://dev.reactome.org/download/current/diagram/${id}.json`), - graph: this.http.get(`https://dev.reactome.org/download/current/diagram/${id}.graph.json`) + diagram: this.http.get(`${this.diagramUrl}/${id}.json`), + graph: this.http.get(`${this.diagramUrl}/${id}.graph.json`) }).pipe( tap((mergedResponse) => console.log('All responses:', mergedResponse)), map((response) => { @@ -799,3 +805,6 @@ function avoidOverlap(definitions: cytoscape.NodeDefinition[]) { cy.destroy() container.remove() } + + +export const DIAGRAM_CONFIG_TOKEN = new InjectionToken('DIAGRAM_CONFIG_TOKEN'); \ No newline at end of file diff --git a/projects/ngx-reactome-diagram/src/public-api.ts b/projects/ngx-reactome-diagram/src/public-api.ts index c230bc2..bf27df9 100644 --- a/projects/ngx-reactome-diagram/src/public-api.ts +++ b/projects/ngx-reactome-diagram/src/public-api.ts @@ -5,4 +5,5 @@ // export default {}; export {DiagramComponent} from './lib/diagram/diagram.component'; -export {DiagramService} from './lib/services/diagram.service'; \ No newline at end of file +export {DiagramService} from './lib/services/diagram.service'; +export {DIAGRAM_CONFIG_TOKEN} from './lib/services/diagram.service' \ No newline at end of file From a8d8a3ed7a8dc0595f7cbe7658674160bb3fba66 Mon Sep 17 00:00:00 2001 From: guanmingwu Date: Sun, 28 Jul 2024 20:54:15 -0700 Subject: [PATCH 13/49] refactor to load the saved cytoscape json directly --- projects/ngx-reactome-diagram/package.json | 2 +- .../src/lib/diagram/diagram.component.ts | 43 +++++++++++-------- 2 files changed, 26 insertions(+), 19 deletions(-) diff --git a/projects/ngx-reactome-diagram/package.json b/projects/ngx-reactome-diagram/package.json index e75b508..c1e2895 100644 --- a/projects/ngx-reactome-diagram/package.json +++ b/projects/ngx-reactome-diagram/package.json @@ -1,6 +1,6 @@ { "name": "ngx-reactome-diagram", - "version": "0.0.20", + "version": "0.0.21", "peerDependencies": { "cytoscape": "^3.27.0", "cytoscape-fcose": "^2.2.0", diff --git a/projects/ngx-reactome-diagram/src/lib/diagram/diagram.component.ts b/projects/ngx-reactome-diagram/src/lib/diagram/diagram.component.ts index c21a50d..e2b592d 100644 --- a/projects/ngx-reactome-diagram/src/lib/diagram/diagram.component.ts +++ b/projects/ngx-reactome-diagram/src/lib/diagram/diagram.component.ts @@ -108,29 +108,36 @@ export class DiagramComponent implements AfterViewInit, OnChanges { loadDiagram() { if (!this.cytoscapeContainer) return; - const container = this.cytoscapeContainer!.nativeElement; - this.diagram.getDiagram(this.diagramId) .subscribe(elements => { - this.comparing = elements.nodes.some(node => node.data['isFadeOut']) || elements.edges.some(edge => edge.data['isFadeOut']) - this.cy = cytoscape({ - container: container, - elements: elements, - style: this.reactomeStyle?.getStyleSheet(), - layout: {name: "preset"}, - userPanningEnabled: false, - userZoomingEnabled: false, - autoungrabify: false - }); - this.reactomeStyle.bindToCytoscape(this.cy); - this.reactomeStyle.clearCache(); - - this.loadCompare(elements, container); - - this.stateToDiagram(); + this.displayNetwork(elements); }) } + displayNetwork(elements: any) { + const container = this.cytoscapeContainer!.nativeElement; + this.comparing = elements.nodes.some((node: any) => node.data['isFadeOut']) || + elements.edges.some((edge: any) => edge.data['isFadeOut']) + this.cy = cytoscape({ + container: container, + elements: elements, + style: this.reactomeStyle?.getStyleSheet(), + layout: {name: "preset"}, + userPanningEnabled: false, + userZoomingEnabled: false, + autoungrabify: false + }); + this.reactomeStyle.bindToCytoscape(this.cy); + this.reactomeStyle.clearCache(); + + this.loadCompare(elements, container); + + this.stateToDiagram(); + + // Fire an event after this network is displayed. + const event = new CustomEvent("network_displayed"); + container.dispatchEvent(event); + } private loadCompare(elements: cytoscape.ElementsDefinition, container: HTMLDivElement) { if (this.comparing) { From 1a9df5d501f3b22868925bad23eb6d84d70c2c49 Mon Sep 17 00:00:00 2001 From: guanmingwu Date: Sat, 3 Aug 2024 15:58:30 -0700 Subject: [PATCH 14/49] added a flag to use dbId, instead of stId, for curator tool --- projects/ngx-reactome-diagram/package.json | 2 +- .../src/lib/diagram/diagram.component.ts | 22 +++++++++++++++---- 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/projects/ngx-reactome-diagram/package.json b/projects/ngx-reactome-diagram/package.json index c1e2895..16d9fca 100644 --- a/projects/ngx-reactome-diagram/package.json +++ b/projects/ngx-reactome-diagram/package.json @@ -1,6 +1,6 @@ { "name": "ngx-reactome-diagram", - "version": "0.0.21", + "version": "0.0.24", "peerDependencies": { "cytoscape": "^3.27.0", "cytoscape-fcose": "^2.2.0", diff --git a/projects/ngx-reactome-diagram/src/lib/diagram/diagram.component.ts b/projects/ngx-reactome-diagram/src/lib/diagram/diagram.component.ts index e2b592d..715f19e 100644 --- a/projects/ngx-reactome-diagram/src/lib/diagram/diagram.component.ts +++ b/projects/ngx-reactome-diagram/src/lib/diagram/diagram.component.ts @@ -64,6 +64,11 @@ export class DiagramComponent implements AfterViewInit, OnChanges { @Input('id') diagramId: string = ''; + // Flag to control if dbId should be used as primary ids + // This should be useful in the context of the curator tool since + // dbIds are used as primary ids. Not all instances have stable ids. + @Input() usedbId: boolean = false; + ngOnChanges(changes: SimpleChanges): void { if (changes['diagramId']) this.loadDiagram(); } @@ -116,8 +121,8 @@ export class DiagramComponent implements AfterViewInit, OnChanges { displayNetwork(elements: any) { const container = this.cytoscapeContainer!.nativeElement; - this.comparing = elements.nodes.some((node: any) => node.data['isFadeOut']) || - elements.edges.some((edge: any) => edge.data['isFadeOut']) + this.comparing = (elements.nodes && elements.nodes.some((node: any) => node.data['isFadeOut'])) || + (elements.edges && elements.edges.some((edge: any) => edge.data['isFadeOut'])) this.cy = cytoscape({ container: container, elements: elements, @@ -203,7 +208,12 @@ export class DiagramComponent implements AfterViewInit, OnChanges { } else { // Non physical entity elements = elements.or(`.${clazz}`); } - } else { + } + else if (this.usedbId) { + // It is possible dbId is encoded in string + elements = elements.or(`[reactomeId=${token}]`); + } + else { elements = elements.or(`[acc=${token}]`) } } @@ -414,7 +424,11 @@ export class DiagramComponent implements AfterViewInit, OnChanges { if (e.detail.type === 'reaction') { elements = e.detail.cy.elements('node.reaction:selected') } - let reactomeIds = elements.map(el => el.data('graph.stId')); + let reactomeIds = [] + if (this.usedbId) + reactomeIds = elements.map(el => el.data('reactomeId')); + else + reactomeIds = elements.map(el => el.data('graph.stId')); // Make sure reactomeIds don't contain duplicated element const uniqueSet = new Set(reactomeIds); reactomeIds = Array.from(uniqueSet); From 5ab8ab5a84cf87eecb68901f65f091b6e13bb05e Mon Sep 17 00:00:00 2001 From: guanmingwu Date: Sun, 11 Aug 2024 16:08:40 -0700 Subject: [PATCH 15/49] fixed a bug: block loading diagram when no diagramId --- projects/ngx-reactome-diagram/package.json | 2 +- .../ngx-reactome-diagram/src/lib/diagram/diagram.component.ts | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/projects/ngx-reactome-diagram/package.json b/projects/ngx-reactome-diagram/package.json index 16d9fca..ffb39c2 100644 --- a/projects/ngx-reactome-diagram/package.json +++ b/projects/ngx-reactome-diagram/package.json @@ -1,6 +1,6 @@ { "name": "ngx-reactome-diagram", - "version": "0.0.24", + "version": "0.0.25", "peerDependencies": { "cytoscape": "^3.27.0", "cytoscape-fcose": "^2.2.0", diff --git a/projects/ngx-reactome-diagram/src/lib/diagram/diagram.component.ts b/projects/ngx-reactome-diagram/src/lib/diagram/diagram.component.ts index 715f19e..53fac55 100644 --- a/projects/ngx-reactome-diagram/src/lib/diagram/diagram.component.ts +++ b/projects/ngx-reactome-diagram/src/lib/diagram/diagram.component.ts @@ -113,6 +113,9 @@ export class DiagramComponent implements AfterViewInit, OnChanges { loadDiagram() { if (!this.cytoscapeContainer) return; + if (!this.diagramId || this.diagramId.trim().length == 0) + return; // Nothing to do. + this.diagram.getDiagram(this.diagramId) .subscribe(elements => { this.displayNetwork(elements); From fc6e7b57efadd25575aa63825c3322a2b63dd7a6 Mon Sep 17 00:00:00 2001 From: guanmingwu Date: Mon, 12 Aug 2024 11:46:32 -0700 Subject: [PATCH 16/49] added a method to reset state --- projects/ngx-reactome-diagram/package.json | 2 +- .../src/lib/diagram/diagram.component.ts | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/projects/ngx-reactome-diagram/package.json b/projects/ngx-reactome-diagram/package.json index ffb39c2..ffb25cd 100644 --- a/projects/ngx-reactome-diagram/package.json +++ b/projects/ngx-reactome-diagram/package.json @@ -1,6 +1,6 @@ { "name": "ngx-reactome-diagram", - "version": "0.0.25", + "version": "0.0.26", "peerDependencies": { "cytoscape": "^3.27.0", "cytoscape-fcose": "^2.2.0", diff --git a/projects/ngx-reactome-diagram/src/lib/diagram/diagram.component.ts b/projects/ngx-reactome-diagram/src/lib/diagram/diagram.component.ts index 53fac55..2940f6f 100644 --- a/projects/ngx-reactome-diagram/src/lib/diagram/diagram.component.ts +++ b/projects/ngx-reactome-diagram/src/lib/diagram/diagram.component.ts @@ -228,6 +228,13 @@ export class DiagramComponent implements AfterViewInit, OnChanges { return elements; } + // Apparently the selected state is kept when a new diagram is loaded. + // This method is used to reset the state + resetState() { + this.state.set('select', []); + this.state.set('flag', []); + } + select(tokens: (string | number)[], cy: cytoscape.Core): cytoscape.CollectionArgument { let selected = this.getElements(tokens, cy); selected.select(); From c0e61195a5b75783cbe039c7e724eca88249720c Mon Sep 17 00:00:00 2001 From: Eliot Ragueneau Date: Fri, 13 Sep 2024 10:08:06 +0100 Subject: [PATCH 17/49] :bookmark: style publish 0.0.13 --- .gitignore | 4 ++++ projects/ngx-reactome-style/package.json | 5 ++--- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 0711527..15be1e0 100644 --- a/.gitignore +++ b/.gitignore @@ -10,6 +10,8 @@ /node_modules npm-debug.log yarn-error.log +*/node_modules +*/package-lock.json # IDEs and editors .idea/ @@ -40,3 +42,5 @@ testem.log # System files .DS_Store Thumbs.db +/.vscode/ +/.angular/ diff --git a/projects/ngx-reactome-style/package.json b/projects/ngx-reactome-style/package.json index b47d612..51e210c 100644 --- a/projects/ngx-reactome-style/package.json +++ b/projects/ngx-reactome-style/package.json @@ -1,11 +1,10 @@ { "name": "ngx-reactome-style", - "version": "0.0.1", + "version": "0.0.13", "peerDependencies": { "@angular/common": "^17.3.0", "@angular/core": "^17.3.0", - "@angular/material": "^17.3.7", - "@angular/m" + "@angular/material": "^17.3.7" }, "dependencies": { "tslib": "^2.3.0" From 1b4e157a7e3221a46c1f3aefce1f35f9c01de544 Mon Sep 17 00:00:00 2001 From: guanmingwu Date: Mon, 23 Sep 2024 16:25:25 -0700 Subject: [PATCH 18/49] added a flag to block URL change from the diagram --- projects/ngx-reactome-diagram/package.json | 2 +- .../src/lib/diagram/diagram.component.ts | 8 ++++++++ .../src/lib/services/diagram-state.service.ts | 3 +++ 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/projects/ngx-reactome-diagram/package.json b/projects/ngx-reactome-diagram/package.json index ffb25cd..b03f046 100644 --- a/projects/ngx-reactome-diagram/package.json +++ b/projects/ngx-reactome-diagram/package.json @@ -1,6 +1,6 @@ { "name": "ngx-reactome-diagram", - "version": "0.0.26", + "version": "0.0.30", "peerDependencies": { "cytoscape": "^3.27.0", "cytoscape-fcose": "^2.2.0", diff --git a/projects/ngx-reactome-diagram/src/lib/diagram/diagram.component.ts b/projects/ngx-reactome-diagram/src/lib/diagram/diagram.component.ts index 2940f6f..91ee0c2 100644 --- a/projects/ngx-reactome-diagram/src/lib/diagram/diagram.component.ts +++ b/projects/ngx-reactome-diagram/src/lib/diagram/diagram.component.ts @@ -68,6 +68,14 @@ export class DiagramComponent implements AfterViewInit, OnChanges { // This should be useful in the context of the curator tool since // dbIds are used as primary ids. Not all instances have stable ids. @Input() usedbId: boolean = false; + // There are many issues having URL changes for selection state or other + // state changes in the curator tool environment (e.g conflict with tree URL) + // therefore, we'd like to block the change by flagging this to true. + @Input() + set blockRouterChange(block: boolean) { + if (this.state) + this.state.blockRouterChange = block; + }; ngOnChanges(changes: SimpleChanges): void { if (changes['diagramId']) this.loadDiagram(); diff --git a/projects/ngx-reactome-diagram/src/lib/services/diagram-state.service.ts b/projects/ngx-reactome-diagram/src/lib/services/diagram-state.service.ts index 16af79e..e1048fd 100644 --- a/projects/ngx-reactome-diagram/src/lib/services/diagram-state.service.ts +++ b/projects/ngx-reactome-diagram/src/lib/services/diagram-state.service.ts @@ -22,6 +22,7 @@ export type State = { export class DiagramStateService { private ignore = false; + blockRouterChange = false; private state: State = { select: {otherTokens: ['SEL'], value: []}, @@ -68,6 +69,8 @@ export class DiagramStateService { } onPropertyModified() { + if (this.blockRouterChange) + return Promise.reject(); return this.router.navigate([], { queryParams: { ...Object.entries(this.state) From e6429bd742b56982e9ae9f3c198852b32e5eb0c5 Mon Sep 17 00:00:00 2001 From: guanmingwu Date: Sun, 6 Oct 2024 17:19:26 -0700 Subject: [PATCH 19/49] bug fix on blockRouterChange using Promise.reject() --- projects/ngx-reactome-diagram/package.json | 2 +- .../src/lib/services/diagram-state.service.ts | 11 ++++++----- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/projects/ngx-reactome-diagram/package.json b/projects/ngx-reactome-diagram/package.json index b03f046..b4a886b 100644 --- a/projects/ngx-reactome-diagram/package.json +++ b/projects/ngx-reactome-diagram/package.json @@ -1,6 +1,6 @@ { "name": "ngx-reactome-diagram", - "version": "0.0.30", + "version": "0.0.31", "peerDependencies": { "cytoscape": "^3.27.0", "cytoscape-fcose": "^2.2.0", diff --git a/projects/ngx-reactome-diagram/src/lib/services/diagram-state.service.ts b/projects/ngx-reactome-diagram/src/lib/services/diagram-state.service.ts index e1048fd..114b276 100644 --- a/projects/ngx-reactome-diagram/src/lib/services/diagram-state.service.ts +++ b/projects/ngx-reactome-diagram/src/lib/services/diagram-state.service.ts @@ -62,15 +62,16 @@ export class DiagramStateService { set(token: T, value: State[T]['value']): void { this.state[token].value = value; + // N.B. by GW: Not sure why this.ignore is here. Nothing changes here!!! this.ignore = false; - this.onPropertyModified().then(() => - this.ignore = false - ); + if (!this.blockRouterChange) { + this.onPropertyModified().then(() => + this.ignore = false + ); + } } onPropertyModified() { - if (this.blockRouterChange) - return Promise.reject(); return this.router.navigate([], { queryParams: { ...Object.entries(this.state) From faf9fd0ea0ef96dffda3e86e04744df5e6b26512 Mon Sep 17 00:00:00 2001 From: Eliot Ragueneau Date: Mon, 21 Oct 2024 11:13:17 +0100 Subject: [PATCH 20/49] :arrow_up: Angular 18 --- package-lock.json | 7179 ++++++++++------- package.json | 30 +- projects/ngx-reactome-style/package.json | 8 +- .../ngx-reactome-style/src/assets/_index.scss | 26 +- .../src/assets/_variables.scss | 116 +- src/custom-theme.scss | 10 +- 6 files changed, 4184 insertions(+), 3185 deletions(-) diff --git a/package-lock.json b/package-lock.json index f389b1e..5daefdc 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,16 +8,16 @@ "name": "ngx-reactome-base", "version": "0.0.2", "dependencies": { - "@angular/animations": "^17.3.0", - "@angular/cdk": "^17.3.0", - "@angular/common": "^17.3.0", - "@angular/compiler": "^17.3.0", - "@angular/core": "^17.3.0", - "@angular/forms": "^17.3.0", - "@angular/material": "^17.3.7", - "@angular/platform-browser": "17.3.7", - "@angular/platform-browser-dynamic": "^17.3.7", - "@angular/router": "^17.3.7", + "@angular/animations": "^18.2.4", + "@angular/cdk": "^18.2.4", + "@angular/common": "^18.2.4", + "@angular/compiler": "^18.2.4", + "@angular/core": "^18.2.4", + "@angular/forms": "^18.2.4", + "@angular/material": "^18.2.4", + "@angular/platform-browser": "18.2.4", + "@angular/platform-browser-dynamic": "^18.2.4", + "@angular/router": "^18.2.4", "@ngneat/until-destroy": "^10.0.0", "cytoscape": "^3.29.2", "cytoscape-fcose": "^2.2.0", @@ -26,12 +26,12 @@ "rxjs": "~7.8.0", "tslib": "^2.3.0", "vectorious": "^6.1.12", - "zone.js": "~0.14.3" + "zone.js": "~0.14.10" }, "devDependencies": { - "@angular-devkit/build-angular": "^17.3.6", - "@angular/cli": "^17.3.6", - "@angular/compiler-cli": "^17.3.7", + "@angular-devkit/build-angular": "^18.2.4", + "@angular/cli": "^18.2.4", + "@angular/compiler-cli": "^18.2.4", "@types/cytoscape": "^3.21.0", "@types/cytoscape-fcose": "^2.2.4", "@types/jasmine": "~4.3.0", @@ -43,7 +43,7 @@ "karma-coverage": "~2.2.0", "karma-jasmine": "~5.1.0", "karma-jasmine-html-reporter": "~2.1.0", - "ng-packagr": "^17.3.0", + "ng-packagr": "^18.2.1", "npm-run-all": "^4.1.1", "typescript": "~5.4.5" } @@ -112,97 +112,97 @@ "peer": true }, "node_modules/@angular-devkit/build-angular": { - "version": "17.3.6", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-17.3.6.tgz", - "integrity": "sha512-K4CEZvhQZUUOpmXPVoI1YBM8BARbIlqE6FZRxakmnr+YOtVTYE5s+Dr1wgja8hZIohNz6L7j167G9Aut7oPU/w==", + "version": "18.2.4", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-18.2.4.tgz", + "integrity": "sha512-zLDstS95Yb7iBA1ZCYe3LsOLpIhr0ZC3sZ03PhVvAGbVRGSbQNnhQRZLKMk+LDhYJiG+eNFQGLfU3RfZrGds7A==", "dev": true, + "license": "MIT", "dependencies": { "@ampproject/remapping": "2.3.0", - "@angular-devkit/architect": "0.1703.6", - "@angular-devkit/build-webpack": "0.1703.6", - "@angular-devkit/core": "17.3.6", - "@babel/core": "7.24.0", - "@babel/generator": "7.23.6", - "@babel/helper-annotate-as-pure": "7.22.5", - "@babel/helper-split-export-declaration": "7.22.6", - "@babel/plugin-transform-async-generator-functions": "7.23.9", - "@babel/plugin-transform-async-to-generator": "7.23.3", - "@babel/plugin-transform-runtime": "7.24.0", - "@babel/preset-env": "7.24.0", - "@babel/runtime": "7.24.0", - "@discoveryjs/json-ext": "0.5.7", - "@ngtools/webpack": "17.3.6", + "@angular-devkit/architect": "0.1802.4", + "@angular-devkit/build-webpack": "0.1802.4", + "@angular-devkit/core": "18.2.4", + "@angular/build": "18.2.4", + "@babel/core": "7.25.2", + "@babel/generator": "7.25.0", + "@babel/helper-annotate-as-pure": "7.24.7", + "@babel/helper-split-export-declaration": "7.24.7", + "@babel/plugin-transform-async-generator-functions": "7.25.0", + "@babel/plugin-transform-async-to-generator": "7.24.7", + "@babel/plugin-transform-runtime": "7.24.7", + "@babel/preset-env": "7.25.3", + "@babel/runtime": "7.25.0", + "@discoveryjs/json-ext": "0.6.1", + "@ngtools/webpack": "18.2.4", "@vitejs/plugin-basic-ssl": "1.1.0", "ansi-colors": "4.1.3", - "autoprefixer": "10.4.18", + "autoprefixer": "10.4.20", "babel-loader": "9.1.3", - "babel-plugin-istanbul": "6.1.1", "browserslist": "^4.21.5", - "copy-webpack-plugin": "11.0.0", - "critters": "0.0.22", - "css-loader": "6.10.0", - "esbuild-wasm": "0.20.1", + "copy-webpack-plugin": "12.0.2", + "critters": "0.0.24", + "css-loader": "7.1.2", + "esbuild-wasm": "0.23.0", "fast-glob": "3.3.2", - "http-proxy-middleware": "2.0.6", - "https-proxy-agent": "7.0.4", - "inquirer": "9.2.15", - "jsonc-parser": "3.2.1", + "http-proxy-middleware": "3.0.0", + "https-proxy-agent": "7.0.5", + "istanbul-lib-instrument": "6.0.3", + "jsonc-parser": "3.3.1", "karma-source-map-support": "1.4.0", "less": "4.2.0", - "less-loader": "11.1.0", + "less-loader": "12.2.0", "license-webpack-plugin": "4.0.2", - "loader-utils": "3.2.1", - "magic-string": "0.30.8", - "mini-css-extract-plugin": "2.8.1", + "loader-utils": "3.3.1", + "magic-string": "0.30.11", + "mini-css-extract-plugin": "2.9.0", "mrmime": "2.0.0", - "open": "8.4.2", + "open": "10.1.0", "ora": "5.4.1", "parse5-html-rewriting-stream": "7.0.0", - "picomatch": "4.0.1", - "piscina": "4.4.0", - "postcss": "8.4.35", + "picomatch": "4.0.2", + "piscina": "4.6.1", + "postcss": "8.4.41", "postcss-loader": "8.1.1", "resolve-url-loader": "5.0.0", "rxjs": "7.8.1", - "sass": "1.71.1", - "sass-loader": "14.1.1", - "semver": "7.6.0", + "sass": "1.77.6", + "sass-loader": "16.0.0", + "semver": "7.6.3", "source-map-loader": "5.0.0", "source-map-support": "0.5.21", - "terser": "5.29.1", + "terser": "5.31.6", "tree-kill": "1.2.2", - "tslib": "2.6.2", - "undici": "6.11.1", - "vite": "5.1.7", - "watchpack": "2.4.0", - "webpack": "5.90.3", - "webpack-dev-middleware": "6.1.2", - "webpack-dev-server": "4.15.1", - "webpack-merge": "5.10.0", + "tslib": "2.6.3", + "vite": "5.4.0", + "watchpack": "2.4.1", + "webpack": "5.94.0", + "webpack-dev-middleware": "7.4.2", + "webpack-dev-server": "5.0.4", + "webpack-merge": "6.0.1", "webpack-subresource-integrity": "5.1.0" }, "engines": { - "node": "^18.13.0 || >=20.9.0", + "node": "^18.19.1 || ^20.11.1 || >=22.0.0", "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", "yarn": ">= 1.13.0" }, "optionalDependencies": { - "esbuild": "0.20.1" + "esbuild": "0.23.0" }, "peerDependencies": { - "@angular/compiler-cli": "^17.0.0", - "@angular/localize": "^17.0.0", - "@angular/platform-server": "^17.0.0", - "@angular/service-worker": "^17.0.0", + "@angular/compiler-cli": "^18.0.0", + "@angular/localize": "^18.0.0", + "@angular/platform-server": "^18.0.0", + "@angular/service-worker": "^18.0.0", "@web/test-runner": "^0.18.0", "browser-sync": "^3.0.2", "jest": "^29.5.0", "jest-environment-jsdom": "^29.5.0", "karma": "^6.3.0", - "ng-packagr": "^17.0.0", + "ng-packagr": "^18.0.0", "protractor": "^7.0.0", "tailwindcss": "^2.0.0 || ^3.0.0", - "typescript": ">=5.2 <5.5" + "typescript": ">=5.4 <5.6" }, "peerDependenciesMeta": { "@angular/localize": { @@ -241,35 +241,37 @@ } }, "node_modules/@angular-devkit/build-angular/node_modules/@angular-devkit/architect": { - "version": "0.1703.6", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1703.6.tgz", - "integrity": "sha512-Ck501FD/QuOjeKVFs7hU92w8+Ffetv0d5Sq09XY2/uygo5c/thMzp9nkevaIWBxUSeU5RqYZizDrhFVgYzbbOw==", + "version": "0.1802.4", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1802.4.tgz", + "integrity": "sha512-VH7AwGng1zuWPTJoH1IgHYeNhqZIgzlwDx39JPmArZAW/WZHDILWB7ipbTNw0R4U4VncrXJqDmMVex7NdHP6sg==", "dev": true, + "license": "MIT", "dependencies": { - "@angular-devkit/core": "17.3.6", + "@angular-devkit/core": "18.2.4", "rxjs": "7.8.1" }, "engines": { - "node": "^18.13.0 || >=20.9.0", + "node": "^18.19.1 || ^20.11.1 || >=22.0.0", "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", "yarn": ">= 1.13.0" } }, "node_modules/@angular-devkit/build-angular/node_modules/@angular-devkit/core": { - "version": "17.3.6", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-17.3.6.tgz", - "integrity": "sha512-FVbkT9dEwHEvjnxr4mvMNSMg2bCFoGoP4X68xXU9dhLEUpC05opLvfbaR3Qh543eCJ5AstosBFVzB/krfIkOvA==", + "version": "18.2.4", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-18.2.4.tgz", + "integrity": "sha512-svlgZ0vbLrfNJAQE5WePAutcYIyA7C0OfzKSTMsfV2X1I+1blYDaZIu/ocnHqofMHu6ZqdSaaU/p/rieqU8fcA==", "dev": true, + "license": "MIT", "dependencies": { - "ajv": "8.12.0", - "ajv-formats": "2.1.1", - "jsonc-parser": "3.2.1", - "picomatch": "4.0.1", + "ajv": "8.17.1", + "ajv-formats": "3.0.1", + "jsonc-parser": "3.3.1", + "picomatch": "4.0.2", "rxjs": "7.8.1", "source-map": "0.7.4" }, "engines": { - "node": "^18.13.0 || >=20.9.0", + "node": "^18.19.1 || ^20.11.1 || >=22.0.0", "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", "yarn": ">= 1.13.0" }, @@ -282,55 +284,123 @@ } } }, + "node_modules/@angular-devkit/build-angular/node_modules/ajv": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/ajv-formats": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-3.0.1.tgz", + "integrity": "sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/istanbul-lib-instrument": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz", + "integrity": "sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@babel/core": "^7.23.9", + "@babel/parser": "^7.23.9", + "@istanbuljs/schema": "^0.1.3", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^7.5.4" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/@angular-devkit/build-webpack": { - "version": "0.1703.6", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1703.6.tgz", - "integrity": "sha512-pJu0et2SiF0kfXenHSTtAART0omzbWpLgBfeUo4hBh4uwX5IaT+mRpYpr8gCXMq+qsjoQp3HobSU3lPDeBn+bg==", + "version": "0.1802.4", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1802.4.tgz", + "integrity": "sha512-juaDoguYccObm2xnzRDRlOtiL7ZyZcSAyiyls6QuO8hoo/h6phdHALJkUhI9+SIhCRQ6eUQtolC7hN3J+FZKnA==", "dev": true, + "license": "MIT", "dependencies": { - "@angular-devkit/architect": "0.1703.6", + "@angular-devkit/architect": "0.1802.4", "rxjs": "7.8.1" }, "engines": { - "node": "^18.13.0 || >=20.9.0", + "node": "^18.19.1 || ^20.11.1 || >=22.0.0", "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", "yarn": ">= 1.13.0" }, "peerDependencies": { "webpack": "^5.30.0", - "webpack-dev-server": "^4.0.0" + "webpack-dev-server": "^5.0.2" } }, "node_modules/@angular-devkit/build-webpack/node_modules/@angular-devkit/architect": { - "version": "0.1703.6", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1703.6.tgz", - "integrity": "sha512-Ck501FD/QuOjeKVFs7hU92w8+Ffetv0d5Sq09XY2/uygo5c/thMzp9nkevaIWBxUSeU5RqYZizDrhFVgYzbbOw==", + "version": "0.1802.4", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1802.4.tgz", + "integrity": "sha512-VH7AwGng1zuWPTJoH1IgHYeNhqZIgzlwDx39JPmArZAW/WZHDILWB7ipbTNw0R4U4VncrXJqDmMVex7NdHP6sg==", "dev": true, + "license": "MIT", "dependencies": { - "@angular-devkit/core": "17.3.6", + "@angular-devkit/core": "18.2.4", "rxjs": "7.8.1" }, "engines": { - "node": "^18.13.0 || >=20.9.0", + "node": "^18.19.1 || ^20.11.1 || >=22.0.0", "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", "yarn": ">= 1.13.0" } }, "node_modules/@angular-devkit/build-webpack/node_modules/@angular-devkit/core": { - "version": "17.3.6", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-17.3.6.tgz", - "integrity": "sha512-FVbkT9dEwHEvjnxr4mvMNSMg2bCFoGoP4X68xXU9dhLEUpC05opLvfbaR3Qh543eCJ5AstosBFVzB/krfIkOvA==", + "version": "18.2.4", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-18.2.4.tgz", + "integrity": "sha512-svlgZ0vbLrfNJAQE5WePAutcYIyA7C0OfzKSTMsfV2X1I+1blYDaZIu/ocnHqofMHu6ZqdSaaU/p/rieqU8fcA==", "dev": true, + "license": "MIT", "dependencies": { - "ajv": "8.12.0", - "ajv-formats": "2.1.1", - "jsonc-parser": "3.2.1", - "picomatch": "4.0.1", + "ajv": "8.17.1", + "ajv-formats": "3.0.1", + "jsonc-parser": "3.3.1", + "picomatch": "4.0.2", "rxjs": "7.8.1", "source-map": "0.7.4" }, "engines": { - "node": "^18.13.0 || >=20.9.0", + "node": "^18.19.1 || ^20.11.1 || >=22.0.0", "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", "yarn": ">= 1.13.0" }, @@ -343,6 +413,41 @@ } } }, + "node_modules/@angular-devkit/build-webpack/node_modules/ajv": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/@angular-devkit/build-webpack/node_modules/ajv-formats": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-3.0.1.tgz", + "integrity": "sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, "node_modules/@angular-devkit/core": { "version": "16.2.14", "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-16.2.14.tgz", @@ -431,23 +536,186 @@ } }, "node_modules/@angular/animations": { - "version": "17.3.7", - "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-17.3.7.tgz", - "integrity": "sha512-ahenGALPPweeHgqtl9BMkGIAV4fUNI5kOWUrLNbKBfwIJN+aOBOYV1Jz6NKUQq6eYn/1ZYtm0f3lIkHIdtLKEw==", + "version": "18.2.4", + "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-18.2.4.tgz", + "integrity": "sha512-ajjXpLD+SyxbHnmhj2ZvYpXneviOjcBgU9L2UX4OVS0jVWxCNHLhJrcMqtqFHA6U5fPnhPNR9cmnt6tmqri0rA==", + "license": "MIT", "dependencies": { "tslib": "^2.3.0" }, "engines": { - "node": "^18.13.0 || >=20.9.0" + "node": "^18.19.1 || ^20.11.1 || >=22.0.0" + }, + "peerDependencies": { + "@angular/core": "18.2.4" + } + }, + "node_modules/@angular/build": { + "version": "18.2.4", + "resolved": "https://registry.npmjs.org/@angular/build/-/build-18.2.4.tgz", + "integrity": "sha512-GVs7O7wxNMJCkqh6Vv2u9GEArWg9jyEt8Fofd6CJGzxKBYQ4hR5gjzL/lU6kNFiMcioS1wm1f6qtJtgilUO+9A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@ampproject/remapping": "2.3.0", + "@angular-devkit/architect": "0.1802.4", + "@babel/core": "7.25.2", + "@babel/helper-annotate-as-pure": "7.24.7", + "@babel/helper-split-export-declaration": "7.24.7", + "@babel/plugin-syntax-import-attributes": "7.24.7", + "@inquirer/confirm": "3.1.22", + "@vitejs/plugin-basic-ssl": "1.1.0", + "browserslist": "^4.23.0", + "critters": "0.0.24", + "esbuild": "0.23.0", + "fast-glob": "3.3.2", + "https-proxy-agent": "7.0.5", + "listr2": "8.2.4", + "lmdb": "3.0.13", + "magic-string": "0.30.11", + "mrmime": "2.0.0", + "parse5-html-rewriting-stream": "7.0.0", + "picomatch": "4.0.2", + "piscina": "4.6.1", + "rollup": "4.20.0", + "sass": "1.77.6", + "semver": "7.6.3", + "vite": "5.4.0", + "watchpack": "2.4.1" + }, + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "peerDependencies": { + "@angular/compiler-cli": "^18.0.0", + "@angular/localize": "^18.0.0", + "@angular/platform-server": "^18.0.0", + "@angular/service-worker": "^18.0.0", + "less": "^4.2.0", + "postcss": "^8.4.0", + "tailwindcss": "^2.0.0 || ^3.0.0", + "typescript": ">=5.4 <5.6" + }, + "peerDependenciesMeta": { + "@angular/localize": { + "optional": true + }, + "@angular/platform-server": { + "optional": true + }, + "@angular/service-worker": { + "optional": true + }, + "less": { + "optional": true + }, + "postcss": { + "optional": true + }, + "tailwindcss": { + "optional": true + } + } + }, + "node_modules/@angular/build/node_modules/@angular-devkit/architect": { + "version": "0.1802.4", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1802.4.tgz", + "integrity": "sha512-VH7AwGng1zuWPTJoH1IgHYeNhqZIgzlwDx39JPmArZAW/WZHDILWB7ipbTNw0R4U4VncrXJqDmMVex7NdHP6sg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@angular-devkit/core": "18.2.4", + "rxjs": "7.8.1" + }, + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular/build/node_modules/@angular-devkit/core": { + "version": "18.2.4", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-18.2.4.tgz", + "integrity": "sha512-svlgZ0vbLrfNJAQE5WePAutcYIyA7C0OfzKSTMsfV2X1I+1blYDaZIu/ocnHqofMHu6ZqdSaaU/p/rieqU8fcA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "8.17.1", + "ajv-formats": "3.0.1", + "jsonc-parser": "3.3.1", + "picomatch": "4.0.2", + "rxjs": "7.8.1", + "source-map": "0.7.4" + }, + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "peerDependencies": { + "chokidar": "^3.5.2" + }, + "peerDependenciesMeta": { + "chokidar": { + "optional": true + } + } + }, + "node_modules/@angular/build/node_modules/ajv": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/@angular/build/node_modules/ajv-formats": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-3.0.1.tgz", + "integrity": "sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^8.0.0" }, "peerDependencies": { - "@angular/core": "17.3.7" + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/@angular/build/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" } }, "node_modules/@angular/cdk": { - "version": "17.3.7", - "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-17.3.7.tgz", - "integrity": "sha512-aFEh8tzKFOwini6aNEp57S54Ocp9T7YIJfBVMESptu2TCPdMTlJ1HJTg5XS8NcQO+vwi9cFPGVwGF1frOx4LXA==", + "version": "18.2.4", + "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-18.2.4.tgz", + "integrity": "sha512-o+TuxZDqStfkviEkCR05pVyP6R2RIruEs/45Cms76hlsIheMoxRaxir/yrHdh4tZESJJhcO/EVE+aymNIRWAfg==", + "license": "MIT", "dependencies": { "tslib": "^2.3.0" }, @@ -455,33 +723,33 @@ "parse5": "^7.1.2" }, "peerDependencies": { - "@angular/common": "^17.0.0 || ^18.0.0", - "@angular/core": "^17.0.0 || ^18.0.0", + "@angular/common": "^18.0.0 || ^19.0.0", + "@angular/core": "^18.0.0 || ^19.0.0", "rxjs": "^6.5.3 || ^7.4.0" } }, "node_modules/@angular/cli": { - "version": "17.3.6", - "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-17.3.6.tgz", - "integrity": "sha512-poKaRPeI+hFqX+AxIaEriaIggFVcC3XqlT9E1/uBC2rfHirE1n5F9Z7xqEDtMHduKwLbNXhQIPoKIKya8+Hnew==", - "dev": true, - "dependencies": { - "@angular-devkit/architect": "0.1703.6", - "@angular-devkit/core": "17.3.6", - "@angular-devkit/schematics": "17.3.6", - "@schematics/angular": "17.3.6", + "version": "18.2.4", + "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-18.2.4.tgz", + "integrity": "sha512-n+Y2xlgcpTZ+MZmycf2b3ceVvANDJFkDEodobVtyG63WvGOhkZ3aGhT7sHguKpAQwJLicSf8zF2z+v1Yi0DvRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@angular-devkit/architect": "0.1802.4", + "@angular-devkit/core": "18.2.4", + "@angular-devkit/schematics": "18.2.4", + "@inquirer/prompts": "5.3.8", + "@listr2/prompt-adapter-inquirer": "2.0.15", + "@schematics/angular": "18.2.4", "@yarnpkg/lockfile": "1.1.0", - "ansi-colors": "4.1.3", - "ini": "4.1.2", - "inquirer": "9.2.15", - "jsonc-parser": "3.2.1", - "npm-package-arg": "11.0.1", - "npm-pick-manifest": "9.0.0", - "open": "8.4.2", - "ora": "5.4.1", - "pacote": "17.0.6", + "ini": "4.1.3", + "jsonc-parser": "3.3.1", + "listr2": "8.2.4", + "npm-package-arg": "11.0.3", + "npm-pick-manifest": "9.1.0", + "pacote": "18.0.6", "resolve": "1.22.8", - "semver": "7.6.0", + "semver": "7.6.3", "symbol-observable": "4.0.0", "yargs": "17.7.2" }, @@ -489,41 +757,43 @@ "ng": "bin/ng.js" }, "engines": { - "node": "^18.13.0 || >=20.9.0", + "node": "^18.19.1 || ^20.11.1 || >=22.0.0", "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", "yarn": ">= 1.13.0" } }, "node_modules/@angular/cli/node_modules/@angular-devkit/architect": { - "version": "0.1703.6", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1703.6.tgz", - "integrity": "sha512-Ck501FD/QuOjeKVFs7hU92w8+Ffetv0d5Sq09XY2/uygo5c/thMzp9nkevaIWBxUSeU5RqYZizDrhFVgYzbbOw==", + "version": "0.1802.4", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1802.4.tgz", + "integrity": "sha512-VH7AwGng1zuWPTJoH1IgHYeNhqZIgzlwDx39JPmArZAW/WZHDILWB7ipbTNw0R4U4VncrXJqDmMVex7NdHP6sg==", "dev": true, + "license": "MIT", "dependencies": { - "@angular-devkit/core": "17.3.6", + "@angular-devkit/core": "18.2.4", "rxjs": "7.8.1" }, "engines": { - "node": "^18.13.0 || >=20.9.0", + "node": "^18.19.1 || ^20.11.1 || >=22.0.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.3.6", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-17.3.6.tgz", - "integrity": "sha512-FVbkT9dEwHEvjnxr4mvMNSMg2bCFoGoP4X68xXU9dhLEUpC05opLvfbaR3Qh543eCJ5AstosBFVzB/krfIkOvA==", + "version": "18.2.4", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-18.2.4.tgz", + "integrity": "sha512-svlgZ0vbLrfNJAQE5WePAutcYIyA7C0OfzKSTMsfV2X1I+1blYDaZIu/ocnHqofMHu6ZqdSaaU/p/rieqU8fcA==", "dev": true, + "license": "MIT", "dependencies": { - "ajv": "8.12.0", - "ajv-formats": "2.1.1", - "jsonc-parser": "3.2.1", - "picomatch": "4.0.1", + "ajv": "8.17.1", + "ajv-formats": "3.0.1", + "jsonc-parser": "3.3.1", + "picomatch": "4.0.2", "rxjs": "7.8.1", "source-map": "0.7.4" }, "engines": { - "node": "^18.13.0 || >=20.9.0", + "node": "^18.19.1 || ^20.11.1 || >=22.0.0", "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", "yarn": ">= 1.13.0" }, @@ -537,50 +807,101 @@ } }, "node_modules/@angular/cli/node_modules/@angular-devkit/schematics": { - "version": "17.3.6", - "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-17.3.6.tgz", - "integrity": "sha512-2G1YuPInd8znG7uUgKOS7z72Aku50lTzB/2csWkWPJLAFkh7vKC8QZ40x8S1nC9npVYPhI5CRLX/HVpBh9CyxA==", + "version": "18.2.4", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-18.2.4.tgz", + "integrity": "sha512-s2WdUhyLlKj5kOjb6vrvJg9/31KvgyRJGjy7PnzS43tpwF9MLuM3AYhuJsXHPhx+i0nyWn/Jnd8ZLjMzXljSxg==", "dev": true, + "license": "MIT", "dependencies": { - "@angular-devkit/core": "17.3.6", - "jsonc-parser": "3.2.1", - "magic-string": "0.30.8", + "@angular-devkit/core": "18.2.4", + "jsonc-parser": "3.3.1", + "magic-string": "0.30.11", "ora": "5.4.1", "rxjs": "7.8.1" }, "engines": { - "node": "^18.13.0 || >=20.9.0", + "node": "^18.19.1 || ^20.11.1 || >=22.0.0", "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", "yarn": ">= 1.13.0" } }, + "node_modules/@angular/cli/node_modules/ajv": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/@angular/cli/node_modules/ajv-formats": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-3.0.1.tgz", + "integrity": "sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/@angular/cli/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/@angular/common": { - "version": "17.3.7", - "resolved": "https://registry.npmjs.org/@angular/common/-/common-17.3.7.tgz", - "integrity": "sha512-A7LRJu1vVCGGgrfZXjU+njz50SiU4weheKCar5PIUprcdIofS1IrHAJDqYh+kwXxkjXbZMOr/ijQY0+AESLEsw==", + "version": "18.2.4", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-18.2.4.tgz", + "integrity": "sha512-flUaKhdr8KvtjH0cLC6Rrjirt8GsiFlrmZLZplr784O3Gkei2VBBNFoopgmlEzbVGPiIG5QlFZH9yvah6JPQZw==", + "license": "MIT", "dependencies": { "tslib": "^2.3.0" }, "engines": { - "node": "^18.13.0 || >=20.9.0" + "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/core": "17.3.7", + "@angular/core": "18.2.4", "rxjs": "^6.5.3 || ^7.4.0" } }, "node_modules/@angular/compiler": { - "version": "17.3.7", - "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-17.3.7.tgz", - "integrity": "sha512-AlKiqPoxnrpQ0hn13fIaQPSVodaVAIjBW4vpFyuKFqs2LBKg6iolwZ21s8rEI0KR2gXl+8ugj0/UZ6YADiVM5w==", + "version": "18.2.4", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-18.2.4.tgz", + "integrity": "sha512-o3ngFr1Bjt7cKOu4DSZJGCUF9YPTxJee97wFon2eNFj6FFNTmnGwAvsnJjHBMmk90fmZLC2/HpPdhYz7WprMZQ==", + "license": "MIT", "dependencies": { "tslib": "^2.3.0" }, "engines": { - "node": "^18.13.0 || >=20.9.0" + "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/core": "17.3.7" + "@angular/core": "18.2.4" }, "peerDependenciesMeta": { "@angular/core": { @@ -589,12 +910,13 @@ } }, "node_modules/@angular/compiler-cli": { - "version": "17.3.7", - "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-17.3.7.tgz", - "integrity": "sha512-vSg5IQZ9jGmvYjpbfH8KbH4Sl1IVeE+Mr1ogcxkGEsURSRvKo7EWc0K7LSEI9+gg0VLamMiP9EyCJdPxiJeLJQ==", + "version": "18.2.4", + "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-18.2.4.tgz", + "integrity": "sha512-BIp5zr+npqSs/4KWPxwKdn7+sjo008ieNOQDlXyQms9BKlxx/gDnj7W2TsxhrkDTYCIHF73fJZ7u2U8Qy4JWfw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/core": "7.23.9", + "@babel/core": "7.25.2", "@jridgewell/sourcemap-codec": "^1.4.14", "chokidar": "^3.0.0", "convert-source-map": "^1.5.1", @@ -609,168 +931,80 @@ "ngcc": "bundles/ngcc/index.js" }, "engines": { - "node": "^18.13.0 || >=20.9.0" + "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/compiler": "17.3.7", - "typescript": ">=5.2 <5.5" - } - }, - "node_modules/@angular/compiler-cli/node_modules/@babel/core": { - "version": "7.23.9", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.9.tgz", - "integrity": "sha512-5q0175NOjddqpvvzU+kDiSOAk4PfdO6FvwCWoQ6RO7rTzEe8vlo+4HVfcnAREhD4npMs0e9uZypjTwzZPCf/cw==", - "dev": true, - "dependencies": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.23.5", - "@babel/generator": "^7.23.6", - "@babel/helper-compilation-targets": "^7.23.6", - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helpers": "^7.23.9", - "@babel/parser": "^7.23.9", - "@babel/template": "^7.23.9", - "@babel/traverse": "^7.23.9", - "@babel/types": "^7.23.9", - "convert-source-map": "^2.0.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.3", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@angular/compiler-cli/node_modules/@babel/core/node_modules/convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true - }, - "node_modules/@angular/compiler-cli/node_modules/@babel/core/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "bin": { - "semver": "bin/semver.js" + "@angular/compiler": "18.2.4", + "typescript": ">=5.4 <5.6" } }, "node_modules/@angular/core": { - "version": "17.3.7", - "resolved": "https://registry.npmjs.org/@angular/core/-/core-17.3.7.tgz", - "integrity": "sha512-HWcrbxqnvIMSxFuQdN0KPt08bc87hqr0LKm89yuRTUwx/2sNJlNQUobk6aJj4trswGBttcRDT+GOS4DQP2Nr4g==", + "version": "18.2.4", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-18.2.4.tgz", + "integrity": "sha512-ulYmYpI/ZVQ5BL38rBy4DS/9wgGWmVD9Uo6tcrLqCzt1G1G2nKwseZv009536pHfk6dj2HdPSkpcerhWh57DWw==", + "license": "MIT", "dependencies": { "tslib": "^2.3.0" }, "engines": { - "node": "^18.13.0 || >=20.9.0" + "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { "rxjs": "^6.5.3 || ^7.4.0", - "zone.js": "~0.14.0" + "zone.js": "~0.14.10" } }, "node_modules/@angular/forms": { - "version": "17.3.7", - "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-17.3.7.tgz", - "integrity": "sha512-FEhXh/VmT++XCoO8i7bBtzxG7Am/cE1zrr9aF+fWW+4jpWvJvVN1IaSiJxgBB+iPsOJ9lTBRwfRW3onlcDkhrw==", + "version": "18.2.4", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-18.2.4.tgz", + "integrity": "sha512-rlLhReauUz6jhLCEkGabLqqF6xLaTfvxafuj2ojzcqoKGSZcXDIM/UOSoWX756B8NtrpsuglpGBZjZlsrAZGsg==", + "license": "MIT", "dependencies": { "tslib": "^2.3.0" }, "engines": { - "node": "^18.13.0 || >=20.9.0" + "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/common": "17.3.7", - "@angular/core": "17.3.7", - "@angular/platform-browser": "17.3.7", + "@angular/common": "18.2.4", + "@angular/core": "18.2.4", + "@angular/platform-browser": "18.2.4", "rxjs": "^6.5.3 || ^7.4.0" } }, "node_modules/@angular/material": { - "version": "17.3.7", - "resolved": "https://registry.npmjs.org/@angular/material/-/material-17.3.7.tgz", - "integrity": "sha512-wjSKkk9KZE8QiBPkMd5axh5u/3pUSxoLKNO7OasFhEagMmSv5oYTLm40cErhtb4UdkSmbC19WuuluS6P3leoPA==", - "dependencies": { - "@material/animation": "15.0.0-canary.7f224ddd4.0", - "@material/auto-init": "15.0.0-canary.7f224ddd4.0", - "@material/banner": "15.0.0-canary.7f224ddd4.0", - "@material/base": "15.0.0-canary.7f224ddd4.0", - "@material/button": "15.0.0-canary.7f224ddd4.0", - "@material/card": "15.0.0-canary.7f224ddd4.0", - "@material/checkbox": "15.0.0-canary.7f224ddd4.0", - "@material/chips": "15.0.0-canary.7f224ddd4.0", - "@material/circular-progress": "15.0.0-canary.7f224ddd4.0", - "@material/data-table": "15.0.0-canary.7f224ddd4.0", - "@material/density": "15.0.0-canary.7f224ddd4.0", - "@material/dialog": "15.0.0-canary.7f224ddd4.0", - "@material/dom": "15.0.0-canary.7f224ddd4.0", - "@material/drawer": "15.0.0-canary.7f224ddd4.0", - "@material/elevation": "15.0.0-canary.7f224ddd4.0", - "@material/fab": "15.0.0-canary.7f224ddd4.0", - "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", - "@material/floating-label": "15.0.0-canary.7f224ddd4.0", - "@material/form-field": "15.0.0-canary.7f224ddd4.0", - "@material/icon-button": "15.0.0-canary.7f224ddd4.0", - "@material/image-list": "15.0.0-canary.7f224ddd4.0", - "@material/layout-grid": "15.0.0-canary.7f224ddd4.0", - "@material/line-ripple": "15.0.0-canary.7f224ddd4.0", - "@material/linear-progress": "15.0.0-canary.7f224ddd4.0", - "@material/list": "15.0.0-canary.7f224ddd4.0", - "@material/menu": "15.0.0-canary.7f224ddd4.0", - "@material/menu-surface": "15.0.0-canary.7f224ddd4.0", - "@material/notched-outline": "15.0.0-canary.7f224ddd4.0", - "@material/radio": "15.0.0-canary.7f224ddd4.0", - "@material/ripple": "15.0.0-canary.7f224ddd4.0", - "@material/rtl": "15.0.0-canary.7f224ddd4.0", - "@material/segmented-button": "15.0.0-canary.7f224ddd4.0", - "@material/select": "15.0.0-canary.7f224ddd4.0", - "@material/shape": "15.0.0-canary.7f224ddd4.0", - "@material/slider": "15.0.0-canary.7f224ddd4.0", - "@material/snackbar": "15.0.0-canary.7f224ddd4.0", - "@material/switch": "15.0.0-canary.7f224ddd4.0", - "@material/tab": "15.0.0-canary.7f224ddd4.0", - "@material/tab-bar": "15.0.0-canary.7f224ddd4.0", - "@material/tab-indicator": "15.0.0-canary.7f224ddd4.0", - "@material/tab-scroller": "15.0.0-canary.7f224ddd4.0", - "@material/textfield": "15.0.0-canary.7f224ddd4.0", - "@material/theme": "15.0.0-canary.7f224ddd4.0", - "@material/tooltip": "15.0.0-canary.7f224ddd4.0", - "@material/top-app-bar": "15.0.0-canary.7f224ddd4.0", - "@material/touch-target": "15.0.0-canary.7f224ddd4.0", - "@material/typography": "15.0.0-canary.7f224ddd4.0", + "version": "18.2.4", + "resolved": "https://registry.npmjs.org/@angular/material/-/material-18.2.4.tgz", + "integrity": "sha512-F09145mI/EAHY9ngdnQTo3pFRmUoU/50i6cmddtL4cse0WidatoodQr0gZCksxhmpJgRy5mTcjh/LU2hShOgcA==", + "license": "MIT", + "dependencies": { "tslib": "^2.3.0" }, "peerDependencies": { - "@angular/animations": "^17.0.0 || ^18.0.0", - "@angular/cdk": "17.3.7", - "@angular/common": "^17.0.0 || ^18.0.0", - "@angular/core": "^17.0.0 || ^18.0.0", - "@angular/forms": "^17.0.0 || ^18.0.0", - "@angular/platform-browser": "^17.0.0 || ^18.0.0", + "@angular/animations": "^18.0.0 || ^19.0.0", + "@angular/cdk": "18.2.4", + "@angular/common": "^18.0.0 || ^19.0.0", + "@angular/core": "^18.0.0 || ^19.0.0", + "@angular/forms": "^18.0.0 || ^19.0.0", + "@angular/platform-browser": "^18.0.0 || ^19.0.0", "rxjs": "^6.5.3 || ^7.4.0" } }, "node_modules/@angular/platform-browser": { - "version": "17.3.7", - "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-17.3.7.tgz", - "integrity": "sha512-Nn8ZMaftAvO9dEwribWdNv+QBHhYIBrRkv85G6et80AXfXoYAr/xcfnQECRFtZgPmANqHC5auv/xrmExQG+Yeg==", + "version": "18.2.4", + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-18.2.4.tgz", + "integrity": "sha512-ddzq5MyPvFyTv0kUe8U9fbhE1nZtLYBCFKDqICrzHXiVRAdqLv6qtE5PtbURrdspSy1u/YEGV4LdkNJK3UgnZQ==", + "license": "MIT", "dependencies": { "tslib": "^2.3.0" }, "engines": { - "node": "^18.13.0 || >=20.9.0" + "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/animations": "17.3.7", - "@angular/common": "17.3.7", - "@angular/core": "17.3.7" + "@angular/animations": "18.2.4", + "@angular/common": "18.2.4", + "@angular/core": "18.2.4" }, "peerDependenciesMeta": { "@angular/animations": { @@ -779,46 +1013,49 @@ } }, "node_modules/@angular/platform-browser-dynamic": { - "version": "17.3.7", - "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-17.3.7.tgz", - "integrity": "sha512-9c2I4u0L1p2v1/lW8qy+WaNHisUWbyy6wqsv2v9FfCaSM49Lxymgo9LPFPC4qEG5ei5nE+eIQ2ocRiXXsf5QkQ==", + "version": "18.2.4", + "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-18.2.4.tgz", + "integrity": "sha512-0nA04zJueGzdnl37TJ7guDCrzxYS4fjqgvYKiOpFktpMHPuNrBlAQo5YA7u20HGFG3i47PQh7hEWhQaqcXXpQw==", + "license": "MIT", "dependencies": { "tslib": "^2.3.0" }, "engines": { - "node": "^18.13.0 || >=20.9.0" + "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/common": "17.3.7", - "@angular/compiler": "17.3.7", - "@angular/core": "17.3.7", - "@angular/platform-browser": "17.3.7" + "@angular/common": "18.2.4", + "@angular/compiler": "18.2.4", + "@angular/core": "18.2.4", + "@angular/platform-browser": "18.2.4" } }, "node_modules/@angular/router": { - "version": "17.3.7", - "resolved": "https://registry.npmjs.org/@angular/router/-/router-17.3.7.tgz", - "integrity": "sha512-lMkuRrc1ZjP5JPDxNHqoAhB0uAnfPQ/q6mJrw1s8IZoVV6VyM+FxR5r13ajNcXWC38xy/YhBjpXPF1vBdxuLXg==", + "version": "18.2.4", + "resolved": "https://registry.npmjs.org/@angular/router/-/router-18.2.4.tgz", + "integrity": "sha512-kYNHD3K1Xou2PRMqbG2tVahtMobgDlhwHdMB7G5oFHg6K13gQ2TmopF1U5A2wYtIMdsC+AkVGIJEOxQN8fmgcA==", + "license": "MIT", "dependencies": { "tslib": "^2.3.0" }, "engines": { - "node": "^18.13.0 || >=20.9.0" + "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/common": "17.3.7", - "@angular/core": "17.3.7", - "@angular/platform-browser": "17.3.7", + "@angular/common": "18.2.4", + "@angular/core": "18.2.4", + "@angular/platform-browser": "18.2.4", "rxjs": "^6.5.3 || ^7.4.0" } }, "node_modules/@babel/code-frame": { - "version": "7.24.2", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.2.tgz", - "integrity": "sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz", + "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/highlight": "^7.24.2", + "@babel/highlight": "^7.24.7", "picocolors": "^1.0.0" }, "engines": { @@ -826,30 +1063,32 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.24.4", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.4.tgz", - "integrity": "sha512-vg8Gih2MLK+kOkHJp4gBEIkyaIi00jgWot2D9QOmmfLC8jINSOzmCLta6Bvz/JSBCqnegV0L80jhxkol5GWNfQ==", + "version": "7.25.4", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.25.4.tgz", + "integrity": "sha512-+LGRog6RAsCJrrrg/IO6LGmpphNe5DiK30dGjCoxxeGv49B10/3XYGxPsAwrDlMFcFEvdAUavDT8r9k/hSyQqQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.0.tgz", - "integrity": "sha512-fQfkg0Gjkza3nf0c7/w6Xf34BW4YvzNfACRLmmb7XRLa6XHdR+K9AlJlxneFfWYf6uhOzuzZVTjF/8KfndZANw==", + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.25.2.tgz", + "integrity": "sha512-BBt3opiCOxUr9euZ5/ro/Xv8/V7yJ5bjYMqG/C1YAo8MIKAnumZalCN+msbci3Pigy4lIQfPUpfMM27HMGaYEA==", "dev": true, + "license": "MIT", "dependencies": { "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.23.5", - "@babel/generator": "^7.23.6", - "@babel/helper-compilation-targets": "^7.23.6", - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helpers": "^7.24.0", - "@babel/parser": "^7.24.0", - "@babel/template": "^7.24.0", - "@babel/traverse": "^7.24.0", - "@babel/types": "^7.24.0", + "@babel/code-frame": "^7.24.7", + "@babel/generator": "^7.25.0", + "@babel/helper-compilation-targets": "^7.25.2", + "@babel/helper-module-transforms": "^7.25.2", + "@babel/helpers": "^7.25.0", + "@babel/parser": "^7.25.0", + "@babel/template": "^7.25.0", + "@babel/traverse": "^7.25.2", + "@babel/types": "^7.25.2", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -880,14 +1119,15 @@ } }, "node_modules/@babel/generator": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.6.tgz", - "integrity": "sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.25.0.tgz", + "integrity": "sha512-3LEEcj3PVW8pW2R1SR1M89g/qrYk/m/mB/tLqn7dn4sbBUQyTqnlod+II2U4dqiGtUmkcnAmkMDralTFZttRiw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/types": "^7.23.6", - "@jridgewell/gen-mapping": "^0.3.2", - "@jridgewell/trace-mapping": "^0.3.17", + "@babel/types": "^7.25.0", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", "jsesc": "^2.5.1" }, "engines": { @@ -895,38 +1135,42 @@ } }, "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", - "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.24.7.tgz", + "integrity": "sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/types": "^7.22.5" + "@babel/types": "^7.24.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz", - "integrity": "sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.24.7.tgz", + "integrity": "sha512-xZeCVVdwb4MsDBkkyZ64tReWYrLRHlMN72vP7Bdm3OUOuyFZExhsHUUnuWnm2/XOlAJzR0LfPpB56WXZn0X/lA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/types": "^7.22.15" + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", - "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.2.tgz", + "integrity": "sha512-U2U5LsSaZ7TAt3cfaymQ8WHh0pxvdHoEk6HVpaexxixjyEquMh0L0YNJNM6CTGKMXV1iksi0iZkGw4AcFkPaaw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.23.5", - "@babel/helper-validator-option": "^7.23.5", - "browserslist": "^4.22.2", + "@babel/compat-data": "^7.25.2", + "@babel/helper-validator-option": "^7.24.8", + "browserslist": "^4.23.1", "lru-cache": "^5.1.1", "semver": "^6.3.1" }, @@ -939,24 +1183,24 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.5.tgz", - "integrity": "sha512-uRc4Cv8UQWnE4NXlYTIIdM7wfFkOqlFztcC/gVXDKohKoVB3OyonfelUBaJzSwpBntZ2KYGF/9S7asCHsXwW6g==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-member-expression-to-functions": "^7.24.5", - "@babel/helper-optimise-call-expression": "^7.22.5", - "@babel/helper-replace-supers": "^7.24.1", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.24.5", + "version": "7.25.4", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.25.4.tgz", + "integrity": "sha512-ro/bFs3/84MDgDmMwbcHgDa8/E6J3QKNTk4xJJnVeFtGE+tL0K26E3pNxhYz2b67fJpt7Aphw5XcploKXuCvCQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-member-expression-to-functions": "^7.24.8", + "@babel/helper-optimise-call-expression": "^7.24.7", + "@babel/helper-replace-supers": "^7.25.0", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", + "@babel/traverse": "^7.25.4", "semver": "^6.3.1" }, "engines": { @@ -966,34 +1210,24 @@ "@babel/core": "^7.0.0" } }, - "node_modules/@babel/helper-create-class-features-plugin/node_modules/@babel/helper-split-export-declaration": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.5.tgz", - "integrity": "sha512-5CHncttXohrHk8GWOFCcCl4oRD9fKosWlIRgWm4ql9VYioKm52Mk2xsmoohvm7f3JoiLSM5ZgJuRaf5QZZYd3Q==", - "dev": true, - "dependencies": { - "@babel/types": "^7.24.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz", - "integrity": "sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==", + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.25.2.tgz", + "integrity": "sha512-+wqVGP+DFmqwFD3EH6TMTfUNeqDehV3E/dl+Sd54eaXqm17tEUNbEIn4sVivVowbvUpOtIGxdo3GoXyDH9N/9g==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-annotate-as-pure": "^7.24.7", "regexpu-core": "^5.3.1", "semver": "^6.3.1" }, @@ -1009,6 +1243,7 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver.js" } @@ -1018,6 +1253,7 @@ "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.2.tgz", "integrity": "sha512-LV76g+C502biUK6AyZ3LK10vDpDyCzZnhZFXkH1L75zHPj68+qc8Zfpx2th+gzwA2MzyK+1g/3EPl62yFnVttQ==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-compilation-targets": "^7.22.6", "@babel/helper-plugin-utils": "^7.22.5", @@ -1029,125 +1265,86 @@ "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, - "node_modules/@babel/helper-environment-visitor": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", - "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.24.8.tgz", + "integrity": "sha512-LABppdt+Lp/RlBxqrh4qgf1oEH/WxdzQNDJIu5gC/W1GyvPVrOBiItmmM8wan2fm4oYqFuFfkXmlGpLQhPY8CA==", "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.24.8", + "@babel/types": "^7.24.8" + }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/helper-function-name": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", - "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", + "node_modules/@babel/helper-module-imports": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz", + "integrity": "sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/template": "^7.22.15", - "@babel/types": "^7.23.0" + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/helper-hoist-variables": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", - "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", + "node_modules/@babel/helper-module-transforms": { + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.25.2.tgz", + "integrity": "sha512-BjyRAbix6j/wv83ftcVJmBt72QtHI56C7JXZoG2xATiLpmoC7dpd8WnkikExHDVPpi/3qCmO6WY1EaXOluiecQ==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.24.5.tgz", - "integrity": "sha512-4owRteeihKWKamtqg4JmWSsEZU445xpFRXPEwp44HbgbxdWlUV1b4Agg4lkA806Lil5XM/e+FJyS0vj5T6vmcA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.24.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-imports": { - "version": "7.24.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.3.tgz", - "integrity": "sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==", - "dev": true, - "dependencies": { - "@babel/types": "^7.24.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.24.5.tgz", - "integrity": "sha512-9GxeY8c2d2mdQUP1Dye0ks3VDyIMS98kt/llQ2nUId8IsWqTF0l1LkSX0/uP7l7MCDrzXS009Hyhe2gzTiGW8A==", - "dev": true, - "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-module-imports": "^7.24.3", - "@babel/helper-simple-access": "^7.24.5", - "@babel/helper-split-export-declaration": "^7.24.5", - "@babel/helper-validator-identifier": "^7.24.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-module-transforms/node_modules/@babel/helper-split-export-declaration": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.5.tgz", - "integrity": "sha512-5CHncttXohrHk8GWOFCcCl4oRD9fKosWlIRgWm4ql9VYioKm52Mk2xsmoohvm7f3JoiLSM5ZgJuRaf5QZZYd3Q==", - "dev": true, - "dependencies": { - "@babel/types": "^7.24.5" + "@babel/helper-module-imports": "^7.24.7", + "@babel/helper-simple-access": "^7.24.7", + "@babel/helper-validator-identifier": "^7.24.7", + "@babel/traverse": "^7.25.2" }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", - "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.24.7.tgz", + "integrity": "sha512-jKiTsW2xmWwxT1ixIdfXUZp+P5yURx2suzLZr5Hi64rURpDYdMW0pv+Uf17EYk2Rd428Lx4tLsnjGJzYKDM/6A==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/types": "^7.22.5" + "@babel/types": "^7.24.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.5.tgz", - "integrity": "sha512-xjNLDopRzW2o6ba0gKbkZq5YWEBaK3PCyTOY1K2P/O07LGMhMqlMXPxwN4S5/RhWuCobT8z0jrlKGlYmeR1OhQ==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.8.tgz", + "integrity": "sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz", - "integrity": "sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.25.0.tgz", + "integrity": "sha512-NhavI2eWEIz/H9dbrG0TuOicDhNexze43i5z7lEqwYm0WEZVTwnPpA0EafUTP7+6/W79HWIP2cTe3Z5NiSTVpw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-wrap-function": "^7.22.20" + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-wrap-function": "^7.25.0", + "@babel/traverse": "^7.25.0" }, "engines": { "node": ">=6.9.0" @@ -1157,14 +1354,15 @@ } }, "node_modules/@babel/helper-replace-supers": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.24.1.tgz", - "integrity": "sha512-QCR1UqC9BzG5vZl8BMicmZ28RuUBnHhAMddD8yHFHDRH9lLTZ9uUPehX8ctVPT8l0TKblJidqcgUUKGVrePleQ==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.25.0.tgz", + "integrity": "sha512-q688zIvQVYtZu+i2PsdIu/uWGRpfxzr5WESsfpShfZECkO+d2o+WROWezCi/Q6kJ0tfPa5+pUGUlfx2HhrA3Bg==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-member-expression-to-functions": "^7.23.0", - "@babel/helper-optimise-call-expression": "^7.22.5" + "@babel/helper-member-expression-to-functions": "^7.24.8", + "@babel/helper-optimise-call-expression": "^7.24.7", + "@babel/traverse": "^7.25.0" }, "engines": { "node": ">=6.9.0" @@ -1174,103 +1372,113 @@ } }, "node_modules/@babel/helper-simple-access": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.5.tgz", - "integrity": "sha512-uH3Hmf5q5n7n8mz7arjUlDOCbttY/DW4DYhE6FUsjKJ/oYC1kQQUvwEQWxRwUpX9qQKRXeqLwWxrqilMrf32sQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.7.tgz", + "integrity": "sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/types": "^7.24.5" + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", - "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.24.7.tgz", + "integrity": "sha512-IO+DLT3LQUElMbpzlatRASEyQtfhSE0+m465v++3jyyXeBTBUjtVZg28/gHeV5mrTJqvEKhKroBGAvhW+qPHiQ==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/types": "^7.22.5" + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-split-export-declaration": { - "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", - "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.7.tgz", + "integrity": "sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/types": "^7.22.5" + "@babel/types": "^7.24.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-string-parser": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.1.tgz", - "integrity": "sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz", + "integrity": "sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.5.tgz", - "integrity": "sha512-3q93SSKX2TWCG30M2G2kwaKeTYgEUp5Snjuj8qm729SObL6nbtUldAi37qbxkD5gg3xnBio+f9nqpSepGZMvxA==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz", + "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-option": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", - "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.8.tgz", + "integrity": "sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-wrap-function": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.24.5.tgz", - "integrity": "sha512-/xxzuNvgRl4/HLNKvnFwdhdgN3cpLxgLROeLDl83Yx0AJ1SGvq1ak0OszTOjDfiB8Vx03eJbeDWh9r+jCCWttw==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.25.0.tgz", + "integrity": "sha512-s6Q1ebqutSiZnEjaofc/UKDyC4SbzV5n5SrA2Gq8UawLycr3i04f1dX4OzoQVnexm6aOCh37SQNYlJ/8Ku+PMQ==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-function-name": "^7.23.0", - "@babel/template": "^7.24.0", - "@babel/types": "^7.24.5" + "@babel/template": "^7.25.0", + "@babel/traverse": "^7.25.0", + "@babel/types": "^7.25.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helpers": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.5.tgz", - "integrity": "sha512-CiQmBMMpMQHwM5m01YnrM6imUG1ebgYJ+fAIW4FZe6m4qHTPaRHti+R8cggAwkdz4oXhtO4/K9JWlh+8hIfR2Q==", + "version": "7.25.6", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.25.6.tgz", + "integrity": "sha512-Xg0tn4HcfTijTwfDwYlvVCl43V6h4KyVVX2aEm4qdO/PC6L2YvzLHFdmxhoeSA3eslcE6+ZVXHgWwopXYLNq4Q==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/template": "^7.24.0", - "@babel/traverse": "^7.24.5", - "@babel/types": "^7.24.5" + "@babel/template": "^7.25.0", + "@babel/types": "^7.25.6" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/highlight": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.5.tgz", - "integrity": "sha512-8lLmua6AVh/8SLJRRVD6V8p73Hir9w5mJrhE+IPpILG31KKlI9iz5zmBYKcWPS59qSfgP9RaSBQSHHE81WKuEw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz", + "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-validator-identifier": "^7.24.5", + "@babel/helper-validator-identifier": "^7.24.7", "chalk": "^2.4.2", "js-tokens": "^4.0.0", "picocolors": "^1.0.0" @@ -1280,10 +1488,14 @@ } }, "node_modules/@babel/parser": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.5.tgz", - "integrity": "sha512-EOv5IK8arwh3LI47dz1b0tKUb/1uhHAnHJOrjgtQMIpu1uXd9mlFrJg9IUgGUgZ41Ch0K8REPTYpO7B76b4vJg==", + "version": "7.25.6", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.25.6.tgz", + "integrity": "sha512-trGdfBdbD0l1ZPmcJ83eNxB9rbEax4ALFTF7fN386TMYbeCQbyme5cOEXQhbGXKebwGaB/J52w1mrklMcbgy6Q==", "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.25.6" + }, "bin": { "parser": "bin/babel-parser.js" }, @@ -1291,13 +1503,47 @@ "node": ">=6.0.0" } }, + "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { + "version": "7.25.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.25.3.tgz", + "integrity": "sha512-wUrcsxZg6rqBXG05HG1FPYgsP6EvwF4WpBbxIpWIIYnH8wG0gzx3yZY3dtEHas4sTAOGkbTsc9EGPxwff8lRoA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/traverse": "^7.25.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-class-field-initializer-scope": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.25.0.tgz", + "integrity": "sha512-Bm4bH2qsX880b/3ziJ8KD711LT7z4u8CFudmjqle65AZj/HNUFhEf90dqYv6O86buWvSBmeQDjv0Tn2aF/bIBA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.8" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.24.1.tgz", - "integrity": "sha512-y4HqEnkelJIOQGd+3g1bTeKsA5c6qM7eOn7VggGVbBc0y8MLSKHacwcIE2PplNlQSj0PqS9rrXL/nkPVK+kUNg==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.25.0.tgz", + "integrity": "sha512-lXwdNZtTmeVOOFtwM/WDe7yg1PL8sYhRk/XH0FzbR2HDQ0xC+EnQ/JHeoMYSavtU115tnUk0q9CDyq8si+LMAA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-plugin-utils": "^7.24.8" }, "engines": { "node": ">=6.9.0" @@ -1307,14 +1553,15 @@ } }, "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.24.1.tgz", - "integrity": "sha512-Hj791Ii4ci8HqnaKHAlLNs+zaLXb0EzSDhiAWp5VNlyvCNymYfacs64pxTxbH1znW/NcArSmwpmG9IKE/TUVVQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.24.7.tgz", + "integrity": "sha512-+izXIbke1T33mY4MSNnrqhPXDz01WYhEf3yF5NbnUtkiNnm+XBZJl3kNfoK6NKmYlz/D07+l2GWVK/QfDkNCuQ==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/plugin-transform-optional-chaining": "^7.24.1" + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", + "@babel/plugin-transform-optional-chaining": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1324,13 +1571,14 @@ } }, "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.24.1.tgz", - "integrity": "sha512-m9m/fXsXLiHfwdgydIFnpk+7jlVbnvlK5B2EKiPdLUb6WX654ZaaEWJUjk8TftRbZpK0XibovlLWX4KIZhV6jw==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.25.0.tgz", + "integrity": "sha512-tggFrk1AIShG/RUQbEwt2Tr/E+ObkfwrPjR6BjbRvsx24+PSjK8zrq0GWPNCjo8qpRx4DuJzlcvWJqlm+0h3kw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/traverse": "^7.25.0" }, "engines": { "node": ">=6.9.0" @@ -1344,6 +1592,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" }, @@ -1356,6 +1605,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -1368,6 +1618,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.12.13" }, @@ -1380,6 +1631,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" }, @@ -1395,6 +1647,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -1407,6 +1660,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.3" }, @@ -1415,12 +1669,13 @@ } }, "node_modules/@babel/plugin-syntax-import-assertions": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.24.1.tgz", - "integrity": "sha512-IuwnI5XnuF189t91XbxmXeCDz3qs6iDRO7GJ++wcfgeXNs/8FmIlKcpDSXNVyuLQxlwvskmI3Ct73wUODkJBlQ==", + "version": "7.25.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.25.6.tgz", + "integrity": "sha512-aABl0jHw9bZ2karQ/uUD6XP4u0SG22SJrOHFoL6XB1R7dTovOP4TzTlsxOYC5yQ1pdscVK2JTUnF6QL3ARoAiQ==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-plugin-utils": "^7.24.8" }, "engines": { "node": ">=6.9.0" @@ -1430,12 +1685,13 @@ } }, "node_modules/@babel/plugin-syntax-import-attributes": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.24.1.tgz", - "integrity": "sha512-zhQTMH0X2nVLnb04tz+s7AMuasX8U0FnpE+nHTOhSOINjWMnopoZTxtIKsd45n4GQ/HIZLyfIpoul8e2m0DnRA==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.24.7.tgz", + "integrity": "sha512-hbX+lKKeUMGihnK8nvKqmXBInriT3GVjzXKFriV3YC6APGxMbP8RZNFwy91+hocLXq90Mta+HshoB31802bb8A==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1449,6 +1705,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" }, @@ -1461,6 +1718,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -1473,6 +1731,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" }, @@ -1485,6 +1744,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -1497,6 +1757,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" }, @@ -1509,6 +1770,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -1521,6 +1783,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -1533,6 +1796,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -1545,6 +1809,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" }, @@ -1560,6 +1825,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" }, @@ -1575,6 +1841,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.18.6", "@babel/helper-plugin-utils": "^7.18.6" @@ -1587,12 +1854,13 @@ } }, "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.24.1.tgz", - "integrity": "sha512-ngT/3NkRhsaep9ck9uj2Xhv9+xB1zShY3tM3g6om4xxCELwCDN4g4Aq5dRn48+0hasAql7s2hdBOysCfNpr4fw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.24.7.tgz", + "integrity": "sha512-Dt9LQs6iEY++gXUwY03DNFat5C2NbO48jj+j/bSAz6b3HgPs39qcPiYt77fDObIcFwj3/C2ICX9YMwGflUoSHQ==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1602,15 +1870,16 @@ } }, "node_modules/@babel/plugin-transform-async-generator-functions": { - "version": "7.23.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.9.tgz", - "integrity": "sha512-8Q3veQEDGe14dTYuwagbRtwxQDnytyg1JFu4/HwEMETeofocrB0U0ejBJIXoeG/t2oXZ8kzCyI0ZZfbT80VFNQ==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.25.0.tgz", + "integrity": "sha512-uaIi2FdqzjpAMvVqvB51S42oC2JEVgh0LDsGfZVDysWE8LrJtQC2jvKmOqEYThKyB7bDEb7BP1GYWDm7tABA0Q==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-remap-async-to-generator": "^7.22.20", - "@babel/plugin-syntax-async-generators": "^7.8.4" + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/helper-remap-async-to-generator": "^7.25.0", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/traverse": "^7.25.0" }, "engines": { "node": ">=6.9.0" @@ -1620,14 +1889,15 @@ } }, "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.23.3.tgz", - "integrity": "sha512-A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.24.7.tgz", + "integrity": "sha512-SQY01PcJfmQ+4Ash7NE+rpbLFbmqA2GPIgqzxfFTL4t1FKRq4zTms/7htKpoCUI9OcFYgzqfmCdH53s6/jn5fA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-module-imports": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-remap-async-to-generator": "^7.22.20" + "@babel/helper-module-imports": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-remap-async-to-generator": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1637,12 +1907,13 @@ } }, "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.24.1.tgz", - "integrity": "sha512-TWWC18OShZutrv9C6mye1xwtam+uNi2bnTOCBUd5sZxyHOiWbU6ztSROofIMrK84uweEZC219POICK/sTYwfgg==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.24.7.tgz", + "integrity": "sha512-yO7RAz6EsVQDaBH18IDJcMB1HnrUn2FJ/Jslc/WtPPWcjhpUJXU/rjbwmluzp7v/ZzWcEhTMXELnnsz8djWDwQ==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1652,12 +1923,13 @@ } }, "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.24.5.tgz", - "integrity": "sha512-sMfBc3OxghjC95BkYrYocHL3NaOplrcaunblzwXhGmlPwpmfsxr4vK+mBBt49r+S240vahmv+kUxkeKgs+haCw==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.25.0.tgz", + "integrity": "sha512-yBQjYoOjXlFv9nlXb3f1casSHOZkWr29NX+zChVanLg5Nc157CrbEX9D7hxxtTpuFy7Q0YzmmWfJxzvps4kXrQ==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.5" + "@babel/helper-plugin-utils": "^7.24.8" }, "engines": { "node": ">=6.9.0" @@ -1667,13 +1939,14 @@ } }, "node_modules/@babel/plugin-transform-class-properties": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.24.1.tgz", - "integrity": "sha512-OMLCXi0NqvJfORTaPQBwqLXHhb93wkBKZ4aNwMl6WtehO7ar+cmp+89iPEQPqxAnxsOKTaMcs3POz3rKayJ72g==", + "version": "7.25.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.25.4.tgz", + "integrity": "sha512-nZeZHyCWPfjkdU5pA/uHiTaDAFUEqkpzf1YoQT2NeSynCGYq9rxfyI3XpQbfx/a0hSnFH6TGlEXvae5Vi7GD8g==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.24.1", - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-create-class-features-plugin": "^7.25.4", + "@babel/helper-plugin-utils": "^7.24.8" }, "engines": { "node": ">=6.9.0" @@ -1683,13 +1956,14 @@ } }, "node_modules/@babel/plugin-transform-class-static-block": { - "version": "7.24.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.24.4.tgz", - "integrity": "sha512-B8q7Pz870Hz/q9UgP8InNpY01CSLDSCyqX7zcRuv3FcPl87A2G17lASroHWaCtbdIcbYzOZ7kWmXFKbijMSmFg==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.24.7.tgz", + "integrity": "sha512-HMXK3WbBPpZQufbMG4B46A90PkuuhN9vBCb5T8+VAHqvAqvcLi+2cKoukcpmUYkszLhScU3l1iudhrks3DggRQ==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.24.4", - "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-create-class-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", "@babel/plugin-syntax-class-static-block": "^7.14.5" }, "engines": { @@ -1700,18 +1974,17 @@ } }, "node_modules/@babel/plugin-transform-classes": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.24.5.tgz", - "integrity": "sha512-gWkLP25DFj2dwe9Ck8uwMOpko4YsqyfZJrOmqqcegeDYEbp7rmn4U6UQZNj08UF6MaX39XenSpKRCvpDRBtZ7Q==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-compilation-targets": "^7.23.6", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-plugin-utils": "^7.24.5", - "@babel/helper-replace-supers": "^7.24.1", - "@babel/helper-split-export-declaration": "^7.24.5", + "version": "7.25.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.25.4.tgz", + "integrity": "sha512-oexUfaQle2pF/b6E0dwsxQtAol9TLSO88kQvym6HHBWFliV2lGdrPieX+WgMRLSJDVzdYywk7jXbLPuO2KLTLg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-compilation-targets": "^7.25.2", + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/helper-replace-supers": "^7.25.0", + "@babel/traverse": "^7.25.4", "globals": "^11.1.0" }, "engines": { @@ -1721,26 +1994,31 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-classes/node_modules/@babel/helper-split-export-declaration": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.5.tgz", - "integrity": "sha512-5CHncttXohrHk8GWOFCcCl4oRD9fKosWlIRgWm4ql9VYioKm52Mk2xsmoohvm7f3JoiLSM5ZgJuRaf5QZZYd3Q==", + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.24.7.tgz", + "integrity": "sha512-25cS7v+707Gu6Ds2oY6tCkUwsJ9YIDbggd9+cu9jzzDgiNq7hR/8dkzxWfKWnTic26vsI3EsCXNd4iEB6e8esQ==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/types": "^7.24.5" + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/template": "^7.24.7" }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.24.1.tgz", - "integrity": "sha512-5pJGVIUfJpOS+pAqBQd+QMaTD2vCL/HcePooON6pDpHgRp4gNRmzyHTPIkXntwKsq3ayUFVfJaIKPw2pOkOcTw==", + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.8.tgz", + "integrity": "sha512-36e87mfY8TnRxc7yc6M9g9gOB7rKgSahqkIKwLpz4Ppk2+zC2Cy1is0uwtuSG6AE4zlTOUa+7JGz9jCJGLqQFQ==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0", - "@babel/template": "^7.24.0" + "@babel/helper-plugin-utils": "^7.24.8" }, "engines": { "node": ">=6.9.0" @@ -1749,13 +2027,15 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.5.tgz", - "integrity": "sha512-SZuuLyfxvsm+Ah57I/i1HVjveBENYK9ue8MJ7qkc7ndoNjqquJiElzA7f5yaAXjyW2hKojosOTAQQRX50bPSVg==", + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.24.7.tgz", + "integrity": "sha512-ZOA3W+1RRTSWvyqcMJDLqbchh7U4NRGqwRfFSVbOLS/ePIP4vHB5e8T8eXcuqyN1QkgKyj5wuW0lcS85v4CrSw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.5" + "@babel/helper-create-regexp-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1764,14 +2044,14 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-dotall-regex": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.24.1.tgz", - "integrity": "sha512-p7uUxgSoZwZ2lPNMzUkqCts3xlp8n+o05ikjy7gbtFJSt9gdU88jAmtfmOxHM14noQXBxfgzf2yRWECiNVhTCw==", + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.24.7.tgz", + "integrity": "sha512-JdYfXyCRihAe46jUIliuL2/s0x0wObgwwiGxw/UbgJBr20gQBThrokO4nYKgWkD7uBaqM7+9x5TU7NkExZJyzw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1780,28 +2060,31 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.24.1.tgz", - "integrity": "sha512-msyzuUnvsjsaSaocV6L7ErfNsa5nDWL1XKNnDePLgmz+WdU4w/J8+AxBMrWfi9m4IxfL5sZQKUPQKDQeeAT6lA==", + "node_modules/@babel/plugin-transform-duplicate-named-capturing-groups-regex": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.25.0.tgz", + "integrity": "sha512-YLpb4LlYSc3sCUa35un84poXoraOiQucUTTu8X1j18JV+gNa8E0nyUf/CjZ171IRGr4jEguF+vzJU66QZhn29g==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-create-regexp-features-plugin": "^7.25.0", + "@babel/helper-plugin-utils": "^7.24.8" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.0.0" } }, "node_modules/@babel/plugin-transform-dynamic-import": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.24.1.tgz", - "integrity": "sha512-av2gdSTyXcJVdI+8aFZsCAtR29xJt0S5tas+Ef8NvBNmD1a+N/3ecMLeMBgfcK+xzsjdLDT6oHt+DFPyeqUbDA==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.24.7.tgz", + "integrity": "sha512-sc3X26PhZQDb3JhORmakcbvkeInvxz+A8oda99lj7J60QRuPZvNAk9wQlTBS1ZynelDrDmTU4pw1tyc5d5ZMUg==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-plugin-utils": "^7.24.7", "@babel/plugin-syntax-dynamic-import": "^7.8.3" }, "engines": { @@ -1812,13 +2095,14 @@ } }, "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.24.1.tgz", - "integrity": "sha512-U1yX13dVBSwS23DEAqU+Z/PkwE9/m7QQy8Y9/+Tdb8UWYaGNDYwTLi19wqIAiROr8sXVum9A/rtiH5H0boUcTw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.24.7.tgz", + "integrity": "sha512-Rqe/vSc9OYgDajNIK35u7ot+KeCoetqQYFXM4Epf7M7ez3lWlOjrDjrwMei6caCVhfdw+mIKD4cgdGNy5JQotQ==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.15", - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1828,12 +2112,13 @@ } }, "node_modules/@babel/plugin-transform-export-namespace-from": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.24.1.tgz", - "integrity": "sha512-Ft38m/KFOyzKw2UaJFkWG9QnHPG/Q/2SkOrRk4pNBPg5IPZ+dOxcmkK5IyuBcxiNPyyYowPGUReyBvrvZs7IlQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.24.7.tgz", + "integrity": "sha512-v0K9uNYsPL3oXZ/7F9NNIbAj2jv1whUEtyA6aujhekLs56R++JDQuzRcP2/z4WX5Vg/c5lE9uWZA0/iUoFhLTA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-plugin-utils": "^7.24.7", "@babel/plugin-syntax-export-namespace-from": "^7.8.3" }, "engines": { @@ -1844,13 +2129,14 @@ } }, "node_modules/@babel/plugin-transform-for-of": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.24.1.tgz", - "integrity": "sha512-OxBdcnF04bpdQdR3i4giHZNZQn7cm8RQKcSwA17wAAqEELo1ZOwp5FFgeptWUQXFyT9kwHo10aqqauYkRZPCAg==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.24.7.tgz", + "integrity": "sha512-wo9ogrDG1ITTTBsy46oGiN1dS9A7MROBTcYsfS8DtsImMkHk9JXJ3EWQM6X2SUw4x80uGPlwj0o00Uoc6nEE3g==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1860,14 +2146,15 @@ } }, "node_modules/@babel/plugin-transform-function-name": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.24.1.tgz", - "integrity": "sha512-BXmDZpPlh7jwicKArQASrj8n22/w6iymRnvHYYd2zO30DbE277JO20/7yXJT3QxDPtiQiOxQBbZH4TpivNXIxA==", + "version": "7.25.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.25.1.tgz", + "integrity": "sha512-TVVJVdW9RKMNgJJlLtHsKDTydjZAbwIsn6ySBPQaEAUU5+gVvlJt/9nRmqVbsV/IBanRjzWoaAQKLoamWVOUuA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-compilation-targets": "^7.23.6", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-compilation-targets": "^7.24.8", + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/traverse": "^7.25.1" }, "engines": { "node": ">=6.9.0" @@ -1877,12 +2164,13 @@ } }, "node_modules/@babel/plugin-transform-json-strings": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.24.1.tgz", - "integrity": "sha512-U7RMFmRvoasscrIFy5xA4gIp8iWnWubnKkKuUGJjsuOH7GfbMkB+XZzeslx2kLdEGdOJDamEmCqOks6e8nv8DQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.24.7.tgz", + "integrity": "sha512-2yFnBGDvRuxAaE/f0vfBKvtnvvqU8tGpMHqMNpTN2oWMKIR3NqFkjaAgGwawhqK/pIN2T3XdjGPdaG0vDhOBGw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-plugin-utils": "^7.24.7", "@babel/plugin-syntax-json-strings": "^7.8.3" }, "engines": { @@ -1893,12 +2181,13 @@ } }, "node_modules/@babel/plugin-transform-literals": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.24.1.tgz", - "integrity": "sha512-zn9pwz8U7nCqOYIiBaOxoQOtYmMODXTJnkxG4AtX8fPmnCRYWBOHD0qcpwS9e2VDSp1zNJYpdnFMIKb8jmwu6g==", + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.25.2.tgz", + "integrity": "sha512-HQI+HcTbm9ur3Z2DkO+jgESMAMcYLuN/A7NRw9juzxAezN9AvqvUTnpKP/9kkYANz6u7dFlAyOu44ejuGySlfw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-plugin-utils": "^7.24.8" }, "engines": { "node": ">=6.9.0" @@ -1908,12 +2197,13 @@ } }, "node_modules/@babel/plugin-transform-logical-assignment-operators": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.24.1.tgz", - "integrity": "sha512-OhN6J4Bpz+hIBqItTeWJujDOfNP+unqv/NJgyhlpSqgBTPm37KkMmZV6SYcOj+pnDbdcl1qRGV/ZiIjX9Iy34w==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.24.7.tgz", + "integrity": "sha512-4D2tpwlQ1odXmTEIFWy9ELJcZHqrStlzK/dAOWYyxX3zT0iXQB6banjgeOJQXzEc4S0E0a5A+hahxPaEFYftsw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-plugin-utils": "^7.24.7", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" }, "engines": { @@ -1924,12 +2214,13 @@ } }, "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.24.1.tgz", - "integrity": "sha512-4ojai0KysTWXzHseJKa1XPNXKRbuUrhkOPY4rEGeR+7ChlJVKxFa3H3Bz+7tWaGKgJAXUWKOGmltN+u9B3+CVg==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.24.7.tgz", + "integrity": "sha512-T/hRC1uqrzXMKLQ6UCwMT85S3EvqaBXDGf0FaMf4446Qx9vKwlghvee0+uuZcDUCZU5RuNi4781UQ7R308zzBw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1939,13 +2230,14 @@ } }, "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.24.1.tgz", - "integrity": "sha512-lAxNHi4HVtjnHd5Rxg3D5t99Xm6H7b04hUS7EHIXcUl2EV4yl1gWdqZrNzXnSrHveL9qMdbODlLF55mvgjAfaQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.24.7.tgz", + "integrity": "sha512-9+pB1qxV3vs/8Hdmz/CulFB8w2tuu6EB94JZFsjdqxQokwGa9Unap7Bo2gGBGIvPmDIVvQrom7r5m/TCDMURhg==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-module-transforms": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1955,14 +2247,15 @@ } }, "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.1.tgz", - "integrity": "sha512-szog8fFTUxBfw0b98gEWPaEqF42ZUD/T3bkynW/wtgx2p/XCP55WEsb+VosKceRSd6njipdZvNogqdtI4Q0chw==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.8.tgz", + "integrity": "sha512-WHsk9H8XxRs3JXKWFiqtQebdh9b/pTk4EgueygFzYlTKAg0Ud985mSevdNjdXdFBATSKVJGQXP1tv6aGbssLKA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helper-plugin-utils": "^7.24.0", - "@babel/helper-simple-access": "^7.22.5" + "@babel/helper-module-transforms": "^7.24.8", + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/helper-simple-access": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1972,15 +2265,16 @@ } }, "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.24.1.tgz", - "integrity": "sha512-mqQ3Zh9vFO1Tpmlt8QPnbwGHzNz3lpNEMxQb1kAemn/erstyqw1r9KeOlOfo3y6xAnFEcOv2tSyrXfmMk+/YZA==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.25.0.tgz", + "integrity": "sha512-YPJfjQPDXxyQWg/0+jHKj1llnY5f/R6a0p/vP4lPymxLu7Lvl4k2WMitqi08yxwQcCVUUdG9LCUj4TNEgAp3Jw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helper-plugin-utils": "^7.24.0", - "@babel/helper-validator-identifier": "^7.22.20" + "@babel/helper-module-transforms": "^7.25.0", + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/helper-validator-identifier": "^7.24.7", + "@babel/traverse": "^7.25.0" }, "engines": { "node": ">=6.9.0" @@ -1990,13 +2284,14 @@ } }, "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.24.1.tgz", - "integrity": "sha512-tuA3lpPj+5ITfcCluy6nWonSL7RvaG0AOTeAuvXqEKS34lnLzXpDb0dcP6K8jD0zWZFNDVly90AGFJPnm4fOYg==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.24.7.tgz", + "integrity": "sha512-3aytQvqJ/h9z4g8AsKPLvD4Zqi2qT+L3j7XoFFu1XBlZWEl2/1kWnhmAbxpLgPrHSY0M6UA02jyTiwUVtiKR6A==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-module-transforms": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -2006,13 +2301,14 @@ } }, "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz", - "integrity": "sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.24.7.tgz", + "integrity": "sha512-/jr7h/EWeJtk1U/uz2jlsCioHkZk1JJZVcc8oQsJ1dUlaJD83f4/6Zeh2aHt9BIFokHIsSeDfhUmju0+1GPd6g==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-create-regexp-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -2022,12 +2318,13 @@ } }, "node_modules/@babel/plugin-transform-new-target": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.24.1.tgz", - "integrity": "sha512-/rurytBM34hYy0HKZQyA0nHbQgQNFm4Q/BOc9Hflxi2X3twRof7NaE5W46j4kQitm7SvACVRXsa6N/tSZxvPug==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.24.7.tgz", + "integrity": "sha512-RNKwfRIXg4Ls/8mMTza5oPF5RkOW8Wy/WgMAp1/F1yZ8mMbtwXW+HDoJiOsagWrAhI5f57Vncrmr9XeT4CVapA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -2037,12 +2334,13 @@ } }, "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.24.1.tgz", - "integrity": "sha512-iQ+caew8wRrhCikO5DrUYx0mrmdhkaELgFa+7baMcVuhxIkN7oxt06CZ51D65ugIb1UWRQ8oQe+HXAVM6qHFjw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.24.7.tgz", + "integrity": "sha512-Ts7xQVk1OEocqzm8rHMXHlxvsfZ0cEF2yomUqpKENHWMF4zKk175Y4q8H5knJes6PgYad50uuRmt3UJuhBw8pQ==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-plugin-utils": "^7.24.7", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" }, "engines": { @@ -2053,12 +2351,13 @@ } }, "node_modules/@babel/plugin-transform-numeric-separator": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.24.1.tgz", - "integrity": "sha512-7GAsGlK4cNL2OExJH1DzmDeKnRv/LXq0eLUSvudrehVA5Rgg4bIrqEUW29FbKMBRT0ztSqisv7kjP+XIC4ZMNw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.24.7.tgz", + "integrity": "sha512-e6q1TiVUzvH9KRvicuxdBTUj4AdKSRwzIyFFnfnezpCfP2/7Qmbb8qbU2j7GODbl4JMkblitCQjKYUaX/qkkwA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-plugin-utils": "^7.24.7", "@babel/plugin-syntax-numeric-separator": "^7.10.4" }, "engines": { @@ -2069,15 +2368,16 @@ } }, "node_modules/@babel/plugin-transform-object-rest-spread": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.5.tgz", - "integrity": "sha512-7EauQHszLGM3ay7a161tTQH7fj+3vVM/gThlz5HpFtnygTxjrlvoeq7MPVA1Vy9Q555OB8SnAOsMkLShNkkrHA==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.7.tgz", + "integrity": "sha512-4QrHAr0aXQCEFni2q4DqKLD31n2DL+RxcwnNjDFkSG0eNQ/xCavnRkfCUjsyqGC2OviNJvZOF/mQqZBw7i2C5Q==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-compilation-targets": "^7.23.6", - "@babel/helper-plugin-utils": "^7.24.5", + "@babel/helper-compilation-targets": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.24.5" + "@babel/plugin-transform-parameters": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -2087,13 +2387,14 @@ } }, "node_modules/@babel/plugin-transform-object-super": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.24.1.tgz", - "integrity": "sha512-oKJqR3TeI5hSLRxudMjFQ9re9fBVUU0GICqM3J1mi8MqlhVr6hC/ZN4ttAyMuQR6EZZIY6h/exe5swqGNNIkWQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.24.7.tgz", + "integrity": "sha512-A/vVLwN6lBrMFmMDmPPz0jnE6ZGx7Jq7d6sT/Ev4H65RER6pZ+kczlf1DthF5N0qaPHBsI7UXiE8Zy66nmAovg==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0", - "@babel/helper-replace-supers": "^7.24.1" + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-replace-supers": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -2103,12 +2404,13 @@ } }, "node_modules/@babel/plugin-transform-optional-catch-binding": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.24.1.tgz", - "integrity": "sha512-oBTH7oURV4Y+3EUrf6cWn1OHio3qG/PVwO5J03iSJmBg6m2EhKjkAu/xuaXaYwWW9miYtvbWv4LNf0AmR43LUA==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.24.7.tgz", + "integrity": "sha512-uLEndKqP5BfBbC/5jTwPxLh9kqPWWgzN/f8w6UwAIirAEqiIVJWWY312X72Eub09g5KF9+Zn7+hT7sDxmhRuKA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-plugin-utils": "^7.24.7", "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" }, "engines": { @@ -2119,13 +2421,14 @@ } }, "node_modules/@babel/plugin-transform-optional-chaining": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.24.5.tgz", - "integrity": "sha512-xWCkmwKT+ihmA6l7SSTpk8e4qQl/274iNbSKRRS8mpqFR32ksy36+a+LWY8OXCCEefF8WFlnOHVsaDI2231wBg==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.24.8.tgz", + "integrity": "sha512-5cTOLSMs9eypEy8JUVvIKOu6NgvbJMnpG62VpIHrTmROdQ+L5mDAaI40g25k5vXti55JWNX5jCkq3HZxXBQANw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", "@babel/plugin-syntax-optional-chaining": "^7.8.3" }, "engines": { @@ -2136,12 +2439,13 @@ } }, "node_modules/@babel/plugin-transform-parameters": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.24.5.tgz", - "integrity": "sha512-9Co00MqZ2aoky+4j2jhofErthm6QVLKbpQrvz20c3CH9KQCLHyNB+t2ya4/UrRpQGR+Wrwjg9foopoeSdnHOkA==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.24.7.tgz", + "integrity": "sha512-yGWW5Rr+sQOhK0Ot8hjDJuxU3XLRQGflvT4lhlSY0DFvdb3TwKaY26CJzHtYllU0vT9j58hc37ndFPsqT1SrzA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.5" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -2151,13 +2455,14 @@ } }, "node_modules/@babel/plugin-transform-private-methods": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.24.1.tgz", - "integrity": "sha512-tGvisebwBO5em4PaYNqt4fkw56K2VALsAbAakY0FjTYqJp7gfdrgr7YX76Or8/cpik0W6+tj3rZ0uHU9Oil4tw==", + "version": "7.25.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.25.4.tgz", + "integrity": "sha512-ao8BG7E2b/URaUQGqN3Tlsg+M3KlHY6rJ1O1gXAEUnZoyNQnvKyH87Kfg+FoxSeyWUB8ISZZsC91C44ZuBFytw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.24.1", - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-create-class-features-plugin": "^7.25.4", + "@babel/helper-plugin-utils": "^7.24.8" }, "engines": { "node": ">=6.9.0" @@ -2167,14 +2472,15 @@ } }, "node_modules/@babel/plugin-transform-private-property-in-object": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.24.5.tgz", - "integrity": "sha512-JM4MHZqnWR04jPMujQDTBVRnqxpLLpx2tkn7iPn+Hmsc0Gnb79yvRWOkvqFOx3Z7P7VxiRIR22c4eGSNj87OBQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.24.7.tgz", + "integrity": "sha512-9z76mxwnwFxMyxZWEgdgECQglF2Q7cFLm0kMf8pGwt+GSJsY0cONKj/UuO4bOH0w/uAel3ekS4ra5CEAyJRmDA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-create-class-features-plugin": "^7.24.5", - "@babel/helper-plugin-utils": "^7.24.5", + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-create-class-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", "@babel/plugin-syntax-private-property-in-object": "^7.14.5" }, "engines": { @@ -2185,12 +2491,13 @@ } }, "node_modules/@babel/plugin-transform-property-literals": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.24.1.tgz", - "integrity": "sha512-LetvD7CrHmEx0G442gOomRr66d7q8HzzGGr4PMHGr+5YIm6++Yke+jxj246rpvsbyhJwCLxcTn6zW1P1BSenqA==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.24.7.tgz", + "integrity": "sha512-EMi4MLQSHfd2nrCqQEWxFdha2gBCqU4ZcCng4WBGZ5CJL4bBRW0ptdqqDdeirGZcpALazVVNJqRmsO8/+oNCBA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -2200,12 +2507,13 @@ } }, "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.24.1.tgz", - "integrity": "sha512-sJwZBCzIBE4t+5Q4IGLaaun5ExVMRY0lYwos/jNecjMrVCygCdph3IKv0tkP5Fc87e/1+bebAmEAGBfnRD+cnw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.24.7.tgz", + "integrity": "sha512-lq3fvXPdimDrlg6LWBoqj+r/DEWgONuwjuOuQCSYgRroXDH/IdM1C0IZf59fL5cHLpjEH/O6opIRBbqv7ELnuA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-plugin-utils": "^7.24.7", "regenerator-transform": "^0.15.2" }, "engines": { @@ -2216,12 +2524,13 @@ } }, "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.24.1.tgz", - "integrity": "sha512-JAclqStUfIwKN15HrsQADFgeZt+wexNQ0uLhuqvqAUFoqPMjEcFCYZBhq0LUdz6dZK/mD+rErhW71fbx8RYElg==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.24.7.tgz", + "integrity": "sha512-0DUq0pHcPKbjFZCfTss/pGkYMfy3vFWydkUBd9r0GHpIyfs2eCDENvqadMycRS9wZCXR41wucAfJHJmwA0UmoQ==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -2231,16 +2540,17 @@ } }, "node_modules/@babel/plugin-transform-runtime": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.24.0.tgz", - "integrity": "sha512-zc0GA5IitLKJrSfXlXmp8KDqLrnGECK7YRfQBmEKg1NmBOQ7e+KuclBEKJgzifQeUYLdNiAw4B4bjyvzWVLiSA==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.24.7.tgz", + "integrity": "sha512-YqXjrk4C+a1kZjewqt+Mmu2UuV1s07y8kqcUf4qYLnoqemhR4gRQikhdAhSVJioMjVTu6Mo6pAbaypEA3jY6fw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-module-imports": "^7.22.15", - "@babel/helper-plugin-utils": "^7.24.0", - "babel-plugin-polyfill-corejs2": "^0.4.8", - "babel-plugin-polyfill-corejs3": "^0.9.0", - "babel-plugin-polyfill-regenerator": "^0.5.5", + "@babel/helper-module-imports": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "babel-plugin-polyfill-corejs2": "^0.4.10", + "babel-plugin-polyfill-corejs3": "^0.10.1", + "babel-plugin-polyfill-regenerator": "^0.6.1", "semver": "^6.3.1" }, "engines": { @@ -2255,17 +2565,19 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.24.1.tgz", - "integrity": "sha512-LyjVB1nsJ6gTTUKRjRWx9C1s9hE7dLfP/knKdrfeH9UPtAGjYGgxIbFfx7xyLIEWs7Xe1Gnf8EWiUqfjLhInZA==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.24.7.tgz", + "integrity": "sha512-KsDsevZMDsigzbA09+vacnLpmPH4aWjcZjXdyFKGzpplxhbeB4wYtury3vglQkg6KM/xEPKt73eCjPPf1PgXBA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -2275,13 +2587,14 @@ } }, "node_modules/@babel/plugin-transform-spread": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.24.1.tgz", - "integrity": "sha512-KjmcIM+fxgY+KxPVbjelJC6hrH1CgtPmTvdXAfn3/a9CnWGSTY7nH4zm5+cjmWJybdcPSsD0++QssDsjcpe47g==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.24.7.tgz", + "integrity": "sha512-x96oO0I09dgMDxJaANcRyD4ellXFLLiWhuwDxKZX5g2rWP1bTPkBSwCYv96VDXVT1bD9aPj8tppr5ITIh8hBng==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -2291,12 +2604,13 @@ } }, "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.24.1.tgz", - "integrity": "sha512-9v0f1bRXgPVcPrngOQvLXeGNNVLc8UjMVfebo9ka0WF3/7+aVUHmaJVT3sa0XCzEFioPfPHZiOcYG9qOsH63cw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.24.7.tgz", + "integrity": "sha512-kHPSIJc9v24zEml5geKg9Mjx5ULpfncj0wRpYtxbvKyTtHCYDkVE3aHQ03FrpEo4gEe2vrJJS1Y9CJTaThA52g==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -2306,12 +2620,13 @@ } }, "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.24.1.tgz", - "integrity": "sha512-WRkhROsNzriarqECASCNu/nojeXCDTE/F2HmRgOzi7NGvyfYGq1NEjKBK3ckLfRgGc6/lPAqP0vDOSw3YtG34g==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.24.7.tgz", + "integrity": "sha512-AfDTQmClklHCOLxtGoP7HkeMw56k1/bTQjwsfhL6pppo/M4TOBSq+jjBUBLmV/4oeFg4GWMavIl44ZeCtmmZTw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -2321,12 +2636,13 @@ } }, "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.24.5.tgz", - "integrity": "sha512-UTGnhYVZtTAjdwOTzT+sCyXmTn8AhaxOS/MjG9REclZ6ULHWF9KoCZur0HSGU7hk8PdBFKKbYe6+gqdXWz84Jg==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.24.8.tgz", + "integrity": "sha512-adNTUpDCVnmAE58VEqKlAA6ZBlNkMnWD0ZcW76lyNFN3MJniyGFZfNwERVk8Ap56MCnXztmDr19T4mPTztcuaw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.5" + "@babel/helper-plugin-utils": "^7.24.8" }, "engines": { "node": ">=6.9.0" @@ -2336,12 +2652,13 @@ } }, "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.24.1.tgz", - "integrity": "sha512-RlkVIcWT4TLI96zM660S877E7beKlQw7Ig+wqkKBiWfj0zH5Q4h50q6er4wzZKRNSYpfo6ILJ+hrJAGSX2qcNw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.24.7.tgz", + "integrity": "sha512-U3ap1gm5+4edc2Q/P+9VrBNhGkfnf+8ZqppY71Bo/pzZmXhhLdqgaUl6cuB07O1+AQJtCLfaOmswiNbSQ9ivhw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -2351,13 +2668,14 @@ } }, "node_modules/@babel/plugin-transform-unicode-property-regex": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.24.1.tgz", - "integrity": "sha512-Ss4VvlfYV5huWApFsF8/Sq0oXnGO+jB+rijFEFugTd3cwSObUSnUi88djgR5528Csl0uKlrI331kRqe56Ov2Ng==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.24.7.tgz", + "integrity": "sha512-uH2O4OV5M9FZYQrwc7NdVmMxQJOCCzFeYudlZSzUAHRFeOujQefa92E74TQDVskNHCzOXoigEuoyzHDhaEaK5w==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-create-regexp-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -2367,13 +2685,14 @@ } }, "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.24.1.tgz", - "integrity": "sha512-2A/94wgZgxfTsiLaQ2E36XAOdcZmGAaEEgVmxQWwZXWkGhvoHbaqXcKnU8zny4ycpu3vNqg0L/PcCiYtHtA13g==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.24.7.tgz", + "integrity": "sha512-hlQ96MBZSAXUq7ltkjtu3FJCCSMx/j629ns3hA3pXnBXjanNP0LHi+JpPeA81zaWgVK1VGH95Xuy7u0RyQ8kMg==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-create-regexp-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -2383,13 +2702,14 @@ } }, "node_modules/@babel/plugin-transform-unicode-sets-regex": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.24.1.tgz", - "integrity": "sha512-fqj4WuzzS+ukpgerpAoOnMfQXwUHFxXUZUE84oL2Kao2N8uSlvcpnAidKASgsNgzZHBsHWvcm8s9FPWUhAb8fA==", + "version": "7.25.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.25.4.tgz", + "integrity": "sha512-qesBxiWkgN1Q+31xUE9RcMk79eOXXDCv6tfyGMRSs4RGlioSg2WVyQAm07k726cSE56pa+Kb0y9epX2qaXzTvA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-create-regexp-features-plugin": "^7.25.2", + "@babel/helper-plugin-utils": "^7.24.8" }, "engines": { "node": ">=6.9.0" @@ -2399,26 +2719,29 @@ } }, "node_modules/@babel/preset-env": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.24.0.tgz", - "integrity": "sha512-ZxPEzV9IgvGn73iK0E6VB9/95Nd7aMFpbE0l8KQFDG70cOV9IxRP7Y2FUPmlK0v6ImlLqYX50iuZ3ZTVhOF2lA==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.23.5", - "@babel/helper-compilation-targets": "^7.23.6", - "@babel/helper-plugin-utils": "^7.24.0", - "@babel/helper-validator-option": "^7.23.5", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.23.3", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.23.3", - "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.23.7", + "version": "7.25.3", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.25.3.tgz", + "integrity": "sha512-QsYW7UeAaXvLPX9tdVliMJE7MD7M6MLYVTovRTIwhoYQVFHR1rM4wO8wqAezYi3/BpSD+NzVCZ69R6smWiIi8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.25.2", + "@babel/helper-compilation-targets": "^7.25.2", + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/helper-validator-option": "^7.24.8", + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.25.3", + "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.25.0", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.25.0", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.24.7", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.25.0", "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", "@babel/plugin-syntax-async-generators": "^7.8.4", "@babel/plugin-syntax-class-properties": "^7.12.13", "@babel/plugin-syntax-class-static-block": "^7.14.5", "@babel/plugin-syntax-dynamic-import": "^7.8.3", "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-import-assertions": "^7.23.3", - "@babel/plugin-syntax-import-attributes": "^7.23.3", + "@babel/plugin-syntax-import-assertions": "^7.24.7", + "@babel/plugin-syntax-import-attributes": "^7.24.7", "@babel/plugin-syntax-import-meta": "^7.10.4", "@babel/plugin-syntax-json-strings": "^7.8.3", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", @@ -2430,59 +2753,60 @@ "@babel/plugin-syntax-private-property-in-object": "^7.14.5", "@babel/plugin-syntax-top-level-await": "^7.14.5", "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", - "@babel/plugin-transform-arrow-functions": "^7.23.3", - "@babel/plugin-transform-async-generator-functions": "^7.23.9", - "@babel/plugin-transform-async-to-generator": "^7.23.3", - "@babel/plugin-transform-block-scoped-functions": "^7.23.3", - "@babel/plugin-transform-block-scoping": "^7.23.4", - "@babel/plugin-transform-class-properties": "^7.23.3", - "@babel/plugin-transform-class-static-block": "^7.23.4", - "@babel/plugin-transform-classes": "^7.23.8", - "@babel/plugin-transform-computed-properties": "^7.23.3", - "@babel/plugin-transform-destructuring": "^7.23.3", - "@babel/plugin-transform-dotall-regex": "^7.23.3", - "@babel/plugin-transform-duplicate-keys": "^7.23.3", - "@babel/plugin-transform-dynamic-import": "^7.23.4", - "@babel/plugin-transform-exponentiation-operator": "^7.23.3", - "@babel/plugin-transform-export-namespace-from": "^7.23.4", - "@babel/plugin-transform-for-of": "^7.23.6", - "@babel/plugin-transform-function-name": "^7.23.3", - "@babel/plugin-transform-json-strings": "^7.23.4", - "@babel/plugin-transform-literals": "^7.23.3", - "@babel/plugin-transform-logical-assignment-operators": "^7.23.4", - "@babel/plugin-transform-member-expression-literals": "^7.23.3", - "@babel/plugin-transform-modules-amd": "^7.23.3", - "@babel/plugin-transform-modules-commonjs": "^7.23.3", - "@babel/plugin-transform-modules-systemjs": "^7.23.9", - "@babel/plugin-transform-modules-umd": "^7.23.3", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5", - "@babel/plugin-transform-new-target": "^7.23.3", - "@babel/plugin-transform-nullish-coalescing-operator": "^7.23.4", - "@babel/plugin-transform-numeric-separator": "^7.23.4", - "@babel/plugin-transform-object-rest-spread": "^7.24.0", - "@babel/plugin-transform-object-super": "^7.23.3", - "@babel/plugin-transform-optional-catch-binding": "^7.23.4", - "@babel/plugin-transform-optional-chaining": "^7.23.4", - "@babel/plugin-transform-parameters": "^7.23.3", - "@babel/plugin-transform-private-methods": "^7.23.3", - "@babel/plugin-transform-private-property-in-object": "^7.23.4", - "@babel/plugin-transform-property-literals": "^7.23.3", - "@babel/plugin-transform-regenerator": "^7.23.3", - "@babel/plugin-transform-reserved-words": "^7.23.3", - "@babel/plugin-transform-shorthand-properties": "^7.23.3", - "@babel/plugin-transform-spread": "^7.23.3", - "@babel/plugin-transform-sticky-regex": "^7.23.3", - "@babel/plugin-transform-template-literals": "^7.23.3", - "@babel/plugin-transform-typeof-symbol": "^7.23.3", - "@babel/plugin-transform-unicode-escapes": "^7.23.3", - "@babel/plugin-transform-unicode-property-regex": "^7.23.3", - "@babel/plugin-transform-unicode-regex": "^7.23.3", - "@babel/plugin-transform-unicode-sets-regex": "^7.23.3", + "@babel/plugin-transform-arrow-functions": "^7.24.7", + "@babel/plugin-transform-async-generator-functions": "^7.25.0", + "@babel/plugin-transform-async-to-generator": "^7.24.7", + "@babel/plugin-transform-block-scoped-functions": "^7.24.7", + "@babel/plugin-transform-block-scoping": "^7.25.0", + "@babel/plugin-transform-class-properties": "^7.24.7", + "@babel/plugin-transform-class-static-block": "^7.24.7", + "@babel/plugin-transform-classes": "^7.25.0", + "@babel/plugin-transform-computed-properties": "^7.24.7", + "@babel/plugin-transform-destructuring": "^7.24.8", + "@babel/plugin-transform-dotall-regex": "^7.24.7", + "@babel/plugin-transform-duplicate-keys": "^7.24.7", + "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.25.0", + "@babel/plugin-transform-dynamic-import": "^7.24.7", + "@babel/plugin-transform-exponentiation-operator": "^7.24.7", + "@babel/plugin-transform-export-namespace-from": "^7.24.7", + "@babel/plugin-transform-for-of": "^7.24.7", + "@babel/plugin-transform-function-name": "^7.25.1", + "@babel/plugin-transform-json-strings": "^7.24.7", + "@babel/plugin-transform-literals": "^7.25.2", + "@babel/plugin-transform-logical-assignment-operators": "^7.24.7", + "@babel/plugin-transform-member-expression-literals": "^7.24.7", + "@babel/plugin-transform-modules-amd": "^7.24.7", + "@babel/plugin-transform-modules-commonjs": "^7.24.8", + "@babel/plugin-transform-modules-systemjs": "^7.25.0", + "@babel/plugin-transform-modules-umd": "^7.24.7", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.24.7", + "@babel/plugin-transform-new-target": "^7.24.7", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.24.7", + "@babel/plugin-transform-numeric-separator": "^7.24.7", + "@babel/plugin-transform-object-rest-spread": "^7.24.7", + "@babel/plugin-transform-object-super": "^7.24.7", + "@babel/plugin-transform-optional-catch-binding": "^7.24.7", + "@babel/plugin-transform-optional-chaining": "^7.24.8", + "@babel/plugin-transform-parameters": "^7.24.7", + "@babel/plugin-transform-private-methods": "^7.24.7", + "@babel/plugin-transform-private-property-in-object": "^7.24.7", + "@babel/plugin-transform-property-literals": "^7.24.7", + "@babel/plugin-transform-regenerator": "^7.24.7", + "@babel/plugin-transform-reserved-words": "^7.24.7", + "@babel/plugin-transform-shorthand-properties": "^7.24.7", + "@babel/plugin-transform-spread": "^7.24.7", + "@babel/plugin-transform-sticky-regex": "^7.24.7", + "@babel/plugin-transform-template-literals": "^7.24.7", + "@babel/plugin-transform-typeof-symbol": "^7.24.8", + "@babel/plugin-transform-unicode-escapes": "^7.24.7", + "@babel/plugin-transform-unicode-property-regex": "^7.24.7", + "@babel/plugin-transform-unicode-regex": "^7.24.7", + "@babel/plugin-transform-unicode-sets-regex": "^7.24.7", "@babel/preset-modules": "0.1.6-no-external-plugins", - "babel-plugin-polyfill-corejs2": "^0.4.8", - "babel-plugin-polyfill-corejs3": "^0.9.0", - "babel-plugin-polyfill-regenerator": "^0.5.5", - "core-js-compat": "^3.31.0", + "babel-plugin-polyfill-corejs2": "^0.4.10", + "babel-plugin-polyfill-corejs3": "^0.10.4", + "babel-plugin-polyfill-regenerator": "^0.6.1", + "core-js-compat": "^3.37.1", "semver": "^6.3.1" }, "engines": { @@ -2497,6 +2821,7 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver.js" } @@ -2506,6 +2831,7 @@ "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.0.0", "@babel/types": "^7.4.4", @@ -2519,13 +2845,15 @@ "version": "0.8.0", "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@babel/runtime": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.0.tgz", - "integrity": "sha512-Chk32uHMg6TnQdvw2e9IlqPpFX/6NLuK0Ys2PqLb7/gL5uFn9mXvK715FGLlOLQrcO4qIkNHkvPGktzzXexsFw==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.25.0.tgz", + "integrity": "sha512-7dRy4DwXwtzBrPbZflqxnvfxLF8kdZXPkhymtDeFoFqE6ldzjQFgYTtYIFARcLEYDrqfBfYcZt1WqFxRoyC9Rw==", "dev": true, + "license": "MIT", "dependencies": { "regenerator-runtime": "^0.14.0" }, @@ -2534,33 +2862,32 @@ } }, "node_modules/@babel/template": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.0.tgz", - "integrity": "sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.0.tgz", + "integrity": "sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.23.5", - "@babel/parser": "^7.24.0", - "@babel/types": "^7.24.0" + "@babel/code-frame": "^7.24.7", + "@babel/parser": "^7.25.0", + "@babel/types": "^7.25.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.5.tgz", - "integrity": "sha512-7aaBLeDQ4zYcUFDUD41lJc1fG8+5IU9DaNSJAgal866FGvmD5EbWQgnEC6kO1gGLsX0esNkfnJSndbTXA3r7UA==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.24.2", - "@babel/generator": "^7.24.5", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.24.5", - "@babel/parser": "^7.24.5", - "@babel/types": "^7.24.5", + "version": "7.25.6", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.6.tgz", + "integrity": "sha512-9Vrcx5ZW6UwK5tvqsj0nGpp/XzqthkT0dqIc9g1AdtygFToNtTF67XzYS//dm+SAK9cp3B9R4ZO/46p63SCjlQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.24.7", + "@babel/generator": "^7.25.6", + "@babel/parser": "^7.25.6", + "@babel/template": "^7.25.0", + "@babel/types": "^7.25.6", "debug": "^4.3.1", "globals": "^11.1.0" }, @@ -2569,12 +2896,13 @@ } }, "node_modules/@babel/traverse/node_modules/@babel/generator": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.5.tgz", - "integrity": "sha512-x32i4hEXvr+iI0NEoEfDKzlemF8AmtOP8CcrRaEcpzysWuoEb1KknpcvMsHKPONoKZiDuItklgWhB18xEhr9PA==", + "version": "7.25.6", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.25.6.tgz", + "integrity": "sha512-VPC82gr1seXOpkjAAKoLhP50vx4vGNlF4msF64dSFq1P8RfB+QAuJWGHPXXPc8QyfVWwwB/TNNU4+ayZmHNbZw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/types": "^7.24.5", + "@babel/types": "^7.25.6", "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25", "jsesc": "^2.5.1" @@ -2583,26 +2911,15 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/traverse/node_modules/@babel/helper-split-export-declaration": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.5.tgz", - "integrity": "sha512-5CHncttXohrHk8GWOFCcCl4oRD9fKosWlIRgWm4ql9VYioKm52Mk2xsmoohvm7f3JoiLSM5ZgJuRaf5QZZYd3Q==", - "dev": true, - "dependencies": { - "@babel/types": "^7.24.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@babel/types": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.5.tgz", - "integrity": "sha512-6mQNsaLeXTw0nxYUYu+NSa4Hx4BlF1x1x8/PMFbiR+GBSr+2DkECc69b8hgy2frEodNcvPffeH8YfWd3LI6jhQ==", + "version": "7.25.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.6.tgz", + "integrity": "sha512-/l42B1qxpG6RdfYf343Uw1vmDjeNhneUXtzhojE7pDgfpEypmRhI6j1kr17XCVv4Cgl9HdAiQY2x0GwKm7rWCw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-string-parser": "^7.24.1", - "@babel/helper-validator-identifier": "^7.24.5", + "@babel/helper-string-parser": "^7.24.8", + "@babel/helper-validator-identifier": "^7.24.7", "to-fast-properties": "^2.0.0" }, "engines": { @@ -2619,1330 +2936,1076 @@ } }, "node_modules/@discoveryjs/json-ext": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", - "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.6.1.tgz", + "integrity": "sha512-boghen8F0Q8D+0/Q1/1r6DUEieUJ8w2a1gIknExMSHBsJFOr2+0KUfHiVYBvucPwl3+RU5PFBK833FjFCh3BhA==", "dev": true, + "license": "MIT", "engines": { - "node": ">=10.0.0" + "node": ">=14.17.0" } }, "node_modules/@esbuild/aix-ppc64": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.20.1.tgz", - "integrity": "sha512-m55cpeupQ2DbuRGQMMZDzbv9J9PgVelPjlcmM5kxHnrBdBx6REaEd7LamYV7Dm8N7rCyR/XwU6rVP8ploKtIkA==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.23.0.tgz", + "integrity": "sha512-3sG8Zwa5fMcA9bgqB8AfWPQ+HFke6uD3h1s3RIwUNK8EG7a4buxvuFTs3j1IMs2NXAk9F30C/FF4vxRgQCcmoQ==", "cpu": [ "ppc64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "aix" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/android-arm": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.20.1.tgz", - "integrity": "sha512-4j0+G27/2ZXGWR5okcJi7pQYhmkVgb4D7UKwxcqrjhvp5TKWx3cUjgB1CGj1mfdmJBQ9VnUGgUhign+FPF2Zgw==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.23.0.tgz", + "integrity": "sha512-+KuOHTKKyIKgEEqKbGTK8W7mPp+hKinbMBeEnNzjJGyFcWsfrXjSTNluJHCY1RqhxFurdD8uNXQDei7qDlR6+g==", "cpu": [ "arm" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "android" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/android-arm64": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.20.1.tgz", - "integrity": "sha512-hCnXNF0HM6AjowP+Zou0ZJMWWa1VkD77BXe959zERgGJBBxB+sV+J9f/rcjeg2c5bsukD/n17RKWXGFCO5dD5A==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.23.0.tgz", + "integrity": "sha512-EuHFUYkAVfU4qBdyivULuu03FhJO4IJN9PGuABGrFy4vUuzk91P2d+npxHcFdpUnfYKy0PuV+n6bKIpHOB3prQ==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "android" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/android-x64": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.20.1.tgz", - "integrity": "sha512-MSfZMBoAsnhpS+2yMFYIQUPs8Z19ajwfuaSZx+tSl09xrHZCjbeXXMsUF/0oq7ojxYEpsSo4c0SfjxOYXRbpaA==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.23.0.tgz", + "integrity": "sha512-WRrmKidLoKDl56LsbBMhzTTBxrsVwTKdNbKDalbEZr0tcsBgCLbEtoNthOW6PX942YiYq8HzEnb4yWQMLQuipQ==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "android" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.20.1.tgz", - "integrity": "sha512-Ylk6rzgMD8klUklGPzS414UQLa5NPXZD5tf8JmQU8GQrj6BrFA/Ic9tb2zRe1kOZyCbGl+e8VMbDRazCEBqPvA==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.23.0.tgz", + "integrity": "sha512-YLntie/IdS31H54Ogdn+v50NuoWF5BDkEUFpiOChVa9UnKpftgwzZRrI4J132ETIi+D8n6xh9IviFV3eXdxfow==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "darwin" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.20.1.tgz", - "integrity": "sha512-pFIfj7U2w5sMp52wTY1XVOdoxw+GDwy9FsK3OFz4BpMAjvZVs0dT1VXs8aQm22nhwoIWUmIRaE+4xow8xfIDZA==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.23.0.tgz", + "integrity": "sha512-IMQ6eme4AfznElesHUPDZ+teuGwoRmVuuixu7sv92ZkdQcPbsNHzutd+rAfaBKo8YK3IrBEi9SLLKWJdEvJniQ==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "darwin" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.1.tgz", - "integrity": "sha512-UyW1WZvHDuM4xDz0jWun4qtQFauNdXjXOtIy7SYdf7pbxSWWVlqhnR/T2TpX6LX5NI62spt0a3ldIIEkPM6RHw==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.23.0.tgz", + "integrity": "sha512-0muYWCng5vqaxobq6LB3YNtevDFSAZGlgtLoAc81PjUfiFz36n4KMpwhtAd4he8ToSI3TGyuhyx5xmiWNYZFyw==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "freebsd" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.20.1.tgz", - "integrity": "sha512-itPwCw5C+Jh/c624vcDd9kRCCZVpzpQn8dtwoYIt2TJF3S9xJLiRohnnNrKwREvcZYx0n8sCSbvGH349XkcQeg==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.23.0.tgz", + "integrity": "sha512-XKDVu8IsD0/q3foBzsXGt/KjD/yTKBCIwOHE1XwiXmrRwrX6Hbnd5Eqn/WvDekddK21tfszBSrE/WMaZh+1buQ==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "freebsd" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-arm": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.20.1.tgz", - "integrity": "sha512-LojC28v3+IhIbfQ+Vu4Ut5n3wKcgTu6POKIHN9Wpt0HnfgUGlBuyDDQR4jWZUZFyYLiz4RBBBmfU6sNfn6RhLw==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.23.0.tgz", + "integrity": "sha512-SEELSTEtOFu5LPykzA395Mc+54RMg1EUgXP+iw2SJ72+ooMwVsgfuwXo5Fn0wXNgWZsTVHwY2cg4Vi/bOD88qw==", "cpu": [ "arm" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.20.1.tgz", - "integrity": "sha512-cX8WdlF6Cnvw/DO9/X7XLH2J6CkBnz7Twjpk56cshk9sjYVcuh4sXQBy5bmTwzBjNVZze2yaV1vtcJS04LbN8w==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.23.0.tgz", + "integrity": "sha512-j1t5iG8jE7BhonbsEg5d9qOYcVZv/Rv6tghaXM/Ug9xahM0nX/H2gfu6X6z11QRTMT6+aywOMA8TDkhPo8aCGw==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.20.1.tgz", - "integrity": "sha512-4H/sQCy1mnnGkUt/xszaLlYJVTz3W9ep52xEefGtd6yXDQbz/5fZE5dFLUgsPdbUOQANcVUa5iO6g3nyy5BJiw==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.23.0.tgz", + "integrity": "sha512-P7O5Tkh2NbgIm2R6x1zGJJsnacDzTFcRWZyTTMgFdVit6E98LTxO+v8LCCLWRvPrjdzXHx9FEOA8oAZPyApWUA==", "cpu": [ "ia32" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.20.1.tgz", - "integrity": "sha512-c0jgtB+sRHCciVXlyjDcWb2FUuzlGVRwGXgI+3WqKOIuoo8AmZAddzeOHeYLtD+dmtHw3B4Xo9wAUdjlfW5yYA==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.23.0.tgz", + "integrity": "sha512-InQwepswq6urikQiIC/kkx412fqUZudBO4SYKu0N+tGhXRWUqAx+Q+341tFV6QdBifpjYgUndV1hhMq3WeJi7A==", "cpu": [ "loong64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.20.1.tgz", - "integrity": "sha512-TgFyCfIxSujyuqdZKDZ3yTwWiGv+KnlOeXXitCQ+trDODJ+ZtGOzLkSWngynP0HZnTsDyBbPy7GWVXWaEl6lhA==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.23.0.tgz", + "integrity": "sha512-J9rflLtqdYrxHv2FqXE2i1ELgNjT+JFURt/uDMoPQLcjWQA5wDKgQA4t/dTqGa88ZVECKaD0TctwsUfHbVoi4w==", "cpu": [ "mips64el" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.20.1.tgz", - "integrity": "sha512-b+yuD1IUeL+Y93PmFZDZFIElwbmFfIKLKlYI8M6tRyzE6u7oEP7onGk0vZRh8wfVGC2dZoy0EqX1V8qok4qHaw==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.23.0.tgz", + "integrity": "sha512-cShCXtEOVc5GxU0fM+dsFD10qZ5UpcQ8AM22bYj0u/yaAykWnqXJDpd77ublcX6vdDsWLuweeuSNZk4yUxZwtw==", "cpu": [ "ppc64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.20.1.tgz", - "integrity": "sha512-wpDlpE0oRKZwX+GfomcALcouqjjV8MIX8DyTrxfyCfXxoKQSDm45CZr9fanJ4F6ckD4yDEPT98SrjvLwIqUCgg==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.23.0.tgz", + "integrity": "sha512-HEtaN7Y5UB4tZPeQmgz/UhzoEyYftbMXrBCUjINGjh3uil+rB/QzzpMshz3cNUxqXN7Vr93zzVtpIDL99t9aRw==", "cpu": [ "riscv64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.20.1.tgz", - "integrity": "sha512-5BepC2Au80EohQ2dBpyTquqGCES7++p7G+7lXe1bAIvMdXm4YYcEfZtQrP4gaoZ96Wv1Ute61CEHFU7h4FMueQ==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.23.0.tgz", + "integrity": "sha512-WDi3+NVAuyjg/Wxi+o5KPqRbZY0QhI9TjrEEm+8dmpY9Xir8+HE/HNx2JoLckhKbFopW0RdO2D72w8trZOV+Wg==", "cpu": [ "s390x" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-x64": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.20.1.tgz", - "integrity": "sha512-5gRPk7pKuaIB+tmH+yKd2aQTRpqlf1E4f/mC+tawIm/CGJemZcHZpp2ic8oD83nKgUPMEd0fNanrnFljiruuyA==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.23.0.tgz", + "integrity": "sha512-a3pMQhUEJkITgAw6e0bWA+F+vFtCciMjW/LPtoj99MhVt+Mfb6bbL9hu2wmTZgNd994qTAEw+U/r6k3qHWWaOQ==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.20.1.tgz", - "integrity": "sha512-4fL68JdrLV2nVW2AaWZBv3XEm3Ae3NZn/7qy2KGAt3dexAgSVT+Hc97JKSZnqezgMlv9x6KV0ZkZY7UO5cNLCg==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.23.0.tgz", + "integrity": "sha512-cRK+YDem7lFTs2Q5nEv/HHc4LnrfBCbH5+JHu6wm2eP+d8OZNoSMYgPZJq78vqQ9g+9+nMuIsAO7skzphRXHyw==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "netbsd" ], "engines": { - "node": ">=12" + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.23.0.tgz", + "integrity": "sha512-suXjq53gERueVWu0OKxzWqk7NxiUWSUlrxoZK7usiF50C6ipColGR5qie2496iKGYNLhDZkPxBI3erbnYkU0rQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.20.1.tgz", - "integrity": "sha512-GhRuXlvRE+twf2ES+8REbeCb/zeikNqwD3+6S5y5/x+DYbAQUNl0HNBs4RQJqrechS4v4MruEr8ZtAin/hK5iw==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.23.0.tgz", + "integrity": "sha512-6p3nHpby0DM/v15IFKMjAaayFhqnXV52aEmv1whZHX56pdkK+MEaLoQWj+H42ssFarP1PcomVhbsR4pkz09qBg==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "openbsd" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.20.1.tgz", - "integrity": "sha512-ZnWEyCM0G1Ex6JtsygvC3KUUrlDXqOihw8RicRuQAzw+c4f1D66YlPNNV3rkjVW90zXVsHwZYWbJh3v+oQFM9Q==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.23.0.tgz", + "integrity": "sha512-BFelBGfrBwk6LVrmFzCq1u1dZbG4zy/Kp93w2+y83Q5UGYF1d8sCzeLI9NXjKyujjBBniQa8R8PzLFAUrSM9OA==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "sunos" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.20.1.tgz", - "integrity": "sha512-QZ6gXue0vVQY2Oon9WyLFCdSuYbXSoxaZrPuJ4c20j6ICedfsDilNPYfHLlMH7vGfU5DQR0czHLmJvH4Nzis/A==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.23.0.tgz", + "integrity": "sha512-lY6AC8p4Cnb7xYHuIxQ6iYPe6MfO2CC43XXKo9nBXDb35krYt7KGhQnOkRGar5psxYkircpCqfbNDB4uJbS2jQ==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.20.1.tgz", - "integrity": "sha512-HzcJa1NcSWTAU0MJIxOho8JftNp9YALui3o+Ny7hCh0v5f90nprly1U3Sj1Ldj/CvKKdvvFsCRvDkpsEMp4DNw==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.23.0.tgz", + "integrity": "sha512-7L1bHlOTcO4ByvI7OXVI5pNN6HSu6pUQq9yodga8izeuB1KcT2UkHaH6118QJwopExPn0rMHIseCTx1CRo/uNA==", "cpu": [ "ia32" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/win32-x64": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.20.1.tgz", - "integrity": "sha512-0MBh53o6XtI6ctDnRMeQ+xoCN8kD2qI1rY1KgF/xdWQwoFeKou7puvDfV8/Wv4Ctx2rRpET/gGdz3YlNtNACSA==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.23.0.tgz", + "integrity": "sha512-Arm+WgUFLUATuoxCJcahGuk6Yj9Pzxd6l11Zb/2aAuv5kWWvvfhLFo2fni4uSK5vzlUdCGZ/BdV5tH8klj8p8g==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" ], "engines": { - "node": ">=12" + "node": ">=18" } }, - "node_modules/@isaacs/cliui": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", - "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "node_modules/@inquirer/checkbox": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@inquirer/checkbox/-/checkbox-2.5.0.tgz", + "integrity": "sha512-sMgdETOfi2dUHT8r7TT1BTKOwNvdDGFDXYWtQ2J69SvlYNntk9I/gJe7r5yvMwwsuKnYbuRs3pNhx4tgNck5aA==", "dev": true, + "license": "MIT", "dependencies": { - "string-width": "^5.1.2", - "string-width-cjs": "npm:string-width@^4.2.0", - "strip-ansi": "^7.0.1", - "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", - "wrap-ansi": "^8.1.0", - "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + "@inquirer/core": "^9.1.0", + "@inquirer/figures": "^1.0.5", + "@inquirer/type": "^1.5.3", + "ansi-escapes": "^4.3.2", + "yoctocolors-cjs": "^2.1.2" }, "engines": { - "node": ">=12" + "node": ">=18" } }, - "node_modules/@isaacs/cliui/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "node_modules/@inquirer/confirm": { + "version": "3.1.22", + "resolved": "https://registry.npmjs.org/@inquirer/confirm/-/confirm-3.1.22.tgz", + "integrity": "sha512-gsAKIOWBm2Q87CDfs9fEo7wJT3fwWIJfnDGMn9Qy74gBnNFOACDNfhUzovubbJjWnKLGBln7/NcSmZwj5DuEXg==", "dev": true, + "license": "MIT", + "dependencies": { + "@inquirer/core": "^9.0.10", + "@inquirer/type": "^1.5.2" + }, "engines": { - "node": ">=12" + "node": ">=18" + } + }, + "node_modules/@inquirer/core": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-9.1.0.tgz", + "integrity": "sha512-RZVfH//2ytTjmaBIzeKT1zefcQZzuruwkpTwwbe/i2jTl4o9M+iML5ChULzz6iw1Ok8iUBBsRCjY2IEbD8Ft4w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@inquirer/figures": "^1.0.5", + "@inquirer/type": "^1.5.3", + "@types/mute-stream": "^0.0.4", + "@types/node": "^22.5.2", + "@types/wrap-ansi": "^3.0.0", + "ansi-escapes": "^4.3.2", + "cli-spinners": "^2.9.2", + "cli-width": "^4.1.0", + "mute-stream": "^1.0.0", + "signal-exit": "^4.1.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^6.2.0", + "yoctocolors-cjs": "^2.1.2" }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" + "engines": { + "node": ">=18" } }, - "node_modules/@isaacs/cliui/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "node_modules/@inquirer/core/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", "dev": true, + "license": "ISC", "engines": { - "node": ">=12" + "node": ">=14" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@isaacs/cliui/node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true - }, - "node_modules/@isaacs/cliui/node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "node_modules/@inquirer/editor": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@inquirer/editor/-/editor-2.2.0.tgz", + "integrity": "sha512-9KHOpJ+dIL5SZli8lJ6xdaYLPPzB8xB9GZItg39MBybzhxA16vxmszmQFrRwbOA918WA2rvu8xhDEg/p6LXKbw==", "dev": true, + "license": "MIT", "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" + "@inquirer/core": "^9.1.0", + "@inquirer/type": "^1.5.3", + "external-editor": "^3.1.0" }, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=18" } }, - "node_modules/@isaacs/cliui/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "node_modules/@inquirer/expand": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@inquirer/expand/-/expand-2.3.0.tgz", + "integrity": "sha512-qnJsUcOGCSG1e5DTOErmv2BPQqrtT6uzqn1vI/aYGiPKq+FgslGZmtdnXbhuI7IlT7OByDoEEqdnhUnVR2hhLw==", "dev": true, + "license": "MIT", "dependencies": { - "ansi-regex": "^6.0.1" + "@inquirer/core": "^9.1.0", + "@inquirer/type": "^1.5.3", + "yoctocolors-cjs": "^2.1.2" }, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" + "node": ">=18" } }, - "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "node_modules/@inquirer/figures": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@inquirer/figures/-/figures-1.0.5.tgz", + "integrity": "sha512-79hP/VWdZ2UVc9bFGJnoQ/lQMpL74mGgzSYX1xUqCVk7/v73vJCMw1VuyWN1jGkZ9B3z7THAbySqGbCNefcjfA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/@inquirer/input": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@inquirer/input/-/input-2.3.0.tgz", + "integrity": "sha512-XfnpCStx2xgh1LIRqPXrTNEEByqQWoxsWYzNRSEUxJ5c6EQlhMogJ3vHKu8aXuTacebtaZzMAHwEL0kAflKOBw==", "dev": true, + "license": "MIT", "dependencies": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" + "@inquirer/core": "^9.1.0", + "@inquirer/type": "^1.5.3" }, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + "node": ">=18" } }, - "node_modules/@istanbuljs/load-nyc-config": { + "node_modules/@inquirer/number": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "resolved": "https://registry.npmjs.org/@inquirer/number/-/number-1.1.0.tgz", + "integrity": "sha512-ilUnia/GZUtfSZy3YEErXLJ2Sljo/mf9fiKc08n18DdwdmDbOzRcTv65H1jjDvlsAuvdFXf4Sa/aL7iw/NanVA==", "dev": true, + "license": "MIT", "dependencies": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" + "@inquirer/core": "^9.1.0", + "@inquirer/type": "^1.5.3" }, "engines": { - "node": ">=8" + "node": ">=18" } }, - "node_modules/@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "node_modules/@inquirer/password": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@inquirer/password/-/password-2.2.0.tgz", + "integrity": "sha512-5otqIpgsPYIshqhgtEwSspBQE40etouR8VIxzpJkv9i0dVHIpyhiivbkH9/dGiMLdyamT54YRdGJLfl8TFnLHg==", "dev": true, + "license": "MIT", + "dependencies": { + "@inquirer/core": "^9.1.0", + "@inquirer/type": "^1.5.3", + "ansi-escapes": "^4.3.2" + }, "engines": { - "node": ">=8" + "node": ">=18" } }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", - "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "node_modules/@inquirer/prompts": { + "version": "5.3.8", + "resolved": "https://registry.npmjs.org/@inquirer/prompts/-/prompts-5.3.8.tgz", + "integrity": "sha512-b2BudQY/Si4Y2a0PdZZL6BeJtl8llgeZa7U2j47aaJSCeAl1e4UI7y8a9bSkO3o/ZbZrgT5muy/34JbsjfIWxA==", "dev": true, + "license": "MIT", "dependencies": { - "@jridgewell/set-array": "^1.2.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.24" + "@inquirer/checkbox": "^2.4.7", + "@inquirer/confirm": "^3.1.22", + "@inquirer/editor": "^2.1.22", + "@inquirer/expand": "^2.1.22", + "@inquirer/input": "^2.2.9", + "@inquirer/number": "^1.0.10", + "@inquirer/password": "^2.1.22", + "@inquirer/rawlist": "^2.2.4", + "@inquirer/search": "^1.0.7", + "@inquirer/select": "^2.4.7" }, "engines": { - "node": ">=6.0.0" + "node": ">=18" } }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", - "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "node_modules/@inquirer/rawlist": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@inquirer/rawlist/-/rawlist-2.3.0.tgz", + "integrity": "sha512-zzfNuINhFF7OLAtGHfhwOW2TlYJyli7lOUoJUXw/uyklcwalV6WRXBXtFIicN8rTRK1XTiPWB4UY+YuW8dsnLQ==", "dev": true, + "license": "MIT", + "dependencies": { + "@inquirer/core": "^9.1.0", + "@inquirer/type": "^1.5.3", + "yoctocolors-cjs": "^2.1.2" + }, "engines": { - "node": ">=6.0.0" + "node": ">=18" } }, - "node_modules/@jridgewell/set-array": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", - "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "node_modules/@inquirer/search": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@inquirer/search/-/search-1.1.0.tgz", + "integrity": "sha512-h+/5LSj51dx7hp5xOn4QFnUaKeARwUCLs6mIhtkJ0JYPBLmEYjdHSYh7I6GrLg9LwpJ3xeX0FZgAG1q0QdCpVQ==", "dev": true, + "license": "MIT", + "dependencies": { + "@inquirer/core": "^9.1.0", + "@inquirer/figures": "^1.0.5", + "@inquirer/type": "^1.5.3", + "yoctocolors-cjs": "^2.1.2" + }, "engines": { - "node": ">=6.0.0" + "node": ">=18" } }, - "node_modules/@jridgewell/source-map": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", - "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", + "node_modules/@inquirer/select": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@inquirer/select/-/select-2.5.0.tgz", + "integrity": "sha512-YmDobTItPP3WcEI86GvPo+T2sRHkxxOq/kXmsBjHS5BVXUgvgZ5AfJjkvQvZr03T81NnI3KrrRuMzeuYUQRFOA==", "dev": true, + "license": "MIT", "dependencies": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.25" + "@inquirer/core": "^9.1.0", + "@inquirer/figures": "^1.0.5", + "@inquirer/type": "^1.5.3", + "ansi-escapes": "^4.3.2", + "yoctocolors-cjs": "^2.1.2" + }, + "engines": { + "node": ">=18" } }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", - "dev": true - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "node_modules/@inquirer/type": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-1.5.3.tgz", + "integrity": "sha512-xUQ14WQGR/HK5ei+2CvgcwoH9fQ4PgPGmVFSN0pc1+fVyDL3MREhyAY7nxEErSu6CkllBM3D7e3e+kOvtu+eIg==", "dev": true, + "license": "MIT", "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" + "mute-stream": "^1.0.0" + }, + "engines": { + "node": ">=18" } }, - "node_modules/@leichtgewicht/ip-codec": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz", - "integrity": "sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==", - "dev": true - }, - "node_modules/@ljharb/through": { - "version": "2.3.13", - "resolved": "https://registry.npmjs.org/@ljharb/through/-/through-2.3.13.tgz", - "integrity": "sha512-/gKJun8NNiWGZJkGzI/Ragc53cOdcLNdzjLaIa+GEjguQs0ulsurx8WN0jijdK9yPqDvziX995sMRLyLt1uZMQ==", + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", "dev": true, + "license": "ISC", "dependencies": { - "call-bind": "^1.0.7" + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" }, "engines": { - "node": ">= 0.4" - } - }, - "node_modules/@material/animation": { - "version": "15.0.0-canary.7f224ddd4.0", - "resolved": "https://registry.npmjs.org/@material/animation/-/animation-15.0.0-canary.7f224ddd4.0.tgz", - "integrity": "sha512-1GSJaPKef+7HRuV+HusVZHps64cmZuOItDbt40tjJVaikcaZvwmHlcTxRIqzcRoCdt5ZKHh3NoO7GB9Khg4Jnw==", - "dependencies": { - "tslib": "^2.1.0" - } - }, - "node_modules/@material/auto-init": { - "version": "15.0.0-canary.7f224ddd4.0", - "resolved": "https://registry.npmjs.org/@material/auto-init/-/auto-init-15.0.0-canary.7f224ddd4.0.tgz", - "integrity": "sha512-t7ZGpRJ3ec0QDUO0nJu/SMgLW7qcuG2KqIsEYD1Ej8qhI2xpdR2ydSDQOkVEitXmKoGol1oq4nYSBjTlB65GqA==", - "dependencies": { - "@material/base": "15.0.0-canary.7f224ddd4.0", - "tslib": "^2.1.0" - } - }, - "node_modules/@material/banner": { - "version": "15.0.0-canary.7f224ddd4.0", - "resolved": "https://registry.npmjs.org/@material/banner/-/banner-15.0.0-canary.7f224ddd4.0.tgz", - "integrity": "sha512-g9wBUZzYBizyBcBQXTIafnRUUPi7efU9gPJfzeGgkynXiccP/vh5XMmH+PBxl5v+4MlP/d4cZ2NUYoAN7UTqSA==", - "dependencies": { - "@material/base": "15.0.0-canary.7f224ddd4.0", - "@material/button": "15.0.0-canary.7f224ddd4.0", - "@material/dom": "15.0.0-canary.7f224ddd4.0", - "@material/elevation": "15.0.0-canary.7f224ddd4.0", - "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", - "@material/ripple": "15.0.0-canary.7f224ddd4.0", - "@material/rtl": "15.0.0-canary.7f224ddd4.0", - "@material/shape": "15.0.0-canary.7f224ddd4.0", - "@material/theme": "15.0.0-canary.7f224ddd4.0", - "@material/tokens": "15.0.0-canary.7f224ddd4.0", - "@material/typography": "15.0.0-canary.7f224ddd4.0", - "tslib": "^2.1.0" - } - }, - "node_modules/@material/base": { - "version": "15.0.0-canary.7f224ddd4.0", - "resolved": "https://registry.npmjs.org/@material/base/-/base-15.0.0-canary.7f224ddd4.0.tgz", - "integrity": "sha512-I9KQOKXpLfJkP8MqZyr8wZIzdPHrwPjFvGd9zSK91/vPyE4hzHRJc/0njsh9g8Lm9PRYLbifXX+719uTbHxx+A==", - "dependencies": { - "tslib": "^2.1.0" - } - }, - "node_modules/@material/button": { - "version": "15.0.0-canary.7f224ddd4.0", - "resolved": "https://registry.npmjs.org/@material/button/-/button-15.0.0-canary.7f224ddd4.0.tgz", - "integrity": "sha512-BHB7iyHgRVH+JF16+iscR+Qaic+p7LU1FOLgP8KucRlpF9tTwIxQA6mJwGRi5gUtcG+vyCmzVS+hIQ6DqT/7BA==", - "dependencies": { - "@material/density": "15.0.0-canary.7f224ddd4.0", - "@material/dom": "15.0.0-canary.7f224ddd4.0", - "@material/elevation": "15.0.0-canary.7f224ddd4.0", - "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", - "@material/focus-ring": "15.0.0-canary.7f224ddd4.0", - "@material/ripple": "15.0.0-canary.7f224ddd4.0", - "@material/rtl": "15.0.0-canary.7f224ddd4.0", - "@material/shape": "15.0.0-canary.7f224ddd4.0", - "@material/theme": "15.0.0-canary.7f224ddd4.0", - "@material/tokens": "15.0.0-canary.7f224ddd4.0", - "@material/touch-target": "15.0.0-canary.7f224ddd4.0", - "@material/typography": "15.0.0-canary.7f224ddd4.0", - "tslib": "^2.1.0" - } - }, - "node_modules/@material/card": { - "version": "15.0.0-canary.7f224ddd4.0", - "resolved": "https://registry.npmjs.org/@material/card/-/card-15.0.0-canary.7f224ddd4.0.tgz", - "integrity": "sha512-kt7y9/IWOtJTr3Z/AoWJT3ZLN7CLlzXhx2udCLP9ootZU2bfGK0lzNwmo80bv/pJfrY9ihQKCtuGTtNxUy+vIw==", - "dependencies": { - "@material/dom": "15.0.0-canary.7f224ddd4.0", - "@material/elevation": "15.0.0-canary.7f224ddd4.0", - "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", - "@material/ripple": "15.0.0-canary.7f224ddd4.0", - "@material/rtl": "15.0.0-canary.7f224ddd4.0", - "@material/shape": "15.0.0-canary.7f224ddd4.0", - "@material/theme": "15.0.0-canary.7f224ddd4.0", - "@material/tokens": "15.0.0-canary.7f224ddd4.0", - "tslib": "^2.1.0" - } - }, - "node_modules/@material/checkbox": { - "version": "15.0.0-canary.7f224ddd4.0", - "resolved": "https://registry.npmjs.org/@material/checkbox/-/checkbox-15.0.0-canary.7f224ddd4.0.tgz", - "integrity": "sha512-rURcrL5O1u6hzWR+dNgiQ/n89vk6tdmdP3mZgnxJx61q4I/k1yijKqNJSLrkXH7Rto3bM5NRKMOlgvMvVd7UMQ==", - "dependencies": { - "@material/animation": "15.0.0-canary.7f224ddd4.0", - "@material/base": "15.0.0-canary.7f224ddd4.0", - "@material/density": "15.0.0-canary.7f224ddd4.0", - "@material/dom": "15.0.0-canary.7f224ddd4.0", - "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", - "@material/focus-ring": "15.0.0-canary.7f224ddd4.0", - "@material/ripple": "15.0.0-canary.7f224ddd4.0", - "@material/rtl": "15.0.0-canary.7f224ddd4.0", - "@material/theme": "15.0.0-canary.7f224ddd4.0", - "@material/touch-target": "15.0.0-canary.7f224ddd4.0", - "tslib": "^2.1.0" - } - }, - "node_modules/@material/chips": { - "version": "15.0.0-canary.7f224ddd4.0", - "resolved": "https://registry.npmjs.org/@material/chips/-/chips-15.0.0-canary.7f224ddd4.0.tgz", - "integrity": "sha512-AYAivV3GSk/T/nRIpH27sOHFPaSMrE3L0WYbnb5Wa93FgY8a0fbsFYtSH2QmtwnzXveg+B1zGTt7/xIIcynKdQ==", - "dependencies": { - "@material/animation": "15.0.0-canary.7f224ddd4.0", - "@material/base": "15.0.0-canary.7f224ddd4.0", - "@material/checkbox": "15.0.0-canary.7f224ddd4.0", - "@material/density": "15.0.0-canary.7f224ddd4.0", - "@material/dom": "15.0.0-canary.7f224ddd4.0", - "@material/elevation": "15.0.0-canary.7f224ddd4.0", - "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", - "@material/focus-ring": "15.0.0-canary.7f224ddd4.0", - "@material/ripple": "15.0.0-canary.7f224ddd4.0", - "@material/rtl": "15.0.0-canary.7f224ddd4.0", - "@material/shape": "15.0.0-canary.7f224ddd4.0", - "@material/theme": "15.0.0-canary.7f224ddd4.0", - "@material/tokens": "15.0.0-canary.7f224ddd4.0", - "@material/touch-target": "15.0.0-canary.7f224ddd4.0", - "@material/typography": "15.0.0-canary.7f224ddd4.0", - "safevalues": "^0.3.4", - "tslib": "^2.1.0" - } - }, - "node_modules/@material/circular-progress": { - "version": "15.0.0-canary.7f224ddd4.0", - "resolved": "https://registry.npmjs.org/@material/circular-progress/-/circular-progress-15.0.0-canary.7f224ddd4.0.tgz", - "integrity": "sha512-DJrqCKb+LuGtjNvKl8XigvyK02y36GRkfhMUYTcJEi3PrOE00bwXtyj7ilhzEVshQiXg6AHGWXtf5UqwNrx3Ow==", - "dependencies": { - "@material/animation": "15.0.0-canary.7f224ddd4.0", - "@material/base": "15.0.0-canary.7f224ddd4.0", - "@material/dom": "15.0.0-canary.7f224ddd4.0", - "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", - "@material/progress-indicator": "15.0.0-canary.7f224ddd4.0", - "@material/rtl": "15.0.0-canary.7f224ddd4.0", - "@material/theme": "15.0.0-canary.7f224ddd4.0", - "tslib": "^2.1.0" - } - }, - "node_modules/@material/data-table": { - "version": "15.0.0-canary.7f224ddd4.0", - "resolved": "https://registry.npmjs.org/@material/data-table/-/data-table-15.0.0-canary.7f224ddd4.0.tgz", - "integrity": "sha512-/2WZsuBIq9z9RWYF5Jo6b7P6u0fwit+29/mN7rmAZ6akqUR54nXyNfoSNiyydMkzPlZZsep5KrSHododDhBZbA==", - "dependencies": { - "@material/animation": "15.0.0-canary.7f224ddd4.0", - "@material/base": "15.0.0-canary.7f224ddd4.0", - "@material/checkbox": "15.0.0-canary.7f224ddd4.0", - "@material/density": "15.0.0-canary.7f224ddd4.0", - "@material/dom": "15.0.0-canary.7f224ddd4.0", - "@material/elevation": "15.0.0-canary.7f224ddd4.0", - "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", - "@material/icon-button": "15.0.0-canary.7f224ddd4.0", - "@material/linear-progress": "15.0.0-canary.7f224ddd4.0", - "@material/list": "15.0.0-canary.7f224ddd4.0", - "@material/menu": "15.0.0-canary.7f224ddd4.0", - "@material/rtl": "15.0.0-canary.7f224ddd4.0", - "@material/select": "15.0.0-canary.7f224ddd4.0", - "@material/shape": "15.0.0-canary.7f224ddd4.0", - "@material/theme": "15.0.0-canary.7f224ddd4.0", - "@material/tokens": "15.0.0-canary.7f224ddd4.0", - "@material/touch-target": "15.0.0-canary.7f224ddd4.0", - "@material/typography": "15.0.0-canary.7f224ddd4.0", - "tslib": "^2.1.0" - } - }, - "node_modules/@material/density": { - "version": "15.0.0-canary.7f224ddd4.0", - "resolved": "https://registry.npmjs.org/@material/density/-/density-15.0.0-canary.7f224ddd4.0.tgz", - "integrity": "sha512-o9EXmGKVpiQ6mHhyV3oDDzc78Ow3E7v8dlaOhgaDSXgmqaE8v5sIlLNa/LKSyUga83/fpGk3QViSGXotpQx0jA==", - "dependencies": { - "tslib": "^2.1.0" - } - }, - "node_modules/@material/dialog": { - "version": "15.0.0-canary.7f224ddd4.0", - "resolved": "https://registry.npmjs.org/@material/dialog/-/dialog-15.0.0-canary.7f224ddd4.0.tgz", - "integrity": "sha512-u0XpTlv1JqWC/bQ3DavJ1JguofTelLT2wloj59l3/1b60jv42JQ6Am7jU3I8/SIUB1MKaW7dYocXjDWtWJakLA==", - "dependencies": { - "@material/animation": "15.0.0-canary.7f224ddd4.0", - "@material/base": "15.0.0-canary.7f224ddd4.0", - "@material/button": "15.0.0-canary.7f224ddd4.0", - "@material/dom": "15.0.0-canary.7f224ddd4.0", - "@material/elevation": "15.0.0-canary.7f224ddd4.0", - "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", - "@material/icon-button": "15.0.0-canary.7f224ddd4.0", - "@material/ripple": "15.0.0-canary.7f224ddd4.0", - "@material/rtl": "15.0.0-canary.7f224ddd4.0", - "@material/shape": "15.0.0-canary.7f224ddd4.0", - "@material/theme": "15.0.0-canary.7f224ddd4.0", - "@material/tokens": "15.0.0-canary.7f224ddd4.0", - "@material/touch-target": "15.0.0-canary.7f224ddd4.0", - "@material/typography": "15.0.0-canary.7f224ddd4.0", - "tslib": "^2.1.0" - } - }, - "node_modules/@material/dom": { - "version": "15.0.0-canary.7f224ddd4.0", - "resolved": "https://registry.npmjs.org/@material/dom/-/dom-15.0.0-canary.7f224ddd4.0.tgz", - "integrity": "sha512-mQ1HT186GPQSkRg5S18i70typ5ZytfjL09R0gJ2Qg5/G+MLCGi7TAjZZSH65tuD/QGOjel4rDdWOTmYbPYV6HA==", - "dependencies": { - "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", - "@material/rtl": "15.0.0-canary.7f224ddd4.0", - "tslib": "^2.1.0" - } - }, - "node_modules/@material/drawer": { - "version": "15.0.0-canary.7f224ddd4.0", - "resolved": "https://registry.npmjs.org/@material/drawer/-/drawer-15.0.0-canary.7f224ddd4.0.tgz", - "integrity": "sha512-qyO0W0KBftfH8dlLR0gVAgv7ZHNvU8ae11Ao6zJif/YxcvK4+gph1z8AO4H410YmC2kZiwpSKyxM1iQCCzbb4g==", - "dependencies": { - "@material/animation": "15.0.0-canary.7f224ddd4.0", - "@material/base": "15.0.0-canary.7f224ddd4.0", - "@material/dom": "15.0.0-canary.7f224ddd4.0", - "@material/elevation": "15.0.0-canary.7f224ddd4.0", - "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", - "@material/list": "15.0.0-canary.7f224ddd4.0", - "@material/ripple": "15.0.0-canary.7f224ddd4.0", - "@material/rtl": "15.0.0-canary.7f224ddd4.0", - "@material/shape": "15.0.0-canary.7f224ddd4.0", - "@material/theme": "15.0.0-canary.7f224ddd4.0", - "@material/typography": "15.0.0-canary.7f224ddd4.0", - "tslib": "^2.1.0" - } - }, - "node_modules/@material/elevation": { - "version": "15.0.0-canary.7f224ddd4.0", - "resolved": "https://registry.npmjs.org/@material/elevation/-/elevation-15.0.0-canary.7f224ddd4.0.tgz", - "integrity": "sha512-tV6s4/pUBECedaI36Yj18KmRCk1vfue/JP/5yYRlFNnLMRVISePbZaKkn/BHXVf+26I3W879+XqIGlDVdmOoMA==", - "dependencies": { - "@material/animation": "15.0.0-canary.7f224ddd4.0", - "@material/base": "15.0.0-canary.7f224ddd4.0", - "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", - "@material/rtl": "15.0.0-canary.7f224ddd4.0", - "@material/theme": "15.0.0-canary.7f224ddd4.0", - "tslib": "^2.1.0" - } - }, - "node_modules/@material/fab": { - "version": "15.0.0-canary.7f224ddd4.0", - "resolved": "https://registry.npmjs.org/@material/fab/-/fab-15.0.0-canary.7f224ddd4.0.tgz", - "integrity": "sha512-4h76QrzfZTcPdd+awDPZ4Q0YdSqsXQnS540TPtyXUJ/5G99V6VwGpjMPIxAsW0y+pmI9UkLL/srrMaJec+7r4Q==", - "dependencies": { - "@material/animation": "15.0.0-canary.7f224ddd4.0", - "@material/dom": "15.0.0-canary.7f224ddd4.0", - "@material/elevation": "15.0.0-canary.7f224ddd4.0", - "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", - "@material/focus-ring": "15.0.0-canary.7f224ddd4.0", - "@material/ripple": "15.0.0-canary.7f224ddd4.0", - "@material/rtl": "15.0.0-canary.7f224ddd4.0", - "@material/shape": "15.0.0-canary.7f224ddd4.0", - "@material/theme": "15.0.0-canary.7f224ddd4.0", - "@material/tokens": "15.0.0-canary.7f224ddd4.0", - "@material/touch-target": "15.0.0-canary.7f224ddd4.0", - "@material/typography": "15.0.0-canary.7f224ddd4.0", - "tslib": "^2.1.0" + "node": ">=12" } }, - "node_modules/@material/feature-targeting": { - "version": "15.0.0-canary.7f224ddd4.0", - "resolved": "https://registry.npmjs.org/@material/feature-targeting/-/feature-targeting-15.0.0-canary.7f224ddd4.0.tgz", - "integrity": "sha512-SAjtxYh6YlKZriU83diDEQ7jNSP2MnxKsER0TvFeyG1vX/DWsUyYDOIJTOEa9K1N+fgJEBkNK8hY55QhQaspew==", - "dependencies": { - "tslib": "^2.1.0" + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, - "node_modules/@material/floating-label": { - "version": "15.0.0-canary.7f224ddd4.0", - "resolved": "https://registry.npmjs.org/@material/floating-label/-/floating-label-15.0.0-canary.7f224ddd4.0.tgz", - "integrity": "sha512-0KMo5ijjYaEHPiZ2pCVIcbaTS2LycvH9zEhEMKwPPGssBCX7iz5ffYQFk7e5yrQand1r3jnQQgYfHAwtykArnQ==", - "dependencies": { - "@material/animation": "15.0.0-canary.7f224ddd4.0", - "@material/base": "15.0.0-canary.7f224ddd4.0", - "@material/dom": "15.0.0-canary.7f224ddd4.0", - "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", - "@material/rtl": "15.0.0-canary.7f224ddd4.0", - "@material/theme": "15.0.0-canary.7f224ddd4.0", - "@material/typography": "15.0.0-canary.7f224ddd4.0", - "tslib": "^2.1.0" + "node_modules/@isaacs/cliui/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@material/focus-ring": { - "version": "15.0.0-canary.7f224ddd4.0", - "resolved": "https://registry.npmjs.org/@material/focus-ring/-/focus-ring-15.0.0-canary.7f224ddd4.0.tgz", - "integrity": "sha512-Jmg1nltq4J6S6A10EGMZnvufrvU3YTi+8R8ZD9lkSbun0Fm2TVdICQt/Auyi6An9zP66oQN6c31eqO6KfIPsDg==", - "dependencies": { - "@material/dom": "15.0.0-canary.7f224ddd4.0", - "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", - "@material/rtl": "15.0.0-canary.7f224ddd4.0" - } + "node_modules/@isaacs/cliui/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true, + "license": "MIT" }, - "node_modules/@material/form-field": { - "version": "15.0.0-canary.7f224ddd4.0", - "resolved": "https://registry.npmjs.org/@material/form-field/-/form-field-15.0.0-canary.7f224ddd4.0.tgz", - "integrity": "sha512-fEPWgDQEPJ6WF7hNnIStxucHR9LE4DoDSMqCsGWS2Yu+NLZYLuCEecgR0UqQsl1EQdNRaFh8VH93KuxGd2hiPg==", + "node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "license": "MIT", "dependencies": { - "@material/base": "15.0.0-canary.7f224ddd4.0", - "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", - "@material/ripple": "15.0.0-canary.7f224ddd4.0", - "@material/rtl": "15.0.0-canary.7f224ddd4.0", - "@material/theme": "15.0.0-canary.7f224ddd4.0", - "@material/typography": "15.0.0-canary.7f224ddd4.0", - "tslib": "^2.1.0" - } - }, - "node_modules/@material/icon-button": { - "version": "15.0.0-canary.7f224ddd4.0", - "resolved": "https://registry.npmjs.org/@material/icon-button/-/icon-button-15.0.0-canary.7f224ddd4.0.tgz", - "integrity": "sha512-DcK7IL4ICY/DW+48YQZZs9g0U1kRaW0Wb0BxhvppDMYziHo/CTpFdle4gjyuTyRxPOdHQz5a97ru48Z9O4muTw==", - "dependencies": { - "@material/base": "15.0.0-canary.7f224ddd4.0", - "@material/density": "15.0.0-canary.7f224ddd4.0", - "@material/dom": "15.0.0-canary.7f224ddd4.0", - "@material/elevation": "15.0.0-canary.7f224ddd4.0", - "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", - "@material/focus-ring": "15.0.0-canary.7f224ddd4.0", - "@material/ripple": "15.0.0-canary.7f224ddd4.0", - "@material/rtl": "15.0.0-canary.7f224ddd4.0", - "@material/theme": "15.0.0-canary.7f224ddd4.0", - "@material/touch-target": "15.0.0-canary.7f224ddd4.0", - "tslib": "^2.1.0" + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@material/image-list": { - "version": "15.0.0-canary.7f224ddd4.0", - "resolved": "https://registry.npmjs.org/@material/image-list/-/image-list-15.0.0-canary.7f224ddd4.0.tgz", - "integrity": "sha512-voMjG2p80XbjL1B2lmF65zO5gEgJOVKClLdqh4wbYzYfwY/SR9c8eLvlYG7DLdFaFBl/7gGxD8TvvZ329HUFPw==", + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "license": "MIT", "dependencies": { - "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", - "@material/shape": "15.0.0-canary.7f224ddd4.0", - "@material/theme": "15.0.0-canary.7f224ddd4.0", - "@material/typography": "15.0.0-canary.7f224ddd4.0", - "tslib": "^2.1.0" + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, - "node_modules/@material/layout-grid": { - "version": "15.0.0-canary.7f224ddd4.0", - "resolved": "https://registry.npmjs.org/@material/layout-grid/-/layout-grid-15.0.0-canary.7f224ddd4.0.tgz", - "integrity": "sha512-veDABLxMn2RmvfnUO2RUmC1OFfWr4cU+MrxKPoDD2hl3l3eDYv5fxws6r5T1JoSyXoaN+oEZpheS0+M9Ure8Pg==", + "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "license": "MIT", "dependencies": { - "tslib": "^2.1.0" + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/@material/line-ripple": { - "version": "15.0.0-canary.7f224ddd4.0", - "resolved": "https://registry.npmjs.org/@material/line-ripple/-/line-ripple-15.0.0-canary.7f224ddd4.0.tgz", - "integrity": "sha512-f60hVJhIU6I3/17Tqqzch1emUKEcfVVgHVqADbU14JD+oEIz429ZX9ksZ3VChoU3+eejFl+jVdZMLE/LrAuwpg==", - "dependencies": { - "@material/animation": "15.0.0-canary.7f224ddd4.0", - "@material/base": "15.0.0-canary.7f224ddd4.0", - "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", - "@material/theme": "15.0.0-canary.7f224ddd4.0", - "tslib": "^2.1.0" + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true, + "engines": { + "node": ">=8" } }, - "node_modules/@material/linear-progress": { - "version": "15.0.0-canary.7f224ddd4.0", - "resolved": "https://registry.npmjs.org/@material/linear-progress/-/linear-progress-15.0.0-canary.7f224ddd4.0.tgz", - "integrity": "sha512-pRDEwPQielDiC9Sc5XhCXrGxP8wWOnAO8sQlMebfBYHYqy5hhiIzibezS8CSaW4MFQFyXmCmpmqWlbqGYRmiyg==", + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "dev": true, "dependencies": { - "@material/animation": "15.0.0-canary.7f224ddd4.0", - "@material/base": "15.0.0-canary.7f224ddd4.0", - "@material/dom": "15.0.0-canary.7f224ddd4.0", - "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", - "@material/progress-indicator": "15.0.0-canary.7f224ddd4.0", - "@material/rtl": "15.0.0-canary.7f224ddd4.0", - "@material/theme": "15.0.0-canary.7f224ddd4.0", - "tslib": "^2.1.0" + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" } }, - "node_modules/@material/list": { - "version": "15.0.0-canary.7f224ddd4.0", - "resolved": "https://registry.npmjs.org/@material/list/-/list-15.0.0-canary.7f224ddd4.0.tgz", - "integrity": "sha512-Is0NV91sJlXF5pOebYAtWLF4wU2MJDbYqztML/zQNENkQxDOvEXu3nWNb3YScMIYJJXvARO0Liur5K4yPagS1Q==", - "dependencies": { - "@material/base": "15.0.0-canary.7f224ddd4.0", - "@material/density": "15.0.0-canary.7f224ddd4.0", - "@material/dom": "15.0.0-canary.7f224ddd4.0", - "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", - "@material/ripple": "15.0.0-canary.7f224ddd4.0", - "@material/rtl": "15.0.0-canary.7f224ddd4.0", - "@material/shape": "15.0.0-canary.7f224ddd4.0", - "@material/theme": "15.0.0-canary.7f224ddd4.0", - "@material/tokens": "15.0.0-canary.7f224ddd4.0", - "@material/typography": "15.0.0-canary.7f224ddd4.0", - "tslib": "^2.1.0" + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "engines": { + "node": ">=6.0.0" } }, - "node_modules/@material/menu": { - "version": "15.0.0-canary.7f224ddd4.0", - "resolved": "https://registry.npmjs.org/@material/menu/-/menu-15.0.0-canary.7f224ddd4.0.tgz", - "integrity": "sha512-D11QU1dXqLbh5X1zKlEhS3QWh0b5BPNXlafc5MXfkdJHhOiieb7LC9hMJhbrHtj24FadJ7evaFW/T2ugJbJNnQ==", - "dependencies": { - "@material/base": "15.0.0-canary.7f224ddd4.0", - "@material/dom": "15.0.0-canary.7f224ddd4.0", - "@material/elevation": "15.0.0-canary.7f224ddd4.0", - "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", - "@material/list": "15.0.0-canary.7f224ddd4.0", - "@material/menu-surface": "15.0.0-canary.7f224ddd4.0", - "@material/ripple": "15.0.0-canary.7f224ddd4.0", - "@material/rtl": "15.0.0-canary.7f224ddd4.0", - "@material/shape": "15.0.0-canary.7f224ddd4.0", - "@material/theme": "15.0.0-canary.7f224ddd4.0", - "@material/tokens": "15.0.0-canary.7f224ddd4.0", - "tslib": "^2.1.0" + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "dev": true, + "engines": { + "node": ">=6.0.0" } }, - "node_modules/@material/menu-surface": { - "version": "15.0.0-canary.7f224ddd4.0", - "resolved": "https://registry.npmjs.org/@material/menu-surface/-/menu-surface-15.0.0-canary.7f224ddd4.0.tgz", - "integrity": "sha512-7RZHvw0gbwppaAJ/Oh5SWmfAKJ62aw1IMB3+3MRwsb5PLoV666wInYa+zJfE4i7qBeOn904xqT2Nko5hY0ssrg==", + "node_modules/@jridgewell/source-map": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", + "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", + "dev": true, "dependencies": { - "@material/animation": "15.0.0-canary.7f224ddd4.0", - "@material/base": "15.0.0-canary.7f224ddd4.0", - "@material/elevation": "15.0.0-canary.7f224ddd4.0", - "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", - "@material/rtl": "15.0.0-canary.7f224ddd4.0", - "@material/shape": "15.0.0-canary.7f224ddd4.0", - "@material/theme": "15.0.0-canary.7f224ddd4.0", - "tslib": "^2.1.0" + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" } }, - "node_modules/@material/notched-outline": { - "version": "15.0.0-canary.7f224ddd4.0", - "resolved": "https://registry.npmjs.org/@material/notched-outline/-/notched-outline-15.0.0-canary.7f224ddd4.0.tgz", - "integrity": "sha512-Yg2usuKB2DKlKIBISbie9BFsOVuffF71xjbxPbybvqemxqUBd+bD5/t6H1fLE+F8/NCu5JMigho4ewUU+0RCiw==", - "dependencies": { - "@material/base": "15.0.0-canary.7f224ddd4.0", - "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", - "@material/floating-label": "15.0.0-canary.7f224ddd4.0", - "@material/rtl": "15.0.0-canary.7f224ddd4.0", - "@material/shape": "15.0.0-canary.7f224ddd4.0", - "@material/theme": "15.0.0-canary.7f224ddd4.0", - "tslib": "^2.1.0" - } + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "dev": true, + "license": "MIT" }, - "node_modules/@material/progress-indicator": { - "version": "15.0.0-canary.7f224ddd4.0", - "resolved": "https://registry.npmjs.org/@material/progress-indicator/-/progress-indicator-15.0.0-canary.7f224ddd4.0.tgz", - "integrity": "sha512-UPbDjE5CqT+SqTs0mNFG6uFEw7wBlgYmh+noSkQ6ty/EURm8lF125dmi4dv4kW0+octonMXqkGtAoZwLIHKf/w==", + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dev": true, "dependencies": { - "tslib": "^2.1.0" - } - }, - "node_modules/@material/radio": { - "version": "15.0.0-canary.7f224ddd4.0", - "resolved": "https://registry.npmjs.org/@material/radio/-/radio-15.0.0-canary.7f224ddd4.0.tgz", - "integrity": "sha512-wR1X0Sr0KmQLu6+YOFKAI84G3L6psqd7Kys5kfb8WKBM36zxO5HQXC5nJm/Y0rdn22ixzsIz2GBo0MNU4V4k1A==", - "dependencies": { - "@material/animation": "15.0.0-canary.7f224ddd4.0", - "@material/base": "15.0.0-canary.7f224ddd4.0", - "@material/density": "15.0.0-canary.7f224ddd4.0", - "@material/dom": "15.0.0-canary.7f224ddd4.0", - "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", - "@material/focus-ring": "15.0.0-canary.7f224ddd4.0", - "@material/ripple": "15.0.0-canary.7f224ddd4.0", - "@material/theme": "15.0.0-canary.7f224ddd4.0", - "@material/touch-target": "15.0.0-canary.7f224ddd4.0", - "tslib": "^2.1.0" + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" } }, - "node_modules/@material/ripple": { - "version": "15.0.0-canary.7f224ddd4.0", - "resolved": "https://registry.npmjs.org/@material/ripple/-/ripple-15.0.0-canary.7f224ddd4.0.tgz", - "integrity": "sha512-JqOsWM1f4aGdotP0rh1vZlPZTg6lZgh39FIYHFMfOwfhR+LAikUJ+37ciqZuewgzXB6iiRO6a8aUH6HR5SJYPg==", - "dependencies": { - "@material/animation": "15.0.0-canary.7f224ddd4.0", - "@material/base": "15.0.0-canary.7f224ddd4.0", - "@material/dom": "15.0.0-canary.7f224ddd4.0", - "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", - "@material/rtl": "15.0.0-canary.7f224ddd4.0", - "@material/theme": "15.0.0-canary.7f224ddd4.0", - "tslib": "^2.1.0" + "node_modules/@jsonjoy.com/base64": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/base64/-/base64-1.1.2.tgz", + "integrity": "sha512-q6XAnWQDIMA3+FTiOYajoYqySkO+JSat0ytXGSuRdq9uXE7o92gzuQwQM14xaCRlBLGq3v5miDGC4vkVTn54xA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" } }, - "node_modules/@material/rtl": { - "version": "15.0.0-canary.7f224ddd4.0", - "resolved": "https://registry.npmjs.org/@material/rtl/-/rtl-15.0.0-canary.7f224ddd4.0.tgz", - "integrity": "sha512-UVf14qAtmPiaaZjuJtmN36HETyoKWmsZM/qn1L5ciR2URb8O035dFWnz4ZWFMmAYBno/L7JiZaCkPurv2ZNrGA==", + "node_modules/@jsonjoy.com/json-pack": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/json-pack/-/json-pack-1.1.0.tgz", + "integrity": "sha512-zlQONA+msXPPwHWZMKFVS78ewFczIll5lXiVPwFPCZUsrOKdxc2AvxU1HoNBmMRhqDZUR9HkC3UOm+6pME6Xsg==", + "dev": true, + "license": "Apache-2.0", "dependencies": { - "@material/theme": "15.0.0-canary.7f224ddd4.0", - "tslib": "^2.1.0" + "@jsonjoy.com/base64": "^1.1.1", + "@jsonjoy.com/util": "^1.1.2", + "hyperdyperid": "^1.2.0", + "thingies": "^1.20.0" + }, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" } }, - "node_modules/@material/segmented-button": { - "version": "15.0.0-canary.7f224ddd4.0", - "resolved": "https://registry.npmjs.org/@material/segmented-button/-/segmented-button-15.0.0-canary.7f224ddd4.0.tgz", - "integrity": "sha512-LCnVRUSAhELTKI/9hSvyvIvQIpPpqF29BV+O9yM4WoNNmNWqTulvuiv7grHZl6Z+kJuxSg4BGbsPxxb9dXozPg==", - "dependencies": { - "@material/base": "15.0.0-canary.7f224ddd4.0", - "@material/elevation": "15.0.0-canary.7f224ddd4.0", - "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", - "@material/ripple": "15.0.0-canary.7f224ddd4.0", - "@material/theme": "15.0.0-canary.7f224ddd4.0", - "@material/touch-target": "15.0.0-canary.7f224ddd4.0", - "@material/typography": "15.0.0-canary.7f224ddd4.0", - "tslib": "^2.1.0" + "node_modules/@jsonjoy.com/util": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/util/-/util-1.3.0.tgz", + "integrity": "sha512-Cebt4Vk7k1xHy87kHY7KSPLT77A7Ev7IfOblyLZhtYEhrdQ6fX4EoLq3xOQ3O/DRMEh2ok5nyC180E+ABS8Wmw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" } }, - "node_modules/@material/select": { - "version": "15.0.0-canary.7f224ddd4.0", - "resolved": "https://registry.npmjs.org/@material/select/-/select-15.0.0-canary.7f224ddd4.0.tgz", - "integrity": "sha512-WioZtQEXRpglum0cMSzSqocnhsGRr+ZIhvKb3FlaNrTaK8H3Y4QA7rVjv3emRtrLOOjaT6/RiIaUMTo9AGzWQQ==", - "dependencies": { - "@material/animation": "15.0.0-canary.7f224ddd4.0", - "@material/base": "15.0.0-canary.7f224ddd4.0", - "@material/density": "15.0.0-canary.7f224ddd4.0", - "@material/dom": "15.0.0-canary.7f224ddd4.0", - "@material/elevation": "15.0.0-canary.7f224ddd4.0", - "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", - "@material/floating-label": "15.0.0-canary.7f224ddd4.0", - "@material/line-ripple": "15.0.0-canary.7f224ddd4.0", - "@material/list": "15.0.0-canary.7f224ddd4.0", - "@material/menu": "15.0.0-canary.7f224ddd4.0", - "@material/menu-surface": "15.0.0-canary.7f224ddd4.0", - "@material/notched-outline": "15.0.0-canary.7f224ddd4.0", - "@material/ripple": "15.0.0-canary.7f224ddd4.0", - "@material/rtl": "15.0.0-canary.7f224ddd4.0", - "@material/shape": "15.0.0-canary.7f224ddd4.0", - "@material/theme": "15.0.0-canary.7f224ddd4.0", - "@material/tokens": "15.0.0-canary.7f224ddd4.0", - "@material/typography": "15.0.0-canary.7f224ddd4.0", - "tslib": "^2.1.0" - } + "node_modules/@leichtgewicht/ip-codec": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz", + "integrity": "sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==", + "dev": true, + "license": "MIT" }, - "node_modules/@material/shape": { - "version": "15.0.0-canary.7f224ddd4.0", - "resolved": "https://registry.npmjs.org/@material/shape/-/shape-15.0.0-canary.7f224ddd4.0.tgz", - "integrity": "sha512-8z8l1W3+cymObunJoRhwFPKZ+FyECfJ4MJykNiaZq7XJFZkV6xNmqAVrrbQj93FtLsECn9g4PjjIomguVn/OEw==", + "node_modules/@listr2/prompt-adapter-inquirer": { + "version": "2.0.15", + "resolved": "https://registry.npmjs.org/@listr2/prompt-adapter-inquirer/-/prompt-adapter-inquirer-2.0.15.tgz", + "integrity": "sha512-MZrGem/Ujjd4cPTLYDfCZK2iKKeiO/8OX13S6jqxldLs0Prf2aGqVlJ77nMBqMv7fzqgXEgjrNHLXcKR8l9lOg==", + "dev": true, + "license": "MIT", "dependencies": { - "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", - "@material/rtl": "15.0.0-canary.7f224ddd4.0", - "@material/theme": "15.0.0-canary.7f224ddd4.0", - "tslib": "^2.1.0" - } - }, - "node_modules/@material/slider": { - "version": "15.0.0-canary.7f224ddd4.0", - "resolved": "https://registry.npmjs.org/@material/slider/-/slider-15.0.0-canary.7f224ddd4.0.tgz", - "integrity": "sha512-QU/WSaSWlLKQRqOhJrPgm29wqvvzRusMqwAcrCh1JTrCl+xwJ43q5WLDfjYhubeKtrEEgGu9tekkAiYfMG7EBw==", - "dependencies": { - "@material/animation": "15.0.0-canary.7f224ddd4.0", - "@material/base": "15.0.0-canary.7f224ddd4.0", - "@material/dom": "15.0.0-canary.7f224ddd4.0", - "@material/elevation": "15.0.0-canary.7f224ddd4.0", - "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", - "@material/ripple": "15.0.0-canary.7f224ddd4.0", - "@material/rtl": "15.0.0-canary.7f224ddd4.0", - "@material/theme": "15.0.0-canary.7f224ddd4.0", - "@material/tokens": "15.0.0-canary.7f224ddd4.0", - "@material/typography": "15.0.0-canary.7f224ddd4.0", - "tslib": "^2.1.0" - } - }, - "node_modules/@material/snackbar": { - "version": "15.0.0-canary.7f224ddd4.0", - "resolved": "https://registry.npmjs.org/@material/snackbar/-/snackbar-15.0.0-canary.7f224ddd4.0.tgz", - "integrity": "sha512-sm7EbVKddaXpT/aXAYBdPoN0k8yeg9+dprgBUkrdqGzWJAeCkxb4fv2B3He88YiCtvkTz2KLY4CThPQBSEsMFQ==", - "dependencies": { - "@material/animation": "15.0.0-canary.7f224ddd4.0", - "@material/base": "15.0.0-canary.7f224ddd4.0", - "@material/button": "15.0.0-canary.7f224ddd4.0", - "@material/dom": "15.0.0-canary.7f224ddd4.0", - "@material/elevation": "15.0.0-canary.7f224ddd4.0", - "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", - "@material/icon-button": "15.0.0-canary.7f224ddd4.0", - "@material/ripple": "15.0.0-canary.7f224ddd4.0", - "@material/rtl": "15.0.0-canary.7f224ddd4.0", - "@material/shape": "15.0.0-canary.7f224ddd4.0", - "@material/theme": "15.0.0-canary.7f224ddd4.0", - "@material/tokens": "15.0.0-canary.7f224ddd4.0", - "@material/typography": "15.0.0-canary.7f224ddd4.0", - "tslib": "^2.1.0" + "@inquirer/type": "^1.5.1" + }, + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "@inquirer/prompts": ">= 3 < 6" } }, - "node_modules/@material/switch": { - "version": "15.0.0-canary.7f224ddd4.0", - "resolved": "https://registry.npmjs.org/@material/switch/-/switch-15.0.0-canary.7f224ddd4.0.tgz", - "integrity": "sha512-lEDJfRvkVyyeHWIBfoxYjJVl+WlEAE2kZ/+6OqB1FW0OV8ftTODZGhHRSzjVBA1/p4FPuhAtKtoK9jTpa4AZjA==", - "dependencies": { - "@material/animation": "15.0.0-canary.7f224ddd4.0", - "@material/base": "15.0.0-canary.7f224ddd4.0", - "@material/density": "15.0.0-canary.7f224ddd4.0", - "@material/dom": "15.0.0-canary.7f224ddd4.0", - "@material/elevation": "15.0.0-canary.7f224ddd4.0", - "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", - "@material/focus-ring": "15.0.0-canary.7f224ddd4.0", - "@material/ripple": "15.0.0-canary.7f224ddd4.0", - "@material/rtl": "15.0.0-canary.7f224ddd4.0", - "@material/shape": "15.0.0-canary.7f224ddd4.0", - "@material/theme": "15.0.0-canary.7f224ddd4.0", - "@material/tokens": "15.0.0-canary.7f224ddd4.0", - "safevalues": "^0.3.4", - "tslib": "^2.1.0" - } + "node_modules/@lmdb/lmdb-darwin-arm64": { + "version": "3.0.13", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-darwin-arm64/-/lmdb-darwin-arm64-3.0.13.tgz", + "integrity": "sha512-uiKPB0Fv6WEEOZjruu9a6wnW/8jrjzlZbxXscMB8kuCJ1k6kHpcBnuvaAWcqhbI7rqX5GKziwWEdD+wi2gNLfA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] }, - "node_modules/@material/tab": { - "version": "15.0.0-canary.7f224ddd4.0", - "resolved": "https://registry.npmjs.org/@material/tab/-/tab-15.0.0-canary.7f224ddd4.0.tgz", - "integrity": "sha512-E1xGACImyCLurhnizyOTCgOiVezce4HlBFAI6YhJo/AyVwjN2Dtas4ZLQMvvWWqpyhITNkeYdOchwCC1mrz3AQ==", - "dependencies": { - "@material/base": "15.0.0-canary.7f224ddd4.0", - "@material/elevation": "15.0.0-canary.7f224ddd4.0", - "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", - "@material/focus-ring": "15.0.0-canary.7f224ddd4.0", - "@material/ripple": "15.0.0-canary.7f224ddd4.0", - "@material/rtl": "15.0.0-canary.7f224ddd4.0", - "@material/tab-indicator": "15.0.0-canary.7f224ddd4.0", - "@material/theme": "15.0.0-canary.7f224ddd4.0", - "@material/tokens": "15.0.0-canary.7f224ddd4.0", - "@material/typography": "15.0.0-canary.7f224ddd4.0", - "tslib": "^2.1.0" - } + "node_modules/@lmdb/lmdb-darwin-x64": { + "version": "3.0.13", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-darwin-x64/-/lmdb-darwin-x64-3.0.13.tgz", + "integrity": "sha512-bEVIIfK5mSQoG1R19qA+fJOvCB+0wVGGnXHT3smchBVahYBdlPn2OsZZKzlHWfb1E+PhLBmYfqB5zQXFP7hJig==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] }, - "node_modules/@material/tab-bar": { - "version": "15.0.0-canary.7f224ddd4.0", - "resolved": "https://registry.npmjs.org/@material/tab-bar/-/tab-bar-15.0.0-canary.7f224ddd4.0.tgz", - "integrity": "sha512-p1Asb2NzrcECvAQU3b2SYrpyJGyJLQWR+nXTYzDKE8WOpLIRCXap2audNqD7fvN/A20UJ1J8U01ptrvCkwJ4eA==", - "dependencies": { - "@material/animation": "15.0.0-canary.7f224ddd4.0", - "@material/base": "15.0.0-canary.7f224ddd4.0", - "@material/density": "15.0.0-canary.7f224ddd4.0", - "@material/elevation": "15.0.0-canary.7f224ddd4.0", - "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", - "@material/tab": "15.0.0-canary.7f224ddd4.0", - "@material/tab-indicator": "15.0.0-canary.7f224ddd4.0", - "@material/tab-scroller": "15.0.0-canary.7f224ddd4.0", - "@material/theme": "15.0.0-canary.7f224ddd4.0", - "@material/tokens": "15.0.0-canary.7f224ddd4.0", - "@material/typography": "15.0.0-canary.7f224ddd4.0", - "tslib": "^2.1.0" - } + "node_modules/@lmdb/lmdb-linux-arm": { + "version": "3.0.13", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-arm/-/lmdb-linux-arm-3.0.13.tgz", + "integrity": "sha512-Yml1KlMzOnXj/tnW7yX8U78iAzTk39aILYvCPbqeewAq1kSzl+w59k/fiVkTBfvDi/oW/5YRxL+Fq+Y1Fr1r2Q==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/@material/tab-indicator": { - "version": "15.0.0-canary.7f224ddd4.0", - "resolved": "https://registry.npmjs.org/@material/tab-indicator/-/tab-indicator-15.0.0-canary.7f224ddd4.0.tgz", - "integrity": "sha512-h9Td3MPqbs33spcPS7ecByRHraYgU4tNCZpZzZXw31RypjKvISDv/PS5wcA4RmWqNGih78T7xg4QIGsZg4Pk4w==", - "dependencies": { - "@material/animation": "15.0.0-canary.7f224ddd4.0", - "@material/base": "15.0.0-canary.7f224ddd4.0", - "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", - "@material/theme": "15.0.0-canary.7f224ddd4.0", - "tslib": "^2.1.0" - } + "node_modules/@lmdb/lmdb-linux-arm64": { + "version": "3.0.13", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-arm64/-/lmdb-linux-arm64-3.0.13.tgz", + "integrity": "sha512-afbVrsMgZ9dUTNUchFpj5VkmJRxvht/u335jUJ7o23YTbNbnpmXif3VKQGCtnjSh+CZaqm6N3CPG8KO3zwyZ1Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/@material/tab-scroller": { - "version": "15.0.0-canary.7f224ddd4.0", - "resolved": "https://registry.npmjs.org/@material/tab-scroller/-/tab-scroller-15.0.0-canary.7f224ddd4.0.tgz", - "integrity": "sha512-LFeYNjQpdXecwECd8UaqHYbhscDCwhGln5Yh+3ctvcEgvmDPNjhKn/DL3sWprWvG8NAhP6sHMrsGhQFVdCWtTg==", - "dependencies": { - "@material/animation": "15.0.0-canary.7f224ddd4.0", - "@material/base": "15.0.0-canary.7f224ddd4.0", - "@material/dom": "15.0.0-canary.7f224ddd4.0", - "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", - "@material/tab": "15.0.0-canary.7f224ddd4.0", - "tslib": "^2.1.0" - } + "node_modules/@lmdb/lmdb-linux-x64": { + "version": "3.0.13", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-x64/-/lmdb-linux-x64-3.0.13.tgz", + "integrity": "sha512-vOtxu0xC0SLdQ2WRXg8Qgd8T32ak4SPqk5zjItRszrJk2BdeXqfGxBJbP7o4aOvSPSmSSv46Lr1EP4HXU8v7Kg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/@material/textfield": { - "version": "15.0.0-canary.7f224ddd4.0", - "resolved": "https://registry.npmjs.org/@material/textfield/-/textfield-15.0.0-canary.7f224ddd4.0.tgz", - "integrity": "sha512-AExmFvgE5nNF0UA4l2cSzPghtxSUQeeoyRjFLHLy+oAaE4eKZFrSy0zEpqPeWPQpEMDZk+6Y+6T3cOFYBeSvsw==", - "dependencies": { - "@material/animation": "15.0.0-canary.7f224ddd4.0", - "@material/base": "15.0.0-canary.7f224ddd4.0", - "@material/density": "15.0.0-canary.7f224ddd4.0", - "@material/dom": "15.0.0-canary.7f224ddd4.0", - "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", - "@material/floating-label": "15.0.0-canary.7f224ddd4.0", - "@material/line-ripple": "15.0.0-canary.7f224ddd4.0", - "@material/notched-outline": "15.0.0-canary.7f224ddd4.0", - "@material/ripple": "15.0.0-canary.7f224ddd4.0", - "@material/rtl": "15.0.0-canary.7f224ddd4.0", - "@material/shape": "15.0.0-canary.7f224ddd4.0", - "@material/theme": "15.0.0-canary.7f224ddd4.0", - "@material/tokens": "15.0.0-canary.7f224ddd4.0", - "@material/typography": "15.0.0-canary.7f224ddd4.0", - "tslib": "^2.1.0" - } + "node_modules/@lmdb/lmdb-win32-x64": { + "version": "3.0.13", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-win32-x64/-/lmdb-win32-x64-3.0.13.tgz", + "integrity": "sha512-UCrMJQY/gJnOl3XgbWRZZUvGGBuKy6i0YNSptgMzHBjs+QYDYR1Mt/RLTOPy4fzzves65O1EDmlL//OzEqoLlA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] }, - "node_modules/@material/theme": { - "version": "15.0.0-canary.7f224ddd4.0", - "resolved": "https://registry.npmjs.org/@material/theme/-/theme-15.0.0-canary.7f224ddd4.0.tgz", - "integrity": "sha512-hs45hJoE9yVnoVOcsN1jklyOa51U4lzWsEnQEuJTPOk2+0HqCQ0yv/q0InpSnm2i69fNSyZC60+8HADZGF8ugQ==", - "dependencies": { - "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", - "tslib": "^2.1.0" - } + "node_modules/@msgpackr-extract/msgpackr-extract-darwin-arm64": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-darwin-arm64/-/msgpackr-extract-darwin-arm64-3.0.3.tgz", + "integrity": "sha512-QZHtlVgbAdy2zAqNA9Gu1UpIuI8Xvsd1v8ic6B2pZmeFnFcMWiPLfWXh7TVw4eGEZ/C9TH281KwhVoeQUKbyjw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] }, - "node_modules/@material/tokens": { - "version": "15.0.0-canary.7f224ddd4.0", - "resolved": "https://registry.npmjs.org/@material/tokens/-/tokens-15.0.0-canary.7f224ddd4.0.tgz", - "integrity": "sha512-r9TDoicmcT7FhUXC4eYMFnt9TZsz0G8T3wXvkKncLppYvZ517gPyD/1+yhuGfGOxAzxTrM66S/oEc1fFE2q4hw==", - "dependencies": { - "@material/elevation": "15.0.0-canary.7f224ddd4.0" - } + "node_modules/@msgpackr-extract/msgpackr-extract-darwin-x64": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-darwin-x64/-/msgpackr-extract-darwin-x64-3.0.3.tgz", + "integrity": "sha512-mdzd3AVzYKuUmiWOQ8GNhl64/IoFGol569zNRdkLReh6LRLHOXxU4U8eq0JwaD8iFHdVGqSy4IjFL4reoWCDFw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] }, - "node_modules/@material/tooltip": { - "version": "15.0.0-canary.7f224ddd4.0", - "resolved": "https://registry.npmjs.org/@material/tooltip/-/tooltip-15.0.0-canary.7f224ddd4.0.tgz", - "integrity": "sha512-8qNk3pmPLTnam3XYC1sZuplQXW9xLn4Z4MI3D+U17Q7pfNZfoOugGr+d2cLA9yWAEjVJYB0mj8Yu86+udo4N9w==", - "dependencies": { - "@material/animation": "15.0.0-canary.7f224ddd4.0", - "@material/base": "15.0.0-canary.7f224ddd4.0", - "@material/button": "15.0.0-canary.7f224ddd4.0", - "@material/dom": "15.0.0-canary.7f224ddd4.0", - "@material/elevation": "15.0.0-canary.7f224ddd4.0", - "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", - "@material/rtl": "15.0.0-canary.7f224ddd4.0", - "@material/shape": "15.0.0-canary.7f224ddd4.0", - "@material/theme": "15.0.0-canary.7f224ddd4.0", - "@material/tokens": "15.0.0-canary.7f224ddd4.0", - "@material/typography": "15.0.0-canary.7f224ddd4.0", - "safevalues": "^0.3.4", - "tslib": "^2.1.0" - } + "node_modules/@msgpackr-extract/msgpackr-extract-linux-arm": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-arm/-/msgpackr-extract-linux-arm-3.0.3.tgz", + "integrity": "sha512-fg0uy/dG/nZEXfYilKoRe7yALaNmHoYeIoJuJ7KJ+YyU2bvY8vPv27f7UKhGRpY6euFYqEVhxCFZgAUNQBM3nw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/@material/top-app-bar": { - "version": "15.0.0-canary.7f224ddd4.0", - "resolved": "https://registry.npmjs.org/@material/top-app-bar/-/top-app-bar-15.0.0-canary.7f224ddd4.0.tgz", - "integrity": "sha512-SARR5/ClYT4CLe9qAXakbr0i0cMY0V3V4pe3ElIJPfL2Z2c4wGR1mTR8m2LxU1MfGKK8aRoUdtfKaxWejp+eNA==", - "dependencies": { - "@material/animation": "15.0.0-canary.7f224ddd4.0", - "@material/base": "15.0.0-canary.7f224ddd4.0", - "@material/elevation": "15.0.0-canary.7f224ddd4.0", - "@material/ripple": "15.0.0-canary.7f224ddd4.0", - "@material/rtl": "15.0.0-canary.7f224ddd4.0", - "@material/shape": "15.0.0-canary.7f224ddd4.0", - "@material/theme": "15.0.0-canary.7f224ddd4.0", - "@material/typography": "15.0.0-canary.7f224ddd4.0", - "tslib": "^2.1.0" - } + "node_modules/@msgpackr-extract/msgpackr-extract-linux-arm64": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-arm64/-/msgpackr-extract-linux-arm64-3.0.3.tgz", + "integrity": "sha512-YxQL+ax0XqBJDZiKimS2XQaf+2wDGVa1enVRGzEvLLVFeqa5kx2bWbtcSXgsxjQB7nRqqIGFIcLteF/sHeVtQg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/@material/touch-target": { - "version": "15.0.0-canary.7f224ddd4.0", - "resolved": "https://registry.npmjs.org/@material/touch-target/-/touch-target-15.0.0-canary.7f224ddd4.0.tgz", - "integrity": "sha512-BJo/wFKHPYLGsRaIpd7vsQwKr02LtO2e89Psv0on/p0OephlNIgeB9dD9W+bQmaeZsZ6liKSKRl6wJWDiK71PA==", - "dependencies": { - "@material/base": "15.0.0-canary.7f224ddd4.0", - "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", - "@material/rtl": "15.0.0-canary.7f224ddd4.0", - "@material/theme": "15.0.0-canary.7f224ddd4.0", - "tslib": "^2.1.0" - } + "node_modules/@msgpackr-extract/msgpackr-extract-linux-x64": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-x64/-/msgpackr-extract-linux-x64-3.0.3.tgz", + "integrity": "sha512-cvwNfbP07pKUfq1uH+S6KJ7dT9K8WOE4ZiAcsrSes+UY55E/0jLYc+vq+DO7jlmqRb5zAggExKm0H7O/CBaesg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/@material/typography": { - "version": "15.0.0-canary.7f224ddd4.0", - "resolved": "https://registry.npmjs.org/@material/typography/-/typography-15.0.0-canary.7f224ddd4.0.tgz", - "integrity": "sha512-kBaZeCGD50iq1DeRRH5OM5Jl7Gdk+/NOfKArkY4ksBZvJiStJ7ACAhpvb8MEGm4s3jvDInQFLsDq3hL+SA79sQ==", - "dependencies": { - "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", - "@material/theme": "15.0.0-canary.7f224ddd4.0", - "tslib": "^2.1.0" - } + "node_modules/@msgpackr-extract/msgpackr-extract-win32-x64": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-win32-x64/-/msgpackr-extract-win32-x64-3.0.3.tgz", + "integrity": "sha512-x0fWaQtYp4E6sktbsdAqnehxDgEc/VwM7uLsRCYWaiGu0ykYdZPiS8zCWdnjHwyiumousxfBm4SO31eXqwEZhQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] }, "node_modules/@ngneat/until-destroy": { "version": "10.0.0", @@ -3957,18 +4020,19 @@ } }, "node_modules/@ngtools/webpack": { - "version": "17.3.6", - "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-17.3.6.tgz", - "integrity": "sha512-equxbgh2DKzZtiFMoVf1KD4yJcH1q8lpqQ/GSPPQUvONcmHrr+yqdRUdaJ7oZCyCYmXF/nByBxtMKtJr6nKZVg==", + "version": "18.2.4", + "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-18.2.4.tgz", + "integrity": "sha512-JVDRexu3q7lg2oqJG36RtX7cqTheoZRwg2HhMV8hYXUDL0fyOrv2galwTCgXrx7vAjlx45L2uR2kuWbgW0VVcQ==", "dev": true, + "license": "MIT", "engines": { - "node": "^18.13.0 || >=20.9.0", + "node": "^18.19.1 || ^20.11.1 || >=22.0.0", "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", "yarn": ">= 1.13.0" }, "peerDependencies": { - "@angular/compiler-cli": "^17.0.0", - "typescript": ">=5.2 <5.5", + "@angular/compiler-cli": "^18.0.0", + "typescript": ">=5.4 <5.6", "webpack": "^5.54.0" } }, @@ -3977,6 +4041,7 @@ "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", "dev": true, + "license": "MIT", "dependencies": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" @@ -3990,6 +4055,7 @@ "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", "dev": true, + "license": "MIT", "engines": { "node": ">= 8" } @@ -3999,6 +4065,7 @@ "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", "dev": true, + "license": "MIT", "dependencies": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" @@ -4012,6 +4079,7 @@ "resolved": "https://registry.npmjs.org/@npmcli/agent/-/agent-2.2.2.tgz", "integrity": "sha512-OrcNPXdpSl9UX7qPVRWbmWMCSXrcDa2M9DvrbOTj7ao1S4PlqVFYv9/yLKMkrJKZ/V5A/kDBC690or307i26Og==", "dev": true, + "license": "ISC", "dependencies": { "agent-base": "^7.1.0", "http-proxy-agent": "^7.0.0", @@ -4024,19 +4092,18 @@ } }, "node_modules/@npmcli/agent/node_modules/lru-cache": { - "version": "10.2.2", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz", - "integrity": "sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==", + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", "dev": true, - "engines": { - "node": "14 || >=16.14" - } + "license": "ISC" }, "node_modules/@npmcli/fs": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-3.1.0.tgz", - "integrity": "sha512-7kZUAaLscfgbwBQRbvdMYaZOWyMEcPTH/tJjnyAWJ/dvvs9Ef+CERx/qJb9GExJpl1qipaDGn7KqHnFGGixd0w==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-3.1.1.tgz", + "integrity": "sha512-q9CRWjpHCMIh5sVyefoD1cA7PkvILqCZsnSOEUUivORLjxCO/Irmue2DprETiNgEqktDBZaM1Bi+jrarx1XdCg==", "dev": true, + "license": "ISC", "dependencies": { "semver": "^7.3.5" }, @@ -4045,12 +4112,14 @@ } }, "node_modules/@npmcli/git": { - "version": "5.0.6", - "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-5.0.6.tgz", - "integrity": "sha512-4x/182sKXmQkf0EtXxT26GEsaOATpD7WVtza5hrYivWZeo6QefC6xq9KAXrnjtFKBZ4rZwR7aX/zClYYXgtwLw==", + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-5.0.8.tgz", + "integrity": "sha512-liASfw5cqhjNW9UFd+ruwwdEf/lbOAQjLL2XY2dFW/bkJheXDYZgOyul/4gVvEV4BWkTXjYGmDqMw9uegdbJNQ==", "dev": true, + "license": "ISC", "dependencies": { "@npmcli/promise-spawn": "^7.0.0", + "ini": "^4.1.3", "lru-cache": "^10.0.1", "npm-pick-manifest": "^9.0.0", "proc-log": "^4.0.0", @@ -4068,33 +4137,24 @@ "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", "dev": true, + "license": "ISC", "engines": { "node": ">=16" } }, "node_modules/@npmcli/git/node_modules/lru-cache": { - "version": "10.2.2", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz", - "integrity": "sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==", - "dev": true, - "engines": { - "node": "14 || >=16.14" - } - }, - "node_modules/@npmcli/git/node_modules/proc-log": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-4.2.0.tgz", - "integrity": "sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA==", + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", "dev": true, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } + "license": "ISC" }, "node_modules/@npmcli/git/node_modules/which": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", "dev": true, + "license": "ISC", "dependencies": { "isexe": "^3.1.1" }, @@ -4110,6 +4170,7 @@ "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-2.1.0.tgz", "integrity": "sha512-c8UuGLeZpm69BryRykLuKRyKFZYJsZSCT4aVY5ds4omyZqJ172ApzgfKJ5eV/r3HgLdUYgFVe54KSFVjKoe27w==", "dev": true, + "license": "ISC", "dependencies": { "npm-bundled": "^3.0.0", "npm-normalize-package-bin": "^3.0.0" @@ -4126,15 +4187,17 @@ "resolved": "https://registry.npmjs.org/@npmcli/node-gyp/-/node-gyp-3.0.0.tgz", "integrity": "sha512-gp8pRXC2oOxu0DUE1/M3bYtb1b3/DbJ5aM113+XJBgfXdussRAsX0YOrOhdd8WvnAR6auDBvJomGAkLKA5ydxA==", "dev": true, + "license": "ISC", "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/@npmcli/package-json": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@npmcli/package-json/-/package-json-5.1.0.tgz", - "integrity": "sha512-1aL4TuVrLS9sf8quCLerU3H9J4vtCtgu8VauYozrmEyU57i/EdKleCnsQ7vpnABIH6c9mnTxcH5sFkO3BlV8wQ==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@npmcli/package-json/-/package-json-5.2.0.tgz", + "integrity": "sha512-qe/kiqqkW0AGtvBjL8TJKZk/eBBSpnJkUWvHdQ9jM2lKHXRYYJuyNpJPlJw3c8QjC2ow6NZYiLExhUaeJelbxQ==", "dev": true, + "license": "ISC", "dependencies": { "@npmcli/git": "^5.0.0", "glob": "^10.2.2", @@ -4153,37 +4216,38 @@ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" } }, "node_modules/@npmcli/package-json/node_modules/glob": { - "version": "10.3.12", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.12.tgz", - "integrity": "sha512-TCNv8vJ+xz4QiqTpfOJA7HvYv+tNIRHKfUWw/q+v2jdgN4ebz+KY9tGx5J4rHP0o84mNP+ApH66HRX8us3Khqg==", + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", "dev": true, + "license": "ISC", "dependencies": { "foreground-child": "^3.1.0", - "jackspeak": "^2.3.6", - "minimatch": "^9.0.1", - "minipass": "^7.0.4", - "path-scurry": "^1.10.2" + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" }, "bin": { "glob": "dist/esm/bin.mjs" }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/@npmcli/package-json/node_modules/minimatch": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", - "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -4194,20 +4258,12 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@npmcli/package-json/node_modules/proc-log": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-4.2.0.tgz", - "integrity": "sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA==", - "dev": true, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, "node_modules/@npmcli/promise-spawn": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-7.0.1.tgz", - "integrity": "sha512-P4KkF9jX3y+7yFUxgcUdDtLy+t4OlDGuEBLNs57AZsfSfg+uV6MLndqGpnl4831ggaEdXwR50XFoZP4VFtHolg==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-7.0.2.tgz", + "integrity": "sha512-xhfYPXoV5Dy4UkY0D+v2KkwvnDfiA/8Mt3sWCGI/hM03NsYIH8ZaG6QzS9x7pje5vHZBZJ2v6VRFVTWACnqcmQ==", "dev": true, + "license": "ISC", "dependencies": { "which": "^4.0.0" }, @@ -4220,6 +4276,7 @@ "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", "dev": true, + "license": "ISC", "engines": { "node": ">=16" } @@ -4229,6 +4286,7 @@ "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", "dev": true, + "license": "ISC", "dependencies": { "isexe": "^3.1.1" }, @@ -4240,24 +4298,27 @@ } }, "node_modules/@npmcli/redact": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@npmcli/redact/-/redact-1.1.0.tgz", - "integrity": "sha512-PfnWuOkQgu7gCbnSsAisaX7hKOdZ4wSAhAzH3/ph5dSGau52kCRrMMGbiSQLwyTZpgldkZ49b0brkOr1AzGBHQ==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@npmcli/redact/-/redact-2.0.1.tgz", + "integrity": "sha512-YgsR5jCQZhVmTJvjduTOIHph0L73pK8xwMVaDY0PatySqVM9AZj93jpoXYSJqfHFxFkN9dmqTw6OiqExsS3LPw==", "dev": true, + "license": "ISC", "engines": { "node": "^16.14.0 || >=18.0.0" } }, "node_modules/@npmcli/run-script": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-7.0.4.tgz", - "integrity": "sha512-9ApYM/3+rBt9V80aYg6tZfzj3UWdiYyCt7gJUD1VJKvWF5nwKDSICXbYIQbspFTq6TOpbsEtIC0LArB8d9PFmg==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-8.1.0.tgz", + "integrity": "sha512-y7efHHwghQfk28G2z3tlZ67pLG0XdfYbcVG26r7YIXALRsrVQcTq4/tdenSmdOrEsNahIYA/eh8aEVROWGFUDg==", "dev": true, + "license": "ISC", "dependencies": { "@npmcli/node-gyp": "^3.0.0", "@npmcli/package-json": "^5.0.0", "@npmcli/promise-spawn": "^7.0.0", "node-gyp": "^10.0.0", + "proc-log": "^4.0.0", "which": "^4.0.0" }, "engines": { @@ -4269,6 +4330,7 @@ "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", "dev": true, + "license": "ISC", "engines": { "node": ">=16" } @@ -4278,6 +4340,7 @@ "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", "dev": true, + "license": "ISC", "dependencies": { "isexe": "^3.1.1" }, @@ -4293,6 +4356,7 @@ "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", "dev": true, + "license": "MIT", "optional": true, "engines": { "node": ">=14" @@ -4303,6 +4367,7 @@ "resolved": "https://registry.npmjs.org/@rollup/plugin-json/-/plugin-json-6.1.0.tgz", "integrity": "sha512-EGI2te5ENk1coGeADSIwZ7G2Q8CJS2sF120T7jLw4xFw9n7wIOXHo+kIYRAoVpJAN+kmqZSoO3Fp4JtoNF4ReA==", "dev": true, + "license": "MIT", "dependencies": { "@rollup/pluginutils": "^5.1.0" }, @@ -4323,6 +4388,7 @@ "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.2.3.tgz", "integrity": "sha512-j/lym8nf5E21LwBT4Df1VD6hRO2L2iwUeUmP7litikRsVp1H6NWx20NEp0Y7su+7XGc476GnXXc4kFeZNGmaSQ==", "dev": true, + "license": "MIT", "dependencies": { "@rollup/pluginutils": "^5.0.1", "@types/resolve": "1.20.2", @@ -4348,6 +4414,7 @@ "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.0.tgz", "integrity": "sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==", "dev": true, + "license": "MIT", "dependencies": { "@types/estree": "^1.0.0", "estree-walker": "^2.0.2", @@ -4370,6 +4437,7 @@ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true, + "license": "MIT", "engines": { "node": ">=8.6" }, @@ -4378,218 +4446,235 @@ } }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.17.2.tgz", - "integrity": "sha512-NM0jFxY8bB8QLkoKxIQeObCaDlJKewVlIEkuyYKm5An1tdVZ966w2+MPQ2l8LBZLjR+SgyV+nRkTIunzOYBMLQ==", + "version": "4.20.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.20.0.tgz", + "integrity": "sha512-TSpWzflCc4VGAUJZlPpgAJE1+V60MePDQnBd7PPkpuEmOy8i87aL6tinFGKBFKuEDikYpig72QzdT3QPYIi+oA==", "cpu": [ "arm" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "android" ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.17.2.tgz", - "integrity": "sha512-yeX/Usk7daNIVwkq2uGoq2BYJKZY1JfyLTaHO/jaiSwi/lsf8fTFoQW/n6IdAsx5tx+iotu2zCJwz8MxI6D/Bw==", + "version": "4.20.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.20.0.tgz", + "integrity": "sha512-u00Ro/nok7oGzVuh/FMYfNoGqxU5CPWz1mxV85S2w9LxHR8OoMQBuSk+3BKVIDYgkpeOET5yXkx90OYFc+ytpQ==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "android" ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.17.2.tgz", - "integrity": "sha512-kcMLpE6uCwls023+kknm71ug7MZOrtXo+y5p/tsg6jltpDtgQY1Eq5sGfHcQfb+lfuKwhBmEURDga9N0ol4YPw==", + "version": "4.20.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.20.0.tgz", + "integrity": "sha512-uFVfvzvsdGtlSLuL0ZlvPJvl6ZmrH4CBwLGEFPe7hUmf7htGAN+aXo43R/V6LATyxlKVC/m6UsLb7jbG+LG39Q==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "darwin" ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.17.2.tgz", - "integrity": "sha512-AtKwD0VEx0zWkL0ZjixEkp5tbNLzX+FCqGG1SvOu993HnSz4qDI6S4kGzubrEJAljpVkhRSlg5bzpV//E6ysTQ==", + "version": "4.20.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.20.0.tgz", + "integrity": "sha512-xbrMDdlev53vNXexEa6l0LffojxhqDTBeL+VUxuuIXys4x6xyvbKq5XqTXBCEUA8ty8iEJblHvFaWRJTk/icAQ==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "darwin" ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.17.2.tgz", - "integrity": "sha512-3reX2fUHqN7sffBNqmEyMQVj/CKhIHZd4y631duy0hZqI8Qoqf6lTtmAKvJFYa6bhU95B1D0WgzHkmTg33In0A==", + "version": "4.20.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.20.0.tgz", + "integrity": "sha512-jMYvxZwGmoHFBTbr12Xc6wOdc2xA5tF5F2q6t7Rcfab68TT0n+r7dgawD4qhPEvasDsVpQi+MgDzj2faOLsZjA==", "cpu": [ "arm" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.17.2.tgz", - "integrity": "sha512-uSqpsp91mheRgw96xtyAGP9FW5ChctTFEoXP0r5FAzj/3ZRv3Uxjtc7taRQSaQM/q85KEKjKsZuiZM3GyUivRg==", + "version": "4.20.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.20.0.tgz", + "integrity": "sha512-1asSTl4HKuIHIB1GcdFHNNZhxAYEdqML/MW4QmPS4G0ivbEcBr1JKlFLKsIRqjSwOBkdItn3/ZDlyvZ/N6KPlw==", "cpu": [ "arm" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.17.2.tgz", - "integrity": "sha512-EMMPHkiCRtE8Wdk3Qhtciq6BndLtstqZIroHiiGzB3C5LDJmIZcSzVtLRbwuXuUft1Cnv+9fxuDtDxz3k3EW2A==", + "version": "4.20.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.20.0.tgz", + "integrity": "sha512-COBb8Bkx56KldOYJfMf6wKeYJrtJ9vEgBRAOkfw6Ens0tnmzPqvlpjZiLgkhg6cA3DGzCmLmmd319pmHvKWWlQ==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.17.2.tgz", - "integrity": "sha512-NMPylUUZ1i0z/xJUIx6VUhISZDRT+uTWpBcjdv0/zkp7b/bQDF+NfnfdzuTiB1G6HTodgoFa93hp0O1xl+/UbA==", + "version": "4.20.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.20.0.tgz", + "integrity": "sha512-+it+mBSyMslVQa8wSPvBx53fYuZK/oLTu5RJoXogjk6x7Q7sz1GNRsXWjn6SwyJm8E/oMjNVwPhmNdIjwP135Q==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.17.2.tgz", - "integrity": "sha512-T19My13y8uYXPw/L/k0JYaX1fJKFT/PWdXiHr8mTbXWxjVF1t+8Xl31DgBBvEKclw+1b00Chg0hxE2O7bTG7GQ==", + "version": "4.20.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.20.0.tgz", + "integrity": "sha512-yAMvqhPfGKsAxHN8I4+jE0CpLWD8cv4z7CK7BMmhjDuz606Q2tFKkWRY8bHR9JQXYcoLfopo5TTqzxgPUjUMfw==", "cpu": [ "ppc64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.17.2.tgz", - "integrity": "sha512-BOaNfthf3X3fOWAB+IJ9kxTgPmMqPPH5f5k2DcCsRrBIbWnaJCgX2ll77dV1TdSy9SaXTR5iDXRL8n7AnoP5cg==", + "version": "4.20.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.20.0.tgz", + "integrity": "sha512-qmuxFpfmi/2SUkAw95TtNq/w/I7Gpjurx609OOOV7U4vhvUhBcftcmXwl3rqAek+ADBwSjIC4IVNLiszoj3dPA==", "cpu": [ "riscv64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.17.2.tgz", - "integrity": "sha512-W0UP/x7bnn3xN2eYMql2T/+wpASLE5SjObXILTMPUBDB/Fg/FxC+gX4nvCfPBCbNhz51C+HcqQp2qQ4u25ok6g==", + "version": "4.20.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.20.0.tgz", + "integrity": "sha512-I0BtGXddHSHjV1mqTNkgUZLnS3WtsqebAXv11D5BZE/gfw5KoyXSAXVqyJximQXNvNzUo4GKlCK/dIwXlz+jlg==", "cpu": [ "s390x" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.17.2.tgz", - "integrity": "sha512-Hy7pLwByUOuyaFC6mAr7m+oMC+V7qyifzs/nW2OJfC8H4hbCzOX07Ov0VFk/zP3kBsELWNFi7rJtgbKYsav9QQ==", + "version": "4.20.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.20.0.tgz", + "integrity": "sha512-y+eoL2I3iphUg9tN9GB6ku1FA8kOfmF4oUEWhztDJ4KXJy1agk/9+pejOuZkNFhRwHAOxMsBPLbXPd6mJiCwew==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.17.2.tgz", - "integrity": "sha512-h1+yTWeYbRdAyJ/jMiVw0l6fOOm/0D1vNLui9iPuqgRGnXA0u21gAqOyB5iHjlM9MMfNOm9RHCQ7zLIzT0x11Q==", + "version": "4.20.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.20.0.tgz", + "integrity": "sha512-hM3nhW40kBNYUkZb/r9k2FKK+/MnKglX7UYd4ZUy5DJs8/sMsIbqWK2piZtVGE3kcXVNj3B2IrUYROJMMCikNg==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.17.2.tgz", - "integrity": "sha512-tmdtXMfKAjy5+IQsVtDiCfqbynAQE/TQRpWdVataHmhMb9DCoJxp9vLcCBjEQWMiUYxO1QprH/HbY9ragCEFLA==", + "version": "4.20.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.20.0.tgz", + "integrity": "sha512-psegMvP+Ik/Bg7QRJbv8w8PAytPA7Uo8fpFjXyCRHWm6Nt42L+JtoqH8eDQ5hRP7/XW2UiIriy1Z46jf0Oa1kA==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.17.2.tgz", - "integrity": "sha512-7II/QCSTAHuE5vdZaQEwJq2ZACkBpQDOmQsE6D6XUbnBHW8IAhm4eTufL6msLJorzrHDFv3CF8oCA/hSIRuZeQ==", + "version": "4.20.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.20.0.tgz", + "integrity": "sha512-GabekH3w4lgAJpVxkk7hUzUf2hICSQO0a/BLFA11/RMxQT92MabKAqyubzDZmMOC/hcJNlc+rrypzNzYl4Dx7A==", "cpu": [ "ia32" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.17.2.tgz", - "integrity": "sha512-TGGO7v7qOq4CYmSBVEYpI1Y5xDuCEnbVC5Vth8mOsW0gDSzxNrVERPc790IGHsrT2dQSimgMr9Ub3Y1Jci5/8w==", + "version": "4.20.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.20.0.tgz", + "integrity": "sha512-aJ1EJSuTdGnM6qbVC4B5DSmozPTqIag9fSzXRNNo+humQLG89XpPgdt16Ia56ORD7s+H8Pmyx44uczDQ0yDzpg==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" ] }, "node_modules/@rollup/wasm-node": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/wasm-node/-/wasm-node-4.17.2.tgz", - "integrity": "sha512-4F6C3XaUn02XY/GJMQTXncWrLyCkRHdRZe4OyWuQUprWKmU2u+esISOtCYdr3Bp9AqCIo/X3So2Ik7N9dNDwow==", + "version": "4.21.3", + "resolved": "https://registry.npmjs.org/@rollup/wasm-node/-/wasm-node-4.21.3.tgz", + "integrity": "sha512-uZFl4GXMgyllfuKjY/zlXxTxDs+G/LB7snVENskpJt7IIXw6cD1yqi3eBeGM8NxE9kuxrNB0Qr1QLNtDYTlqeQ==", "dev": true, + "license": "MIT", "dependencies": { "@types/estree": "1.0.5" }, @@ -4605,36 +4690,38 @@ } }, "node_modules/@schematics/angular": { - "version": "17.3.6", - "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-17.3.6.tgz", - "integrity": "sha512-jCNZdjHSVrI8TrrCnCoXC8GYvQRj7zh+SDdmm91Ve8dbikYNmBOKYLuPaCTsmojWx7ytv962yLlgKzpaa2bbfw==", + "version": "18.2.4", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-18.2.4.tgz", + "integrity": "sha512-GxrPv4eOPrjMKoAVhch9eprW8H/DFhBy5Zgp7CgGui9NprYkkubxw/yyo11WfR5CFZ/q5AfsjV76dPCkhLwLmA==", "dev": true, + "license": "MIT", "dependencies": { - "@angular-devkit/core": "17.3.6", - "@angular-devkit/schematics": "17.3.6", - "jsonc-parser": "3.2.1" + "@angular-devkit/core": "18.2.4", + "@angular-devkit/schematics": "18.2.4", + "jsonc-parser": "3.3.1" }, "engines": { - "node": "^18.13.0 || >=20.9.0", + "node": "^18.19.1 || ^20.11.1 || >=22.0.0", "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", "yarn": ">= 1.13.0" } }, "node_modules/@schematics/angular/node_modules/@angular-devkit/core": { - "version": "17.3.6", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-17.3.6.tgz", - "integrity": "sha512-FVbkT9dEwHEvjnxr4mvMNSMg2bCFoGoP4X68xXU9dhLEUpC05opLvfbaR3Qh543eCJ5AstosBFVzB/krfIkOvA==", + "version": "18.2.4", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-18.2.4.tgz", + "integrity": "sha512-svlgZ0vbLrfNJAQE5WePAutcYIyA7C0OfzKSTMsfV2X1I+1blYDaZIu/ocnHqofMHu6ZqdSaaU/p/rieqU8fcA==", "dev": true, + "license": "MIT", "dependencies": { - "ajv": "8.12.0", - "ajv-formats": "2.1.1", - "jsonc-parser": "3.2.1", - "picomatch": "4.0.1", + "ajv": "8.17.1", + "ajv-formats": "3.0.1", + "jsonc-parser": "3.3.1", + "picomatch": "4.0.2", "rxjs": "7.8.1", "source-map": "0.7.4" }, "engines": { - "node": "^18.13.0 || >=20.9.0", + "node": "^18.19.1 || ^20.11.1 || >=22.0.0", "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", "yarn": ">= 1.13.0" }, @@ -4648,30 +4735,67 @@ } }, "node_modules/@schematics/angular/node_modules/@angular-devkit/schematics": { - "version": "17.3.6", - "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-17.3.6.tgz", - "integrity": "sha512-2G1YuPInd8znG7uUgKOS7z72Aku50lTzB/2csWkWPJLAFkh7vKC8QZ40x8S1nC9npVYPhI5CRLX/HVpBh9CyxA==", + "version": "18.2.4", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-18.2.4.tgz", + "integrity": "sha512-s2WdUhyLlKj5kOjb6vrvJg9/31KvgyRJGjy7PnzS43tpwF9MLuM3AYhuJsXHPhx+i0nyWn/Jnd8ZLjMzXljSxg==", "dev": true, + "license": "MIT", "dependencies": { - "@angular-devkit/core": "17.3.6", - "jsonc-parser": "3.2.1", - "magic-string": "0.30.8", + "@angular-devkit/core": "18.2.4", + "jsonc-parser": "3.3.1", + "magic-string": "0.30.11", "ora": "5.4.1", "rxjs": "7.8.1" }, "engines": { - "node": "^18.13.0 || >=20.9.0", + "node": "^18.19.1 || ^20.11.1 || >=22.0.0", "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", "yarn": ">= 1.13.0" } }, + "node_modules/@schematics/angular/node_modules/ajv": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/@schematics/angular/node_modules/ajv-formats": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-3.0.1.tgz", + "integrity": "sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, "node_modules/@sigstore/bundle": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@sigstore/bundle/-/bundle-2.3.1.tgz", - "integrity": "sha512-eqV17lO3EIFqCWK3969Rz+J8MYrRZKw9IBHpSo6DEcEX2c+uzDFOgHE9f2MnyDpfs48LFO4hXmk9KhQ74JzU1g==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/@sigstore/bundle/-/bundle-2.3.2.tgz", + "integrity": "sha512-wueKWDk70QixNLB363yHc2D2ItTgYiMTdPwK8D9dKQMR3ZQ0c35IxP5xnwQ8cNLoCgCRcHf14kE+CLIvNX1zmA==", "dev": true, + "license": "Apache-2.0", "dependencies": { - "@sigstore/protobuf-specs": "^0.3.1" + "@sigstore/protobuf-specs": "^0.3.2" }, "engines": { "node": "^16.14.0 || >=18.0.0" @@ -4682,61 +4806,81 @@ "resolved": "https://registry.npmjs.org/@sigstore/core/-/core-1.1.0.tgz", "integrity": "sha512-JzBqdVIyqm2FRQCulY6nbQzMpJJpSiJ8XXWMhtOX9eKgaXXpfNOF53lzQEjIydlStnd/eFtuC1dW4VYdD93oRg==", "dev": true, + "license": "Apache-2.0", "engines": { "node": "^16.14.0 || >=18.0.0" } }, "node_modules/@sigstore/protobuf-specs": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@sigstore/protobuf-specs/-/protobuf-specs-0.3.1.tgz", - "integrity": "sha512-aIL8Z9NsMr3C64jyQzE0XlkEyBLpgEJJFDHLVVStkFV5Q3Il/r/YtY6NJWKQ4cy4AE7spP1IX5Jq7VCAxHHMfQ==", + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@sigstore/protobuf-specs/-/protobuf-specs-0.3.2.tgz", + "integrity": "sha512-c6B0ehIWxMI8wiS/bj6rHMPqeFvngFV7cDU/MY+B16P9Z3Mp9k8L93eYZ7BYzSickzuqAQqAq0V956b3Ju6mLw==", "dev": true, + "license": "Apache-2.0", "engines": { "node": "^16.14.0 || >=18.0.0" } }, "node_modules/@sigstore/sign": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@sigstore/sign/-/sign-2.3.0.tgz", - "integrity": "sha512-tsAyV6FC3R3pHmKS880IXcDJuiFJiKITO1jxR1qbplcsBkZLBmjrEw5GbC7ikD6f5RU1hr7WnmxB/2kKc1qUWQ==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/@sigstore/sign/-/sign-2.3.2.tgz", + "integrity": "sha512-5Vz5dPVuunIIvC5vBb0APwo7qKA4G9yM48kPWJT+OEERs40md5GoUR1yedwpekWZ4m0Hhw44m6zU+ObsON+iDA==", "dev": true, + "license": "Apache-2.0", "dependencies": { - "@sigstore/bundle": "^2.3.0", + "@sigstore/bundle": "^2.3.2", "@sigstore/core": "^1.0.0", - "@sigstore/protobuf-specs": "^0.3.1", - "make-fetch-happen": "^13.0.0" + "@sigstore/protobuf-specs": "^0.3.2", + "make-fetch-happen": "^13.0.1", + "proc-log": "^4.2.0", + "promise-retry": "^2.0.1" }, "engines": { "node": "^16.14.0 || >=18.0.0" } }, "node_modules/@sigstore/tuf": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/@sigstore/tuf/-/tuf-2.3.2.tgz", - "integrity": "sha512-mwbY1VrEGU4CO55t+Kl6I7WZzIl+ysSzEYdA1Nv/FTrl2bkeaPXo5PnWZAVfcY2zSdhOpsUTJW67/M2zHXGn5w==", + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/@sigstore/tuf/-/tuf-2.3.4.tgz", + "integrity": "sha512-44vtsveTPUpqhm9NCrbU8CWLe3Vck2HO1PNLw7RIajbB7xhtn5RBPm1VNSCMwqGYHhDsBJG8gDF0q4lgydsJvw==", "dev": true, + "license": "Apache-2.0", "dependencies": { - "@sigstore/protobuf-specs": "^0.3.0", - "tuf-js": "^2.2.0" + "@sigstore/protobuf-specs": "^0.3.2", + "tuf-js": "^2.2.1" }, "engines": { "node": "^16.14.0 || >=18.0.0" } }, "node_modules/@sigstore/verify": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@sigstore/verify/-/verify-1.2.0.tgz", - "integrity": "sha512-hQF60nc9yab+Csi4AyoAmilGNfpXT+EXdBgFkP9OgPwIBPwyqVf7JAWPtmqrrrneTmAT6ojv7OlH1f6Ix5BG4Q==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@sigstore/verify/-/verify-1.2.1.tgz", + "integrity": "sha512-8iKx79/F73DKbGfRf7+t4dqrc0bRr0thdPrxAtCKWRm/F0tG71i6O1rvlnScncJLLBZHn3h8M3c1BSUAb9yu8g==", "dev": true, + "license": "Apache-2.0", "dependencies": { - "@sigstore/bundle": "^2.3.1", + "@sigstore/bundle": "^2.3.2", "@sigstore/core": "^1.1.0", - "@sigstore/protobuf-specs": "^0.3.1" + "@sigstore/protobuf-specs": "^0.3.2" }, "engines": { "node": "^16.14.0 || >=18.0.0" } }, + "node_modules/@sindresorhus/merge-streams": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-2.3.0.tgz", + "integrity": "sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/@socket.io/component-emitter": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.2.tgz", @@ -4748,18 +4892,20 @@ "resolved": "https://registry.npmjs.org/@tufjs/canonical-json/-/canonical-json-2.0.0.tgz", "integrity": "sha512-yVtV8zsdo8qFHe+/3kw81dSLyF7D576A5cCFCi4X7B39tWT7SekaEFUnvnWJHz+9qO7qJTah1JbrDjWKqFtdWA==", "dev": true, + "license": "MIT", "engines": { "node": "^16.14.0 || >=18.0.0" } }, "node_modules/@tufjs/models": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@tufjs/models/-/models-2.0.0.tgz", - "integrity": "sha512-c8nj8BaOExmZKO2DXhDfegyhSGcG9E/mPN3U13L+/PsoWm1uaGiHHjxqSHQiasDBQwDA3aHuw9+9spYAP1qvvg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@tufjs/models/-/models-2.0.1.tgz", + "integrity": "sha512-92F7/SFyufn4DXsha9+QfKnN03JGqtMFMXgSHbZOo8JG59WkTni7UzAouNQDf7AuP9OAMxVOPQcqG3sB7w+kkg==", "dev": true, + "license": "MIT", "dependencies": { "@tufjs/canonical-json": "2.0.0", - "minimatch": "^9.0.3" + "minimatch": "^9.0.4" }, "engines": { "node": "^16.14.0 || >=18.0.0" @@ -4770,15 +4916,17 @@ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" } }, "node_modules/@tufjs/models/node_modules/minimatch": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", - "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -4794,6 +4942,7 @@ "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz", "integrity": "sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==", "dev": true, + "license": "MIT", "dependencies": { "@types/connect": "*", "@types/node": "*" @@ -4804,6 +4953,7 @@ "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.13.tgz", "integrity": "sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==", "dev": true, + "license": "MIT", "dependencies": { "@types/node": "*" } @@ -4813,6 +4963,7 @@ "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", "dev": true, + "license": "MIT", "dependencies": { "@types/node": "*" } @@ -4822,6 +4973,7 @@ "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.4.tgz", "integrity": "sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==", "dev": true, + "license": "MIT", "dependencies": { "@types/express-serve-static-core": "*", "@types/node": "*" @@ -4856,26 +5008,6 @@ "@types/cytoscape": "*" } }, - "node_modules/@types/eslint": { - "version": "8.56.10", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.10.tgz", - "integrity": "sha512-Shavhk87gCtY2fhXDctcfS3e6FdxWkCx1iUZ9eEUbh7rTqlZT0/IzOkCOVt0fCjcFuZ9FPYfuezTBImfHCDBGQ==", - "dev": true, - "dependencies": { - "@types/estree": "*", - "@types/json-schema": "*" - } - }, - "node_modules/@types/eslint-scope": { - "version": "3.7.7", - "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", - "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", - "dev": true, - "dependencies": { - "@types/eslint": "*", - "@types/estree": "*" - } - }, "node_modules/@types/estree": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", @@ -4887,6 +5019,7 @@ "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz", "integrity": "sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==", "dev": true, + "license": "MIT", "dependencies": { "@types/body-parser": "*", "@types/express-serve-static-core": "^4.17.33", @@ -4895,10 +5028,11 @@ } }, "node_modules/@types/express-serve-static-core": { - "version": "4.19.0", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.0.tgz", - "integrity": "sha512-bGyep3JqPCRry1wq+O5n7oiBgGWmeIJXPjXXCo8EK0u8duZGSYar7cGqd3ML2JUsLGeB7fmc06KYo9fLGWqPvQ==", + "version": "4.19.5", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.5.tgz", + "integrity": "sha512-y6W03tvrACO72aijJ5uF02FRq5cgDR9lUxddQ8vyF+GvmjJQqbzDcJngEjURc+ZsG31VI3hODNZJ2URj86pzmg==", "dev": true, + "license": "MIT", "dependencies": { "@types/node": "*", "@types/qs": "*", @@ -4910,13 +5044,15 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz", "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/http-proxy": { - "version": "1.17.14", - "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.14.tgz", - "integrity": "sha512-SSrD0c1OQzlFX7pGu1eXxSEjemej64aaNPRhhVYUGqXh0BtldAAx37MG8btcumvpgKyZp1F5Gn3JkktdxiFv6w==", + "version": "1.17.15", + "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.15.tgz", + "integrity": "sha512-25g5atgiVNTIv0LBDTg1H74Hvayx0ajtJPLLcYE3whFv75J0pWNtOBzaXJQgDTmrX1bx5U9YC2w/n65BN1HwRQ==", "dev": true, + "license": "MIT", "dependencies": { "@types/node": "*" } @@ -4943,15 +5079,27 @@ "version": "1.3.5", "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==", - "dev": true + "dev": true, + "license": "MIT" + }, + "node_modules/@types/mute-stream": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/@types/mute-stream/-/mute-stream-0.0.4.tgz", + "integrity": "sha512-CPM9nzrCPPJHQNA9keH9CVkVI+WR5kMa+7XEs5jcGQ0VoAGnLv242w8lIVgwAEfmE4oufJRaTc9PNLQl0ioAow==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } }, "node_modules/@types/node": { - "version": "20.12.8", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.8.tgz", - "integrity": "sha512-NU0rJLJnshZWdE/097cdCBbyW1h4hEg0xpovcoAQYHl8dnEyp/NAOiE45pvc+Bd1Dt+2r94v2eGFpQJ4R7g+2w==", + "version": "22.5.4", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.5.4.tgz", + "integrity": "sha512-FDuKUJQm/ju9fT/SeX/6+gBzoPzlVCzfzmGkwKvRHQVxi4BntVbyIwf6a4Xn62mrvndLiml6z/UBXIdEVjQLXg==", "dev": true, + "license": "MIT", "dependencies": { - "undici-types": "~5.26.4" + "undici-types": "~6.19.2" } }, "node_modules/@types/node-forge": { @@ -4959,6 +5107,7 @@ "resolved": "https://registry.npmjs.org/@types/node-forge/-/node-forge-1.3.11.tgz", "integrity": "sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==", "dev": true, + "license": "MIT", "dependencies": { "@types/node": "*" } @@ -4967,31 +5116,36 @@ "version": "6.9.15", "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.15.tgz", "integrity": "sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/range-parser": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/resolve": { "version": "1.20.2", "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.20.2.tgz", "integrity": "sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", - "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==", - "dev": true + "version": "0.12.2", + "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.2.tgz", + "integrity": "sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow==", + "dev": true, + "license": "MIT" }, "node_modules/@types/send": { "version": "0.17.4", "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz", "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==", "dev": true, + "license": "MIT", "dependencies": { "@types/mime": "^1", "@types/node": "*" @@ -5002,6 +5156,7 @@ "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.4.tgz", "integrity": "sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==", "dev": true, + "license": "MIT", "dependencies": { "@types/express": "*" } @@ -5011,6 +5166,7 @@ "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.7.tgz", "integrity": "sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==", "dev": true, + "license": "MIT", "dependencies": { "@types/http-errors": "*", "@types/node": "*", @@ -5022,15 +5178,24 @@ "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.36.tgz", "integrity": "sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==", "dev": true, + "license": "MIT", "dependencies": { "@types/node": "*" } }, + "node_modules/@types/wrap-ansi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/wrap-ansi/-/wrap-ansi-3.0.0.tgz", + "integrity": "sha512-ltIpx+kM7g/MLRZfkbL7EsCEjfzCcScLpkg37eXEtx5kmrAKBkTJwd1GIAjDSL8wTpM6Hzn5YO4pSb91BEwu1g==", + "dev": true, + "license": "MIT" + }, "node_modules/@types/ws": { - "version": "8.5.10", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.10.tgz", - "integrity": "sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==", + "version": "8.5.12", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.12.tgz", + "integrity": "sha512-3tPRkv1EtkDpzlgyKyI8pGsGZAGPEaXeu0DOj5DI25Ja91bdAYddYHbADRYVrZMRbfW+1l5YwXVDKohDJNQxkQ==", "dev": true, + "license": "MIT", "dependencies": { "@types/node": "*" } @@ -5216,6 +5381,7 @@ "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-2.0.0.tgz", "integrity": "sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==", "dev": true, + "license": "ISC", "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } @@ -5245,11 +5411,12 @@ "node": ">=0.4.0" } }, - "node_modules/acorn-import-assertions": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz", - "integrity": "sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==", + "node_modules/acorn-import-attributes": { + "version": "1.9.5", + "resolved": "https://registry.npmjs.org/acorn-import-attributes/-/acorn-import-attributes-1.9.5.tgz", + "integrity": "sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==", "dev": true, + "license": "MIT", "peerDependencies": { "acorn": "^8" } @@ -5286,6 +5453,7 @@ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", "dev": true, + "license": "MIT", "dependencies": { "debug": "^4.3.4" }, @@ -5298,6 +5466,7 @@ "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", "dev": true, + "license": "MIT", "dependencies": { "clean-stack": "^2.0.0", "indent-string": "^4.0.0" @@ -5427,6 +5596,7 @@ "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", "dev": true, + "license": "MIT", "dependencies": { "type-fest": "^0.21.3" }, @@ -5445,6 +5615,7 @@ "engines": [ "node >= 0.8.0" ], + "license": "Apache-2.0", "bin": { "ansi-html": "bin/ansi-html" } @@ -5495,15 +5666,6 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, "node_modules/array-buffer-byte-length": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", @@ -5524,7 +5686,8 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/array-union": { "version": "1.0.2", @@ -5588,9 +5751,9 @@ } }, "node_modules/autoprefixer": { - "version": "10.4.18", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.18.tgz", - "integrity": "sha512-1DKbDfsr6KUElM6wg+0zRNkB/Q7WcKYAaK+pzXn+Xqmszm/5Xa9coeNdtP88Vi+dPzZnMjhge8GIV49ZQkDa+g==", + "version": "10.4.20", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.20.tgz", + "integrity": "sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==", "dev": true, "funding": [ { @@ -5606,12 +5769,13 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { - "browserslist": "^4.23.0", - "caniuse-lite": "^1.0.30001591", + "browserslist": "^4.23.3", + "caniuse-lite": "^1.0.30001646", "fraction.js": "^4.3.7", "normalize-range": "^0.1.2", - "picocolors": "^1.0.0", + "picocolors": "^1.0.1", "postcss-value-parser": "^4.2.0" }, "bin": { @@ -5656,27 +5820,12 @@ "webpack": ">=5" } }, - "node_modules/babel-plugin-istanbul": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", - "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-instrument": "^5.0.4", - "test-exclude": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/babel-plugin-polyfill-corejs2": { "version": "0.4.11", "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.11.tgz", "integrity": "sha512-sMEJ27L0gRHShOh5G54uAAPaiCOygY/5ratXuiyb2G46FmlSpc9eFCzYVyDiPxfNbwzA7mYahmjQc5q+CZQ09Q==", "dev": true, + "license": "MIT", "dependencies": { "@babel/compat-data": "^7.22.6", "@babel/helper-define-polyfill-provider": "^0.6.2", @@ -5691,62 +5840,33 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.9.0.tgz", - "integrity": "sha512-7nZPG1uzK2Ymhy/NbaOWTg3uibM2BmGASS4vHS4szRZAIR8R6GwA/xAujpdrXU5iyklrimWnLWU+BLF9suPTqg==", - "dev": true, - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.5.0", - "core-js-compat": "^3.34.0" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/babel-plugin-polyfill-corejs3/node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.5.0.tgz", - "integrity": "sha512-NovQquuQLAQ5HuyjCz7WQP9MjRj7dx++yspwiyUiGl9ZyadHRSql1HZh5ogRd8W8w6YM6EQ/NTB8rgjLt5W65Q==", + "version": "0.10.6", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.6.tgz", + "integrity": "sha512-b37+KR2i/khY5sKmWNVQAnitvquQbNdWy6lJdsr0kmquCKEEUgMKK4SboVM3HtfnZilfjr4MMQ7vY58FVWDtIA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-compilation-targets": "^7.22.6", - "@babel/helper-plugin-utils": "^7.22.5", - "debug": "^4.1.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2" + "@babel/helper-define-polyfill-provider": "^0.6.2", + "core-js-compat": "^3.38.0" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.5.tgz", - "integrity": "sha512-OJGYZlhLqBh2DDHeqAxWB1XIvr49CxiJ2gIt61/PU55CQK4Z58OzMqjDe1zwQdQk+rBYsRc+1rJmdajM3gimHg==", - "dev": true, - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.5.0" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/babel-plugin-polyfill-regenerator/node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.5.0.tgz", - "integrity": "sha512-NovQquuQLAQ5HuyjCz7WQP9MjRj7dx++yspwiyUiGl9ZyadHRSql1HZh5ogRd8W8w6YM6EQ/NTB8rgjLt5W65Q==", + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.2.tgz", + "integrity": "sha512-2R25rQZWP63nGwaAswvDazbPXfrM3HwVoBXK6HcqeKrSrL/JqcC/rDcf95l4r7LXLyxDXc8uQDa064GubtCABg==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-compilation-targets": "^7.22.6", - "@babel/helper-plugin-utils": "^7.22.5", - "debug": "^4.1.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2" + "@babel/helper-define-polyfill-provider": "^0.6.2" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" @@ -5791,7 +5911,8 @@ "version": "0.6.1", "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/big.js": { "version": "5.2.2", @@ -5826,10 +5947,11 @@ } }, "node_modules/body-parser": { - "version": "1.20.2", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", - "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", + "version": "1.20.3", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz", + "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==", "dev": true, + "license": "MIT", "dependencies": { "bytes": "3.1.2", "content-type": "~1.0.5", @@ -5839,7 +5961,7 @@ "http-errors": "2.0.0", "iconv-lite": "0.4.24", "on-finished": "2.4.1", - "qs": "6.11.0", + "qs": "6.13.0", "raw-body": "2.5.2", "type-is": "~1.6.18", "unpipe": "1.0.0" @@ -5869,6 +5991,7 @@ "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.2.1.tgz", "integrity": "sha512-oSzCS2zV14bh2kji6vNe7vrpJYCHGvcZnlffFQ1MEoX/WOeQ/teD8SYWKR942OI3INjq8OMNJlbPK5LLLUxFDw==", "dev": true, + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.3", "multicast-dns": "^7.2.5" @@ -5878,7 +6001,8 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/brace-expansion": { "version": "1.1.11", @@ -5891,21 +6015,22 @@ } }, "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", "dev": true, + "license": "MIT", "dependencies": { - "fill-range": "^7.0.1" + "fill-range": "^7.1.1" }, "engines": { "node": ">=8" } }, "node_modules/browserslist": { - "version": "4.23.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", - "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", + "version": "4.23.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.3.tgz", + "integrity": "sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA==", "dev": true, "funding": [ { @@ -5921,11 +6046,12 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { - "caniuse-lite": "^1.0.30001587", - "electron-to-chromium": "^1.4.668", - "node-releases": "^2.0.14", - "update-browserslist-db": "^1.0.13" + "caniuse-lite": "^1.0.30001646", + "electron-to-chromium": "^1.5.4", + "node-releases": "^2.0.18", + "update-browserslist-db": "^1.1.0" }, "bin": { "browserslist": "cli.js" @@ -5969,6 +6095,7 @@ "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" }, @@ -5976,13 +6103,20 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/builtins": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.1.0.tgz", - "integrity": "sha512-SW9lzGTLvWTP1AY8xeAMZimqDrIaSdLQUcVr9DMef51niJ022Ri87SwRRKYm4A6iHfkPaiVUu/Duw2Wc4J7kKg==", + "node_modules/bundle-name": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-4.1.0.tgz", + "integrity": "sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==", "dev": true, + "license": "MIT", "dependencies": { - "semver": "^7.0.0" + "run-applescript": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/bytes": { @@ -5995,10 +6129,11 @@ } }, "node_modules/cacache": { - "version": "18.0.2", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-18.0.2.tgz", - "integrity": "sha512-r3NU8h/P+4lVUHfeRw1dtgQYar3DZMm4/cm2bZgOvrFC/su7budSOeqh52VJIC4U4iG1WWwV6vRW0znqBvxNuw==", + "version": "18.0.4", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-18.0.4.tgz", + "integrity": "sha512-B+L5iIa9mgcjLbliir2th36yEwPftrzteHYujzsx3dFP/31GCHcIeS8f5MGd80odLOjaOvSpU3EEAmRQptkxLQ==", "dev": true, + "license": "ISC", "dependencies": { "@npmcli/fs": "^3.1.0", "fs-minipass": "^3.0.0", @@ -6022,46 +6157,45 @@ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" } }, "node_modules/cacache/node_modules/glob": { - "version": "10.3.12", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.12.tgz", - "integrity": "sha512-TCNv8vJ+xz4QiqTpfOJA7HvYv+tNIRHKfUWw/q+v2jdgN4ebz+KY9tGx5J4rHP0o84mNP+ApH66HRX8us3Khqg==", + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", "dev": true, + "license": "ISC", "dependencies": { "foreground-child": "^3.1.0", - "jackspeak": "^2.3.6", - "minimatch": "^9.0.1", - "minipass": "^7.0.4", - "path-scurry": "^1.10.2" + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" }, "bin": { "glob": "dist/esm/bin.mjs" }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/cacache/node_modules/lru-cache": { - "version": "10.2.2", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz", - "integrity": "sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==", + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", "dev": true, - "engines": { - "node": "14 || >=16.14" - } + "license": "ISC" }, "node_modules/cacache/node_modules/minimatch": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", - "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -6100,19 +6234,10 @@ "node": ">=6" } }, - "node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, "node_modules/caniuse-lite": { - "version": "1.0.30001615", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001615.tgz", - "integrity": "sha512-1IpazM5G3r38meiae0bHRnPhz+CBQ3ZLqbQMtrg+AsTPKAXgW38JNsXkyZ+v8waCsDmPq87lmfun5Q2AGysNEQ==", + "version": "1.0.30001660", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001660.tgz", + "integrity": "sha512-GacvNTTuATm26qC74pt+ad1fW15mlQ/zuTzzY1ZoIzECTP8HURDfF43kNxPgf7H1jmelCBQTTbBNxdSXOA7Bqg==", "dev": true, "funding": [ { @@ -6127,7 +6252,8 @@ "type": "github", "url": "https://github.com/sponsors/ai" } - ] + ], + "license": "CC-BY-4.0" }, "node_modules/chalk": { "version": "2.4.2", @@ -6147,7 +6273,8 @@ "version": "0.7.0", "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/chokidar": { "version": "3.6.0", @@ -6178,6 +6305,7 @@ "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", "dev": true, + "license": "ISC", "engines": { "node": ">=10" } @@ -6196,6 +6324,7 @@ "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } @@ -6224,11 +6353,83 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/cli-truncate": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-4.0.0.tgz", + "integrity": "sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==", + "dev": true, + "license": "MIT", + "dependencies": { + "slice-ansi": "^5.0.0", + "string-width": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-truncate/node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/cli-truncate/node_modules/emoji-regex": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.4.0.tgz", + "integrity": "sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==", + "dev": true, + "license": "MIT" + }, + "node_modules/cli-truncate/node_modules/string-width": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", + "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^10.3.0", + "get-east-asian-width": "^1.0.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-truncate/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, "node_modules/cli-width": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-4.1.0.tgz", "integrity": "sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==", "dev": true, + "license": "ISC", "engines": { "node": ">= 12" } @@ -6311,6 +6512,7 @@ "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", "dev": true, + "license": "MIT", "dependencies": { "is-plain-object": "^2.0.4", "kind-of": "^6.0.2", @@ -6339,7 +6541,8 @@ "version": "2.0.20", "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/commander": { "version": "2.20.3", @@ -6364,6 +6567,7 @@ "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", "dev": true, + "license": "MIT", "dependencies": { "mime-db": ">= 1.43.0 < 2" }, @@ -6376,6 +6580,7 @@ "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", "dev": true, + "license": "MIT", "dependencies": { "accepts": "~1.3.5", "bytes": "3.0.0", @@ -6394,6 +6599,7 @@ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8" } @@ -6403,6 +6609,7 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, + "license": "MIT", "dependencies": { "ms": "2.0.0" } @@ -6411,13 +6618,15 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/compression/node_modules/safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/concat-map": { "version": "0.0.1", @@ -6445,6 +6654,7 @@ "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz", "integrity": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.8" } @@ -6469,6 +6679,7 @@ "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", "dev": true, + "license": "MIT", "dependencies": { "safe-buffer": "5.2.1" }, @@ -6504,7 +6715,8 @@ "version": "1.0.6", "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/copy-anything": { "version": "2.0.6", @@ -6519,20 +6731,21 @@ } }, "node_modules/copy-webpack-plugin": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-11.0.0.tgz", - "integrity": "sha512-fX2MWpamkW0hZxMEg0+mYnA40LTosOSa5TqZ9GYIBzyJa9C3QUaMPSE2xAi/buNr8u89SfD9wHSQVBzrRa/SOQ==", + "version": "12.0.2", + "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-12.0.2.tgz", + "integrity": "sha512-SNwdBeHyII+rWvee/bTnAYyO8vfVdcSTud4EIb6jcZ8inLeWucJE0DnxXQBjlQ5zlteuuvooGQy3LIyGxhvlOA==", "dev": true, + "license": "MIT", "dependencies": { - "fast-glob": "^3.2.11", + "fast-glob": "^3.3.2", "glob-parent": "^6.0.1", - "globby": "^13.1.1", + "globby": "^14.0.0", "normalize-path": "^3.0.0", - "schema-utils": "^4.0.0", - "serialize-javascript": "^6.0.0" + "schema-utils": "^4.2.0", + "serialize-javascript": "^6.0.2" }, "engines": { - "node": ">= 14.15.0" + "node": ">= 18.12.0" }, "funding": { "type": "opencollective", @@ -6547,6 +6760,7 @@ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "dev": true, + "license": "ISC", "dependencies": { "is-glob": "^4.0.3" }, @@ -6555,12 +6769,13 @@ } }, "node_modules/core-js-compat": { - "version": "3.37.0", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.37.0.tgz", - "integrity": "sha512-vYq4L+T8aS5UuFg4UwDhc7YNRWVeVZwltad9C/jV3R2LgVOpS9BDr7l/WL6BN0dbV3k1XejPTHqqEzJgsa0frA==", + "version": "3.38.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.38.1.tgz", + "integrity": "sha512-JRH6gfXxGmrzF3tZ57lFx97YARxCXPaMzPo6jELZhv88pBH5VXpQ+y0znKGlFnzuaihqhLbefxSJxWJMPtfDzw==", "dev": true, + "license": "MIT", "dependencies": { - "browserslist": "^4.23.0" + "browserslist": "^4.23.3" }, "funding": { "type": "opencollective", @@ -6571,7 +6786,8 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/cors": { "version": "2.8.5", @@ -6639,10 +6855,11 @@ } }, "node_modules/critters": { - "version": "0.0.22", - "resolved": "https://registry.npmjs.org/critters/-/critters-0.0.22.tgz", - "integrity": "sha512-NU7DEcQZM2Dy8XTKFHxtdnIM/drE312j2T4PCVaSUcS0oBeyT/NImpRw/Ap0zOr/1SE7SgPK9tGPg1WK/sVakw==", + "version": "0.0.24", + "resolved": "https://registry.npmjs.org/critters/-/critters-0.0.24.tgz", + "integrity": "sha512-Oyqew0FGM0wYUSNqR0L6AteO5MpMoUU0rhKRieXeiKs+PmRTxiJMyaunYB2KF6fQ3dzChXKCpbFOEJx3OQ1v/Q==", "dev": true, + "license": "Apache-2.0", "dependencies": { "chalk": "^4.1.0", "css-select": "^5.1.0", @@ -6658,6 +6875,7 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -6673,6 +6891,7 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -6689,6 +6908,7 @@ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, + "license": "MIT", "dependencies": { "color-name": "~1.1.4" }, @@ -6700,13 +6920,15 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/critters/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -6716,6 +6938,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -6728,6 +6951,7 @@ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", "dev": true, + "license": "MIT", "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -6742,6 +6966,7 @@ "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, + "license": "ISC", "dependencies": { "isexe": "^2.0.0" }, @@ -6753,22 +6978,23 @@ } }, "node_modules/css-loader": { - "version": "6.10.0", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.10.0.tgz", - "integrity": "sha512-LTSA/jWbwdMlk+rhmElbDR2vbtQoTBPr7fkJE+mxrHj+7ru0hUmHafDRzWIjIHTwpitWVaqY2/UWGRca3yUgRw==", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-7.1.2.tgz", + "integrity": "sha512-6WvYYn7l/XEGN8Xu2vWFt9nVzrCn39vKyTEFf/ExEyoksJjjSZV/0/35XPlMbpnr6VGhZIUg5yJrL8tGfes/FA==", "dev": true, + "license": "MIT", "dependencies": { "icss-utils": "^5.1.0", "postcss": "^8.4.33", - "postcss-modules-extract-imports": "^3.0.0", - "postcss-modules-local-by-default": "^4.0.4", - "postcss-modules-scope": "^3.1.1", + "postcss-modules-extract-imports": "^3.1.0", + "postcss-modules-local-by-default": "^4.0.5", + "postcss-modules-scope": "^3.2.0", "postcss-modules-values": "^4.0.0", "postcss-value-parser": "^4.2.0", "semver": "^7.5.4" }, "engines": { - "node": ">= 12.13.0" + "node": ">= 18.12.0" }, "funding": { "type": "opencollective", @@ -6776,7 +7002,7 @@ }, "peerDependencies": { "@rspack/core": "0.x || 1.x", - "webpack": "^5.0.0" + "webpack": "^5.27.0" }, "peerDependenciesMeta": { "@rspack/core": { @@ -6792,6 +7018,7 @@ "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "boolbase": "^1.0.0", "css-what": "^6.1.0", @@ -6808,6 +7035,7 @@ "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">= 6" }, @@ -6820,6 +7048,7 @@ "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", "dev": true, + "license": "MIT", "bin": { "cssesc": "bin/cssesc" }, @@ -6945,15 +7174,47 @@ "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, + "node_modules/default-browser": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-5.2.1.tgz", + "integrity": "sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==", + "dev": true, + "license": "MIT", + "dependencies": { + "bundle-name": "^4.1.0", + "default-browser-id": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-browser-id": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-5.0.0.tgz", + "integrity": "sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/default-gateway": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "execa": "^5.0.0" }, @@ -6991,12 +7252,16 @@ } }, "node_modules/define-lazy-prop": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", - "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz", + "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==", "dev": true, + "license": "MIT", "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/define-properties": { @@ -7030,6 +7295,7 @@ "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-1.0.0.tgz", "integrity": "sha512-cW3gggJ28HZ/LExwxP2B++aiKxhJXMSIt9K48FOXQkm+vuG5gyatXnLsONRJdzO/7VfjDIiaOOa/bs4l464Lwg==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } @@ -7044,11 +7310,22 @@ "npm": "1.2.8000 || >= 1.4.16" } }, + "node_modules/detect-libc": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz", + "integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=8" + } + }, "node_modules/detect-node": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/di": { "version": "0.0.1", @@ -7056,23 +7333,12 @@ "integrity": "sha512-uJaamHkagcZtHPqCIHZxnFrXlunQXgBOsZSUOWwFw31QJCAbyTBoHMW75YOTur5ZNx8pIeAKgf6GWIgaqqiLhA==", "dev": true }, - "node_modules/dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, - "dependencies": { - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/dns-packet": { "version": "5.6.1", "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.6.1.tgz", "integrity": "sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==", "dev": true, + "license": "MIT", "dependencies": { "@leichtgewicht/ip-codec": "^2.0.1" }, @@ -7097,6 +7363,7 @@ "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", "dev": true, + "license": "MIT", "dependencies": { "domelementtype": "^2.3.0", "domhandler": "^5.0.2", @@ -7116,13 +7383,15 @@ "type": "github", "url": "https://github.com/sponsors/fb55" } - ] + ], + "license": "BSD-2-Clause" }, "node_modules/domhandler": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "domelementtype": "^2.3.0" }, @@ -7138,6 +7407,7 @@ "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "dom-serializer": "^2.0.0", "domelementtype": "^2.3.0", @@ -7151,7 +7421,8 @@ "version": "0.2.0", "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/ee-first": { "version": "1.1.1", @@ -7160,10 +7431,11 @@ "dev": true }, "node_modules/electron-to-chromium": { - "version": "1.4.754", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.754.tgz", - "integrity": "sha512-7Kr5jUdns5rL/M9wFFmMZAgFDuL2YOnanFH4OI4iFzUqyh3XOL7nAGbSlSMZdzKMIyyTpNSbqZsWG9odwLeKvA==", - "dev": true + "version": "1.5.22", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.22.tgz", + "integrity": "sha512-tKYm5YHPU1djz0O+CGJ+oJIvimtsCcwR2Z9w7Skh08lUdyzXY5djods3q+z2JkWdb7tCcmM//eVavSRAiaPRNg==", + "dev": true, + "license": "ISC" }, "node_modules/email-addresses": { "version": "3.1.0", @@ -7200,6 +7472,7 @@ "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", "dev": true, + "license": "MIT", "optional": true, "dependencies": { "iconv-lite": "^0.6.2" @@ -7210,6 +7483,7 @@ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", "dev": true, + "license": "MIT", "optional": true, "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" @@ -7249,10 +7523,11 @@ } }, "node_modules/enhanced-resolve": { - "version": "5.16.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.16.0.tgz", - "integrity": "sha512-O+QWCviPNSSLAD9Ucn8Awv+poAkqn3T1XY5/N7kR7rQO9yfSGWkYZDwpJ+iKF7B8rxaQKWngSqACpgzeapSyoA==", + "version": "5.17.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz", + "integrity": "sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==", "dev": true, + "license": "MIT", "dependencies": { "graceful-fs": "^4.2.4", "tapable": "^2.2.0" @@ -7288,11 +7563,25 @@ "node": ">=6" } }, + "node_modules/environment": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/environment/-/environment-1.1.0.tgz", + "integrity": "sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/err-code": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/errno": { "version": "0.1.8", @@ -7447,54 +7736,56 @@ } }, "node_modules/esbuild": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.20.1.tgz", - "integrity": "sha512-OJwEgrpWm/PCMsLVWXKqvcjme3bHNpOgN7Tb6cQnR5n0TPbQx1/Xrn7rqM+wn17bYeT6MGB5sn1Bh5YiGi70nA==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.23.0.tgz", + "integrity": "sha512-1lvV17H2bMYda/WaFb2jLPeHU3zml2k4/yagNMG8Q/YtfMjCwEUZa2eXXMgZTVSL5q1n4H7sQ0X6CdJDqqeCFA==", "dev": true, "hasInstallScript": true, - "optional": true, + "license": "MIT", "bin": { "esbuild": "bin/esbuild" }, "engines": { - "node": ">=12" + "node": ">=18" }, "optionalDependencies": { - "@esbuild/aix-ppc64": "0.20.1", - "@esbuild/android-arm": "0.20.1", - "@esbuild/android-arm64": "0.20.1", - "@esbuild/android-x64": "0.20.1", - "@esbuild/darwin-arm64": "0.20.1", - "@esbuild/darwin-x64": "0.20.1", - "@esbuild/freebsd-arm64": "0.20.1", - "@esbuild/freebsd-x64": "0.20.1", - "@esbuild/linux-arm": "0.20.1", - "@esbuild/linux-arm64": "0.20.1", - "@esbuild/linux-ia32": "0.20.1", - "@esbuild/linux-loong64": "0.20.1", - "@esbuild/linux-mips64el": "0.20.1", - "@esbuild/linux-ppc64": "0.20.1", - "@esbuild/linux-riscv64": "0.20.1", - "@esbuild/linux-s390x": "0.20.1", - "@esbuild/linux-x64": "0.20.1", - "@esbuild/netbsd-x64": "0.20.1", - "@esbuild/openbsd-x64": "0.20.1", - "@esbuild/sunos-x64": "0.20.1", - "@esbuild/win32-arm64": "0.20.1", - "@esbuild/win32-ia32": "0.20.1", - "@esbuild/win32-x64": "0.20.1" + "@esbuild/aix-ppc64": "0.23.0", + "@esbuild/android-arm": "0.23.0", + "@esbuild/android-arm64": "0.23.0", + "@esbuild/android-x64": "0.23.0", + "@esbuild/darwin-arm64": "0.23.0", + "@esbuild/darwin-x64": "0.23.0", + "@esbuild/freebsd-arm64": "0.23.0", + "@esbuild/freebsd-x64": "0.23.0", + "@esbuild/linux-arm": "0.23.0", + "@esbuild/linux-arm64": "0.23.0", + "@esbuild/linux-ia32": "0.23.0", + "@esbuild/linux-loong64": "0.23.0", + "@esbuild/linux-mips64el": "0.23.0", + "@esbuild/linux-ppc64": "0.23.0", + "@esbuild/linux-riscv64": "0.23.0", + "@esbuild/linux-s390x": "0.23.0", + "@esbuild/linux-x64": "0.23.0", + "@esbuild/netbsd-x64": "0.23.0", + "@esbuild/openbsd-arm64": "0.23.0", + "@esbuild/openbsd-x64": "0.23.0", + "@esbuild/sunos-x64": "0.23.0", + "@esbuild/win32-arm64": "0.23.0", + "@esbuild/win32-ia32": "0.23.0", + "@esbuild/win32-x64": "0.23.0" } }, "node_modules/esbuild-wasm": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/esbuild-wasm/-/esbuild-wasm-0.20.1.tgz", - "integrity": "sha512-6v/WJubRsjxBbQdz6izgvx7LsVFvVaGmSdwrFHmEzoVgfXL89hkKPoQHsnVI2ngOkcBUQT9kmAM1hVL1k/Av4A==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/esbuild-wasm/-/esbuild-wasm-0.23.0.tgz", + "integrity": "sha512-6jP8UmWy6R6TUUV8bMuC3ZyZ6lZKI56x0tkxyCIqWwRRJ/DgeQKneh/Oid5EoGoPFLrGNkz47ZEtWAYuiY/u9g==", "dev": true, + "license": "MIT", "bin": { "esbuild": "bin/esbuild" }, "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/escalade": { @@ -7534,19 +7825,6 @@ "node": ">=8.0.0" } }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true, - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/esrecurse": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", @@ -7581,13 +7859,15 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/esutils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=0.10.0" } @@ -7597,6 +7877,7 @@ "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -7621,6 +7902,7 @@ "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", "dev": true, + "license": "MIT", "dependencies": { "cross-spawn": "^7.0.3", "get-stream": "^6.0.0", @@ -7643,40 +7925,42 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.1.tgz", "integrity": "sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==", - "dev": true + "dev": true, + "license": "Apache-2.0" }, "node_modules/express": { - "version": "4.19.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.19.2.tgz", - "integrity": "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==", + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/express/-/express-4.21.0.tgz", + "integrity": "sha512-VqcNGcj/Id5ZT1LZ/cfihi3ttTn+NJmkli2eZADigjq29qTlWi/hAQ43t/VLPq8+UX06FCEx3ByOYet6ZFblng==", "dev": true, + "license": "MIT", "dependencies": { "accepts": "~1.3.8", "array-flatten": "1.1.1", - "body-parser": "1.20.2", + "body-parser": "1.20.3", "content-disposition": "0.5.4", "content-type": "~1.0.4", "cookie": "0.6.0", "cookie-signature": "1.0.6", "debug": "2.6.9", "depd": "2.0.0", - "encodeurl": "~1.0.2", + "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "etag": "~1.8.1", - "finalhandler": "1.2.0", + "finalhandler": "1.3.1", "fresh": "0.5.2", "http-errors": "2.0.0", - "merge-descriptors": "1.0.1", + "merge-descriptors": "1.0.3", "methods": "~1.1.2", "on-finished": "2.4.1", "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", + "path-to-regexp": "0.1.10", "proxy-addr": "~2.0.7", - "qs": "6.11.0", + "qs": "6.13.0", "range-parser": "~1.2.1", "safe-buffer": "5.2.1", - "send": "0.18.0", - "serve-static": "1.15.0", + "send": "0.19.0", + "serve-static": "1.16.2", "setprototypeof": "1.2.0", "statuses": "2.0.1", "type-is": "~1.6.18", @@ -7692,6 +7976,7 @@ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -7701,18 +7986,30 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, + "license": "MIT", "dependencies": { "ms": "2.0.0" } }, + "node_modules/express/node_modules/encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, "node_modules/express/node_modules/finalhandler": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", - "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz", + "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==", "dev": true, + "license": "MIT", "dependencies": { "debug": "2.6.9", - "encodeurl": "~1.0.2", + "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "on-finished": "2.4.1", "parseurl": "~1.3.3", @@ -7727,13 +8024,15 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/express/node_modules/statuses": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8" } @@ -7749,6 +8048,7 @@ "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", "dev": true, + "license": "MIT", "dependencies": { "chardet": "^0.7.0", "iconv-lite": "^0.4.24", @@ -7769,6 +8069,7 @@ "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", "dev": true, + "license": "MIT", "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", @@ -7786,11 +8087,19 @@ "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", "dev": true }, + "node_modules/fast-uri": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.1.tgz", + "integrity": "sha512-MWipKbbYiYI0UC7cl8m/i/IWTqfC8YXsqjzybjddLsFjStroQzsHXkc73JutMvBiXmOvapk+axIl79ig5t55Bw==", + "dev": true, + "license": "MIT" + }, "node_modules/fastq": { "version": "1.17.1", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", "dev": true, + "license": "ISC", "dependencies": { "reusify": "^1.0.4" } @@ -7800,6 +8109,7 @@ "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", "dev": true, + "license": "Apache-2.0", "dependencies": { "websocket-driver": ">=0.5.1" }, @@ -7807,21 +8117,6 @@ "node": ">=0.8.0" } }, - "node_modules/figures": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", - "dev": true, - "dependencies": { - "escape-string-regexp": "^1.0.5" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/filename-reserved-regex": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz", @@ -7849,10 +8144,11 @@ } }, "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "dev": true, + "license": "MIT", "dependencies": { "to-regex-range": "^5.0.1" }, @@ -7939,6 +8235,7 @@ "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", "dev": true, + "license": "BSD-3-Clause", "bin": { "flat": "cli.js" } @@ -7979,10 +8276,11 @@ } }, "node_modules/foreground-child": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", - "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", + "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", "dev": true, + "license": "ISC", "dependencies": { "cross-spawn": "^7.0.0", "signal-exit": "^4.0.1" @@ -7999,6 +8297,7 @@ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", "dev": true, + "license": "ISC", "engines": { "node": ">=14" }, @@ -8011,6 +8310,7 @@ "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -8020,6 +8320,7 @@ "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", "dev": true, + "license": "MIT", "engines": { "node": "*" }, @@ -8033,6 +8334,7 @@ "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -8056,6 +8358,7 @@ "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.3.tgz", "integrity": "sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==", "dev": true, + "license": "ISC", "dependencies": { "minipass": "^7.0.3" }, @@ -8063,12 +8366,6 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/fs-monkey": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.6.tgz", - "integrity": "sha512-b1FMfwetIKymC0eioW7mTywihSQE4oLzQn1dB6rZB5fx/3NpNEdAWeCSMB+60/AeT0TCXsxzAlcYVEFCTAksWg==", - "dev": true - }, "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -8143,6 +8440,19 @@ "node": "6.* || 8.* || >= 10.*" } }, + "node_modules/get-east-asian-width": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.2.0.tgz", + "integrity": "sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/get-intrinsic": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", @@ -8162,20 +8472,12 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/get-package-type": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", - "dev": true, - "engines": { - "node": ">=8.0.0" - } - }, "node_modules/get-stream": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -8343,6 +8645,7 @@ "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } @@ -8364,19 +8667,21 @@ } }, "node_modules/globby": { - "version": "13.2.2", - "resolved": "https://registry.npmjs.org/globby/-/globby-13.2.2.tgz", - "integrity": "sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==", + "version": "14.0.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-14.0.2.tgz", + "integrity": "sha512-s3Fq41ZVh7vbbe2PN3nrW7yC7U7MFVc5c98/iTl9c2GawNMKx/J648KQRW6WKkuU8GIbbh2IXfIRQjOZnXcTnw==", "dev": true, + "license": "MIT", "dependencies": { - "dir-glob": "^3.0.1", - "fast-glob": "^3.3.0", + "@sindresorhus/merge-streams": "^2.1.0", + "fast-glob": "^3.3.2", "ignore": "^5.2.4", - "merge2": "^1.4.1", - "slash": "^4.0.0" + "path-type": "^5.0.0", + "slash": "^5.1.0", + "unicorn-magic": "^0.1.0" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -8404,7 +8709,8 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/has-bigints": { "version": "1.0.2", @@ -8488,10 +8794,11 @@ } }, "node_modules/hosted-git-info": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.1.tgz", - "integrity": "sha512-+K84LB1DYwMHoHSgaOY/Jfhw3ucPmSET5v98Ke/HdNSw4a0UktWzyW1mjhjpuxxTqOOsfWT/7iVshHmVZ4IpOA==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.2.tgz", + "integrity": "sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==", "dev": true, + "license": "ISC", "dependencies": { "lru-cache": "^10.0.1" }, @@ -8500,19 +8807,18 @@ } }, "node_modules/hosted-git-info/node_modules/lru-cache": { - "version": "10.2.2", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz", - "integrity": "sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==", + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", "dev": true, - "engines": { - "node": "14 || >=16.14" - } + "license": "ISC" }, "node_modules/hpack.js": { "version": "2.1.6", "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", "dev": true, + "license": "MIT", "dependencies": { "inherits": "^2.0.1", "obuf": "^1.0.0", @@ -8525,6 +8831,7 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, + "license": "MIT", "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -8539,13 +8846,15 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/hpack.js/node_modules/string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, + "license": "MIT", "dependencies": { "safe-buffer": "~5.1.0" } @@ -8564,7 +8873,8 @@ "type": "patreon", "url": "https://patreon.com/mdevils" } - ] + ], + "license": "MIT" }, "node_modules/html-escaper": { "version": "2.0.2", @@ -8584,6 +8894,7 @@ "url": "https://github.com/sponsors/fb55" } ], + "license": "MIT", "dependencies": { "domelementtype": "^2.3.0", "domhandler": "^5.0.3", @@ -8595,13 +8906,15 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", - "dev": true + "dev": true, + "license": "BSD-2-Clause" }, "node_modules/http-deceiver": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/http-errors": { "version": "2.0.0", @@ -8632,7 +8945,8 @@ "version": "0.5.8", "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz", "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/http-proxy": { "version": "1.18.1", @@ -8653,6 +8967,7 @@ "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", "dev": true, + "license": "MIT", "dependencies": { "agent-base": "^7.1.0", "debug": "^4.3.4" @@ -8662,34 +8977,29 @@ } }, "node_modules/http-proxy-middleware": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz", - "integrity": "sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-3.0.0.tgz", + "integrity": "sha512-36AV1fIaI2cWRzHo+rbcxhe3M3jUDCNzc4D5zRl57sEWRAxdXYtw7FSQKYY6PDKssiAKjLYypbssHk+xs/kMXw==", "dev": true, + "license": "MIT", "dependencies": { - "@types/http-proxy": "^1.17.8", + "@types/http-proxy": "^1.17.10", + "debug": "^4.3.4", "http-proxy": "^1.18.1", "is-glob": "^4.0.1", "is-plain-obj": "^3.0.0", - "micromatch": "^4.0.2" + "micromatch": "^4.0.5" }, "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "@types/express": "^4.17.13" - }, - "peerDependenciesMeta": { - "@types/express": { - "optional": true - } + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/https-proxy-agent": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.4.tgz", - "integrity": "sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==", + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz", + "integrity": "sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==", "dev": true, + "license": "MIT", "dependencies": { "agent-base": "^7.0.2", "debug": "4" @@ -8703,10 +9013,21 @@ "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=10.17.0" } }, + "node_modules/hyperdyperid": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/hyperdyperid/-/hyperdyperid-1.2.0.tgz", + "integrity": "sha512-Y93lCzHYgGWdrJ66yIktxiaGULYc6oGiABxhcO5AufBeOyoIdZF7bIfLaOrbM0iGIOXQQgxxRrFEnb+Y6w1n4A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.18" + } + }, "node_modules/iconv-lite": { "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", @@ -8724,6 +9045,7 @@ "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", "dev": true, + "license": "ISC", "engines": { "node": "^10 || ^12 || >= 14" }, @@ -8752,19 +9074,21 @@ ] }, "node_modules/ignore": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", - "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", "dev": true, + "license": "MIT", "engines": { "node": ">= 4" } }, "node_modules/ignore-walk": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-6.0.4.tgz", - "integrity": "sha512-t7sv42WkwFkyKbivUCglsQW5YWMskWtbEf4MNKX5u/CCWHKSPzN4FtBQGsQZgCLbxOzpVlcbWVK5KB3auIOjSw==", + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-6.0.5.tgz", + "integrity": "sha512-VuuG0wCnjhnylG1ABXT3dAuIpTNDs/G8jlpmwXY03fXoXy/8ZK8/T+hMzt8L4WnrLCJgdybqgPagnF/f97cg3A==", "dev": true, + "license": "ISC", "dependencies": { "minimatch": "^9.0.0" }, @@ -8777,15 +9101,17 @@ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" } }, "node_modules/ignore-walk/node_modules/minimatch": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", - "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -8845,6 +9171,7 @@ "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.8.19" } @@ -8854,6 +9181,7 @@ "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -8875,10 +9203,11 @@ "dev": true }, "node_modules/ini": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.2.tgz", - "integrity": "sha512-AMB1mvwR1pyBFY/nSevUX6y8nJWS63/SzUKD3JyQn97s4xgIdgQPT75IRouIiBAN4yLQBUShNYVW0+UG25daCw==", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.3.tgz", + "integrity": "sha512-X7rqawQBvfdjS10YU1y1YVreA3SsLrW9dX2CewP2EbBJM4ypVNLDkO5y04gejPwKIY9lR+7r9gn3rFPt/kmWFg==", "dev": true, + "license": "ISC", "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } @@ -8888,48 +9217,11 @@ "resolved": "https://registry.npmjs.org/injection-js/-/injection-js-2.4.0.tgz", "integrity": "sha512-6jiJt0tCAo9zjHbcwLiPL+IuNe9SQ6a9g0PEzafThW3fOQi0mrmiJGBJvDD6tmhPh8cQHIQtCOrJuBfQME4kPA==", "dev": true, + "license": "MIT", "dependencies": { "tslib": "^2.0.0" } }, - "node_modules/inquirer": { - "version": "9.2.15", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-9.2.15.tgz", - "integrity": "sha512-vI2w4zl/mDluHt9YEQ/543VTCwPKWiHzKtm9dM2V0NdFcqEexDAjUHzO1oA60HRNaVifGXXM1tRRNluLVHa0Kg==", - "dev": true, - "dependencies": { - "@ljharb/through": "^2.3.12", - "ansi-escapes": "^4.3.2", - "chalk": "^5.3.0", - "cli-cursor": "^3.1.0", - "cli-width": "^4.1.0", - "external-editor": "^3.1.0", - "figures": "^3.2.0", - "lodash": "^4.17.21", - "mute-stream": "1.0.0", - "ora": "^5.4.1", - "run-async": "^3.0.0", - "rxjs": "^7.8.1", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^6.2.0" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/inquirer/node_modules/chalk": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", - "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", - "dev": true, - "engines": { - "node": "^12.17.0 || ^14.13 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, "node_modules/internal-slot": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", @@ -8949,6 +9241,7 @@ "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-9.0.5.tgz", "integrity": "sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==", "dev": true, + "license": "MIT", "dependencies": { "jsbn": "1.1.0", "sprintf-js": "^1.1.3" @@ -8957,17 +9250,12 @@ "node": ">= 12" } }, - "node_modules/ip-address/node_modules/sprintf-js": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", - "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", - "dev": true - }, "node_modules/ipaddr.js": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.2.0.tgz", "integrity": "sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 10" } @@ -9039,6 +9327,7 @@ "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.1.tgz", "integrity": "sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==", "dev": true, + "license": "MIT", "dependencies": { "builtin-modules": "^3.3.0" }, @@ -9104,15 +9393,16 @@ } }, "node_modules/is-docker": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz", + "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==", "dev": true, + "license": "MIT", "bin": { "is-docker": "cli.js" }, "engines": { - "node": ">=8" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -9148,6 +9438,25 @@ "node": ">=0.10.0" } }, + "node_modules/is-inside-container": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz", + "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-docker": "^3.0.0" + }, + "bin": { + "is-inside-container": "cli.js" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/is-interactive": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", @@ -9161,13 +9470,15 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/is-module": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/is-negative-zero": { "version": "2.0.3", @@ -9181,11 +9492,25 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-network-error": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-network-error/-/is-network-error-1.1.0.tgz", + "integrity": "sha512-tUdRRAnhT+OtCZR/LxZelH/C7QtjtFrTu5tXCA8pl55eTUElUHT+GPYV8MBMBvea/j+NxQqVt3LbWMRir7Gx9g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.12.0" } @@ -9210,6 +9535,7 @@ "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -9222,6 +9548,7 @@ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "dev": true, + "license": "MIT", "dependencies": { "isobject": "^3.0.1" }, @@ -9265,6 +9592,7 @@ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" }, @@ -9348,22 +9676,27 @@ "dev": true }, "node_modules/is-wsl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-3.1.0.tgz", + "integrity": "sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==", "dev": true, + "license": "MIT", "dependencies": { - "is-docker": "^2.0.0" + "is-inside-container": "^1.0.0" }, "engines": { - "node": ">=8" + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/isbinaryfile": { "version": "4.0.10", @@ -9388,6 +9721,7 @@ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -9498,16 +9832,14 @@ } }, "node_modules/jackspeak": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", - "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", "dev": true, + "license": "BlueOak-1.0.0", "dependencies": { "@isaacs/cliui": "^8.0.2" }, - "engines": { - "node": ">=14" - }, "funding": { "url": "https://github.com/sponsors/isaacs" }, @@ -9572,32 +9904,22 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "dev": true, - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } + "license": "MIT" }, "node_modules/jsbn": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz", "integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/jsesc": { "version": "2.5.2", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", "dev": true, + "license": "MIT", "bin": { "jsesc": "bin/jsesc" }, @@ -9612,10 +9934,11 @@ "dev": true }, "node_modules/json-parse-even-better-errors": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.1.tgz", - "integrity": "sha512-aatBvbL26wVUCLmbWdCpeu9iF5wOyWpagiKkInA+kfws3sWdBrTnsvN2CKcyCYyUrc7rebNBlK6+kteg7ksecg==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.2.tgz", + "integrity": "sha512-fi0NG4bPjCHunUJffmLd0gxssIgkNmArMvis4iNah6Owg1MCJjWhEcDLmsK6iGkJq3tHwbDkTlce70/tmXN4cQ==", "dev": true, + "license": "MIT", "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } @@ -9639,10 +9962,11 @@ } }, "node_modules/jsonc-parser": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.1.tgz", - "integrity": "sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==", - "dev": true + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.3.1.tgz", + "integrity": "sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==", + "dev": true, + "license": "MIT" }, "node_modules/jsonfile": { "version": "4.0.0", @@ -9660,7 +9984,8 @@ "dev": true, "engines": [ "node >= 0.2.0" - ] + ], + "license": "MIT" }, "node_modules/karma": { "version": "6.4.3", @@ -9872,24 +10197,17 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, - "node_modules/klona": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.6.tgz", - "integrity": "sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, "node_modules/launch-editor": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.6.1.tgz", - "integrity": "sha512-eB/uXmFVpY4zezmGp5XtU21kwo7GBbKB+EQ+UZeWtGb9yAM5xt/Evk+lYH3eRNAtId+ej4u7TYPFZ07w4s7rRw==", + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.9.1.tgz", + "integrity": "sha512-Gcnl4Bd+hRO9P9icCP/RVVT2o8SFlPXofuCxvA2SaZuH45whSvf5p8x5oih5ftLiVhEI4sp5xDY+R+b3zJBh5w==", "dev": true, + "license": "MIT", "dependencies": { "picocolors": "^1.0.0", "shell-quote": "^1.8.1" @@ -9927,23 +10245,30 @@ } }, "node_modules/less-loader": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-11.1.0.tgz", - "integrity": "sha512-C+uDBV7kS7W5fJlUjq5mPBeBVhYpTIm5gB09APT9o3n/ILeaXVsiSFTbZpTJCJwQ/Crczfn3DmfQFwxYusWFug==", + "version": "12.2.0", + "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-12.2.0.tgz", + "integrity": "sha512-MYUxjSQSBUQmowc0l5nPieOYwMzGPUaTzB6inNW/bdPEG9zOL3eAAD1Qw5ZxSPk7we5dMojHwNODYMV1hq4EVg==", "dev": true, - "dependencies": { - "klona": "^2.0.4" - }, + "license": "MIT", "engines": { - "node": ">= 14.15.0" + "node": ">= 18.12.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/webpack" }, "peerDependencies": { + "@rspack/core": "0.x || 1.x", "less": "^3.5.0 || ^4.0.0", "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "@rspack/core": { + "optional": true + }, + "webpack": { + "optional": true + } } }, "node_modules/less/node_modules/make-dir": { @@ -10016,6 +10341,142 @@ "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", "dev": true }, + "node_modules/listr2": { + "version": "8.2.4", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-8.2.4.tgz", + "integrity": "sha512-opevsywziHd3zHCVQGAj8zu+Z3yHNkkoYhWIGnq54RrCVwLz0MozotJEDnKsIBLvkfLGN6BLOyAeRrYI0pKA4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "cli-truncate": "^4.0.0", + "colorette": "^2.0.20", + "eventemitter3": "^5.0.1", + "log-update": "^6.1.0", + "rfdc": "^1.4.1", + "wrap-ansi": "^9.0.0" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/listr2/node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/listr2/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/listr2/node_modules/emoji-regex": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.4.0.tgz", + "integrity": "sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==", + "dev": true, + "license": "MIT" + }, + "node_modules/listr2/node_modules/eventemitter3": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", + "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==", + "dev": true, + "license": "MIT" + }, + "node_modules/listr2/node_modules/string-width": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", + "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^10.3.0", + "get-east-asian-width": "^1.0.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/listr2/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/listr2/node_modules/wrap-ansi": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.0.tgz", + "integrity": "sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.2.1", + "string-width": "^7.0.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/lmdb": { + "version": "3.0.13", + "resolved": "https://registry.npmjs.org/lmdb/-/lmdb-3.0.13.tgz", + "integrity": "sha512-UGe+BbaSUQtAMZobTb4nHvFMrmvuAQKSeaqAX2meTEQjfsbpl5sxdHD8T72OnwD4GU9uwNhYXIVe4QGs8N9Zyw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "msgpackr": "^1.10.2", + "node-addon-api": "^6.1.0", + "node-gyp-build-optional-packages": "5.2.2", + "ordered-binary": "^1.4.1", + "weak-lru-cache": "^1.2.2" + }, + "bin": { + "download-lmdb-prebuilds": "bin/download-prebuilds.js" + }, + "optionalDependencies": { + "@lmdb/lmdb-darwin-arm64": "3.0.13", + "@lmdb/lmdb-darwin-x64": "3.0.13", + "@lmdb/lmdb-linux-arm": "3.0.13", + "@lmdb/lmdb-linux-arm64": "3.0.13", + "@lmdb/lmdb-linux-x64": "3.0.13", + "@lmdb/lmdb-win32-x64": "3.0.13" + } + }, "node_modules/load-json-file": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", @@ -10063,10 +10524,11 @@ } }, "node_modules/loader-utils": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.2.1.tgz", - "integrity": "sha512-ZvFw1KWS3GVyYBYb7qkmRM/WwL2TQQBxgCK62rlvm4WpVQ23Nb4tYjApUlfjrEGvOs7KHEsmyUn75OHZrJMWPw==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.3.1.tgz", + "integrity": "sha512-FMJTLMXfCLMLfJxcX9PFqX5qD88Z5MRGaZCVzfuqeZSPsyiBzs+pahDQjbIWz2QIzPZz0NX9Zy4FX3lmK6YHIg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 12.13.0" } @@ -10093,7 +10555,8 @@ "version": "4.0.8", "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/lodash.memoize": { "version": "4.1.2", @@ -10175,16 +10638,232 @@ "node": ">=8" } }, - "node_modules/log-symbols/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/log-symbols/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/log-update": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-6.1.0.tgz", + "integrity": "sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-escapes": "^7.0.0", + "cli-cursor": "^5.0.0", + "slice-ansi": "^7.1.0", + "strip-ansi": "^7.1.0", + "wrap-ansi": "^9.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-update/node_modules/ansi-escapes": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-7.0.0.tgz", + "integrity": "sha512-GdYO7a61mR0fOlAsvC9/rIHf7L96sBc6dEWzeOu+KAea5bZyQRPIpojrVoI4AXGJS/ycu/fBTdLrUkA4ODrvjw==", + "dev": true, + "license": "MIT", + "dependencies": { + "environment": "^1.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-update/node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/log-update/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/log-update/node_modules/cli-cursor": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-5.0.0.tgz", + "integrity": "sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==", + "dev": true, + "license": "MIT", + "dependencies": { + "restore-cursor": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-update/node_modules/emoji-regex": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.4.0.tgz", + "integrity": "sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==", + "dev": true, + "license": "MIT" + }, + "node_modules/log-update/node_modules/is-fullwidth-code-point": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-5.0.0.tgz", + "integrity": "sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-east-asian-width": "^1.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-update/node_modules/onetime": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-7.0.0.tgz", + "integrity": "sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-function": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-update/node_modules/restore-cursor": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-5.1.0.tgz", + "integrity": "sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==", + "dev": true, + "license": "MIT", + "dependencies": { + "onetime": "^7.0.0", + "signal-exit": "^4.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-update/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/log-update/node_modules/slice-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-7.1.0.tgz", + "integrity": "sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.2.1", + "is-fullwidth-code-point": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/log-update/node_modules/string-width": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", + "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^10.3.0", + "get-east-asian-width": "^1.0.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-update/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/log-update/node_modules/wrap-ansi": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.0.tgz", + "integrity": "sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==", "dev": true, + "license": "MIT", "dependencies": { - "has-flag": "^4.0.0" + "ansi-styles": "^6.2.1", + "string-width": "^7.0.0", + "strip-ansi": "^7.1.0" }, "engines": { - "node": ">=8" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, "node_modules/log4js": { @@ -10208,20 +10887,19 @@ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "dev": true, + "license": "ISC", "dependencies": { "yallist": "^3.0.2" } }, "node_modules/magic-string": { - "version": "0.30.8", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.8.tgz", - "integrity": "sha512-ISQTe55T2ao7XtlAStud6qwYPZjE4GK1S/BeVPus4jrq6JuOnQ00YKQC581RWhR122W7msZV263KzVeLoqidyQ==", + "version": "0.30.11", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.11.tgz", + "integrity": "sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A==", "dev": true, + "license": "MIT", "dependencies": { - "@jridgewell/sourcemap-codec": "^1.4.15" - }, - "engines": { - "node": ">=12" + "@jridgewell/sourcemap-codec": "^1.5.0" } }, "node_modules/make-dir": { @@ -10244,6 +10922,7 @@ "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-13.0.1.tgz", "integrity": "sha512-cKTUFc/rbKUd/9meOvgrpJ2WrNzymt6jfRDdwg5UCnVzv9dTpEj9JS5m3wtziXVCjluIXyL8pcaukYqezIzZQA==", "dev": true, + "license": "ISC", "dependencies": { "@npmcli/agent": "^2.0.0", "cacache": "^18.0.0", @@ -10262,15 +10941,6 @@ "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/make-fetch-happen/node_modules/proc-log": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-4.2.0.tgz", - "integrity": "sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA==", - "dev": true, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, "node_modules/media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", @@ -10281,15 +10951,23 @@ } }, "node_modules/memfs": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.5.3.tgz", - "integrity": "sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==", + "version": "4.11.1", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-4.11.1.tgz", + "integrity": "sha512-LZcMTBAgqUUKNXZagcZxvXXfgF1bHX7Y7nQ0QyEiNbRJgE29GhgPd8Yna1VQcLlPiHt/5RFJMWYN9Uv/VPNvjQ==", "dev": true, + "license": "Apache-2.0", "dependencies": { - "fs-monkey": "^1.0.4" + "@jsonjoy.com/json-pack": "^1.0.3", + "@jsonjoy.com/util": "^1.3.0", + "tree-dump": "^1.0.1", + "tslib": "^2.0.0" }, "engines": { "node": ">= 4.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" } }, "node_modules/memorystream": { @@ -10302,10 +10980,14 @@ } }, "node_modules/merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==", - "dev": true + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", + "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, "node_modules/merge-stream": { "version": "2.0.0", @@ -10318,6 +11000,7 @@ "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 8" } @@ -10327,17 +11010,19 @@ "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", "dev": true, + "license": "MIT", "dependencies": { - "braces": "^3.0.2", + "braces": "^3.0.3", "picomatch": "^2.3.1" }, "engines": { @@ -10349,6 +11034,7 @@ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true, + "license": "MIT", "engines": { "node": ">=8.6" }, @@ -10398,11 +11084,25 @@ "node": ">=6" } }, + "node_modules/mimic-function": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/mimic-function/-/mimic-function-5.0.1.tgz", + "integrity": "sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/mini-css-extract-plugin": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.8.1.tgz", - "integrity": "sha512-/1HDlyFRxWIZPI1ZpgqlZ8jMw/1Dp/dl3P0L1jtZ+zVcHqwPhGwaJwKL00WVgfnBy6PWCde9W65or7IIETImuA==", + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.9.0.tgz", + "integrity": "sha512-Zs1YsZVfemekSZG+44vBsYTLQORkPMwnlv+aehcxK/NLKC+EGhDB39/YePYYqx/sTk6NnYpuqikhSn7+JIevTA==", "dev": true, + "license": "MIT", "dependencies": { "schema-utils": "^4.0.0", "tapable": "^2.2.1" @@ -10422,7 +11122,8 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/minimatch": { "version": "3.1.2", @@ -10446,10 +11147,11 @@ } }, "node_modules/minipass": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", - "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", "dev": true, + "license": "ISC", "engines": { "node": ">=16 || 14 >=14.17" } @@ -10459,6 +11161,7 @@ "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-2.0.1.tgz", "integrity": "sha512-D7V8PO9oaz7PWGLbCACuI1qEOsq7UKfLotx/C0Aet43fCUB/wfQ7DYeq2oR/svFJGYDHPr38SHATeaj/ZoKHKw==", "dev": true, + "license": "ISC", "dependencies": { "minipass": "^7.0.3" }, @@ -10467,10 +11170,11 @@ } }, "node_modules/minipass-fetch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.4.tgz", - "integrity": "sha512-jHAqnA728uUpIaFm7NWsCnqKT6UqZz7GcI/bDpPATuwYyKwJwW0remxSCxUlKiEty+eopHGa3oc8WxgQ1FFJqg==", + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.5.tgz", + "integrity": "sha512-2N8elDQAtSnFV0Dk7gt15KHsS0Fyz6CbYZ360h0WTYV1Ty46li3rAXVOQj1THMNLdmrD9Vt5pBPtWtVkpwGBqg==", "dev": true, + "license": "MIT", "dependencies": { "minipass": "^7.0.3", "minipass-sized": "^1.0.3", @@ -10488,6 +11192,7 @@ "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", "dev": true, + "license": "ISC", "dependencies": { "minipass": "^3.0.0" }, @@ -10500,6 +11205,7 @@ "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", "dev": true, + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -10511,41 +11217,15 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/minipass-json-stream": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz", - "integrity": "sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==", - "dev": true, - "dependencies": { - "jsonparse": "^1.3.1", - "minipass": "^3.0.0" - } - }, - "node_modules/minipass-json-stream/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass-json-stream/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "license": "ISC" }, "node_modules/minipass-pipeline": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", "dev": true, + "license": "ISC", "dependencies": { "minipass": "^3.0.0" }, @@ -10558,6 +11238,7 @@ "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", "dev": true, + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -10569,13 +11250,15 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/minipass-sized": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", "dev": true, + "license": "ISC", "dependencies": { "minipass": "^3.0.0" }, @@ -10588,6 +11271,7 @@ "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", "dev": true, + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -10599,13 +11283,15 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/minizlib": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", "dev": true, + "license": "MIT", "dependencies": { "minipass": "^3.0.0", "yallist": "^4.0.0" @@ -10619,6 +11305,7 @@ "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", "dev": true, + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -10630,7 +11317,8 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/mkdirp": { "version": "0.5.6", @@ -10659,11 +11347,45 @@ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, + "node_modules/msgpackr": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/msgpackr/-/msgpackr-1.11.0.tgz", + "integrity": "sha512-I8qXuuALqJe5laEBYoFykChhSXLikZmUhccjGsPuSJ/7uPip2TJ7lwdIQwWSAi0jGZDXv4WOP8Qg65QZRuXxXw==", + "dev": true, + "license": "MIT", + "optionalDependencies": { + "msgpackr-extract": "^3.0.2" + } + }, + "node_modules/msgpackr-extract": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/msgpackr-extract/-/msgpackr-extract-3.0.3.tgz", + "integrity": "sha512-P0efT1C9jIdVRefqjzOQ9Xml57zpOXnIuS+csaB4MdZbTdmGDLo8XhzBG1N7aO11gKDDkJvBLULeFTo46wwreA==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "dependencies": { + "node-gyp-build-optional-packages": "5.2.2" + }, + "bin": { + "download-msgpackr-prebuilds": "bin/download-prebuilds.js" + }, + "optionalDependencies": { + "@msgpackr-extract/msgpackr-extract-darwin-arm64": "3.0.3", + "@msgpackr-extract/msgpackr-extract-darwin-x64": "3.0.3", + "@msgpackr-extract/msgpackr-extract-linux-arm": "3.0.3", + "@msgpackr-extract/msgpackr-extract-linux-arm64": "3.0.3", + "@msgpackr-extract/msgpackr-extract-linux-x64": "3.0.3", + "@msgpackr-extract/msgpackr-extract-win32-x64": "3.0.3" + } + }, "node_modules/multicast-dns": { "version": "7.2.5", "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz", "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==", "dev": true, + "license": "MIT", "dependencies": { "dns-packet": "^5.2.2", "thunky": "^1.0.2" @@ -10677,6 +11399,7 @@ "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-1.0.0.tgz", "integrity": "sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==", "dev": true, + "license": "ISC", "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } @@ -10752,14 +11475,15 @@ "dev": true }, "node_modules/ng-packagr": { - "version": "17.3.0", - "resolved": "https://registry.npmjs.org/ng-packagr/-/ng-packagr-17.3.0.tgz", - "integrity": "sha512-kMSqxeDgv88SWCoapWNRRN1UdBgwu9/Pw/j7u2WFGmzrIWUFivNWBBSSL94kMxr2La+Z9wMwiL8EwKNvmCpg2A==", + "version": "18.2.1", + "resolved": "https://registry.npmjs.org/ng-packagr/-/ng-packagr-18.2.1.tgz", + "integrity": "sha512-dy9ZDpZb3QpAz+Y/m8VAu7ctr2VrnRU3gmQwJagnNybVJtCsKn3lZA3IW7Z7GTLoG5IALSPouiCgiB/C8ozv7w==", "dev": true, + "license": "MIT", "dependencies": { - "@rollup/plugin-json": "^6.0.1", + "@rollup/plugin-json": "^6.1.0", "@rollup/plugin-node-resolve": "^15.2.3", - "@rollup/wasm-node": "^4.5.0", + "@rollup/wasm-node": "^4.18.0", "ajv": "^8.12.0", "ansi-colors": "^4.1.3", "browserslist": "^4.22.1", @@ -10768,7 +11492,7 @@ "commander": "^12.0.0", "convert-source-map": "^2.0.0", "dependency-graph": "^1.0.0", - "esbuild-wasm": "^0.20.0", + "esbuild": "^0.23.0", "fast-glob": "^3.3.1", "find-cache-dir": "^3.3.2", "injection-js": "^2.4.0", @@ -10784,17 +11508,16 @@ "ng-packagr": "cli/main.js" }, "engines": { - "node": "^18.13.0 || >=20.9.0" + "node": "^18.19.1 || >=20.11.1" }, "optionalDependencies": { - "esbuild": "^0.20.0", - "rollup": "^4.5.0" + "rollup": "^4.18.0" }, "peerDependencies": { - "@angular/compiler-cli": "^17.0.0 || ^17.2.0-next.0 || ^17.3.0-next.0", + "@angular/compiler-cli": "^18.0.0 || ^18.2.0-next.0", "tailwindcss": "^2.0.0 || ^3.0.0", "tslib": "^2.3.0", - "typescript": ">=5.2 <5.5" + "typescript": ">=5.4 <5.6" }, "peerDependenciesMeta": { "tailwindcss": { @@ -10803,10 +11526,11 @@ } }, "node_modules/ng-packagr/node_modules/commander": { - "version": "12.0.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-12.0.0.tgz", - "integrity": "sha512-MwVNWlYjDTtOjX5PiD7o5pK0UrFU/OYgcJfjjK4RaHZETNtjJqrZa9Y9ds88+A+f+d5lv+561eZ+yCKoS3gbAA==", + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz", + "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==", "dev": true, + "license": "MIT", "engines": { "node": ">=18" } @@ -10815,13 +11539,15 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/ng-packagr/node_modules/find-cache-dir": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", "dev": true, + "license": "MIT", "dependencies": { "commondir": "^1.0.1", "make-dir": "^3.0.2", @@ -10839,6 +11565,7 @@ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", "dev": true, + "license": "MIT", "dependencies": { "semver": "^6.0.0" }, @@ -10854,6 +11581,7 @@ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", "dev": true, + "license": "MIT", "dependencies": { "find-up": "^4.0.0" }, @@ -10866,6 +11594,7 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver.js" } @@ -10892,6 +11621,7 @@ "integrity": "sha512-px/KnJAJZf5RuBGcfD+Sp2pAKq0ytz8j+1NehvgIGFkvtvFrDM3T8E4x/JJODXK9WZow8RRGrbA9QQ3hs+pDhA==", "dev": true, "hasInstallScript": true, + "license": "MIT", "optional": true, "os": [ "!win32" @@ -10901,6 +11631,14 @@ "node-gyp-build": "^4.2.2" } }, + "node_modules/nice-napi/node_modules/node-addon-api": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.2.1.tgz", + "integrity": "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==", + "dev": true, + "license": "MIT", + "optional": true + }, "node_modules/nice-try": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", @@ -10915,26 +11653,28 @@ "optional": true }, "node_modules/node-addon-api": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.2.1.tgz", - "integrity": "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-6.1.0.tgz", + "integrity": "sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==", "dev": true, - "optional": true + "license": "MIT" }, "node_modules/node-forge": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", "dev": true, + "license": "(BSD-3-Clause OR GPL-2.0)", "engines": { "node": ">= 6.13.0" } }, "node_modules/node-gyp": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-10.1.0.tgz", - "integrity": "sha512-B4J5M1cABxPc5PwfjhbV5hoy2DP9p8lFXASnEN6hugXOa61416tnTZ29x9sSwAd0o99XNIcpvDDy1swAExsVKA==", + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-10.2.0.tgz", + "integrity": "sha512-sp3FonBAaFe4aYTcFdZUn2NYkbP7xroPGYvQmP4Nl5PxamznItBnNCgjrVTKrEfQynInMsJvZrdmqUnysCJ8rw==", "dev": true, + "license": "MIT", "dependencies": { "env-paths": "^2.2.0", "exponential-backoff": "^3.1.1", @@ -10942,9 +11682,9 @@ "graceful-fs": "^4.2.6", "make-fetch-happen": "^13.0.0", "nopt": "^7.0.0", - "proc-log": "^3.0.0", + "proc-log": "^4.1.0", "semver": "^7.3.5", - "tar": "^6.1.2", + "tar": "^6.2.1", "which": "^4.0.0" }, "bin": { @@ -10955,10 +11695,11 @@ } }, "node_modules/node-gyp-build": { - "version": "4.8.1", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.1.tgz", - "integrity": "sha512-OSs33Z9yWr148JZcbZd5WiAXhh/n9z8TxQcdMhIOlpN9AhWpLfvVFO73+m77bBABQMaY9XSvIa+qk0jlI7Gcaw==", + "version": "4.8.2", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.2.tgz", + "integrity": "sha512-IRUxE4BVsHWXkV/SFOut4qTlagw2aM8T5/vnTsmrHJvVoKueJHRc/JaFND7QDDc61kLYUJ6qlZM3sqTSyx2dTw==", "dev": true, + "license": "MIT", "optional": true, "bin": { "node-gyp-build": "bin.js", @@ -10966,33 +11707,48 @@ "node-gyp-build-test": "build-test.js" } }, + "node_modules/node-gyp-build-optional-packages": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.2.2.tgz", + "integrity": "sha512-s+w+rBWnpTMwSFbaE0UXsRlg7hU4FjekKU4eyAih5T8nJuNZT1nNsskXpxmeqSK9UzkBl6UgRlnKc8hz8IEqOw==", + "dev": true, + "license": "MIT", + "dependencies": { + "detect-libc": "^2.0.1" + }, + "bin": { + "node-gyp-build-optional-packages": "bin.js", + "node-gyp-build-optional-packages-optional": "optional.js", + "node-gyp-build-optional-packages-test": "build-test.js" + } + }, "node_modules/node-gyp/node_modules/brace-expansion": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" } }, "node_modules/node-gyp/node_modules/glob": { - "version": "10.3.12", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.12.tgz", - "integrity": "sha512-TCNv8vJ+xz4QiqTpfOJA7HvYv+tNIRHKfUWw/q+v2jdgN4ebz+KY9tGx5J4rHP0o84mNP+ApH66HRX8us3Khqg==", + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", "dev": true, + "license": "ISC", "dependencies": { "foreground-child": "^3.1.0", - "jackspeak": "^2.3.6", - "minimatch": "^9.0.1", - "minipass": "^7.0.4", - "path-scurry": "^1.10.2" + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" }, "bin": { "glob": "dist/esm/bin.mjs" }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, "funding": { "url": "https://github.com/sponsors/isaacs" } @@ -11002,15 +11758,17 @@ "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", "dev": true, + "license": "ISC", "engines": { "node": ">=16" } }, "node_modules/node-gyp/node_modules/minimatch": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", - "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -11026,6 +11784,7 @@ "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", "dev": true, + "license": "ISC", "dependencies": { "isexe": "^3.1.1" }, @@ -11037,16 +11796,18 @@ } }, "node_modules/node-releases": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", - "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", - "dev": true + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz", + "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==", + "dev": true, + "license": "MIT" }, "node_modules/nopt": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-7.2.0.tgz", - "integrity": "sha512-CVDtwCdhYIvnAzFoJ6NJ6dX3oga9/HyciQDnG1vQDjSLMeKLJ4A93ZqYKDrgYSr1FBY5/hMYC+2VCi24pgpkGA==", + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-7.2.1.tgz", + "integrity": "sha512-taM24ViiimT/XntxbPyJQzCG+p4EKOpgD3mxFwW38mGjVUrfERQOeY4EDHjdnptttfHuHQXFx+lTP08Q+mLa/w==", "dev": true, + "license": "ISC", "dependencies": { "abbrev": "^2.0.0" }, @@ -11058,13 +11819,13 @@ } }, "node_modules/normalize-package-data": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-6.0.0.tgz", - "integrity": "sha512-UL7ELRVxYBHBgYEtZCXjxuD5vPxnmvMGq0jp/dGPKKrN7tfsBh2IY7TlJ15WWwdjRWD3RJbnsygUurTK3xkPkg==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-6.0.2.tgz", + "integrity": "sha512-V6gygoYb/5EmNI+MEGrWkC+e6+Rr7mTmfHrxDbLzxQogBkgzo76rkok0Am6thgSF7Mv2nLOajAJj5vDJZEFn7g==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "hosted-git-info": "^7.0.0", - "is-core-module": "^2.8.1", "semver": "^7.3.5", "validate-npm-package-license": "^3.0.4" }, @@ -11086,15 +11847,17 @@ "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/npm-bundled": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-3.0.0.tgz", - "integrity": "sha512-Vq0eyEQy+elFpzsKjMss9kxqb9tG3YHg4dsyWuUENuzvSUWe1TCnW/vV9FkhvBk/brEDoDiVd+M1Btosa6ImdQ==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-3.0.1.tgz", + "integrity": "sha512-+AvaheE/ww1JEwRHOrn4WHNzOxGtVp+adrg2AeZS/7KuxGUYFuBta98wYpfHBbJp6Tg6j1NKSEVHNcfZzJHQwQ==", "dev": true, + "license": "ISC", "dependencies": { "npm-normalize-package-bin": "^3.0.0" }, @@ -11107,6 +11870,7 @@ "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-6.3.0.tgz", "integrity": "sha512-W29RiK/xtpCGqn6f3ixfRYGk+zRyr+Ew9F2E20BfXxT5/euLdA/Nm7fO7OeTGuAmTs30cpgInyJ0cYe708YTZw==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "semver": "^7.1.1" }, @@ -11119,18 +11883,20 @@ "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-3.0.1.tgz", "integrity": "sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==", "dev": true, + "license": "ISC", "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/npm-package-arg": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-11.0.1.tgz", - "integrity": "sha512-M7s1BD4NxdAvBKUPqqRW957Xwcl/4Zvo8Aj+ANrzvIPzGJZElrH7Z//rSaec2ORcND6FHHLnZeY8qgTpXDMFQQ==", + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-11.0.3.tgz", + "integrity": "sha512-sHGJy8sOC1YraBywpzQlIKBE4pBbGbiF95U6Auspzyem956E0+FtDtsx1ZxlOJkQCZ1AFXAY/yuvtFYrOxF+Bw==", "dev": true, + "license": "ISC", "dependencies": { "hosted-git-info": "^7.0.0", - "proc-log": "^3.0.0", + "proc-log": "^4.0.0", "semver": "^7.3.5", "validate-npm-package-name": "^5.0.0" }, @@ -11143,6 +11909,7 @@ "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-8.0.2.tgz", "integrity": "sha512-shYrPFIS/JLP4oQmAwDyk5HcyysKW8/JLTEA32S0Z5TzvpaeeX2yMFfoK1fjEBnCBvVyIB/Jj/GBFdm0wsgzbA==", "dev": true, + "license": "ISC", "dependencies": { "ignore-walk": "^6.0.4" }, @@ -11151,10 +11918,11 @@ } }, "node_modules/npm-pick-manifest": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-9.0.0.tgz", - "integrity": "sha512-VfvRSs/b6n9ol4Qb+bDwNGUXutpy76x6MARw/XssevE0TnctIKcmklJZM5Z7nqs5z5aW+0S63pgCNbpkUNNXBg==", + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-9.1.0.tgz", + "integrity": "sha512-nkc+3pIIhqHVQr085X9d2JzPzLyjzQS96zbruppqC9aZRm/x8xx6xhI98gHtsfELP2bE+loHq8ZaHFHhe+NauA==", "dev": true, + "license": "ISC", "dependencies": { "npm-install-checks": "^6.0.0", "npm-normalize-package-bin": "^3.0.0", @@ -11166,16 +11934,17 @@ } }, "node_modules/npm-registry-fetch": { - "version": "16.2.1", - "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-16.2.1.tgz", - "integrity": "sha512-8l+7jxhim55S85fjiDGJ1rZXBWGtRLi1OSb4Z3BPLObPuIaeKRlPRiYMSHU4/81ck3t71Z+UwDDl47gcpmfQQA==", + "version": "17.1.0", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-17.1.0.tgz", + "integrity": "sha512-5+bKQRH0J1xG1uZ1zMNvxW0VEyoNWgJpY9UDuluPFLKDfJ9u2JmmjmTJV1srBGQOROfdBMiVvnH2Zvpbm+xkVA==", "dev": true, + "license": "ISC", "dependencies": { - "@npmcli/redact": "^1.1.0", + "@npmcli/redact": "^2.0.0", + "jsonparse": "^1.3.1", "make-fetch-happen": "^13.0.0", "minipass": "^7.0.2", "minipass-fetch": "^3.0.0", - "minipass-json-stream": "^1.0.1", "minizlib": "^2.1.2", "npm-package-arg": "^11.0.0", "proc-log": "^4.0.0" @@ -11184,15 +11953,6 @@ "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/npm-registry-fetch/node_modules/proc-log": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-4.2.0.tgz", - "integrity": "sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA==", - "dev": true, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, "node_modules/npm-run-all": { "version": "4.1.5", "resolved": "https://registry.npmjs.org/npm-run-all/-/npm-run-all-4.1.5.tgz", @@ -11278,6 +12038,7 @@ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", "dev": true, + "license": "MIT", "dependencies": { "path-key": "^3.0.0" }, @@ -11290,6 +12051,7 @@ "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "boolbase": "^1.0.0" }, @@ -11346,7 +12108,8 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/on-finished": { "version": "2.4.1", @@ -11365,6 +12128,7 @@ "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8" } @@ -11394,17 +12158,19 @@ } }, "node_modules/open": { - "version": "8.4.2", - "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", - "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/open/-/open-10.1.0.tgz", + "integrity": "sha512-mnkeQ1qP5Ue2wd+aivTD3NHd/lZ96Lu0jgf0pwktLPtx6cTZiH7tyeGRRHs0zX0rbrahXPnXlUnbeXyaBBuIaw==", "dev": true, + "license": "MIT", "dependencies": { - "define-lazy-prop": "^2.0.0", - "is-docker": "^2.1.1", - "is-wsl": "^2.2.0" + "default-browser": "^5.2.1", + "define-lazy-prop": "^3.0.0", + "is-inside-container": "^1.0.0", + "is-wsl": "^3.1.0" }, "engines": { - "node": ">=12" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -11503,11 +12269,19 @@ "node": ">=8" } }, + "node_modules/ordered-binary": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/ordered-binary/-/ordered-binary-1.5.1.tgz", + "integrity": "sha512-5VyHfHY3cd0iza71JepYG50My+YUbrFtGoUz2ooEydPyPM7Aai/JW098juLr+RG6+rDJuzNNTsEQu2DZa1A41A==", + "dev": true, + "license": "MIT" + }, "node_modules/os-tmpdir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -11544,6 +12318,7 @@ "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", "dev": true, + "license": "MIT", "dependencies": { "aggregate-error": "^3.0.0" }, @@ -11555,16 +12330,21 @@ } }, "node_modules/p-retry": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz", - "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-6.2.0.tgz", + "integrity": "sha512-JA6nkq6hKyWLLasXQXUrO4z8BUZGUt/LjlJxx8Gb2+2ntodU/SS63YZ8b0LUTbQ8ZB9iwOfhEPhg4ykKnn2KsA==", "dev": true, + "license": "MIT", "dependencies": { - "@types/retry": "0.12.0", + "@types/retry": "0.12.2", + "is-network-error": "^1.0.0", "retry": "^0.13.1" }, "engines": { - "node": ">=8" + "node": ">=16.17" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/p-retry/node_modules/retry": { @@ -11572,6 +12352,7 @@ "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 4" } @@ -11585,33 +12366,40 @@ "node": ">=6" } }, + "node_modules/package-json-from-dist": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz", + "integrity": "sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==", + "dev": true, + "license": "BlueOak-1.0.0" + }, "node_modules/pacote": { - "version": "17.0.6", - "resolved": "https://registry.npmjs.org/pacote/-/pacote-17.0.6.tgz", - "integrity": "sha512-cJKrW21VRE8vVTRskJo78c/RCvwJCn1f4qgfxL4w77SOWrTCRcmfkYHlHtS0gqpgjv3zhXflRtgsrUCX5xwNnQ==", + "version": "18.0.6", + "resolved": "https://registry.npmjs.org/pacote/-/pacote-18.0.6.tgz", + "integrity": "sha512-+eK3G27SMwsB8kLIuj4h1FUhHtwiEUo21Tw8wNjmvdlpOEr613edv+8FUsTj/4F/VN5ywGE19X18N7CC2EJk6A==", "dev": true, + "license": "ISC", "dependencies": { "@npmcli/git": "^5.0.0", "@npmcli/installed-package-contents": "^2.0.1", + "@npmcli/package-json": "^5.1.0", "@npmcli/promise-spawn": "^7.0.0", - "@npmcli/run-script": "^7.0.0", + "@npmcli/run-script": "^8.0.0", "cacache": "^18.0.0", "fs-minipass": "^3.0.0", "minipass": "^7.0.2", "npm-package-arg": "^11.0.0", "npm-packlist": "^8.0.0", "npm-pick-manifest": "^9.0.0", - "npm-registry-fetch": "^16.0.0", - "proc-log": "^3.0.0", + "npm-registry-fetch": "^17.0.0", + "proc-log": "^4.0.0", "promise-retry": "^2.0.1", - "read-package-json": "^7.0.0", - "read-package-json-fast": "^3.0.0", "sigstore": "^2.2.0", "ssri": "^10.0.0", "tar": "^6.1.11" }, "bin": { - "pacote": "lib/bin.js" + "pacote": "bin/index.js" }, "engines": { "node": "^16.14.0 || >=18.0.0" @@ -11732,6 +12520,7 @@ "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -11743,56 +12532,62 @@ "dev": true }, "node_modules/path-scurry": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.2.tgz", - "integrity": "sha512-7xTavNy5RQXnsjANvVvMkEjvloOinkAjv/Z6Ildz9v2RinZ4SBKTWFOVRbaF8p0vpHnyjV/UwNDdKuUv6M5qcA==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", "dev": true, + "license": "BlueOak-1.0.0", "dependencies": { "lru-cache": "^10.2.0", "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": ">=16 || 14 >=14.18" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/path-scurry/node_modules/lru-cache": { - "version": "10.2.2", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz", - "integrity": "sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==", + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", "dev": true, - "engines": { - "node": "14 || >=16.14" - } + "license": "ISC" }, "node_modules/path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==", - "dev": true + "version": "0.1.10", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.10.tgz", + "integrity": "sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w==", + "dev": true, + "license": "MIT" }, "node_modules/path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-5.0.0.tgz", + "integrity": "sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==", "dev": true, + "license": "MIT", "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.0.tgz", + "integrity": "sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==", + "dev": true, + "license": "ISC" }, "node_modules/picomatch": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.1.tgz", - "integrity": "sha512-xUXwsxNjwTQ8K3GnT4pCJm+xq3RUPQbmkYJTP5aFIfNIvbcc/4MUxgBaaRSZJ6yGJZiGSyYlM6MzwTsRk8SYCg==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -11844,10 +12639,11 @@ } }, "node_modules/piscina": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/piscina/-/piscina-4.4.0.tgz", - "integrity": "sha512-+AQduEJefrOApE4bV7KRmp3N2JnnyErlVqq4P/jmko4FPz9Z877BCccl/iB3FdrWSUkvbGV9Kan/KllJgat3Vg==", + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/piscina/-/piscina-4.6.1.tgz", + "integrity": "sha512-z30AwWGtQE+Apr+2WBZensP2lIvwoaMcOPkQlIEmSGMJNUvaYACylPYrQM6wSdUNJlnDVMSpLv7xTMJqlVshOA==", "dev": true, + "license": "MIT", "optionalDependencies": { "nice-napi": "^1.0.2" } @@ -11947,9 +12743,9 @@ } }, "node_modules/postcss": { - "version": "8.4.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.35.tgz", - "integrity": "sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==", + "version": "8.4.41", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.41.tgz", + "integrity": "sha512-TesUflQ0WKZqAvg52PWL6kHgLKP6xB6heTOdoYM0Wt2UHyxNa4K25EZZMgKns3BH1RLVbZCREPpLY0rhnNoHVQ==", "dev": true, "funding": [ { @@ -11965,10 +12761,11 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { "nanoid": "^3.3.7", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" + "picocolors": "^1.0.1", + "source-map-js": "^1.2.0" }, "engines": { "node": "^10 || ^12 || >=14" @@ -12009,13 +12806,15 @@ "version": "0.2.3", "resolved": "https://registry.npmjs.org/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz", "integrity": "sha512-3sOlxmbKcSHMjlUXQZKQ06jOswE7oVkXPxmZdoB1r5l0q6gTFTQSHxNxOrCccElbW7dxNytifNEo8qidX2Vsig==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/postcss-modules-extract-imports": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.1.0.tgz", "integrity": "sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==", "dev": true, + "license": "ISC", "engines": { "node": "^10 || ^12 || >= 14" }, @@ -12028,6 +12827,7 @@ "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.5.tgz", "integrity": "sha512-6MieY7sIfTK0hYfafw1OMEG+2bg8Q1ocHCpoWLqOKj3JXlKu4G7btkmM/B7lFubYkYWmRSPLZi5chid63ZaZYw==", "dev": true, + "license": "MIT", "dependencies": { "icss-utils": "^5.0.0", "postcss-selector-parser": "^6.0.2", @@ -12045,6 +12845,7 @@ "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.2.0.tgz", "integrity": "sha512-oq+g1ssrsZOsx9M96c5w8laRmvEu9C3adDSjI8oTcbfkrTE8hx/zfyobUoWIxaKPO8bt6S62kxpw5GqypEw1QQ==", "dev": true, + "license": "ISC", "dependencies": { "postcss-selector-parser": "^6.0.4" }, @@ -12060,6 +12861,7 @@ "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", "dev": true, + "license": "ISC", "dependencies": { "icss-utils": "^5.0.0" }, @@ -12071,10 +12873,11 @@ } }, "node_modules/postcss-selector-parser": { - "version": "6.0.16", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.16.tgz", - "integrity": "sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==", + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", "dev": true, + "license": "MIT", "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -12087,13 +12890,15 @@ "version": "4.2.0", "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/proc-log": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-3.0.0.tgz", - "integrity": "sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-4.2.0.tgz", + "integrity": "sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA==", "dev": true, + "license": "ISC", "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } @@ -12102,19 +12907,22 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/promise-inflight": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/promise-retry": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", "dev": true, + "license": "MIT", "dependencies": { "err-code": "^2.0.2", "retry": "^0.12.0" @@ -12128,6 +12936,7 @@ "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", "dev": true, + "license": "MIT", "dependencies": { "forwarded": "0.2.0", "ipaddr.js": "1.9.1" @@ -12141,6 +12950,7 @@ "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.10" } @@ -12171,12 +12981,13 @@ } }, "node_modules/qs": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", - "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", + "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { - "side-channel": "^1.0.4" + "side-channel": "^1.0.6" }, "engines": { "node": ">=0.6" @@ -12203,7 +13014,8 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, "node_modules/randombytes": { "version": "2.1.0", @@ -12216,100 +13028,26 @@ }, "node_modules/range-parser": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/raw-body": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", - "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", - "dev": true, - "dependencies": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/read-package-json": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-7.0.0.tgz", - "integrity": "sha512-uL4Z10OKV4p6vbdvIXB+OzhInYtIozl/VxUBPgNkBuUi2DeRonnuspmaVAMcrkmfjKGNmRndyQAbE7/AmzGwFg==", - "dev": true, - "dependencies": { - "glob": "^10.2.2", - "json-parse-even-better-errors": "^3.0.0", - "normalize-package-data": "^6.0.0", - "npm-normalize-package-bin": "^3.0.0" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/read-package-json-fast": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-3.0.2.tgz", - "integrity": "sha512-0J+Msgym3vrLOUB3hzQCuZHII0xkNGCtz/HJH9xZshwv9DbDwkw1KaE3gx/e2J5rpEY5rtOy6cyhKOPrkP7FZw==", - "dev": true, - "dependencies": { - "json-parse-even-better-errors": "^3.0.0", - "npm-normalize-package-bin": "^3.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/read-package-json/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/read-package-json/node_modules/glob": { - "version": "10.3.12", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.12.tgz", - "integrity": "sha512-TCNv8vJ+xz4QiqTpfOJA7HvYv+tNIRHKfUWw/q+v2jdgN4ebz+KY9tGx5J4rHP0o84mNP+ApH66HRX8us3Khqg==", - "dev": true, - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^2.3.6", - "minimatch": "^9.0.1", - "minipass": "^7.0.4", - "path-scurry": "^1.10.2" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "dev": true, "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": ">= 0.6" } }, - "node_modules/read-package-json/node_modules/minimatch": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", - "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", + "node_modules/raw-body": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", "dev": true, "dependencies": { - "brace-expansion": "^2.0.1" + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" }, "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": ">= 0.8" } }, "node_modules/read-pkg": { @@ -12416,19 +13154,22 @@ "version": "0.2.2", "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.2.2.tgz", "integrity": "sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==", - "dev": true + "dev": true, + "license": "Apache-2.0" }, "node_modules/regenerate": { "version": "1.4.2", "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/regenerate-unicode-properties": { - "version": "10.1.1", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz", - "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==", + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.0.tgz", + "integrity": "sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA==", "dev": true, + "license": "MIT", "dependencies": { "regenerate": "^1.4.2" }, @@ -12440,13 +13181,15 @@ "version": "0.14.1", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/regenerator-transform": { "version": "0.15.2", "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/runtime": "^7.8.4" } @@ -12480,6 +13223,7 @@ "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", "dev": true, + "license": "MIT", "dependencies": { "@babel/regjsgen": "^0.8.0", "regenerate": "^1.4.2", @@ -12497,6 +13241,7 @@ "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "jsesc": "~0.5.0" }, @@ -12554,15 +13299,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/resolve-url-loader": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-5.0.0.tgz", @@ -12620,6 +13356,7 @@ "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", "dev": true, + "license": "MIT", "engines": { "node": ">= 4" } @@ -12629,16 +13366,18 @@ "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", "dev": true, + "license": "MIT", "engines": { "iojs": ">=1.0.0", "node": ">=0.10.0" } }, "node_modules/rfdc": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.1.tgz", - "integrity": "sha512-r5a3l5HzYlIC68TpmYKlxWjmOP6wiPJ1vWv2HeLhNsRZMrCkxeqxiHlQ21oXmQ4F3SiryXBHhAD7JZqvOJjFmg==", - "dev": true + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.4.1.tgz", + "integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==", + "dev": true, + "license": "MIT" }, "node_modules/rimraf": { "version": "3.0.2", @@ -12656,10 +13395,11 @@ } }, "node_modules/rollup": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.17.2.tgz", - "integrity": "sha512-/9ClTJPByC0U4zNLowV1tMBe8yMEAxewtR3cUNX5BoEpGH3dQEWpJLr6CLp0fPdYRF/fzVOgvDb1zXuakwF5kQ==", + "version": "4.20.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.20.0.tgz", + "integrity": "sha512-6rbWBChcnSGzIlXeIdNIZTopKYad8ZG8ajhl78lGRLsI2rX8IkaotQhVas2Ma+GPxJav19wrSzvRvuiv0YKzWw==", "dev": true, + "license": "MIT", "dependencies": { "@types/estree": "1.0.5" }, @@ -12671,32 +13411,36 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.17.2", - "@rollup/rollup-android-arm64": "4.17.2", - "@rollup/rollup-darwin-arm64": "4.17.2", - "@rollup/rollup-darwin-x64": "4.17.2", - "@rollup/rollup-linux-arm-gnueabihf": "4.17.2", - "@rollup/rollup-linux-arm-musleabihf": "4.17.2", - "@rollup/rollup-linux-arm64-gnu": "4.17.2", - "@rollup/rollup-linux-arm64-musl": "4.17.2", - "@rollup/rollup-linux-powerpc64le-gnu": "4.17.2", - "@rollup/rollup-linux-riscv64-gnu": "4.17.2", - "@rollup/rollup-linux-s390x-gnu": "4.17.2", - "@rollup/rollup-linux-x64-gnu": "4.17.2", - "@rollup/rollup-linux-x64-musl": "4.17.2", - "@rollup/rollup-win32-arm64-msvc": "4.17.2", - "@rollup/rollup-win32-ia32-msvc": "4.17.2", - "@rollup/rollup-win32-x64-msvc": "4.17.2", + "@rollup/rollup-android-arm-eabi": "4.20.0", + "@rollup/rollup-android-arm64": "4.20.0", + "@rollup/rollup-darwin-arm64": "4.20.0", + "@rollup/rollup-darwin-x64": "4.20.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.20.0", + "@rollup/rollup-linux-arm-musleabihf": "4.20.0", + "@rollup/rollup-linux-arm64-gnu": "4.20.0", + "@rollup/rollup-linux-arm64-musl": "4.20.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.20.0", + "@rollup/rollup-linux-riscv64-gnu": "4.20.0", + "@rollup/rollup-linux-s390x-gnu": "4.20.0", + "@rollup/rollup-linux-x64-gnu": "4.20.0", + "@rollup/rollup-linux-x64-musl": "4.20.0", + "@rollup/rollup-win32-arm64-msvc": "4.20.0", + "@rollup/rollup-win32-ia32-msvc": "4.20.0", + "@rollup/rollup-win32-x64-msvc": "4.20.0", "fsevents": "~2.3.2" } }, - "node_modules/run-async": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-3.0.0.tgz", - "integrity": "sha512-540WwVDOMxA6dN6We19EcT9sc3hkXPw5mzRNGM3FkdN/vtE9NFvj5lFAPNwUDmJjXidm3v7TC1cTE7t17Ulm1Q==", + "node_modules/run-applescript": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-7.0.0.tgz", + "integrity": "sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==", "dev": true, + "license": "MIT", "engines": { - "node": ">=0.12.0" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/run-parallel": { @@ -12718,6 +13462,7 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "dependencies": { "queue-microtask": "^1.2.2" } @@ -12797,16 +13542,12 @@ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", "dev": true }, - "node_modules/safevalues": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/safevalues/-/safevalues-0.3.4.tgz", - "integrity": "sha512-LRneZZRXNgjzwG4bDQdOTSbze3fHm1EAKN/8bePxnlEZiBmkYEDggaHbuvHI9/hoqHbGfsEA7tWS9GhYHZBBsw==" - }, "node_modules/sass": { - "version": "1.71.1", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.71.1.tgz", - "integrity": "sha512-wovtnV2PxzteLlfNzbgm1tFXPLoZILYAMJtvoXXkD7/+1uP41eKkIt1ypWq5/q2uT94qHjXehEYfmjKOvjL9sg==", + "version": "1.77.6", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.77.6.tgz", + "integrity": "sha512-ByXE1oLD79GVq9Ht1PeHWCPMPB8XHpBuz1r85oByKHjZY6qV6rWnQovQzXJXuQ/XyE1Oj3iPk3lo28uzaRA2/Q==", "dev": true, + "license": "MIT", "dependencies": { "chokidar": ">=3.0.0 <4.0.0", "immutable": "^4.0.0", @@ -12820,10 +13561,11 @@ } }, "node_modules/sass-loader": { - "version": "14.1.1", - "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-14.1.1.tgz", - "integrity": "sha512-QX8AasDg75monlybel38BZ49JP5Z+uSKfKwF2rO7S74BywaRmGQMUBw9dtkS+ekyM/QnP+NOrRYq8ABMZ9G8jw==", + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-16.0.0.tgz", + "integrity": "sha512-n13Z+3rU9A177dk4888czcVFiC8CL9dii4qpXWUg3YIIgZEvi9TCFKjOQcbK0kJM7DJu9VucrZFddvNfYCPwtw==", "dev": true, + "license": "MIT", "dependencies": { "neo-async": "^2.6.2" }, @@ -12889,13 +13631,15 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/selfsigned": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.4.1.tgz", "integrity": "sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==", "dev": true, + "license": "MIT", "dependencies": { "@types/node-forge": "^1.3.0", "node-forge": "^1" @@ -12938,10 +13682,11 @@ "dev": true }, "node_modules/send": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", - "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", + "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", "dev": true, + "license": "MIT", "dependencies": { "debug": "2.6.9", "depd": "2.0.0", @@ -12966,6 +13711,7 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, + "license": "MIT", "dependencies": { "ms": "2.0.0" } @@ -12974,13 +13720,15 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/send/node_modules/mime": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", "dev": true, + "license": "MIT", "bin": { "mime": "cli.js" }, @@ -12992,13 +13740,15 @@ "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/send/node_modules/statuses": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8" } @@ -13017,6 +13767,7 @@ "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==", "dev": true, + "license": "MIT", "dependencies": { "accepts": "~1.3.4", "batch": "0.6.1", @@ -13035,6 +13786,7 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, + "license": "MIT", "dependencies": { "ms": "2.0.0" } @@ -13044,6 +13796,7 @@ "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -13053,6 +13806,7 @@ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", "dev": true, + "license": "MIT", "dependencies": { "depd": "~1.1.2", "inherits": "2.0.3", @@ -13067,35 +13821,49 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/serve-index/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/serve-index/node_modules/setprototypeof": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/serve-static": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", - "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "version": "1.16.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz", + "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==", "dev": true, + "license": "MIT", "dependencies": { - "encodeurl": "~1.0.2", + "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "parseurl": "~1.3.3", - "send": "0.18.0" + "send": "0.19.0" }, "engines": { "node": ">= 0.8.0" } }, + "node_modules/serve-static/node_modules/encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, "node_modules/set-function-length": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", @@ -13139,6 +13907,7 @@ "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", "dev": true, + "license": "MIT", "dependencies": { "kind-of": "^6.0.2" }, @@ -13151,6 +13920,7 @@ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, + "license": "MIT", "dependencies": { "shebang-regex": "^3.0.0" }, @@ -13163,6 +13933,7 @@ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -13201,27 +13972,72 @@ "dev": true }, "node_modules/sigstore": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/sigstore/-/sigstore-2.3.0.tgz", - "integrity": "sha512-q+o8L2ebiWD1AxD17eglf1pFrl9jtW7FHa0ygqY6EKvibK8JHyq9Z26v9MZXeDiw+RbfOJ9j2v70M10Hd6E06A==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/sigstore/-/sigstore-2.3.1.tgz", + "integrity": "sha512-8G+/XDU8wNsJOQS5ysDVO0Etg9/2uA5gR9l4ZwijjlwxBcrU6RPfwi2+jJmbP+Ap1Hlp/nVAaEO4Fj22/SL2gQ==", "dev": true, + "license": "Apache-2.0", "dependencies": { - "@sigstore/bundle": "^2.3.1", + "@sigstore/bundle": "^2.3.2", "@sigstore/core": "^1.0.0", - "@sigstore/protobuf-specs": "^0.3.1", - "@sigstore/sign": "^2.3.0", - "@sigstore/tuf": "^2.3.1", - "@sigstore/verify": "^1.2.0" + "@sigstore/protobuf-specs": "^0.3.2", + "@sigstore/sign": "^2.3.2", + "@sigstore/tuf": "^2.3.4", + "@sigstore/verify": "^1.2.1" }, "engines": { "node": "^16.14.0 || >=18.0.0" } }, "node_modules/slash": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz", + "integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/slice-ansi": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz", + "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.0.0", + "is-fullwidth-code-point": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/slice-ansi/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/slice-ansi/node_modules/is-fullwidth-code-point": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", - "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz", + "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -13234,6 +14050,7 @@ "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 6.0.0", "npm": ">= 3.0.0" @@ -13285,6 +14102,7 @@ "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", "dev": true, + "license": "MIT", "dependencies": { "faye-websocket": "^0.11.3", "uuid": "^8.3.2", @@ -13296,6 +14114,7 @@ "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.3.tgz", "integrity": "sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==", "dev": true, + "license": "MIT", "dependencies": { "ip-address": "^9.0.5", "smart-buffer": "^4.2.0" @@ -13306,14 +14125,15 @@ } }, "node_modules/socks-proxy-agent": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.3.tgz", - "integrity": "sha512-VNegTZKhuGq5vSD6XNKlbqWhyt/40CgoEw8XxD6dhnm8Jq9IEa3nIa4HwnM8XOqU0CdB0BwWVXusqiFXfHB3+A==", + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.4.tgz", + "integrity": "sha512-GNAq/eg8Udq2x0eNiFkr9gRg5bA7PXEWagQdeRX4cPSG+X/8V38v637gim9bjFptMk1QWsCTr0ttrJEiXbNnRw==", "dev": true, + "license": "MIT", "dependencies": { "agent-base": "^7.1.1", "debug": "^4.3.4", - "socks": "^2.7.1" + "socks": "^2.8.3" }, "engines": { "node": ">= 14" @@ -13425,6 +14245,7 @@ "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", "dev": true, + "license": "MIT", "dependencies": { "debug": "^4.1.0", "handle-thing": "^2.0.0", @@ -13441,6 +14262,7 @@ "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", "dev": true, + "license": "MIT", "dependencies": { "debug": "^4.1.0", "detect-node": "^2.0.4", @@ -13451,16 +14273,18 @@ } }, "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", - "dev": true + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", + "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", + "dev": true, + "license": "BSD-3-Clause" }, "node_modules/ssri": { - "version": "10.0.5", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.5.tgz", - "integrity": "sha512-bSf16tAFkGeRlUNDjXu8FzaMQt6g2HZJrun7mtMbIPOddxt3GLMSz5VWUWcqTJUPfLEaDIepGxv+bYQW49596A==", + "version": "10.0.6", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.6.tgz", + "integrity": "sha512-MGrFH9Z4NP9Iyhqn16sDtBpRRNJ0Y2hNa6D65h736fVSaPCHr4DM4sWUNvVaSuC+0OBGhwsrydQwmgfg5LncqQ==", "dev": true, + "license": "ISC", "dependencies": { "minipass": "^7.0.3" }, @@ -13520,6 +14344,7 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, + "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -13614,6 +14439,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -13635,6 +14461,7 @@ "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } @@ -13698,6 +14525,7 @@ "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz", "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==", "dev": true, + "license": "ISC", "dependencies": { "chownr": "^2.0.0", "fs-minipass": "^2.0.0", @@ -13715,6 +14543,7 @@ "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", "dev": true, + "license": "ISC", "dependencies": { "minipass": "^3.0.0" }, @@ -13727,6 +14556,7 @@ "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", "dev": true, + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -13739,6 +14569,7 @@ "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", "dev": true, + "license": "ISC", "engines": { "node": ">=8" } @@ -13748,6 +14579,7 @@ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", "dev": true, + "license": "MIT", "bin": { "mkdirp": "bin/cmd.js" }, @@ -13759,13 +14591,15 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/terser": { - "version": "5.29.1", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.29.1.tgz", - "integrity": "sha512-lZQ/fyaIGxsbGxApKmoPTODIzELy3++mXhS5hOqaAWZjQtpq/hFHAc+rm29NND1rYRxRWKcjuARNwULNXa5RtQ==", + "version": "5.31.6", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.31.6.tgz", + "integrity": "sha512-PQ4DAriWzKj+qgehQ7LK5bQqCFNMmlhjR2PFFLuqGCpuCAauxemVBWwWOxo3UIwWQx8+Pr61Df++r76wDmkQBg==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "@jridgewell/source-map": "^0.3.3", "acorn": "^8.8.2", @@ -13862,31 +14696,32 @@ "url": "https://opencollective.com/webpack" } }, - "node_modules/test-exclude": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "node_modules/thingies": { + "version": "1.21.0", + "resolved": "https://registry.npmjs.org/thingies/-/thingies-1.21.0.tgz", + "integrity": "sha512-hsqsJsFMsV+aD4s3CWKk85ep/3I9XzYV/IXaSouJMYIoDlgyi11cBhsqYe9/geRfB0YIikBQg6raRaM+nIMP9g==", "dev": true, - "dependencies": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - }, + "license": "Unlicense", "engines": { - "node": ">=8" + "node": ">=10.18" + }, + "peerDependencies": { + "tslib": "^2" } }, "node_modules/thunky": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/tmp": { "version": "0.0.33", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", "dev": true, + "license": "MIT", "dependencies": { "os-tmpdir": "~1.0.2" }, @@ -13899,6 +14734,7 @@ "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } @@ -13908,6 +14744,7 @@ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, + "license": "MIT", "dependencies": { "is-number": "^7.0.0" }, @@ -13924,6 +14761,23 @@ "node": ">=0.6" } }, + "node_modules/tree-dump": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/tree-dump/-/tree-dump-1.0.2.tgz", + "integrity": "sha512-dpev9ABuLWdEubk+cIaI9cHwRNNDjkBBLXTwI4UCUFdQ5xXKqNXoK4FEciw/vxf+NQ7Cb7sGUyeUtORvHIdRXQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, "node_modules/tree-kill": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", @@ -13946,19 +14800,21 @@ } }, "node_modules/tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.3.tgz", + "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==", + "license": "0BSD" }, "node_modules/tuf-js": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tuf-js/-/tuf-js-2.2.0.tgz", - "integrity": "sha512-ZSDngmP1z6zw+FIkIBjvOp/II/mIub/O7Pp12j1WNsiCpg5R5wAc//i555bBQsE44O94btLt0xM/Zr2LQjwdCg==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tuf-js/-/tuf-js-2.2.1.tgz", + "integrity": "sha512-GwIJau9XaA8nLVbUXsN3IlFi7WmQ48gBUrl3FTkkL/XLu/POhBzfmX9hd33FNMX1qAsfl6ozO1iMmW9NC8YniA==", "dev": true, + "license": "MIT", "dependencies": { - "@tufjs/models": "2.0.0", + "@tufjs/models": "2.0.1", "debug": "^4.3.4", - "make-fetch-happen": "^13.0.0" + "make-fetch-happen": "^13.0.1" }, "engines": { "node": "^16.14.0 || >=18.0.0" @@ -13969,6 +14825,7 @@ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", "dev": true, + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=10" }, @@ -14119,26 +14976,19 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/undici": { - "version": "6.11.1", - "resolved": "https://registry.npmjs.org/undici/-/undici-6.11.1.tgz", - "integrity": "sha512-KyhzaLJnV1qa3BSHdj4AZ2ndqI0QWPxYzaIOio0WzcEJB9gvuysprJSLtpvc2D9mhR9jPDUk7xlJlZbH2KR5iw==", - "dev": true, - "engines": { - "node": ">=18.0" - } - }, "node_modules/undici-types": { - "version": "5.26.5", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", - "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", - "dev": true + "version": "6.19.8", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", + "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", + "dev": true, + "license": "MIT" }, "node_modules/unicode-canonical-property-names-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", - "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz", + "integrity": "sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } @@ -14148,6 +14998,7 @@ "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", "dev": true, + "license": "MIT", "dependencies": { "unicode-canonical-property-names-ecmascript": "^2.0.0", "unicode-property-aliases-ecmascript": "^2.0.0" @@ -14157,10 +15008,11 @@ } }, "node_modules/unicode-match-property-value-ecmascript": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", - "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.0.tgz", + "integrity": "sha512-4IehN3V/+kkr5YeSSDDQG8QLqO26XpL2XP3GQtqwlT/QYSECAwFztxVHjlbh0+gjJ3XmNLS0zDsbgs9jWKExLg==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } @@ -14170,15 +15022,30 @@ "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, + "node_modules/unicorn-magic": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.1.0.tgz", + "integrity": "sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/unique-filename": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-3.0.0.tgz", "integrity": "sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==", "dev": true, + "license": "ISC", "dependencies": { "unique-slug": "^4.0.0" }, @@ -14191,6 +15058,7 @@ "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-4.0.0.tgz", "integrity": "sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==", "dev": true, + "license": "ISC", "dependencies": { "imurmurhash": "^0.1.4" }, @@ -14217,9 +15085,9 @@ } }, "node_modules/update-browserslist-db": { - "version": "1.0.14", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.14.tgz", - "integrity": "sha512-JixKH8GR2pWYshIPUg/NujK3JO7JiqEEUiNArE86NQyrgUuZeTlZQN3xuS/yiV5Kb48ev9K6RqNkaJjXsdg7Jw==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.0.tgz", + "integrity": "sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==", "dev": true, "funding": [ { @@ -14235,9 +15103,10 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { "escalade": "^3.1.2", - "picocolors": "^1.0.0" + "picocolors": "^1.0.1" }, "bin": { "update-browserslist-db": "cli.js" @@ -14275,6 +15144,7 @@ "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", "dev": true, + "license": "MIT", "bin": { "uuid": "dist/bin/uuid" } @@ -14290,13 +15160,11 @@ } }, "node_modules/validate-npm-package-name": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-5.0.0.tgz", - "integrity": "sha512-YuKoXDAhBYxY7SfOKxHBDoSyENFeW5VvIIQp2TGQuit8gpK6MnWaQelBKxso72DoxTZfZdcP3W90LqpSkgPzLQ==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-5.0.1.tgz", + "integrity": "sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ==", "dev": true, - "dependencies": { - "builtins": "^5.0.0" - }, + "license": "ISC", "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } @@ -14320,14 +15188,15 @@ } }, "node_modules/vite": { - "version": "5.1.7", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.1.7.tgz", - "integrity": "sha512-sgnEEFTZYMui/sTlH1/XEnVNHMujOahPLGMxn1+5sIT45Xjng1Ec1K78jRP15dSmVgg5WBin9yO81j3o9OxofA==", + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.0.tgz", + "integrity": "sha512-5xokfMX0PIiwCMCMb9ZJcMyh5wbBun0zUzKib+L65vAZ8GY9ePZMXxFrHbr/Kyll2+LSCY7xtERPpxkBDKngwg==", "dev": true, + "license": "MIT", "dependencies": { - "esbuild": "^0.19.3", - "postcss": "^8.4.35", - "rollup": "^4.2.0" + "esbuild": "^0.21.3", + "postcss": "^8.4.40", + "rollup": "^4.13.0" }, "bin": { "vite": "bin/vite.js" @@ -14346,6 +15215,7 @@ "less": "*", "lightningcss": "^1.21.0", "sass": "*", + "sass-embedded": "*", "stylus": "*", "sugarss": "*", "terser": "^5.4.0" @@ -14363,6 +15233,9 @@ "sass": { "optional": true }, + "sass-embedded": { + "optional": true + }, "stylus": { "optional": true }, @@ -14375,13 +15248,14 @@ } }, "node_modules/vite/node_modules/@esbuild/aix-ppc64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.19.12.tgz", - "integrity": "sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", "cpu": [ "ppc64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "aix" @@ -14391,13 +15265,14 @@ } }, "node_modules/vite/node_modules/@esbuild/android-arm": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.12.tgz", - "integrity": "sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", "cpu": [ "arm" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "android" @@ -14407,13 +15282,14 @@ } }, "node_modules/vite/node_modules/@esbuild/android-arm64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.12.tgz", - "integrity": "sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "android" @@ -14423,13 +15299,14 @@ } }, "node_modules/vite/node_modules/@esbuild/android-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.12.tgz", - "integrity": "sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "android" @@ -14439,13 +15316,14 @@ } }, "node_modules/vite/node_modules/@esbuild/darwin-arm64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.12.tgz", - "integrity": "sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "darwin" @@ -14455,13 +15333,14 @@ } }, "node_modules/vite/node_modules/@esbuild/darwin-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.12.tgz", - "integrity": "sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "darwin" @@ -14471,13 +15350,14 @@ } }, "node_modules/vite/node_modules/@esbuild/freebsd-arm64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.12.tgz", - "integrity": "sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "freebsd" @@ -14487,13 +15367,14 @@ } }, "node_modules/vite/node_modules/@esbuild/freebsd-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.12.tgz", - "integrity": "sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "freebsd" @@ -14503,13 +15384,14 @@ } }, "node_modules/vite/node_modules/@esbuild/linux-arm": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.12.tgz", - "integrity": "sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", "cpu": [ "arm" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" @@ -14519,13 +15401,14 @@ } }, "node_modules/vite/node_modules/@esbuild/linux-arm64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.12.tgz", - "integrity": "sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" @@ -14535,13 +15418,14 @@ } }, "node_modules/vite/node_modules/@esbuild/linux-ia32": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.12.tgz", - "integrity": "sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", "cpu": [ "ia32" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" @@ -14551,13 +15435,14 @@ } }, "node_modules/vite/node_modules/@esbuild/linux-loong64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.12.tgz", - "integrity": "sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", "cpu": [ "loong64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" @@ -14567,13 +15452,14 @@ } }, "node_modules/vite/node_modules/@esbuild/linux-mips64el": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.12.tgz", - "integrity": "sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", "cpu": [ "mips64el" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" @@ -14583,13 +15469,14 @@ } }, "node_modules/vite/node_modules/@esbuild/linux-ppc64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.12.tgz", - "integrity": "sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", "cpu": [ "ppc64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" @@ -14599,13 +15486,14 @@ } }, "node_modules/vite/node_modules/@esbuild/linux-riscv64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.12.tgz", - "integrity": "sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", "cpu": [ "riscv64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" @@ -14615,13 +15503,14 @@ } }, "node_modules/vite/node_modules/@esbuild/linux-s390x": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.12.tgz", - "integrity": "sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", "cpu": [ "s390x" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" @@ -14631,13 +15520,14 @@ } }, "node_modules/vite/node_modules/@esbuild/linux-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.12.tgz", - "integrity": "sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" @@ -14647,13 +15537,14 @@ } }, "node_modules/vite/node_modules/@esbuild/netbsd-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.12.tgz", - "integrity": "sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "netbsd" @@ -14663,13 +15554,14 @@ } }, "node_modules/vite/node_modules/@esbuild/openbsd-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.12.tgz", - "integrity": "sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "openbsd" @@ -14679,13 +15571,14 @@ } }, "node_modules/vite/node_modules/@esbuild/sunos-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.12.tgz", - "integrity": "sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "sunos" @@ -14695,13 +15588,14 @@ } }, "node_modules/vite/node_modules/@esbuild/win32-arm64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.12.tgz", - "integrity": "sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" @@ -14711,13 +15605,14 @@ } }, "node_modules/vite/node_modules/@esbuild/win32-ia32": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.12.tgz", - "integrity": "sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", "cpu": [ "ia32" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" @@ -14727,13 +15622,14 @@ } }, "node_modules/vite/node_modules/@esbuild/win32-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.12.tgz", - "integrity": "sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" @@ -14743,11 +15639,12 @@ } }, "node_modules/vite/node_modules/esbuild": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.12.tgz", - "integrity": "sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", "dev": true, "hasInstallScript": true, + "license": "MIT", "bin": { "esbuild": "bin/esbuild" }, @@ -14755,29 +15652,29 @@ "node": ">=12" }, "optionalDependencies": { - "@esbuild/aix-ppc64": "0.19.12", - "@esbuild/android-arm": "0.19.12", - "@esbuild/android-arm64": "0.19.12", - "@esbuild/android-x64": "0.19.12", - "@esbuild/darwin-arm64": "0.19.12", - "@esbuild/darwin-x64": "0.19.12", - "@esbuild/freebsd-arm64": "0.19.12", - "@esbuild/freebsd-x64": "0.19.12", - "@esbuild/linux-arm": "0.19.12", - "@esbuild/linux-arm64": "0.19.12", - "@esbuild/linux-ia32": "0.19.12", - "@esbuild/linux-loong64": "0.19.12", - "@esbuild/linux-mips64el": "0.19.12", - "@esbuild/linux-ppc64": "0.19.12", - "@esbuild/linux-riscv64": "0.19.12", - "@esbuild/linux-s390x": "0.19.12", - "@esbuild/linux-x64": "0.19.12", - "@esbuild/netbsd-x64": "0.19.12", - "@esbuild/openbsd-x64": "0.19.12", - "@esbuild/sunos-x64": "0.19.12", - "@esbuild/win32-arm64": "0.19.12", - "@esbuild/win32-ia32": "0.19.12", - "@esbuild/win32-x64": "0.19.12" + "@esbuild/aix-ppc64": "0.21.5", + "@esbuild/android-arm": "0.21.5", + "@esbuild/android-arm64": "0.21.5", + "@esbuild/android-x64": "0.21.5", + "@esbuild/darwin-arm64": "0.21.5", + "@esbuild/darwin-x64": "0.21.5", + "@esbuild/freebsd-arm64": "0.21.5", + "@esbuild/freebsd-x64": "0.21.5", + "@esbuild/linux-arm": "0.21.5", + "@esbuild/linux-arm64": "0.21.5", + "@esbuild/linux-ia32": "0.21.5", + "@esbuild/linux-loong64": "0.21.5", + "@esbuild/linux-mips64el": "0.21.5", + "@esbuild/linux-ppc64": "0.21.5", + "@esbuild/linux-riscv64": "0.21.5", + "@esbuild/linux-s390x": "0.21.5", + "@esbuild/linux-x64": "0.21.5", + "@esbuild/netbsd-x64": "0.21.5", + "@esbuild/openbsd-x64": "0.21.5", + "@esbuild/sunos-x64": "0.21.5", + "@esbuild/win32-arm64": "0.21.5", + "@esbuild/win32-ia32": "0.21.5", + "@esbuild/win32-x64": "0.21.5" } }, "node_modules/void-elements": { @@ -14790,10 +15687,11 @@ } }, "node_modules/watchpack": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", - "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.1.tgz", + "integrity": "sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg==", "dev": true, + "license": "MIT", "dependencies": { "glob-to-regexp": "^0.4.1", "graceful-fs": "^4.1.2" @@ -14807,6 +15705,7 @@ "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", "dev": true, + "license": "MIT", "dependencies": { "minimalistic-assert": "^1.0.0" } @@ -14820,27 +15719,34 @@ "defaults": "^1.0.3" } }, + "node_modules/weak-lru-cache": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/weak-lru-cache/-/weak-lru-cache-1.2.2.tgz", + "integrity": "sha512-DEAoo25RfSYMuTGc9vPJzZcZullwIqRDSI9LOy+fkCJPi6hykCnfKaXTuPBDuXAUcqHXyOgFtHNp/kB2FjYHbw==", + "dev": true, + "license": "MIT" + }, "node_modules/webpack": { - "version": "5.90.3", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.90.3.tgz", - "integrity": "sha512-h6uDYlWCctQRuXBs1oYpVe6sFcWedl0dpcVaTf/YF67J9bKvwJajFulMVSYKHrksMB3I/pIagRzDxwxkebuzKA==", + "version": "5.94.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.94.0.tgz", + "integrity": "sha512-KcsGn50VT+06JH/iunZJedYGUJS5FGjow8wb9c0v5n1Om8O1g4L6LjtfxwlXIATopoQu+vOXXa7gYisWxCoPyg==", "dev": true, + "license": "MIT", "dependencies": { - "@types/eslint-scope": "^3.7.3", "@types/estree": "^1.0.5", - "@webassemblyjs/ast": "^1.11.5", - "@webassemblyjs/wasm-edit": "^1.11.5", - "@webassemblyjs/wasm-parser": "^1.11.5", + "@webassemblyjs/ast": "^1.12.1", + "@webassemblyjs/wasm-edit": "^1.12.1", + "@webassemblyjs/wasm-parser": "^1.12.1", "acorn": "^8.7.1", - "acorn-import-assertions": "^1.9.0", + "acorn-import-attributes": "^1.9.5", "browserslist": "^4.21.10", "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.15.0", + "enhanced-resolve": "^5.17.1", "es-module-lexer": "^1.2.1", "eslint-scope": "5.1.1", "events": "^3.2.0", "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.2.9", + "graceful-fs": "^4.2.11", "json-parse-even-better-errors": "^2.3.1", "loader-runner": "^4.2.0", "mime-types": "^2.1.27", @@ -14848,7 +15754,7 @@ "schema-utils": "^3.2.0", "tapable": "^2.1.1", "terser-webpack-plugin": "^5.3.10", - "watchpack": "^2.4.0", + "watchpack": "^2.4.1", "webpack-sources": "^3.2.3" }, "bin": { @@ -14868,19 +15774,21 @@ } }, "node_modules/webpack-dev-middleware": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-6.1.2.tgz", - "integrity": "sha512-Wu+EHmX326YPYUpQLKmKbTyZZJIB8/n6R09pTmB03kJmnMsVPTo9COzHZFr01txwaCAuZvfBJE4ZCHRcKs5JaQ==", + "version": "7.4.2", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-7.4.2.tgz", + "integrity": "sha512-xOO8n6eggxnwYpy1NlzUKpvrjfJTvae5/D6WOK0S2LSo7vjmo5gCM1DbLUmFqrMTJP+W/0YZNctm7jasWvLuBA==", "dev": true, + "license": "MIT", "dependencies": { "colorette": "^2.0.10", - "memfs": "^3.4.12", + "memfs": "^4.6.0", "mime-types": "^2.1.31", + "on-finished": "^2.4.1", "range-parser": "^1.2.1", "schema-utils": "^4.0.0" }, "engines": { - "node": ">= 14.15.0" + "node": ">= 18.12.0" }, "funding": { "type": "opencollective", @@ -14896,54 +15804,55 @@ } }, "node_modules/webpack-dev-server": { - "version": "4.15.1", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.15.1.tgz", - "integrity": "sha512-5hbAst3h3C3L8w6W4P96L5vaV0PxSmJhxZvWKYIdgxOQm8pNZ5dEOmmSLBVpP85ReeyRt6AS1QJNyo/oFFPeVA==", - "dev": true, - "dependencies": { - "@types/bonjour": "^3.5.9", - "@types/connect-history-api-fallback": "^1.3.5", - "@types/express": "^4.17.13", - "@types/serve-index": "^1.9.1", - "@types/serve-static": "^1.13.10", - "@types/sockjs": "^0.3.33", - "@types/ws": "^8.5.5", + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-5.0.4.tgz", + "integrity": "sha512-dljXhUgx3HqKP2d8J/fUMvhxGhzjeNVarDLcbO/EWMSgRizDkxHQDZQaLFL5VJY9tRBj2Gz+rvCEYYvhbqPHNA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/bonjour": "^3.5.13", + "@types/connect-history-api-fallback": "^1.5.4", + "@types/express": "^4.17.21", + "@types/serve-index": "^1.9.4", + "@types/serve-static": "^1.15.5", + "@types/sockjs": "^0.3.36", + "@types/ws": "^8.5.10", "ansi-html-community": "^0.0.8", - "bonjour-service": "^1.0.11", - "chokidar": "^3.5.3", + "bonjour-service": "^1.2.1", + "chokidar": "^3.6.0", "colorette": "^2.0.10", "compression": "^1.7.4", "connect-history-api-fallback": "^2.0.0", "default-gateway": "^6.0.3", "express": "^4.17.3", "graceful-fs": "^4.2.6", - "html-entities": "^2.3.2", + "html-entities": "^2.4.0", "http-proxy-middleware": "^2.0.3", - "ipaddr.js": "^2.0.1", - "launch-editor": "^2.6.0", - "open": "^8.0.9", - "p-retry": "^4.5.0", - "rimraf": "^3.0.2", - "schema-utils": "^4.0.0", - "selfsigned": "^2.1.1", + "ipaddr.js": "^2.1.0", + "launch-editor": "^2.6.1", + "open": "^10.0.3", + "p-retry": "^6.2.0", + "rimraf": "^5.0.5", + "schema-utils": "^4.2.0", + "selfsigned": "^2.4.1", "serve-index": "^1.9.1", "sockjs": "^0.3.24", "spdy": "^4.0.2", - "webpack-dev-middleware": "^5.3.1", - "ws": "^8.13.0" + "webpack-dev-middleware": "^7.1.0", + "ws": "^8.16.0" }, "bin": { "webpack-dev-server": "bin/webpack-dev-server.js" }, "engines": { - "node": ">= 12.13.0" + "node": ">= 18.12.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/webpack" }, "peerDependencies": { - "webpack": "^4.37.0 || ^5.0.0" + "webpack": "^5.0.0" }, "peerDependenciesMeta": { "webpack": { @@ -14954,34 +15863,100 @@ } } }, - "node_modules/webpack-dev-server/node_modules/webpack-dev-middleware": { - "version": "5.3.4", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.4.tgz", - "integrity": "sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q==", + "node_modules/webpack-dev-server/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, + "license": "MIT", "dependencies": { - "colorette": "^2.0.10", - "memfs": "^3.4.3", - "mime-types": "^2.1.31", - "range-parser": "^1.2.1", - "schema-utils": "^4.0.0" + "balanced-match": "^1.0.0" + } + }, + "node_modules/webpack-dev-server/node_modules/glob": { + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "dev": true, + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" }, - "engines": { - "node": ">= 12.13.0" + "bin": { + "glob": "dist/esm/bin.mjs" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/webpack-dev-server/node_modules/http-proxy-middleware": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz", + "integrity": "sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/http-proxy": "^1.17.8", + "http-proxy": "^1.18.1", + "is-glob": "^4.0.1", + "is-plain-obj": "^3.0.0", + "micromatch": "^4.0.2" + }, + "engines": { + "node": ">=12.0.0" }, "peerDependencies": { - "webpack": "^4.0.0 || ^5.0.0" + "@types/express": "^4.17.13" + }, + "peerDependenciesMeta": { + "@types/express": { + "optional": true + } + } + }, + "node_modules/webpack-dev-server/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/webpack-dev-server/node_modules/rimraf": { + "version": "5.0.10", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.10.tgz", + "integrity": "sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "glob": "^10.3.7" + }, + "bin": { + "rimraf": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/webpack-dev-server/node_modules/ws": { - "version": "8.17.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.0.tgz", - "integrity": "sha512-uJq6108EgZMAl20KagGkzCKfMEjxmKvZHG7Tlq0Z6nOky7YF7aq4mOx6xK8TJ/i1LeK4Qus7INktacctDgY8Ow==", + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", + "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", "dev": true, + "license": "MIT", "engines": { "node": ">=10.0.0" }, @@ -14999,17 +15974,18 @@ } }, "node_modules/webpack-merge": { - "version": "5.10.0", - "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.10.0.tgz", - "integrity": "sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-6.0.1.tgz", + "integrity": "sha512-hXXvrjtx2PLYx4qruKl+kyRSLc52V+cCvMxRjmKwoA+CBbbF5GfIBtR6kCvl0fYGqTUPKB+1ktVmTHqMOzgCBg==", "dev": true, + "license": "MIT", "dependencies": { "clone-deep": "^4.0.1", "flat": "^5.0.2", - "wildcard": "^2.0.0" + "wildcard": "^2.0.1" }, "engines": { - "node": ">=10.0.0" + "node": ">=18.0.0" } }, "node_modules/webpack-sources": { @@ -15102,6 +16078,7 @@ "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", "dev": true, + "license": "Apache-2.0", "dependencies": { "http-parser-js": ">=0.5.1", "safe-buffer": ">=5.1.0", @@ -15116,6 +16093,7 @@ "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=0.8.0" } @@ -15171,13 +16149,15 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz", "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/wrap-ansi": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -15193,6 +16173,7 @@ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -15210,6 +16191,7 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -15225,6 +16207,7 @@ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, + "license": "MIT", "dependencies": { "color-name": "~1.1.4" }, @@ -15236,13 +16219,15 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/wrap-ansi/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -15258,6 +16243,7 @@ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, + "license": "MIT", "dependencies": { "color-name": "~1.1.4" }, @@ -15269,7 +16255,8 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/wrappy": { "version": "1.0.2", @@ -15311,7 +16298,8 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/yargs": { "version": "17.7.2", @@ -15352,13 +16340,24 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/zone.js": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.14.5.tgz", - "integrity": "sha512-9XYWZzY6PhHOSdkYryNcMm7L8EK7a4q+GbTvxbIA2a9lMdRUpGuyaYvLDcg8D6bdn+JomSsbPcilVKg6SmUx6w==", - "dependencies": { - "tslib": "^2.3.0" + "node_modules/yoctocolors-cjs": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yoctocolors-cjs/-/yoctocolors-cjs-2.1.2.tgz", + "integrity": "sha512-cYVsTjKl8b+FrnidjibDWskAv7UKOfcwaVZdp/it9n1s9fU3IkgDbhdIRKCW4JDsAlECJY0ytoVPT3sK6kideA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } + }, + "node_modules/zone.js": { + "version": "0.14.10", + "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.14.10.tgz", + "integrity": "sha512-YGAhaO7J5ywOXW6InXNlLmfU194F8lVgu7bRntUF3TiG8Y3nBK0x1UJJuHUP/e8IyihkjCYqhCScpSwnlaSRkQ==", + "license": "MIT" } } } diff --git a/package.json b/package.json index a290776..6d5953e 100644 --- a/package.json +++ b/package.json @@ -13,16 +13,16 @@ }, "private": false, "dependencies": { - "@angular/animations": "^17.3.0", - "@angular/cdk": "^17.3.0", - "@angular/common": "^17.3.0", - "@angular/compiler": "^17.3.0", - "@angular/core": "^17.3.0", - "@angular/forms": "^17.3.0", - "@angular/material": "^17.3.7", - "@angular/platform-browser": "17.3.7", - "@angular/platform-browser-dynamic": "^17.3.7", - "@angular/router": "^17.3.7", + "@angular/animations": "^18.2.4", + "@angular/cdk": "^18.2.4", + "@angular/common": "^18.2.4", + "@angular/compiler": "^18.2.4", + "@angular/core": "^18.2.4", + "@angular/forms": "^18.2.4", + "@angular/material": "^18.2.4", + "@angular/platform-browser": "18.2.4", + "@angular/platform-browser-dynamic": "^18.2.4", + "@angular/router": "^18.2.4", "@ngneat/until-destroy": "^10.0.0", "cytoscape": "^3.29.2", "cytoscape-fcose": "^2.2.0", @@ -31,12 +31,12 @@ "rxjs": "~7.8.0", "tslib": "^2.3.0", "vectorious": "^6.1.12", - "zone.js": "~0.14.3" + "zone.js": "~0.14.10" }, "devDependencies": { - "@angular-devkit/build-angular": "^17.3.6", - "@angular/cli": "^17.3.6", - "@angular/compiler-cli": "^17.3.7", + "@angular-devkit/build-angular": "^18.2.4", + "@angular/cli": "^18.2.4", + "@angular/compiler-cli": "^18.2.4", "@types/cytoscape": "^3.21.0", "@types/cytoscape-fcose": "^2.2.4", "@types/jasmine": "~4.3.0", @@ -48,7 +48,7 @@ "karma-coverage": "~2.2.0", "karma-jasmine": "~5.1.0", "karma-jasmine-html-reporter": "~2.1.0", - "ng-packagr": "^17.3.0", + "ng-packagr": "^18.2.1", "npm-run-all": "^4.1.1", "typescript": "~5.4.5" } diff --git a/projects/ngx-reactome-style/package.json b/projects/ngx-reactome-style/package.json index 51e210c..ac9b3c2 100644 --- a/projects/ngx-reactome-style/package.json +++ b/projects/ngx-reactome-style/package.json @@ -1,10 +1,10 @@ { "name": "ngx-reactome-style", - "version": "0.0.13", + "version": "0.0.18", "peerDependencies": { - "@angular/common": "^17.3.0", - "@angular/core": "^17.3.0", - "@angular/material": "^17.3.7" + "@angular/common": "^18.2.4", + "@angular/core": "^18.2.4", + "@angular/material": "^18.2.4" }, "dependencies": { "tslib": "^2.3.0" diff --git a/projects/ngx-reactome-style/src/assets/_index.scss b/projects/ngx-reactome-style/src/assets/_index.scss index d4f7e1b..ccdff25 100644 --- a/projects/ngx-reactome-style/src/assets/_index.scss +++ b/projects/ngx-reactome-style/src/assets/_index.scss @@ -30,18 +30,18 @@ $bg-color: map.get(p.$primary-colors, 990); // Define the palettes for your theme using the Material Design palettes available in palette.scss // (imported above). For each palette, you can optionally specify a default, lighter, and darker // hue. Available color palettes: https://material.io/design/color/ -$primary-palette: mat.define-palette(p.$primary-colors, 600); -$secondary-palette: mat.define-palette(p.$secondary-colors, 600); -$tertiary-palette: mat.define-palette(p.$tertiary-colors, 600); +$primary-palette: mat.m2-define-palette(p.$primary-colors, 600); +$secondary-palette: mat.m2-define-palette(p.$secondary-colors, 600); +$tertiary-palette: mat.m2-define-palette(p.$tertiary-colors, 600); // The warn palette is optional (defaults to red). -$error-palette: mat.define-palette(p.$error-colors); -$neutral-palette: mat.define-palette(p.$neutral-colors); -$neutral-variant-palette: mat.define-palette(p.$neutral-variant-colors); +$error-palette: mat.m2-define-palette(p.$error-colors); +$neutral-palette: mat.m2-define-palette(p.$neutral-colors); +$neutral-variant-palette: mat.m2-define-palette(p.$neutral-variant-colors); // Create the theme object. A theme consists of configurations for individual // theming systems such as "color" or "typography". -$light-theme: mat.define-light-theme(( +$light-theme: mat.m2-define-light-theme(( color: ( primary: $primary-palette, accent: $tertiary-palette, @@ -50,11 +50,11 @@ $light-theme: mat.define-light-theme(( density: -1 )); -$dark-theme: mat.define-dark-theme(( +$dark-theme: mat.m2-define-dark-theme(( color: ( - primary: mat.define-palette(p.$primary-colors, 200), - accent: mat.define-palette(p.$tertiary-colors, 200), - warn: mat.define-palette(p.$error-colors, 200), + primary: mat.m2-define-palette(p.$primary-colors, 200), + accent: mat.m2-define-palette(p.$tertiary-colors, 200), + warn: mat.m2-define-palette(p.$error-colors, 200), ) )); @@ -97,7 +97,7 @@ $palettes: ( //@include nested-stepper.theme($light-theme); $bg-color: map.get(p.$primary-colors, 010); -$color-config: mat.get-color-config($light-theme); +$color-config: mat.m2-get-color-config($light-theme); @@ -110,7 +110,7 @@ $color-config: mat.get-color-config($light-theme); $dark-theme: theme-helper.modify-background($dark-theme, p.$dark-theme-background-palette-redef); $dark-theme: theme-helper.modify-foreground($dark-theme, p.$dark-theme-foreground-palette-redef); - $color-config: mat.get-color-config($dark-theme); + $color-config: mat.m2-get-color-config($dark-theme); @include mat.all-component-colors($dark-theme); @include mat.core-color($dark-theme); diff --git a/projects/ngx-reactome-style/src/assets/_variables.scss b/projects/ngx-reactome-style/src/assets/_variables.scss index cae671b..7babe98 100644 --- a/projects/ngx-reactome-style/src/assets/_variables.scss +++ b/projects/ngx-reactome-style/src/assets/_variables.scss @@ -10,38 +10,38 @@ $neutral-variant-palette: map.get($palettes, 'neutral-variant-palette'); - $primary: mat.get-color-from-palette($primary-palette, 600); - $surface: mat.get-color-from-palette($neutral-palette, 010); + $primary: mat.m2-get-color-from-palette($primary-palette, 600); + $surface: mat.m2-get-color-from-palette($neutral-palette, 010); :root { --primary: #{$primary}; - --on-primary: #{mat.get-color-from-palette($primary-palette, 002)}; - --primary-container: #{mat.get-color-from-palette($primary-palette, 100)}; - --on-primary-container: #{mat.get-color-from-palette($primary-palette, 900)}; - - --secondary: #{ mat.get-color-from-palette($secondary-palette, 600)}; - --on-secondary: #{mat.get-color-from-palette($secondary-palette, 002)}; - --secondary-container: #{ mat.get-color-from-palette($secondary-palette, 100)}; - --on-secondary-container: #{ mat.get-color-from-palette($secondary-palette, 900)}; - - --tertiary: #{mat.get-color-from-palette($tertiary-palette, 600)}; - --on-tertiary: #{mat.get-color-from-palette($tertiary-palette, 002)}; - --tertiary-container: #{ mat.get-color-from-palette($tertiary-palette, 100)}; - --on-tertiary-container: #{ mat.get-color-from-palette($tertiary-palette, 900)}; - - --error: #{mat.get-color-from-palette($error-palette, 600)}; - --on-error: #{mat.get-color-from-palette($error-palette, 002)}; - --error-container: #{ mat.get-color-from-palette($error-palette, 100)}; - --on-error-container: #{mat.get-color-from-palette($error-palette, 900)}; - - --background: #{mat.get-color-from-palette($neutral-palette, 010)}; - --on-background: #{mat.get-color-from-palette($neutral-palette, 900)}; + --on-primary: #{mat.m2-get-color-from-palette($primary-palette, 002)}; + --primary-container: #{mat.m2-get-color-from-palette($primary-palette, 100)}; + --on-primary-container: #{mat.m2-get-color-from-palette($primary-palette, 900)}; + + --secondary: #{ mat.m2-get-color-from-palette($secondary-palette, 600)}; + --on-secondary: #{mat.m2-get-color-from-palette($secondary-palette, 002)}; + --secondary-container: #{ mat.m2-get-color-from-palette($secondary-palette, 100)}; + --on-secondary-container: #{ mat.m2-get-color-from-palette($secondary-palette, 900)}; + + --tertiary: #{mat.m2-get-color-from-palette($tertiary-palette, 600)}; + --on-tertiary: #{mat.m2-get-color-from-palette($tertiary-palette, 002)}; + --tertiary-container: #{ mat.m2-get-color-from-palette($tertiary-palette, 100)}; + --on-tertiary-container: #{ mat.m2-get-color-from-palette($tertiary-palette, 900)}; + + --error: #{mat.m2-get-color-from-palette($error-palette, 600)}; + --on-error: #{mat.m2-get-color-from-palette($error-palette, 002)}; + --error-container: #{ mat.m2-get-color-from-palette($error-palette, 100)}; + --on-error-container: #{mat.m2-get-color-from-palette($error-palette, 900)}; + + --background: #{mat.m2-get-color-from-palette($neutral-palette, 010)}; + --on-background: #{mat.m2-get-color-from-palette($neutral-palette, 900)}; --surface: #{$surface}; - --on-surface: #{mat.get-color-from-palette($neutral-palette, 900)}; + --on-surface: #{mat.m2-get-color-from-palette($neutral-palette, 900)}; - --surface-variant: #{mat.get-color-from-palette($neutral-variant-palette, 100)}; - --on-surface-variant: #{mat.get-color-from-palette($neutral-variant-palette, 700)}; - --outline: #{mat.get-color-from-palette($neutral-variant-palette, 500)}; - --outline-variant: #{mat.get-color-from-palette($neutral-variant-palette, 200)}; + --surface-variant: #{mat.m2-get-color-from-palette($neutral-variant-palette, 100)}; + --on-surface-variant: #{mat.m2-get-color-from-palette($neutral-variant-palette, 700)}; + --outline: #{mat.m2-get-color-from-palette($neutral-variant-palette, 500)}; + --outline-variant: #{mat.m2-get-color-from-palette($neutral-variant-palette, 200)}; --surface1: #{linear-gradient(0, transparentize($primary, 0.95), transparentize($primary, 0.95)), $surface}; @@ -50,7 +50,7 @@ --surface4: #{linear-gradient(0, transparentize($primary, 0.88), transparentize($primary, 0.88)), $surface}; --surface5: #{linear-gradient(0, transparentize($primary, 0.86), transparentize($primary, 0.86)), $surface}; - --card: #{mat.get-color-from-palette($neutral-palette, 010)}; + --card: #{mat.m2-get-color-from-palette($neutral-palette, 010)}; --icon-positive: #0C9509; --hover: rgba(0, 0, 0, 0.04); @@ -58,39 +58,39 @@ .dark { - $primary: mat.get-color-from-palette($primary-palette, 200); - $surface: mat.get-color-from-palette($neutral-palette, 900); + $primary: mat.m2-get-color-from-palette($primary-palette, 200); + $surface: mat.m2-get-color-from-palette($neutral-palette, 900); --primary: #{$primary}; - --on-primary: #{mat.get-color-from-palette($primary-palette, 950)}; - --primary-container: #{mat.get-color-from-palette($primary-palette, 700)}; - --on-primary-container: #{mat.get-color-from-palette($primary-palette, 100)}; - - --secondary: #{mat.get-color-from-palette($secondary-palette, 200)}; - --on-secondary: #{mat.get-color-from-palette($secondary-palette, 800)}; - --secondary-container: #{mat.get-color-from-palette($secondary-palette, 700)}; - --on-secondary-container: #{mat.get-color-from-palette($secondary-palette, 100)}; - - --tertiary: #{mat.get-color-from-palette($tertiary-palette, 200)}; - --on-tertiary: #{mat.get-color-from-palette($tertiary-palette, 950)}; - --tertiary-container: #{mat.get-color-from-palette($tertiary-palette, 700)}; - --on-tertiary-container: #{mat.get-color-from-palette($tertiary-palette, 100)}; - - --error: #{mat.get-color-from-palette($error-palette, 200)}; - --on-error: #{mat.get-color-from-palette($error-palette, 800)}; - --error-container: #{mat.get-color-from-palette($error-palette, 700)}; - --on-error-container: #{mat.get-color-from-palette($error-palette, 100)}; - - --background: #{mat.get-color-from-palette($neutral-palette, 900)}; - --on-background: #{mat.get-color-from-palette($neutral-palette, 100)}; + --on-primary: #{mat.m2-get-color-from-palette($primary-palette, 950)}; + --primary-container: #{mat.m2-get-color-from-palette($primary-palette, 700)}; + --on-primary-container: #{mat.m2-get-color-from-palette($primary-palette, 100)}; + + --secondary: #{mat.m2-get-color-from-palette($secondary-palette, 200)}; + --on-secondary: #{mat.m2-get-color-from-palette($secondary-palette, 800)}; + --secondary-container: #{mat.m2-get-color-from-palette($secondary-palette, 700)}; + --on-secondary-container: #{mat.m2-get-color-from-palette($secondary-palette, 100)}; + + --tertiary: #{mat.m2-get-color-from-palette($tertiary-palette, 200)}; + --on-tertiary: #{mat.m2-get-color-from-palette($tertiary-palette, 950)}; + --tertiary-container: #{mat.m2-get-color-from-palette($tertiary-palette, 700)}; + --on-tertiary-container: #{mat.m2-get-color-from-palette($tertiary-palette, 100)}; + + --error: #{mat.m2-get-color-from-palette($error-palette, 200)}; + --on-error: #{mat.m2-get-color-from-palette($error-palette, 800)}; + --error-container: #{mat.m2-get-color-from-palette($error-palette, 700)}; + --on-error-container: #{mat.m2-get-color-from-palette($error-palette, 100)}; + + --background: #{mat.m2-get-color-from-palette($neutral-palette, 900)}; + --on-background: #{mat.m2-get-color-from-palette($neutral-palette, 100)}; --surface: #{$surface}; - --on-surface: #{mat.get-color-from-palette($neutral-palette, 100)}; + --on-surface: #{mat.m2-get-color-from-palette($neutral-palette, 002)}; - --surface-variant: #{mat.get-color-from-palette($neutral-variant-palette, 800)}; - --on-surface-variant: #{mat.get-color-from-palette($neutral-variant-palette, 200)}; - --outline: #{mat.get-color-from-palette($neutral-variant-palette, 400)}; - --outline-variant: #{mat.get-color-from-palette($neutral-variant-palette, 700)}; + --surface-variant: #{mat.m2-get-color-from-palette($neutral-variant-palette, 800)}; + --on-surface-variant: #{mat.m2-get-color-from-palette($neutral-variant-palette, 200)}; + --outline: #{mat.m2-get-color-from-palette($neutral-variant-palette, 400)}; + --outline-variant: #{mat.m2-get-color-from-palette($neutral-variant-palette, 700)}; --surface1: #{linear-gradient(0, transparentize($primary, 0.95), transparentize($primary, 0.95)), $surface}; --surface2: #{linear-gradient(0, transparentize($primary, 0.92), transparentize($primary, 0.92)), $surface}; @@ -98,7 +98,7 @@ --surface4: #{linear-gradient(0, transparentize($primary, 0.88), transparentize($primary, 0.88)), $surface}; --surface5: #{linear-gradient(0, transparentize($primary, 0.86), transparentize($primary, 0.86)), $surface}; - --card: #{mat.get-color-from-palette($neutral-palette, 800)}; + --card: #{mat.m2-get-color-from-palette($neutral-palette, 800)}; --icon-positive: #51F44D; --hover: rgba(255, 255, 255, 0.04); diff --git a/src/custom-theme.scss b/src/custom-theme.scss index 31b428f..0357e38 100644 --- a/src/custom-theme.scss +++ b/src/custom-theme.scss @@ -12,21 +12,21 @@ // Define the palettes for your theme using the Material Design palettes available in palette.scss // (imported above). For each palette, you can optionally specify a default, lighter, and darker // hue. Available color palettes: https://material.io/design/color/ -$ngx-reactome-base-primary: mat.define-palette(mat.$indigo-palette); -$ngx-reactome-base-accent: mat.define-palette(mat.$pink-palette, A200, A100, A400); +$ngx-reactome-base-primary: mat.m2-define-palette(mat.$m2-indigo-palette); +$ngx-reactome-base-accent: mat.m2-define-palette(mat.$m2-pink-palette, A200, A100, A400); // The warn palette is optional (defaults to red). -$ngx-reactome-base-warn: mat.define-palette(mat.$red-palette); +$ngx-reactome-base-warn: mat.m2-define-palette(mat.$m2-red-palette); // Create the theme object. A theme consists of configurations for individual // theming systems such as "color" or "typography". -$ngx-reactome-base-theme: mat.define-light-theme(( +$ngx-reactome-base-theme: mat.m2-define-light-theme(( color: ( primary: $ngx-reactome-base-primary, accent: $ngx-reactome-base-accent, warn: $ngx-reactome-base-warn, ), - typography: mat.define-typography-config(), + typography: mat.m2-define-typography-config(), density: 0 )); From b8c9dfdf9c0add8566b55254544de3088015dbd3 Mon Sep 17 00:00:00 2001 From: Eliot Ragueneau Date: Mon, 21 Oct 2024 11:23:27 +0100 Subject: [PATCH 21/49] :arrow_up: Angular 18 --- package-lock.json | 628 +++++++++--------- package.json | 27 +- .../ngx-reactome-cytoscape-style/package.json | 14 +- 3 files changed, 343 insertions(+), 326 deletions(-) diff --git a/package-lock.json b/package-lock.json index 5daefdc..476ac48 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,16 +8,16 @@ "name": "ngx-reactome-base", "version": "0.0.2", "dependencies": { - "@angular/animations": "^18.2.4", - "@angular/cdk": "^18.2.4", - "@angular/common": "^18.2.4", - "@angular/compiler": "^18.2.4", - "@angular/core": "^18.2.4", - "@angular/forms": "^18.2.4", - "@angular/material": "^18.2.4", - "@angular/platform-browser": "18.2.4", - "@angular/platform-browser-dynamic": "^18.2.4", - "@angular/router": "^18.2.4", + "@angular/animations": "^18.2.8", + "@angular/cdk": "^18.2.9", + "@angular/common": "^18.2.8", + "@angular/compiler": "^18.2.8", + "@angular/core": "^18.2.8", + "@angular/forms": "^18.2.8", + "@angular/material": "^18.2.9", + "@angular/platform-browser": "18.2.8", + "@angular/platform-browser-dynamic": "^18.2.8", + "@angular/router": "^18.2.8", "@ngneat/until-destroy": "^10.0.0", "cytoscape": "^3.29.2", "cytoscape-fcose": "^2.2.0", @@ -29,9 +29,9 @@ "zone.js": "~0.14.10" }, "devDependencies": { - "@angular-devkit/build-angular": "^18.2.4", - "@angular/cli": "^18.2.4", - "@angular/compiler-cli": "^18.2.4", + "@angular-devkit/build-angular": "^18.2.9", + "@angular/cli": "^18.2.9", + "@angular/compiler-cli": "^18.2.8", "@types/cytoscape": "^3.21.0", "@types/cytoscape-fcose": "^2.2.4", "@types/jasmine": "~4.3.0", @@ -112,17 +112,17 @@ "peer": true }, "node_modules/@angular-devkit/build-angular": { - "version": "18.2.4", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-18.2.4.tgz", - "integrity": "sha512-zLDstS95Yb7iBA1ZCYe3LsOLpIhr0ZC3sZ03PhVvAGbVRGSbQNnhQRZLKMk+LDhYJiG+eNFQGLfU3RfZrGds7A==", + "version": "18.2.9", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-18.2.9.tgz", + "integrity": "sha512-d4W6t9vBozFUmOP2VvihMcSg/zgr3AvJY6/b7OPuATlK+W3P6tmsqxGIQ6eKc1TxXeu3lWhi14mV2pPykfrwfA==", "dev": true, "license": "MIT", "dependencies": { "@ampproject/remapping": "2.3.0", - "@angular-devkit/architect": "0.1802.4", - "@angular-devkit/build-webpack": "0.1802.4", - "@angular-devkit/core": "18.2.4", - "@angular/build": "18.2.4", + "@angular-devkit/architect": "0.1802.9", + "@angular-devkit/build-webpack": "0.1802.9", + "@angular-devkit/core": "18.2.9", + "@angular/build": "18.2.9", "@babel/core": "7.25.2", "@babel/generator": "7.25.0", "@babel/helper-annotate-as-pure": "7.24.7", @@ -133,7 +133,7 @@ "@babel/preset-env": "7.25.3", "@babel/runtime": "7.25.0", "@discoveryjs/json-ext": "0.6.1", - "@ngtools/webpack": "18.2.4", + "@ngtools/webpack": "18.2.9", "@vitejs/plugin-basic-ssl": "1.1.0", "ansi-colors": "4.1.3", "autoprefixer": "10.4.20", @@ -173,7 +173,7 @@ "terser": "5.31.6", "tree-kill": "1.2.2", "tslib": "2.6.3", - "vite": "5.4.0", + "vite": "5.4.6", "watchpack": "2.4.1", "webpack": "5.94.0", "webpack-dev-middleware": "7.4.2", @@ -241,13 +241,13 @@ } }, "node_modules/@angular-devkit/build-angular/node_modules/@angular-devkit/architect": { - "version": "0.1802.4", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1802.4.tgz", - "integrity": "sha512-VH7AwGng1zuWPTJoH1IgHYeNhqZIgzlwDx39JPmArZAW/WZHDILWB7ipbTNw0R4U4VncrXJqDmMVex7NdHP6sg==", + "version": "0.1802.9", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1802.9.tgz", + "integrity": "sha512-fubJf4WC/t3ITy+tyjI4/CKKwUP4XJTmV+Y0nyPcrkcthVyUcIpZB74NlUOvg6WECiPQuIc+CtoAaA9X5+RQ5Q==", "dev": true, "license": "MIT", "dependencies": { - "@angular-devkit/core": "18.2.4", + "@angular-devkit/core": "18.2.9", "rxjs": "7.8.1" }, "engines": { @@ -257,9 +257,9 @@ } }, "node_modules/@angular-devkit/build-angular/node_modules/@angular-devkit/core": { - "version": "18.2.4", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-18.2.4.tgz", - "integrity": "sha512-svlgZ0vbLrfNJAQE5WePAutcYIyA7C0OfzKSTMsfV2X1I+1blYDaZIu/ocnHqofMHu6ZqdSaaU/p/rieqU8fcA==", + "version": "18.2.9", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-18.2.9.tgz", + "integrity": "sha512-bsVt//5E0ua7FZfO0dCF/qGGY6KQD34/bNGyRu5B6HedimpdU2/0PGDptksU5v3yKEc9gNw0xC6mT0UsY/R9pA==", "dev": true, "license": "MIT", "dependencies": { @@ -336,27 +336,14 @@ "node": ">=10" } }, - "node_modules/@angular-devkit/build-angular/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/@angular-devkit/build-webpack": { - "version": "0.1802.4", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1802.4.tgz", - "integrity": "sha512-juaDoguYccObm2xnzRDRlOtiL7ZyZcSAyiyls6QuO8hoo/h6phdHALJkUhI9+SIhCRQ6eUQtolC7hN3J+FZKnA==", + "version": "0.1802.9", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1802.9.tgz", + "integrity": "sha512-p7xNGo5ZTV/Z0Rk+q2/E68QQLw9VT33kauDh6s010jIeBLrOwMo74JpzXMSFttQo5O4bLKP8IORzIM+0q7Uzjg==", "dev": true, "license": "MIT", "dependencies": { - "@angular-devkit/architect": "0.1802.4", + "@angular-devkit/architect": "0.1802.9", "rxjs": "7.8.1" }, "engines": { @@ -370,13 +357,13 @@ } }, "node_modules/@angular-devkit/build-webpack/node_modules/@angular-devkit/architect": { - "version": "0.1802.4", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1802.4.tgz", - "integrity": "sha512-VH7AwGng1zuWPTJoH1IgHYeNhqZIgzlwDx39JPmArZAW/WZHDILWB7ipbTNw0R4U4VncrXJqDmMVex7NdHP6sg==", + "version": "0.1802.9", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1802.9.tgz", + "integrity": "sha512-fubJf4WC/t3ITy+tyjI4/CKKwUP4XJTmV+Y0nyPcrkcthVyUcIpZB74NlUOvg6WECiPQuIc+CtoAaA9X5+RQ5Q==", "dev": true, "license": "MIT", "dependencies": { - "@angular-devkit/core": "18.2.4", + "@angular-devkit/core": "18.2.9", "rxjs": "7.8.1" }, "engines": { @@ -386,9 +373,9 @@ } }, "node_modules/@angular-devkit/build-webpack/node_modules/@angular-devkit/core": { - "version": "18.2.4", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-18.2.4.tgz", - "integrity": "sha512-svlgZ0vbLrfNJAQE5WePAutcYIyA7C0OfzKSTMsfV2X1I+1blYDaZIu/ocnHqofMHu6ZqdSaaU/p/rieqU8fcA==", + "version": "18.2.9", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-18.2.9.tgz", + "integrity": "sha512-bsVt//5E0ua7FZfO0dCF/qGGY6KQD34/bNGyRu5B6HedimpdU2/0PGDptksU5v3yKEc9gNw0xC6mT0UsY/R9pA==", "dev": true, "license": "MIT", "dependencies": { @@ -536,9 +523,9 @@ } }, "node_modules/@angular/animations": { - "version": "18.2.4", - "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-18.2.4.tgz", - "integrity": "sha512-ajjXpLD+SyxbHnmhj2ZvYpXneviOjcBgU9L2UX4OVS0jVWxCNHLhJrcMqtqFHA6U5fPnhPNR9cmnt6tmqri0rA==", + "version": "18.2.8", + "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-18.2.8.tgz", + "integrity": "sha512-dMSn2hg70siv3lhP+vqhMbgc923xw6XBUvnpCPEzhZqFHvPXfh/LubmsD5RtqHmjWebXtgVcgS+zg3Gq3jB2lg==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -547,18 +534,18 @@ "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/core": "18.2.4" + "@angular/core": "18.2.8" } }, "node_modules/@angular/build": { - "version": "18.2.4", - "resolved": "https://registry.npmjs.org/@angular/build/-/build-18.2.4.tgz", - "integrity": "sha512-GVs7O7wxNMJCkqh6Vv2u9GEArWg9jyEt8Fofd6CJGzxKBYQ4hR5gjzL/lU6kNFiMcioS1wm1f6qtJtgilUO+9A==", + "version": "18.2.9", + "resolved": "https://registry.npmjs.org/@angular/build/-/build-18.2.9.tgz", + "integrity": "sha512-o1hOEM2e6ARy+ck2Pohl0d/RFgbbXTw6/hTLAj3CBKjtqAGStRaVF2UlJjhi+xOxlfsOPuJJc9IpzLBteku+Ag==", "dev": true, "license": "MIT", "dependencies": { "@ampproject/remapping": "2.3.0", - "@angular-devkit/architect": "0.1802.4", + "@angular-devkit/architect": "0.1802.9", "@babel/core": "7.25.2", "@babel/helper-annotate-as-pure": "7.24.7", "@babel/helper-split-export-declaration": "7.24.7", @@ -577,10 +564,10 @@ "parse5-html-rewriting-stream": "7.0.0", "picomatch": "4.0.2", "piscina": "4.6.1", - "rollup": "4.20.0", + "rollup": "4.22.4", "sass": "1.77.6", "semver": "7.6.3", - "vite": "5.4.0", + "vite": "5.4.6", "watchpack": "2.4.1" }, "engines": { @@ -620,13 +607,13 @@ } }, "node_modules/@angular/build/node_modules/@angular-devkit/architect": { - "version": "0.1802.4", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1802.4.tgz", - "integrity": "sha512-VH7AwGng1zuWPTJoH1IgHYeNhqZIgzlwDx39JPmArZAW/WZHDILWB7ipbTNw0R4U4VncrXJqDmMVex7NdHP6sg==", + "version": "0.1802.9", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1802.9.tgz", + "integrity": "sha512-fubJf4WC/t3ITy+tyjI4/CKKwUP4XJTmV+Y0nyPcrkcthVyUcIpZB74NlUOvg6WECiPQuIc+CtoAaA9X5+RQ5Q==", "dev": true, "license": "MIT", "dependencies": { - "@angular-devkit/core": "18.2.4", + "@angular-devkit/core": "18.2.9", "rxjs": "7.8.1" }, "engines": { @@ -636,9 +623,9 @@ } }, "node_modules/@angular/build/node_modules/@angular-devkit/core": { - "version": "18.2.4", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-18.2.4.tgz", - "integrity": "sha512-svlgZ0vbLrfNJAQE5WePAutcYIyA7C0OfzKSTMsfV2X1I+1blYDaZIu/ocnHqofMHu6ZqdSaaU/p/rieqU8fcA==", + "version": "18.2.9", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-18.2.9.tgz", + "integrity": "sha512-bsVt//5E0ua7FZfO0dCF/qGGY6KQD34/bNGyRu5B6HedimpdU2/0PGDptksU5v3yKEc9gNw0xC6mT0UsY/R9pA==", "dev": true, "license": "MIT", "dependencies": { @@ -698,23 +685,10 @@ } } }, - "node_modules/@angular/build/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/@angular/cdk": { - "version": "18.2.4", - "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-18.2.4.tgz", - "integrity": "sha512-o+TuxZDqStfkviEkCR05pVyP6R2RIruEs/45Cms76hlsIheMoxRaxir/yrHdh4tZESJJhcO/EVE+aymNIRWAfg==", + "version": "18.2.9", + "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-18.2.9.tgz", + "integrity": "sha512-hV2dXpvy2TLwCsRtI/ZXkb2EoaJiellRr+kbcnKwO15LFoz3mTAOhKtsvu7yOyURkaPiI605qiIZrPP4zLL1qw==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -729,18 +703,18 @@ } }, "node_modules/@angular/cli": { - "version": "18.2.4", - "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-18.2.4.tgz", - "integrity": "sha512-n+Y2xlgcpTZ+MZmycf2b3ceVvANDJFkDEodobVtyG63WvGOhkZ3aGhT7sHguKpAQwJLicSf8zF2z+v1Yi0DvRw==", + "version": "18.2.9", + "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-18.2.9.tgz", + "integrity": "sha512-ejTIqwvPABwK7MtVmI2qWbEaMhhbHNsq0NPzl1hwLtkrLbjdDrEVv0Wy+gN0xqrT9NyCPl4AmNLz/xuYTzgU5g==", "dev": true, "license": "MIT", "dependencies": { - "@angular-devkit/architect": "0.1802.4", - "@angular-devkit/core": "18.2.4", - "@angular-devkit/schematics": "18.2.4", + "@angular-devkit/architect": "0.1802.9", + "@angular-devkit/core": "18.2.9", + "@angular-devkit/schematics": "18.2.9", "@inquirer/prompts": "5.3.8", "@listr2/prompt-adapter-inquirer": "2.0.15", - "@schematics/angular": "18.2.4", + "@schematics/angular": "18.2.9", "@yarnpkg/lockfile": "1.1.0", "ini": "4.1.3", "jsonc-parser": "3.3.1", @@ -763,13 +737,13 @@ } }, "node_modules/@angular/cli/node_modules/@angular-devkit/architect": { - "version": "0.1802.4", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1802.4.tgz", - "integrity": "sha512-VH7AwGng1zuWPTJoH1IgHYeNhqZIgzlwDx39JPmArZAW/WZHDILWB7ipbTNw0R4U4VncrXJqDmMVex7NdHP6sg==", + "version": "0.1802.9", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1802.9.tgz", + "integrity": "sha512-fubJf4WC/t3ITy+tyjI4/CKKwUP4XJTmV+Y0nyPcrkcthVyUcIpZB74NlUOvg6WECiPQuIc+CtoAaA9X5+RQ5Q==", "dev": true, "license": "MIT", "dependencies": { - "@angular-devkit/core": "18.2.4", + "@angular-devkit/core": "18.2.9", "rxjs": "7.8.1" }, "engines": { @@ -779,9 +753,9 @@ } }, "node_modules/@angular/cli/node_modules/@angular-devkit/core": { - "version": "18.2.4", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-18.2.4.tgz", - "integrity": "sha512-svlgZ0vbLrfNJAQE5WePAutcYIyA7C0OfzKSTMsfV2X1I+1blYDaZIu/ocnHqofMHu6ZqdSaaU/p/rieqU8fcA==", + "version": "18.2.9", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-18.2.9.tgz", + "integrity": "sha512-bsVt//5E0ua7FZfO0dCF/qGGY6KQD34/bNGyRu5B6HedimpdU2/0PGDptksU5v3yKEc9gNw0xC6mT0UsY/R9pA==", "dev": true, "license": "MIT", "dependencies": { @@ -807,13 +781,13 @@ } }, "node_modules/@angular/cli/node_modules/@angular-devkit/schematics": { - "version": "18.2.4", - "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-18.2.4.tgz", - "integrity": "sha512-s2WdUhyLlKj5kOjb6vrvJg9/31KvgyRJGjy7PnzS43tpwF9MLuM3AYhuJsXHPhx+i0nyWn/Jnd8ZLjMzXljSxg==", + "version": "18.2.9", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-18.2.9.tgz", + "integrity": "sha512-aIY5/IomDOINGCtFYi77uo0acDpdQNNCighfBBUGEBNMQ1eE3oGNGpLAH/qWeuxJndgmxrdKsvws9DdT46kLig==", "dev": true, "license": "MIT", "dependencies": { - "@angular-devkit/core": "18.2.4", + "@angular-devkit/core": "18.2.9", "jsonc-parser": "3.3.1", "magic-string": "0.30.11", "ora": "5.4.1", @@ -860,23 +834,10 @@ } } }, - "node_modules/@angular/cli/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/@angular/common": { - "version": "18.2.4", - "resolved": "https://registry.npmjs.org/@angular/common/-/common-18.2.4.tgz", - "integrity": "sha512-flUaKhdr8KvtjH0cLC6Rrjirt8GsiFlrmZLZplr784O3Gkei2VBBNFoopgmlEzbVGPiIG5QlFZH9yvah6JPQZw==", + "version": "18.2.8", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-18.2.8.tgz", + "integrity": "sha512-TYsKtE5nVaIScWSLGSO34Skc+s3hB/BujSddnfQHoNFvPT/WR0dfmdlpVCTeLj+f50htFoMhW11tW99PbK+whQ==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -885,14 +846,14 @@ "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/core": "18.2.4", + "@angular/core": "18.2.8", "rxjs": "^6.5.3 || ^7.4.0" } }, "node_modules/@angular/compiler": { - "version": "18.2.4", - "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-18.2.4.tgz", - "integrity": "sha512-o3ngFr1Bjt7cKOu4DSZJGCUF9YPTxJee97wFon2eNFj6FFNTmnGwAvsnJjHBMmk90fmZLC2/HpPdhYz7WprMZQ==", + "version": "18.2.8", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-18.2.8.tgz", + "integrity": "sha512-JRedHNfK1CCPVyeGQB5w3WBYqMA6X8Q240CkvjlGfn0pVXihf9DWk3nkSQJVgYxpvpHfxdgjaYZ5IpMzlkmkhw==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -901,7 +862,7 @@ "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/core": "18.2.4" + "@angular/core": "18.2.8" }, "peerDependenciesMeta": { "@angular/core": { @@ -910,15 +871,15 @@ } }, "node_modules/@angular/compiler-cli": { - "version": "18.2.4", - "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-18.2.4.tgz", - "integrity": "sha512-BIp5zr+npqSs/4KWPxwKdn7+sjo008ieNOQDlXyQms9BKlxx/gDnj7W2TsxhrkDTYCIHF73fJZ7u2U8Qy4JWfw==", + "version": "18.2.8", + "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-18.2.8.tgz", + "integrity": "sha512-OksDE4LWQUCcIvMjtZF7eiDCdIMrcMMpC1+Q0PIYi7KmnqXFGs4/Y0NdJvtn/LrQznzz5WaKM3ZDVNZTRX4wmw==", "dev": true, "license": "MIT", "dependencies": { "@babel/core": "7.25.2", "@jridgewell/sourcemap-codec": "^1.4.14", - "chokidar": "^3.0.0", + "chokidar": "^4.0.0", "convert-source-map": "^1.5.1", "reflect-metadata": "^0.2.0", "semver": "^7.0.0", @@ -934,14 +895,44 @@ "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/compiler": "18.2.4", + "@angular/compiler": "18.2.8", "typescript": ">=5.4 <5.6" } }, + "node_modules/@angular/compiler-cli/node_modules/chokidar": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.1.tgz", + "integrity": "sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "readdirp": "^4.0.1" + }, + "engines": { + "node": ">= 14.16.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@angular/compiler-cli/node_modules/readdirp": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.0.2.tgz", + "integrity": "sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14.16.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + }, "node_modules/@angular/core": { - "version": "18.2.4", - "resolved": "https://registry.npmjs.org/@angular/core/-/core-18.2.4.tgz", - "integrity": "sha512-ulYmYpI/ZVQ5BL38rBy4DS/9wgGWmVD9Uo6tcrLqCzt1G1G2nKwseZv009536pHfk6dj2HdPSkpcerhWh57DWw==", + "version": "18.2.8", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-18.2.8.tgz", + "integrity": "sha512-NwIuX/Iby1jT6Iv1/s6S3wOFf8xfuQR3MPGvKhGgNtjXLbHG+TXceK9+QPZC0s9/Z8JR/hz+li34B79GrIKgUg==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -955,9 +946,9 @@ } }, "node_modules/@angular/forms": { - "version": "18.2.4", - "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-18.2.4.tgz", - "integrity": "sha512-rlLhReauUz6jhLCEkGabLqqF6xLaTfvxafuj2ojzcqoKGSZcXDIM/UOSoWX756B8NtrpsuglpGBZjZlsrAZGsg==", + "version": "18.2.8", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-18.2.8.tgz", + "integrity": "sha512-JCLki7KC6D5vF6dE6yGlBmW33khIgpHs8N9SzuiJtkQqNDTIQA8cPsGV6qpLpxflxASynQOX5lDkWYdQyfm77Q==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -966,23 +957,23 @@ "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/common": "18.2.4", - "@angular/core": "18.2.4", - "@angular/platform-browser": "18.2.4", + "@angular/common": "18.2.8", + "@angular/core": "18.2.8", + "@angular/platform-browser": "18.2.8", "rxjs": "^6.5.3 || ^7.4.0" } }, "node_modules/@angular/material": { - "version": "18.2.4", - "resolved": "https://registry.npmjs.org/@angular/material/-/material-18.2.4.tgz", - "integrity": "sha512-F09145mI/EAHY9ngdnQTo3pFRmUoU/50i6cmddtL4cse0WidatoodQr0gZCksxhmpJgRy5mTcjh/LU2hShOgcA==", + "version": "18.2.9", + "resolved": "https://registry.npmjs.org/@angular/material/-/material-18.2.9.tgz", + "integrity": "sha512-M2oCgPPIMMd6BLgEJCD+FvdC7gRDeCjj9yktNn3ctHmkKUWRvpJ3xRBH/WjVXb+9fPCCW1iNwZI7+bN1fHE7cA==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" }, "peerDependencies": { "@angular/animations": "^18.0.0 || ^19.0.0", - "@angular/cdk": "18.2.4", + "@angular/cdk": "18.2.9", "@angular/common": "^18.0.0 || ^19.0.0", "@angular/core": "^18.0.0 || ^19.0.0", "@angular/forms": "^18.0.0 || ^19.0.0", @@ -991,9 +982,9 @@ } }, "node_modules/@angular/platform-browser": { - "version": "18.2.4", - "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-18.2.4.tgz", - "integrity": "sha512-ddzq5MyPvFyTv0kUe8U9fbhE1nZtLYBCFKDqICrzHXiVRAdqLv6qtE5PtbURrdspSy1u/YEGV4LdkNJK3UgnZQ==", + "version": "18.2.8", + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-18.2.8.tgz", + "integrity": "sha512-EPai4ZPqSq3ilLJUC85kPi9wo5j5suQovwtgRyjM/75D9Qy4TV19g8hkVM5Co/zrltO8a2G6vDscCNI5BeGw2A==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -1002,9 +993,9 @@ "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/animations": "18.2.4", - "@angular/common": "18.2.4", - "@angular/core": "18.2.4" + "@angular/animations": "18.2.8", + "@angular/common": "18.2.8", + "@angular/core": "18.2.8" }, "peerDependenciesMeta": { "@angular/animations": { @@ -1013,9 +1004,9 @@ } }, "node_modules/@angular/platform-browser-dynamic": { - "version": "18.2.4", - "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-18.2.4.tgz", - "integrity": "sha512-0nA04zJueGzdnl37TJ7guDCrzxYS4fjqgvYKiOpFktpMHPuNrBlAQo5YA7u20HGFG3i47PQh7hEWhQaqcXXpQw==", + "version": "18.2.8", + "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-18.2.8.tgz", + "integrity": "sha512-poZoapDqyN/rxGKQ3C6esdPiPLMkSpP2v12hoEa12KHgfPk7T1e+a+NMyJjV8HeOY3WyvL7tGRhW0NPTajTkhw==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -1024,16 +1015,16 @@ "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/common": "18.2.4", - "@angular/compiler": "18.2.4", - "@angular/core": "18.2.4", - "@angular/platform-browser": "18.2.4" + "@angular/common": "18.2.8", + "@angular/compiler": "18.2.8", + "@angular/core": "18.2.8", + "@angular/platform-browser": "18.2.8" } }, "node_modules/@angular/router": { - "version": "18.2.4", - "resolved": "https://registry.npmjs.org/@angular/router/-/router-18.2.4.tgz", - "integrity": "sha512-kYNHD3K1Xou2PRMqbG2tVahtMobgDlhwHdMB7G5oFHg6K13gQ2TmopF1U5A2wYtIMdsC+AkVGIJEOxQN8fmgcA==", + "version": "18.2.8", + "resolved": "https://registry.npmjs.org/@angular/router/-/router-18.2.8.tgz", + "integrity": "sha512-L+olYgxIiBq+tbfayVI0cv1yOuymsw33msnGC2l/vpc9sSVfqGzESFnB4yMVU3vHtE9v6v2Y6O+iV44/b79W/g==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -1042,9 +1033,9 @@ "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/common": "18.2.4", - "@angular/core": "18.2.4", - "@angular/platform-browser": "18.2.4", + "@angular/common": "18.2.8", + "@angular/core": "18.2.8", + "@angular/platform-browser": "18.2.8", "rxjs": "^6.5.3 || ^7.4.0" } }, @@ -3800,9 +3791,9 @@ } }, "node_modules/@jsonjoy.com/util": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/util/-/util-1.3.0.tgz", - "integrity": "sha512-Cebt4Vk7k1xHy87kHY7KSPLT77A7Ev7IfOblyLZhtYEhrdQ6fX4EoLq3xOQ3O/DRMEh2ok5nyC180E+ABS8Wmw==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/util/-/util-1.5.0.tgz", + "integrity": "sha512-ojoNsrIuPI9g6o8UxhraZQSyF2ByJanAY4cTFbc8Mf2AXEF4aQRGY1dJxyJpuyav8r9FGflEt/Ff3u5Nt6YMPA==", "dev": true, "license": "Apache-2.0", "engines": { @@ -4020,9 +4011,9 @@ } }, "node_modules/@ngtools/webpack": { - "version": "18.2.4", - "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-18.2.4.tgz", - "integrity": "sha512-JVDRexu3q7lg2oqJG36RtX7cqTheoZRwg2HhMV8hYXUDL0fyOrv2galwTCgXrx7vAjlx45L2uR2kuWbgW0VVcQ==", + "version": "18.2.9", + "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-18.2.9.tgz", + "integrity": "sha512-/apDvs4qevjSWoYw3h3/c/mILFrf2EgCJfBy9f3E7PEgi2tjifOIszBRrLQkVpeHAaFgEH8zKS2ol0hAmOl8sw==", "dev": true, "license": "MIT", "engines": { @@ -4446,9 +4437,9 @@ } }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.20.0.tgz", - "integrity": "sha512-TSpWzflCc4VGAUJZlPpgAJE1+V60MePDQnBd7PPkpuEmOy8i87aL6tinFGKBFKuEDikYpig72QzdT3QPYIi+oA==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.22.4.tgz", + "integrity": "sha512-Fxamp4aEZnfPOcGA8KSNEohV8hX7zVHOemC8jVBoBUHu5zpJK/Eu3uJwt6BMgy9fkvzxDaurgj96F/NiLukF2w==", "cpu": [ "arm" ], @@ -4460,9 +4451,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.20.0.tgz", - "integrity": "sha512-u00Ro/nok7oGzVuh/FMYfNoGqxU5CPWz1mxV85S2w9LxHR8OoMQBuSk+3BKVIDYgkpeOET5yXkx90OYFc+ytpQ==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.22.4.tgz", + "integrity": "sha512-VXoK5UMrgECLYaMuGuVTOx5kcuap1Jm8g/M83RnCHBKOqvPPmROFJGQaZhGccnsFtfXQ3XYa4/jMCJvZnbJBdA==", "cpu": [ "arm64" ], @@ -4474,9 +4465,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.20.0.tgz", - "integrity": "sha512-uFVfvzvsdGtlSLuL0ZlvPJvl6ZmrH4CBwLGEFPe7hUmf7htGAN+aXo43R/V6LATyxlKVC/m6UsLb7jbG+LG39Q==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.22.4.tgz", + "integrity": "sha512-xMM9ORBqu81jyMKCDP+SZDhnX2QEVQzTcC6G18KlTQEzWK8r/oNZtKuZaCcHhnsa6fEeOBionoyl5JsAbE/36Q==", "cpu": [ "arm64" ], @@ -4488,9 +4479,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.20.0.tgz", - "integrity": "sha512-xbrMDdlev53vNXexEa6l0LffojxhqDTBeL+VUxuuIXys4x6xyvbKq5XqTXBCEUA8ty8iEJblHvFaWRJTk/icAQ==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.22.4.tgz", + "integrity": "sha512-aJJyYKQwbHuhTUrjWjxEvGnNNBCnmpHDvrb8JFDbeSH3m2XdHcxDd3jthAzvmoI8w/kSjd2y0udT+4okADsZIw==", "cpu": [ "x64" ], @@ -4502,9 +4493,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.20.0.tgz", - "integrity": "sha512-jMYvxZwGmoHFBTbr12Xc6wOdc2xA5tF5F2q6t7Rcfab68TT0n+r7dgawD4qhPEvasDsVpQi+MgDzj2faOLsZjA==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.22.4.tgz", + "integrity": "sha512-j63YtCIRAzbO+gC2L9dWXRh5BFetsv0j0va0Wi9epXDgU/XUi5dJKo4USTttVyK7fGw2nPWK0PbAvyliz50SCQ==", "cpu": [ "arm" ], @@ -4516,9 +4507,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.20.0.tgz", - "integrity": "sha512-1asSTl4HKuIHIB1GcdFHNNZhxAYEdqML/MW4QmPS4G0ivbEcBr1JKlFLKsIRqjSwOBkdItn3/ZDlyvZ/N6KPlw==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.22.4.tgz", + "integrity": "sha512-dJnWUgwWBX1YBRsuKKMOlXCzh2Wu1mlHzv20TpqEsfdZLb3WoJW2kIEsGwLkroYf24IrPAvOT/ZQ2OYMV6vlrg==", "cpu": [ "arm" ], @@ -4530,9 +4521,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.20.0.tgz", - "integrity": "sha512-COBb8Bkx56KldOYJfMf6wKeYJrtJ9vEgBRAOkfw6Ens0tnmzPqvlpjZiLgkhg6cA3DGzCmLmmd319pmHvKWWlQ==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.22.4.tgz", + "integrity": "sha512-AdPRoNi3NKVLolCN/Sp4F4N1d98c4SBnHMKoLuiG6RXgoZ4sllseuGioszumnPGmPM2O7qaAX/IJdeDU8f26Aw==", "cpu": [ "arm64" ], @@ -4544,9 +4535,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.20.0.tgz", - "integrity": "sha512-+it+mBSyMslVQa8wSPvBx53fYuZK/oLTu5RJoXogjk6x7Q7sz1GNRsXWjn6SwyJm8E/oMjNVwPhmNdIjwP135Q==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.22.4.tgz", + "integrity": "sha512-Gl0AxBtDg8uoAn5CCqQDMqAx22Wx22pjDOjBdmG0VIWX3qUBHzYmOKh8KXHL4UpogfJ14G4wk16EQogF+v8hmA==", "cpu": [ "arm64" ], @@ -4558,9 +4549,9 @@ ] }, "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.20.0.tgz", - "integrity": "sha512-yAMvqhPfGKsAxHN8I4+jE0CpLWD8cv4z7CK7BMmhjDuz606Q2tFKkWRY8bHR9JQXYcoLfopo5TTqzxgPUjUMfw==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.22.4.tgz", + "integrity": "sha512-3aVCK9xfWW1oGQpTsYJJPF6bfpWfhbRnhdlyhak2ZiyFLDaayz0EP5j9V1RVLAAxlmWKTDfS9wyRyY3hvhPoOg==", "cpu": [ "ppc64" ], @@ -4572,9 +4563,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.20.0.tgz", - "integrity": "sha512-qmuxFpfmi/2SUkAw95TtNq/w/I7Gpjurx609OOOV7U4vhvUhBcftcmXwl3rqAek+ADBwSjIC4IVNLiszoj3dPA==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.22.4.tgz", + "integrity": "sha512-ePYIir6VYnhgv2C5Xe9u+ico4t8sZWXschR6fMgoPUK31yQu7hTEJb7bCqivHECwIClJfKgE7zYsh1qTP3WHUA==", "cpu": [ "riscv64" ], @@ -4586,9 +4577,9 @@ ] }, "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.20.0.tgz", - "integrity": "sha512-I0BtGXddHSHjV1mqTNkgUZLnS3WtsqebAXv11D5BZE/gfw5KoyXSAXVqyJximQXNvNzUo4GKlCK/dIwXlz+jlg==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.22.4.tgz", + "integrity": "sha512-GqFJ9wLlbB9daxhVlrTe61vJtEY99/xB3C8e4ULVsVfflcpmR6c8UZXjtkMA6FhNONhj2eA5Tk9uAVw5orEs4Q==", "cpu": [ "s390x" ], @@ -4600,9 +4591,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.20.0.tgz", - "integrity": "sha512-y+eoL2I3iphUg9tN9GB6ku1FA8kOfmF4oUEWhztDJ4KXJy1agk/9+pejOuZkNFhRwHAOxMsBPLbXPd6mJiCwew==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.22.4.tgz", + "integrity": "sha512-87v0ol2sH9GE3cLQLNEy0K/R0pz1nvg76o8M5nhMR0+Q+BBGLnb35P0fVz4CQxHYXaAOhE8HhlkaZfsdUOlHwg==", "cpu": [ "x64" ], @@ -4614,9 +4605,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.20.0.tgz", - "integrity": "sha512-hM3nhW40kBNYUkZb/r9k2FKK+/MnKglX7UYd4ZUy5DJs8/sMsIbqWK2piZtVGE3kcXVNj3B2IrUYROJMMCikNg==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.22.4.tgz", + "integrity": "sha512-UV6FZMUgePDZrFjrNGIWzDo/vABebuXBhJEqrHxrGiU6HikPy0Z3LfdtciIttEUQfuDdCn8fqh7wiFJjCNwO+g==", "cpu": [ "x64" ], @@ -4628,9 +4619,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.20.0.tgz", - "integrity": "sha512-psegMvP+Ik/Bg7QRJbv8w8PAytPA7Uo8fpFjXyCRHWm6Nt42L+JtoqH8eDQ5hRP7/XW2UiIriy1Z46jf0Oa1kA==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.22.4.tgz", + "integrity": "sha512-BjI+NVVEGAXjGWYHz/vv0pBqfGoUH0IGZ0cICTn7kB9PyjrATSkX+8WkguNjWoj2qSr1im/+tTGRaY+4/PdcQw==", "cpu": [ "arm64" ], @@ -4642,9 +4633,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.20.0.tgz", - "integrity": "sha512-GabekH3w4lgAJpVxkk7hUzUf2hICSQO0a/BLFA11/RMxQT92MabKAqyubzDZmMOC/hcJNlc+rrypzNzYl4Dx7A==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.22.4.tgz", + "integrity": "sha512-SiWG/1TuUdPvYmzmYnmd3IEifzR61Tragkbx9D3+R8mzQqDBz8v+BvZNDlkiTtI9T15KYZhP0ehn3Dld4n9J5g==", "cpu": [ "ia32" ], @@ -4656,9 +4647,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.20.0.tgz", - "integrity": "sha512-aJ1EJSuTdGnM6qbVC4B5DSmozPTqIag9fSzXRNNo+humQLG89XpPgdt16Ia56ORD7s+H8Pmyx44uczDQ0yDzpg==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.22.4.tgz", + "integrity": "sha512-j8pPKp53/lq9lMXN57S8cFz0MynJk8OWNuUnXct/9KCpKU7DgU3bYMJhwWmcqC0UU29p8Lr0/7KEVcaM6bf47Q==", "cpu": [ "x64" ], @@ -4690,14 +4681,14 @@ } }, "node_modules/@schematics/angular": { - "version": "18.2.4", - "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-18.2.4.tgz", - "integrity": "sha512-GxrPv4eOPrjMKoAVhch9eprW8H/DFhBy5Zgp7CgGui9NprYkkubxw/yyo11WfR5CFZ/q5AfsjV76dPCkhLwLmA==", + "version": "18.2.9", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-18.2.9.tgz", + "integrity": "sha512-LlMHZQ6f8zrqSK24OBXi4u2MTNHNu9ZN6JXpbElq0bz/9QkUR2zy+Kk2wLpPxCwXYTZby7/xgHiTzXvG+zTdhw==", "dev": true, "license": "MIT", "dependencies": { - "@angular-devkit/core": "18.2.4", - "@angular-devkit/schematics": "18.2.4", + "@angular-devkit/core": "18.2.9", + "@angular-devkit/schematics": "18.2.9", "jsonc-parser": "3.3.1" }, "engines": { @@ -4707,9 +4698,9 @@ } }, "node_modules/@schematics/angular/node_modules/@angular-devkit/core": { - "version": "18.2.4", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-18.2.4.tgz", - "integrity": "sha512-svlgZ0vbLrfNJAQE5WePAutcYIyA7C0OfzKSTMsfV2X1I+1blYDaZIu/ocnHqofMHu6ZqdSaaU/p/rieqU8fcA==", + "version": "18.2.9", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-18.2.9.tgz", + "integrity": "sha512-bsVt//5E0ua7FZfO0dCF/qGGY6KQD34/bNGyRu5B6HedimpdU2/0PGDptksU5v3yKEc9gNw0xC6mT0UsY/R9pA==", "dev": true, "license": "MIT", "dependencies": { @@ -4735,13 +4726,13 @@ } }, "node_modules/@schematics/angular/node_modules/@angular-devkit/schematics": { - "version": "18.2.4", - "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-18.2.4.tgz", - "integrity": "sha512-s2WdUhyLlKj5kOjb6vrvJg9/31KvgyRJGjy7PnzS43tpwF9MLuM3AYhuJsXHPhx+i0nyWn/Jnd8ZLjMzXljSxg==", + "version": "18.2.9", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-18.2.9.tgz", + "integrity": "sha512-aIY5/IomDOINGCtFYi77uo0acDpdQNNCighfBBUGEBNMQ1eE3oGNGpLAH/qWeuxJndgmxrdKsvws9DdT46kLig==", "dev": true, "license": "MIT", "dependencies": { - "@angular-devkit/core": "18.2.4", + "@angular-devkit/core": "18.2.9", "jsonc-parser": "3.3.1", "magic-string": "0.30.11", "ora": "5.4.1", @@ -5028,9 +5019,22 @@ } }, "node_modules/@types/express-serve-static-core": { - "version": "4.19.5", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.5.tgz", - "integrity": "sha512-y6W03tvrACO72aijJ5uF02FRq5cgDR9lUxddQ8vyF+GvmjJQqbzDcJngEjURc+ZsG31VI3hODNZJ2URj86pzmg==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-5.0.0.tgz", + "integrity": "sha512-AbXMTZGt40T+KON9/Fdxx0B2WK5hsgxcfXJLr5bFpZ7b4JCex2WyQPTEKdXqfHiY5nKKBScZ7yCoO6Pvgxfvnw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*", + "@types/send": "*" + } + }, + "node_modules/@types/express/node_modules/@types/express-serve-static-core": { + "version": "4.19.6", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.6.tgz", + "integrity": "sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A==", "dev": true, "license": "MIT", "dependencies": { @@ -5113,9 +5117,9 @@ } }, "node_modules/@types/qs": { - "version": "6.9.15", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.15.tgz", - "integrity": "sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg==", + "version": "6.9.16", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.16.tgz", + "integrity": "sha512-7i+zxXdPD0T4cKDuxCUXJ4wHcsJLwENa6Z3dCu8cfCK743OGy5Nu1RmAGqDPsoTDINVEcdXKRvR/zre+P2Ku1A==", "dev": true, "license": "MIT" }, @@ -5205,6 +5209,7 @@ "resolved": "https://registry.npmjs.org/@vitejs/plugin-basic-ssl/-/plugin-basic-ssl-1.1.0.tgz", "integrity": "sha512-wO4Dk/rm8u7RNhOf95ZzcEmC9rYOncYgvq4z3duaJrCgjN8BxAnDVyndanfcJZ0O6XZzHz6Q0hTimxTg8Y9g/A==", "dev": true, + "license": "MIT", "engines": { "node": ">=14.6.0" }, @@ -7929,9 +7934,9 @@ "license": "Apache-2.0" }, "node_modules/express": { - "version": "4.21.0", - "resolved": "https://registry.npmjs.org/express/-/express-4.21.0.tgz", - "integrity": "sha512-VqcNGcj/Id5ZT1LZ/cfihi3ttTn+NJmkli2eZADigjq29qTlWi/hAQ43t/VLPq8+UX06FCEx3ByOYet6ZFblng==", + "version": "4.21.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.21.1.tgz", + "integrity": "sha512-YSFlK1Ee0/GC8QaO91tHcDxJiE/X4FbpAyQWkxAvG6AXCuR65YzK8ua6D9hvi/TzUfZMpc+BwuM1IPw8fmQBiQ==", "dev": true, "license": "MIT", "dependencies": { @@ -7940,7 +7945,7 @@ "body-parser": "1.20.3", "content-disposition": "0.5.4", "content-type": "~1.0.4", - "cookie": "0.6.0", + "cookie": "0.7.1", "cookie-signature": "1.0.6", "debug": "2.6.9", "depd": "2.0.0", @@ -7972,9 +7977,9 @@ } }, "node_modules/express/node_modules/cookie": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", - "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz", + "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==", "dev": true, "license": "MIT", "engines": { @@ -8088,11 +8093,11 @@ "dev": true }, "node_modules/fast-uri": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.1.tgz", - "integrity": "sha512-MWipKbbYiYI0UC7cl8m/i/IWTqfC8YXsqjzybjddLsFjStroQzsHXkc73JutMvBiXmOvapk+axIl79ig5t55Bw==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.3.tgz", + "integrity": "sha512-aLrHthzCjH5He4Z2H9YZ+v6Ujb9ocRuW6ZzkJQOrTxleEijANq4v1TsaPaVG1PZcuurEzrLcWRyYBYXD5cEiaw==", "dev": true, - "license": "MIT" + "license": "BSD-3-Clause" }, "node_modules/fastq": { "version": "1.17.1", @@ -10951,9 +10956,9 @@ } }, "node_modules/memfs": { - "version": "4.11.1", - "resolved": "https://registry.npmjs.org/memfs/-/memfs-4.11.1.tgz", - "integrity": "sha512-LZcMTBAgqUUKNXZagcZxvXXfgF1bHX7Y7nQ0QyEiNbRJgE29GhgPd8Yna1VQcLlPiHt/5RFJMWYN9Uv/VPNvjQ==", + "version": "4.14.0", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-4.14.0.tgz", + "integrity": "sha512-JUeY0F/fQZgIod31Ja1eJgiSxLn7BfQlCnqhwXFBzFHEw63OdLK7VJUJ7bnzNsWgCyoUP5tEp1VRY8rDaYzqOA==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -11337,6 +11342,7 @@ "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.0.tgz", "integrity": "sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" } @@ -12270,9 +12276,9 @@ } }, "node_modules/ordered-binary": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/ordered-binary/-/ordered-binary-1.5.1.tgz", - "integrity": "sha512-5VyHfHY3cd0iza71JepYG50My+YUbrFtGoUz2ooEydPyPM7Aai/JW098juLr+RG6+rDJuzNNTsEQu2DZa1A41A==", + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/ordered-binary/-/ordered-binary-1.5.2.tgz", + "integrity": "sha512-JTo+4+4Fw7FreyAvlSLjb1BBVaxEQAacmjD3jjuyPZclpbEghTvQZbXBb2qPd2LeIMxiHwXBZUcpmG2Gl/mDEA==", "dev": true, "license": "MIT" }, @@ -12467,6 +12473,7 @@ "resolved": "https://registry.npmjs.org/parse5-html-rewriting-stream/-/parse5-html-rewriting-stream-7.0.0.tgz", "integrity": "sha512-mazCyGWkmCRWDI15Zp+UiCqMp/0dgEmkZRvhlsqqKYr4SsVm/TvnSpD9fCvqCA2zoWJcfRym846ejWBBHRiYEg==", "dev": true, + "license": "MIT", "dependencies": { "entities": "^4.3.0", "parse5": "^7.0.0", @@ -12481,6 +12488,7 @@ "resolved": "https://registry.npmjs.org/parse5-sax-parser/-/parse5-sax-parser-7.0.0.tgz", "integrity": "sha512-5A+v2SNsq8T6/mG3ahcz8ZtQ0OUFTatxPbeidoMB7tkJSGDY3tdfl4MHovtLQHkEn5CGxijNWRQHhRQ6IRpXKg==", "dev": true, + "license": "MIT", "dependencies": { "parse5": "^7.0.0" }, @@ -13395,9 +13403,9 @@ } }, "node_modules/rollup": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.20.0.tgz", - "integrity": "sha512-6rbWBChcnSGzIlXeIdNIZTopKYad8ZG8ajhl78lGRLsI2rX8IkaotQhVas2Ma+GPxJav19wrSzvRvuiv0YKzWw==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.22.4.tgz", + "integrity": "sha512-vD8HJ5raRcWOyymsR6Z3o6+RzfEPCnVLMFJ6vRslO1jt4LO6dUo5Qnpg7y4RkZFM2DMe3WUirkI5c16onjrc6A==", "dev": true, "license": "MIT", "dependencies": { @@ -13411,22 +13419,22 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.20.0", - "@rollup/rollup-android-arm64": "4.20.0", - "@rollup/rollup-darwin-arm64": "4.20.0", - "@rollup/rollup-darwin-x64": "4.20.0", - "@rollup/rollup-linux-arm-gnueabihf": "4.20.0", - "@rollup/rollup-linux-arm-musleabihf": "4.20.0", - "@rollup/rollup-linux-arm64-gnu": "4.20.0", - "@rollup/rollup-linux-arm64-musl": "4.20.0", - "@rollup/rollup-linux-powerpc64le-gnu": "4.20.0", - "@rollup/rollup-linux-riscv64-gnu": "4.20.0", - "@rollup/rollup-linux-s390x-gnu": "4.20.0", - "@rollup/rollup-linux-x64-gnu": "4.20.0", - "@rollup/rollup-linux-x64-musl": "4.20.0", - "@rollup/rollup-win32-arm64-msvc": "4.20.0", - "@rollup/rollup-win32-ia32-msvc": "4.20.0", - "@rollup/rollup-win32-x64-msvc": "4.20.0", + "@rollup/rollup-android-arm-eabi": "4.22.4", + "@rollup/rollup-android-arm64": "4.22.4", + "@rollup/rollup-darwin-arm64": "4.22.4", + "@rollup/rollup-darwin-x64": "4.22.4", + "@rollup/rollup-linux-arm-gnueabihf": "4.22.4", + "@rollup/rollup-linux-arm-musleabihf": "4.22.4", + "@rollup/rollup-linux-arm64-gnu": "4.22.4", + "@rollup/rollup-linux-arm64-musl": "4.22.4", + "@rollup/rollup-linux-powerpc64le-gnu": "4.22.4", + "@rollup/rollup-linux-riscv64-gnu": "4.22.4", + "@rollup/rollup-linux-s390x-gnu": "4.22.4", + "@rollup/rollup-linux-x64-gnu": "4.22.4", + "@rollup/rollup-linux-x64-musl": "4.22.4", + "@rollup/rollup-win32-arm64-msvc": "4.22.4", + "@rollup/rollup-win32-ia32-msvc": "4.22.4", + "@rollup/rollup-win32-x64-msvc": "4.22.4", "fsevents": "~2.3.2" } }, @@ -13649,13 +13657,11 @@ } }, "node_modules/semver": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, + "license": "ISC", "bin": { "semver": "bin/semver.js" }, @@ -13663,24 +13669,6 @@ "node": ">=10" } }, - "node_modules/semver/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/semver/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, "node_modules/send": { "version": "0.19.0", "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", @@ -14149,10 +14137,11 @@ } }, "node_modules/source-map-js": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", - "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } @@ -15188,15 +15177,15 @@ } }, "node_modules/vite": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.0.tgz", - "integrity": "sha512-5xokfMX0PIiwCMCMb9ZJcMyh5wbBun0zUzKib+L65vAZ8GY9ePZMXxFrHbr/Kyll2+LSCY7xtERPpxkBDKngwg==", + "version": "5.4.6", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.6.tgz", + "integrity": "sha512-IeL5f8OO5nylsgzd9tq4qD2QqI0k2CQLGrWD0rCN0EQJZpBK5vJAx0I+GDkMOXxQX/OfFHMuLIx6ddAxGX/k+Q==", "dev": true, "license": "MIT", "dependencies": { "esbuild": "^0.21.3", - "postcss": "^8.4.40", - "rollup": "^4.13.0" + "postcss": "^8.4.43", + "rollup": "^4.20.0" }, "bin": { "vite": "bin/vite.js" @@ -15677,6 +15666,35 @@ "@esbuild/win32-x64": "0.21.5" } }, + "node_modules/vite/node_modules/postcss": { + "version": "8.4.47", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.47.tgz", + "integrity": "sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.1.0", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, "node_modules/void-elements": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz", @@ -15895,9 +15913,9 @@ } }, "node_modules/webpack-dev-server/node_modules/http-proxy-middleware": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz", - "integrity": "sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==", + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.7.tgz", + "integrity": "sha512-fgVY8AV7qU7z/MmXJ/rxwbrtQH4jBQ9m7kp3llF0liB7glmFeVZFBepQb32T3y8n8k2+AEYuMPCpinYW+/CuRA==", "dev": true, "license": "MIT", "dependencies": { diff --git a/package.json b/package.json index 6d5953e..e466f46 100644 --- a/package.json +++ b/package.json @@ -13,30 +13,29 @@ }, "private": false, "dependencies": { - "@angular/animations": "^18.2.4", - "@angular/cdk": "^18.2.4", - "@angular/common": "^18.2.4", - "@angular/compiler": "^18.2.4", - "@angular/core": "^18.2.4", - "@angular/forms": "^18.2.4", - "@angular/material": "^18.2.4", - "@angular/platform-browser": "18.2.4", - "@angular/platform-browser-dynamic": "^18.2.4", - "@angular/router": "^18.2.4", + "@angular/animations": "^18.2.8", + "@angular/cdk": "^18.2.9", + "@angular/common": "^18.2.8", + "@angular/compiler": "^18.2.8", + "@angular/core": "^18.2.8", + "@angular/forms": "^18.2.8", + "@angular/material": "^18.2.9", + "@angular/platform-browser": "18.2.8", + "@angular/platform-browser-dynamic": "^18.2.8", + "@angular/router": "^18.2.8", "@ngneat/until-destroy": "^10.0.0", "cytoscape": "^3.29.2", "cytoscape-fcose": "^2.2.0", "cytoscape-layers": "^2.4.4", - "ngx-reactome-cytoscape-style": "^0.0.5", "rxjs": "~7.8.0", "tslib": "^2.3.0", "vectorious": "^6.1.12", "zone.js": "~0.14.10" }, "devDependencies": { - "@angular-devkit/build-angular": "^18.2.4", - "@angular/cli": "^18.2.4", - "@angular/compiler-cli": "^18.2.4", + "@angular-devkit/build-angular": "^18.2.9", + "@angular/cli": "^18.2.9", + "@angular/compiler-cli": "^18.2.8", "@types/cytoscape": "^3.21.0", "@types/cytoscape-fcose": "^2.2.4", "@types/jasmine": "~4.3.0", diff --git a/projects/ngx-reactome-cytoscape-style/package.json b/projects/ngx-reactome-cytoscape-style/package.json index b8a2c2c..37b415a 100644 --- a/projects/ngx-reactome-cytoscape-style/package.json +++ b/projects/ngx-reactome-cytoscape-style/package.json @@ -1,21 +1,21 @@ { "name": "ngx-reactome-cytoscape-style", - "version": "0.0.12", + "version": "0.0.18", "peerDependencies": { "cytoscape": "^3.27.0", "cytoscape-fcose": "^2.2.0", "cytoscape-layers": "^2.4.4", "lodash.memoize": "^4.1.2", - "@angular/common": "^17.2.4", - "@angular/core": "^17.2.4" + "@angular/common": "^18.2.8", + "@angular/core": "^18.2.8" }, "dependencies": { "tslib": "^2.3.0" }, "devDependencies": { - "@angular-devkit/build-angular": "^17.3.6", - "@angular/cli": "^17.3.6", - "@angular/compiler-cli": "^17.3.7", + "@angular-devkit/build-angular": "^18.2.9", + "@angular/cli": "^18.2.9", + "@angular/compiler-cli": "^18.2.8", "@types/cytoscape": "^3.21.0", "@types/cytoscape-fcose": "^2.2.4", "@types/jasmine": "~4.3.0", @@ -27,7 +27,7 @@ "karma-coverage": "~2.2.0", "karma-jasmine": "~5.1.0", "karma-jasmine-html-reporter": "~2.1.0", - "ng-packagr": "^17.3.0", + "ng-packagr": "^18.2.1", "npm-run-all": "^4.1.1", "typescript": "~5.4.5" } From 2166fd80769c2d0518e7bb67adca9d7314c52d88 Mon Sep 17 00:00:00 2001 From: EliotRagueneau Date: Fri, 24 Jan 2025 10:53:39 +0000 Subject: [PATCH 22/49] :truck: Prepare angular 19 --- package-lock.json | 23 ----------------------- package.json | 2 +- projects/ngx-reactome-style/package.json | 2 +- 3 files changed, 2 insertions(+), 25 deletions(-) diff --git a/package-lock.json b/package-lock.json index 476ac48..3379a42 100644 --- a/package-lock.json +++ b/package-lock.json @@ -22,7 +22,6 @@ "cytoscape": "^3.29.2", "cytoscape-fcose": "^2.2.0", "cytoscape-layers": "^2.4.4", - "ngx-reactome-cytoscape-style": "^0.0.5", "rxjs": "~7.8.0", "tslib": "^2.3.0", "vectorious": "^6.1.12", @@ -10563,12 +10562,6 @@ "dev": true, "license": "MIT" }, - "node_modules/lodash.memoize": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", - "peer": true - }, "node_modules/log-symbols": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", @@ -11605,22 +11598,6 @@ "semver": "bin/semver.js" } }, - "node_modules/ngx-reactome-cytoscape-style": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/ngx-reactome-cytoscape-style/-/ngx-reactome-cytoscape-style-0.0.5.tgz", - "integrity": "sha512-GZienp8wUMVyOBve37Zsw64urNUQH9kTpSSM6cztT1FlKxRB8g/wXPCxnTXIFI0am0c+cKzOmgVLJZiB+va9pQ==", - "dependencies": { - "tslib": "^2.3.0" - }, - "peerDependencies": { - "@angular/common": "^17.3.0", - "@angular/core": "^17.3.0", - "cytoscape": "^3.27.0", - "cytoscape-fcose": "^2.2.0", - "cytoscape-layers": "^2.4.4", - "lodash.memoize": "^4.1.2" - } - }, "node_modules/nice-napi": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/nice-napi/-/nice-napi-1.0.2.tgz", diff --git a/package.json b/package.json index e466f46..97755ff 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ngx-reactome-base", - "version": "0.0.2", + "version": "0.0.19", "scripts": { "ng": "ng", "start": "ng serve", diff --git a/projects/ngx-reactome-style/package.json b/projects/ngx-reactome-style/package.json index ac9b3c2..ddce92f 100644 --- a/projects/ngx-reactome-style/package.json +++ b/projects/ngx-reactome-style/package.json @@ -1,6 +1,6 @@ { "name": "ngx-reactome-style", - "version": "0.0.18", + "version": "0.0.19", "peerDependencies": { "@angular/common": "^18.2.4", "@angular/core": "^18.2.4", From f19745900eb53c343bda2c3368e23aed1b9cf8a5 Mon Sep 17 00:00:00 2001 From: EliotRagueneau Date: Fri, 24 Jan 2025 10:54:17 +0000 Subject: [PATCH 23/49] Angular CLI update for packages - @angular/core@19, @angular/cli@19, @angular/material@19 --- package-lock.json | 15083 ++++++++++++++++++++++---------------------- package.json | 32 +- 2 files changed, 7686 insertions(+), 7429 deletions(-) diff --git a/package-lock.json b/package-lock.json index 3379a42..944f1da 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,23 +1,23 @@ { "name": "ngx-reactome-base", - "version": "0.0.2", + "version": "0.0.19", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "ngx-reactome-base", - "version": "0.0.2", - "dependencies": { - "@angular/animations": "^18.2.8", - "@angular/cdk": "^18.2.9", - "@angular/common": "^18.2.8", - "@angular/compiler": "^18.2.8", - "@angular/core": "^18.2.8", - "@angular/forms": "^18.2.8", - "@angular/material": "^18.2.9", - "@angular/platform-browser": "18.2.8", - "@angular/platform-browser-dynamic": "^18.2.8", - "@angular/router": "^18.2.8", + "version": "0.0.19", + "dependencies": { + "@angular/animations": "^19.1.3", + "@angular/cdk": "^19.1.1", + "@angular/common": "^19.1.3", + "@angular/compiler": "^19.1.3", + "@angular/core": "^19.1.3", + "@angular/forms": "^19.1.3", + "@angular/material": "^19.1.1", + "@angular/platform-browser": "19.1.3", + "@angular/platform-browser-dynamic": "^19.1.3", + "@angular/router": "^19.1.3", "@ngneat/until-destroy": "^10.0.0", "cytoscape": "^3.29.2", "cytoscape-fcose": "^2.2.0", @@ -25,12 +25,12 @@ "rxjs": "~7.8.0", "tslib": "^2.3.0", "vectorious": "^6.1.12", - "zone.js": "~0.14.10" + "zone.js": "~0.15.0" }, "devDependencies": { - "@angular-devkit/build-angular": "^18.2.9", - "@angular/cli": "^18.2.9", - "@angular/compiler-cli": "^18.2.8", + "@angular-devkit/build-angular": "^19.1.4", + "@angular/cli": "^19.1.4", + "@angular/compiler-cli": "^19.1.3", "@types/cytoscape": "^3.21.0", "@types/cytoscape-fcose": "^2.2.4", "@types/jasmine": "~4.3.0", @@ -42,9 +42,9 @@ "karma-coverage": "~2.2.0", "karma-jasmine": "~5.1.0", "karma-jasmine-html-reporter": "~2.1.0", - "ng-packagr": "^18.2.1", + "ng-packagr": "^19.1.1", "npm-run-all": "^4.1.1", - "typescript": "~5.4.5" + "typescript": "~5.7.3" } }, "node_modules/@ampproject/remapping": { @@ -111,72 +111,65 @@ "peer": true }, "node_modules/@angular-devkit/build-angular": { - "version": "18.2.9", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-18.2.9.tgz", - "integrity": "sha512-d4W6t9vBozFUmOP2VvihMcSg/zgr3AvJY6/b7OPuATlK+W3P6tmsqxGIQ6eKc1TxXeu3lWhi14mV2pPykfrwfA==", + "version": "19.1.4", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-19.1.4.tgz", + "integrity": "sha512-t8qC26Boz1aAMt2xVKthwEXRqMI4ZVwelxRNfHryLdLTujTaehFt3qbjxukMmRGCWmQObauH0UOvDh3pAA24dQ==", "dev": true, "license": "MIT", "dependencies": { "@ampproject/remapping": "2.3.0", - "@angular-devkit/architect": "0.1802.9", - "@angular-devkit/build-webpack": "0.1802.9", - "@angular-devkit/core": "18.2.9", - "@angular/build": "18.2.9", - "@babel/core": "7.25.2", - "@babel/generator": "7.25.0", - "@babel/helper-annotate-as-pure": "7.24.7", + "@angular-devkit/architect": "0.1901.4", + "@angular-devkit/build-webpack": "0.1901.4", + "@angular-devkit/core": "19.1.4", + "@angular/build": "19.1.4", + "@babel/core": "7.26.0", + "@babel/generator": "7.26.3", + "@babel/helper-annotate-as-pure": "7.25.9", "@babel/helper-split-export-declaration": "7.24.7", - "@babel/plugin-transform-async-generator-functions": "7.25.0", - "@babel/plugin-transform-async-to-generator": "7.24.7", - "@babel/plugin-transform-runtime": "7.24.7", - "@babel/preset-env": "7.25.3", - "@babel/runtime": "7.25.0", - "@discoveryjs/json-ext": "0.6.1", - "@ngtools/webpack": "18.2.9", - "@vitejs/plugin-basic-ssl": "1.1.0", + "@babel/plugin-transform-async-generator-functions": "7.25.9", + "@babel/plugin-transform-async-to-generator": "7.25.9", + "@babel/plugin-transform-runtime": "7.25.9", + "@babel/preset-env": "7.26.0", + "@babel/runtime": "7.26.0", + "@discoveryjs/json-ext": "0.6.3", + "@ngtools/webpack": "19.1.4", + "@vitejs/plugin-basic-ssl": "1.2.0", "ansi-colors": "4.1.3", "autoprefixer": "10.4.20", - "babel-loader": "9.1.3", + "babel-loader": "9.2.1", "browserslist": "^4.21.5", "copy-webpack-plugin": "12.0.2", - "critters": "0.0.24", "css-loader": "7.1.2", - "esbuild-wasm": "0.23.0", - "fast-glob": "3.3.2", - "http-proxy-middleware": "3.0.0", - "https-proxy-agent": "7.0.5", + "esbuild-wasm": "0.24.2", + "fast-glob": "3.3.3", + "http-proxy-middleware": "3.0.3", "istanbul-lib-instrument": "6.0.3", "jsonc-parser": "3.3.1", "karma-source-map-support": "1.4.0", - "less": "4.2.0", + "less": "4.2.1", "less-loader": "12.2.0", "license-webpack-plugin": "4.0.2", "loader-utils": "3.3.1", - "magic-string": "0.30.11", - "mini-css-extract-plugin": "2.9.0", - "mrmime": "2.0.0", + "mini-css-extract-plugin": "2.9.2", "open": "10.1.0", "ora": "5.4.1", - "parse5-html-rewriting-stream": "7.0.0", "picomatch": "4.0.2", - "piscina": "4.6.1", - "postcss": "8.4.41", + "piscina": "4.8.0", + "postcss": "8.4.49", "postcss-loader": "8.1.1", "resolve-url-loader": "5.0.0", "rxjs": "7.8.1", - "sass": "1.77.6", - "sass-loader": "16.0.0", + "sass": "1.83.1", + "sass-loader": "16.0.4", "semver": "7.6.3", "source-map-loader": "5.0.0", "source-map-support": "0.5.21", - "terser": "5.31.6", + "terser": "5.37.0", "tree-kill": "1.2.2", - "tslib": "2.6.3", - "vite": "5.4.6", - "watchpack": "2.4.1", - "webpack": "5.94.0", + "tslib": "2.8.1", + "webpack": "5.97.1", "webpack-dev-middleware": "7.4.2", - "webpack-dev-server": "5.0.4", + "webpack-dev-server": "5.2.0", "webpack-merge": "6.0.1", "webpack-subresource-integrity": "5.1.0" }, @@ -186,22 +179,23 @@ "yarn": ">= 1.13.0" }, "optionalDependencies": { - "esbuild": "0.23.0" + "esbuild": "0.24.2" }, "peerDependencies": { - "@angular/compiler-cli": "^18.0.0", - "@angular/localize": "^18.0.0", - "@angular/platform-server": "^18.0.0", - "@angular/service-worker": "^18.0.0", - "@web/test-runner": "^0.18.0", + "@angular/compiler-cli": "^19.0.0", + "@angular/localize": "^19.0.0", + "@angular/platform-server": "^19.0.0", + "@angular/service-worker": "^19.0.0", + "@angular/ssr": "^19.1.4", + "@web/test-runner": "^0.19.0", "browser-sync": "^3.0.2", "jest": "^29.5.0", "jest-environment-jsdom": "^29.5.0", "karma": "^6.3.0", - "ng-packagr": "^18.0.0", + "ng-packagr": "^19.0.0", "protractor": "^7.0.0", "tailwindcss": "^2.0.0 || ^3.0.0", - "typescript": ">=5.4 <5.6" + "typescript": ">=5.5 <5.8" }, "peerDependenciesMeta": { "@angular/localize": { @@ -213,6 +207,9 @@ "@angular/service-worker": { "optional": true }, + "@angular/ssr": { + "optional": true + }, "@web/test-runner": { "optional": true }, @@ -240,13 +237,13 @@ } }, "node_modules/@angular-devkit/build-angular/node_modules/@angular-devkit/architect": { - "version": "0.1802.9", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1802.9.tgz", - "integrity": "sha512-fubJf4WC/t3ITy+tyjI4/CKKwUP4XJTmV+Y0nyPcrkcthVyUcIpZB74NlUOvg6WECiPQuIc+CtoAaA9X5+RQ5Q==", + "version": "0.1901.4", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1901.4.tgz", + "integrity": "sha512-EoRTN8p7z0YnqOEIJKKu/NwSsCJxFkyGuZOobz7btnUWwlDqG8CNAhJgtlsOXPihwEkHEkzRIm1feDkWEjCYsA==", "dev": true, "license": "MIT", "dependencies": { - "@angular-devkit/core": "18.2.9", + "@angular-devkit/core": "19.1.4", "rxjs": "7.8.1" }, "engines": { @@ -256,9 +253,9 @@ } }, "node_modules/@angular-devkit/build-angular/node_modules/@angular-devkit/core": { - "version": "18.2.9", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-18.2.9.tgz", - "integrity": "sha512-bsVt//5E0ua7FZfO0dCF/qGGY6KQD34/bNGyRu5B6HedimpdU2/0PGDptksU5v3yKEc9gNw0xC6mT0UsY/R9pA==", + "version": "19.1.4", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-19.1.4.tgz", + "integrity": "sha512-IDvSSiQgaixH2RtZtIpq1+XaHeuzMiTWfDyNF9DuYcU+S8CdG1SWrc8d59tmOrM/q+IRGyFgbBhTU1un52hNHw==", "dev": true, "license": "MIT", "dependencies": { @@ -275,7 +272,7 @@ "yarn": ">= 1.13.0" }, "peerDependencies": { - "chokidar": "^3.5.2" + "chokidar": "^4.0.0" }, "peerDependenciesMeta": { "chokidar": { @@ -318,6 +315,24 @@ } } }, + "node_modules/@angular-devkit/build-angular/node_modules/chokidar": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", + "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "readdirp": "^4.0.1" + }, + "engines": { + "node": ">= 14.16.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, "node_modules/@angular-devkit/build-angular/node_modules/istanbul-lib-instrument": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz", @@ -335,14 +350,30 @@ "node": ">=10" } }, + "node_modules/@angular-devkit/build-angular/node_modules/readdirp": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.1.tgz", + "integrity": "sha512-h80JrZu/MHUZCyHu5ciuoI0+WxsCxzxJTILn6Fs8rxSnFPh+UVHYfeIxK1nVGugMqkfC4vJcBOYbkfkwYK0+gw==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "engines": { + "node": ">= 14.18.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + }, "node_modules/@angular-devkit/build-webpack": { - "version": "0.1802.9", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1802.9.tgz", - "integrity": "sha512-p7xNGo5ZTV/Z0Rk+q2/E68QQLw9VT33kauDh6s010jIeBLrOwMo74JpzXMSFttQo5O4bLKP8IORzIM+0q7Uzjg==", + "version": "0.1901.4", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1901.4.tgz", + "integrity": "sha512-C/Cd1JeRTy2P/powIldc5UZObw92TDGATD/LFlfPfi94celLa2DlEL1ybPTpnGs/R5/q5R26F6fbhmAVSeTJ8g==", "dev": true, "license": "MIT", "dependencies": { - "@angular-devkit/architect": "0.1802.9", + "@angular-devkit/architect": "0.1901.4", "rxjs": "7.8.1" }, "engines": { @@ -356,13 +387,13 @@ } }, "node_modules/@angular-devkit/build-webpack/node_modules/@angular-devkit/architect": { - "version": "0.1802.9", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1802.9.tgz", - "integrity": "sha512-fubJf4WC/t3ITy+tyjI4/CKKwUP4XJTmV+Y0nyPcrkcthVyUcIpZB74NlUOvg6WECiPQuIc+CtoAaA9X5+RQ5Q==", + "version": "0.1901.4", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1901.4.tgz", + "integrity": "sha512-EoRTN8p7z0YnqOEIJKKu/NwSsCJxFkyGuZOobz7btnUWwlDqG8CNAhJgtlsOXPihwEkHEkzRIm1feDkWEjCYsA==", "dev": true, "license": "MIT", "dependencies": { - "@angular-devkit/core": "18.2.9", + "@angular-devkit/core": "19.1.4", "rxjs": "7.8.1" }, "engines": { @@ -372,9 +403,9 @@ } }, "node_modules/@angular-devkit/build-webpack/node_modules/@angular-devkit/core": { - "version": "18.2.9", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-18.2.9.tgz", - "integrity": "sha512-bsVt//5E0ua7FZfO0dCF/qGGY6KQD34/bNGyRu5B6HedimpdU2/0PGDptksU5v3yKEc9gNw0xC6mT0UsY/R9pA==", + "version": "19.1.4", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-19.1.4.tgz", + "integrity": "sha512-IDvSSiQgaixH2RtZtIpq1+XaHeuzMiTWfDyNF9DuYcU+S8CdG1SWrc8d59tmOrM/q+IRGyFgbBhTU1un52hNHw==", "dev": true, "license": "MIT", "dependencies": { @@ -391,7 +422,7 @@ "yarn": ">= 1.13.0" }, "peerDependencies": { - "chokidar": "^3.5.2" + "chokidar": "^4.0.0" }, "peerDependenciesMeta": { "chokidar": { @@ -434,6 +465,40 @@ } } }, + "node_modules/@angular-devkit/build-webpack/node_modules/chokidar": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", + "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "readdirp": "^4.0.1" + }, + "engines": { + "node": ">= 14.16.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@angular-devkit/build-webpack/node_modules/readdirp": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.1.tgz", + "integrity": "sha512-h80JrZu/MHUZCyHu5ciuoI0+WxsCxzxJTILn6Fs8rxSnFPh+UVHYfeIxK1nVGugMqkfC4vJcBOYbkfkwYK0+gw==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "engines": { + "node": ">= 14.18.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + }, "node_modules/@angular-devkit/core": { "version": "16.2.14", "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-16.2.14.tgz", @@ -522,9 +587,9 @@ } }, "node_modules/@angular/animations": { - "version": "18.2.8", - "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-18.2.8.tgz", - "integrity": "sha512-dMSn2hg70siv3lhP+vqhMbgc923xw6XBUvnpCPEzhZqFHvPXfh/LubmsD5RtqHmjWebXtgVcgS+zg3Gq3jB2lg==", + "version": "19.1.3", + "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-19.1.3.tgz", + "integrity": "sha512-MI+Tbp9OOisrQtTQH7o+xiQCODXicCs8WHNpGzdCpnXdRkQuVSOb6xAjD9OXJqcQGotLgeyennnkIJGXdz4RTA==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -533,56 +598,62 @@ "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/core": "18.2.8" + "@angular/core": "19.1.3" } }, "node_modules/@angular/build": { - "version": "18.2.9", - "resolved": "https://registry.npmjs.org/@angular/build/-/build-18.2.9.tgz", - "integrity": "sha512-o1hOEM2e6ARy+ck2Pohl0d/RFgbbXTw6/hTLAj3CBKjtqAGStRaVF2UlJjhi+xOxlfsOPuJJc9IpzLBteku+Ag==", + "version": "19.1.4", + "resolved": "https://registry.npmjs.org/@angular/build/-/build-19.1.4.tgz", + "integrity": "sha512-yfvLeUT2a8JTuVBY259vsSv0uLyhikHHgQcWa3VSr0TvCKrwCsBIFDq7vqmhLqIVWi/Z4D7n3J5JQAbDrl38Sg==", "dev": true, "license": "MIT", "dependencies": { "@ampproject/remapping": "2.3.0", - "@angular-devkit/architect": "0.1802.9", - "@babel/core": "7.25.2", - "@babel/helper-annotate-as-pure": "7.24.7", + "@angular-devkit/architect": "0.1901.4", + "@babel/core": "7.26.0", + "@babel/helper-annotate-as-pure": "7.25.9", "@babel/helper-split-export-declaration": "7.24.7", - "@babel/plugin-syntax-import-attributes": "7.24.7", - "@inquirer/confirm": "3.1.22", - "@vitejs/plugin-basic-ssl": "1.1.0", + "@babel/plugin-syntax-import-attributes": "7.26.0", + "@inquirer/confirm": "5.1.1", + "@vitejs/plugin-basic-ssl": "1.2.0", + "beasties": "0.2.0", "browserslist": "^4.23.0", - "critters": "0.0.24", - "esbuild": "0.23.0", - "fast-glob": "3.3.2", - "https-proxy-agent": "7.0.5", - "listr2": "8.2.4", - "lmdb": "3.0.13", - "magic-string": "0.30.11", + "esbuild": "0.24.2", + "fast-glob": "3.3.3", + "https-proxy-agent": "7.0.6", + "istanbul-lib-instrument": "6.0.3", + "listr2": "8.2.5", + "magic-string": "0.30.17", "mrmime": "2.0.0", "parse5-html-rewriting-stream": "7.0.0", "picomatch": "4.0.2", - "piscina": "4.6.1", - "rollup": "4.22.4", - "sass": "1.77.6", + "piscina": "4.8.0", + "rollup": "4.30.1", + "sass": "1.83.1", "semver": "7.6.3", - "vite": "5.4.6", - "watchpack": "2.4.1" + "vite": "6.0.7", + "watchpack": "2.4.2" }, "engines": { "node": "^18.19.1 || ^20.11.1 || >=22.0.0", "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", "yarn": ">= 1.13.0" }, + "optionalDependencies": { + "lmdb": "3.2.2" + }, "peerDependencies": { - "@angular/compiler-cli": "^18.0.0", - "@angular/localize": "^18.0.0", - "@angular/platform-server": "^18.0.0", - "@angular/service-worker": "^18.0.0", + "@angular/compiler": "^19.0.0", + "@angular/compiler-cli": "^19.0.0", + "@angular/localize": "^19.0.0", + "@angular/platform-server": "^19.0.0", + "@angular/service-worker": "^19.0.0", + "@angular/ssr": "^19.1.4", "less": "^4.2.0", + "ng-packagr": "^19.0.0", "postcss": "^8.4.0", "tailwindcss": "^2.0.0 || ^3.0.0", - "typescript": ">=5.4 <5.6" + "typescript": ">=5.5 <5.8" }, "peerDependenciesMeta": { "@angular/localize": { @@ -594,9 +665,15 @@ "@angular/service-worker": { "optional": true }, + "@angular/ssr": { + "optional": true + }, "less": { "optional": true }, + "ng-packagr": { + "optional": true + }, "postcss": { "optional": true }, @@ -606,13 +683,13 @@ } }, "node_modules/@angular/build/node_modules/@angular-devkit/architect": { - "version": "0.1802.9", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1802.9.tgz", - "integrity": "sha512-fubJf4WC/t3ITy+tyjI4/CKKwUP4XJTmV+Y0nyPcrkcthVyUcIpZB74NlUOvg6WECiPQuIc+CtoAaA9X5+RQ5Q==", + "version": "0.1901.4", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1901.4.tgz", + "integrity": "sha512-EoRTN8p7z0YnqOEIJKKu/NwSsCJxFkyGuZOobz7btnUWwlDqG8CNAhJgtlsOXPihwEkHEkzRIm1feDkWEjCYsA==", "dev": true, "license": "MIT", "dependencies": { - "@angular-devkit/core": "18.2.9", + "@angular-devkit/core": "19.1.4", "rxjs": "7.8.1" }, "engines": { @@ -622,9 +699,9 @@ } }, "node_modules/@angular/build/node_modules/@angular-devkit/core": { - "version": "18.2.9", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-18.2.9.tgz", - "integrity": "sha512-bsVt//5E0ua7FZfO0dCF/qGGY6KQD34/bNGyRu5B6HedimpdU2/0PGDptksU5v3yKEc9gNw0xC6mT0UsY/R9pA==", + "version": "19.1.4", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-19.1.4.tgz", + "integrity": "sha512-IDvSSiQgaixH2RtZtIpq1+XaHeuzMiTWfDyNF9DuYcU+S8CdG1SWrc8d59tmOrM/q+IRGyFgbBhTU1un52hNHw==", "dev": true, "license": "MIT", "dependencies": { @@ -641,7 +718,7 @@ "yarn": ">= 1.13.0" }, "peerDependencies": { - "chokidar": "^3.5.2" + "chokidar": "^4.0.0" }, "peerDependenciesMeta": { "chokidar": { @@ -684,10 +761,133 @@ } } }, + "node_modules/@angular/build/node_modules/chokidar": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", + "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "readdirp": "^4.0.1" + }, + "engines": { + "node": ">= 14.16.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@angular/build/node_modules/istanbul-lib-instrument": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz", + "integrity": "sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@babel/core": "^7.23.9", + "@babel/parser": "^7.23.9", + "@istanbuljs/schema": "^0.1.3", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^7.5.4" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@angular/build/node_modules/readdirp": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.1.tgz", + "integrity": "sha512-h80JrZu/MHUZCyHu5ciuoI0+WxsCxzxJTILn6Fs8rxSnFPh+UVHYfeIxK1nVGugMqkfC4vJcBOYbkfkwYK0+gw==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "engines": { + "node": ">= 14.18.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@angular/build/node_modules/vite": { + "version": "6.0.7", + "resolved": "https://registry.npmjs.org/vite/-/vite-6.0.7.tgz", + "integrity": "sha512-RDt8r/7qx9940f8FcOIAH9PTViRrghKaK2K1jY3RaAURrEUbm9Du1mJ72G+jlhtG3WwodnfzY8ORQZbBavZEAQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "^0.24.2", + "postcss": "^8.4.49", + "rollup": "^4.23.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || ^20.0.0 || >=22.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", + "jiti": ">=1.21.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "sass-embedded": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, "node_modules/@angular/cdk": { - "version": "18.2.9", - "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-18.2.9.tgz", - "integrity": "sha512-hV2dXpvy2TLwCsRtI/ZXkb2EoaJiellRr+kbcnKwO15LFoz3mTAOhKtsvu7yOyURkaPiI605qiIZrPP4zLL1qw==", + "version": "19.1.1", + "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-19.1.1.tgz", + "integrity": "sha512-MmfNB9iANuDN1TS+HL8uKqA3/7pdVeCRN+HdAcfqFrcqZmSUUSlYWy8PXqymmyeXxoSwt9p4I/6R0By03VoCMw==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -696,32 +896,32 @@ "parse5": "^7.1.2" }, "peerDependencies": { - "@angular/common": "^18.0.0 || ^19.0.0", - "@angular/core": "^18.0.0 || ^19.0.0", + "@angular/common": "^19.0.0 || ^20.0.0", + "@angular/core": "^19.0.0 || ^20.0.0", "rxjs": "^6.5.3 || ^7.4.0" } }, "node_modules/@angular/cli": { - "version": "18.2.9", - "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-18.2.9.tgz", - "integrity": "sha512-ejTIqwvPABwK7MtVmI2qWbEaMhhbHNsq0NPzl1hwLtkrLbjdDrEVv0Wy+gN0xqrT9NyCPl4AmNLz/xuYTzgU5g==", + "version": "19.1.4", + "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-19.1.4.tgz", + "integrity": "sha512-C1Z2OTLjUJIkLsay6RJ1rzY0Tdb1Mj/cBh9dZryDstuits8G0Tphe36hnLownnoHspFQfjSRtVzF4NwKiDlQRw==", "dev": true, "license": "MIT", "dependencies": { - "@angular-devkit/architect": "0.1802.9", - "@angular-devkit/core": "18.2.9", - "@angular-devkit/schematics": "18.2.9", - "@inquirer/prompts": "5.3.8", - "@listr2/prompt-adapter-inquirer": "2.0.15", - "@schematics/angular": "18.2.9", + "@angular-devkit/architect": "0.1901.4", + "@angular-devkit/core": "19.1.4", + "@angular-devkit/schematics": "19.1.4", + "@inquirer/prompts": "7.2.1", + "@listr2/prompt-adapter-inquirer": "2.0.18", + "@schematics/angular": "19.1.4", "@yarnpkg/lockfile": "1.1.0", - "ini": "4.1.3", + "ini": "5.0.0", "jsonc-parser": "3.3.1", - "listr2": "8.2.4", - "npm-package-arg": "11.0.3", - "npm-pick-manifest": "9.1.0", - "pacote": "18.0.6", - "resolve": "1.22.8", + "listr2": "8.2.5", + "npm-package-arg": "12.0.1", + "npm-pick-manifest": "10.0.0", + "pacote": "20.0.0", + "resolve": "1.22.10", "semver": "7.6.3", "symbol-observable": "4.0.0", "yargs": "17.7.2" @@ -736,13 +936,13 @@ } }, "node_modules/@angular/cli/node_modules/@angular-devkit/architect": { - "version": "0.1802.9", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1802.9.tgz", - "integrity": "sha512-fubJf4WC/t3ITy+tyjI4/CKKwUP4XJTmV+Y0nyPcrkcthVyUcIpZB74NlUOvg6WECiPQuIc+CtoAaA9X5+RQ5Q==", + "version": "0.1901.4", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1901.4.tgz", + "integrity": "sha512-EoRTN8p7z0YnqOEIJKKu/NwSsCJxFkyGuZOobz7btnUWwlDqG8CNAhJgtlsOXPihwEkHEkzRIm1feDkWEjCYsA==", "dev": true, "license": "MIT", "dependencies": { - "@angular-devkit/core": "18.2.9", + "@angular-devkit/core": "19.1.4", "rxjs": "7.8.1" }, "engines": { @@ -752,9 +952,9 @@ } }, "node_modules/@angular/cli/node_modules/@angular-devkit/core": { - "version": "18.2.9", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-18.2.9.tgz", - "integrity": "sha512-bsVt//5E0ua7FZfO0dCF/qGGY6KQD34/bNGyRu5B6HedimpdU2/0PGDptksU5v3yKEc9gNw0xC6mT0UsY/R9pA==", + "version": "19.1.4", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-19.1.4.tgz", + "integrity": "sha512-IDvSSiQgaixH2RtZtIpq1+XaHeuzMiTWfDyNF9DuYcU+S8CdG1SWrc8d59tmOrM/q+IRGyFgbBhTU1un52hNHw==", "dev": true, "license": "MIT", "dependencies": { @@ -771,7 +971,7 @@ "yarn": ">= 1.13.0" }, "peerDependencies": { - "chokidar": "^3.5.2" + "chokidar": "^4.0.0" }, "peerDependenciesMeta": { "chokidar": { @@ -780,15 +980,15 @@ } }, "node_modules/@angular/cli/node_modules/@angular-devkit/schematics": { - "version": "18.2.9", - "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-18.2.9.tgz", - "integrity": "sha512-aIY5/IomDOINGCtFYi77uo0acDpdQNNCighfBBUGEBNMQ1eE3oGNGpLAH/qWeuxJndgmxrdKsvws9DdT46kLig==", + "version": "19.1.4", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-19.1.4.tgz", + "integrity": "sha512-EKXBkx6EDcvyO+U68w/eXicRaF92zSSzYNvR3tMZszEKYE6xBr3kZxY99PP54HXQHR4zYwLvFJVp+T6bnvte2w==", "dev": true, "license": "MIT", "dependencies": { - "@angular-devkit/core": "18.2.9", + "@angular-devkit/core": "19.1.4", "jsonc-parser": "3.3.1", - "magic-string": "0.30.11", + "magic-string": "0.30.17", "ora": "5.4.1", "rxjs": "7.8.1" }, @@ -833,10 +1033,44 @@ } } }, + "node_modules/@angular/cli/node_modules/chokidar": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", + "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "readdirp": "^4.0.1" + }, + "engines": { + "node": ">= 14.16.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@angular/cli/node_modules/readdirp": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.1.tgz", + "integrity": "sha512-h80JrZu/MHUZCyHu5ciuoI0+WxsCxzxJTILn6Fs8rxSnFPh+UVHYfeIxK1nVGugMqkfC4vJcBOYbkfkwYK0+gw==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "engines": { + "node": ">= 14.18.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + }, "node_modules/@angular/common": { - "version": "18.2.8", - "resolved": "https://registry.npmjs.org/@angular/common/-/common-18.2.8.tgz", - "integrity": "sha512-TYsKtE5nVaIScWSLGSO34Skc+s3hB/BujSddnfQHoNFvPT/WR0dfmdlpVCTeLj+f50htFoMhW11tW99PbK+whQ==", + "version": "19.1.3", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-19.1.3.tgz", + "integrity": "sha512-r1P0W6FKrON83szIJboF8z6UNCVL4HIxyD+nhmHMMT/iJpu4kDHVugaN/+w2jYLb4oelAJK5xzkzA+1IaHpzLg==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -845,14 +1079,14 @@ "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/core": "18.2.8", + "@angular/core": "19.1.3", "rxjs": "^6.5.3 || ^7.4.0" } }, "node_modules/@angular/compiler": { - "version": "18.2.8", - "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-18.2.8.tgz", - "integrity": "sha512-JRedHNfK1CCPVyeGQB5w3WBYqMA6X8Q240CkvjlGfn0pVXihf9DWk3nkSQJVgYxpvpHfxdgjaYZ5IpMzlkmkhw==", + "version": "19.1.3", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-19.1.3.tgz", + "integrity": "sha512-omX5Gyt3zlJVTUteO2YxsqYWtAIpkvs8kRYSUsLTi79V1gbGo+J1TawFuyBTrWxj4UtTGvwmDgZxiCIwMtP5KQ==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -861,7 +1095,7 @@ "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/core": "18.2.8" + "@angular/core": "19.1.3" }, "peerDependenciesMeta": { "@angular/core": { @@ -870,13 +1104,13 @@ } }, "node_modules/@angular/compiler-cli": { - "version": "18.2.8", - "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-18.2.8.tgz", - "integrity": "sha512-OksDE4LWQUCcIvMjtZF7eiDCdIMrcMMpC1+Q0PIYi7KmnqXFGs4/Y0NdJvtn/LrQznzz5WaKM3ZDVNZTRX4wmw==", + "version": "19.1.3", + "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-19.1.3.tgz", + "integrity": "sha512-nDBvZenQECcr9CClmTp3iJNilRQ6oDKFgBkhlWffEFBx0Z6kBA36MXKKLuCkf31D+NGmt5VJlAkl8Ax8BJ9qJw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/core": "7.25.2", + "@babel/core": "7.26.0", "@jridgewell/sourcemap-codec": "^1.4.14", "chokidar": "^4.0.0", "convert-source-map": "^1.5.1", @@ -894,14 +1128,14 @@ "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/compiler": "18.2.8", - "typescript": ">=5.4 <5.6" + "@angular/compiler": "19.1.3", + "typescript": ">=5.5 <5.8" } }, "node_modules/@angular/compiler-cli/node_modules/chokidar": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.1.tgz", - "integrity": "sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", + "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", "dev": true, "license": "MIT", "dependencies": { @@ -915,13 +1149,13 @@ } }, "node_modules/@angular/compiler-cli/node_modules/readdirp": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.0.2.tgz", - "integrity": "sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.1.tgz", + "integrity": "sha512-h80JrZu/MHUZCyHu5ciuoI0+WxsCxzxJTILn6Fs8rxSnFPh+UVHYfeIxK1nVGugMqkfC4vJcBOYbkfkwYK0+gw==", "dev": true, "license": "MIT", "engines": { - "node": ">= 14.16.0" + "node": ">= 14.18.0" }, "funding": { "type": "individual", @@ -929,9 +1163,9 @@ } }, "node_modules/@angular/core": { - "version": "18.2.8", - "resolved": "https://registry.npmjs.org/@angular/core/-/core-18.2.8.tgz", - "integrity": "sha512-NwIuX/Iby1jT6Iv1/s6S3wOFf8xfuQR3MPGvKhGgNtjXLbHG+TXceK9+QPZC0s9/Z8JR/hz+li34B79GrIKgUg==", + "version": "19.1.3", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-19.1.3.tgz", + "integrity": "sha512-Hh1eHvi+y+gsTRODiEEEWnRj5zqv9WNoou1KmQ1mv1NTOf0Pv61Hg9P2rBWDr0mPIXFSzqUKjyzW30BgdQ+AEA==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -941,13 +1175,13 @@ }, "peerDependencies": { "rxjs": "^6.5.3 || ^7.4.0", - "zone.js": "~0.14.10" + "zone.js": "~0.15.0" } }, "node_modules/@angular/forms": { - "version": "18.2.8", - "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-18.2.8.tgz", - "integrity": "sha512-JCLki7KC6D5vF6dE6yGlBmW33khIgpHs8N9SzuiJtkQqNDTIQA8cPsGV6qpLpxflxASynQOX5lDkWYdQyfm77Q==", + "version": "19.1.3", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-19.1.3.tgz", + "integrity": "sha512-M6eEJBysJm9zSUhm8ggljZCsgHLccZl70P34tyddb8erh9it2uoOXW0aVaZgDt1UAiF5a1EzjdVdN4TZTT/OGA==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -956,34 +1190,34 @@ "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/common": "18.2.8", - "@angular/core": "18.2.8", - "@angular/platform-browser": "18.2.8", + "@angular/common": "19.1.3", + "@angular/core": "19.1.3", + "@angular/platform-browser": "19.1.3", "rxjs": "^6.5.3 || ^7.4.0" } }, "node_modules/@angular/material": { - "version": "18.2.9", - "resolved": "https://registry.npmjs.org/@angular/material/-/material-18.2.9.tgz", - "integrity": "sha512-M2oCgPPIMMd6BLgEJCD+FvdC7gRDeCjj9yktNn3ctHmkKUWRvpJ3xRBH/WjVXb+9fPCCW1iNwZI7+bN1fHE7cA==", + "version": "19.1.1", + "resolved": "https://registry.npmjs.org/@angular/material/-/material-19.1.1.tgz", + "integrity": "sha512-x/EwyBx3yCIYyu/hve19eecmufJzwltRWOO/3Y74jY4jSNNFrR9046t0ptw4fyEXjN8UQZI6Fp/melcZxl3IiA==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" }, "peerDependencies": { - "@angular/animations": "^18.0.0 || ^19.0.0", - "@angular/cdk": "18.2.9", - "@angular/common": "^18.0.0 || ^19.0.0", - "@angular/core": "^18.0.0 || ^19.0.0", - "@angular/forms": "^18.0.0 || ^19.0.0", - "@angular/platform-browser": "^18.0.0 || ^19.0.0", + "@angular/animations": "^19.0.0 || ^20.0.0", + "@angular/cdk": "19.1.1", + "@angular/common": "^19.0.0 || ^20.0.0", + "@angular/core": "^19.0.0 || ^20.0.0", + "@angular/forms": "^19.0.0 || ^20.0.0", + "@angular/platform-browser": "^19.0.0 || ^20.0.0", "rxjs": "^6.5.3 || ^7.4.0" } }, "node_modules/@angular/platform-browser": { - "version": "18.2.8", - "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-18.2.8.tgz", - "integrity": "sha512-EPai4ZPqSq3ilLJUC85kPi9wo5j5suQovwtgRyjM/75D9Qy4TV19g8hkVM5Co/zrltO8a2G6vDscCNI5BeGw2A==", + "version": "19.1.3", + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-19.1.3.tgz", + "integrity": "sha512-bLgnM2hRyzUdoWRoUhe+IMenlr74EvrgwyG7anJ27bjg5PcvhQPXrGqU0hri5yPDb9SHVJZminr7OjNCN8QJkQ==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -992,9 +1226,9 @@ "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/animations": "18.2.8", - "@angular/common": "18.2.8", - "@angular/core": "18.2.8" + "@angular/animations": "19.1.3", + "@angular/common": "19.1.3", + "@angular/core": "19.1.3" }, "peerDependenciesMeta": { "@angular/animations": { @@ -1003,9 +1237,9 @@ } }, "node_modules/@angular/platform-browser-dynamic": { - "version": "18.2.8", - "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-18.2.8.tgz", - "integrity": "sha512-poZoapDqyN/rxGKQ3C6esdPiPLMkSpP2v12hoEa12KHgfPk7T1e+a+NMyJjV8HeOY3WyvL7tGRhW0NPTajTkhw==", + "version": "19.1.3", + "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-19.1.3.tgz", + "integrity": "sha512-rfsHu/+wB8YLPjsHKd/Go0SI8zP2gjMkebUHM9SbvVLXEAkxFubcF2htVKbKu8eTncfEJEXD6+3gRAjh5SLrKw==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -1014,16 +1248,16 @@ "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/common": "18.2.8", - "@angular/compiler": "18.2.8", - "@angular/core": "18.2.8", - "@angular/platform-browser": "18.2.8" + "@angular/common": "19.1.3", + "@angular/compiler": "19.1.3", + "@angular/core": "19.1.3", + "@angular/platform-browser": "19.1.3" } }, "node_modules/@angular/router": { - "version": "18.2.8", - "resolved": "https://registry.npmjs.org/@angular/router/-/router-18.2.8.tgz", - "integrity": "sha512-L+olYgxIiBq+tbfayVI0cv1yOuymsw33msnGC2l/vpc9sSVfqGzESFnB4yMVU3vHtE9v6v2Y6O+iV44/b79W/g==", + "version": "19.1.3", + "resolved": "https://registry.npmjs.org/@angular/router/-/router-19.1.3.tgz", + "integrity": "sha512-DJ9BgvtxJV6xohaPQXPdBsFCZoQIEq2OPDyKcoW4L0ST4kIIFpHyI6wJ+AlPnLkhSwmOOoHciH0oxZ2xPVxmiQ==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -1032,20 +1266,21 @@ "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/common": "18.2.8", - "@angular/core": "18.2.8", - "@angular/platform-browser": "18.2.8", + "@angular/common": "19.1.3", + "@angular/core": "19.1.3", + "@angular/platform-browser": "19.1.3", "rxjs": "^6.5.3 || ^7.4.0" } }, "node_modules/@babel/code-frame": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz", - "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==", + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", + "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/highlight": "^7.24.7", + "@babel/helper-validator-identifier": "^7.25.9", + "js-tokens": "^4.0.0", "picocolors": "^1.0.0" }, "engines": { @@ -1053,9 +1288,9 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.25.4", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.25.4.tgz", - "integrity": "sha512-+LGRog6RAsCJrrrg/IO6LGmpphNe5DiK30dGjCoxxeGv49B10/3XYGxPsAwrDlMFcFEvdAUavDT8r9k/hSyQqQ==", + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.5.tgz", + "integrity": "sha512-XvcZi1KWf88RVbF9wn8MN6tYFloU5qX8KjuF3E1PVBmJ9eypXfs4GRiJwLuTZL0iSnJUKn1BFPa5BPZZJyFzPg==", "dev": true, "license": "MIT", "engines": { @@ -1063,22 +1298,22 @@ } }, "node_modules/@babel/core": { - "version": "7.25.2", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.25.2.tgz", - "integrity": "sha512-BBt3opiCOxUr9euZ5/ro/Xv8/V7yJ5bjYMqG/C1YAo8MIKAnumZalCN+msbci3Pigy4lIQfPUpfMM27HMGaYEA==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.0.tgz", + "integrity": "sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==", "dev": true, "license": "MIT", "dependencies": { "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.24.7", - "@babel/generator": "^7.25.0", - "@babel/helper-compilation-targets": "^7.25.2", - "@babel/helper-module-transforms": "^7.25.2", - "@babel/helpers": "^7.25.0", - "@babel/parser": "^7.25.0", - "@babel/template": "^7.25.0", - "@babel/traverse": "^7.25.2", - "@babel/types": "^7.25.2", + "@babel/code-frame": "^7.26.0", + "@babel/generator": "^7.26.0", + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-module-transforms": "^7.26.0", + "@babel/helpers": "^7.26.0", + "@babel/parser": "^7.26.0", + "@babel/template": "^7.25.9", + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.26.0", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -1109,58 +1344,45 @@ } }, "node_modules/@babel/generator": { - "version": "7.25.0", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.25.0.tgz", - "integrity": "sha512-3LEEcj3PVW8pW2R1SR1M89g/qrYk/m/mB/tLqn7dn4sbBUQyTqnlod+II2U4dqiGtUmkcnAmkMDralTFZttRiw==", + "version": "7.26.3", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.3.tgz", + "integrity": "sha512-6FF/urZvD0sTeO7k6/B15pMLC4CHUv1426lzr3N01aHJTl046uCAh9LXW/fzeXXjPNCJ6iABW5XaWOsIZB93aQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.25.0", + "@babel/parser": "^7.26.3", + "@babel/types": "^7.26.3", "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25", - "jsesc": "^2.5.1" + "jsesc": "^3.0.2" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.24.7.tgz", - "integrity": "sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.24.7.tgz", - "integrity": "sha512-xZeCVVdwb4MsDBkkyZ64tReWYrLRHlMN72vP7Bdm3OUOuyFZExhsHUUnuWnm2/XOlAJzR0LfPpB56WXZn0X/lA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.9.tgz", + "integrity": "sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==", "dev": true, "license": "MIT", "dependencies": { - "@babel/traverse": "^7.24.7", - "@babel/types": "^7.24.7" + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.25.2", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.2.tgz", - "integrity": "sha512-U2U5LsSaZ7TAt3cfaymQ8WHh0pxvdHoEk6HVpaexxixjyEquMh0L0YNJNM6CTGKMXV1iksi0iZkGw4AcFkPaaw==", + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.26.5.tgz", + "integrity": "sha512-IXuyn5EkouFJscIDuFF5EsiSolseme1s0CZB+QxVugqJLYmKdxI1VfIBOst0SUu4rnk2Z7kqTwmoO1lp3HIfnA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.25.2", - "@babel/helper-validator-option": "^7.24.8", - "browserslist": "^4.23.1", + "@babel/compat-data": "^7.26.5", + "@babel/helper-validator-option": "^7.25.9", + "browserslist": "^4.24.0", "lru-cache": "^5.1.1", "semver": "^6.3.1" }, @@ -1179,18 +1401,18 @@ } }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.25.4", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.25.4.tgz", - "integrity": "sha512-ro/bFs3/84MDgDmMwbcHgDa8/E6J3QKNTk4xJJnVeFtGE+tL0K26E3pNxhYz2b67fJpt7Aphw5XcploKXuCvCQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.25.9.tgz", + "integrity": "sha512-UTZQMvt0d/rSz6KI+qdu7GQze5TIajwTS++GUozlw8VBJDEOAqSXwm1WvmYEZwqdqSGQshRocPDqrt4HBZB3fQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.24.7", - "@babel/helper-member-expression-to-functions": "^7.24.8", - "@babel/helper-optimise-call-expression": "^7.24.7", - "@babel/helper-replace-supers": "^7.25.0", - "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", - "@babel/traverse": "^7.25.4", + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-member-expression-to-functions": "^7.25.9", + "@babel/helper-optimise-call-expression": "^7.25.9", + "@babel/helper-replace-supers": "^7.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9", + "@babel/traverse": "^7.25.9", "semver": "^6.3.1" }, "engines": { @@ -1211,14 +1433,14 @@ } }, "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.25.2", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.25.2.tgz", - "integrity": "sha512-+wqVGP+DFmqwFD3EH6TMTfUNeqDehV3E/dl+Sd54eaXqm17tEUNbEIn4sVivVowbvUpOtIGxdo3GoXyDH9N/9g==", + "version": "7.26.3", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.26.3.tgz", + "integrity": "sha512-G7ZRb40uUgdKOQqPLjfD12ZmGA54PzqDFUv2BKImnC9QIfGhIHKvVML0oN8IUiDq4iRqpq74ABpvOaerfWdong==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.24.7", - "regexpu-core": "^5.3.1", + "@babel/helper-annotate-as-pure": "^7.25.9", + "regexpu-core": "^6.2.0", "semver": "^6.3.1" }, "engines": { @@ -1239,9 +1461,9 @@ } }, "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.2.tgz", - "integrity": "sha512-LV76g+C502biUK6AyZ3LK10vDpDyCzZnhZFXkH1L75zHPj68+qc8Zfpx2th+gzwA2MzyK+1g/3EPl62yFnVttQ==", + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.3.tgz", + "integrity": "sha512-HK7Bi+Hj6H+VTHA3ZvBis7V/6hu9QuTrnMXNybfUf2iiuU/N97I8VjB+KbhFF8Rld/Lx5MzoCwPCpPjfK+n8Cg==", "dev": true, "license": "MIT", "dependencies": { @@ -1256,44 +1478,43 @@ } }, "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.24.8", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.24.8.tgz", - "integrity": "sha512-LABppdt+Lp/RlBxqrh4qgf1oEH/WxdzQNDJIu5gC/W1GyvPVrOBiItmmM8wan2fm4oYqFuFfkXmlGpLQhPY8CA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.25.9.tgz", + "integrity": "sha512-wbfdZ9w5vk0C0oyHqAJbc62+vet5prjj01jjJ8sKn3j9h3MQQlflEdXYvuqRWjHnM12coDEqiC1IRCi0U/EKwQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/traverse": "^7.24.8", - "@babel/types": "^7.24.8" + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-imports": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz", - "integrity": "sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz", + "integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/traverse": "^7.24.7", - "@babel/types": "^7.24.7" + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.25.2", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.25.2.tgz", - "integrity": "sha512-BjyRAbix6j/wv83ftcVJmBt72QtHI56C7JXZoG2xATiLpmoC7dpd8WnkikExHDVPpi/3qCmO6WY1EaXOluiecQ==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz", + "integrity": "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-module-imports": "^7.24.7", - "@babel/helper-simple-access": "^7.24.7", - "@babel/helper-validator-identifier": "^7.24.7", - "@babel/traverse": "^7.25.2" + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9", + "@babel/traverse": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1303,22 +1524,22 @@ } }, "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.24.7.tgz", - "integrity": "sha512-jKiTsW2xmWwxT1ixIdfXUZp+P5yURx2suzLZr5Hi64rURpDYdMW0pv+Uf17EYk2Rd428Lx4tLsnjGJzYKDM/6A==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.25.9.tgz", + "integrity": "sha512-FIpuNaz5ow8VyrYcnXQTDRGvV6tTjkNtCK/RYNDXGSLlUD6cBuQTSw43CShGxjvfBTfcUA/r6UhUCbtYqkhcuQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.24.7" + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.24.8", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.8.tgz", - "integrity": "sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg==", + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.26.5.tgz", + "integrity": "sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg==", "dev": true, "license": "MIT", "engines": { @@ -1326,15 +1547,15 @@ } }, "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.25.0", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.25.0.tgz", - "integrity": "sha512-NhavI2eWEIz/H9dbrG0TuOicDhNexze43i5z7lEqwYm0WEZVTwnPpA0EafUTP7+6/W79HWIP2cTe3Z5NiSTVpw==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.25.9.tgz", + "integrity": "sha512-IZtukuUeBbhgOcaW2s06OXTzVNJR0ybm4W5xC1opWFFJMZbwRj5LCk+ByYH7WdZPZTt8KnFwA8pvjN2yqcPlgw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.24.7", - "@babel/helper-wrap-function": "^7.25.0", - "@babel/traverse": "^7.25.0" + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-wrap-function": "^7.25.9", + "@babel/traverse": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1344,15 +1565,15 @@ } }, "node_modules/@babel/helper-replace-supers": { - "version": "7.25.0", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.25.0.tgz", - "integrity": "sha512-q688zIvQVYtZu+i2PsdIu/uWGRpfxzr5WESsfpShfZECkO+d2o+WROWezCi/Q6kJ0tfPa5+pUGUlfx2HhrA3Bg==", + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.26.5.tgz", + "integrity": "sha512-bJ6iIVdYX1YooY2X7w1q6VITt+LnUILtNk7zT78ykuwStx8BauCzxvFqFaHjOpW1bVnSUM1PN1f0p5P21wHxvg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-member-expression-to-functions": "^7.24.8", - "@babel/helper-optimise-call-expression": "^7.24.7", - "@babel/traverse": "^7.25.0" + "@babel/helper-member-expression-to-functions": "^7.25.9", + "@babel/helper-optimise-call-expression": "^7.25.9", + "@babel/traverse": "^7.26.5" }, "engines": { "node": ">=6.9.0" @@ -1361,29 +1582,15 @@ "@babel/core": "^7.0.0" } }, - "node_modules/@babel/helper-simple-access": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.7.tgz", - "integrity": "sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/traverse": "^7.24.7", - "@babel/types": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.24.7.tgz", - "integrity": "sha512-IO+DLT3LQUElMbpzlatRASEyQtfhSE0+m465v++3jyyXeBTBUjtVZg28/gHeV5mrTJqvEKhKroBGAvhW+qPHiQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.25.9.tgz", + "integrity": "sha512-K4Du3BFa3gvyhzgPcntrkDgZzQaq6uozzcpGbOO1OEJaI+EJdqWIMTLgFgQf6lrfiDFo5FU+BxKepI9RmZqahA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/traverse": "^7.24.7", - "@babel/types": "^7.24.7" + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1403,9 +1610,9 @@ } }, "node_modules/@babel/helper-string-parser": { - "version": "7.24.8", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz", - "integrity": "sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", + "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", "dev": true, "license": "MIT", "engines": { @@ -1413,9 +1620,9 @@ } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz", - "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", + "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", "dev": true, "license": "MIT", "engines": { @@ -1423,9 +1630,9 @@ } }, "node_modules/@babel/helper-validator-option": { - "version": "7.24.8", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.8.tgz", - "integrity": "sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz", + "integrity": "sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==", "dev": true, "license": "MIT", "engines": { @@ -1433,58 +1640,42 @@ } }, "node_modules/@babel/helper-wrap-function": { - "version": "7.25.0", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.25.0.tgz", - "integrity": "sha512-s6Q1ebqutSiZnEjaofc/UKDyC4SbzV5n5SrA2Gq8UawLycr3i04f1dX4OzoQVnexm6aOCh37SQNYlJ/8Ku+PMQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.25.9.tgz", + "integrity": "sha512-ETzz9UTjQSTmw39GboatdymDq4XIQbR8ySgVrylRhPOFpsd+JrKHIuF0de7GCWmem+T4uC5z7EZguod7Wj4A4g==", "dev": true, "license": "MIT", "dependencies": { - "@babel/template": "^7.25.0", - "@babel/traverse": "^7.25.0", - "@babel/types": "^7.25.0" + "@babel/template": "^7.25.9", + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helpers": { - "version": "7.25.6", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.25.6.tgz", - "integrity": "sha512-Xg0tn4HcfTijTwfDwYlvVCl43V6h4KyVVX2aEm4qdO/PC6L2YvzLHFdmxhoeSA3eslcE6+ZVXHgWwopXYLNq4Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/template": "^7.25.0", - "@babel/types": "^7.25.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz", - "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.26.0.tgz", + "integrity": "sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-validator-identifier": "^7.24.7", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0", - "picocolors": "^1.0.0" + "@babel/template": "^7.25.9", + "@babel/types": "^7.26.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/parser": { - "version": "7.25.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.25.6.tgz", - "integrity": "sha512-trGdfBdbD0l1ZPmcJ83eNxB9rbEax4ALFTF7fN386TMYbeCQbyme5cOEXQhbGXKebwGaB/J52w1mrklMcbgy6Q==", + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.5.tgz", + "integrity": "sha512-SRJ4jYmXRqV1/Xc+TIVG84WjHBXKlxO9sHQnA2Pf12QQEAp1LOh6kDzNHXcUnbH1QI0FDoPPVOt+vyUDucxpaw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.25.6" + "@babel/types": "^7.26.5" }, "bin": { "parser": "bin/babel-parser.js" @@ -1494,14 +1685,14 @@ } }, "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { - "version": "7.25.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.25.3.tgz", - "integrity": "sha512-wUrcsxZg6rqBXG05HG1FPYgsP6EvwF4WpBbxIpWIIYnH8wG0gzx3yZY3dtEHas4sTAOGkbTsc9EGPxwff8lRoA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.25.9.tgz", + "integrity": "sha512-ZkRyVkThtxQ/J6nv3JFYv1RYY+JT5BvU0y3k5bWrmuG4woXypRa4PXmm9RhOwodRkYFWqC0C0cqcJ4OqR7kW+g==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.8", - "@babel/traverse": "^7.25.3" + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/traverse": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1511,13 +1702,13 @@ } }, "node_modules/@babel/plugin-bugfix-safari-class-field-initializer-scope": { - "version": "7.25.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.25.0.tgz", - "integrity": "sha512-Bm4bH2qsX880b/3ziJ8KD711LT7z4u8CFudmjqle65AZj/HNUFhEf90dqYv6O86buWvSBmeQDjv0Tn2aF/bIBA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.25.9.tgz", + "integrity": "sha512-MrGRLZxLD/Zjj0gdU15dfs+HH/OXvnw/U4jJD8vpcP2CJQapPEv1IWwjc/qMg7ItBlPwSv1hRBbb7LeuANdcnw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.8" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1527,13 +1718,13 @@ } }, "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.25.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.25.0.tgz", - "integrity": "sha512-lXwdNZtTmeVOOFtwM/WDe7yg1PL8sYhRk/XH0FzbR2HDQ0xC+EnQ/JHeoMYSavtU115tnUk0q9CDyq8si+LMAA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.25.9.tgz", + "integrity": "sha512-2qUwwfAFpJLZqxd02YW9btUCZHl+RFvdDkNfZwaIJrvB8Tesjsk8pEQkTvGwZXLqXUx/2oyY3ySRhm6HOXuCug==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.8" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1543,15 +1734,15 @@ } }, "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.24.7.tgz", - "integrity": "sha512-+izXIbke1T33mY4MSNnrqhPXDz01WYhEf3yF5NbnUtkiNnm+XBZJl3kNfoK6NKmYlz/D07+l2GWVK/QfDkNCuQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.25.9.tgz", + "integrity": "sha512-6xWgLZTJXwilVjlnV7ospI3xi+sl8lN8rXXbBD6vYn3UYDlGsag8wrZkKcSI8G6KgqKP7vNFaDgeDnfAABq61g==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", - "@babel/plugin-transform-optional-chaining": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9", + "@babel/plugin-transform-optional-chaining": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1561,14 +1752,14 @@ } }, "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { - "version": "7.25.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.25.0.tgz", - "integrity": "sha512-tggFrk1AIShG/RUQbEwt2Tr/E+ObkfwrPjR6BjbRvsx24+PSjK8zrq0GWPNCjo8qpRx4DuJzlcvWJqlm+0h3kw==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.25.9.tgz", + "integrity": "sha512-aLnMXYPnzwwqhYSCyXfKkIkYgJ8zv9RK+roo9DkTXz38ynIhd9XCbN08s3MGvqL2MYGVUGdRQLL/JqBIeJhJBg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.8", - "@babel/traverse": "^7.25.0" + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/traverse": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1590,234 +1781,30 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "node_modules/@babel/plugin-syntax-import-assertions": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.26.0.tgz", + "integrity": "sha512-QCWT5Hh830hK5EQa7XzuqIkQU9tT/whqbDz7kuaZMHFl1inRRg7JnuAEOQ0Ur0QUl0NufCk1msK2BeY79Aj/eg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" + "@babel/helper-plugin-utils": "^7.25.9" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-class-static-block": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", - "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.26.0.tgz", + "integrity": "sha512-e2dttdsJ1ZTpi3B9UYGLw41hifAubg19AtCu/2I/F1QNVclOBr1dYpTdmdyZ84Xiz43BS/tCUkMAZNLv12Pi+A==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", - "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-export-namespace-from": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", - "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-assertions": { - "version": "7.25.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.25.6.tgz", - "integrity": "sha512-aABl0jHw9bZ2karQ/uUD6XP4u0SG22SJrOHFoL6XB1R7dTovOP4TzTlsxOYC5yQ1pdscVK2JTUnF6QL3ARoAiQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.24.8" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-attributes": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.24.7.tgz", - "integrity": "sha512-hbX+lKKeUMGihnK8nvKqmXBInriT3GVjzXKFriV3YC6APGxMbP8RZNFwy91+hocLXq90Mta+HshoB31802bb8A==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", - "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-private-property-in-object": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", - "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1844,13 +1831,13 @@ } }, "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.24.7.tgz", - "integrity": "sha512-Dt9LQs6iEY++gXUwY03DNFat5C2NbO48jj+j/bSAz6b3HgPs39qcPiYt77fDObIcFwj3/C2ICX9YMwGflUoSHQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.25.9.tgz", + "integrity": "sha512-6jmooXYIwn9ca5/RylZADJ+EnSxVUS5sjeJ9UPk6RWRzXCmOJCy6dqItPJFpw2cuCangPK4OYr5uhGKcmrm5Qg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1860,16 +1847,15 @@ } }, "node_modules/@babel/plugin-transform-async-generator-functions": { - "version": "7.25.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.25.0.tgz", - "integrity": "sha512-uaIi2FdqzjpAMvVqvB51S42oC2JEVgh0LDsGfZVDysWE8LrJtQC2jvKmOqEYThKyB7bDEb7BP1GYWDm7tABA0Q==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.25.9.tgz", + "integrity": "sha512-RXV6QAzTBbhDMO9fWwOmwwTuYaiPbggWQ9INdZqAYeSHyG7FzQ+nOZaUUjNwKv9pV3aE4WFqFm1Hnbci5tBCAw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.8", - "@babel/helper-remap-async-to-generator": "^7.25.0", - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/traverse": "^7.25.0" + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-remap-async-to-generator": "^7.25.9", + "@babel/traverse": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1879,15 +1865,15 @@ } }, "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.24.7.tgz", - "integrity": "sha512-SQY01PcJfmQ+4Ash7NE+rpbLFbmqA2GPIgqzxfFTL4t1FKRq4zTms/7htKpoCUI9OcFYgzqfmCdH53s6/jn5fA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.25.9.tgz", + "integrity": "sha512-NT7Ejn7Z/LjUH0Gv5KsBCxh7BH3fbLTV0ptHvpeMvrt3cPThHfJfst9Wrb7S8EvJ7vRTFI7z+VAvFVEQn/m5zQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-module-imports": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/helper-remap-async-to-generator": "^7.24.7" + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-remap-async-to-generator": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1897,13 +1883,13 @@ } }, "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.24.7.tgz", - "integrity": "sha512-yO7RAz6EsVQDaBH18IDJcMB1HnrUn2FJ/Jslc/WtPPWcjhpUJXU/rjbwmluzp7v/ZzWcEhTMXELnnsz8djWDwQ==", + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.26.5.tgz", + "integrity": "sha512-chuTSY+hq09+/f5lMj8ZSYgCFpppV2CbYrhNFJ1BFoXpiWPnnAb7R0MqrafCpN8E1+YRrtM1MXZHJdIx8B6rMQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.26.5" }, "engines": { "node": ">=6.9.0" @@ -1913,13 +1899,13 @@ } }, "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.25.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.25.0.tgz", - "integrity": "sha512-yBQjYoOjXlFv9nlXb3f1casSHOZkWr29NX+zChVanLg5Nc157CrbEX9D7hxxtTpuFy7Q0YzmmWfJxzvps4kXrQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.25.9.tgz", + "integrity": "sha512-1F05O7AYjymAtqbsFETboN1NvBdcnzMerO+zlMyJBEz6WkMdejvGWw9p05iTSjC85RLlBseHHQpYaM4gzJkBGg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.8" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1929,14 +1915,14 @@ } }, "node_modules/@babel/plugin-transform-class-properties": { - "version": "7.25.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.25.4.tgz", - "integrity": "sha512-nZeZHyCWPfjkdU5pA/uHiTaDAFUEqkpzf1YoQT2NeSynCGYq9rxfyI3XpQbfx/a0hSnFH6TGlEXvae5Vi7GD8g==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.25.9.tgz", + "integrity": "sha512-bbMAII8GRSkcd0h0b4X+36GksxuheLFjP65ul9w6C3KgAamI3JqErNgSrosX6ZPj+Mpim5VvEbawXxJCyEUV3Q==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.25.4", - "@babel/helper-plugin-utils": "^7.24.8" + "@babel/helper-create-class-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1946,15 +1932,14 @@ } }, "node_modules/@babel/plugin-transform-class-static-block": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.24.7.tgz", - "integrity": "sha512-HMXK3WbBPpZQufbMG4B46A90PkuuhN9vBCb5T8+VAHqvAqvcLi+2cKoukcpmUYkszLhScU3l1iudhrks3DggRQ==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.26.0.tgz", + "integrity": "sha512-6J2APTs7BDDm+UMqP1useWqhcRAXo0WIoVj26N7kPFB6S73Lgvyka4KTZYIxtgYXiN5HTyRObA72N2iu628iTQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/plugin-syntax-class-static-block": "^7.14.5" + "@babel/helper-create-class-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1964,17 +1949,17 @@ } }, "node_modules/@babel/plugin-transform-classes": { - "version": "7.25.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.25.4.tgz", - "integrity": "sha512-oexUfaQle2pF/b6E0dwsxQtAol9TLSO88kQvym6HHBWFliV2lGdrPieX+WgMRLSJDVzdYywk7jXbLPuO2KLTLg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.25.9.tgz", + "integrity": "sha512-mD8APIXmseE7oZvZgGABDyM34GUmK45Um2TXiBUt7PnuAxrgoSVf123qUzPxEr/+/BHrRn5NMZCdE2m/1F8DGg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.24.7", - "@babel/helper-compilation-targets": "^7.25.2", - "@babel/helper-plugin-utils": "^7.24.8", - "@babel/helper-replace-supers": "^7.25.0", - "@babel/traverse": "^7.25.4", + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-replace-supers": "^7.25.9", + "@babel/traverse": "^7.25.9", "globals": "^11.1.0" }, "engines": { @@ -1985,14 +1970,14 @@ } }, "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.24.7.tgz", - "integrity": "sha512-25cS7v+707Gu6Ds2oY6tCkUwsJ9YIDbggd9+cu9jzzDgiNq7hR/8dkzxWfKWnTic26vsI3EsCXNd4iEB6e8esQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.25.9.tgz", + "integrity": "sha512-HnBegGqXZR12xbcTHlJ9HGxw1OniltT26J5YpfruGqtUHlz/xKf/G2ak9e+t0rVqrjXa9WOhvYPz1ERfMj23AA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/template": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/template": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2002,13 +1987,13 @@ } }, "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.24.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.8.tgz", - "integrity": "sha512-36e87mfY8TnRxc7yc6M9g9gOB7rKgSahqkIKwLpz4Ppk2+zC2Cy1is0uwtuSG6AE4zlTOUa+7JGz9jCJGLqQFQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.25.9.tgz", + "integrity": "sha512-WkCGb/3ZxXepmMiX101nnGiU+1CAdut8oHyEOHxkKuS1qKpU2SMXE2uSvfz8PBuLd49V6LEsbtyPhWC7fnkgvQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.8" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2018,14 +2003,14 @@ } }, "node_modules/@babel/plugin-transform-dotall-regex": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.24.7.tgz", - "integrity": "sha512-ZOA3W+1RRTSWvyqcMJDLqbchh7U4NRGqwRfFSVbOLS/ePIP4vHB5e8T8eXcuqyN1QkgKyj5wuW0lcS85v4CrSw==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.25.9.tgz", + "integrity": "sha512-t7ZQ7g5trIgSRYhI9pIJtRl64KHotutUJsh4Eze5l7olJv+mRSg4/MmbZ0tv1eeqRbdvo/+trvJD/Oc5DmW2cA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2035,13 +2020,13 @@ } }, "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.24.7.tgz", - "integrity": "sha512-JdYfXyCRihAe46jUIliuL2/s0x0wObgwwiGxw/UbgJBr20gQBThrokO4nYKgWkD7uBaqM7+9x5TU7NkExZJyzw==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.25.9.tgz", + "integrity": "sha512-LZxhJ6dvBb/f3x8xwWIuyiAHy56nrRG3PeYTpBkkzkYRRQ6tJLu68lEF5VIqMUZiAV7a8+Tb78nEoMCMcqjXBw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2051,14 +2036,14 @@ } }, "node_modules/@babel/plugin-transform-duplicate-named-capturing-groups-regex": { - "version": "7.25.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.25.0.tgz", - "integrity": "sha512-YLpb4LlYSc3sCUa35un84poXoraOiQucUTTu8X1j18JV+gNa8E0nyUf/CjZ171IRGr4jEguF+vzJU66QZhn29g==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.25.9.tgz", + "integrity": "sha512-0UfuJS0EsXbRvKnwcLjFtJy/Sxc5J5jhLHnFhy7u4zih97Hz6tJkLU+O+FMMrNZrosUPxDi6sYxJ/EA8jDiAog==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.0", - "@babel/helper-plugin-utils": "^7.24.8" + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2068,14 +2053,13 @@ } }, "node_modules/@babel/plugin-transform-dynamic-import": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.24.7.tgz", - "integrity": "sha512-sc3X26PhZQDb3JhORmakcbvkeInvxz+A8oda99lj7J60QRuPZvNAk9wQlTBS1ZynelDrDmTU4pw1tyc5d5ZMUg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.25.9.tgz", + "integrity": "sha512-GCggjexbmSLaFhqsojeugBpeaRIgWNTcgKVq/0qIteFEqY2A+b9QidYadrWlnbWQUrW5fn+mCvf3tr7OeBFTyg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2085,14 +2069,13 @@ } }, "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.24.7.tgz", - "integrity": "sha512-Rqe/vSc9OYgDajNIK35u7ot+KeCoetqQYFXM4Epf7M7ez3lWlOjrDjrwMei6caCVhfdw+mIKD4cgdGNy5JQotQ==", + "version": "7.26.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.26.3.tgz", + "integrity": "sha512-7CAHcQ58z2chuXPWblnn1K6rLDnDWieghSOEmqQsrBenH0P9InCUtOJYD89pvngljmZlJcz3fcmgYsXFNGa1ZQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2102,14 +2085,13 @@ } }, "node_modules/@babel/plugin-transform-export-namespace-from": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.24.7.tgz", - "integrity": "sha512-v0K9uNYsPL3oXZ/7F9NNIbAj2jv1whUEtyA6aujhekLs56R++JDQuzRcP2/z4WX5Vg/c5lE9uWZA0/iUoFhLTA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.25.9.tgz", + "integrity": "sha512-2NsEz+CxzJIVOPx2o9UsW1rXLqtChtLoVnwYHHiB04wS5sgn7mrV45fWMBX0Kk+ub9uXytVYfNP2HjbVbCB3Ww==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2119,14 +2101,14 @@ } }, "node_modules/@babel/plugin-transform-for-of": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.24.7.tgz", - "integrity": "sha512-wo9ogrDG1ITTTBsy46oGiN1dS9A7MROBTcYsfS8DtsImMkHk9JXJ3EWQM6X2SUw4x80uGPlwj0o00Uoc6nEE3g==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.25.9.tgz", + "integrity": "sha512-LqHxduHoaGELJl2uhImHwRQudhCM50pT46rIBNvtT/Oql3nqiS3wOwP+5ten7NpYSXrrVLgtZU3DZmPtWZo16A==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2136,15 +2118,15 @@ } }, "node_modules/@babel/plugin-transform-function-name": { - "version": "7.25.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.25.1.tgz", - "integrity": "sha512-TVVJVdW9RKMNgJJlLtHsKDTydjZAbwIsn6ySBPQaEAUU5+gVvlJt/9nRmqVbsV/IBanRjzWoaAQKLoamWVOUuA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.25.9.tgz", + "integrity": "sha512-8lP+Yxjv14Vc5MuWBpJsoUCd3hD6V9DgBon2FVYL4jJgbnVQ9fTgYmonchzZJOVNgzEgbxp4OwAf6xz6M/14XA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-compilation-targets": "^7.24.8", - "@babel/helper-plugin-utils": "^7.24.8", - "@babel/traverse": "^7.25.1" + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/traverse": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2154,14 +2136,13 @@ } }, "node_modules/@babel/plugin-transform-json-strings": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.24.7.tgz", - "integrity": "sha512-2yFnBGDvRuxAaE/f0vfBKvtnvvqU8tGpMHqMNpTN2oWMKIR3NqFkjaAgGwawhqK/pIN2T3XdjGPdaG0vDhOBGw==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.25.9.tgz", + "integrity": "sha512-xoTMk0WXceiiIvsaquQQUaLLXSW1KJ159KP87VilruQm0LNNGxWzahxSS6T6i4Zg3ezp4vA4zuwiNUR53qmQAw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/plugin-syntax-json-strings": "^7.8.3" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2171,13 +2152,13 @@ } }, "node_modules/@babel/plugin-transform-literals": { - "version": "7.25.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.25.2.tgz", - "integrity": "sha512-HQI+HcTbm9ur3Z2DkO+jgESMAMcYLuN/A7NRw9juzxAezN9AvqvUTnpKP/9kkYANz6u7dFlAyOu44ejuGySlfw==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.25.9.tgz", + "integrity": "sha512-9N7+2lFziW8W9pBl2TzaNht3+pgMIRP74zizeCSrtnSKVdUl8mAjjOP2OOVQAfZ881P2cNjDj1uAMEdeD50nuQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.8" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2187,14 +2168,13 @@ } }, "node_modules/@babel/plugin-transform-logical-assignment-operators": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.24.7.tgz", - "integrity": "sha512-4D2tpwlQ1odXmTEIFWy9ELJcZHqrStlzK/dAOWYyxX3zT0iXQB6banjgeOJQXzEc4S0E0a5A+hahxPaEFYftsw==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.25.9.tgz", + "integrity": "sha512-wI4wRAzGko551Y8eVf6iOY9EouIDTtPb0ByZx+ktDGHwv6bHFimrgJM/2T021txPZ2s4c7bqvHbd+vXG6K948Q==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2204,13 +2184,13 @@ } }, "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.24.7.tgz", - "integrity": "sha512-T/hRC1uqrzXMKLQ6UCwMT85S3EvqaBXDGf0FaMf4446Qx9vKwlghvee0+uuZcDUCZU5RuNi4781UQ7R308zzBw==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.25.9.tgz", + "integrity": "sha512-PYazBVfofCQkkMzh2P6IdIUaCEWni3iYEerAsRWuVd8+jlM1S9S9cz1dF9hIzyoZ8IA3+OwVYIp9v9e+GbgZhA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2220,14 +2200,14 @@ } }, "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.24.7.tgz", - "integrity": "sha512-9+pB1qxV3vs/8Hdmz/CulFB8w2tuu6EB94JZFsjdqxQokwGa9Unap7Bo2gGBGIvPmDIVvQrom7r5m/TCDMURhg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.25.9.tgz", + "integrity": "sha512-g5T11tnI36jVClQlMlt4qKDLlWnG5pP9CSM4GhdRciTNMRgkfpo5cR6b4rGIOYPgRRuFAvwjPQ/Yk+ql4dyhbw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-module-transforms": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-module-transforms": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2237,15 +2217,14 @@ } }, "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.24.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.8.tgz", - "integrity": "sha512-WHsk9H8XxRs3JXKWFiqtQebdh9b/pTk4EgueygFzYlTKAg0Ud985mSevdNjdXdFBATSKVJGQXP1tv6aGbssLKA==", + "version": "7.26.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.26.3.tgz", + "integrity": "sha512-MgR55l4q9KddUDITEzEFYn5ZsGDXMSsU9E+kh7fjRXTIC3RHqfCo8RPRbyReYJh44HQ/yomFkqbOFohXvDCiIQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-module-transforms": "^7.24.8", - "@babel/helper-plugin-utils": "^7.24.8", - "@babel/helper-simple-access": "^7.24.7" + "@babel/helper-module-transforms": "^7.26.0", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2255,16 +2234,16 @@ } }, "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.25.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.25.0.tgz", - "integrity": "sha512-YPJfjQPDXxyQWg/0+jHKj1llnY5f/R6a0p/vP4lPymxLu7Lvl4k2WMitqi08yxwQcCVUUdG9LCUj4TNEgAp3Jw==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.25.9.tgz", + "integrity": "sha512-hyss7iIlH/zLHaehT+xwiymtPOpsiwIIRlCAOwBB04ta5Tt+lNItADdlXw3jAWZ96VJ2jlhl/c+PNIQPKNfvcA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-module-transforms": "^7.25.0", - "@babel/helper-plugin-utils": "^7.24.8", - "@babel/helper-validator-identifier": "^7.24.7", - "@babel/traverse": "^7.25.0" + "@babel/helper-module-transforms": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9", + "@babel/traverse": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2274,14 +2253,14 @@ } }, "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.24.7.tgz", - "integrity": "sha512-3aytQvqJ/h9z4g8AsKPLvD4Zqi2qT+L3j7XoFFu1XBlZWEl2/1kWnhmAbxpLgPrHSY0M6UA02jyTiwUVtiKR6A==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.25.9.tgz", + "integrity": "sha512-bS9MVObUgE7ww36HEfwe6g9WakQ0KF07mQF74uuXdkoziUPfKyu/nIm663kz//e5O1nPInPFx36z7WJmJ4yNEw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-module-transforms": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-module-transforms": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2291,14 +2270,14 @@ } }, "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.24.7.tgz", - "integrity": "sha512-/jr7h/EWeJtk1U/uz2jlsCioHkZk1JJZVcc8oQsJ1dUlaJD83f4/6Zeh2aHt9BIFokHIsSeDfhUmju0+1GPd6g==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.25.9.tgz", + "integrity": "sha512-oqB6WHdKTGl3q/ItQhpLSnWWOpjUJLsOCLVyeFgeTktkBSCiurvPOsyt93gibI9CmuKvTUEtWmG5VhZD+5T/KA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2308,13 +2287,13 @@ } }, "node_modules/@babel/plugin-transform-new-target": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.24.7.tgz", - "integrity": "sha512-RNKwfRIXg4Ls/8mMTza5oPF5RkOW8Wy/WgMAp1/F1yZ8mMbtwXW+HDoJiOsagWrAhI5f57Vncrmr9XeT4CVapA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.25.9.tgz", + "integrity": "sha512-U/3p8X1yCSoKyUj2eOBIx3FOn6pElFOKvAAGf8HTtItuPyB+ZeOqfn+mvTtg9ZlOAjsPdK3ayQEjqHjU/yLeVQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2324,14 +2303,13 @@ } }, "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.24.7.tgz", - "integrity": "sha512-Ts7xQVk1OEocqzm8rHMXHlxvsfZ0cEF2yomUqpKENHWMF4zKk175Y4q8H5knJes6PgYad50uuRmt3UJuhBw8pQ==", + "version": "7.26.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.26.6.tgz", + "integrity": "sha512-CKW8Vu+uUZneQCPtXmSBUC6NCAUdya26hWCElAWh5mVSlSRsmiCPUUDKb3Z0szng1hiAJa098Hkhg9o4SE35Qw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + "@babel/helper-plugin-utils": "^7.26.5" }, "engines": { "node": ">=6.9.0" @@ -2341,14 +2319,13 @@ } }, "node_modules/@babel/plugin-transform-numeric-separator": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.24.7.tgz", - "integrity": "sha512-e6q1TiVUzvH9KRvicuxdBTUj4AdKSRwzIyFFnfnezpCfP2/7Qmbb8qbU2j7GODbl4JMkblitCQjKYUaX/qkkwA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.25.9.tgz", + "integrity": "sha512-TlprrJ1GBZ3r6s96Yq8gEQv82s8/5HnCVHtEJScUj90thHQbwe+E5MLhi2bbNHBEJuzrvltXSru+BUxHDoog7Q==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2358,16 +2335,15 @@ } }, "node_modules/@babel/plugin-transform-object-rest-spread": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.7.tgz", - "integrity": "sha512-4QrHAr0aXQCEFni2q4DqKLD31n2DL+RxcwnNjDFkSG0eNQ/xCavnRkfCUjsyqGC2OviNJvZOF/mQqZBw7i2C5Q==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.25.9.tgz", + "integrity": "sha512-fSaXafEE9CVHPweLYw4J0emp1t8zYTXyzN3UuG+lylqkvYd7RMrsOQ8TYx5RF231be0vqtFC6jnx3UmpJmKBYg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-compilation-targets": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.24.7" + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/plugin-transform-parameters": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2377,14 +2353,14 @@ } }, "node_modules/@babel/plugin-transform-object-super": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.24.7.tgz", - "integrity": "sha512-A/vVLwN6lBrMFmMDmPPz0jnE6ZGx7Jq7d6sT/Ev4H65RER6pZ+kczlf1DthF5N0qaPHBsI7UXiE8Zy66nmAovg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.25.9.tgz", + "integrity": "sha512-Kj/Gh+Rw2RNLbCK1VAWj2U48yxxqL2x0k10nPtSdRa0O2xnHXalD0s+o1A6a0W43gJ00ANo38jxkQreckOzv5A==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/helper-replace-supers": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-replace-supers": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2394,14 +2370,13 @@ } }, "node_modules/@babel/plugin-transform-optional-catch-binding": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.24.7.tgz", - "integrity": "sha512-uLEndKqP5BfBbC/5jTwPxLh9kqPWWgzN/f8w6UwAIirAEqiIVJWWY312X72Eub09g5KF9+Zn7+hT7sDxmhRuKA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.25.9.tgz", + "integrity": "sha512-qM/6m6hQZzDcZF3onzIhZeDHDO43bkNNlOX0i8n3lR6zLbu0GN2d8qfM/IERJZYauhAHSLHy39NF0Ctdvcid7g==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2411,15 +2386,14 @@ } }, "node_modules/@babel/plugin-transform-optional-chaining": { - "version": "7.24.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.24.8.tgz", - "integrity": "sha512-5cTOLSMs9eypEy8JUVvIKOu6NgvbJMnpG62VpIHrTmROdQ+L5mDAaI40g25k5vXti55JWNX5jCkq3HZxXBQANw==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.25.9.tgz", + "integrity": "sha512-6AvV0FsLULbpnXeBjrY4dmWF8F7gf8QnvTEoO/wX/5xm/xE1Xo8oPuD3MPS+KS9f9XBEAWN7X1aWr4z9HdOr7A==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.8", - "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2429,13 +2403,13 @@ } }, "node_modules/@babel/plugin-transform-parameters": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.24.7.tgz", - "integrity": "sha512-yGWW5Rr+sQOhK0Ot8hjDJuxU3XLRQGflvT4lhlSY0DFvdb3TwKaY26CJzHtYllU0vT9j58hc37ndFPsqT1SrzA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.25.9.tgz", + "integrity": "sha512-wzz6MKwpnshBAiRmn4jR8LYz/g8Ksg0o80XmwZDlordjwEk9SxBzTWC7F5ef1jhbrbOW2DJ5J6ayRukrJmnr0g==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2445,14 +2419,14 @@ } }, "node_modules/@babel/plugin-transform-private-methods": { - "version": "7.25.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.25.4.tgz", - "integrity": "sha512-ao8BG7E2b/URaUQGqN3Tlsg+M3KlHY6rJ1O1gXAEUnZoyNQnvKyH87Kfg+FoxSeyWUB8ISZZsC91C44ZuBFytw==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.25.9.tgz", + "integrity": "sha512-D/JUozNpQLAPUVusvqMxyvjzllRaF8/nSrP1s2YGQT/W4LHK4xxsMcHjhOGTS01mp9Hda8nswb+FblLdJornQw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.25.4", - "@babel/helper-plugin-utils": "^7.24.8" + "@babel/helper-create-class-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2462,16 +2436,15 @@ } }, "node_modules/@babel/plugin-transform-private-property-in-object": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.24.7.tgz", - "integrity": "sha512-9z76mxwnwFxMyxZWEgdgECQglF2Q7cFLm0kMf8pGwt+GSJsY0cONKj/UuO4bOH0w/uAel3ekS4ra5CEAyJRmDA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.25.9.tgz", + "integrity": "sha512-Evf3kcMqzXA3xfYJmZ9Pg1OvKdtqsDMSWBDzZOPLvHiTt36E75jLDQo5w1gtRU95Q4E5PDttrTf25Fw8d/uWLw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.24.7", - "@babel/helper-create-class-features-plugin": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-create-class-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2481,13 +2454,13 @@ } }, "node_modules/@babel/plugin-transform-property-literals": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.24.7.tgz", - "integrity": "sha512-EMi4MLQSHfd2nrCqQEWxFdha2gBCqU4ZcCng4WBGZ5CJL4bBRW0ptdqqDdeirGZcpALazVVNJqRmsO8/+oNCBA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.25.9.tgz", + "integrity": "sha512-IvIUeV5KrS/VPavfSM/Iu+RE6llrHrYIKY1yfCzyO/lMXHQ+p7uGhonmGVisv6tSBSVgWzMBohTcvkC9vQcQFA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2497,13 +2470,13 @@ } }, "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.24.7.tgz", - "integrity": "sha512-lq3fvXPdimDrlg6LWBoqj+r/DEWgONuwjuOuQCSYgRroXDH/IdM1C0IZf59fL5cHLpjEH/O6opIRBbqv7ELnuA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.25.9.tgz", + "integrity": "sha512-vwDcDNsgMPDGP0nMqzahDWE5/MLcX8sv96+wfX7as7LoF/kr97Bo/7fI00lXY4wUXYfVmwIIyG80fGZ1uvt2qg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-plugin-utils": "^7.25.9", "regenerator-transform": "^0.15.2" }, "engines": { @@ -2513,14 +2486,31 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-transform-regexp-modifiers": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.26.0.tgz", + "integrity": "sha512-vN6saax7lrA2yA/Pak3sCxuD6F5InBjn9IcrIKQPjpsLvuHYLVroTxjdlVRHjjBWxKOqIwpTXDkOssYT4BFdRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.24.7.tgz", - "integrity": "sha512-0DUq0pHcPKbjFZCfTss/pGkYMfy3vFWydkUBd9r0GHpIyfs2eCDENvqadMycRS9wZCXR41wucAfJHJmwA0UmoQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.25.9.tgz", + "integrity": "sha512-7DL7DKYjn5Su++4RXu8puKZm2XBPHyjWLUidaPEkCUBbE7IPcsrkRHggAOOKydH1dASWdcUBxrkOGNxUv5P3Jg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2530,16 +2520,16 @@ } }, "node_modules/@babel/plugin-transform-runtime": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.24.7.tgz", - "integrity": "sha512-YqXjrk4C+a1kZjewqt+Mmu2UuV1s07y8kqcUf4qYLnoqemhR4gRQikhdAhSVJioMjVTu6Mo6pAbaypEA3jY6fw==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.25.9.tgz", + "integrity": "sha512-nZp7GlEl+yULJrClz0SwHPqir3lc0zsPrDHQUcxGspSL7AKrexNSEfTbfqnDNJUO13bgKyfuOLMF8Xqtu8j3YQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-module-imports": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", "babel-plugin-polyfill-corejs2": "^0.4.10", - "babel-plugin-polyfill-corejs3": "^0.10.1", + "babel-plugin-polyfill-corejs3": "^0.10.6", "babel-plugin-polyfill-regenerator": "^0.6.1", "semver": "^6.3.1" }, @@ -2561,13 +2551,13 @@ } }, "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.24.7.tgz", - "integrity": "sha512-KsDsevZMDsigzbA09+vacnLpmPH4aWjcZjXdyFKGzpplxhbeB4wYtury3vglQkg6KM/xEPKt73eCjPPf1PgXBA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.25.9.tgz", + "integrity": "sha512-MUv6t0FhO5qHnS/W8XCbHmiRWOphNufpE1IVxhK5kuN3Td9FT1x4rx4K42s3RYdMXCXpfWkGSbCSd0Z64xA7Ng==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2577,14 +2567,14 @@ } }, "node_modules/@babel/plugin-transform-spread": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.24.7.tgz", - "integrity": "sha512-x96oO0I09dgMDxJaANcRyD4ellXFLLiWhuwDxKZX5g2rWP1bTPkBSwCYv96VDXVT1bD9aPj8tppr5ITIh8hBng==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.25.9.tgz", + "integrity": "sha512-oNknIB0TbURU5pqJFVbOOFspVlrpVwo2H1+HUIsVDvp5VauGGDP1ZEvO8Nn5xyMEs3dakajOxlmkNW7kNgSm6A==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2594,13 +2584,13 @@ } }, "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.24.7.tgz", - "integrity": "sha512-kHPSIJc9v24zEml5geKg9Mjx5ULpfncj0wRpYtxbvKyTtHCYDkVE3aHQ03FrpEo4gEe2vrJJS1Y9CJTaThA52g==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.25.9.tgz", + "integrity": "sha512-WqBUSgeVwucYDP9U/xNRQam7xV8W5Zf+6Eo7T2SRVUFlhRiMNFdFz58u0KZmCVVqs2i7SHgpRnAhzRNmKfi2uA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2610,13 +2600,13 @@ } }, "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.24.7.tgz", - "integrity": "sha512-AfDTQmClklHCOLxtGoP7HkeMw56k1/bTQjwsfhL6pppo/M4TOBSq+jjBUBLmV/4oeFg4GWMavIl44ZeCtmmZTw==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.25.9.tgz", + "integrity": "sha512-o97AE4syN71M/lxrCtQByzphAdlYluKPDBzDVzMmfCobUjjhAryZV0AIpRPrxN0eAkxXO6ZLEScmt+PNhj2OTw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2626,13 +2616,13 @@ } }, "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.24.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.24.8.tgz", - "integrity": "sha512-adNTUpDCVnmAE58VEqKlAA6ZBlNkMnWD0ZcW76lyNFN3MJniyGFZfNwERVk8Ap56MCnXztmDr19T4mPTztcuaw==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.25.9.tgz", + "integrity": "sha512-v61XqUMiueJROUv66BVIOi0Fv/CUuZuZMl5NkRoCVxLAnMexZ0A3kMe7vvZ0nulxMuMp0Mk6S5hNh48yki08ZA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.8" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2642,13 +2632,13 @@ } }, "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.24.7.tgz", - "integrity": "sha512-U3ap1gm5+4edc2Q/P+9VrBNhGkfnf+8ZqppY71Bo/pzZmXhhLdqgaUl6cuB07O1+AQJtCLfaOmswiNbSQ9ivhw==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.25.9.tgz", + "integrity": "sha512-s5EDrE6bW97LtxOcGj1Khcx5AaXwiMmi4toFWRDP9/y0Woo6pXC+iyPu/KuhKtfSrNFd7jJB+/fkOtZy6aIC6Q==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2658,14 +2648,14 @@ } }, "node_modules/@babel/plugin-transform-unicode-property-regex": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.24.7.tgz", - "integrity": "sha512-uH2O4OV5M9FZYQrwc7NdVmMxQJOCCzFeYudlZSzUAHRFeOujQefa92E74TQDVskNHCzOXoigEuoyzHDhaEaK5w==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.25.9.tgz", + "integrity": "sha512-Jt2d8Ga+QwRluxRQ307Vlxa6dMrYEMZCgGxoPR8V52rxPyldHu3hdlHspxaqYmE7oID5+kB+UKUB/eWS+DkkWg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2675,14 +2665,14 @@ } }, "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.24.7.tgz", - "integrity": "sha512-hlQ96MBZSAXUq7ltkjtu3FJCCSMx/j629ns3hA3pXnBXjanNP0LHi+JpPeA81zaWgVK1VGH95Xuy7u0RyQ8kMg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.25.9.tgz", + "integrity": "sha512-yoxstj7Rg9dlNn9UQxzk4fcNivwv4nUYz7fYXBaKxvw/lnmPuOm/ikoELygbYq68Bls3D/D+NBPHiLwZdZZ4HA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2692,14 +2682,14 @@ } }, "node_modules/@babel/plugin-transform-unicode-sets-regex": { - "version": "7.25.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.25.4.tgz", - "integrity": "sha512-qesBxiWkgN1Q+31xUE9RcMk79eOXXDCv6tfyGMRSs4RGlioSg2WVyQAm07k726cSE56pa+Kb0y9epX2qaXzTvA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.25.9.tgz", + "integrity": "sha512-8BYqO3GeVNHtx69fdPshN3fnzUNLrWdHhk/icSwigksJGczKSizZ+Z6SBCxTs723Fr5VSNorTIK7a+R2tISvwQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.2", - "@babel/helper-plugin-utils": "^7.24.8" + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2709,94 +2699,80 @@ } }, "node_modules/@babel/preset-env": { - "version": "7.25.3", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.25.3.tgz", - "integrity": "sha512-QsYW7UeAaXvLPX9tdVliMJE7MD7M6MLYVTovRTIwhoYQVFHR1rM4wO8wqAezYi3/BpSD+NzVCZ69R6smWiIi8g==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.26.0.tgz", + "integrity": "sha512-H84Fxq0CQJNdPFT2DrfnylZ3cf5K43rGfWK4LJGPpjKHiZlk0/RzwEus3PDDZZg+/Er7lCA03MVacueUuXdzfw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.25.2", - "@babel/helper-compilation-targets": "^7.25.2", - "@babel/helper-plugin-utils": "^7.24.8", - "@babel/helper-validator-option": "^7.24.8", - "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.25.3", - "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.25.0", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.25.0", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.24.7", - "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.25.0", + "@babel/compat-data": "^7.26.0", + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-validator-option": "^7.25.9", + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.25.9", + "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.25.9", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.25.9", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.25.9", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.25.9", "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-syntax-class-static-block": "^7.14.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-import-assertions": "^7.24.7", - "@babel/plugin-syntax-import-attributes": "^7.24.7", - "@babel/plugin-syntax-import-meta": "^7.10.4", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5", - "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-syntax-import-assertions": "^7.26.0", + "@babel/plugin-syntax-import-attributes": "^7.26.0", "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", - "@babel/plugin-transform-arrow-functions": "^7.24.7", - "@babel/plugin-transform-async-generator-functions": "^7.25.0", - "@babel/plugin-transform-async-to-generator": "^7.24.7", - "@babel/plugin-transform-block-scoped-functions": "^7.24.7", - "@babel/plugin-transform-block-scoping": "^7.25.0", - "@babel/plugin-transform-class-properties": "^7.24.7", - "@babel/plugin-transform-class-static-block": "^7.24.7", - "@babel/plugin-transform-classes": "^7.25.0", - "@babel/plugin-transform-computed-properties": "^7.24.7", - "@babel/plugin-transform-destructuring": "^7.24.8", - "@babel/plugin-transform-dotall-regex": "^7.24.7", - "@babel/plugin-transform-duplicate-keys": "^7.24.7", - "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.25.0", - "@babel/plugin-transform-dynamic-import": "^7.24.7", - "@babel/plugin-transform-exponentiation-operator": "^7.24.7", - "@babel/plugin-transform-export-namespace-from": "^7.24.7", - "@babel/plugin-transform-for-of": "^7.24.7", - "@babel/plugin-transform-function-name": "^7.25.1", - "@babel/plugin-transform-json-strings": "^7.24.7", - "@babel/plugin-transform-literals": "^7.25.2", - "@babel/plugin-transform-logical-assignment-operators": "^7.24.7", - "@babel/plugin-transform-member-expression-literals": "^7.24.7", - "@babel/plugin-transform-modules-amd": "^7.24.7", - "@babel/plugin-transform-modules-commonjs": "^7.24.8", - "@babel/plugin-transform-modules-systemjs": "^7.25.0", - "@babel/plugin-transform-modules-umd": "^7.24.7", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.24.7", - "@babel/plugin-transform-new-target": "^7.24.7", - "@babel/plugin-transform-nullish-coalescing-operator": "^7.24.7", - "@babel/plugin-transform-numeric-separator": "^7.24.7", - "@babel/plugin-transform-object-rest-spread": "^7.24.7", - "@babel/plugin-transform-object-super": "^7.24.7", - "@babel/plugin-transform-optional-catch-binding": "^7.24.7", - "@babel/plugin-transform-optional-chaining": "^7.24.8", - "@babel/plugin-transform-parameters": "^7.24.7", - "@babel/plugin-transform-private-methods": "^7.24.7", - "@babel/plugin-transform-private-property-in-object": "^7.24.7", - "@babel/plugin-transform-property-literals": "^7.24.7", - "@babel/plugin-transform-regenerator": "^7.24.7", - "@babel/plugin-transform-reserved-words": "^7.24.7", - "@babel/plugin-transform-shorthand-properties": "^7.24.7", - "@babel/plugin-transform-spread": "^7.24.7", - "@babel/plugin-transform-sticky-regex": "^7.24.7", - "@babel/plugin-transform-template-literals": "^7.24.7", - "@babel/plugin-transform-typeof-symbol": "^7.24.8", - "@babel/plugin-transform-unicode-escapes": "^7.24.7", - "@babel/plugin-transform-unicode-property-regex": "^7.24.7", - "@babel/plugin-transform-unicode-regex": "^7.24.7", - "@babel/plugin-transform-unicode-sets-regex": "^7.24.7", + "@babel/plugin-transform-arrow-functions": "^7.25.9", + "@babel/plugin-transform-async-generator-functions": "^7.25.9", + "@babel/plugin-transform-async-to-generator": "^7.25.9", + "@babel/plugin-transform-block-scoped-functions": "^7.25.9", + "@babel/plugin-transform-block-scoping": "^7.25.9", + "@babel/plugin-transform-class-properties": "^7.25.9", + "@babel/plugin-transform-class-static-block": "^7.26.0", + "@babel/plugin-transform-classes": "^7.25.9", + "@babel/plugin-transform-computed-properties": "^7.25.9", + "@babel/plugin-transform-destructuring": "^7.25.9", + "@babel/plugin-transform-dotall-regex": "^7.25.9", + "@babel/plugin-transform-duplicate-keys": "^7.25.9", + "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.25.9", + "@babel/plugin-transform-dynamic-import": "^7.25.9", + "@babel/plugin-transform-exponentiation-operator": "^7.25.9", + "@babel/plugin-transform-export-namespace-from": "^7.25.9", + "@babel/plugin-transform-for-of": "^7.25.9", + "@babel/plugin-transform-function-name": "^7.25.9", + "@babel/plugin-transform-json-strings": "^7.25.9", + "@babel/plugin-transform-literals": "^7.25.9", + "@babel/plugin-transform-logical-assignment-operators": "^7.25.9", + "@babel/plugin-transform-member-expression-literals": "^7.25.9", + "@babel/plugin-transform-modules-amd": "^7.25.9", + "@babel/plugin-transform-modules-commonjs": "^7.25.9", + "@babel/plugin-transform-modules-systemjs": "^7.25.9", + "@babel/plugin-transform-modules-umd": "^7.25.9", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.25.9", + "@babel/plugin-transform-new-target": "^7.25.9", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.25.9", + "@babel/plugin-transform-numeric-separator": "^7.25.9", + "@babel/plugin-transform-object-rest-spread": "^7.25.9", + "@babel/plugin-transform-object-super": "^7.25.9", + "@babel/plugin-transform-optional-catch-binding": "^7.25.9", + "@babel/plugin-transform-optional-chaining": "^7.25.9", + "@babel/plugin-transform-parameters": "^7.25.9", + "@babel/plugin-transform-private-methods": "^7.25.9", + "@babel/plugin-transform-private-property-in-object": "^7.25.9", + "@babel/plugin-transform-property-literals": "^7.25.9", + "@babel/plugin-transform-regenerator": "^7.25.9", + "@babel/plugin-transform-regexp-modifiers": "^7.26.0", + "@babel/plugin-transform-reserved-words": "^7.25.9", + "@babel/plugin-transform-shorthand-properties": "^7.25.9", + "@babel/plugin-transform-spread": "^7.25.9", + "@babel/plugin-transform-sticky-regex": "^7.25.9", + "@babel/plugin-transform-template-literals": "^7.25.9", + "@babel/plugin-transform-typeof-symbol": "^7.25.9", + "@babel/plugin-transform-unicode-escapes": "^7.25.9", + "@babel/plugin-transform-unicode-property-regex": "^7.25.9", + "@babel/plugin-transform-unicode-regex": "^7.25.9", + "@babel/plugin-transform-unicode-sets-regex": "^7.25.9", "@babel/preset-modules": "0.1.6-no-external-plugins", "babel-plugin-polyfill-corejs2": "^0.4.10", - "babel-plugin-polyfill-corejs3": "^0.10.4", + "babel-plugin-polyfill-corejs3": "^0.10.6", "babel-plugin-polyfill-regenerator": "^0.6.1", - "core-js-compat": "^3.37.1", + "core-js-compat": "^3.38.1", "semver": "^6.3.1" }, "engines": { @@ -2831,17 +2807,10 @@ "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" } }, - "node_modules/@babel/regjsgen": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", - "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", - "dev": true, - "license": "MIT" - }, "node_modules/@babel/runtime": { - "version": "7.25.0", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.25.0.tgz", - "integrity": "sha512-7dRy4DwXwtzBrPbZflqxnvfxLF8kdZXPkhymtDeFoFqE6ldzjQFgYTtYIFARcLEYDrqfBfYcZt1WqFxRoyC9Rw==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.26.0.tgz", + "integrity": "sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==", "dev": true, "license": "MIT", "dependencies": { @@ -2852,32 +2821,32 @@ } }, "node_modules/@babel/template": { - "version": "7.25.0", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.0.tgz", - "integrity": "sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.9.tgz", + "integrity": "sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.24.7", - "@babel/parser": "^7.25.0", - "@babel/types": "^7.25.0" + "@babel/code-frame": "^7.25.9", + "@babel/parser": "^7.25.9", + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.25.6", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.6.tgz", - "integrity": "sha512-9Vrcx5ZW6UwK5tvqsj0nGpp/XzqthkT0dqIc9g1AdtygFToNtTF67XzYS//dm+SAK9cp3B9R4ZO/46p63SCjlQ==", + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.26.5.tgz", + "integrity": "sha512-rkOSPOw+AXbgtwUga3U4u8RpoK9FEFWBNAlTpcnkLFjL5CT+oyHNuUUC/xx6XefEJ16r38r8Bc/lfp6rYuHeJQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.24.7", - "@babel/generator": "^7.25.6", - "@babel/parser": "^7.25.6", - "@babel/template": "^7.25.0", - "@babel/types": "^7.25.6", + "@babel/code-frame": "^7.26.2", + "@babel/generator": "^7.26.5", + "@babel/parser": "^7.26.5", + "@babel/template": "^7.25.9", + "@babel/types": "^7.26.5", "debug": "^4.3.1", "globals": "^11.1.0" }, @@ -2886,31 +2855,31 @@ } }, "node_modules/@babel/traverse/node_modules/@babel/generator": { - "version": "7.25.6", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.25.6.tgz", - "integrity": "sha512-VPC82gr1seXOpkjAAKoLhP50vx4vGNlF4msF64dSFq1P8RfB+QAuJWGHPXXPc8QyfVWwwB/TNNU4+ayZmHNbZw==", + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.5.tgz", + "integrity": "sha512-2caSP6fN9I7HOe6nqhtft7V4g7/V/gfDsC3Ag4W7kEzzvRGKqiv0pu0HogPiZ3KaVSoNDhUws6IJjDjpfmYIXw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.25.6", + "@babel/parser": "^7.26.5", + "@babel/types": "^7.26.5", "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25", - "jsesc": "^2.5.1" + "jsesc": "^3.0.2" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/types": { - "version": "7.25.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.6.tgz", - "integrity": "sha512-/l42B1qxpG6RdfYf343Uw1vmDjeNhneUXtzhojE7pDgfpEypmRhI6j1kr17XCVv4Cgl9HdAiQY2x0GwKm7rWCw==", + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.5.tgz", + "integrity": "sha512-L6mZmwFDK6Cjh1nRCLXpa6no13ZIioJDz7mdkzHv399pThrTa/k0nUlNaenOeh2kWu/iaOQYElEpKPUswUa9Vg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-string-parser": "^7.24.8", - "@babel/helper-validator-identifier": "^7.24.7", - "to-fast-properties": "^2.0.0" + "@babel/helper-string-parser": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2926,9 +2895,9 @@ } }, "node_modules/@discoveryjs/json-ext": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.6.1.tgz", - "integrity": "sha512-boghen8F0Q8D+0/Q1/1r6DUEieUJ8w2a1gIknExMSHBsJFOr2+0KUfHiVYBvucPwl3+RU5PFBK833FjFCh3BhA==", + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.6.3.tgz", + "integrity": "sha512-4B4OijXeVNOPZlYA2oEwWOTkzyltLao+xbotHQeqN++Rv27Y6s818+n2Qkp8q+Fxhn0t/5lA5X1Mxktud8eayQ==", "dev": true, "license": "MIT", "engines": { @@ -2936,9 +2905,9 @@ } }, "node_modules/@esbuild/aix-ppc64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.23.0.tgz", - "integrity": "sha512-3sG8Zwa5fMcA9bgqB8AfWPQ+HFke6uD3h1s3RIwUNK8EG7a4buxvuFTs3j1IMs2NXAk9F30C/FF4vxRgQCcmoQ==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.24.2.tgz", + "integrity": "sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA==", "cpu": [ "ppc64" ], @@ -2953,9 +2922,9 @@ } }, "node_modules/@esbuild/android-arm": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.23.0.tgz", - "integrity": "sha512-+KuOHTKKyIKgEEqKbGTK8W7mPp+hKinbMBeEnNzjJGyFcWsfrXjSTNluJHCY1RqhxFurdD8uNXQDei7qDlR6+g==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.24.2.tgz", + "integrity": "sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q==", "cpu": [ "arm" ], @@ -2970,9 +2939,9 @@ } }, "node_modules/@esbuild/android-arm64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.23.0.tgz", - "integrity": "sha512-EuHFUYkAVfU4qBdyivULuu03FhJO4IJN9PGuABGrFy4vUuzk91P2d+npxHcFdpUnfYKy0PuV+n6bKIpHOB3prQ==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.24.2.tgz", + "integrity": "sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg==", "cpu": [ "arm64" ], @@ -2987,9 +2956,9 @@ } }, "node_modules/@esbuild/android-x64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.23.0.tgz", - "integrity": "sha512-WRrmKidLoKDl56LsbBMhzTTBxrsVwTKdNbKDalbEZr0tcsBgCLbEtoNthOW6PX942YiYq8HzEnb4yWQMLQuipQ==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.24.2.tgz", + "integrity": "sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw==", "cpu": [ "x64" ], @@ -3004,9 +2973,9 @@ } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.23.0.tgz", - "integrity": "sha512-YLntie/IdS31H54Ogdn+v50NuoWF5BDkEUFpiOChVa9UnKpftgwzZRrI4J132ETIi+D8n6xh9IviFV3eXdxfow==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.24.2.tgz", + "integrity": "sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA==", "cpu": [ "arm64" ], @@ -3021,9 +2990,9 @@ } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.23.0.tgz", - "integrity": "sha512-IMQ6eme4AfznElesHUPDZ+teuGwoRmVuuixu7sv92ZkdQcPbsNHzutd+rAfaBKo8YK3IrBEi9SLLKWJdEvJniQ==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.24.2.tgz", + "integrity": "sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA==", "cpu": [ "x64" ], @@ -3038,9 +3007,9 @@ } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.23.0.tgz", - "integrity": "sha512-0muYWCng5vqaxobq6LB3YNtevDFSAZGlgtLoAc81PjUfiFz36n4KMpwhtAd4he8ToSI3TGyuhyx5xmiWNYZFyw==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.24.2.tgz", + "integrity": "sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg==", "cpu": [ "arm64" ], @@ -3055,9 +3024,9 @@ } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.23.0.tgz", - "integrity": "sha512-XKDVu8IsD0/q3foBzsXGt/KjD/yTKBCIwOHE1XwiXmrRwrX6Hbnd5Eqn/WvDekddK21tfszBSrE/WMaZh+1buQ==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.24.2.tgz", + "integrity": "sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q==", "cpu": [ "x64" ], @@ -3072,9 +3041,9 @@ } }, "node_modules/@esbuild/linux-arm": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.23.0.tgz", - "integrity": "sha512-SEELSTEtOFu5LPykzA395Mc+54RMg1EUgXP+iw2SJ72+ooMwVsgfuwXo5Fn0wXNgWZsTVHwY2cg4Vi/bOD88qw==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.24.2.tgz", + "integrity": "sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA==", "cpu": [ "arm" ], @@ -3089,9 +3058,9 @@ } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.23.0.tgz", - "integrity": "sha512-j1t5iG8jE7BhonbsEg5d9qOYcVZv/Rv6tghaXM/Ug9xahM0nX/H2gfu6X6z11QRTMT6+aywOMA8TDkhPo8aCGw==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.24.2.tgz", + "integrity": "sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg==", "cpu": [ "arm64" ], @@ -3106,9 +3075,9 @@ } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.23.0.tgz", - "integrity": "sha512-P7O5Tkh2NbgIm2R6x1zGJJsnacDzTFcRWZyTTMgFdVit6E98LTxO+v8LCCLWRvPrjdzXHx9FEOA8oAZPyApWUA==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.24.2.tgz", + "integrity": "sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw==", "cpu": [ "ia32" ], @@ -3123,9 +3092,9 @@ } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.23.0.tgz", - "integrity": "sha512-InQwepswq6urikQiIC/kkx412fqUZudBO4SYKu0N+tGhXRWUqAx+Q+341tFV6QdBifpjYgUndV1hhMq3WeJi7A==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.24.2.tgz", + "integrity": "sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ==", "cpu": [ "loong64" ], @@ -3140,9 +3109,9 @@ } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.23.0.tgz", - "integrity": "sha512-J9rflLtqdYrxHv2FqXE2i1ELgNjT+JFURt/uDMoPQLcjWQA5wDKgQA4t/dTqGa88ZVECKaD0TctwsUfHbVoi4w==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.24.2.tgz", + "integrity": "sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw==", "cpu": [ "mips64el" ], @@ -3157,9 +3126,9 @@ } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.23.0.tgz", - "integrity": "sha512-cShCXtEOVc5GxU0fM+dsFD10qZ5UpcQ8AM22bYj0u/yaAykWnqXJDpd77ublcX6vdDsWLuweeuSNZk4yUxZwtw==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.24.2.tgz", + "integrity": "sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw==", "cpu": [ "ppc64" ], @@ -3174,9 +3143,9 @@ } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.23.0.tgz", - "integrity": "sha512-HEtaN7Y5UB4tZPeQmgz/UhzoEyYftbMXrBCUjINGjh3uil+rB/QzzpMshz3cNUxqXN7Vr93zzVtpIDL99t9aRw==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.24.2.tgz", + "integrity": "sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q==", "cpu": [ "riscv64" ], @@ -3191,9 +3160,9 @@ } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.23.0.tgz", - "integrity": "sha512-WDi3+NVAuyjg/Wxi+o5KPqRbZY0QhI9TjrEEm+8dmpY9Xir8+HE/HNx2JoLckhKbFopW0RdO2D72w8trZOV+Wg==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.24.2.tgz", + "integrity": "sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw==", "cpu": [ "s390x" ], @@ -3208,9 +3177,9 @@ } }, "node_modules/@esbuild/linux-x64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.23.0.tgz", - "integrity": "sha512-a3pMQhUEJkITgAw6e0bWA+F+vFtCciMjW/LPtoj99MhVt+Mfb6bbL9hu2wmTZgNd994qTAEw+U/r6k3qHWWaOQ==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.24.2.tgz", + "integrity": "sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q==", "cpu": [ "x64" ], @@ -3224,10 +3193,27 @@ "node": ">=18" } }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.24.2.tgz", + "integrity": "sha512-wuLK/VztRRpMt9zyHSazyCVdCXlpHkKm34WUyinD2lzK07FAHTq0KQvZZlXikNWkDGoT6x3TD51jKQ7gMVpopw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.23.0.tgz", - "integrity": "sha512-cRK+YDem7lFTs2Q5nEv/HHc4LnrfBCbH5+JHu6wm2eP+d8OZNoSMYgPZJq78vqQ9g+9+nMuIsAO7skzphRXHyw==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.24.2.tgz", + "integrity": "sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw==", "cpu": [ "x64" ], @@ -3242,9 +3228,9 @@ } }, "node_modules/@esbuild/openbsd-arm64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.23.0.tgz", - "integrity": "sha512-suXjq53gERueVWu0OKxzWqk7NxiUWSUlrxoZK7usiF50C6ipColGR5qie2496iKGYNLhDZkPxBI3erbnYkU0rQ==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.24.2.tgz", + "integrity": "sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A==", "cpu": [ "arm64" ], @@ -3259,9 +3245,9 @@ } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.23.0.tgz", - "integrity": "sha512-6p3nHpby0DM/v15IFKMjAaayFhqnXV52aEmv1whZHX56pdkK+MEaLoQWj+H42ssFarP1PcomVhbsR4pkz09qBg==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.24.2.tgz", + "integrity": "sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA==", "cpu": [ "x64" ], @@ -3276,9 +3262,9 @@ } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.23.0.tgz", - "integrity": "sha512-BFelBGfrBwk6LVrmFzCq1u1dZbG4zy/Kp93w2+y83Q5UGYF1d8sCzeLI9NXjKyujjBBniQa8R8PzLFAUrSM9OA==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.24.2.tgz", + "integrity": "sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig==", "cpu": [ "x64" ], @@ -3293,9 +3279,9 @@ } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.23.0.tgz", - "integrity": "sha512-lY6AC8p4Cnb7xYHuIxQ6iYPe6MfO2CC43XXKo9nBXDb35krYt7KGhQnOkRGar5psxYkircpCqfbNDB4uJbS2jQ==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.24.2.tgz", + "integrity": "sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ==", "cpu": [ "arm64" ], @@ -3310,9 +3296,9 @@ } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.23.0.tgz", - "integrity": "sha512-7L1bHlOTcO4ByvI7OXVI5pNN6HSu6pUQq9yodga8izeuB1KcT2UkHaH6118QJwopExPn0rMHIseCTx1CRo/uNA==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.24.2.tgz", + "integrity": "sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA==", "cpu": [ "ia32" ], @@ -3327,9 +3313,9 @@ } }, "node_modules/@esbuild/win32-x64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.23.0.tgz", - "integrity": "sha512-Arm+WgUFLUATuoxCJcahGuk6Yj9Pzxd6l11Zb/2aAuv5kWWvvfhLFo2fni4uSK5vzlUdCGZ/BdV5tH8klj8p8g==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.24.2.tgz", + "integrity": "sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg==", "cpu": [ "x64" ], @@ -3344,52 +3330,54 @@ } }, "node_modules/@inquirer/checkbox": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@inquirer/checkbox/-/checkbox-2.5.0.tgz", - "integrity": "sha512-sMgdETOfi2dUHT8r7TT1BTKOwNvdDGFDXYWtQ2J69SvlYNntk9I/gJe7r5yvMwwsuKnYbuRs3pNhx4tgNck5aA==", + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@inquirer/checkbox/-/checkbox-4.0.6.tgz", + "integrity": "sha512-PgP35JfmGjHU0LSXOyRew0zHuA9N6OJwOlos1fZ20b7j8ISeAdib3L+n0jIxBtX958UeEpte6xhG/gxJ5iUqMw==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/core": "^9.1.0", - "@inquirer/figures": "^1.0.5", - "@inquirer/type": "^1.5.3", + "@inquirer/core": "^10.1.4", + "@inquirer/figures": "^1.0.9", + "@inquirer/type": "^3.0.2", "ansi-escapes": "^4.3.2", "yoctocolors-cjs": "^2.1.2" }, "engines": { "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" } }, "node_modules/@inquirer/confirm": { - "version": "3.1.22", - "resolved": "https://registry.npmjs.org/@inquirer/confirm/-/confirm-3.1.22.tgz", - "integrity": "sha512-gsAKIOWBm2Q87CDfs9fEo7wJT3fwWIJfnDGMn9Qy74gBnNFOACDNfhUzovubbJjWnKLGBln7/NcSmZwj5DuEXg==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/@inquirer/confirm/-/confirm-5.1.1.tgz", + "integrity": "sha512-vVLSbGci+IKQvDOtzpPTCOiEJCNidHcAq9JYVoWTW0svb5FiwSLotkM+JXNXejfjnzVYV9n0DTBythl9+XgTxg==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/core": "^9.0.10", - "@inquirer/type": "^1.5.2" + "@inquirer/core": "^10.1.2", + "@inquirer/type": "^3.0.2" }, "engines": { "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" } }, "node_modules/@inquirer/core": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-9.1.0.tgz", - "integrity": "sha512-RZVfH//2ytTjmaBIzeKT1zefcQZzuruwkpTwwbe/i2jTl4o9M+iML5ChULzz6iw1Ok8iUBBsRCjY2IEbD8Ft4w==", + "version": "10.1.4", + "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-10.1.4.tgz", + "integrity": "sha512-5y4/PUJVnRb4bwWY67KLdebWOhOc7xj5IP2J80oWXa64mVag24rwQ1VAdnj7/eDY/odhguW0zQ1Mp1pj6fO/2w==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/figures": "^1.0.5", - "@inquirer/type": "^1.5.3", - "@types/mute-stream": "^0.0.4", - "@types/node": "^22.5.2", - "@types/wrap-ansi": "^3.0.0", + "@inquirer/figures": "^1.0.9", + "@inquirer/type": "^3.0.2", "ansi-escapes": "^4.3.2", - "cli-spinners": "^2.9.2", "cli-width": "^4.1.0", - "mute-stream": "^1.0.0", + "mute-stream": "^2.0.0", "signal-exit": "^4.1.0", "strip-ansi": "^6.0.1", "wrap-ansi": "^6.2.0", @@ -3413,39 +3401,45 @@ } }, "node_modules/@inquirer/editor": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@inquirer/editor/-/editor-2.2.0.tgz", - "integrity": "sha512-9KHOpJ+dIL5SZli8lJ6xdaYLPPzB8xB9GZItg39MBybzhxA16vxmszmQFrRwbOA918WA2rvu8xhDEg/p6LXKbw==", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/@inquirer/editor/-/editor-4.2.3.tgz", + "integrity": "sha512-S9KnIOJuTZpb9upeRSBBhoDZv7aSV3pG9TECrBj0f+ZsFwccz886hzKBrChGrXMJwd4NKY+pOA9Vy72uqnd6Eg==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/core": "^9.1.0", - "@inquirer/type": "^1.5.3", + "@inquirer/core": "^10.1.4", + "@inquirer/type": "^3.0.2", "external-editor": "^3.1.0" }, "engines": { "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" } }, "node_modules/@inquirer/expand": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@inquirer/expand/-/expand-2.3.0.tgz", - "integrity": "sha512-qnJsUcOGCSG1e5DTOErmv2BPQqrtT6uzqn1vI/aYGiPKq+FgslGZmtdnXbhuI7IlT7OByDoEEqdnhUnVR2hhLw==", + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@inquirer/expand/-/expand-4.0.6.tgz", + "integrity": "sha512-TRTfi1mv1GeIZGyi9PQmvAaH65ZlG4/FACq6wSzs7Vvf1z5dnNWsAAXBjWMHt76l+1hUY8teIqJFrWBk5N6gsg==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/core": "^9.1.0", - "@inquirer/type": "^1.5.3", + "@inquirer/core": "^10.1.4", + "@inquirer/type": "^3.0.2", "yoctocolors-cjs": "^2.1.2" }, "engines": { "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" } }, "node_modules/@inquirer/figures": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@inquirer/figures/-/figures-1.0.5.tgz", - "integrity": "sha512-79hP/VWdZ2UVc9bFGJnoQ/lQMpL74mGgzSYX1xUqCVk7/v73vJCMw1VuyWN1jGkZ9B3z7THAbySqGbCNefcjfA==", + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@inquirer/figures/-/figures-1.0.9.tgz", + "integrity": "sha512-BXvGj0ehzrngHTPTDqUoDT3NXL8U0RxUk2zJm2A66RhCEIWdtU1v6GuUqNAgArW4PQ9CinqIWyHdQgdwOj06zQ==", "dev": true, "license": "MIT", "engines": { @@ -3453,129 +3447,150 @@ } }, "node_modules/@inquirer/input": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@inquirer/input/-/input-2.3.0.tgz", - "integrity": "sha512-XfnpCStx2xgh1LIRqPXrTNEEByqQWoxsWYzNRSEUxJ5c6EQlhMogJ3vHKu8aXuTacebtaZzMAHwEL0kAflKOBw==", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/@inquirer/input/-/input-4.1.3.tgz", + "integrity": "sha512-zeo++6f7hxaEe7OjtMzdGZPHiawsfmCZxWB9X1NpmYgbeoyerIbWemvlBxxl+sQIlHC0WuSAG19ibMq3gbhaqQ==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/core": "^9.1.0", - "@inquirer/type": "^1.5.3" + "@inquirer/core": "^10.1.4", + "@inquirer/type": "^3.0.2" }, "engines": { "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" } }, "node_modules/@inquirer/number": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@inquirer/number/-/number-1.1.0.tgz", - "integrity": "sha512-ilUnia/GZUtfSZy3YEErXLJ2Sljo/mf9fiKc08n18DdwdmDbOzRcTv65H1jjDvlsAuvdFXf4Sa/aL7iw/NanVA==", + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@inquirer/number/-/number-3.0.6.tgz", + "integrity": "sha512-xO07lftUHk1rs1gR0KbqB+LJPhkUNkyzV/KhH+937hdkMazmAYHLm1OIrNKpPelppeV1FgWrgFDjdUD8mM+XUg==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/core": "^9.1.0", - "@inquirer/type": "^1.5.3" + "@inquirer/core": "^10.1.4", + "@inquirer/type": "^3.0.2" }, "engines": { "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" } }, "node_modules/@inquirer/password": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@inquirer/password/-/password-2.2.0.tgz", - "integrity": "sha512-5otqIpgsPYIshqhgtEwSspBQE40etouR8VIxzpJkv9i0dVHIpyhiivbkH9/dGiMLdyamT54YRdGJLfl8TFnLHg==", + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@inquirer/password/-/password-4.0.6.tgz", + "integrity": "sha512-QLF0HmMpHZPPMp10WGXh6F+ZPvzWE7LX6rNoccdktv/Rov0B+0f+eyXkAcgqy5cH9V+WSpbLxu2lo3ysEVK91w==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/core": "^9.1.0", - "@inquirer/type": "^1.5.3", + "@inquirer/core": "^10.1.4", + "@inquirer/type": "^3.0.2", "ansi-escapes": "^4.3.2" }, "engines": { "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" } }, "node_modules/@inquirer/prompts": { - "version": "5.3.8", - "resolved": "https://registry.npmjs.org/@inquirer/prompts/-/prompts-5.3.8.tgz", - "integrity": "sha512-b2BudQY/Si4Y2a0PdZZL6BeJtl8llgeZa7U2j47aaJSCeAl1e4UI7y8a9bSkO3o/ZbZrgT5muy/34JbsjfIWxA==", + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/@inquirer/prompts/-/prompts-7.2.1.tgz", + "integrity": "sha512-v2JSGri6/HXSfoGIwuKEn8sNCQK6nsB2BNpy2lSX6QH9bsECrMv93QHnj5+f+1ZWpF/VNioIV2B/PDox8EvGuQ==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/checkbox": "^2.4.7", - "@inquirer/confirm": "^3.1.22", - "@inquirer/editor": "^2.1.22", - "@inquirer/expand": "^2.1.22", - "@inquirer/input": "^2.2.9", - "@inquirer/number": "^1.0.10", - "@inquirer/password": "^2.1.22", - "@inquirer/rawlist": "^2.2.4", - "@inquirer/search": "^1.0.7", - "@inquirer/select": "^2.4.7" + "@inquirer/checkbox": "^4.0.4", + "@inquirer/confirm": "^5.1.1", + "@inquirer/editor": "^4.2.1", + "@inquirer/expand": "^4.0.4", + "@inquirer/input": "^4.1.1", + "@inquirer/number": "^3.0.4", + "@inquirer/password": "^4.0.4", + "@inquirer/rawlist": "^4.0.4", + "@inquirer/search": "^3.0.4", + "@inquirer/select": "^4.0.4" }, "engines": { "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" } }, "node_modules/@inquirer/rawlist": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@inquirer/rawlist/-/rawlist-2.3.0.tgz", - "integrity": "sha512-zzfNuINhFF7OLAtGHfhwOW2TlYJyli7lOUoJUXw/uyklcwalV6WRXBXtFIicN8rTRK1XTiPWB4UY+YuW8dsnLQ==", + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@inquirer/rawlist/-/rawlist-4.0.6.tgz", + "integrity": "sha512-QoE4s1SsIPx27FO4L1b1mUjVcoHm1pWE/oCmm4z/Hl+V1Aw5IXl8FYYzGmfXaBT0l/sWr49XmNSiq7kg3Kd/Lg==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/core": "^9.1.0", - "@inquirer/type": "^1.5.3", + "@inquirer/core": "^10.1.4", + "@inquirer/type": "^3.0.2", "yoctocolors-cjs": "^2.1.2" }, "engines": { "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" } }, "node_modules/@inquirer/search": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@inquirer/search/-/search-1.1.0.tgz", - "integrity": "sha512-h+/5LSj51dx7hp5xOn4QFnUaKeARwUCLs6mIhtkJ0JYPBLmEYjdHSYh7I6GrLg9LwpJ3xeX0FZgAG1q0QdCpVQ==", + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@inquirer/search/-/search-3.0.6.tgz", + "integrity": "sha512-eFZ2hiAq0bZcFPuFFBmZEtXU1EarHLigE+ENCtpO+37NHCl4+Yokq1P/d09kUblObaikwfo97w+0FtG/EXl5Ng==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/core": "^9.1.0", - "@inquirer/figures": "^1.0.5", - "@inquirer/type": "^1.5.3", + "@inquirer/core": "^10.1.4", + "@inquirer/figures": "^1.0.9", + "@inquirer/type": "^3.0.2", "yoctocolors-cjs": "^2.1.2" }, "engines": { "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" } }, "node_modules/@inquirer/select": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@inquirer/select/-/select-2.5.0.tgz", - "integrity": "sha512-YmDobTItPP3WcEI86GvPo+T2sRHkxxOq/kXmsBjHS5BVXUgvgZ5AfJjkvQvZr03T81NnI3KrrRuMzeuYUQRFOA==", + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@inquirer/select/-/select-4.0.6.tgz", + "integrity": "sha512-yANzIiNZ8fhMm4NORm+a74+KFYHmf7BZphSOBovIzYPVLquseTGEkU5l2UTnBOf5k0VLmTgPighNDLE9QtbViQ==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/core": "^9.1.0", - "@inquirer/figures": "^1.0.5", - "@inquirer/type": "^1.5.3", + "@inquirer/core": "^10.1.4", + "@inquirer/figures": "^1.0.9", + "@inquirer/type": "^3.0.2", "ansi-escapes": "^4.3.2", "yoctocolors-cjs": "^2.1.2" }, "engines": { "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" } }, "node_modules/@inquirer/type": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-1.5.3.tgz", - "integrity": "sha512-xUQ14WQGR/HK5ei+2CvgcwoH9fQ4PgPGmVFSN0pc1+fVyDL3MREhyAY7nxEErSu6CkllBM3D7e3e+kOvtu+eIg==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-3.0.2.tgz", + "integrity": "sha512-ZhQ4TvhwHZF+lGhQ2O/rsjo80XoZR5/5qhOY3t6FJuX5XBg5Be8YzYTvaUGJnc12AUGI2nr4QSUE4PhKSigx7g==", "dev": true, "license": "MIT", - "dependencies": { - "mute-stream": "^1.0.0" - }, "engines": { "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" } }, "node_modules/@isaacs/cliui": { @@ -3681,6 +3696,19 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, + "node_modules/@isaacs/fs-minipass": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@isaacs/fs-minipass/-/fs-minipass-4.0.1.tgz", + "integrity": "sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==", + "dev": true, + "license": "ISC", + "dependencies": { + "minipass": "^7.0.4" + }, + "engines": { + "node": ">=18.0.0" + } + }, "node_modules/@istanbuljs/schema": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", @@ -3767,9 +3795,9 @@ } }, "node_modules/@jsonjoy.com/json-pack": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/json-pack/-/json-pack-1.1.0.tgz", - "integrity": "sha512-zlQONA+msXPPwHWZMKFVS78ewFczIll5lXiVPwFPCZUsrOKdxc2AvxU1HoNBmMRhqDZUR9HkC3UOm+6pME6Xsg==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/json-pack/-/json-pack-1.1.1.tgz", + "integrity": "sha512-osjeBqMJ2lb/j/M8NCPjs1ylqWIcTRTycIhVB5pt6LgzgeRSb0YRZ7j9RfA8wIUrsr/medIuhVyonXRZWLyfdw==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -3814,39 +3842,62 @@ "license": "MIT" }, "node_modules/@listr2/prompt-adapter-inquirer": { - "version": "2.0.15", - "resolved": "https://registry.npmjs.org/@listr2/prompt-adapter-inquirer/-/prompt-adapter-inquirer-2.0.15.tgz", - "integrity": "sha512-MZrGem/Ujjd4cPTLYDfCZK2iKKeiO/8OX13S6jqxldLs0Prf2aGqVlJ77nMBqMv7fzqgXEgjrNHLXcKR8l9lOg==", + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/@listr2/prompt-adapter-inquirer/-/prompt-adapter-inquirer-2.0.18.tgz", + "integrity": "sha512-0hz44rAcrphyXcA8IS7EJ2SCoaBZD2u5goE8S/e+q/DL+dOGpqpcLidVOFeLG3VgML62SXmfRLAhWt0zL1oW4Q==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/type": "^1.5.1" + "@inquirer/type": "^1.5.5" }, "engines": { "node": ">=18.0.0" }, "peerDependencies": { - "@inquirer/prompts": ">= 3 < 6" + "@inquirer/prompts": ">= 3 < 8" } }, - "node_modules/@lmdb/lmdb-darwin-arm64": { - "version": "3.0.13", - "resolved": "https://registry.npmjs.org/@lmdb/lmdb-darwin-arm64/-/lmdb-darwin-arm64-3.0.13.tgz", - "integrity": "sha512-uiKPB0Fv6WEEOZjruu9a6wnW/8jrjzlZbxXscMB8kuCJ1k6kHpcBnuvaAWcqhbI7rqX5GKziwWEdD+wi2gNLfA==", - "cpu": [ - "arm64" - ], + "node_modules/@listr2/prompt-adapter-inquirer/node_modules/@inquirer/type": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-1.5.5.tgz", + "integrity": "sha512-MzICLu4yS7V8AA61sANROZ9vT1H3ooca5dSmI1FjZkzq7o/koMsRfQSzRtFo+F3Ao4Sf1C0bpLKejpKB/+j6MA==", "dev": true, "license": "MIT", - "optional": true, - "os": [ + "dependencies": { + "mute-stream": "^1.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@listr2/prompt-adapter-inquirer/node_modules/mute-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-1.0.0.tgz", + "integrity": "sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@lmdb/lmdb-darwin-arm64": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-darwin-arm64/-/lmdb-darwin-arm64-3.2.2.tgz", + "integrity": "sha512-WBSJT9Z7DTol5viq+DZD2TapeWOw7mlwXxiSBHgAzqVwsaVb0h/ekMD9iu/jDD8MUA20tO9N0WEdnT06fsUp+g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ "darwin" ] }, "node_modules/@lmdb/lmdb-darwin-x64": { - "version": "3.0.13", - "resolved": "https://registry.npmjs.org/@lmdb/lmdb-darwin-x64/-/lmdb-darwin-x64-3.0.13.tgz", - "integrity": "sha512-bEVIIfK5mSQoG1R19qA+fJOvCB+0wVGGnXHT3smchBVahYBdlPn2OsZZKzlHWfb1E+PhLBmYfqB5zQXFP7hJig==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-darwin-x64/-/lmdb-darwin-x64-3.2.2.tgz", + "integrity": "sha512-4S13kUtR7c/j/MzkTIBJCXv52hQ41LG2ukeaqw4Eng9K0pNKLFjo1sDSz96/yKhwykxrWDb13ddJ/ZqD3rAhUA==", "cpu": [ "x64" ], @@ -3858,9 +3909,9 @@ ] }, "node_modules/@lmdb/lmdb-linux-arm": { - "version": "3.0.13", - "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-arm/-/lmdb-linux-arm-3.0.13.tgz", - "integrity": "sha512-Yml1KlMzOnXj/tnW7yX8U78iAzTk39aILYvCPbqeewAq1kSzl+w59k/fiVkTBfvDi/oW/5YRxL+Fq+Y1Fr1r2Q==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-arm/-/lmdb-linux-arm-3.2.2.tgz", + "integrity": "sha512-uW31JmfuPAaLUYW7NsEU8gzwgDAzpGPwjvkxnKlcWd8iDutoPKDJi8Wk9lFmPEZRxVSB0j1/wDQ7N2qliR9UFA==", "cpu": [ "arm" ], @@ -3872,9 +3923,9 @@ ] }, "node_modules/@lmdb/lmdb-linux-arm64": { - "version": "3.0.13", - "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-arm64/-/lmdb-linux-arm64-3.0.13.tgz", - "integrity": "sha512-afbVrsMgZ9dUTNUchFpj5VkmJRxvht/u335jUJ7o23YTbNbnpmXif3VKQGCtnjSh+CZaqm6N3CPG8KO3zwyZ1Q==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-arm64/-/lmdb-linux-arm64-3.2.2.tgz", + "integrity": "sha512-4hdgZtWI1idQlWRp+eleWXD9KLvObgboRaVoBj2POdPEYvsKANllvMW0El8tEQwtw74yB9NT6P8ENBB5UJf5+g==", "cpu": [ "arm64" ], @@ -3886,9 +3937,9 @@ ] }, "node_modules/@lmdb/lmdb-linux-x64": { - "version": "3.0.13", - "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-x64/-/lmdb-linux-x64-3.0.13.tgz", - "integrity": "sha512-vOtxu0xC0SLdQ2WRXg8Qgd8T32ak4SPqk5zjItRszrJk2BdeXqfGxBJbP7o4aOvSPSmSSv46Lr1EP4HXU8v7Kg==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-x64/-/lmdb-linux-x64-3.2.2.tgz", + "integrity": "sha512-A0zjf4a2vM4B4GAx78ncuOTZ8Ka1DbTaG1Axf1e00Sa7f5coqlWiLg1PX7Gxvyibc2YqtqB+8tg1KKrE8guZVw==", "cpu": [ "x64" ], @@ -3900,9 +3951,9 @@ ] }, "node_modules/@lmdb/lmdb-win32-x64": { - "version": "3.0.13", - "resolved": "https://registry.npmjs.org/@lmdb/lmdb-win32-x64/-/lmdb-win32-x64-3.0.13.tgz", - "integrity": "sha512-UCrMJQY/gJnOl3XgbWRZZUvGGBuKy6i0YNSptgMzHBjs+QYDYR1Mt/RLTOPy4fzzves65O1EDmlL//OzEqoLlA==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-win32-x64/-/lmdb-win32-x64-3.2.2.tgz", + "integrity": "sha512-Y0qoSCAja+xZE7QQ0LCHoYAuyI1n9ZqukQJa8lv9X3yCvWahFF7OYHAgVH1ejp43XWstj3U89/PAAzcowgF/uQ==", "cpu": [ "x64" ], @@ -3997,208 +4048,513 @@ "win32" ] }, - "node_modules/@ngneat/until-destroy": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/@ngneat/until-destroy/-/until-destroy-10.0.0.tgz", - "integrity": "sha512-xXFAabQ4YVJ82LYxdgUlaKZyR3dSbxqG3woSyaclzxfCgWMEDweCcM/GGYbNiHJa0WwklI98RXHvca+UyCxpeg==", - "dependencies": { - "tslib": "^2.3.0" - }, - "peerDependencies": { - "@angular/core": ">=13", - "rxjs": "^6.4.0 || ^7.0.0" - } - }, - "node_modules/@ngtools/webpack": { - "version": "18.2.9", - "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-18.2.9.tgz", - "integrity": "sha512-/apDvs4qevjSWoYw3h3/c/mILFrf2EgCJfBy9f3E7PEgi2tjifOIszBRrLQkVpeHAaFgEH8zKS2ol0hAmOl8sw==", + "node_modules/@napi-rs/nice": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice/-/nice-1.0.1.tgz", + "integrity": "sha512-zM0mVWSXE0a0h9aKACLwKmD6nHcRiKrPpCfvaKqG1CqDEyjEawId0ocXxVzPMCAm6kkWr2P025msfxXEnt8UGQ==", "dev": true, "license": "MIT", + "optional": true, "engines": { - "node": "^18.19.1 || ^20.11.1 || >=22.0.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" + "node": ">= 10" }, - "peerDependencies": { - "@angular/compiler-cli": "^18.0.0", - "typescript": ">=5.4 <5.6", - "webpack": "^5.54.0" - } - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Brooooooklyn" + }, + "optionalDependencies": { + "@napi-rs/nice-android-arm-eabi": "1.0.1", + "@napi-rs/nice-android-arm64": "1.0.1", + "@napi-rs/nice-darwin-arm64": "1.0.1", + "@napi-rs/nice-darwin-x64": "1.0.1", + "@napi-rs/nice-freebsd-x64": "1.0.1", + "@napi-rs/nice-linux-arm-gnueabihf": "1.0.1", + "@napi-rs/nice-linux-arm64-gnu": "1.0.1", + "@napi-rs/nice-linux-arm64-musl": "1.0.1", + "@napi-rs/nice-linux-ppc64-gnu": "1.0.1", + "@napi-rs/nice-linux-riscv64-gnu": "1.0.1", + "@napi-rs/nice-linux-s390x-gnu": "1.0.1", + "@napi-rs/nice-linux-x64-gnu": "1.0.1", + "@napi-rs/nice-linux-x64-musl": "1.0.1", + "@napi-rs/nice-win32-arm64-msvc": "1.0.1", + "@napi-rs/nice-win32-ia32-msvc": "1.0.1", + "@napi-rs/nice-win32-x64-msvc": "1.0.1" + } + }, + "node_modules/@napi-rs/nice-android-arm-eabi": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-android-arm-eabi/-/nice-android-arm-eabi-1.0.1.tgz", + "integrity": "sha512-5qpvOu5IGwDo7MEKVqqyAxF90I6aLj4n07OzpARdgDRfz8UbBztTByBp0RC59r3J1Ij8uzYi6jI7r5Lws7nn6w==", + "cpu": [ + "arm" + ], "dev": true, "license": "MIT", - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, + "optional": true, + "os": [ + "android" + ], "engines": { - "node": ">= 8" + "node": ">= 10" } }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "node_modules/@napi-rs/nice-android-arm64": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-android-arm64/-/nice-android-arm64-1.0.1.tgz", + "integrity": "sha512-GqvXL0P8fZ+mQqG1g0o4AO9hJjQaeYG84FRfZaYjyJtZZZcMjXW5TwkL8Y8UApheJgyE13TQ4YNUssQaTgTyvA==", + "cpu": [ + "arm64" + ], "dev": true, "license": "MIT", + "optional": true, + "os": [ + "android" + ], "engines": { - "node": ">= 8" + "node": ">= 10" } }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "node_modules/@napi-rs/nice-darwin-arm64": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-darwin-arm64/-/nice-darwin-arm64-1.0.1.tgz", + "integrity": "sha512-91k3HEqUl2fsrz/sKkuEkscj6EAj3/eZNCLqzD2AA0TtVbkQi8nqxZCZDMkfklULmxLkMxuUdKe7RvG/T6s2AA==", + "cpu": [ + "arm64" + ], "dev": true, "license": "MIT", - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": ">= 8" + "node": ">= 10" } }, - "node_modules/@npmcli/agent": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/@npmcli/agent/-/agent-2.2.2.tgz", - "integrity": "sha512-OrcNPXdpSl9UX7qPVRWbmWMCSXrcDa2M9DvrbOTj7ao1S4PlqVFYv9/yLKMkrJKZ/V5A/kDBC690or307i26Og==", + "node_modules/@napi-rs/nice-darwin-x64": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-darwin-x64/-/nice-darwin-x64-1.0.1.tgz", + "integrity": "sha512-jXnMleYSIR/+TAN/p5u+NkCA7yidgswx5ftqzXdD5wgy/hNR92oerTXHc0jrlBisbd7DpzoaGY4cFD7Sm5GlgQ==", + "cpu": [ + "x64" + ], "dev": true, - "license": "ISC", - "dependencies": { - "agent-base": "^7.1.0", - "http-proxy-agent": "^7.0.0", - "https-proxy-agent": "^7.0.1", - "lru-cache": "^10.0.1", - "socks-proxy-agent": "^8.0.3" - }, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": ">= 10" } }, - "node_modules/@npmcli/agent/node_modules/lru-cache": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/@npmcli/fs": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-3.1.1.tgz", - "integrity": "sha512-q9CRWjpHCMIh5sVyefoD1cA7PkvILqCZsnSOEUUivORLjxCO/Irmue2DprETiNgEqktDBZaM1Bi+jrarx1XdCg==", + "node_modules/@napi-rs/nice-freebsd-x64": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-freebsd-x64/-/nice-freebsd-x64-1.0.1.tgz", + "integrity": "sha512-j+iJ/ezONXRQsVIB/FJfwjeQXX7A2tf3gEXs4WUGFrJjpe/z2KB7sOv6zpkm08PofF36C9S7wTNuzHZ/Iiccfw==", + "cpu": [ + "x64" + ], "dev": true, - "license": "ISC", - "dependencies": { - "semver": "^7.3.5" - }, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">= 10" } }, - "node_modules/@npmcli/git": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-5.0.8.tgz", - "integrity": "sha512-liASfw5cqhjNW9UFd+ruwwdEf/lbOAQjLL2XY2dFW/bkJheXDYZgOyul/4gVvEV4BWkTXjYGmDqMw9uegdbJNQ==", + "node_modules/@napi-rs/nice-linux-arm-gnueabihf": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-arm-gnueabihf/-/nice-linux-arm-gnueabihf-1.0.1.tgz", + "integrity": "sha512-G8RgJ8FYXYkkSGQwywAUh84m946UTn6l03/vmEXBYNJxQJcD+I3B3k5jmjFG/OPiU8DfvxutOP8bi+F89MCV7Q==", + "cpu": [ + "arm" + ], "dev": true, - "license": "ISC", - "dependencies": { - "@npmcli/promise-spawn": "^7.0.0", - "ini": "^4.1.3", - "lru-cache": "^10.0.1", - "npm-pick-manifest": "^9.0.0", - "proc-log": "^4.0.0", - "promise-inflight": "^1.0.1", - "promise-retry": "^2.0.1", - "semver": "^7.3.5", - "which": "^4.0.0" - }, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": ">= 10" } }, - "node_modules/@npmcli/git/node_modules/isexe": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", - "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", + "node_modules/@napi-rs/nice-linux-arm64-gnu": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-arm64-gnu/-/nice-linux-arm64-gnu-1.0.1.tgz", + "integrity": "sha512-IMDak59/W5JSab1oZvmNbrms3mHqcreaCeClUjwlwDr0m3BoR09ZiN8cKFBzuSlXgRdZ4PNqCYNeGQv7YMTjuA==", + "cpu": [ + "arm64" + ], "dev": true, - "license": "ISC", + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=16" + "node": ">= 10" } }, - "node_modules/@npmcli/git/node_modules/lru-cache": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "node_modules/@napi-rs/nice-linux-arm64-musl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-arm64-musl/-/nice-linux-arm64-musl-1.0.1.tgz", + "integrity": "sha512-wG8fa2VKuWM4CfjOjjRX9YLIbysSVV1S3Kgm2Fnc67ap/soHBeYZa6AGMeR5BJAylYRjnoVOzV19Cmkco3QEPw==", + "cpu": [ + "arm64" + ], "dev": true, - "license": "ISC" + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } }, - "node_modules/@npmcli/git/node_modules/which": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", - "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", + "node_modules/@napi-rs/nice-linux-ppc64-gnu": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-ppc64-gnu/-/nice-linux-ppc64-gnu-1.0.1.tgz", + "integrity": "sha512-lxQ9WrBf0IlNTCA9oS2jg/iAjQyTI6JHzABV664LLrLA/SIdD+I1i3Mjf7TsnoUbgopBcCuDztVLfJ0q9ubf6Q==", + "cpu": [ + "ppc64" + ], "dev": true, - "license": "ISC", - "dependencies": { - "isexe": "^3.1.1" - }, - "bin": { - "node-which": "bin/which.js" - }, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": "^16.13.0 || >=18.0.0" + "node": ">= 10" } }, - "node_modules/@npmcli/installed-package-contents": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-2.1.0.tgz", - "integrity": "sha512-c8UuGLeZpm69BryRykLuKRyKFZYJsZSCT4aVY5ds4omyZqJ172ApzgfKJ5eV/r3HgLdUYgFVe54KSFVjKoe27w==", + "node_modules/@napi-rs/nice-linux-riscv64-gnu": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-riscv64-gnu/-/nice-linux-riscv64-gnu-1.0.1.tgz", + "integrity": "sha512-3xs69dO8WSWBb13KBVex+yvxmUeEsdWexxibqskzoKaWx9AIqkMbWmE2npkazJoopPKX2ULKd8Fm9veEn0g4Ig==", + "cpu": [ + "riscv64" + ], "dev": true, - "license": "ISC", - "dependencies": { - "npm-bundled": "^3.0.0", - "npm-normalize-package-bin": "^3.0.0" - }, - "bin": { - "installed-package-contents": "bin/index.js" - }, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">= 10" } }, - "node_modules/@npmcli/node-gyp": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@npmcli/node-gyp/-/node-gyp-3.0.0.tgz", - "integrity": "sha512-gp8pRXC2oOxu0DUE1/M3bYtb1b3/DbJ5aM113+XJBgfXdussRAsX0YOrOhdd8WvnAR6auDBvJomGAkLKA5ydxA==", + "node_modules/@napi-rs/nice-linux-s390x-gnu": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-s390x-gnu/-/nice-linux-s390x-gnu-1.0.1.tgz", + "integrity": "sha512-lMFI3i9rlW7hgToyAzTaEybQYGbQHDrpRkg+1gJWEpH0PLAQoZ8jiY0IzakLfNWnVda1eTYYlxxFYzW8Rqczkg==", + "cpu": [ + "s390x" + ], "dev": true, - "license": "ISC", + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">= 10" + } + }, + "node_modules/@napi-rs/nice-linux-x64-gnu": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-x64-gnu/-/nice-linux-x64-gnu-1.0.1.tgz", + "integrity": "sha512-XQAJs7DRN2GpLN6Fb+ZdGFeYZDdGl2Fn3TmFlqEL5JorgWKrQGRUrpGKbgZ25UeZPILuTKJ+OowG2avN8mThBA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/nice-linux-x64-musl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-x64-musl/-/nice-linux-x64-musl-1.0.1.tgz", + "integrity": "sha512-/rodHpRSgiI9o1faq9SZOp/o2QkKQg7T+DK0R5AkbnI/YxvAIEHf2cngjYzLMQSQgUhxym+LFr+UGZx4vK4QdQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/nice-win32-arm64-msvc": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-win32-arm64-msvc/-/nice-win32-arm64-msvc-1.0.1.tgz", + "integrity": "sha512-rEcz9vZymaCB3OqEXoHnp9YViLct8ugF+6uO5McifTedjq4QMQs3DHz35xBEGhH3gJWEsXMUbzazkz5KNM5YUg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/nice-win32-ia32-msvc": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-win32-ia32-msvc/-/nice-win32-ia32-msvc-1.0.1.tgz", + "integrity": "sha512-t7eBAyPUrWL8su3gDxw9xxxqNwZzAqKo0Szv3IjVQd1GpXXVkb6vBBQUuxfIYaXMzZLwlxRQ7uzM2vdUE9ULGw==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/nice-win32-x64-msvc": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-win32-x64-msvc/-/nice-win32-x64-msvc-1.0.1.tgz", + "integrity": "sha512-JlF+uDcatt3St2ntBG8H02F1mM45i5SF9W+bIKiReVE6wiy3o16oBP/yxt+RZ+N6LbCImJXJ6bXNO2kn9AXicg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@ngneat/until-destroy": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/@ngneat/until-destroy/-/until-destroy-10.0.0.tgz", + "integrity": "sha512-xXFAabQ4YVJ82LYxdgUlaKZyR3dSbxqG3woSyaclzxfCgWMEDweCcM/GGYbNiHJa0WwklI98RXHvca+UyCxpeg==", + "dependencies": { + "tslib": "^2.3.0" + }, + "peerDependencies": { + "@angular/core": ">=13", + "rxjs": "^6.4.0 || ^7.0.0" + } + }, + "node_modules/@ngtools/webpack": { + "version": "19.1.4", + "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-19.1.4.tgz", + "integrity": "sha512-ZmUlbVqu/pz8abxVxNCKgKeY5g2MX1NsKxhM8rRV5tVV/MaAtSYNHgmFSYcKWA178v7k6BUuhnoNNxl5qqc1kw==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "peerDependencies": { + "@angular/compiler-cli": "^19.0.0", + "typescript": ">=5.5 <5.8", + "webpack": "^5.54.0" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@npmcli/agent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/agent/-/agent-3.0.0.tgz", + "integrity": "sha512-S79NdEgDQd/NGCay6TCoVzXSj74skRZIKJcpJjC5lOq34SZzyI6MqtiiWoiVWoVrTcGjNeC4ipbh1VIHlpfF5Q==", + "dev": true, + "license": "ISC", + "dependencies": { + "agent-base": "^7.1.0", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.1", + "lru-cache": "^10.0.1", + "socks-proxy-agent": "^8.0.3" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/@npmcli/agent/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/@npmcli/fs": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-4.0.0.tgz", + "integrity": "sha512-/xGlezI6xfGO9NwuJlnwz/K14qD1kCSAGtacBHnGzeAIuJGazcp45KP5NuyARXoKb7cwulAGWVsbeSxdG/cb0Q==", + "dev": true, + "license": "ISC", + "dependencies": { + "semver": "^7.3.5" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/@npmcli/git": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-6.0.1.tgz", + "integrity": "sha512-BBWMMxeQzalmKadyimwb2/VVQyJB01PH0HhVSNLHNBDZN/M/h/02P6f8fxedIiFhpMj11SO9Ep5tKTBE7zL2nw==", + "dev": true, + "license": "ISC", + "dependencies": { + "@npmcli/promise-spawn": "^8.0.0", + "ini": "^5.0.0", + "lru-cache": "^10.0.1", + "npm-pick-manifest": "^10.0.0", + "proc-log": "^5.0.0", + "promise-inflight": "^1.0.1", + "promise-retry": "^2.0.1", + "semver": "^7.3.5", + "which": "^5.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/@npmcli/git/node_modules/isexe": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", + "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=16" + } + }, + "node_modules/@npmcli/git/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/@npmcli/git/node_modules/which": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/which/-/which-5.0.0.tgz", + "integrity": "sha512-JEdGzHwwkrbWoGOlIHqQ5gtprKGOenpDHpxE9zVR1bWbOtYRyPPHMe9FaP6x61CmNaTThSkb0DAJte5jD+DmzQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^3.1.1" + }, + "bin": { + "node-which": "bin/which.js" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/@npmcli/installed-package-contents": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-3.0.0.tgz", + "integrity": "sha512-fkxoPuFGvxyrH+OQzyTkX2LUEamrF4jZSmxjAtPPHHGO0dqsQ8tTKjnIS8SAnPHdk2I03BDtSMR5K/4loKg79Q==", + "dev": true, + "license": "ISC", + "dependencies": { + "npm-bundled": "^4.0.0", + "npm-normalize-package-bin": "^4.0.0" + }, + "bin": { + "installed-package-contents": "bin/index.js" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/@npmcli/node-gyp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/node-gyp/-/node-gyp-4.0.0.tgz", + "integrity": "sha512-+t5DZ6mO/QFh78PByMq1fGSAub/agLJZDRfJRMeOSNCt8s9YVlTjmGpIPwPhvXTGUIJk+WszlT0rQa1W33yzNA==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/@npmcli/package-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@npmcli/package-json/-/package-json-5.2.0.tgz", - "integrity": "sha512-qe/kiqqkW0AGtvBjL8TJKZk/eBBSpnJkUWvHdQ9jM2lKHXRYYJuyNpJPlJw3c8QjC2ow6NZYiLExhUaeJelbxQ==", + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/@npmcli/package-json/-/package-json-6.1.1.tgz", + "integrity": "sha512-d5qimadRAUCO4A/Txw71VM7UrRZzV+NPclxz/dc+M6B2oYwjWTjqh8HA/sGQgs9VZuJ6I/P7XIAlJvgrl27ZOw==", "dev": true, "license": "ISC", "dependencies": { - "@npmcli/git": "^5.0.0", + "@npmcli/git": "^6.0.0", "glob": "^10.2.2", - "hosted-git-info": "^7.0.0", - "json-parse-even-better-errors": "^3.0.0", - "normalize-package-data": "^6.0.0", - "proc-log": "^4.0.0", - "semver": "^7.5.3" + "hosted-git-info": "^8.0.0", + "json-parse-even-better-errors": "^4.0.0", + "proc-log": "^5.0.0", + "semver": "^7.5.3", + "validate-npm-package-license": "^3.0.4" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/@npmcli/package-json/node_modules/brace-expansion": { @@ -4249,16 +4605,16 @@ } }, "node_modules/@npmcli/promise-spawn": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-7.0.2.tgz", - "integrity": "sha512-xhfYPXoV5Dy4UkY0D+v2KkwvnDfiA/8Mt3sWCGI/hM03NsYIH8ZaG6QzS9x7pje5vHZBZJ2v6VRFVTWACnqcmQ==", + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-8.0.2.tgz", + "integrity": "sha512-/bNJhjc+o6qL+Dwz/bqfTQClkEO5nTQ1ZEcdCkAQjhkZMHIh22LPG7fNh1enJP1NKWDqYiiABnjFCY7E0zHYtQ==", "dev": true, "license": "ISC", "dependencies": { - "which": "^4.0.0" + "which": "^5.0.0" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/@npmcli/promise-spawn/node_modules/isexe": { @@ -4272,9 +4628,9 @@ } }, "node_modules/@npmcli/promise-spawn/node_modules/which": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", - "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/which/-/which-5.0.0.tgz", + "integrity": "sha512-JEdGzHwwkrbWoGOlIHqQ5gtprKGOenpDHpxE9zVR1bWbOtYRyPPHMe9FaP6x61CmNaTThSkb0DAJte5jD+DmzQ==", "dev": true, "license": "ISC", "dependencies": { @@ -4284,35 +4640,35 @@ "node-which": "bin/which.js" }, "engines": { - "node": "^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/@npmcli/redact": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@npmcli/redact/-/redact-2.0.1.tgz", - "integrity": "sha512-YgsR5jCQZhVmTJvjduTOIHph0L73pK8xwMVaDY0PatySqVM9AZj93jpoXYSJqfHFxFkN9dmqTw6OiqExsS3LPw==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/redact/-/redact-3.0.0.tgz", + "integrity": "sha512-/1uFzjVcfzqrgCeGW7+SZ4hv0qLWmKXVzFahZGJ6QuJBj6Myt9s17+JL86i76NV9YSnJRcGXJYQbAU0rn1YTCQ==", "dev": true, "license": "ISC", "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/@npmcli/run-script": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-8.1.0.tgz", - "integrity": "sha512-y7efHHwghQfk28G2z3tlZ67pLG0XdfYbcVG26r7YIXALRsrVQcTq4/tdenSmdOrEsNahIYA/eh8aEVROWGFUDg==", + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-9.0.2.tgz", + "integrity": "sha512-cJXiUlycdizQwvqE1iaAb4VRUM3RX09/8q46zjvy+ct9GhfZRWd7jXYVc1tn/CfRlGPVkX/u4sstRlepsm7hfw==", "dev": true, "license": "ISC", "dependencies": { - "@npmcli/node-gyp": "^3.0.0", - "@npmcli/package-json": "^5.0.0", - "@npmcli/promise-spawn": "^7.0.0", - "node-gyp": "^10.0.0", - "proc-log": "^4.0.0", - "which": "^4.0.0" + "@npmcli/node-gyp": "^4.0.0", + "@npmcli/package-json": "^6.0.0", + "@npmcli/promise-spawn": "^8.0.0", + "node-gyp": "^11.0.0", + "proc-log": "^5.0.0", + "which": "^5.0.0" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/@npmcli/run-script/node_modules/isexe": { @@ -4326,9 +4682,9 @@ } }, "node_modules/@npmcli/run-script/node_modules/which": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", - "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/which/-/which-5.0.0.tgz", + "integrity": "sha512-JEdGzHwwkrbWoGOlIHqQ5gtprKGOenpDHpxE9zVR1bWbOtYRyPPHMe9FaP6x61CmNaTThSkb0DAJte5jD+DmzQ==", "dev": true, "license": "ISC", "dependencies": { @@ -4338,121 +4694,50 @@ "node-which": "bin/which.js" }, "engines": { - "node": "^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, - "node_modules/@pkgjs/parseargs": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", - "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "node_modules/@parcel/watcher": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.5.0.tgz", + "integrity": "sha512-i0GV1yJnm2n3Yq1qw6QrUrd/LI9bE8WEBOTtOkpCXHHdyN3TAGgqAK/DAT05z4fq2x04cARXt2pDmjWjL92iTQ==", "dev": true, + "hasInstallScript": true, "license": "MIT", "optional": true, + "dependencies": { + "detect-libc": "^1.0.3", + "is-glob": "^4.0.3", + "micromatch": "^4.0.5", + "node-addon-api": "^7.0.0" + }, "engines": { - "node": ">=14" - } - }, - "node_modules/@rollup/plugin-json": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@rollup/plugin-json/-/plugin-json-6.1.0.tgz", - "integrity": "sha512-EGI2te5ENk1coGeADSIwZ7G2Q8CJS2sF120T7jLw4xFw9n7wIOXHo+kIYRAoVpJAN+kmqZSoO3Fp4JtoNF4ReA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@rollup/pluginutils": "^5.1.0" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" - }, - "peerDependenciesMeta": { - "rollup": { - "optional": true - } - } - }, - "node_modules/@rollup/plugin-node-resolve": { - "version": "15.2.3", - "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.2.3.tgz", - "integrity": "sha512-j/lym8nf5E21LwBT4Df1VD6hRO2L2iwUeUmP7litikRsVp1H6NWx20NEp0Y7su+7XGc476GnXXc4kFeZNGmaSQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@rollup/pluginutils": "^5.0.1", - "@types/resolve": "1.20.2", - "deepmerge": "^4.2.2", - "is-builtin-module": "^3.2.1", - "is-module": "^1.0.0", - "resolve": "^1.22.1" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "rollup": "^2.78.0||^3.0.0||^4.0.0" - }, - "peerDependenciesMeta": { - "rollup": { - "optional": true - } - } - }, - "node_modules/@rollup/pluginutils": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.0.tgz", - "integrity": "sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0", - "estree-walker": "^2.0.2", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" - }, - "peerDependenciesMeta": { - "rollup": { - "optional": true - } - } - }, - "node_modules/@rollup/pluginutils/node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8.6" + "node": ">= 10.0.0" }, "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.22.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.22.4.tgz", - "integrity": "sha512-Fxamp4aEZnfPOcGA8KSNEohV8hX7zVHOemC8jVBoBUHu5zpJK/Eu3uJwt6BMgy9fkvzxDaurgj96F/NiLukF2w==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@rollup/rollup-android-arm64": { - "version": "4.22.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.22.4.tgz", - "integrity": "sha512-VXoK5UMrgECLYaMuGuVTOx5kcuap1Jm8g/M83RnCHBKOqvPPmROFJGQaZhGccnsFtfXQ3XYa4/jMCJvZnbJBdA==", + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "@parcel/watcher-android-arm64": "2.5.0", + "@parcel/watcher-darwin-arm64": "2.5.0", + "@parcel/watcher-darwin-x64": "2.5.0", + "@parcel/watcher-freebsd-x64": "2.5.0", + "@parcel/watcher-linux-arm-glibc": "2.5.0", + "@parcel/watcher-linux-arm-musl": "2.5.0", + "@parcel/watcher-linux-arm64-glibc": "2.5.0", + "@parcel/watcher-linux-arm64-musl": "2.5.0", + "@parcel/watcher-linux-x64-glibc": "2.5.0", + "@parcel/watcher-linux-x64-musl": "2.5.0", + "@parcel/watcher-win32-arm64": "2.5.0", + "@parcel/watcher-win32-ia32": "2.5.0", + "@parcel/watcher-win32-x64": "2.5.0" + } + }, + "node_modules/@parcel/watcher-android-arm64": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.5.0.tgz", + "integrity": "sha512-qlX4eS28bUcQCdribHkg/herLe+0A9RyYC+mm2PXpncit8z5b3nSqGVzMNR3CmtAOgRutiZ02eIJJgP/b1iEFQ==", "cpu": [ "arm64" ], @@ -4461,12 +4746,19 @@ "optional": true, "os": [ "android" - ] + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } }, - "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.22.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.22.4.tgz", - "integrity": "sha512-xMM9ORBqu81jyMKCDP+SZDhnX2QEVQzTcC6G18KlTQEzWK8r/oNZtKuZaCcHhnsa6fEeOBionoyl5JsAbE/36Q==", + "node_modules/@parcel/watcher-darwin-arm64": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.5.0.tgz", + "integrity": "sha512-hyZ3TANnzGfLpRA2s/4U1kbw2ZI4qGxaRJbBH2DCSREFfubMswheh8TeiC1sGZ3z2jUf3s37P0BBlrD3sjVTUw==", "cpu": [ "arm64" ], @@ -4475,12 +4767,19 @@ "optional": true, "os": [ "darwin" - ] + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } }, - "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.22.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.22.4.tgz", - "integrity": "sha512-aJJyYKQwbHuhTUrjWjxEvGnNNBCnmpHDvrb8JFDbeSH3m2XdHcxDd3jthAzvmoI8w/kSjd2y0udT+4okADsZIw==", + "node_modules/@parcel/watcher-darwin-x64": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.5.0.tgz", + "integrity": "sha512-9rhlwd78saKf18fT869/poydQK8YqlU26TMiNg7AIu7eBp9adqbJZqmdFOsbZ5cnLp5XvRo9wcFmNHgHdWaGYA==", "cpu": [ "x64" ], @@ -4489,26 +4788,40 @@ "optional": true, "os": [ "darwin" - ] + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } }, - "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.22.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.22.4.tgz", - "integrity": "sha512-j63YtCIRAzbO+gC2L9dWXRh5BFetsv0j0va0Wi9epXDgU/XUi5dJKo4USTttVyK7fGw2nPWK0PbAvyliz50SCQ==", + "node_modules/@parcel/watcher-freebsd-x64": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.5.0.tgz", + "integrity": "sha512-syvfhZzyM8kErg3VF0xpV8dixJ+RzbUaaGaeb7uDuz0D3FK97/mZ5AJQ3XNnDsXX7KkFNtyQyFrXZzQIcN49Tw==", "cpu": [ - "arm" + "x64" ], "dev": true, "license": "MIT", "optional": true, "os": [ - "linux" - ] + "freebsd" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } }, - "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.22.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.22.4.tgz", - "integrity": "sha512-dJnWUgwWBX1YBRsuKKMOlXCzh2Wu1mlHzv20TpqEsfdZLb3WoJW2kIEsGwLkroYf24IrPAvOT/ZQ2OYMV6vlrg==", + "node_modules/@parcel/watcher-linux-arm-glibc": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.5.0.tgz", + "integrity": "sha512-0VQY1K35DQET3dVYWpOaPFecqOT9dbuCfzjxoQyif1Wc574t3kOSkKevULddcR9znz1TcklCE7Ht6NIxjvTqLA==", "cpu": [ "arm" ], @@ -4517,26 +4830,40 @@ "optional": true, "os": [ "linux" - ] + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } }, - "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.22.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.22.4.tgz", - "integrity": "sha512-AdPRoNi3NKVLolCN/Sp4F4N1d98c4SBnHMKoLuiG6RXgoZ4sllseuGioszumnPGmPM2O7qaAX/IJdeDU8f26Aw==", + "node_modules/@parcel/watcher-linux-arm-musl": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.5.0.tgz", + "integrity": "sha512-6uHywSIzz8+vi2lAzFeltnYbdHsDm3iIB57d4g5oaB9vKwjb6N6dRIgZMujw4nm5r6v9/BQH0noq6DzHrqr2pA==", "cpu": [ - "arm64" + "arm" ], "dev": true, "license": "MIT", "optional": true, "os": [ "linux" - ] + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } }, - "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.22.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.22.4.tgz", - "integrity": "sha512-Gl0AxBtDg8uoAn5CCqQDMqAx22Wx22pjDOjBdmG0VIWX3qUBHzYmOKh8KXHL4UpogfJ14G4wk16EQogF+v8hmA==", + "node_modules/@parcel/watcher-linux-arm64-glibc": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.5.0.tgz", + "integrity": "sha512-BfNjXwZKxBy4WibDb/LDCriWSKLz+jJRL3cM/DllnHH5QUyoiUNEp3GmL80ZqxeumoADfCCP19+qiYiC8gUBjA==", "cpu": [ "arm64" ], @@ -4545,54 +4872,40 @@ "optional": true, "os": [ "linux" - ] - }, - "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.22.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.22.4.tgz", - "integrity": "sha512-3aVCK9xfWW1oGQpTsYJJPF6bfpWfhbRnhdlyhak2ZiyFLDaayz0EP5j9V1RVLAAxlmWKTDfS9wyRyY3hvhPoOg==", - "cpu": [ - "ppc64" ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } }, - "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.22.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.22.4.tgz", - "integrity": "sha512-ePYIir6VYnhgv2C5Xe9u+ico4t8sZWXschR6fMgoPUK31yQu7hTEJb7bCqivHECwIClJfKgE7zYsh1qTP3WHUA==", + "node_modules/@parcel/watcher-linux-arm64-musl": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.5.0.tgz", + "integrity": "sha512-S1qARKOphxfiBEkwLUbHjCY9BWPdWnW9j7f7Hb2jPplu8UZ3nes7zpPOW9bkLbHRvWM0WDTsjdOTUgW0xLBN1Q==", "cpu": [ - "riscv64" + "arm64" ], "dev": true, "license": "MIT", "optional": true, "os": [ "linux" - ] - }, - "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.22.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.22.4.tgz", - "integrity": "sha512-GqFJ9wLlbB9daxhVlrTe61vJtEY99/xB3C8e4ULVsVfflcpmR6c8UZXjtkMA6FhNONhj2eA5Tk9uAVw5orEs4Q==", - "cpu": [ - "s390x" ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } }, - "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.22.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.22.4.tgz", - "integrity": "sha512-87v0ol2sH9GE3cLQLNEy0K/R0pz1nvg76o8M5nhMR0+Q+BBGLnb35P0fVz4CQxHYXaAOhE8HhlkaZfsdUOlHwg==", + "node_modules/@parcel/watcher-linux-x64-glibc": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.5.0.tgz", + "integrity": "sha512-d9AOkusyXARkFD66S6zlGXyzx5RvY+chTP9Jp0ypSTC9d4lzyRs9ovGf/80VCxjKddcUvnsGwCHWuF2EoPgWjw==", "cpu": [ "x64" ], @@ -4601,12 +4914,19 @@ "optional": true, "os": [ "linux" - ] + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } }, - "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.22.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.22.4.tgz", - "integrity": "sha512-UV6FZMUgePDZrFjrNGIWzDo/vABebuXBhJEqrHxrGiU6HikPy0Z3LfdtciIttEUQfuDdCn8fqh7wiFJjCNwO+g==", + "node_modules/@parcel/watcher-linux-x64-musl": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.5.0.tgz", + "integrity": "sha512-iqOC+GoTDoFyk/VYSFHwjHhYrk8bljW6zOhPuhi5t9ulqiYq1togGJB5e3PwYVFFfeVgc6pbz3JdQyDoBszVaA==", "cpu": [ "x64" ], @@ -4615,12 +4935,19 @@ "optional": true, "os": [ "linux" - ] + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } }, - "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.22.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.22.4.tgz", - "integrity": "sha512-BjI+NVVEGAXjGWYHz/vv0pBqfGoUH0IGZ0cICTn7kB9PyjrATSkX+8WkguNjWoj2qSr1im/+tTGRaY+4/PdcQw==", + "node_modules/@parcel/watcher-win32-arm64": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.5.0.tgz", + "integrity": "sha512-twtft1d+JRNkM5YbmexfcH/N4znDtjgysFaV9zvZmmJezQsKpkfLYJ+JFV3uygugK6AtIM2oADPkB2AdhBrNig==", "cpu": [ "arm64" ], @@ -4629,12 +4956,19 @@ "optional": true, "os": [ "win32" - ] + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } }, - "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.22.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.22.4.tgz", - "integrity": "sha512-SiWG/1TuUdPvYmzmYnmd3IEifzR61Tragkbx9D3+R8mzQqDBz8v+BvZNDlkiTtI9T15KYZhP0ehn3Dld4n9J5g==", + "node_modules/@parcel/watcher-win32-ia32": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.5.0.tgz", + "integrity": "sha512-+rgpsNRKwo8A53elqbbHXdOMtY/tAtTzManTWShB5Kk54N8Q9mzNWV7tV+IbGueCbcj826MfWGU3mprWtuf1TA==", "cpu": [ "ia32" ], @@ -4643,12 +4977,19 @@ "optional": true, "os": [ "win32" - ] + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } }, - "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.22.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.22.4.tgz", - "integrity": "sha512-j8pPKp53/lq9lMXN57S8cFz0MynJk8OWNuUnXct/9KCpKU7DgU3bYMJhwWmcqC0UU29p8Lr0/7KEVcaM6bf47Q==", + "node_modules/@parcel/watcher-win32-x64": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.5.0.tgz", + "integrity": "sha512-lPrxve92zEHdgeff3aiu4gDOIt4u7sJYha6wbdEZDCDUhtjTsOMiaJzG5lMY4GkWH8p0fMmO2Ppq5G5XXG+DQw==", "cpu": [ "x64" ], @@ -4657,49 +4998,399 @@ "optional": true, "os": [ "win32" - ] - }, - "node_modules/@rollup/wasm-node": { - "version": "4.21.3", - "resolved": "https://registry.npmjs.org/@rollup/wasm-node/-/wasm-node-4.21.3.tgz", - "integrity": "sha512-uZFl4GXMgyllfuKjY/zlXxTxDs+G/LB7snVENskpJt7IIXw6cD1yqi3eBeGM8NxE9kuxrNB0Qr1QLNtDYTlqeQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/estree": "1.0.5" - }, - "bin": { - "rollup": "dist/bin/rollup" - }, + ], "engines": { - "node": ">=18.0.0", - "npm": ">=8.0.0" + "node": ">= 10.0.0" }, - "optionalDependencies": { - "fsevents": "~2.3.2" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" } }, - "node_modules/@schematics/angular": { - "version": "18.2.9", - "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-18.2.9.tgz", - "integrity": "sha512-LlMHZQ6f8zrqSK24OBXi4u2MTNHNu9ZN6JXpbElq0bz/9QkUR2zy+Kk2wLpPxCwXYTZby7/xgHiTzXvG+zTdhw==", + "node_modules/@parcel/watcher/node_modules/detect-libc": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", + "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", "dev": true, - "license": "MIT", - "dependencies": { - "@angular-devkit/core": "18.2.9", - "@angular-devkit/schematics": "18.2.9", - "jsonc-parser": "3.3.1" + "license": "Apache-2.0", + "optional": true, + "bin": { + "detect-libc": "bin/detect-libc.js" }, "engines": { - "node": "^18.19.1 || ^20.11.1 || >=22.0.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" + "node": ">=0.10" + } + }, + "node_modules/@parcel/watcher/node_modules/node-addon-api": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz", + "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@rollup/plugin-json": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-json/-/plugin-json-6.1.0.tgz", + "integrity": "sha512-EGI2te5ENk1coGeADSIwZ7G2Q8CJS2sF120T7jLw4xFw9n7wIOXHo+kIYRAoVpJAN+kmqZSoO3Fp4JtoNF4ReA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rollup/pluginutils": "^5.1.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/pluginutils": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.4.tgz", + "integrity": "sha512-USm05zrsFxYLPdWWq+K3STlWiT/3ELn3RcV5hJMghpeAIhxfsUIg6mt12CBJBInWMV4VneoV7SfGv8xIwo2qNQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^4.0.2" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.30.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.30.1.tgz", + "integrity": "sha512-pSWY+EVt3rJ9fQ3IqlrEUtXh3cGqGtPDH1FQlNZehO2yYxCHEX1SPsz1M//NXwYfbTlcKr9WObLnJX9FsS9K1Q==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.30.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.30.1.tgz", + "integrity": "sha512-/NA2qXxE3D/BRjOJM8wQblmArQq1YoBVJjrjoTSBS09jgUisq7bqxNHJ8kjCHeV21W/9WDGwJEWSN0KQ2mtD/w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.30.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.30.1.tgz", + "integrity": "sha512-r7FQIXD7gB0WJ5mokTUgUWPl0eYIH0wnxqeSAhuIwvnnpjdVB8cRRClyKLQr7lgzjctkbp5KmswWszlwYln03Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.30.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.30.1.tgz", + "integrity": "sha512-x78BavIwSH6sqfP2xeI1hd1GpHL8J4W2BXcVM/5KYKoAD3nNsfitQhvWSw+TFtQTLZ9OmlF+FEInEHyubut2OA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.30.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.30.1.tgz", + "integrity": "sha512-HYTlUAjbO1z8ywxsDFWADfTRfTIIy/oUlfIDmlHYmjUP2QRDTzBuWXc9O4CXM+bo9qfiCclmHk1x4ogBjOUpUQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.30.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.30.1.tgz", + "integrity": "sha512-1MEdGqogQLccphhX5myCJqeGNYTNcmTyaic9S7CG3JhwuIByJ7J05vGbZxsizQthP1xpVx7kd3o31eOogfEirw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.30.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.30.1.tgz", + "integrity": "sha512-PaMRNBSqCx7K3Wc9QZkFx5+CX27WFpAMxJNiYGAXfmMIKC7jstlr32UhTgK6T07OtqR+wYlWm9IxzennjnvdJg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.30.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.30.1.tgz", + "integrity": "sha512-B8Rcyj9AV7ZlEFqvB5BubG5iO6ANDsRKlhIxySXcF1axXYUyqwBok+XZPgIYGBgs7LDXfWfifxhw0Ik57T0Yug==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.30.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.30.1.tgz", + "integrity": "sha512-hqVyueGxAj3cBKrAI4aFHLV+h0Lv5VgWZs9CUGqr1z0fZtlADVV1YPOij6AhcK5An33EXaxnDLmJdQikcn5NEw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.30.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.30.1.tgz", + "integrity": "sha512-i4Ab2vnvS1AE1PyOIGp2kXni69gU2DAUVt6FSXeIqUCPIR3ZlheMW3oP2JkukDfu3PsexYRbOiJrY+yVNSk9oA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loongarch64-gnu": { + "version": "4.30.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.30.1.tgz", + "integrity": "sha512-fARcF5g296snX0oLGkVxPmysetwUk2zmHcca+e9ObOovBR++9ZPOhqFUM61UUZ2EYpXVPN1redgqVoBB34nTpQ==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.30.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.30.1.tgz", + "integrity": "sha512-GLrZraoO3wVT4uFXh67ElpwQY0DIygxdv0BNW9Hkm3X34wu+BkqrDrkcsIapAY+N2ATEbvak0XQ9gxZtCIA5Rw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.30.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.30.1.tgz", + "integrity": "sha512-0WKLaAUUHKBtll0wvOmh6yh3S0wSU9+yas923JIChfxOaaBarmb/lBKPF0w/+jTVozFnOXJeRGZ8NvOxvk/jcw==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.30.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.30.1.tgz", + "integrity": "sha512-GWFs97Ruxo5Bt+cvVTQkOJ6TIx0xJDD/bMAOXWJg8TCSTEK8RnFeOeiFTxKniTc4vMIaWvCplMAFBt9miGxgkA==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.30.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.30.1.tgz", + "integrity": "sha512-UtgGb7QGgXDIO+tqqJ5oZRGHsDLO8SlpE4MhqpY9Llpzi5rJMvrK6ZGhsRCST2abZdBqIBeXW6WPD5fGK5SDwg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.30.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.30.1.tgz", + "integrity": "sha512-V9U8Ey2UqmQsBT+xTOeMzPzwDzyXmnAoO4edZhL7INkwQcaW1Ckv3WJX3qrrp/VHaDkEWIBWhRwP47r8cdrOow==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.30.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.30.1.tgz", + "integrity": "sha512-WabtHWiPaFF47W3PkHnjbmWawnX/aE57K47ZDT1BXTS5GgrBUEpvOzq0FI0V/UYzQJgdb8XlhVNH8/fwV8xDjw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.30.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.30.1.tgz", + "integrity": "sha512-pxHAU+Zv39hLUTdQQHUVHf4P+0C47y/ZloorHpzs2SXMRqeAWmGghzAhfOlzFHHwjvgokdFAhC4V+6kC1lRRfw==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.30.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.30.1.tgz", + "integrity": "sha512-D6qjsXGcvhTjv0kI4fU8tUuBDF/Ueee4SVX79VfNDXZa64TfCW1Slkb6Z7O1p7vflqZjcmOVdZlqf8gvJxc6og==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/wasm-node": { + "version": "4.32.0", + "resolved": "https://registry.npmjs.org/@rollup/wasm-node/-/wasm-node-4.32.0.tgz", + "integrity": "sha512-Dsr5270xEi7yFW3MjnLp+mBO+EW0qbdp+J+EPm+eCpA0nfYnWv/xExf85uTCBu18VVvGg0RTUqrUlwA/FUe2yQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.6" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/@schematics/angular": { + "version": "19.1.4", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-19.1.4.tgz", + "integrity": "sha512-HFf83SoXbj1K4jkYSSfCg/oXkmSGBx0zG1Lh+dE5GZFdTQmykrBY519aSdrqLVyZzKYjTGfDfSewUeO4a0GE2A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@angular-devkit/core": "19.1.4", + "@angular-devkit/schematics": "19.1.4", + "jsonc-parser": "3.3.1" + }, + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" } }, "node_modules/@schematics/angular/node_modules/@angular-devkit/core": { - "version": "18.2.9", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-18.2.9.tgz", - "integrity": "sha512-bsVt//5E0ua7FZfO0dCF/qGGY6KQD34/bNGyRu5B6HedimpdU2/0PGDptksU5v3yKEc9gNw0xC6mT0UsY/R9pA==", + "version": "19.1.4", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-19.1.4.tgz", + "integrity": "sha512-IDvSSiQgaixH2RtZtIpq1+XaHeuzMiTWfDyNF9DuYcU+S8CdG1SWrc8d59tmOrM/q+IRGyFgbBhTU1un52hNHw==", "dev": true, "license": "MIT", "dependencies": { @@ -4716,7 +5407,7 @@ "yarn": ">= 1.13.0" }, "peerDependencies": { - "chokidar": "^3.5.2" + "chokidar": "^4.0.0" }, "peerDependenciesMeta": { "chokidar": { @@ -4725,15 +5416,15 @@ } }, "node_modules/@schematics/angular/node_modules/@angular-devkit/schematics": { - "version": "18.2.9", - "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-18.2.9.tgz", - "integrity": "sha512-aIY5/IomDOINGCtFYi77uo0acDpdQNNCighfBBUGEBNMQ1eE3oGNGpLAH/qWeuxJndgmxrdKsvws9DdT46kLig==", + "version": "19.1.4", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-19.1.4.tgz", + "integrity": "sha512-EKXBkx6EDcvyO+U68w/eXicRaF92zSSzYNvR3tMZszEKYE6xBr3kZxY99PP54HXQHR4zYwLvFJVp+T6bnvte2w==", "dev": true, "license": "MIT", "dependencies": { - "@angular-devkit/core": "18.2.9", + "@angular-devkit/core": "19.1.4", "jsonc-parser": "3.3.1", - "magic-string": "0.30.11", + "magic-string": "0.30.17", "ora": "5.4.1", "rxjs": "7.8.1" }, @@ -4778,84 +5469,118 @@ } } }, + "node_modules/@schematics/angular/node_modules/chokidar": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", + "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "readdirp": "^4.0.1" + }, + "engines": { + "node": ">= 14.16.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@schematics/angular/node_modules/readdirp": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.1.tgz", + "integrity": "sha512-h80JrZu/MHUZCyHu5ciuoI0+WxsCxzxJTILn6Fs8rxSnFPh+UVHYfeIxK1nVGugMqkfC4vJcBOYbkfkwYK0+gw==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "engines": { + "node": ">= 14.18.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + }, "node_modules/@sigstore/bundle": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/@sigstore/bundle/-/bundle-2.3.2.tgz", - "integrity": "sha512-wueKWDk70QixNLB363yHc2D2ItTgYiMTdPwK8D9dKQMR3ZQ0c35IxP5xnwQ8cNLoCgCRcHf14kE+CLIvNX1zmA==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@sigstore/bundle/-/bundle-3.0.0.tgz", + "integrity": "sha512-XDUYX56iMPAn/cdgh/DTJxz5RWmqKV4pwvUAEKEWJl+HzKdCd/24wUa9JYNMlDSCb7SUHAdtksxYX779Nne/Zg==", "dev": true, "license": "Apache-2.0", "dependencies": { "@sigstore/protobuf-specs": "^0.3.2" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/@sigstore/core": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@sigstore/core/-/core-1.1.0.tgz", - "integrity": "sha512-JzBqdVIyqm2FRQCulY6nbQzMpJJpSiJ8XXWMhtOX9eKgaXXpfNOF53lzQEjIydlStnd/eFtuC1dW4VYdD93oRg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@sigstore/core/-/core-2.0.0.tgz", + "integrity": "sha512-nYxaSb/MtlSI+JWcwTHQxyNmWeWrUXJJ/G4liLrGG7+tS4vAz6LF3xRXqLH6wPIVUoZQel2Fs4ddLx4NCpiIYg==", "dev": true, "license": "Apache-2.0", "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/@sigstore/protobuf-specs": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@sigstore/protobuf-specs/-/protobuf-specs-0.3.2.tgz", - "integrity": "sha512-c6B0ehIWxMI8wiS/bj6rHMPqeFvngFV7cDU/MY+B16P9Z3Mp9k8L93eYZ7BYzSickzuqAQqAq0V956b3Ju6mLw==", + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@sigstore/protobuf-specs/-/protobuf-specs-0.3.3.tgz", + "integrity": "sha512-RpacQhBlwpBWd7KEJsRKcBQalbV28fvkxwTOJIqhIuDysMMaJW47V4OqW30iJB9uRpqOSxxEAQFdr8tTattReQ==", "dev": true, "license": "Apache-2.0", "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/@sigstore/sign": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/@sigstore/sign/-/sign-2.3.2.tgz", - "integrity": "sha512-5Vz5dPVuunIIvC5vBb0APwo7qKA4G9yM48kPWJT+OEERs40md5GoUR1yedwpekWZ4m0Hhw44m6zU+ObsON+iDA==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@sigstore/sign/-/sign-3.0.0.tgz", + "integrity": "sha512-UjhDMQOkyDoktpXoc5YPJpJK6IooF2gayAr5LvXI4EL7O0vd58okgfRcxuaH+YTdhvb5aa1Q9f+WJ0c2sVuYIw==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@sigstore/bundle": "^2.3.2", - "@sigstore/core": "^1.0.0", + "@sigstore/bundle": "^3.0.0", + "@sigstore/core": "^2.0.0", "@sigstore/protobuf-specs": "^0.3.2", - "make-fetch-happen": "^13.0.1", - "proc-log": "^4.2.0", + "make-fetch-happen": "^14.0.1", + "proc-log": "^5.0.0", "promise-retry": "^2.0.1" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/@sigstore/tuf": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/@sigstore/tuf/-/tuf-2.3.4.tgz", - "integrity": "sha512-44vtsveTPUpqhm9NCrbU8CWLe3Vck2HO1PNLw7RIajbB7xhtn5RBPm1VNSCMwqGYHhDsBJG8gDF0q4lgydsJvw==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@sigstore/tuf/-/tuf-3.0.0.tgz", + "integrity": "sha512-9Xxy/8U5OFJu7s+OsHzI96IX/OzjF/zj0BSSaWhgJgTqtlBhQIV2xdrQI5qxLD7+CWWDepadnXAxzaZ3u9cvRw==", "dev": true, "license": "Apache-2.0", "dependencies": { "@sigstore/protobuf-specs": "^0.3.2", - "tuf-js": "^2.2.1" + "tuf-js": "^3.0.1" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/@sigstore/verify": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@sigstore/verify/-/verify-1.2.1.tgz", - "integrity": "sha512-8iKx79/F73DKbGfRf7+t4dqrc0bRr0thdPrxAtCKWRm/F0tG71i6O1rvlnScncJLLBZHn3h8M3c1BSUAb9yu8g==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@sigstore/verify/-/verify-2.0.0.tgz", + "integrity": "sha512-Ggtq2GsJuxFNUvQzLoXqRwS4ceRfLAJnrIHUDrzAD0GgnOhwujJkKkxM/s5Bako07c3WtAs/sZo5PJq7VHjeDg==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@sigstore/bundle": "^2.3.2", - "@sigstore/core": "^1.1.0", + "@sigstore/bundle": "^3.0.0", + "@sigstore/core": "^2.0.0", "@sigstore/protobuf-specs": "^0.3.2" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/@sindresorhus/merge-streams": { @@ -4888,17 +5613,17 @@ } }, "node_modules/@tufjs/models": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@tufjs/models/-/models-2.0.1.tgz", - "integrity": "sha512-92F7/SFyufn4DXsha9+QfKnN03JGqtMFMXgSHbZOo8JG59WkTni7UzAouNQDf7AuP9OAMxVOPQcqG3sB7w+kkg==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@tufjs/models/-/models-3.0.1.tgz", + "integrity": "sha512-UUYHISyhCU3ZgN8yaear3cGATHb3SMuKHsQ/nVbHXcmnBf+LzQ/cQfhNG+rfaSHgqGKNEm2cOCLVLELStUQ1JA==", "dev": true, "license": "MIT", "dependencies": { "@tufjs/canonical-json": "2.0.0", - "minimatch": "^9.0.4" + "minimatch": "^9.0.5" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/@tufjs/models/node_modules/brace-expansion": { @@ -4998,11 +5723,34 @@ "@types/cytoscape": "*" } }, + "node_modules/@types/eslint": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-9.6.1.tgz", + "integrity": "sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "node_modules/@types/eslint-scope": { + "version": "3.7.7", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", + "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, "node_modules/@types/estree": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", - "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", - "dev": true + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", + "dev": true, + "license": "MIT" }, "node_modules/@types/express": { "version": "4.17.21", @@ -5018,9 +5766,9 @@ } }, "node_modules/@types/express-serve-static-core": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-5.0.0.tgz", - "integrity": "sha512-AbXMTZGt40T+KON9/Fdxx0B2WK5hsgxcfXJLr5bFpZ7b4JCex2WyQPTEKdXqfHiY5nKKBScZ7yCoO6Pvgxfvnw==", + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-5.0.5.tgz", + "integrity": "sha512-GLZPrd9ckqEBFMcVM/qRFAP0Hg3qiVEojgEFsx/N/zKXsBzbGF6z5FBDpZ0+Xhp1xr+qRZYjfGr1cWHB9oFHSA==", "dev": true, "license": "MIT", "dependencies": { @@ -5085,16 +5833,6 @@ "dev": true, "license": "MIT" }, - "node_modules/@types/mute-stream": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/@types/mute-stream/-/mute-stream-0.0.4.tgz", - "integrity": "sha512-CPM9nzrCPPJHQNA9keH9CVkVI+WR5kMa+7XEs5jcGQ0VoAGnLv242w8lIVgwAEfmE4oufJRaTc9PNLQl0ioAow==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, "node_modules/@types/node": { "version": "22.5.4", "resolved": "https://registry.npmjs.org/@types/node/-/node-22.5.4.tgz", @@ -5116,9 +5854,9 @@ } }, "node_modules/@types/qs": { - "version": "6.9.16", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.16.tgz", - "integrity": "sha512-7i+zxXdPD0T4cKDuxCUXJ4wHcsJLwENa6Z3dCu8cfCK743OGy5Nu1RmAGqDPsoTDINVEcdXKRvR/zre+P2Ku1A==", + "version": "6.9.18", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.18.tgz", + "integrity": "sha512-kK7dgTYDyGqS+e2Q4aK9X3D7q234CIZ1Bv0q/7Z5IwRDoADNU81xXJK/YVyLbLTZCoIwUoDoffFeF+p/eIklAA==", "dev": true, "license": "MIT" }, @@ -5129,13 +5867,6 @@ "dev": true, "license": "MIT" }, - "node_modules/@types/resolve": { - "version": "1.20.2", - "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.20.2.tgz", - "integrity": "sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==", - "dev": true, - "license": "MIT" - }, "node_modules/@types/retry": { "version": "0.12.2", "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.2.tgz", @@ -5186,17 +5917,10 @@ "@types/node": "*" } }, - "node_modules/@types/wrap-ansi": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/wrap-ansi/-/wrap-ansi-3.0.0.tgz", - "integrity": "sha512-ltIpx+kM7g/MLRZfkbL7EsCEjfzCcScLpkg37eXEtx5kmrAKBkTJwd1GIAjDSL8wTpM6Hzn5YO4pSb91BEwu1g==", - "dev": true, - "license": "MIT" - }, "node_modules/@types/ws": { - "version": "8.5.12", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.12.tgz", - "integrity": "sha512-3tPRkv1EtkDpzlgyKyI8pGsGZAGPEaXeu0DOj5DI25Ja91bdAYddYHbADRYVrZMRbfW+1l5YwXVDKohDJNQxkQ==", + "version": "8.5.14", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.14.tgz", + "integrity": "sha512-bd/YFLW+URhBzMXurx7lWByOu+xzU9+kb3RboOteXYDfW+tr+JZa99OyNmPINEGB/ahzKrEuc8rcv4gnpJmxTw==", "dev": true, "license": "MIT", "dependencies": { @@ -5204,161 +5928,176 @@ } }, "node_modules/@vitejs/plugin-basic-ssl": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-basic-ssl/-/plugin-basic-ssl-1.1.0.tgz", - "integrity": "sha512-wO4Dk/rm8u7RNhOf95ZzcEmC9rYOncYgvq4z3duaJrCgjN8BxAnDVyndanfcJZ0O6XZzHz6Q0hTimxTg8Y9g/A==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-basic-ssl/-/plugin-basic-ssl-1.2.0.tgz", + "integrity": "sha512-mkQnxTkcldAzIsomk1UuLfAu9n+kpQ3JbHcpCp7d2Oo6ITtji8pHS3QToOWjhPFvNQSnhlkAjmGbhv2QvwO/7Q==", "dev": true, "license": "MIT", "engines": { - "node": ">=14.6.0" + "node": ">=14.21.3" }, "peerDependencies": { - "vite": "^3.0.0 || ^4.0.0 || ^5.0.0" + "vite": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0" } }, "node_modules/@webassemblyjs/ast": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.12.1.tgz", - "integrity": "sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.14.1.tgz", + "integrity": "sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==", "dev": true, + "license": "MIT", "dependencies": { - "@webassemblyjs/helper-numbers": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6" + "@webassemblyjs/helper-numbers": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2" } }, "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 + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz", + "integrity": "sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==", + "dev": true, + "license": "MIT" }, "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 + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz", + "integrity": "sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==", + "dev": true, + "license": "MIT" }, "node_modules/@webassemblyjs/helper-buffer": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.12.1.tgz", - "integrity": "sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==", - "dev": true + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz", + "integrity": "sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==", + "dev": true, + "license": "MIT" }, "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==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz", + "integrity": "sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==", "dev": true, + "license": "MIT", "dependencies": { - "@webassemblyjs/floating-point-hex-parser": "1.11.6", - "@webassemblyjs/helper-api-error": "1.11.6", + "@webassemblyjs/floating-point-hex-parser": "1.13.2", + "@webassemblyjs/helper-api-error": "1.13.2", "@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 + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz", + "integrity": "sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==", + "dev": true, + "license": "MIT" }, "node_modules/@webassemblyjs/helper-wasm-section": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.12.1.tgz", - "integrity": "sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz", + "integrity": "sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==", "dev": true, + "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-buffer": "1.12.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/wasm-gen": "1.12.1" + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/wasm-gen": "1.14.1" } }, "node_modules/@webassemblyjs/ieee754": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", - "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz", + "integrity": "sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==", "dev": true, + "license": "MIT", "dependencies": { "@xtuc/ieee754": "^1.2.0" } }, "node_modules/@webassemblyjs/leb128": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", - "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.13.2.tgz", + "integrity": "sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==", "dev": true, + "license": "Apache-2.0", "dependencies": { "@xtuc/long": "4.2.2" } }, "node_modules/@webassemblyjs/utf8": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", - "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==", - "dev": true + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.13.2.tgz", + "integrity": "sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==", + "dev": true, + "license": "MIT" }, "node_modules/@webassemblyjs/wasm-edit": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.12.1.tgz", - "integrity": "sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz", + "integrity": "sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==", "dev": true, + "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-buffer": "1.12.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/helper-wasm-section": "1.12.1", - "@webassemblyjs/wasm-gen": "1.12.1", - "@webassemblyjs/wasm-opt": "1.12.1", - "@webassemblyjs/wasm-parser": "1.12.1", - "@webassemblyjs/wast-printer": "1.12.1" + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/helper-wasm-section": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-opt": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1", + "@webassemblyjs/wast-printer": "1.14.1" } }, "node_modules/@webassemblyjs/wasm-gen": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.12.1.tgz", - "integrity": "sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz", + "integrity": "sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==", "dev": true, + "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/ieee754": "1.11.6", - "@webassemblyjs/leb128": "1.11.6", - "@webassemblyjs/utf8": "1.11.6" + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" } }, "node_modules/@webassemblyjs/wasm-opt": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.12.1.tgz", - "integrity": "sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz", + "integrity": "sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==", "dev": true, + "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-buffer": "1.12.1", - "@webassemblyjs/wasm-gen": "1.12.1", - "@webassemblyjs/wasm-parser": "1.12.1" + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1" } }, "node_modules/@webassemblyjs/wasm-parser": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.12.1.tgz", - "integrity": "sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz", + "integrity": "sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==", "dev": true, + "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-api-error": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/ieee754": "1.11.6", - "@webassemblyjs/leb128": "1.11.6", - "@webassemblyjs/utf8": "1.11.6" + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-api-error": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" } }, "node_modules/@webassemblyjs/wast-printer": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.12.1.tgz", - "integrity": "sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz", + "integrity": "sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==", "dev": true, + "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/ast": "1.14.1", "@xtuc/long": "4.2.2" } }, @@ -5366,13 +6105,15 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", - "dev": true + "dev": true, + "license": "BSD-3-Clause" }, "node_modules/@xtuc/long": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", - "dev": true + "dev": true, + "license": "Apache-2.0" }, "node_modules/@yarnpkg/lockfile": { "version": "1.1.0", @@ -5381,13 +6122,13 @@ "dev": true }, "node_modules/abbrev": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-2.0.0.tgz", - "integrity": "sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-3.0.0.tgz", + "integrity": "sha512-+/kfrslGQ7TNV2ecmQwMJj/B65g5KVq1/L3SGVZ3tCYGqlzFuFCGBZJtMP99wH3NpEUyAjn0zPdPUg0D+DwrOA==", "dev": true, "license": "ISC", "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/accepts": { @@ -5404,10 +6145,11 @@ } }, "node_modules/acorn": { - "version": "8.11.3", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", - "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", + "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", "dev": true, + "license": "MIT", "bin": { "acorn": "bin/acorn" }, @@ -5415,16 +6157,6 @@ "node": ">=0.4.0" } }, - "node_modules/acorn-import-attributes": { - "version": "1.9.5", - "resolved": "https://registry.npmjs.org/acorn-import-attributes/-/acorn-import-attributes-1.9.5.tgz", - "integrity": "sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "acorn": "^8" - } - }, "node_modules/adjust-sourcemap-loader": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-4.0.0.tgz", @@ -5453,32 +6185,15 @@ } }, "node_modules/agent-base": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", - "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.3.tgz", + "integrity": "sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==", "dev": true, "license": "MIT", - "dependencies": { - "debug": "^4.3.4" - }, "engines": { "node": ">= 14" } }, - "node_modules/aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "dev": true, - "license": "MIT", - "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/ajv": { "version": "8.12.0", "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", @@ -5591,6 +6306,7 @@ "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } @@ -5808,10 +6524,11 @@ } }, "node_modules/babel-loader": { - "version": "9.1.3", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-9.1.3.tgz", - "integrity": "sha512-xG3ST4DglodGf8qSwv0MdeWLhrDsw/32QMdTO5T1ZIp9gQur0HkCyFs7Awskr10JKXFXwpAhiCuYX5oGXnRGbw==", + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-9.2.1.tgz", + "integrity": "sha512-fqe8naHt46e0yIdkjUZYqddSXfej3AHajX+CSO5X7oy0EmPc6o5Xh+RClNoHjnieWz9AW4kZxW9yyFMhVB1QLA==", "dev": true, + "license": "MIT", "dependencies": { "find-cache-dir": "^4.0.0", "schema-utils": "^4.0.0" @@ -5825,14 +6542,14 @@ } }, "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.4.11", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.11.tgz", - "integrity": "sha512-sMEJ27L0gRHShOh5G54uAAPaiCOygY/5ratXuiyb2G46FmlSpc9eFCzYVyDiPxfNbwzA7mYahmjQc5q+CZQ09Q==", + "version": "0.4.12", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.12.tgz", + "integrity": "sha512-CPWT6BwvhrTO2d8QVorhTCQw9Y43zOu7G9HigcfxvepOU6b8o3tcWad6oVgZIsZCTt42FFv97aA7ZJsbM4+8og==", "dev": true, "license": "MIT", "dependencies": { "@babel/compat-data": "^7.22.6", - "@babel/helper-define-polyfill-provider": "^0.6.2", + "@babel/helper-define-polyfill-provider": "^0.6.3", "semver": "^6.3.1" }, "peerDependencies": { @@ -5864,13 +6581,13 @@ } }, "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.2.tgz", - "integrity": "sha512-2R25rQZWP63nGwaAswvDazbPXfrM3HwVoBXK6HcqeKrSrL/JqcC/rDcf95l4r7LXLyxDXc8uQDa064GubtCABg==", + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.3.tgz", + "integrity": "sha512-LiWSbl4CRSIa5x/JAU6jZiG9eit9w6mz+yVMFwDE83LAWvt0AfGBoZ7HS/mkhrKuh2ZlzfVZYKoLjXdqw6Yt7Q==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.6.2" + "@babel/helper-define-polyfill-provider": "^0.6.3" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" @@ -5918,6 +6635,26 @@ "dev": true, "license": "MIT" }, + "node_modules/beasties": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/beasties/-/beasties-0.2.0.tgz", + "integrity": "sha512-Ljqskqx/tbZagIglYoJIMzH5zgssyp+in9+9sAyh15N22AornBeIDnb8EZ6Rk+6ShfMxd92uO3gfpT0NtZbpow==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "css-select": "^5.1.0", + "css-what": "^6.1.0", + "dom-serializer": "^2.0.0", + "domhandler": "^5.0.3", + "htmlparser2": "^9.1.0", + "picocolors": "^1.1.1", + "postcss": "^8.4.49", + "postcss-media-query-parser": "^0.2.3" + }, + "engines": { + "node": ">=14.0.0" + } + }, "node_modules/big.js": { "version": "5.2.2", "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", @@ -5991,9 +6728,9 @@ "dev": true }, "node_modules/bonjour-service": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.2.1.tgz", - "integrity": "sha512-oSzCS2zV14bh2kji6vNe7vrpJYCHGvcZnlffFQ1MEoX/WOeQ/teD8SYWKR942OI3INjq8OMNJlbPK5LLLUxFDw==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.3.0.tgz", + "integrity": "sha512-3YuAUiSkWykd+2Azjgyxei8OWf8thdn8AITIog2M4UICzoqfjlqr64WIjEXZllf/W6vK1goqleSR6brGomxQqA==", "dev": true, "license": "MIT", "dependencies": { @@ -6032,9 +6769,9 @@ } }, "node_modules/browserslist": { - "version": "4.23.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.3.tgz", - "integrity": "sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA==", + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.4.tgz", + "integrity": "sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==", "dev": true, "funding": [ { @@ -6052,10 +6789,10 @@ ], "license": "MIT", "dependencies": { - "caniuse-lite": "^1.0.30001646", - "electron-to-chromium": "^1.5.4", - "node-releases": "^2.0.18", - "update-browserslist-db": "^1.1.0" + "caniuse-lite": "^1.0.30001688", + "electron-to-chromium": "^1.5.73", + "node-releases": "^2.0.19", + "update-browserslist-db": "^1.1.1" }, "bin": { "browserslist": "cli.js" @@ -6094,19 +6831,6 @@ "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", "dev": true }, - "node_modules/builtin-modules": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", - "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/bundle-name": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-4.1.0.tgz", @@ -6133,13 +6857,13 @@ } }, "node_modules/cacache": { - "version": "18.0.4", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-18.0.4.tgz", - "integrity": "sha512-B+L5iIa9mgcjLbliir2th36yEwPftrzteHYujzsx3dFP/31GCHcIeS8f5MGd80odLOjaOvSpU3EEAmRQptkxLQ==", + "version": "19.0.1", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-19.0.1.tgz", + "integrity": "sha512-hdsUxulXCi5STId78vRVYEtDAjq99ICAUktLTeTYsLoTE6Z8dS0c8pWNCxwdrk9YfJeobDZc2Y186hD/5ZQgFQ==", "dev": true, "license": "ISC", "dependencies": { - "@npmcli/fs": "^3.1.0", + "@npmcli/fs": "^4.0.0", "fs-minipass": "^3.0.0", "glob": "^10.2.2", "lru-cache": "^10.0.1", @@ -6147,13 +6871,13 @@ "minipass-collect": "^2.0.1", "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" + "p-map": "^7.0.2", + "ssri": "^12.0.0", + "tar": "^7.4.3", + "unique-filename": "^4.0.0" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/cacache/node_modules/brace-expansion": { @@ -6166,6 +6890,16 @@ "balanced-match": "^1.0.0" } }, + "node_modules/cacache/node_modules/chownr": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-3.0.0.tgz", + "integrity": "sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==", + "dev": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=18" + } + }, "node_modules/cacache/node_modules/glob": { "version": "10.4.5", "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", @@ -6210,6 +6944,50 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/cacache/node_modules/mkdirp": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-3.0.1.tgz", + "integrity": "sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==", + "dev": true, + "license": "MIT", + "bin": { + "mkdirp": "dist/cjs/src/bin.js" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/cacache/node_modules/tar": { + "version": "7.4.3", + "resolved": "https://registry.npmjs.org/tar/-/tar-7.4.3.tgz", + "integrity": "sha512-5S7Va8hKfV7W5U6g3aYxXmlPoZVAwUMy9AOKyF2fVuZa2UD3qZjg578OrLRt8PcNN1PleVaL/5/yYATNL0ICUw==", + "dev": true, + "license": "ISC", + "dependencies": { + "@isaacs/fs-minipass": "^4.0.0", + "chownr": "^3.0.0", + "minipass": "^7.1.2", + "minizlib": "^3.0.1", + "mkdirp": "^3.0.1", + "yallist": "^5.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/cacache/node_modules/yallist": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-5.0.0.tgz", + "integrity": "sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==", + "dev": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=18" + } + }, "node_modules/call-bind": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", @@ -6239,9 +7017,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001660", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001660.tgz", - "integrity": "sha512-GacvNTTuATm26qC74pt+ad1fW15mlQ/zuTzzY1ZoIzECTP8HURDfF43kNxPgf7H1jmelCBQTTbBNxdSXOA7Bqg==", + "version": "1.0.30001695", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001695.tgz", + "integrity": "sha512-vHyLade6wTgI2u1ec3WQBxv+2BrTERV28UXQu9LO6lZ9pYeMk34vjXFLOxo1A4UBA8XTL4njRQZdno/yYaSmWw==", "dev": true, "funding": [ { @@ -6323,16 +7101,6 @@ "node": ">=6.0" } }, - "node_modules/clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, "node_modules/cli-cursor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", @@ -6558,7 +7326,8 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-3.0.0.tgz", "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/commondir": { "version": "1.0.1", @@ -6580,34 +7349,24 @@ } }, "node_modules/compression": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", - "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.5.tgz", + "integrity": "sha512-bQJ0YRck5ak3LgtnpKkiabX5pNF7tMUh1BSy2ZBOTh0Dim0BUu6aPPwByIns6/A5Prh8PufSPerMDUklpzes2Q==", "dev": true, "license": "MIT", "dependencies": { - "accepts": "~1.3.5", - "bytes": "3.0.0", - "compressible": "~2.0.16", + "bytes": "3.1.2", + "compressible": "~2.0.18", "debug": "2.6.9", + "negotiator": "~0.6.4", "on-headers": "~1.0.2", - "safe-buffer": "5.1.2", + "safe-buffer": "5.2.1", "vary": "~1.1.2" }, "engines": { "node": ">= 0.8.0" } }, - "node_modules/compression/node_modules/bytes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", - "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, "node_modules/compression/node_modules/debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", @@ -6625,12 +7384,15 @@ "dev": true, "license": "MIT" }, - "node_modules/compression/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "node_modules/compression/node_modules/negotiator": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.4.tgz", + "integrity": "sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==", "dev": true, - "license": "MIT" + "license": "MIT", + "engines": { + "node": ">= 0.6" + } }, "node_modules/concat-map": { "version": "0.0.1", @@ -6773,13 +7535,13 @@ } }, "node_modules/core-js-compat": { - "version": "3.38.1", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.38.1.tgz", - "integrity": "sha512-JRH6gfXxGmrzF3tZ57lFx97YARxCXPaMzPo6jELZhv88pBH5VXpQ+y0znKGlFnzuaihqhLbefxSJxWJMPtfDzw==", + "version": "3.40.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.40.0.tgz", + "integrity": "sha512-0XEDpr5y5mijvw8Lbc6E5AkjrHfp7eEoPlu36SWeAbcL8fn1G1ANe8DBlo2XoNN89oVpxWwOjYIPVzR4ZvsKCQ==", "dev": true, "license": "MIT", "dependencies": { - "browserslist": "^4.23.3" + "browserslist": "^4.24.3" }, "funding": { "type": "opencollective", @@ -6789,171 +7551,79 @@ "node_modules/core-util-is": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/cors": { - "version": "2.8.5", - "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", - "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", - "dev": true, - "dependencies": { - "object-assign": "^4", - "vary": "^1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/cose-base": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/cose-base/-/cose-base-2.2.0.tgz", - "integrity": "sha512-AzlgcsCbUMymkADOJtQm3wO9S3ltPfYOFD5033keQn9NJzIbtnZj+UdBJe7DYml/8TdbtHJW3j58SOnKhWY/5g==", - "dependencies": { - "layout-base": "^2.0.0" - } - }, - "node_modules/cosmiconfig": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz", - "integrity": "sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==", - "dev": true, - "dependencies": { - "env-paths": "^2.2.1", - "import-fresh": "^3.3.0", - "js-yaml": "^4.1.0", - "parse-json": "^5.2.0" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/d-fischer" - }, - "peerDependencies": { - "typescript": ">=4.9.5" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/cosmiconfig/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "node_modules/cosmiconfig/node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/critters": { - "version": "0.0.24", - "resolved": "https://registry.npmjs.org/critters/-/critters-0.0.24.tgz", - "integrity": "sha512-Oyqew0FGM0wYUSNqR0L6AteO5MpMoUU0rhKRieXeiKs+PmRTxiJMyaunYB2KF6fQ3dzChXKCpbFOEJx3OQ1v/Q==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "chalk": "^4.1.0", - "css-select": "^5.1.0", - "dom-serializer": "^2.0.0", - "domhandler": "^5.0.2", - "htmlparser2": "^8.0.2", - "postcss": "^8.4.23", - "postcss-media-query-parser": "^0.2.3" - } - }, - "node_modules/critters/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/critters/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true, + "license": "MIT" }, - "node_modules/critters/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", "dev": true, - "license": "MIT", "dependencies": { - "color-name": "~1.1.4" + "object-assign": "^4", + "vary": "^1" }, "engines": { - "node": ">=7.0.0" + "node": ">= 0.10" } }, - "node_modules/critters/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, - "license": "MIT" + "node_modules/cose-base": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/cose-base/-/cose-base-2.2.0.tgz", + "integrity": "sha512-AzlgcsCbUMymkADOJtQm3wO9S3ltPfYOFD5033keQn9NJzIbtnZj+UdBJe7DYml/8TdbtHJW3j58SOnKhWY/5g==", + "dependencies": { + "layout-base": "^2.0.0" + } }, - "node_modules/critters/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "node_modules/cosmiconfig": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz", + "integrity": "sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==", "dev": true, - "license": "MIT", + "dependencies": { + "env-paths": "^2.2.1", + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0" + }, "engines": { - "node": ">=8" + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + }, + "peerDependencies": { + "typescript": ">=4.9.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/critters/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/cosmiconfig/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/cosmiconfig/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dev": true, - "license": "MIT", "dependencies": { - "has-flag": "^4.0.0" + "argparse": "^2.0.1" }, - "engines": { - "node": ">=8" + "bin": { + "js-yaml": "bin/js-yaml.js" } }, "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", "dev": true, "license": "MIT", "dependencies": { @@ -7173,16 +7843,6 @@ } } }, - "node_modules/deepmerge": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", - "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/default-browser": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-5.2.1.tgz", @@ -7213,19 +7873,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/default-gateway": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", - "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "execa": "^5.0.0" - }, - "engines": { - "node": ">= 10" - } - }, "node_modules/defaults": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", @@ -7320,6 +7967,7 @@ "integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==", "dev": true, "license": "Apache-2.0", + "optional": true, "engines": { "node": ">=8" } @@ -7407,9 +8055,9 @@ } }, "node_modules/domutils": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", - "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz", + "integrity": "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==", "dev": true, "license": "BSD-2-Clause", "dependencies": { @@ -7435,9 +8083,9 @@ "dev": true }, "node_modules/electron-to-chromium": { - "version": "1.5.22", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.22.tgz", - "integrity": "sha512-tKYm5YHPU1djz0O+CGJ+oJIvimtsCcwR2Z9w7Skh08lUdyzXY5djods3q+z2JkWdb7tCcmM//eVavSRAiaPRNg==", + "version": "1.5.87", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.87.tgz", + "integrity": "sha512-mPFwmEWmRivw2F8x3w3l2m6htAUN97Gy0kwpO++2m9iT1Gt8RCFVUfv9U/sIbHJ6rY4P6/ooqFL/eL7ock+pPg==", "dev": true, "license": "ISC" }, @@ -7740,9 +8388,9 @@ } }, "node_modules/esbuild": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.23.0.tgz", - "integrity": "sha512-1lvV17H2bMYda/WaFb2jLPeHU3zml2k4/yagNMG8Q/YtfMjCwEUZa2eXXMgZTVSL5q1n4H7sQ0X6CdJDqqeCFA==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.24.2.tgz", + "integrity": "sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA==", "dev": true, "hasInstallScript": true, "license": "MIT", @@ -7753,36 +8401,37 @@ "node": ">=18" }, "optionalDependencies": { - "@esbuild/aix-ppc64": "0.23.0", - "@esbuild/android-arm": "0.23.0", - "@esbuild/android-arm64": "0.23.0", - "@esbuild/android-x64": "0.23.0", - "@esbuild/darwin-arm64": "0.23.0", - "@esbuild/darwin-x64": "0.23.0", - "@esbuild/freebsd-arm64": "0.23.0", - "@esbuild/freebsd-x64": "0.23.0", - "@esbuild/linux-arm": "0.23.0", - "@esbuild/linux-arm64": "0.23.0", - "@esbuild/linux-ia32": "0.23.0", - "@esbuild/linux-loong64": "0.23.0", - "@esbuild/linux-mips64el": "0.23.0", - "@esbuild/linux-ppc64": "0.23.0", - "@esbuild/linux-riscv64": "0.23.0", - "@esbuild/linux-s390x": "0.23.0", - "@esbuild/linux-x64": "0.23.0", - "@esbuild/netbsd-x64": "0.23.0", - "@esbuild/openbsd-arm64": "0.23.0", - "@esbuild/openbsd-x64": "0.23.0", - "@esbuild/sunos-x64": "0.23.0", - "@esbuild/win32-arm64": "0.23.0", - "@esbuild/win32-ia32": "0.23.0", - "@esbuild/win32-x64": "0.23.0" + "@esbuild/aix-ppc64": "0.24.2", + "@esbuild/android-arm": "0.24.2", + "@esbuild/android-arm64": "0.24.2", + "@esbuild/android-x64": "0.24.2", + "@esbuild/darwin-arm64": "0.24.2", + "@esbuild/darwin-x64": "0.24.2", + "@esbuild/freebsd-arm64": "0.24.2", + "@esbuild/freebsd-x64": "0.24.2", + "@esbuild/linux-arm": "0.24.2", + "@esbuild/linux-arm64": "0.24.2", + "@esbuild/linux-ia32": "0.24.2", + "@esbuild/linux-loong64": "0.24.2", + "@esbuild/linux-mips64el": "0.24.2", + "@esbuild/linux-ppc64": "0.24.2", + "@esbuild/linux-riscv64": "0.24.2", + "@esbuild/linux-s390x": "0.24.2", + "@esbuild/linux-x64": "0.24.2", + "@esbuild/netbsd-arm64": "0.24.2", + "@esbuild/netbsd-x64": "0.24.2", + "@esbuild/openbsd-arm64": "0.24.2", + "@esbuild/openbsd-x64": "0.24.2", + "@esbuild/sunos-x64": "0.24.2", + "@esbuild/win32-arm64": "0.24.2", + "@esbuild/win32-ia32": "0.24.2", + "@esbuild/win32-x64": "0.24.2" } }, "node_modules/esbuild-wasm": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/esbuild-wasm/-/esbuild-wasm-0.23.0.tgz", - "integrity": "sha512-6jP8UmWy6R6TUUV8bMuC3ZyZ6lZKI56x0tkxyCIqWwRRJ/DgeQKneh/Oid5EoGoPFLrGNkz47ZEtWAYuiY/u9g==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/esbuild-wasm/-/esbuild-wasm-0.24.2.tgz", + "integrity": "sha512-03/7Z1gD+ohDnScFztvI4XddTAbKVmMEzCvvkBpQdWKEXJ+73dTyeNrmdxP1Q0zpDMFjzUJwtK4rLjqwiHbzkw==", "dev": true, "license": "MIT", "bin": { @@ -7793,10 +8442,11 @@ } }, "node_modules/escalade": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", - "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } @@ -7901,30 +8551,6 @@ "node": ">=0.8.x" } }, - "node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dev": true, - "license": "MIT", - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, "node_modules/exponential-backoff": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.1.tgz", @@ -7933,9 +8559,9 @@ "license": "Apache-2.0" }, "node_modules/express": { - "version": "4.21.1", - "resolved": "https://registry.npmjs.org/express/-/express-4.21.1.tgz", - "integrity": "sha512-YSFlK1Ee0/GC8QaO91tHcDxJiE/X4FbpAyQWkxAvG6AXCuR65YzK8ua6D9hvi/TzUfZMpc+BwuM1IPw8fmQBiQ==", + "version": "4.21.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.21.2.tgz", + "integrity": "sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==", "dev": true, "license": "MIT", "dependencies": { @@ -7958,7 +8584,7 @@ "methods": "~1.1.2", "on-finished": "2.4.1", "parseurl": "~1.3.3", - "path-to-regexp": "0.1.10", + "path-to-regexp": "0.1.12", "proxy-addr": "~2.0.7", "qs": "6.13.0", "range-parser": "~1.2.1", @@ -7973,784 +8599,534 @@ }, "engines": { "node": ">= 0.10.0" - } - }, - "node_modules/express/node_modules/cookie": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz", - "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/express/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/express/node_modules/encodeurl": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", - "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/express/node_modules/finalhandler": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz", - "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "2.6.9", - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "statuses": "2.0.1", - "unpipe": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/express/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true, - "license": "MIT" - }, - "node_modules/express/node_modules/statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "dev": true - }, - "node_modules/external-editor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", - "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", - "dev": true, - "license": "MIT", - "dependencies": { - "chardet": "^0.7.0", - "iconv-lite": "^0.4.24", - "tmp": "^0.0.33" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "node_modules/fast-glob": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", - "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", - "dev": true, - "license": "MIT", - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "node_modules/fast-uri": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.3.tgz", - "integrity": "sha512-aLrHthzCjH5He4Z2H9YZ+v6Ujb9ocRuW6ZzkJQOrTxleEijANq4v1TsaPaVG1PZcuurEzrLcWRyYBYXD5cEiaw==", - "dev": true, - "license": "BSD-3-Clause" - }, - "node_modules/fastq": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", - "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", - "dev": true, - "license": "ISC", - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/faye-websocket": { - "version": "0.11.4", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", - "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "websocket-driver": ">=0.5.1" }, - "engines": { - "node": ">=0.8.0" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" } - }, - "node_modules/filename-reserved-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz", - "integrity": "sha512-lc1bnsSr4L4Bdif8Xb/qrtokGbq5zlsms/CYH8PP+WtCkGNF65DPiQY8vG3SakEdRn8Dlnm+gW/qWKKjS5sZzQ==", + }, + "node_modules/express/node_modules/cookie": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz", + "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==", "dev": true, + "license": "MIT", "engines": { - "node": ">=4" + "node": ">= 0.6" } }, - "node_modules/filenamify": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/filenamify/-/filenamify-4.3.0.tgz", - "integrity": "sha512-hcFKyUG57yWGAzu1CMt/dPzYZuv+jAJUT85bL8mrXvNe6hWj6yEHEc4EdcgiA6Z3oi1/9wXJdZPXF2dZNgwgOg==", + "node_modules/express/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, + "license": "MIT", "dependencies": { - "filename-reserved-regex": "^2.0.0", - "strip-outer": "^1.0.1", - "trim-repeated": "^1.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "ms": "2.0.0" } }, - "node_modules/fill-range": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", - "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "node_modules/express/node_modules/encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", "dev": true, "license": "MIT", - "dependencies": { - "to-regex-range": "^5.0.1" - }, "engines": { - "node": ">=8" + "node": ">= 0.8" } }, - "node_modules/finalhandler": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", - "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "node_modules/express/node_modules/finalhandler": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz", + "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==", "dev": true, + "license": "MIT", "dependencies": { "debug": "2.6.9", - "encodeurl": "~1.0.2", + "encodeurl": "~2.0.0", "escape-html": "~1.0.3", - "on-finished": "~2.3.0", + "on-finished": "2.4.1", "parseurl": "~1.3.3", - "statuses": "~1.5.0", + "statuses": "2.0.1", "unpipe": "~1.0.0" }, "engines": { "node": ">= 0.8" } }, - "node_modules/finalhandler/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/finalhandler/node_modules/ms": { + "node_modules/express/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true + "dev": true, + "license": "MIT" }, - "node_modules/finalhandler/node_modules/on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==", + "node_modules/express/node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", "dev": true, - "dependencies": { - "ee-first": "1.1.1" - }, + "license": "MIT", "engines": { "node": ">= 0.8" } }, - "node_modules/find-cache-dir": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-4.0.0.tgz", - "integrity": "sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg==", + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, + "node_modules/external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", "dev": true, + "license": "MIT", "dependencies": { - "common-path-prefix": "^3.0.0", - "pkg-dir": "^7.0.0" + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" }, "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=4" } }, - "node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", "dev": true, + "license": "MIT", "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.8" }, "engines": { - "node": ">=8" - } - }, - "node_modules/flat": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", - "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", - "dev": true, - "license": "BSD-3-Clause", - "bin": { - "flat": "cli.js" + "node": ">=8.6.0" } }, - "node_modules/flatted": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", - "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", "dev": true }, - "node_modules/follow-redirects": { - "version": "1.15.6", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", - "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", + "node_modules/fast-uri": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.6.tgz", + "integrity": "sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==", "dev": true, "funding": [ { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" } ], - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } - } - }, - "node_modules/for-each": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", - "dev": true, - "dependencies": { - "is-callable": "^1.1.3" - } - }, - "node_modules/foreground-child": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", - "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", - "dev": true, - "license": "ISC", - "dependencies": { - "cross-spawn": "^7.0.0", - "signal-exit": "^4.0.1" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } + "license": "BSD-3-Clause" }, - "node_modules/foreground-child/node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "node_modules/fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", "dev": true, "license": "ISC", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fraction.js": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", - "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", - "dev": true, - "license": "MIT", - "engines": { - "node": "*" - }, - "funding": { - "type": "patreon", - "url": "https://github.com/sponsors/rawify" - } - }, - "node_modules/fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "dev": true, "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - }, - "engines": { - "node": ">=6 <7 || >=8" + "reusify": "^1.0.4" } }, - "node_modules/fs-minipass": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.3.tgz", - "integrity": "sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==", + "node_modules/faye-websocket": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", + "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", "dev": true, - "license": "ISC", + "license": "Apache-2.0", "dependencies": { - "minipass": "^7.0.3" + "websocket-driver": ">=0.5.1" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">=0.8.0" } }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true - }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "node_modules/filename-reserved-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz", + "integrity": "sha512-lc1bnsSr4L4Bdif8Xb/qrtokGbq5zlsms/CYH8PP+WtCkGNF65DPiQY8vG3SakEdRn8Dlnm+gW/qWKKjS5sZzQ==", "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=4" } }, - "node_modules/function.prototype.name": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", - "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", + "node_modules/filenamify": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/filenamify/-/filenamify-4.3.0.tgz", + "integrity": "sha512-hcFKyUG57yWGAzu1CMt/dPzYZuv+jAJUT85bL8mrXvNe6hWj6yEHEc4EdcgiA6Z3oi1/9wXJdZPXF2dZNgwgOg==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "functions-have-names": "^1.2.3" + "filename-reserved-regex": "^2.0.0", + "strip-outer": "^1.0.1", + "trim-repeated": "^1.0.0" }, "engines": { - "node": ">= 0.4" + "node": ">=8" }, "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/functions-have-names": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", - "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, "engines": { - "node": ">=6.9.0" + "node": ">=8" } }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "node_modules/finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", "dev": true, + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" + }, "engines": { - "node": "6.* || 8.* || >= 10.*" + "node": ">= 0.8" } }, - "node_modules/get-east-asian-width": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.2.0.tgz", - "integrity": "sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA==", + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "dependencies": { + "ms": "2.0.0" } }, - "node_modules/get-intrinsic": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", - "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/finalhandler/node_modules/on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==", "dev": true, "dependencies": { - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0" + "ee-first": "1.1.1" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">= 0.8" } }, - "node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "node_modules/find-cache-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-4.0.0.tgz", + "integrity": "sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg==", "dev": true, "license": "MIT", + "dependencies": { + "common-path-prefix": "^3.0.0", + "pkg-dir": "^7.0.0" + }, "engines": { - "node": ">=10" + "node": ">=14.16" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/get-symbol-description": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", - "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", + "node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, "dependencies": { - "call-bind": "^1.0.5", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4" + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=8" } }, - "node_modules/gh-pages": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/gh-pages/-/gh-pages-3.2.3.tgz", - "integrity": "sha512-jA1PbapQ1jqzacECfjUaO9gV8uBgU6XNMV0oXLtfCX3haGLe5Atq8BxlrADhbD6/UdG9j6tZLWAkAybndOXTJg==", + "node_modules/flat": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", "dev": true, - "dependencies": { - "async": "^2.6.1", - "commander": "^2.18.0", - "email-addresses": "^3.0.1", - "filenamify": "^4.3.0", - "find-cache-dir": "^3.3.1", - "fs-extra": "^8.1.0", - "globby": "^6.1.0" - }, + "license": "BSD-3-Clause", "bin": { - "gh-pages": "bin/gh-pages.js", - "gh-pages-clean": "bin/gh-pages-clean.js" - }, - "engines": { - "node": ">=10" + "flat": "cli.js" } }, - "node_modules/gh-pages/node_modules/find-cache-dir": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", - "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "node_modules/flatted": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", + "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", + "dev": true + }, + "node_modules/follow-redirects": { + "version": "1.15.6", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", + "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", "dev": true, - "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - }, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], "engines": { - "node": ">=8" + "node": ">=4.0" }, - "funding": { - "url": "https://github.com/avajs/find-cache-dir?sponsor=1" + "peerDependenciesMeta": { + "debug": { + "optional": true + } } }, - "node_modules/gh-pages/node_modules/globby": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", - "integrity": "sha512-KVbFv2TQtbzCoxAnfD6JcHZTYCzyliEaaeM/gH8qQdkKr5s0OP9scEgvdcngyk7AVdY6YVW/TJHd+lQ/Df3Daw==", + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", "dev": true, "dependencies": { - "array-union": "^1.0.1", - "glob": "^7.0.3", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" + "is-callable": "^1.1.3" } }, - "node_modules/gh-pages/node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "node_modules/foreground-child": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", + "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", "dev": true, + "license": "ISC", "dependencies": { - "semver": "^6.0.0" + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/foreground-child/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "license": "ISC", "engines": { - "node": ">=8" + "node": ">=14" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/gh-pages/node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", "dev": true, + "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">= 0.6" } }, - "node_modules/gh-pages/node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "node_modules/fraction.js": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", + "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", "dev": true, - "dependencies": { - "find-up": "^4.0.0" - }, + "license": "MIT", "engines": { - "node": ">=8" + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://github.com/sponsors/rawify" } }, - "node_modules/gh-pages/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", "dev": true, - "bin": { - "semver": "bin/semver.js" + "license": "MIT", + "engines": { + "node": ">= 0.6" } }, - "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", "dev": true, "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" + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" }, "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": ">=6 <7 || >=8" } }, - "node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "node_modules/fs-minipass": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.3.tgz", + "integrity": "sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==", "dev": true, + "license": "ISC", "dependencies": { - "is-glob": "^4.0.1" + "minipass": "^7.0.3" }, "engines": { - "node": ">= 6" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/glob-to-regexp": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", - "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", "dev": true }, - "node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "dev": true, - "license": "MIT", + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": ">=4" + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, - "node_modules/globalthis": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", - "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", "dev": true, - "dependencies": { - "define-properties": "^1.2.1", - "gopd": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/globby": { - "version": "14.0.2", - "resolved": "https://registry.npmjs.org/globby/-/globby-14.0.2.tgz", - "integrity": "sha512-s3Fq41ZVh7vbbe2PN3nrW7yC7U7MFVc5c98/iTl9c2GawNMKx/J648KQRW6WKkuU8GIbbh2IXfIRQjOZnXcTnw==", + "node_modules/function.prototype.name": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", + "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", "dev": true, - "license": "MIT", "dependencies": { - "@sindresorhus/merge-streams": "^2.1.0", - "fast-glob": "^3.3.2", - "ignore": "^5.2.4", - "path-type": "^5.0.0", - "slash": "^5.1.0", - "unicorn-magic": "^0.1.0" + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "functions-have-names": "^1.2.3" }, "engines": { - "node": ">=18" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/gopd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", "dev": true, - "dependencies": { - "get-intrinsic": "^1.1.3" - }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true - }, - "node_modules/handle-thing": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", - "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", "dev": true, - "license": "MIT" + "engines": { + "node": ">=6.9.0" + } }, - "node_modules/has-bigints": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", - "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": "6.* || 8.* || >= 10.*" } }, - "node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "node_modules/get-east-asian-width": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.3.0.tgz", + "integrity": "sha512-vpeMIQKxczTD/0s2CdEWHcb0eeJe6TFjxb+J5xgX7hScxqrGuyjmv4c1D4A/gelKfyox0gJJwIHF+fLjeaM8kQ==", "dev": true, + "license": "MIT", "engines": { - "node": ">=4" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/has-property-descriptors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", - "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "node_modules/get-intrinsic": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", "dev": true, "dependencies": { - "es-define-property": "^1.0.0" + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/has-proto": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", - "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "node_modules/get-symbol-description": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", + "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", "dev": true, + "dependencies": { + "call-bind": "^1.0.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4" + }, "engines": { "node": ">= 0.4" }, @@ -8758,816 +9134,771 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "node_modules/gh-pages": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/gh-pages/-/gh-pages-3.2.3.tgz", + "integrity": "sha512-jA1PbapQ1jqzacECfjUaO9gV8uBgU6XNMV0oXLtfCX3haGLe5Atq8BxlrADhbD6/UdG9j6tZLWAkAybndOXTJg==", "dev": true, - "engines": { - "node": ">= 0.4" + "dependencies": { + "async": "^2.6.1", + "commander": "^2.18.0", + "email-addresses": "^3.0.1", + "filenamify": "^4.3.0", + "find-cache-dir": "^3.3.1", + "fs-extra": "^8.1.0", + "globby": "^6.1.0" + }, + "bin": { + "gh-pages": "bin/gh-pages.js", + "gh-pages-clean": "bin/gh-pages-clean.js" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=10" } }, - "node_modules/has-tostringtag": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", - "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "node_modules/gh-pages/node_modules/find-cache-dir": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", "dev": true, "dependencies": { - "has-symbols": "^1.0.3" + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" }, "engines": { - "node": ">= 0.4" + "node": ">=8" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/avajs/find-cache-dir?sponsor=1" } }, - "node_modules/hasown": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", - "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "node_modules/gh-pages/node_modules/globby": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", + "integrity": "sha512-KVbFv2TQtbzCoxAnfD6JcHZTYCzyliEaaeM/gH8qQdkKr5s0OP9scEgvdcngyk7AVdY6YVW/TJHd+lQ/Df3Daw==", "dev": true, "dependencies": { - "function-bind": "^1.1.2" + "array-union": "^1.0.1", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" }, "engines": { - "node": ">= 0.4" + "node": ">=0.10.0" } }, - "node_modules/hosted-git-info": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.2.tgz", - "integrity": "sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==", + "node_modules/gh-pages/node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", "dev": true, - "license": "ISC", "dependencies": { - "lru-cache": "^10.0.1" + "semver": "^6.0.0" }, "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/hosted-git-info/node_modules/lru-cache": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/hpack.js": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", - "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "inherits": "^2.0.1", - "obuf": "^1.0.0", - "readable-stream": "^2.0.1", - "wbuf": "^1.1.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/hpack.js/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "node_modules/gh-pages/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", "dev": true, - "license": "MIT", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/hpack.js/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true, - "license": "MIT" - }, - "node_modules/hpack.js/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "node_modules/gh-pages/node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", "dev": true, - "license": "MIT", "dependencies": { - "safe-buffer": "~5.1.0" + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/html-entities": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.5.2.tgz", - "integrity": "sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/mdevils" - }, - { - "type": "patreon", - "url": "https://patreon.com/mdevils" - } - ], - "license": "MIT" - }, - "node_modules/html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "dev": true - }, - "node_modules/htmlparser2": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz", - "integrity": "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==", + "node_modules/gh-pages/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, - "funding": [ - "https://github.com/fb55/htmlparser2?sponsor=1", - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ], - "license": "MIT", - "dependencies": { - "domelementtype": "^2.3.0", - "domhandler": "^5.0.3", - "domutils": "^3.0.1", - "entities": "^4.4.0" + "bin": { + "semver": "bin/semver.js" } }, - "node_modules/http-cache-semantics": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", - "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", - "dev": true, - "license": "BSD-2-Clause" - }, - "node_modules/http-deceiver": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", - "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==", - "dev": true, - "license": "MIT" - }, - "node_modules/http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "dev": true, "dependencies": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" + "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": ">= 0.8" + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/http-errors/node_modules/statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, "engines": { - "node": ">= 0.8" + "node": ">= 6" } }, - "node_modules/http-parser-js": { - "version": "0.5.8", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz", - "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==", - "dev": true, - "license": "MIT" + "node_modules/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "dev": true }, - "node_modules/http-proxy": { - "version": "1.18.1", - "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", - "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", "dev": true, - "dependencies": { - "eventemitter3": "^4.0.0", - "follow-redirects": "^1.0.0", - "requires-port": "^1.0.0" - }, + "license": "MIT", "engines": { - "node": ">=8.0.0" + "node": ">=4" } }, - "node_modules/http-proxy-agent": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", - "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", + "node_modules/globalthis": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", "dev": true, - "license": "MIT", "dependencies": { - "agent-base": "^7.1.0", - "debug": "^4.3.4" + "define-properties": "^1.2.1", + "gopd": "^1.0.1" }, "engines": { - "node": ">= 14" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/http-proxy-middleware": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-3.0.0.tgz", - "integrity": "sha512-36AV1fIaI2cWRzHo+rbcxhe3M3jUDCNzc4D5zRl57sEWRAxdXYtw7FSQKYY6PDKssiAKjLYypbssHk+xs/kMXw==", + "node_modules/globby": { + "version": "14.0.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-14.0.2.tgz", + "integrity": "sha512-s3Fq41ZVh7vbbe2PN3nrW7yC7U7MFVc5c98/iTl9c2GawNMKx/J648KQRW6WKkuU8GIbbh2IXfIRQjOZnXcTnw==", "dev": true, "license": "MIT", "dependencies": { - "@types/http-proxy": "^1.17.10", - "debug": "^4.3.4", - "http-proxy": "^1.18.1", - "is-glob": "^4.0.1", - "is-plain-obj": "^3.0.0", - "micromatch": "^4.0.5" + "@sindresorhus/merge-streams": "^2.1.0", + "fast-glob": "^3.3.2", + "ignore": "^5.2.4", + "path-type": "^5.0.0", + "slash": "^5.1.0", + "unicorn-magic": "^0.1.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/https-proxy-agent": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz", - "integrity": "sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==", + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", "dev": true, - "license": "MIT", "dependencies": { - "agent-base": "^7.0.2", - "debug": "4" + "get-intrinsic": "^1.1.3" }, - "engines": { - "node": ">= 14" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true + }, + "node_modules/handle-thing": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", + "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=10.17.0" + "license": "MIT" + }, + "node_modules/has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/hyperdyperid": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/hyperdyperid/-/hyperdyperid-1.2.0.tgz", - "integrity": "sha512-Y93lCzHYgGWdrJ66yIktxiaGULYc6oGiABxhcO5AufBeOyoIdZF7bIfLaOrbM0iGIOXQQgxxRrFEnb+Y6w1n4A==", + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "dev": true, - "license": "MIT", "engines": { - "node": ">=10.18" + "node": ">=4" } }, - "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", "dev": true, "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" + "es-define-property": "^1.0.0" }, - "engines": { - "node": ">=0.10.0" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/icss-utils": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", - "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", + "node_modules/has-proto": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", "dev": true, - "license": "ISC", "engines": { - "node": "^10 || ^12 || >= 14" + "node": ">= 0.4" }, - "peerDependencies": { - "postcss": "^8.1.0" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/ignore": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", - "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", "dev": true, - "license": "MIT", "engines": { - "node": ">= 4" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/ignore-walk": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-6.0.5.tgz", - "integrity": "sha512-VuuG0wCnjhnylG1ABXT3dAuIpTNDs/G8jlpmwXY03fXoXy/8ZK8/T+hMzt8L4WnrLCJgdybqgPagnF/f97cg3A==", + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", "dev": true, - "license": "ISC", "dependencies": { - "minimatch": "^9.0.0" + "has-symbols": "^1.0.3" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/ignore-walk/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", "dev": true, - "license": "MIT", "dependencies": { - "balanced-match": "^1.0.0" + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" } }, - "node_modules/ignore-walk/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "node_modules/hosted-git-info": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-8.0.2.tgz", + "integrity": "sha512-sYKnA7eGln5ov8T8gnYlkSOxFJvywzEx9BueN6xo/GKO8PGiI6uK6xx+DIGe45T3bdVjLAQDQW1aicT8z8JwQg==", "dev": true, "license": "ISC", "dependencies": { - "brace-expansion": "^2.0.1" + "lru-cache": "^10.0.1" }, "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": "^18.17.0 || >=20.5.0" } }, - "node_modules/image-size": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", - "integrity": "sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==", + "node_modules/hosted-git-info/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", "dev": true, - "optional": true, - "bin": { - "image-size": "bin/image-size.js" - }, - "engines": { - "node": ">=0.10.0" - } + "license": "ISC" }, - "node_modules/immutable": { - "version": "4.3.5", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.5.tgz", - "integrity": "sha512-8eabxkth9gZatlwl5TBuJnCsoTADlL6ftEr7A4qgdaTsPyreilDSnUk57SO+jfKcNtxPa22U5KK6DSeAYhpBJw==", - "dev": true + "node_modules/hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" + } }, - "node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "node_modules/hpack.js/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, + "license": "MIT", "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, - "node_modules/import-fresh/node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "node_modules/hpack.js/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", "dev": true, - "engines": { - "node": ">=4" + "license": "MIT" + }, + "node_modules/hpack.js/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" } }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, + "node_modules/htmlparser2": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-9.1.0.tgz", + "integrity": "sha512-5zfg6mHUoaer/97TxnGpxmbR7zJtPwIYFMZ/H5ucTlPZhKvtum05yiPK3Mgai3a0DyVxv7qYqoweaEd2nrYQzQ==", "dev": true, + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], "license": "MIT", - "engines": { - "node": ">=0.8.19" + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.1.0", + "entities": "^4.5.0" } }, - "node_modules/indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "node_modules/http-cache-semantics": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } + "license": "BSD-2-Clause" }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "node_modules/http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==", + "dev": true, + "license": "MIT" + }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", "dev": true, "dependencies": { - "once": "^1.3.0", - "wrappy": "1" + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" } }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "node_modules/ini": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.3.tgz", - "integrity": "sha512-X7rqawQBvfdjS10YU1y1YVreA3SsLrW9dX2CewP2EbBJM4ypVNLDkO5y04gejPwKIY9lR+7r9gn3rFPt/kmWFg==", + "node_modules/http-errors/node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", "dev": true, - "license": "ISC", "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">= 0.8" } }, - "node_modules/injection-js": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/injection-js/-/injection-js-2.4.0.tgz", - "integrity": "sha512-6jiJt0tCAo9zjHbcwLiPL+IuNe9SQ6a9g0PEzafThW3fOQi0mrmiJGBJvDD6tmhPh8cQHIQtCOrJuBfQME4kPA==", + "node_modules/http-parser-js": { + "version": "0.5.9", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.9.tgz", + "integrity": "sha512-n1XsPy3rXVxlqxVioEWdC+0+M+SQw0DpJynwtOPo1X+ZlvdzTLtDBIJJlDQTnwZIFJrZSzSGmIOUdP8tu+SgLw==", "dev": true, - "license": "MIT", - "dependencies": { - "tslib": "^2.0.0" - } + "license": "MIT" }, - "node_modules/internal-slot": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", - "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", + "node_modules/http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", "dev": true, "dependencies": { - "es-errors": "^1.3.0", - "hasown": "^2.0.0", - "side-channel": "^1.0.4" + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" }, "engines": { - "node": ">= 0.4" + "node": ">=8.0.0" } }, - "node_modules/ip-address": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-9.0.5.tgz", - "integrity": "sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==", + "node_modules/http-proxy-agent": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", + "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", "dev": true, "license": "MIT", "dependencies": { - "jsbn": "1.1.0", - "sprintf-js": "^1.1.3" + "agent-base": "^7.1.0", + "debug": "^4.3.4" }, "engines": { - "node": ">= 12" + "node": ">= 14" } }, - "node_modules/ipaddr.js": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.2.0.tgz", - "integrity": "sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA==", + "node_modules/http-proxy-middleware": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-3.0.3.tgz", + "integrity": "sha512-usY0HG5nyDUwtqpiZdETNbmKtw3QQ1jwYFZ9wi5iHzX2BcILwQKtYDJPo7XHTsu5Z0B2Hj3W9NNnbd+AjFWjqg==", "dev": true, "license": "MIT", - "engines": { - "node": ">= 10" - } - }, - "node_modules/is-array-buffer": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", - "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", - "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1" + "@types/http-proxy": "^1.17.15", + "debug": "^4.3.6", + "http-proxy": "^1.18.1", + "is-glob": "^4.0.3", + "is-plain-object": "^5.0.0", + "micromatch": "^4.0.8" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "dev": true - }, - "node_modules/is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "node_modules/http-proxy-middleware/node_modules/debug": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", "dev": true, + "license": "MIT", "dependencies": { - "has-bigints": "^1.0.1" + "ms": "^2.1.3" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "node_modules/http-proxy-middleware/node_modules/is-plain-object": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", "dev": true, - "dependencies": { - "binary-extensions": "^2.0.0" - }, + "license": "MIT", "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, - "node_modules/is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "node_modules/http-proxy-middleware/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } + "license": "MIT" }, - "node_modules/is-builtin-module": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.1.tgz", - "integrity": "sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==", + "node_modules/https-proxy-agent": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", + "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", "dev": true, "license": "MIT", "dependencies": { - "builtin-modules": "^3.3.0" + "agent-base": "^7.1.2", + "debug": "4" }, "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">= 14" } }, - "node_modules/is-callable": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "node_modules/hyperdyperid": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/hyperdyperid/-/hyperdyperid-1.2.0.tgz", + "integrity": "sha512-Y93lCzHYgGWdrJ66yIktxiaGULYc6oGiABxhcO5AufBeOyoIdZF7bIfLaOrbM0iGIOXQQgxxRrFEnb+Y6w1n4A==", "dev": true, + "license": "MIT", "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=10.18" } }, - "node_modules/is-core-module": { - "version": "2.13.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", - "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", "dev": true, "dependencies": { - "hasown": "^2.0.0" + "safer-buffer": ">= 2.1.2 < 3" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/is-data-view": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz", - "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==", + "node_modules/icss-utils": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", + "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", "dev": true, - "dependencies": { - "is-typed-array": "^1.1.13" - }, + "license": "ISC", "engines": { - "node": ">= 0.4" + "node": "^10 || ^12 || >= 14" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependencies": { + "postcss": "^8.1.0" } }, - "node_modules/is-date-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", "dev": true, - "dependencies": { - "has-tostringtag": "^1.0.0" - }, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, + "license": "MIT", "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">= 4" } }, - "node_modules/is-docker": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz", - "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==", + "node_modules/ignore-walk": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-7.0.0.tgz", + "integrity": "sha512-T4gbf83A4NH95zvhVYZc+qWocBBGlpzUXLPGurJggw/WIOwicfXJChLDP/iBZnN5WqROSu5Bm3hhle4z8a8YGQ==", "dev": true, - "license": "MIT", - "bin": { - "is-docker": "cli.js" + "license": "ISC", + "dependencies": { + "minimatch": "^9.0.0" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": "^18.17.0 || >=20.5.0" } }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "node_modules/ignore-walk/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, - "engines": { - "node": ">=0.10.0" + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" } }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "node_modules/ignore-walk/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, "engines": { - "node": ">=8" + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "node_modules/image-size": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", + "integrity": "sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==", "dev": true, - "dependencies": { - "is-extglob": "^2.1.1" + "optional": true, + "bin": { + "image-size": "bin/image-size.js" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/is-inside-container": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz", - "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==", + "node_modules/immutable": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-5.0.3.tgz", + "integrity": "sha512-P8IdPQHq3lA1xVeBRi5VPqUm5HDgKnx0Ru51wZz5mjxHr5n3RWhjIpOFU7ybkUxfB+5IToy+OLaHYDBIWsv+uw==", + "dev": true, + "license": "MIT" + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", "dev": true, - "license": "MIT", "dependencies": { - "is-docker": "^3.0.0" - }, - "bin": { - "is-inside-container": "cli.js" + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" }, "engines": { - "node": ">=14.16" + "node": ">=6" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-interactive": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", - "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", + "node_modules/import-fresh/node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true, "engines": { - "node": ">=8" + "node": ">=4" } }, - "node_modules/is-lambda": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", - "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/is-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", - "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==", + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", "dev": true, - "license": "MIT" + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } }, - "node_modules/is-negative-zero": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", - "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" } }, - "node_modules/is-network-error": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-network-error/-/is-network-error-1.1.0.tgz", - "integrity": "sha512-tUdRRAnhT+OtCZR/LxZelH/C7QtjtFrTu5tXCA8pl55eTUElUHT+GPYV8MBMBvea/j+NxQqVt3LbWMRir7Gx9g==", + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/ini": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-5.0.0.tgz", + "integrity": "sha512-+N0ngpO3e7cRUWOJAS7qw0IZIVc6XPrW4MlFBdD066F2L4k1L6ker3hLqSq7iXxU5tgS4WGkIUElWn5vogAEnw==", "dev": true, - "license": "MIT", + "license": "ISC", "engines": { - "node": ">=16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": "^18.17.0 || >=20.5.0" } }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "node_modules/injection-js": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/injection-js/-/injection-js-2.4.0.tgz", + "integrity": "sha512-6jiJt0tCAo9zjHbcwLiPL+IuNe9SQ6a9g0PEzafThW3fOQi0mrmiJGBJvDD6tmhPh8cQHIQtCOrJuBfQME4kPA==", "dev": true, "license": "MIT", - "engines": { - "node": ">=0.12.0" + "dependencies": { + "tslib": "^2.0.0" } }, - "node_modules/is-number-object": { + "node_modules/internal-slot": { "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", - "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", + "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", "dev": true, "dependencies": { - "has-tostringtag": "^1.0.0" + "es-errors": "^1.3.0", + "hasown": "^2.0.0", + "side-channel": "^1.0.4" }, "engines": { "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-plain-obj": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", - "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", + "node_modules/ip-address": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-9.0.5.tgz", + "integrity": "sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==", "dev": true, "license": "MIT", - "engines": { - "node": ">=10" + "dependencies": { + "jsbn": "1.1.0", + "sprintf-js": "^1.1.3" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": ">= 12" } }, - "node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "node_modules/ipaddr.js": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.2.0.tgz", + "integrity": "sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA==", "dev": true, "license": "MIT", - "dependencies": { - "isobject": "^3.0.1" - }, "engines": { - "node": ">=0.10.0" + "node": ">= 10" } }, - "node_modules/is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "node_modules/is-array-buffer": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", + "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" + "get-intrinsic": "^1.2.1" }, "engines": { "node": ">= 0.4" @@ -9576,40 +9907,43 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-shared-array-buffer": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", - "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", "dev": true, "dependencies": { - "call-bind": "^1.0.7" - }, - "engines": { - "node": ">= 0.4" + "has-bigints": "^1.0.1" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", "dev": true, - "license": "MIT", + "dependencies": { + "binary-extensions": "^2.0.0" + }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", "dev": true, "dependencies": { + "call-bind": "^1.0.2", "has-tostringtag": "^1.0.0" }, "engines": { @@ -9619,14 +9953,11 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", "dev": true, - "dependencies": { - "has-symbols": "^1.0.2" - }, "engines": { "node": ">= 0.4" }, @@ -9634,13 +9965,14 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-typed-array": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", - "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", + "node_modules/is-core-module": { + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", "dev": true, + "license": "MIT", "dependencies": { - "which-typed-array": "^1.1.14" + "hasown": "^2.0.2" }, "engines": { "node": ">= 0.4" @@ -9649,492 +9981,427 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-unicode-supported": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "node_modules/is-data-view": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz", + "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==", "dev": true, + "dependencies": { + "is-typed-array": "^1.1.13" + }, "engines": { - "node": ">=10" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-weakref": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.2" + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-what": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/is-what/-/is-what-3.14.1.tgz", - "integrity": "sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==", - "dev": true - }, - "node_modules/is-wsl": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-3.1.0.tgz", - "integrity": "sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==", + "node_modules/is-docker": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz", + "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==", "dev": true, "license": "MIT", - "dependencies": { - "is-inside-container": "^1.0.0" + "bin": { + "is-docker": "cli.js" }, "engines": { - "node": ">=16" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/isbinaryfile": { - "version": "4.0.10", - "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.10.tgz", - "integrity": "sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==", - "dev": true, - "engines": { - "node": ">= 8.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/gjtorikian/" - } - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true - }, - "node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.10.0" } }, - "node_modules/istanbul-lib-coverage": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", - "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true, "engines": { "node": ">=8" } }, - "node_modules/istanbul-lib-instrument": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", - "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, "dependencies": { - "@babel/core": "^7.12.3", - "@babel/parser": "^7.14.7", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^6.3.0" + "is-extglob": "^2.1.1" }, "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, - "node_modules/istanbul-lib-instrument/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "node_modules/is-inside-container": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz", + "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==", "dev": true, + "license": "MIT", + "dependencies": { + "is-docker": "^3.0.0" + }, "bin": { - "semver": "bin/semver.js" + "is-inside-container": "cli.js" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/istanbul-lib-report": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", - "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", + "node_modules/is-interactive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", "dev": true, - "dependencies": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^4.0.0", - "supports-color": "^7.1.0" - }, "engines": { - "node": ">=10" + "node": ">=8" } }, - "node_modules/istanbul-lib-report/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "node_modules/is-negative-zero": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", + "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", "dev": true, "engines": { - "node": ">=8" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/istanbul-lib-report/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/is-network-error": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-network-error/-/is-network-error-1.1.0.tgz", + "integrity": "sha512-tUdRRAnhT+OtCZR/LxZelH/C7QtjtFrTu5tXCA8pl55eTUElUHT+GPYV8MBMBvea/j+NxQqVt3LbWMRir7Gx9g==", "dev": true, - "dependencies": { - "has-flag": "^4.0.0" + "license": "MIT", + "engines": { + "node": ">=16" }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "license": "MIT", "engines": { - "node": ">=8" + "node": ">=0.12.0" } }, - "node_modules/istanbul-lib-source-maps": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", - "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "node_modules/is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", "dev": true, "dependencies": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" + "has-tostringtag": "^1.0.0" }, "engines": { - "node": ">=10" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/istanbul-lib-source-maps/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "node_modules/is-plain-obj": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", + "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", "dev": true, + "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/istanbul-reports": { - "version": "3.1.7", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz", - "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==", + "node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "dev": true, + "license": "MIT", "dependencies": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" + "isobject": "^3.0.1" }, "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, - "node_modules/jackspeak": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", - "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", "dev": true, - "license": "BlueOak-1.0.0", "dependencies": { - "@isaacs/cliui": "^8.0.2" + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "engines": { + "node": ">= 0.4" }, - "optionalDependencies": { - "@pkgjs/parseargs": "^0.11.0" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/jasmine-core": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-4.6.0.tgz", - "integrity": "sha512-O236+gd0ZXS8YAjFx8xKaJ94/erqUliEkJTDedyE7iHvv4ZVqi+q+8acJxu05/WJDKm512EUNn809In37nWlAQ==", - "dev": true - }, - "node_modules/jest-worker": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", - "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "node_modules/is-shared-array-buffer": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", + "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", "dev": true, "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" + "call-bind": "^1.0.7" }, "engines": { - "node": ">= 10.13.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/jest-worker/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, "engines": { - "node": ">=8" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/jest-worker/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", "dev": true, "dependencies": { - "has-flag": "^4.0.0" + "has-symbols": "^1.0.2" }, "engines": { - "node": ">=10" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/jiti": { - "version": "1.21.0", - "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.0.tgz", - "integrity": "sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==", + "node_modules/is-typed-array": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", + "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", "dev": true, - "bin": { - "jiti": "bin/jiti.js" + "dependencies": { + "which-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/jsbn": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz", - "integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==", - "dev": true, - "license": "MIT" - }, - "node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", "dev": true, - "license": "MIT", - "bin": { - "jsesc": "bin/jsesc" - }, "engines": { - "node": ">=4" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/json-parse-better-errors": { + "node_modules/is-weakref": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", - "dev": true - }, - "node_modules/json-parse-even-better-errors": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.2.tgz", - "integrity": "sha512-fi0NG4bPjCHunUJffmLd0gxssIgkNmArMvis4iNah6Owg1MCJjWhEcDLmsK6iGkJq3tHwbDkTlce70/tmXN4cQ==", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", "dev": true, - "license": "MIT", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "node_modules/is-what": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/is-what/-/is-what-3.14.1.tgz", + "integrity": "sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==", "dev": true }, - "node_modules/json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "node_modules/is-wsl": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-3.1.0.tgz", + "integrity": "sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==", "dev": true, - "bin": { - "json5": "lib/cli.js" + "license": "MIT", + "dependencies": { + "is-inside-container": "^1.0.0" }, "engines": { - "node": ">=6" + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/jsonc-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.3.1.tgz", - "integrity": "sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==", + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", "dev": true, "license": "MIT" }, - "node_modules/jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "node_modules/isbinaryfile": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.10.tgz", + "integrity": "sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==", "dev": true, - "optionalDependencies": { - "graceful-fs": "^4.1.6" + "engines": { + "node": ">= 8.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/gjtorikian/" } }, - "node_modules/jsonparse": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", - "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==", - "dev": true, - "engines": [ - "node >= 0.2.0" - ], - "license": "MIT" + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true }, - "node_modules/karma": { - "version": "6.4.3", - "resolved": "https://registry.npmjs.org/karma/-/karma-6.4.3.tgz", - "integrity": "sha512-LuucC/RE92tJ8mlCwqEoRWXP38UMAqpnq98vktmS9SznSoUPPUJQbc91dHcxcunROvfQjdORVA/YFviH+Xci9Q==", + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", "dev": true, - "dependencies": { - "@colors/colors": "1.5.0", - "body-parser": "^1.19.0", - "braces": "^3.0.2", - "chokidar": "^3.5.1", - "connect": "^3.7.0", - "di": "^0.0.1", - "dom-serialize": "^2.2.1", - "glob": "^7.1.7", - "graceful-fs": "^4.2.6", - "http-proxy": "^1.18.1", - "isbinaryfile": "^4.0.8", - "lodash": "^4.17.21", - "log4js": "^6.4.1", - "mime": "^2.5.2", - "minimatch": "^3.0.4", - "mkdirp": "^0.5.5", - "qjobs": "^1.2.0", - "range-parser": "^1.2.1", - "rimraf": "^3.0.2", - "socket.io": "^4.7.2", - "source-map": "^0.6.1", - "tmp": "^0.2.1", - "ua-parser-js": "^0.7.30", - "yargs": "^16.1.1" - }, - "bin": { - "karma": "bin/karma" - }, + "license": "MIT", "engines": { - "node": ">= 10" - } - }, - "node_modules/karma-chrome-launcher": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-3.2.0.tgz", - "integrity": "sha512-rE9RkUPI7I9mAxByQWkGJFXfFD6lE4gC5nPuZdobf/QdTEJI6EU4yIay/cfU/xV4ZxlM5JiTv7zWYgA64NpS5Q==", - "dev": true, - "dependencies": { - "which": "^1.2.1" + "node": ">=0.10.0" } }, - "node_modules/karma-coverage": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/karma-coverage/-/karma-coverage-2.2.1.tgz", - "integrity": "sha512-yj7hbequkQP2qOSb20GuNSIyE//PgJWHwC2IydLE6XRtsnaflv+/OSGNssPjobYUlhVVagy99TQpqUt3vAUG7A==", + "node_modules/istanbul-lib-coverage": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", "dev": true, - "dependencies": { - "istanbul-lib-coverage": "^3.2.0", - "istanbul-lib-instrument": "^5.1.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.1", - "istanbul-reports": "^3.0.5", - "minimatch": "^3.0.4" - }, "engines": { - "node": ">=10.0.0" + "node": ">=8" } }, - "node_modules/karma-jasmine": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/karma-jasmine/-/karma-jasmine-5.1.0.tgz", - "integrity": "sha512-i/zQLFrfEpRyQoJF9fsCdTMOF5c2dK7C7OmsuKg2D0YSsuZSfQDiLuaiktbuio6F2wiCsZSnSnieIQ0ant/uzQ==", + "node_modules/istanbul-lib-instrument": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", "dev": true, "dependencies": { - "jasmine-core": "^4.1.0" - }, - "engines": { - "node": ">=12" + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" }, - "peerDependencies": { - "karma": "^6.0.0" + "engines": { + "node": ">=8" } }, - "node_modules/karma-jasmine-html-reporter": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/karma-jasmine-html-reporter/-/karma-jasmine-html-reporter-2.1.0.tgz", - "integrity": "sha512-sPQE1+nlsn6Hwb5t+HHwyy0A1FNCVKuL1192b+XNauMYWThz2kweiBVW1DqloRpVvZIJkIoHVB7XRpK78n1xbQ==", + "node_modules/istanbul-lib-instrument/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, - "peerDependencies": { - "jasmine-core": "^4.0.0 || ^5.0.0", - "karma": "^6.0.0", - "karma-jasmine": "^5.0.0" + "bin": { + "semver": "bin/semver.js" } }, - "node_modules/karma-source-map-support": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/karma-source-map-support/-/karma-source-map-support-1.4.0.tgz", - "integrity": "sha512-RsBECncGO17KAoJCYXjv+ckIz+Ii9NCi+9enk+rq6XC81ezYkb4/RHE6CTXdA7IOJqoF3wcaLfVG0CPmE5ca6A==", + "node_modules/istanbul-lib-report": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", "dev": true, "dependencies": { - "source-map-support": "^0.5.5" + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^4.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" } }, - "node_modules/karma/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/istanbul-lib-report/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/karma/node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "node_modules/istanbul-lib-report/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/karma/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", "dev": true, "dependencies": { - "color-name": "~1.1.4" + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" }, "engines": { - "node": ">=7.0.0" + "node": ">=10" } }, - "node_modules/karma/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/karma/node_modules/source-map": { + "node_modules/istanbul-lib-source-maps/node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", @@ -10143,548 +10410,549 @@ "node": ">=0.10.0" } }, - "node_modules/karma/node_modules/tmp": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.3.tgz", - "integrity": "sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==", + "node_modules/istanbul-reports": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz", + "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==", "dev": true, + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, "engines": { - "node": ">=14.14" + "node": ">=8" } }, - "node_modules/karma/node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "node_modules/jackspeak": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", "dev": true, + "license": "BlueOak-1.0.0", "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" + "@isaacs/cliui": "^8.0.2" }, "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" } }, - "node_modules/karma/node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "node_modules/jasmine-core": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-4.6.0.tgz", + "integrity": "sha512-O236+gd0ZXS8YAjFx8xKaJ94/erqUliEkJTDedyE7iHvv4ZVqi+q+8acJxu05/WJDKm512EUNn809In37nWlAQ==", + "dev": true + }, + "node_modules/jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", "dev": true, "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" }, "engines": { - "node": ">=10" + "node": ">= 10.13.0" } }, - "node_modules/karma/node_modules/yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "node_modules/jest-worker/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "engines": { - "node": ">=10" + "node": ">=8" } }, - "node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, - "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, "engines": { - "node": ">=0.10.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" } }, - "node_modules/launch-editor": { - "version": "2.9.1", - "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.9.1.tgz", - "integrity": "sha512-Gcnl4Bd+hRO9P9icCP/RVVT2o8SFlPXofuCxvA2SaZuH45whSvf5p8x5oih5ftLiVhEI4sp5xDY+R+b3zJBh5w==", + "node_modules/jiti": { + "version": "1.21.0", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.0.tgz", + "integrity": "sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==", "dev": true, - "license": "MIT", - "dependencies": { - "picocolors": "^1.0.0", - "shell-quote": "^1.8.1" + "bin": { + "jiti": "bin/jiti.js" } }, - "node_modules/layout-base": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/layout-base/-/layout-base-2.0.1.tgz", - "integrity": "sha512-dp3s92+uNI1hWIpPGH3jK2kxE2lMjdXdr+DH8ynZHpd6PUlH6x6cbuXnoMmiNumznqaNO31xu9e79F0uuZ0JFg==" - }, - "node_modules/less": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/less/-/less-4.2.0.tgz", - "integrity": "sha512-P3b3HJDBtSzsXUl0im2L7gTO5Ubg8mEN6G8qoTS77iXxXX4Hvu4Qj540PZDvQ8V6DmX6iXo98k7Md0Cm1PrLaA==", + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", "dev": true, - "dependencies": { - "copy-anything": "^2.0.1", - "parse-node-version": "^1.0.1", - "tslib": "^2.3.0" - }, - "bin": { - "lessc": "bin/lessc" - }, - "engines": { - "node": ">=6" - }, - "optionalDependencies": { - "errno": "^0.1.1", - "graceful-fs": "^4.1.2", - "image-size": "~0.5.0", - "make-dir": "^2.1.0", - "mime": "^1.4.1", - "needle": "^3.1.0", - "source-map": "~0.6.0" - } + "license": "MIT" }, - "node_modules/less-loader": { - "version": "12.2.0", - "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-12.2.0.tgz", - "integrity": "sha512-MYUxjSQSBUQmowc0l5nPieOYwMzGPUaTzB6inNW/bdPEG9zOL3eAAD1Qw5ZxSPk7we5dMojHwNODYMV1hq4EVg==", + "node_modules/jsbn": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz", + "integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==", "dev": true, - "license": "MIT", - "engines": { - "node": ">= 18.12.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "@rspack/core": "0.x || 1.x", - "less": "^3.5.0 || ^4.0.0", - "webpack": "^5.0.0" - }, - "peerDependenciesMeta": { - "@rspack/core": { - "optional": true - }, - "webpack": { - "optional": true - } - } + "license": "MIT" }, - "node_modules/less/node_modules/make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "node_modules/jsesc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", "dev": true, - "optional": true, - "dependencies": { - "pify": "^4.0.1", - "semver": "^5.6.0" + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" }, "engines": { "node": ">=6" } }, - "node_modules/less/node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "node_modules/json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true + }, + "node_modules/json-parse-even-better-errors": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-4.0.0.tgz", + "integrity": "sha512-lR4MXjGNgkJc7tkQ97kb2nuEMnNCyU//XYVH0MKTGcXEiSudQ5MKGKen3C5QubYy0vmq+JGitUg92uuywGEwIA==", "dev": true, - "optional": true, - "bin": { - "mime": "cli.js" - }, + "license": "MIT", "engines": { - "node": ">=4" + "node": "^18.17.0 || >=20.5.0" } }, - "node_modules/less/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", "dev": true, - "optional": true, "bin": { - "semver": "bin/semver" + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" } }, - "node_modules/less/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "node_modules/jsonc-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.3.1.tgz", + "integrity": "sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==", "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } + "license": "MIT" }, - "node_modules/license-webpack-plugin": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/license-webpack-plugin/-/license-webpack-plugin-4.0.2.tgz", - "integrity": "sha512-771TFWFD70G1wLTC4oU2Cw4qvtmNrIw+wRvBtn+okgHl7slJVi7zfNcdmqDL72BojM30VNJ2UHylr1o77U37Jw==", + "node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", "dev": true, - "dependencies": { - "webpack-sources": "^3.0.0" - }, - "peerDependenciesMeta": { - "webpack": { - "optional": true - }, - "webpack-sources": { - "optional": true - } + "optionalDependencies": { + "graceful-fs": "^4.1.6" } }, - "node_modules/lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true + "node_modules/jsonparse": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==", + "dev": true, + "engines": [ + "node >= 0.2.0" + ], + "license": "MIT" }, - "node_modules/listr2": { - "version": "8.2.4", - "resolved": "https://registry.npmjs.org/listr2/-/listr2-8.2.4.tgz", - "integrity": "sha512-opevsywziHd3zHCVQGAj8zu+Z3yHNkkoYhWIGnq54RrCVwLz0MozotJEDnKsIBLvkfLGN6BLOyAeRrYI0pKA4g==", + "node_modules/karma": { + "version": "6.4.3", + "resolved": "https://registry.npmjs.org/karma/-/karma-6.4.3.tgz", + "integrity": "sha512-LuucC/RE92tJ8mlCwqEoRWXP38UMAqpnq98vktmS9SznSoUPPUJQbc91dHcxcunROvfQjdORVA/YFviH+Xci9Q==", "dev": true, - "license": "MIT", "dependencies": { - "cli-truncate": "^4.0.0", - "colorette": "^2.0.20", - "eventemitter3": "^5.0.1", - "log-update": "^6.1.0", - "rfdc": "^1.4.1", - "wrap-ansi": "^9.0.0" + "@colors/colors": "1.5.0", + "body-parser": "^1.19.0", + "braces": "^3.0.2", + "chokidar": "^3.5.1", + "connect": "^3.7.0", + "di": "^0.0.1", + "dom-serialize": "^2.2.1", + "glob": "^7.1.7", + "graceful-fs": "^4.2.6", + "http-proxy": "^1.18.1", + "isbinaryfile": "^4.0.8", + "lodash": "^4.17.21", + "log4js": "^6.4.1", + "mime": "^2.5.2", + "minimatch": "^3.0.4", + "mkdirp": "^0.5.5", + "qjobs": "^1.2.0", + "range-parser": "^1.2.1", + "rimraf": "^3.0.2", + "socket.io": "^4.7.2", + "source-map": "^0.6.1", + "tmp": "^0.2.1", + "ua-parser-js": "^0.7.30", + "yargs": "^16.1.1" + }, + "bin": { + "karma": "bin/karma" }, "engines": { - "node": ">=18.0.0" + "node": ">= 10" } }, - "node_modules/listr2/node_modules/ansi-regex": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", - "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "node_modules/karma-chrome-launcher": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-3.2.0.tgz", + "integrity": "sha512-rE9RkUPI7I9mAxByQWkGJFXfFD6lE4gC5nPuZdobf/QdTEJI6EU4yIay/cfU/xV4ZxlM5JiTv7zWYgA64NpS5Q==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" + "dependencies": { + "which": "^1.2.1" + } + }, + "node_modules/karma-coverage": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/karma-coverage/-/karma-coverage-2.2.1.tgz", + "integrity": "sha512-yj7hbequkQP2qOSb20GuNSIyE//PgJWHwC2IydLE6XRtsnaflv+/OSGNssPjobYUlhVVagy99TQpqUt3vAUG7A==", + "dev": true, + "dependencies": { + "istanbul-lib-coverage": "^3.2.0", + "istanbul-lib-instrument": "^5.1.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.1", + "istanbul-reports": "^3.0.5", + "minimatch": "^3.0.4" }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" + "engines": { + "node": ">=10.0.0" } }, - "node_modules/listr2/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "node_modules/karma-jasmine": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/karma-jasmine/-/karma-jasmine-5.1.0.tgz", + "integrity": "sha512-i/zQLFrfEpRyQoJF9fsCdTMOF5c2dK7C7OmsuKg2D0YSsuZSfQDiLuaiktbuio6F2wiCsZSnSnieIQ0ant/uzQ==", "dev": true, - "license": "MIT", + "dependencies": { + "jasmine-core": "^4.1.0" + }, "engines": { "node": ">=12" }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "peerDependencies": { + "karma": "^6.0.0" } }, - "node_modules/listr2/node_modules/emoji-regex": { - "version": "10.4.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.4.0.tgz", - "integrity": "sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==", + "node_modules/karma-jasmine-html-reporter": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/karma-jasmine-html-reporter/-/karma-jasmine-html-reporter-2.1.0.tgz", + "integrity": "sha512-sPQE1+nlsn6Hwb5t+HHwyy0A1FNCVKuL1192b+XNauMYWThz2kweiBVW1DqloRpVvZIJkIoHVB7XRpK78n1xbQ==", "dev": true, - "license": "MIT" + "peerDependencies": { + "jasmine-core": "^4.0.0 || ^5.0.0", + "karma": "^6.0.0", + "karma-jasmine": "^5.0.0" + } }, - "node_modules/listr2/node_modules/eventemitter3": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", - "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==", + "node_modules/karma-source-map-support": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/karma-source-map-support/-/karma-source-map-support-1.4.0.tgz", + "integrity": "sha512-RsBECncGO17KAoJCYXjv+ckIz+Ii9NCi+9enk+rq6XC81ezYkb4/RHE6CTXdA7IOJqoF3wcaLfVG0CPmE5ca6A==", "dev": true, - "license": "MIT" + "dependencies": { + "source-map-support": "^0.5.5" + } }, - "node_modules/listr2/node_modules/string-width": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", - "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", + "node_modules/karma/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "license": "MIT", "dependencies": { - "emoji-regex": "^10.3.0", - "get-east-asian-width": "^1.0.0", - "strip-ansi": "^7.1.0" + "color-convert": "^2.0.1" }, "engines": { - "node": ">=18" + "node": ">=8" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/listr2/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "node_modules/karma/node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", "dev": true, - "license": "MIT", "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" } }, - "node_modules/listr2/node_modules/wrap-ansi": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.0.tgz", - "integrity": "sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==", + "node_modules/karma/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, - "license": "MIT", "dependencies": { - "ansi-styles": "^6.2.1", - "string-width": "^7.0.0", - "strip-ansi": "^7.1.0" + "color-name": "~1.1.4" }, "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + "node": ">=7.0.0" } }, - "node_modules/lmdb": { - "version": "3.0.13", - "resolved": "https://registry.npmjs.org/lmdb/-/lmdb-3.0.13.tgz", - "integrity": "sha512-UGe+BbaSUQtAMZobTb4nHvFMrmvuAQKSeaqAX2meTEQjfsbpl5sxdHD8T72OnwD4GU9uwNhYXIVe4QGs8N9Zyw==", + "node_modules/karma/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/karma/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, - "hasInstallScript": true, - "license": "MIT", - "dependencies": { - "msgpackr": "^1.10.2", - "node-addon-api": "^6.1.0", - "node-gyp-build-optional-packages": "5.2.2", - "ordered-binary": "^1.4.1", - "weak-lru-cache": "^1.2.2" - }, - "bin": { - "download-lmdb-prebuilds": "bin/download-prebuilds.js" - }, - "optionalDependencies": { - "@lmdb/lmdb-darwin-arm64": "3.0.13", - "@lmdb/lmdb-darwin-x64": "3.0.13", - "@lmdb/lmdb-linux-arm": "3.0.13", - "@lmdb/lmdb-linux-arm64": "3.0.13", - "@lmdb/lmdb-linux-x64": "3.0.13", - "@lmdb/lmdb-win32-x64": "3.0.13" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/load-json-file": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", - "integrity": "sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==", + "node_modules/karma/node_modules/tmp": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.3.tgz", + "integrity": "sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==", "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" - }, "engines": { - "node": ">=4" + "node": ">=14.14" } }, - "node_modules/load-json-file/node_modules/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", + "node_modules/karma/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, "dependencies": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" }, "engines": { - "node": ">=4" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/load-json-file/node_modules/pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "node_modules/karma/node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", "dev": true, + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, "engines": { - "node": ">=4" + "node": ">=10" } }, - "node_modules/loader-runner": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", - "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", + "node_modules/karma/node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", "dev": true, "engines": { - "node": ">=6.11.5" + "node": ">=10" } }, - "node_modules/loader-utils": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.3.1.tgz", - "integrity": "sha512-FMJTLMXfCLMLfJxcX9PFqX5qD88Z5MRGaZCVzfuqeZSPsyiBzs+pahDQjbIWz2QIzPZz0NX9Zy4FX3lmK6YHIg==", + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true, "license": "MIT", "engines": { - "node": ">= 12.13.0" + "node": ">=0.10.0" } }, - "node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "node_modules/launch-editor": { + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.9.1.tgz", + "integrity": "sha512-Gcnl4Bd+hRO9P9icCP/RVVT2o8SFlPXofuCxvA2SaZuH45whSvf5p8x5oih5ftLiVhEI4sp5xDY+R+b3zJBh5w==", "dev": true, + "license": "MIT", "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" + "picocolors": "^1.0.0", + "shell-quote": "^1.8.1" } }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, - "node_modules/lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", - "dev": true, - "license": "MIT" + "node_modules/layout-base": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/layout-base/-/layout-base-2.0.1.tgz", + "integrity": "sha512-dp3s92+uNI1hWIpPGH3jK2kxE2lMjdXdr+DH8ynZHpd6PUlH6x6cbuXnoMmiNumznqaNO31xu9e79F0uuZ0JFg==" }, - "node_modules/log-symbols": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", - "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "node_modules/less": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/less/-/less-4.2.1.tgz", + "integrity": "sha512-CasaJidTIhWmjcqv0Uj5vccMI7pJgfD9lMkKtlnTHAdJdYK/7l8pM9tumLyJ0zhbD4KJLo/YvTj+xznQd5NBhg==", "dev": true, + "license": "Apache-2.0", "dependencies": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" + "copy-anything": "^2.0.1", + "parse-node-version": "^1.0.1", + "tslib": "^2.3.0" + }, + "bin": { + "lessc": "bin/lessc" }, "engines": { - "node": ">=10" + "node": ">=6" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "optionalDependencies": { + "errno": "^0.1.1", + "graceful-fs": "^4.1.2", + "image-size": "~0.5.0", + "make-dir": "^2.1.0", + "mime": "^1.4.1", + "needle": "^3.1.0", + "source-map": "~0.6.0" } }, - "node_modules/log-symbols/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/less-loader": { + "version": "12.2.0", + "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-12.2.0.tgz", + "integrity": "sha512-MYUxjSQSBUQmowc0l5nPieOYwMzGPUaTzB6inNW/bdPEG9zOL3eAAD1Qw5ZxSPk7we5dMojHwNODYMV1hq4EVg==", "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, + "license": "MIT", "engines": { - "node": ">=8" + "node": ">= 18.12.0" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "@rspack/core": "0.x || 1.x", + "less": "^3.5.0 || ^4.0.0", + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "@rspack/core": { + "optional": true + }, + "webpack": { + "optional": true + } } }, - "node_modules/log-symbols/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/less/node_modules/make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", "dev": true, + "optional": true, "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "pify": "^4.0.1", + "semver": "^5.6.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "node": ">=6" } }, - "node_modules/log-symbols/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/less/node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", "dev": true, - "dependencies": { - "color-name": "~1.1.4" + "optional": true, + "bin": { + "mime": "cli.js" }, "engines": { - "node": ">=7.0.0" + "node": ">=4" } }, - "node_modules/log-symbols/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/log-symbols/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "node_modules/less/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "dev": true, - "engines": { - "node": ">=8" + "optional": true, + "bin": { + "semver": "bin/semver" } }, - "node_modules/log-symbols/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/less/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, + "optional": true, "engines": { - "node": ">=8" - } - }, - "node_modules/log-update": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/log-update/-/log-update-6.1.0.tgz", - "integrity": "sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w==", + "node": ">=0.10.0" + } + }, + "node_modules/license-webpack-plugin": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/license-webpack-plugin/-/license-webpack-plugin-4.0.2.tgz", + "integrity": "sha512-771TFWFD70G1wLTC4oU2Cw4qvtmNrIw+wRvBtn+okgHl7slJVi7zfNcdmqDL72BojM30VNJ2UHylr1o77U37Jw==", "dev": true, - "license": "MIT", "dependencies": { - "ansi-escapes": "^7.0.0", - "cli-cursor": "^5.0.0", - "slice-ansi": "^7.1.0", - "strip-ansi": "^7.1.0", - "wrap-ansi": "^9.0.0" - }, - "engines": { - "node": ">=18" + "webpack-sources": "^3.0.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependenciesMeta": { + "webpack": { + "optional": true + }, + "webpack-sources": { + "optional": true + } } }, - "node_modules/log-update/node_modules/ansi-escapes": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-7.0.0.tgz", - "integrity": "sha512-GdYO7a61mR0fOlAsvC9/rIHf7L96sBc6dEWzeOu+KAea5bZyQRPIpojrVoI4AXGJS/ycu/fBTdLrUkA4ODrvjw==", + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, + "node_modules/listr2": { + "version": "8.2.5", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-8.2.5.tgz", + "integrity": "sha512-iyAZCeyD+c1gPyE9qpFu8af0Y+MRtmKOncdGoA2S5EY8iFq99dmmvkNnHiWo+pj0s7yH7l3KPIgee77tKpXPWQ==", "dev": true, "license": "MIT", "dependencies": { - "environment": "^1.0.0" + "cli-truncate": "^4.0.0", + "colorette": "^2.0.20", + "eventemitter3": "^5.0.1", + "log-update": "^6.1.0", + "rfdc": "^1.4.1", + "wrap-ansi": "^9.0.0" }, "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=18.0.0" } }, - "node_modules/log-update/node_modules/ansi-regex": { + "node_modules/listr2/node_modules/ansi-regex": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", @@ -10697,7 +10965,7 @@ "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, - "node_modules/log-update/node_modules/ansi-styles": { + "node_modules/listr2/node_modules/ansi-styles": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", @@ -10710,37 +10978,30 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/log-update/node_modules/cli-cursor": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-5.0.0.tgz", - "integrity": "sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==", - "dev": true, - "license": "MIT", - "dependencies": { - "restore-cursor": "^5.0.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/log-update/node_modules/emoji-regex": { + "node_modules/listr2/node_modules/emoji-regex": { "version": "10.4.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.4.0.tgz", "integrity": "sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==", "dev": true, "license": "MIT" }, - "node_modules/log-update/node_modules/is-fullwidth-code-point": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-5.0.0.tgz", - "integrity": "sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA==", + "node_modules/listr2/node_modules/eventemitter3": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", + "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==", + "dev": true, + "license": "MIT" + }, + "node_modules/listr2/node_modules/string-width": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", + "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", "dev": true, "license": "MIT", "dependencies": { - "get-east-asian-width": "^1.0.0" + "emoji-regex": "^10.3.0", + "get-east-asian-width": "^1.0.0", + "strip-ansi": "^7.1.0" }, "engines": { "node": ">=18" @@ -10749,164 +11010,156 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/log-update/node_modules/onetime": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-7.0.0.tgz", - "integrity": "sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==", + "node_modules/listr2/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", "dev": true, "license": "MIT", "dependencies": { - "mimic-function": "^5.0.0" + "ansi-regex": "^6.0.1" }, "engines": { - "node": ">=18" + "node": ">=12" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, - "node_modules/log-update/node_modules/restore-cursor": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-5.1.0.tgz", - "integrity": "sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==", + "node_modules/listr2/node_modules/wrap-ansi": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.0.tgz", + "integrity": "sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==", "dev": true, "license": "MIT", "dependencies": { - "onetime": "^7.0.0", - "signal-exit": "^4.1.0" + "ansi-styles": "^6.2.1", + "string-width": "^7.0.0", + "strip-ansi": "^7.1.0" }, "engines": { "node": ">=18" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/log-update/node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "node_modules/lmdb": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/lmdb/-/lmdb-3.2.2.tgz", + "integrity": "sha512-LriG93la4PbmPMwI7Hbv8W+0ncLK7549w4sbZSi4QGDjnnxnmNMgxUkaQTEMzH8TpwsfFvgEjpLX7V8B/I9e3g==", "dev": true, - "license": "ISC", - "engines": { - "node": ">=14" + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "dependencies": { + "msgpackr": "^1.11.2", + "node-addon-api": "^6.1.0", + "node-gyp-build-optional-packages": "5.2.2", + "ordered-binary": "^1.5.3", + "weak-lru-cache": "^1.2.2" }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "bin": { + "download-lmdb-prebuilds": "bin/download-prebuilds.js" + }, + "optionalDependencies": { + "@lmdb/lmdb-darwin-arm64": "3.2.2", + "@lmdb/lmdb-darwin-x64": "3.2.2", + "@lmdb/lmdb-linux-arm": "3.2.2", + "@lmdb/lmdb-linux-arm64": "3.2.2", + "@lmdb/lmdb-linux-x64": "3.2.2", + "@lmdb/lmdb-win32-x64": "3.2.2" } }, - "node_modules/log-update/node_modules/slice-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-7.1.0.tgz", - "integrity": "sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==", + "node_modules/load-json-file": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", + "integrity": "sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==", "dev": true, - "license": "MIT", "dependencies": { - "ansi-styles": "^6.2.1", - "is-fullwidth-code-point": "^5.0.0" + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" }, "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/chalk/slice-ansi?sponsor=1" + "node": ">=4" } }, - "node_modules/log-update/node_modules/string-width": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", - "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", + "node_modules/load-json-file/node_modules/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", "dev": true, - "license": "MIT", "dependencies": { - "emoji-regex": "^10.3.0", - "get-east-asian-width": "^1.0.0", - "strip-ansi": "^7.1.0" + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" }, "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=4" } }, - "node_modules/log-update/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "node_modules/load-json-file/node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^6.0.1" - }, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" + "node": ">=4" } }, - "node_modules/log-update/node_modules/wrap-ansi": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.0.tgz", - "integrity": "sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==", + "node_modules/loader-runner": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^6.2.1", - "string-width": "^7.0.0", - "strip-ansi": "^7.1.0" - }, "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + "node": ">=6.11.5" } }, - "node_modules/log4js": { - "version": "6.9.1", - "resolved": "https://registry.npmjs.org/log4js/-/log4js-6.9.1.tgz", - "integrity": "sha512-1somDdy9sChrr9/f4UlzhdaGfDR2c/SaD2a4T7qEkG4jTS57/B3qmnjLYePwQ8cqWnUHZI0iAKxMBpCZICiZ2g==", + "node_modules/loader-utils": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.3.1.tgz", + "integrity": "sha512-FMJTLMXfCLMLfJxcX9PFqX5qD88Z5MRGaZCVzfuqeZSPsyiBzs+pahDQjbIWz2QIzPZz0NX9Zy4FX3lmK6YHIg==", "dev": true, - "dependencies": { - "date-format": "^4.0.14", - "debug": "^4.3.4", - "flatted": "^3.2.7", - "rfdc": "^1.3.0", - "streamroller": "^3.1.5" - }, + "license": "MIT", "engines": { - "node": ">=8.0" + "node": ">= 12.13.0" } }, - "node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, - "license": "ISC", "dependencies": { - "yallist": "^3.0.2" + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/magic-string": { - "version": "0.30.11", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.11.tgz", - "integrity": "sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A==", + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.5.0" - } + "license": "MIT" }, - "node_modules/make-dir": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", - "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", + "node_modules/log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", "dev": true, "dependencies": { - "semver": "^7.5.3" + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" }, "engines": { "node": ">=10" @@ -10915,179 +11168,170 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/make-fetch-happen": { - "version": "13.0.1", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-13.0.1.tgz", - "integrity": "sha512-cKTUFc/rbKUd/9meOvgrpJ2WrNzymt6jfRDdwg5UCnVzv9dTpEj9JS5m3wtziXVCjluIXyL8pcaukYqezIzZQA==", + "node_modules/log-symbols/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "license": "ISC", "dependencies": { - "@npmcli/agent": "^2.0.0", - "cacache": "^18.0.0", - "http-cache-semantics": "^4.1.1", - "is-lambda": "^1.0.1", - "minipass": "^7.0.2", - "minipass-fetch": "^3.0.0", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.3", - "proc-log": "^4.2.0", - "promise-retry": "^2.0.1", - "ssri": "^10.0.0" + "color-convert": "^2.0.1" }, "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", - "dev": true, - "engines": { - "node": ">= 0.6" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/memfs": { - "version": "4.14.0", - "resolved": "https://registry.npmjs.org/memfs/-/memfs-4.14.0.tgz", - "integrity": "sha512-JUeY0F/fQZgIod31Ja1eJgiSxLn7BfQlCnqhwXFBzFHEw63OdLK7VJUJ7bnzNsWgCyoUP5tEp1VRY8rDaYzqOA==", + "node_modules/log-symbols/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, - "license": "Apache-2.0", "dependencies": { - "@jsonjoy.com/json-pack": "^1.0.3", - "@jsonjoy.com/util": "^1.3.0", - "tree-dump": "^1.0.1", - "tslib": "^2.0.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">= 4.0.0" + "node": ">=10" }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/streamich" + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/memorystream": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", - "integrity": "sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==", + "node_modules/log-symbols/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/merge-descriptors": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", - "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=7.0.0" } }, - "node_modules/merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "node_modules/log-symbols/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "node_modules/log-symbols/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, - "license": "MIT", "engines": { - "node": ">= 8" + "node": ">=8" } }, - "node_modules/methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "node_modules/log-symbols/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, - "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, "engines": { - "node": ">= 0.6" + "node": ">=8" } }, - "node_modules/micromatch": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", - "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "node_modules/log-update": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-6.1.0.tgz", + "integrity": "sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w==", "dev": true, "license": "MIT", "dependencies": { - "braces": "^3.0.3", - "picomatch": "^2.3.1" + "ansi-escapes": "^7.0.0", + "cli-cursor": "^5.0.0", + "slice-ansi": "^7.1.0", + "strip-ansi": "^7.1.0", + "wrap-ansi": "^9.0.0" }, "engines": { - "node": ">=8.6" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/micromatch/node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "node_modules/log-update/node_modules/ansi-escapes": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-7.0.0.tgz", + "integrity": "sha512-GdYO7a61mR0fOlAsvC9/rIHf7L96sBc6dEWzeOu+KAea5bZyQRPIpojrVoI4AXGJS/ycu/fBTdLrUkA4ODrvjw==", "dev": true, "license": "MIT", + "dependencies": { + "environment": "^1.0.0" + }, "engines": { - "node": ">=8.6" + "node": ">=18" }, "funding": { - "url": "https://github.com/sponsors/jonschlinkert" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/mime": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", - "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", + "node_modules/log-update/node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", "dev": true, - "bin": { - "mime": "cli.js" - }, + "license": "MIT", "engines": { - "node": ">=4.0.0" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, - "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "node_modules/log-update/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", "dev": true, + "license": "MIT", "engines": { - "node": ">= 0.6" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "node_modules/log-update/node_modules/cli-cursor": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-5.0.0.tgz", + "integrity": "sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==", "dev": true, + "license": "MIT", "dependencies": { - "mime-db": "1.52.0" + "restore-cursor": "^5.0.0" }, "engines": { - "node": ">= 0.6" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "node_modules/log-update/node_modules/emoji-regex": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.4.0.tgz", + "integrity": "sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==", "dev": true, - "engines": { - "node": ">=6" - } + "license": "MIT" }, - "node_modules/mimic-function": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/mimic-function/-/mimic-function-5.0.1.tgz", - "integrity": "sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==", + "node_modules/log-update/node_modules/is-fullwidth-code-point": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-5.0.0.tgz", + "integrity": "sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA==", "dev": true, "license": "MIT", + "dependencies": { + "get-east-asian-width": "^1.0.0" + }, "engines": { "node": ">=18" }, @@ -11095,617 +11339,565 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/mini-css-extract-plugin": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.9.0.tgz", - "integrity": "sha512-Zs1YsZVfemekSZG+44vBsYTLQORkPMwnlv+aehcxK/NLKC+EGhDB39/YePYYqx/sTk6NnYpuqikhSn7+JIevTA==", + "node_modules/log-update/node_modules/onetime": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-7.0.0.tgz", + "integrity": "sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==", "dev": true, "license": "MIT", "dependencies": { - "schema-utils": "^4.0.0", - "tapable": "^2.2.1" + "mimic-function": "^5.0.0" }, "engines": { - "node": ">= 12.13.0" + "node": ">=18" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.0.0" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", - "dev": true, - "license": "ISC" - }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "node_modules/log-update/node_modules/restore-cursor": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-5.1.0.tgz", + "integrity": "sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==", "dev": true, + "license": "MIT", "dependencies": { - "brace-expansion": "^1.1.7" + "onetime": "^7.0.0", + "signal-exit": "^4.1.0" }, "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "dev": true, + "node": ">=18" + }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "node_modules/log-update/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", "dev": true, "license": "ISC", "engines": { - "node": ">=16 || 14 >=14.17" + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/minipass-collect": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-2.0.1.tgz", - "integrity": "sha512-D7V8PO9oaz7PWGLbCACuI1qEOsq7UKfLotx/C0Aet43fCUB/wfQ7DYeq2oR/svFJGYDHPr38SHATeaj/ZoKHKw==", + "node_modules/log-update/node_modules/slice-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-7.1.0.tgz", + "integrity": "sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==", "dev": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "minipass": "^7.0.3" + "ansi-styles": "^6.2.1", + "is-fullwidth-code-point": "^5.0.0" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" } }, - "node_modules/minipass-fetch": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.5.tgz", - "integrity": "sha512-2N8elDQAtSnFV0Dk7gt15KHsS0Fyz6CbYZ360h0WTYV1Ty46li3rAXVOQj1THMNLdmrD9Vt5pBPtWtVkpwGBqg==", + "node_modules/log-update/node_modules/string-width": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", + "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", "dev": true, "license": "MIT", "dependencies": { - "minipass": "^7.0.3", - "minipass-sized": "^1.0.3", - "minizlib": "^2.1.2" + "emoji-regex": "^10.3.0", + "get-east-asian-width": "^1.0.0", + "strip-ansi": "^7.1.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">=18" }, - "optionalDependencies": { - "encoding": "^0.1.13" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/minipass-flush": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", - "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", + "node_modules/log-update/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", "dev": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "minipass": "^3.0.0" + "ansi-regex": "^6.0.1" }, "engines": { - "node": ">= 8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, - "node_modules/minipass-flush/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "node_modules/log-update/node_modules/wrap-ansi": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.0.tgz", + "integrity": "sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==", "dev": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "yallist": "^4.0.0" + "ansi-styles": "^6.2.1", + "string-width": "^7.0.0", + "strip-ansi": "^7.1.0" }, "engines": { - "node": ">=8" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/minipass-flush/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true, - "license": "ISC" - }, - "node_modules/minipass-pipeline": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", - "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", + "node_modules/log4js": { + "version": "6.9.1", + "resolved": "https://registry.npmjs.org/log4js/-/log4js-6.9.1.tgz", + "integrity": "sha512-1somDdy9sChrr9/f4UlzhdaGfDR2c/SaD2a4T7qEkG4jTS57/B3qmnjLYePwQ8cqWnUHZI0iAKxMBpCZICiZ2g==", "dev": true, - "license": "ISC", "dependencies": { - "minipass": "^3.0.0" + "date-format": "^4.0.14", + "debug": "^4.3.4", + "flatted": "^3.2.7", + "rfdc": "^1.3.0", + "streamroller": "^3.1.5" }, "engines": { - "node": ">=8" + "node": ">=8.0" } }, - "node_modules/minipass-pipeline/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "dev": true, "license": "ISC", "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" + "yallist": "^3.0.2" } }, - "node_modules/minipass-pipeline/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "node_modules/magic-string": { + "version": "0.30.17", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz", + "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==", "dev": true, - "license": "ISC" + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0" + } }, - "node_modules/minipass-sized": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", - "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", + "node_modules/make-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", "dev": true, - "license": "ISC", "dependencies": { - "minipass": "^3.0.0" + "semver": "^7.5.3" }, "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/minipass-sized/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "node_modules/make-fetch-happen": { + "version": "14.0.3", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-14.0.3.tgz", + "integrity": "sha512-QMjGbFTP0blj97EeidG5hk/QhKQ3T4ICckQGLgz38QF7Vgbk6e6FTARN8KhKxyBbWn8R0HU+bnw8aSoFPD4qtQ==", "dev": true, "license": "ISC", "dependencies": { - "yallist": "^4.0.0" + "@npmcli/agent": "^3.0.0", + "cacache": "^19.0.1", + "http-cache-semantics": "^4.1.1", + "minipass": "^7.0.2", + "minipass-fetch": "^4.0.0", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^1.0.0", + "proc-log": "^5.0.0", + "promise-retry": "^2.0.1", + "ssri": "^12.0.0" }, "engines": { - "node": ">=8" + "node": "^18.17.0 || >=20.5.0" } }, - "node_modules/minipass-sized/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "node_modules/make-fetch-happen/node_modules/negotiator": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-1.0.0.tgz", + "integrity": "sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==", "dev": true, - "license": "ISC" + "license": "MIT", + "engines": { + "node": ">= 0.6" + } }, - "node_modules/minizlib": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", - "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", "dev": true, - "license": "MIT", - "dependencies": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" - }, "engines": { - "node": ">= 8" + "node": ">= 0.6" } }, - "node_modules/minizlib/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "node_modules/memfs": { + "version": "4.17.0", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-4.17.0.tgz", + "integrity": "sha512-4eirfZ7thblFmqFjywlTmuWVSvccHAJbn1r8qQLzmTO11qcqpohOjmY2mFce6x7x7WtskzRqApPD0hv+Oa74jg==", "dev": true, - "license": "ISC", + "license": "Apache-2.0", "dependencies": { - "yallist": "^4.0.0" + "@jsonjoy.com/json-pack": "^1.0.3", + "@jsonjoy.com/util": "^1.3.0", + "tree-dump": "^1.0.1", + "tslib": "^2.0.0" }, "engines": { - "node": ">=8" + "node": ">= 4.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" } }, - "node_modules/minizlib/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true, - "license": "ISC" - }, - "node_modules/mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "node_modules/memorystream": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", + "integrity": "sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==", "dev": true, - "dependencies": { - "minimist": "^1.2.6" - }, - "bin": { - "mkdirp": "bin/cmd.js" + "engines": { + "node": ">= 0.10.0" } }, - "node_modules/mrmime": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.0.tgz", - "integrity": "sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==", + "node_modules/merge-descriptors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", + "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", "dev": true, "license": "MIT", - "engines": { - "node": ">=10" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", "dev": true }, - "node_modules/msgpackr": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/msgpackr/-/msgpackr-1.11.0.tgz", - "integrity": "sha512-I8qXuuALqJe5laEBYoFykChhSXLikZmUhccjGsPuSJ/7uPip2TJ7lwdIQwWSAi0jGZDXv4WOP8Qg65QZRuXxXw==", + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", "dev": true, "license": "MIT", - "optionalDependencies": { - "msgpackr-extract": "^3.0.2" + "engines": { + "node": ">= 8" } }, - "node_modules/msgpackr-extract": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/msgpackr-extract/-/msgpackr-extract-3.0.3.tgz", - "integrity": "sha512-P0efT1C9jIdVRefqjzOQ9Xml57zpOXnIuS+csaB4MdZbTdmGDLo8XhzBG1N7aO11gKDDkJvBLULeFTo46wwreA==", + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", "dev": true, - "hasInstallScript": true, "license": "MIT", - "optional": true, - "dependencies": { - "node-gyp-build-optional-packages": "5.2.2" - }, - "bin": { - "download-msgpackr-prebuilds": "bin/download-prebuilds.js" - }, - "optionalDependencies": { - "@msgpackr-extract/msgpackr-extract-darwin-arm64": "3.0.3", - "@msgpackr-extract/msgpackr-extract-darwin-x64": "3.0.3", - "@msgpackr-extract/msgpackr-extract-linux-arm": "3.0.3", - "@msgpackr-extract/msgpackr-extract-linux-arm64": "3.0.3", - "@msgpackr-extract/msgpackr-extract-linux-x64": "3.0.3", - "@msgpackr-extract/msgpackr-extract-win32-x64": "3.0.3" + "engines": { + "node": ">= 0.6" } }, - "node_modules/multicast-dns": { - "version": "7.2.5", - "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz", - "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==", + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", "dev": true, "license": "MIT", "dependencies": { - "dns-packet": "^5.2.2", - "thunky": "^1.0.2" + "braces": "^3.0.3", + "picomatch": "^2.3.1" }, - "bin": { - "multicast-dns": "cli.js" + "engines": { + "node": ">=8.6" } }, - "node_modules/mute-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-1.0.0.tgz", - "integrity": "sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==", + "node_modules/micromatch/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true, - "license": "ISC", + "license": "MIT", "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/nanoid": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", - "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "node_modules/mime": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", + "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], "bin": { - "nanoid": "bin/nanoid.cjs" + "mime": "cli.js" }, "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + "node": ">=4.0.0" } }, - "node_modules/nblas": { - "version": "2.1.13", - "resolved": "https://registry.npmjs.org/nblas/-/nblas-2.1.13.tgz", - "integrity": "sha512-LsnxQIUhMToa3+J/B5t799pXYKKskmfyMwmpDf6BS/MY46tzViZd/Bixc4fl5CEizbWJ/huaj4k0Vojv112MEQ==", - "hasInstallScript": true, - "optional": true - }, - "node_modules/needle": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/needle/-/needle-3.3.1.tgz", - "integrity": "sha512-6k0YULvhpw+RoLNiQCRKOl09Rv1dPLr8hHnVjHqdolKwDrdNyk+Hmrthi4lIGPPz3r39dLx0hsF5s40sZ3Us4Q==", + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", "dev": true, - "optional": true, - "dependencies": { - "iconv-lite": "^0.6.3", - "sax": "^1.2.4" - }, - "bin": { - "needle": "bin/needle" - }, "engines": { - "node": ">= 4.4.x" + "node": ">= 0.6" } }, - "node_modules/needle/node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", "dev": true, - "optional": true, "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" + "mime-db": "1.52.0" }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.6" } }, - "node_modules/negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", "dev": true, "engines": { - "node": ">= 0.6" + "node": ">=6" } }, - "node_modules/neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "dev": true + "node_modules/mimic-function": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/mimic-function/-/mimic-function-5.0.1.tgz", + "integrity": "sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "node_modules/ng-packagr": { - "version": "18.2.1", - "resolved": "https://registry.npmjs.org/ng-packagr/-/ng-packagr-18.2.1.tgz", - "integrity": "sha512-dy9ZDpZb3QpAz+Y/m8VAu7ctr2VrnRU3gmQwJagnNybVJtCsKn3lZA3IW7Z7GTLoG5IALSPouiCgiB/C8ozv7w==", + "node_modules/mini-css-extract-plugin": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.9.2.tgz", + "integrity": "sha512-GJuACcS//jtq4kCtd5ii/M0SZf7OZRH+BxdqXZHaJfb8TJiVl+NgQRPwiYt2EuqeSkNydn/7vP+bcE27C5mb9w==", "dev": true, "license": "MIT", "dependencies": { - "@rollup/plugin-json": "^6.1.0", - "@rollup/plugin-node-resolve": "^15.2.3", - "@rollup/wasm-node": "^4.18.0", - "ajv": "^8.12.0", - "ansi-colors": "^4.1.3", - "browserslist": "^4.22.1", - "cacache": "^18.0.0", - "chokidar": "^3.5.3", - "commander": "^12.0.0", - "convert-source-map": "^2.0.0", - "dependency-graph": "^1.0.0", - "esbuild": "^0.23.0", - "fast-glob": "^3.3.1", - "find-cache-dir": "^3.3.2", - "injection-js": "^2.4.0", - "jsonc-parser": "^3.2.0", - "less": "^4.2.0", - "ora": "^5.1.0", - "piscina": "^4.4.0", - "postcss": "^8.4.31", - "rxjs": "^7.8.1", - "sass": "^1.69.5" - }, - "bin": { - "ng-packagr": "cli/main.js" + "schema-utils": "^4.0.0", + "tapable": "^2.2.1" }, "engines": { - "node": "^18.19.1 || >=20.11.1" + "node": ">= 12.13.0" }, - "optionalDependencies": { - "rollup": "^4.18.0" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" }, "peerDependencies": { - "@angular/compiler-cli": "^18.0.0 || ^18.2.0-next.0", - "tailwindcss": "^2.0.0 || ^3.0.0", - "tslib": "^2.3.0", - "typescript": ">=5.4 <5.6" + "webpack": "^5.0.0" + } + }, + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "dev": true, + "license": "ISC" + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" }, - "peerDependenciesMeta": { - "tailwindcss": { - "optional": true - } + "engines": { + "node": "*" } }, - "node_modules/ng-packagr/node_modules/commander": { - "version": "12.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz", - "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==", + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", "dev": true, - "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "dev": true, + "license": "ISC", "engines": { - "node": ">=18" + "node": ">=16 || 14 >=14.17" } }, - "node_modules/ng-packagr/node_modules/convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "node_modules/minipass-collect": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-2.0.1.tgz", + "integrity": "sha512-D7V8PO9oaz7PWGLbCACuI1qEOsq7UKfLotx/C0Aet43fCUB/wfQ7DYeq2oR/svFJGYDHPr38SHATeaj/ZoKHKw==", "dev": true, - "license": "MIT" + "license": "ISC", + "dependencies": { + "minipass": "^7.0.3" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } }, - "node_modules/ng-packagr/node_modules/find-cache-dir": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", - "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "node_modules/minipass-fetch": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-4.0.0.tgz", + "integrity": "sha512-2v6aXUXwLP1Epd/gc32HAMIWoczx+fZwEPRHm/VwtrJzRGwR1qGZXEYV3Zp8ZjjbwaZhMrM6uHV4KVkk+XCc2w==", "dev": true, "license": "MIT", "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" + "minipass": "^7.0.3", + "minipass-sized": "^1.0.3", + "minizlib": "^3.0.1" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + }, + "optionalDependencies": { + "encoding": "^0.1.13" + } + }, + "node_modules/minipass-flush": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", + "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", + "dev": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/avajs/find-cache-dir?sponsor=1" + "node": ">= 8" } }, - "node_modules/ng-packagr/node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "node_modules/minipass-flush/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", "dev": true, - "license": "MIT", + "license": "ISC", "dependencies": { - "semver": "^6.0.0" + "yallist": "^4.0.0" }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/ng-packagr/node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "node_modules/minipass-flush/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true, - "license": "MIT", + "license": "ISC" + }, + "node_modules/minipass-pipeline": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", + "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", + "dev": true, + "license": "ISC", "dependencies": { - "find-up": "^4.0.0" + "minipass": "^3.0.0" }, "engines": { "node": ">=8" } }, - "node_modules/ng-packagr/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "node_modules/minipass-pipeline/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", "dev": true, "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/nice-napi": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/nice-napi/-/nice-napi-1.0.2.tgz", - "integrity": "sha512-px/KnJAJZf5RuBGcfD+Sp2pAKq0ytz8j+1NehvgIGFkvtvFrDM3T8E4x/JJODXK9WZow8RRGrbA9QQ3hs+pDhA==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "optional": true, - "os": [ - "!win32" - ], "dependencies": { - "node-addon-api": "^3.0.0", - "node-gyp-build": "^4.2.2" + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/nice-napi/node_modules/node-addon-api": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.2.1.tgz", - "integrity": "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==", - "dev": true, - "license": "MIT", - "optional": true - }, - "node_modules/nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", - "dev": true - }, - "node_modules/nlapack": { - "version": "2.0.9", - "resolved": "https://registry.npmjs.org/nlapack/-/nlapack-2.0.9.tgz", - "integrity": "sha512-NnTUNKURkoRfwjNhCygmtLgu4l3gNwxSM+54U4ovnMX50biSElmOGb9yUALNfhoahfm0EGdk/GLySrZLA8yGTw==", - "hasInstallScript": true, - "optional": true - }, - "node_modules/node-addon-api": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-6.1.0.tgz", - "integrity": "sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==", + "node_modules/minipass-pipeline/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true, - "license": "MIT" + "license": "ISC" }, - "node_modules/node-forge": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", - "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", + "node_modules/minipass-sized": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", + "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", "dev": true, - "license": "(BSD-3-Clause OR GPL-2.0)", + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, "engines": { - "node": ">= 6.13.0" + "node": ">=8" } }, - "node_modules/node-gyp": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-10.2.0.tgz", - "integrity": "sha512-sp3FonBAaFe4aYTcFdZUn2NYkbP7xroPGYvQmP4Nl5PxamznItBnNCgjrVTKrEfQynInMsJvZrdmqUnysCJ8rw==", + "node_modules/minipass-sized/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", "dev": true, - "license": "MIT", + "license": "ISC", "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": "^4.1.0", - "semver": "^7.3.5", - "tar": "^6.2.1", - "which": "^4.0.0" - }, - "bin": { - "node-gyp": "bin/node-gyp.js" + "yallist": "^4.0.0" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": ">=8" } }, - "node_modules/node-gyp-build": { - "version": "4.8.2", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.2.tgz", - "integrity": "sha512-IRUxE4BVsHWXkV/SFOut4qTlagw2aM8T5/vnTsmrHJvVoKueJHRc/JaFND7QDDc61kLYUJ6qlZM3sqTSyx2dTw==", + "node_modules/minipass-sized/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true, - "license": "MIT", - "optional": true, - "bin": { - "node-gyp-build": "bin.js", - "node-gyp-build-optional": "optional.js", - "node-gyp-build-test": "build-test.js" - } + "license": "ISC" }, - "node_modules/node-gyp-build-optional-packages": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.2.2.tgz", - "integrity": "sha512-s+w+rBWnpTMwSFbaE0UXsRlg7hU4FjekKU4eyAih5T8nJuNZT1nNsskXpxmeqSK9UzkBl6UgRlnKc8hz8IEqOw==", + "node_modules/minizlib": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-3.0.1.tgz", + "integrity": "sha512-umcy022ILvb5/3Djuu8LWeqUa8D68JaBzlttKeMWen48SjabqS3iY5w/vzeMzMUNhLDifyhbOwKDSznB1vvrwg==", "dev": true, "license": "MIT", "dependencies": { - "detect-libc": "^2.0.1" + "minipass": "^7.0.4", + "rimraf": "^5.0.5" }, - "bin": { - "node-gyp-build-optional-packages": "bin.js", - "node-gyp-build-optional-packages-optional": "optional.js", - "node-gyp-build-optional-packages-test": "build-test.js" + "engines": { + "node": ">= 18" } }, - "node_modules/node-gyp/node_modules/brace-expansion": { + "node_modules/minizlib/node_modules/brace-expansion": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", @@ -11715,7 +11907,7 @@ "balanced-match": "^1.0.0" } }, - "node_modules/node-gyp/node_modules/glob": { + "node_modules/minizlib/node_modules/glob": { "version": "10.4.5", "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", @@ -11736,17 +11928,7 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/node-gyp/node_modules/isexe": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", - "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=16" - } - }, - "node_modules/node-gyp/node_modules/minimatch": { + "node_modules/minizlib/node_modules/minimatch": { "version": "9.0.5", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", @@ -11762,3914 +11944,4053 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/node-gyp/node_modules/which": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", - "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", + "node_modules/minizlib/node_modules/rimraf": { + "version": "5.0.10", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.10.tgz", + "integrity": "sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ==", "dev": true, "license": "ISC", "dependencies": { - "isexe": "^3.1.1" + "glob": "^10.3.7" + }, + "bin": { + "rimraf": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/mrmime": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.0.tgz", + "integrity": "sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/msgpackr": { + "version": "1.11.2", + "resolved": "https://registry.npmjs.org/msgpackr/-/msgpackr-1.11.2.tgz", + "integrity": "sha512-F9UngXRlPyWCDEASDpTf6c9uNhGPTqnTeLVt7bN+bU1eajoR/8V9ys2BRaV5C/e5ihE6sJ9uPIKaYt6bFuO32g==", + "dev": true, + "license": "MIT", + "optional": true, + "optionalDependencies": { + "msgpackr-extract": "^3.0.2" + } + }, + "node_modules/msgpackr-extract": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/msgpackr-extract/-/msgpackr-extract-3.0.3.tgz", + "integrity": "sha512-P0efT1C9jIdVRefqjzOQ9Xml57zpOXnIuS+csaB4MdZbTdmGDLo8XhzBG1N7aO11gKDDkJvBLULeFTo46wwreA==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "dependencies": { + "node-gyp-build-optional-packages": "5.2.2" + }, + "bin": { + "download-msgpackr-prebuilds": "bin/download-prebuilds.js" + }, + "optionalDependencies": { + "@msgpackr-extract/msgpackr-extract-darwin-arm64": "3.0.3", + "@msgpackr-extract/msgpackr-extract-darwin-x64": "3.0.3", + "@msgpackr-extract/msgpackr-extract-linux-arm": "3.0.3", + "@msgpackr-extract/msgpackr-extract-linux-arm64": "3.0.3", + "@msgpackr-extract/msgpackr-extract-linux-x64": "3.0.3", + "@msgpackr-extract/msgpackr-extract-win32-x64": "3.0.3" + } + }, + "node_modules/multicast-dns": { + "version": "7.2.5", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz", + "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==", + "dev": true, + "license": "MIT", + "dependencies": { + "dns-packet": "^5.2.2", + "thunky": "^1.0.2" }, "bin": { - "node-which": "bin/which.js" + "multicast-dns": "cli.js" + } + }, + "node_modules/mute-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-2.0.0.tgz", + "integrity": "sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" }, "engines": { - "node": "^16.13.0 || >=18.0.0" + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, - "node_modules/node-releases": { - "version": "2.0.18", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz", - "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==", - "dev": true, - "license": "MIT" + "node_modules/nblas": { + "version": "2.1.13", + "resolved": "https://registry.npmjs.org/nblas/-/nblas-2.1.13.tgz", + "integrity": "sha512-LsnxQIUhMToa3+J/B5t799pXYKKskmfyMwmpDf6BS/MY46tzViZd/Bixc4fl5CEizbWJ/huaj4k0Vojv112MEQ==", + "hasInstallScript": true, + "optional": true }, - "node_modules/nopt": { - "version": "7.2.1", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-7.2.1.tgz", - "integrity": "sha512-taM24ViiimT/XntxbPyJQzCG+p4EKOpgD3mxFwW38mGjVUrfERQOeY4EDHjdnptttfHuHQXFx+lTP08Q+mLa/w==", + "node_modules/needle": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/needle/-/needle-3.3.1.tgz", + "integrity": "sha512-6k0YULvhpw+RoLNiQCRKOl09Rv1dPLr8hHnVjHqdolKwDrdNyk+Hmrthi4lIGPPz3r39dLx0hsF5s40sZ3Us4Q==", "dev": true, - "license": "ISC", + "optional": true, "dependencies": { - "abbrev": "^2.0.0" + "iconv-lite": "^0.6.3", + "sax": "^1.2.4" }, "bin": { - "nopt": "bin/nopt.js" + "needle": "bin/needle" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">= 4.4.x" } }, - "node_modules/normalize-package-data": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-6.0.2.tgz", - "integrity": "sha512-V6gygoYb/5EmNI+MEGrWkC+e6+Rr7mTmfHrxDbLzxQogBkgzo76rkok0Am6thgSF7Mv2nLOajAJj5vDJZEFn7g==", + "node_modules/needle/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", "dev": true, - "license": "BSD-2-Clause", + "optional": true, "dependencies": { - "hosted-git-info": "^7.0.0", - "semver": "^7.3.5", - "validate-npm-package-license": "^3.0.4" + "safer-buffer": ">= 2.1.2 < 3.0.0" }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, "engines": { "node": ">=0.10.0" } }, - "node_modules/normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", "dev": true, - "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">= 0.6" } }, - "node_modules/npm-bundled": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-3.0.1.tgz", - "integrity": "sha512-+AvaheE/ww1JEwRHOrn4WHNzOxGtVp+adrg2AeZS/7KuxGUYFuBta98wYpfHBbJp6Tg6j1NKSEVHNcfZzJHQwQ==", + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true + }, + "node_modules/ng-packagr": { + "version": "19.1.1", + "resolved": "https://registry.npmjs.org/ng-packagr/-/ng-packagr-19.1.1.tgz", + "integrity": "sha512-KToU6/nkzD/XDhWJL0Na5ita0d/W6HiohMbDIWv36xQTV26CfICZ3xAPGE4vTbnQS77wCSR+8+jbiBtkw6J1pA==", "dev": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "npm-normalize-package-bin": "^3.0.0" + "@rollup/plugin-json": "^6.1.0", + "@rollup/wasm-node": "^4.24.0", + "ajv": "^8.17.1", + "ansi-colors": "^4.1.3", + "browserslist": "^4.22.1", + "chokidar": "^4.0.1", + "commander": "^13.0.0", + "convert-source-map": "^2.0.0", + "dependency-graph": "^1.0.0", + "esbuild": "^0.24.0", + "fast-glob": "^3.3.2", + "find-cache-dir": "^3.3.2", + "injection-js": "^2.4.0", + "jsonc-parser": "^3.3.1", + "less": "^4.2.0", + "ora": "^5.1.0", + "piscina": "^4.7.0", + "postcss": "^8.4.47", + "rxjs": "^7.8.1", + "sass": "^1.81.0" + }, + "bin": { + "ng-packagr": "cli/main.js" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.19.1 || >=20.11.1" + }, + "optionalDependencies": { + "rollup": "^4.24.0" + }, + "peerDependencies": { + "@angular/compiler-cli": "^19.0.0 || ^19.1.0-next.0 || ^19.2.0-next.0", + "tailwindcss": "^2.0.0 || ^3.0.0", + "tslib": "^2.3.0", + "typescript": ">=5.5 <5.8" + }, + "peerDependenciesMeta": { + "tailwindcss": { + "optional": true + } } }, - "node_modules/npm-install-checks": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-6.3.0.tgz", - "integrity": "sha512-W29RiK/xtpCGqn6f3ixfRYGk+zRyr+Ew9F2E20BfXxT5/euLdA/Nm7fO7OeTGuAmTs30cpgInyJ0cYe708YTZw==", + "node_modules/ng-packagr/node_modules/ajv": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", "dev": true, - "license": "BSD-2-Clause", + "license": "MIT", "dependencies": { - "semver": "^7.1.1" + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm-normalize-package-bin": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-3.0.1.tgz", - "integrity": "sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==", - "dev": true, - "license": "ISC", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/npm-package-arg": { - "version": "11.0.3", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-11.0.3.tgz", - "integrity": "sha512-sHGJy8sOC1YraBywpzQlIKBE4pBbGbiF95U6Auspzyem956E0+FtDtsx1ZxlOJkQCZ1AFXAY/yuvtFYrOxF+Bw==", + "node_modules/ng-packagr/node_modules/chokidar": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", + "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", "dev": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "hosted-git-info": "^7.0.0", - "proc-log": "^4.0.0", - "semver": "^7.3.5", - "validate-npm-package-name": "^5.0.0" + "readdirp": "^4.0.1" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": ">= 14.16.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" } }, - "node_modules/npm-packlist": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-8.0.2.tgz", - "integrity": "sha512-shYrPFIS/JLP4oQmAwDyk5HcyysKW8/JLTEA32S0Z5TzvpaeeX2yMFfoK1fjEBnCBvVyIB/Jj/GBFdm0wsgzbA==", + "node_modules/ng-packagr/node_modules/commander": { + "version": "13.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-13.1.0.tgz", + "integrity": "sha512-/rFeCpNJQbhSZjGVwO9RFV3xPqbnERS8MmIQzCtD/zl6gpJuV/bMLuN92oG3F7d8oDEHHRrujSXNUr8fpjntKw==", "dev": true, - "license": "ISC", - "dependencies": { - "ignore-walk": "^6.0.4" - }, + "license": "MIT", "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">=18" } }, - "node_modules/npm-pick-manifest": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-9.1.0.tgz", - "integrity": "sha512-nkc+3pIIhqHVQr085X9d2JzPzLyjzQS96zbruppqC9aZRm/x8xx6xhI98gHtsfELP2bE+loHq8ZaHFHhe+NauA==", + "node_modules/ng-packagr/node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", "dev": true, - "license": "ISC", - "dependencies": { - "npm-install-checks": "^6.0.0", - "npm-normalize-package-bin": "^3.0.0", - "npm-package-arg": "^11.0.0", - "semver": "^7.3.5" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } + "license": "MIT" }, - "node_modules/npm-registry-fetch": { - "version": "17.1.0", - "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-17.1.0.tgz", - "integrity": "sha512-5+bKQRH0J1xG1uZ1zMNvxW0VEyoNWgJpY9UDuluPFLKDfJ9u2JmmjmTJV1srBGQOROfdBMiVvnH2Zvpbm+xkVA==", + "node_modules/ng-packagr/node_modules/find-cache-dir": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", "dev": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "@npmcli/redact": "^2.0.0", - "jsonparse": "^1.3.1", - "make-fetch-happen": "^13.0.0", - "minipass": "^7.0.2", - "minipass-fetch": "^3.0.0", - "minizlib": "^2.1.2", - "npm-package-arg": "^11.0.0", - "proc-log": "^4.0.0" + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/avajs/find-cache-dir?sponsor=1" } }, - "node_modules/npm-run-all": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/npm-run-all/-/npm-run-all-4.1.5.tgz", - "integrity": "sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==", + "node_modules/ng-packagr/node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", "dev": true, + "license": "MIT", "dependencies": { - "ansi-styles": "^3.2.1", - "chalk": "^2.4.1", - "cross-spawn": "^6.0.5", - "memorystream": "^0.3.1", - "minimatch": "^3.0.4", - "pidtree": "^0.3.0", - "read-pkg": "^3.0.0", - "shell-quote": "^1.6.1", - "string.prototype.padend": "^3.0.0" - }, - "bin": { - "npm-run-all": "bin/npm-run-all/index.js", - "run-p": "bin/run-p/index.js", - "run-s": "bin/run-s/index.js" + "semver": "^6.0.0" }, "engines": { - "node": ">= 4" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/npm-run-all/node_modules/cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "node_modules/ng-packagr/node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", "dev": true, + "license": "MIT", "dependencies": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" + "find-up": "^4.0.0" }, "engines": { - "node": ">=4.8" + "node": ">=8" } }, - "node_modules/npm-run-all/node_modules/path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", + "node_modules/ng-packagr/node_modules/readdirp": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.1.tgz", + "integrity": "sha512-h80JrZu/MHUZCyHu5ciuoI0+WxsCxzxJTILn6Fs8rxSnFPh+UVHYfeIxK1nVGugMqkfC4vJcBOYbkfkwYK0+gw==", "dev": true, + "license": "MIT", "engines": { - "node": ">=4" + "node": ">= 14.18.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" } }, - "node_modules/npm-run-all/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "node_modules/ng-packagr/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, + "license": "ISC", "bin": { - "semver": "bin/semver" + "semver": "bin/semver.js" } }, - "node_modules/npm-run-all/node_modules/shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", + "node_modules/nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true + }, + "node_modules/nlapack": { + "version": "2.0.9", + "resolved": "https://registry.npmjs.org/nlapack/-/nlapack-2.0.9.tgz", + "integrity": "sha512-NnTUNKURkoRfwjNhCygmtLgu4l3gNwxSM+54U4ovnMX50biSElmOGb9yUALNfhoahfm0EGdk/GLySrZLA8yGTw==", + "hasInstallScript": true, + "optional": true + }, + "node_modules/node-addon-api": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-6.1.0.tgz", + "integrity": "sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==", "dev": true, - "dependencies": { - "shebang-regex": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } + "license": "MIT", + "optional": true }, - "node_modules/npm-run-all/node_modules/shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", + "node_modules/node-forge": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", + "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", "dev": true, + "license": "(BSD-3-Clause OR GPL-2.0)", "engines": { - "node": ">=0.10.0" + "node": ">= 6.13.0" } }, - "node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "node_modules/node-gyp": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-11.0.0.tgz", + "integrity": "sha512-zQS+9MTTeCMgY0F3cWPyJyRFAkVltQ1uXm+xXu/ES6KFgC6Czo1Seb9vQW2wNxSX2OrDTiqL0ojtkFxBQ0ypIw==", "dev": true, "license": "MIT", "dependencies": { - "path-key": "^3.0.0" + "env-paths": "^2.2.0", + "exponential-backoff": "^3.1.1", + "glob": "^10.3.10", + "graceful-fs": "^4.2.6", + "make-fetch-happen": "^14.0.3", + "nopt": "^8.0.0", + "proc-log": "^5.0.0", + "semver": "^7.3.5", + "tar": "^7.4.3", + "which": "^5.0.0" + }, + "bin": { + "node-gyp": "bin/node-gyp.js" }, "engines": { - "node": ">=8" + "node": "^18.17.0 || >=20.5.0" } }, - "node_modules/nth-check": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", - "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "node_modules/node-gyp-build-optional-packages": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.2.2.tgz", + "integrity": "sha512-s+w+rBWnpTMwSFbaE0UXsRlg7hU4FjekKU4eyAih5T8nJuNZT1nNsskXpxmeqSK9UzkBl6UgRlnKc8hz8IEqOw==", "dev": true, - "license": "BSD-2-Clause", + "license": "MIT", + "optional": true, "dependencies": { - "boolbase": "^1.0.0" + "detect-libc": "^2.0.1" }, - "funding": { - "url": "https://github.com/fb55/nth-check?sponsor=1" - } - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "dev": true, - "engines": { - "node": ">=0.10.0" + "bin": { + "node-gyp-build-optional-packages": "bin.js", + "node-gyp-build-optional-packages-optional": "optional.js", + "node-gyp-build-optional-packages-test": "build-test.js" } }, - "node_modules/object-inspect": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", - "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", + "node_modules/node-gyp/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" } }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "node_modules/node-gyp/node_modules/chownr": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-3.0.0.tgz", + "integrity": "sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==", "dev": true, + "license": "BlueOak-1.0.0", "engines": { - "node": ">= 0.4" + "node": ">=18" } }, - "node_modules/object.assign": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", - "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", + "node_modules/node-gyp/node_modules/glob": { + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", "dev": true, + "license": "ISC", "dependencies": { - "call-bind": "^1.0.5", - "define-properties": "^1.2.1", - "has-symbols": "^1.0.3", - "object-keys": "^1.1.1" + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" }, - "engines": { - "node": ">= 0.4" + "bin": { + "glob": "dist/esm/bin.mjs" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/obuf": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", - "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", + "node_modules/node-gyp/node_modules/isexe": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", + "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", "dev": true, - "license": "MIT" + "license": "ISC", + "engines": { + "node": ">=16" + } }, - "node_modules/on-finished": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "node_modules/node-gyp/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dev": true, + "license": "ISC", "dependencies": { - "ee-first": "1.1.1" + "brace-expansion": "^2.0.1" }, "engines": { - "node": ">= 0.8" + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/on-headers": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", - "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "node_modules/node-gyp/node_modules/mkdirp": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-3.0.1.tgz", + "integrity": "sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==", "dev": true, "license": "MIT", + "bin": { + "mkdirp": "dist/cjs/src/bin.js" + }, "engines": { - "node": ">= 0.8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "node_modules/node-gyp/node_modules/tar": { + "version": "7.4.3", + "resolved": "https://registry.npmjs.org/tar/-/tar-7.4.3.tgz", + "integrity": "sha512-5S7Va8hKfV7W5U6g3aYxXmlPoZVAwUMy9AOKyF2fVuZa2UD3qZjg578OrLRt8PcNN1PleVaL/5/yYATNL0ICUw==", "dev": true, + "license": "ISC", "dependencies": { - "wrappy": "1" + "@isaacs/fs-minipass": "^4.0.0", + "chownr": "^3.0.0", + "minipass": "^7.1.2", + "minizlib": "^3.0.1", + "mkdirp": "^3.0.1", + "yallist": "^5.0.0" + }, + "engines": { + "node": ">=18" } }, - "node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "node_modules/node-gyp/node_modules/which": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/which/-/which-5.0.0.tgz", + "integrity": "sha512-JEdGzHwwkrbWoGOlIHqQ5gtprKGOenpDHpxE9zVR1bWbOtYRyPPHMe9FaP6x61CmNaTThSkb0DAJte5jD+DmzQ==", "dev": true, + "license": "ISC", "dependencies": { - "mimic-fn": "^2.1.0" + "isexe": "^3.1.1" }, - "engines": { - "node": ">=6" + "bin": { + "node-which": "bin/which.js" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": "^18.17.0 || >=20.5.0" } }, - "node_modules/open": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/open/-/open-10.1.0.tgz", - "integrity": "sha512-mnkeQ1qP5Ue2wd+aivTD3NHd/lZ96Lu0jgf0pwktLPtx6cTZiH7tyeGRRHs0zX0rbrahXPnXlUnbeXyaBBuIaw==", + "node_modules/node-gyp/node_modules/yallist": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-5.0.0.tgz", + "integrity": "sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==", "dev": true, - "license": "MIT", - "dependencies": { - "default-browser": "^5.2.1", - "define-lazy-prop": "^3.0.0", - "is-inside-container": "^1.0.0", - "is-wsl": "^3.1.0" - }, + "license": "BlueOak-1.0.0", "engines": { "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/ora": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", - "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", + "node_modules/node-releases": { + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", + "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", + "dev": true, + "license": "MIT" + }, + "node_modules/nopt": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-8.1.0.tgz", + "integrity": "sha512-ieGu42u/Qsa4TFktmaKEwM6MQH0pOWnaB3htzh0JRtx84+Mebc0cbZYN5bC+6WTZ4+77xrL9Pn5m7CV6VIkV7A==", "dev": true, + "license": "ISC", "dependencies": { - "bl": "^4.1.0", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-spinners": "^2.5.0", - "is-interactive": "^1.0.0", - "is-unicode-supported": "^0.1.0", - "log-symbols": "^4.1.0", - "strip-ansi": "^6.0.0", - "wcwidth": "^1.0.1" + "abbrev": "^3.0.0" }, - "engines": { - "node": ">=10" + "bin": { + "nopt": "bin/nopt.js" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": "^18.17.0 || >=20.5.0" } }, - "node_modules/ora/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "node": ">=0.10.0" } }, - "node_modules/ora/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-bundled": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-4.0.0.tgz", + "integrity": "sha512-IxaQZDMsqfQ2Lz37VvyyEtKLe8FsRZuysmedy/N06TU1RyVppYKXrO4xIhR0F+7ubIBox6Q7nir6fQI3ej39iA==", "dev": true, + "license": "ISC", "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "npm-normalize-package-bin": "^4.0.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "node": "^18.17.0 || >=20.5.0" } }, - "node_modules/ora/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/npm-install-checks": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-7.1.1.tgz", + "integrity": "sha512-u6DCwbow5ynAX5BdiHQ9qvexme4U3qHW3MWe5NqH+NeBm0LbiH6zvGjNNew1fY+AZZUtVHbOPF3j7mJxbUzpXg==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "color-name": "~1.1.4" + "semver": "^7.1.1" }, "engines": { - "node": ">=7.0.0" + "node": "^18.17.0 || >=20.5.0" } }, - "node_modules/ora/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/ora/node_modules/has-flag": { + "node_modules/npm-normalize-package-bin": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-4.0.0.tgz", + "integrity": "sha512-TZKxPvItzai9kN9H/TkmCtx/ZN/hvr3vUycjlfmH0ootY9yFBzNOpiXAdIn1Iteqsvk4lQn6B5PTrt+n6h8k/w==", "dev": true, + "license": "ISC", "engines": { - "node": ">=8" + "node": "^18.17.0 || >=20.5.0" } }, - "node_modules/ora/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/npm-package-arg": { + "version": "12.0.1", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-12.0.1.tgz", + "integrity": "sha512-aDxjFfPV3Liw0WOBWlyZLMBqtbgbg03rmGvHDJa2Ttv7tIz+1oB5qWec4psCDFZcZi9b5XdGkPdQiJxOPzvQRQ==", "dev": true, + "license": "ISC", "dependencies": { - "has-flag": "^4.0.0" + "hosted-git-info": "^8.0.0", + "proc-log": "^5.0.0", + "semver": "^7.3.5", + "validate-npm-package-name": "^6.0.0" }, "engines": { - "node": ">=8" + "node": "^18.17.0 || >=20.5.0" } }, - "node_modules/ordered-binary": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/ordered-binary/-/ordered-binary-1.5.2.tgz", - "integrity": "sha512-JTo+4+4Fw7FreyAvlSLjb1BBVaxEQAacmjD3jjuyPZclpbEghTvQZbXBb2qPd2LeIMxiHwXBZUcpmG2Gl/mDEA==", - "dev": true, - "license": "MIT" - }, - "node_modules/os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", + "node_modules/npm-packlist": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-9.0.0.tgz", + "integrity": "sha512-8qSayfmHJQTx3nJWYbbUmflpyarbLMBc6LCAjYsiGtXxDB68HaZpb8re6zeaLGxZzDuMdhsg70jryJe+RrItVQ==", "dev": true, - "license": "MIT", + "license": "ISC", + "dependencies": { + "ignore-walk": "^7.0.0" + }, "engines": { - "node": ">=0.10.0" + "node": "^18.17.0 || >=20.5.0" } }, - "node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "node_modules/npm-pick-manifest": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-10.0.0.tgz", + "integrity": "sha512-r4fFa4FqYY8xaM7fHecQ9Z2nE9hgNfJR+EmoKv0+chvzWkBcORX3r0FpTByP+CbOVJDladMXnPQGVN8PBLGuTQ==", "dev": true, + "license": "ISC", "dependencies": { - "p-try": "^2.0.0" + "npm-install-checks": "^7.1.0", + "npm-normalize-package-bin": "^4.0.0", + "npm-package-arg": "^12.0.0", + "semver": "^7.3.5" }, "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": "^18.17.0 || >=20.5.0" } }, - "node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "node_modules/npm-registry-fetch": { + "version": "18.0.2", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-18.0.2.tgz", + "integrity": "sha512-LeVMZBBVy+oQb5R6FDV9OlJCcWDU+al10oKpe+nsvcHnG24Z3uM3SvJYKfGJlfGjVU8v9liejCrUR/M5HO5NEQ==", "dev": true, + "license": "ISC", "dependencies": { - "p-limit": "^2.2.0" + "@npmcli/redact": "^3.0.0", + "jsonparse": "^1.3.1", + "make-fetch-happen": "^14.0.0", + "minipass": "^7.0.2", + "minipass-fetch": "^4.0.0", + "minizlib": "^3.0.1", + "npm-package-arg": "^12.0.0", + "proc-log": "^5.0.0" }, "engines": { - "node": ">=8" + "node": "^18.17.0 || >=20.5.0" } }, - "node_modules/p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "node_modules/npm-run-all": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/npm-run-all/-/npm-run-all-4.1.5.tgz", + "integrity": "sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==", "dev": true, - "license": "MIT", "dependencies": { - "aggregate-error": "^3.0.0" + "ansi-styles": "^3.2.1", + "chalk": "^2.4.1", + "cross-spawn": "^6.0.5", + "memorystream": "^0.3.1", + "minimatch": "^3.0.4", + "pidtree": "^0.3.0", + "read-pkg": "^3.0.0", + "shell-quote": "^1.6.1", + "string.prototype.padend": "^3.0.0" }, - "engines": { - "node": ">=10" + "bin": { + "npm-run-all": "bin/npm-run-all/index.js", + "run-p": "bin/run-p/index.js", + "run-s": "bin/run-s/index.js" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": ">= 4" } }, - "node_modules/p-retry": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-6.2.0.tgz", - "integrity": "sha512-JA6nkq6hKyWLLasXQXUrO4z8BUZGUt/LjlJxx8Gb2+2ntodU/SS63YZ8b0LUTbQ8ZB9iwOfhEPhg4ykKnn2KsA==", + "node_modules/npm-run-all/node_modules/cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", "dev": true, - "license": "MIT", "dependencies": { - "@types/retry": "0.12.2", - "is-network-error": "^1.0.0", - "retry": "^0.13.1" + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" }, "engines": { - "node": ">=16.17" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=4.8" } }, - "node_modules/p-retry/node_modules/retry": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", - "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", + "node_modules/npm-run-all/node_modules/path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", "dev": true, - "license": "MIT", "engines": { - "node": ">= 4" + "node": ">=4" } }, - "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "node_modules/npm-run-all/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "dev": true, - "engines": { - "node": ">=6" + "bin": { + "semver": "bin/semver" } }, - "node_modules/package-json-from-dist": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz", - "integrity": "sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==", - "dev": true, - "license": "BlueOak-1.0.0" - }, - "node_modules/pacote": { - "version": "18.0.6", - "resolved": "https://registry.npmjs.org/pacote/-/pacote-18.0.6.tgz", - "integrity": "sha512-+eK3G27SMwsB8kLIuj4h1FUhHtwiEUo21Tw8wNjmvdlpOEr613edv+8FUsTj/4F/VN5ywGE19X18N7CC2EJk6A==", + "node_modules/npm-run-all/node_modules/shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", "dev": true, - "license": "ISC", "dependencies": { - "@npmcli/git": "^5.0.0", - "@npmcli/installed-package-contents": "^2.0.1", - "@npmcli/package-json": "^5.1.0", - "@npmcli/promise-spawn": "^7.0.0", - "@npmcli/run-script": "^8.0.0", - "cacache": "^18.0.0", - "fs-minipass": "^3.0.0", - "minipass": "^7.0.2", - "npm-package-arg": "^11.0.0", - "npm-packlist": "^8.0.0", - "npm-pick-manifest": "^9.0.0", - "npm-registry-fetch": "^17.0.0", - "proc-log": "^4.0.0", - "promise-retry": "^2.0.1", - "sigstore": "^2.2.0", - "ssri": "^10.0.0", - "tar": "^6.1.11" - }, - "bin": { - "pacote": "bin/index.js" + "shebang-regex": "^1.0.0" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": ">=0.10.0" } }, - "node_modules/parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "node_modules/npm-run-all/node_modules/shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", "dev": true, - "dependencies": { - "callsites": "^3.0.0" - }, "engines": { - "node": ">=6" + "node": ">=0.10.0" } }, - "node_modules/parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - }, - "engines": { - "node": ">=8" + "boolbase": "^1.0.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/fb55/nth-check?sponsor=1" } }, - "node_modules/parse-json/node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true - }, - "node_modules/parse-node-version": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", - "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==", + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", "dev": true, "engines": { - "node": ">= 0.10" + "node": ">=0.10.0" } }, - "node_modules/parse5": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", - "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", - "devOptional": true, - "dependencies": { - "entities": "^4.4.0" - }, + "node_modules/object-inspect": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", + "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", + "dev": true, "funding": { - "url": "https://github.com/inikulin/parse5?sponsor=1" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/parse5-html-rewriting-stream": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/parse5-html-rewriting-stream/-/parse5-html-rewriting-stream-7.0.0.tgz", - "integrity": "sha512-mazCyGWkmCRWDI15Zp+UiCqMp/0dgEmkZRvhlsqqKYr4SsVm/TvnSpD9fCvqCA2zoWJcfRym846ejWBBHRiYEg==", + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", "dev": true, - "license": "MIT", - "dependencies": { - "entities": "^4.3.0", - "parse5": "^7.0.0", - "parse5-sax-parser": "^7.0.0" - }, - "funding": { - "url": "https://github.com/inikulin/parse5?sponsor=1" + "engines": { + "node": ">= 0.4" } }, - "node_modules/parse5-sax-parser": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/parse5-sax-parser/-/parse5-sax-parser-7.0.0.tgz", - "integrity": "sha512-5A+v2SNsq8T6/mG3ahcz8ZtQ0OUFTatxPbeidoMB7tkJSGDY3tdfl4MHovtLQHkEn5CGxijNWRQHhRQ6IRpXKg==", + "node_modules/object.assign": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", + "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", "dev": true, - "license": "MIT", "dependencies": { - "parse5": "^7.0.0" + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/inikulin/parse5?sponsor=1" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "node_modules/obuf": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", "dev": true, - "engines": { - "node": ">= 0.8" - } + "license": "MIT" }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", "dev": true, + "dependencies": { + "ee-first": "1.1.1" + }, "engines": { - "node": ">=8" + "node": ">= 0.8" } }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "node_modules/on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", "dev": true, + "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">= 0.8" } }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" + "dependencies": { + "wrappy": "1" } }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "node_modules/path-scurry": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", - "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", "dev": true, - "license": "BlueOak-1.0.0", "dependencies": { - "lru-cache": "^10.2.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + "mimic-fn": "^2.1.0" }, "engines": { - "node": ">=16 || 14 >=14.18" + "node": ">=6" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/path-scurry/node_modules/lru-cache": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/path-to-regexp": { - "version": "0.1.10", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.10.tgz", - "integrity": "sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w==", - "dev": true, - "license": "MIT" - }, - "node_modules/path-type": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-5.0.0.tgz", - "integrity": "sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==", + "node_modules/open": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/open/-/open-10.1.0.tgz", + "integrity": "sha512-mnkeQ1qP5Ue2wd+aivTD3NHd/lZ96Lu0jgf0pwktLPtx6cTZiH7tyeGRRHs0zX0rbrahXPnXlUnbeXyaBBuIaw==", "dev": true, "license": "MIT", + "dependencies": { + "default-browser": "^5.2.1", + "define-lazy-prop": "^3.0.0", + "is-inside-container": "^1.0.0", + "is-wsl": "^3.1.0" + }, "engines": { - "node": ">=12" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/picocolors": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.0.tgz", - "integrity": "sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==", + "node_modules/ora": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", + "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", "dev": true, - "license": "ISC" + "dependencies": { + "bl": "^4.1.0", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "log-symbols": "^4.1.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "node_modules/picomatch": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", - "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "node_modules/ora/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, "engines": { - "node": ">=12" + "node": ">=8" }, "funding": { - "url": "https://github.com/sponsors/jonschlinkert" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/pidtree": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.3.1.tgz", - "integrity": "sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==", + "node_modules/ora/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, - "bin": { - "pidtree": "bin/pidtree.js" + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">=0.10" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "node_modules/ora/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, - "optional": true, + "dependencies": { + "color-name": "~1.1.4" + }, "engines": { - "node": ">=6" + "node": ">=7.0.0" } }, - "node_modules/pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==", + "node_modules/ora/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/ora/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", + "node_modules/ora/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { - "pinkie": "^2.0.0" + "has-flag": "^4.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/piscina": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/piscina/-/piscina-4.6.1.tgz", - "integrity": "sha512-z30AwWGtQE+Apr+2WBZensP2lIvwoaMcOPkQlIEmSGMJNUvaYACylPYrQM6wSdUNJlnDVMSpLv7xTMJqlVshOA==", + "node_modules/ordered-binary": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/ordered-binary/-/ordered-binary-1.5.3.tgz", + "integrity": "sha512-oGFr3T+pYdTGJ+YFEILMpS3es+GiIbs9h/XQrclBXUtd44ey7XwfsMzM31f64I1SQOawDoDr/D823kNCADI8TA==", "dev": true, "license": "MIT", - "optionalDependencies": { - "nice-napi": "^1.0.2" + "optional": true + }, + "node_modules/os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" } }, - "node_modules/pkg-dir": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-7.0.0.tgz", - "integrity": "sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==", + "node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, "dependencies": { - "find-up": "^6.3.0" + "p-try": "^2.0.0" }, "engines": { - "node": ">=14.16" + "node": ">=6" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/pkg-dir/node_modules/find-up": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz", - "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", + "node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, "dependencies": { - "locate-path": "^7.1.0", - "path-exists": "^5.0.0" + "p-limit": "^2.2.0" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=8" } }, - "node_modules/pkg-dir/node_modules/locate-path": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", - "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", + "node_modules/p-map": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-7.0.3.tgz", + "integrity": "sha512-VkndIv2fIB99swvQoA65bm+fsmt6UNdGeIB0oxBs+WhAhdh08QA04JXpI7rbB9r08/nkbysKoya9rtDERYOYMA==", "dev": true, - "dependencies": { - "p-locate": "^6.0.0" - }, + "license": "MIT", "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/pkg-dir/node_modules/p-limit": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", - "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", + "node_modules/p-retry": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-6.2.1.tgz", + "integrity": "sha512-hEt02O4hUct5wtwg4H4KcWgDdm+l1bOaEy/hWzd8xtXB9BqxTWBBhb+2ImAtH4Cv4rPjV76xN3Zumqk3k3AhhQ==", "dev": true, + "license": "MIT", "dependencies": { - "yocto-queue": "^1.0.0" + "@types/retry": "0.12.2", + "is-network-error": "^1.0.0", + "retry": "^0.13.1" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=16.17" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/pkg-dir/node_modules/p-locate": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", - "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", + "node_modules/p-retry/node_modules/retry": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", + "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", "dev": true, - "dependencies": { - "p-limit": "^4.0.0" - }, + "license": "MIT", "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">= 4" } }, - "node_modules/pkg-dir/node_modules/path-exists": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", - "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=6" } }, - "node_modules/possible-typed-array-names": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", - "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", + "node_modules/package-json-from-dist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", + "dev": true, + "license": "BlueOak-1.0.0" + }, + "node_modules/pacote": { + "version": "20.0.0", + "resolved": "https://registry.npmjs.org/pacote/-/pacote-20.0.0.tgz", + "integrity": "sha512-pRjC5UFwZCgx9kUFDVM9YEahv4guZ1nSLqwmWiLUnDbGsjs+U5w7z6Uc8HNR1a6x8qnu5y9xtGE6D1uAuYz+0A==", "dev": true, + "license": "ISC", + "dependencies": { + "@npmcli/git": "^6.0.0", + "@npmcli/installed-package-contents": "^3.0.0", + "@npmcli/package-json": "^6.0.0", + "@npmcli/promise-spawn": "^8.0.0", + "@npmcli/run-script": "^9.0.0", + "cacache": "^19.0.0", + "fs-minipass": "^3.0.0", + "minipass": "^7.0.2", + "npm-package-arg": "^12.0.0", + "npm-packlist": "^9.0.0", + "npm-pick-manifest": "^10.0.0", + "npm-registry-fetch": "^18.0.0", + "proc-log": "^5.0.0", + "promise-retry": "^2.0.1", + "sigstore": "^3.0.0", + "ssri": "^12.0.0", + "tar": "^6.1.11" + }, + "bin": { + "pacote": "bin/index.js" + }, "engines": { - "node": ">= 0.4" + "node": "^18.17.0 || >=20.5.0" } }, - "node_modules/postcss": { - "version": "8.4.41", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.41.tgz", - "integrity": "sha512-TesUflQ0WKZqAvg52PWL6kHgLKP6xB6heTOdoYM0Wt2UHyxNa4K25EZZMgKns3BH1RLVbZCREPpLY0rhnNoHVQ==", + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", "dependencies": { - "nanoid": "^3.3.7", - "picocolors": "^1.0.1", - "source-map-js": "^1.2.0" + "callsites": "^3.0.0" }, "engines": { - "node": "^10 || ^12 || >=14" + "node": ">=6" } }, - "node_modules/postcss-loader": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-8.1.1.tgz", - "integrity": "sha512-0IeqyAsG6tYiDRCYKQJLAmgQr47DX6N7sFSWvQxt6AcupX8DIdmykuk/o/tx0Lze3ErGHJEp5OSRxrelC6+NdQ==", + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", "dev": true, "dependencies": { - "cosmiconfig": "^9.0.0", - "jiti": "^1.20.0", - "semver": "^7.5.4" + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" }, "engines": { - "node": ">= 18.12.0" + "node": ">=8" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "@rspack/core": "0.x || 1.x", - "postcss": "^7.0.0 || ^8.0.1", - "webpack": "^5.0.0" - }, - "peerDependenciesMeta": { - "@rspack/core": { - "optional": true - }, - "webpack": { - "optional": true - } + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/postcss-media-query-parser": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz", - "integrity": "sha512-3sOlxmbKcSHMjlUXQZKQ06jOswE7oVkXPxmZdoB1r5l0q6gTFTQSHxNxOrCccElbW7dxNytifNEo8qidX2Vsig==", - "dev": true, - "license": "MIT" + "node_modules/parse-json/node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true }, - "node_modules/postcss-modules-extract-imports": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.1.0.tgz", - "integrity": "sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==", + "node_modules/parse-node-version": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", + "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==", "dev": true, - "license": "ISC", "engines": { - "node": "^10 || ^12 || >= 14" + "node": ">= 0.10" + } + }, + "node_modules/parse5": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", + "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", + "devOptional": true, + "dependencies": { + "entities": "^4.4.0" }, - "peerDependencies": { - "postcss": "^8.1.0" + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" } }, - "node_modules/postcss-modules-local-by-default": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.5.tgz", - "integrity": "sha512-6MieY7sIfTK0hYfafw1OMEG+2bg8Q1ocHCpoWLqOKj3JXlKu4G7btkmM/B7lFubYkYWmRSPLZi5chid63ZaZYw==", + "node_modules/parse5-html-rewriting-stream": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/parse5-html-rewriting-stream/-/parse5-html-rewriting-stream-7.0.0.tgz", + "integrity": "sha512-mazCyGWkmCRWDI15Zp+UiCqMp/0dgEmkZRvhlsqqKYr4SsVm/TvnSpD9fCvqCA2zoWJcfRym846ejWBBHRiYEg==", "dev": true, "license": "MIT", "dependencies": { - "icss-utils": "^5.0.0", - "postcss-selector-parser": "^6.0.2", - "postcss-value-parser": "^4.1.0" - }, - "engines": { - "node": "^10 || ^12 || >= 14" + "entities": "^4.3.0", + "parse5": "^7.0.0", + "parse5-sax-parser": "^7.0.0" }, - "peerDependencies": { - "postcss": "^8.1.0" + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" } }, - "node_modules/postcss-modules-scope": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.2.0.tgz", - "integrity": "sha512-oq+g1ssrsZOsx9M96c5w8laRmvEu9C3adDSjI8oTcbfkrTE8hx/zfyobUoWIxaKPO8bt6S62kxpw5GqypEw1QQ==", + "node_modules/parse5-sax-parser": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/parse5-sax-parser/-/parse5-sax-parser-7.0.0.tgz", + "integrity": "sha512-5A+v2SNsq8T6/mG3ahcz8ZtQ0OUFTatxPbeidoMB7tkJSGDY3tdfl4MHovtLQHkEn5CGxijNWRQHhRQ6IRpXKg==", "dev": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "postcss-selector-parser": "^6.0.4" + "parse5": "^7.0.0" }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true, "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" + "node": ">= 0.8" } }, - "node_modules/postcss-modules-values": { + "node_modules/path-exists": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", - "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true, - "license": "ISC", - "dependencies": { - "icss-utils": "^5.0.0" - }, "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" + "node": ">=8" } }, - "node_modules/postcss-selector-parser": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", - "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", "dev": true, - "license": "MIT", + "license": "BlueOak-1.0.0", "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" }, "engines": { - "node": ">=4" + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/postcss-value-parser": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/path-to-regexp": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.12.tgz", + "integrity": "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==", "dev": true, "license": "MIT" }, - "node_modules/proc-log": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-4.2.0.tgz", - "integrity": "sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA==", + "node_modules/path-type": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-5.0.0.tgz", + "integrity": "sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==", "dev": true, - "license": "ISC", + "license": "MIT", "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true, - "license": "MIT" - }, - "node_modules/promise-inflight": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==", + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", "dev": true, "license": "ISC" }, - "node_modules/promise-retry": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", - "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", + "node_modules/picomatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", "dev": true, "license": "MIT", - "dependencies": { - "err-code": "^2.0.2", - "retry": "^0.12.0" - }, "engines": { - "node": ">=10" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/proxy-addr": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "node_modules/pidtree": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.3.1.tgz", + "integrity": "sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==", "dev": true, - "license": "MIT", - "dependencies": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" + "bin": { + "pidtree": "bin/pidtree.js" }, "engines": { - "node": ">= 0.10" + "node": ">=0.10" } }, - "node_modules/proxy-addr/node_modules/ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", "dev": true, - "license": "MIT", + "optional": true, "engines": { - "node": ">= 0.10" + "node": ">=6" } }, - "node_modules/prr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", + "node_modules/pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==", "dev": true, - "optional": true + "engines": { + "node": ">=0.10.0" + } }, - "node_modules/punycode": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "node_modules/pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", "dev": true, + "dependencies": { + "pinkie": "^2.0.0" + }, "engines": { - "node": ">=6" + "node": ">=0.10.0" } }, - "node_modules/qjobs": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/qjobs/-/qjobs-1.2.0.tgz", - "integrity": "sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg==", + "node_modules/piscina": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/piscina/-/piscina-4.8.0.tgz", + "integrity": "sha512-EZJb+ZxDrQf3dihsUL7p42pjNyrNIFJCrRHPMgxu/svsj+P3xS3fuEWp7k2+rfsavfl1N0G29b1HGs7J0m8rZA==", "dev": true, - "engines": { - "node": ">=0.9" + "license": "MIT", + "optionalDependencies": { + "@napi-rs/nice": "^1.0.1" } }, - "node_modules/qs": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", - "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", + "node_modules/pkg-dir": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-7.0.0.tgz", + "integrity": "sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==", "dev": true, - "license": "BSD-3-Clause", + "license": "MIT", "dependencies": { - "side-channel": "^1.0.6" + "find-up": "^6.3.0" }, "engines": { - "node": ">=0.6" + "node": ">=14.16" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "node_modules/pkg-dir/node_modules/find-up": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz", + "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", "dev": true, + "license": "MIT", "dependencies": { - "safe-buffer": "^5.1.0" + "locate-path": "^7.1.0", + "path-exists": "^5.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "node_modules/pkg-dir/node_modules/locate-path": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", + "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^6.0.0" + }, "engines": { - "node": ">= 0.6" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/raw-body": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", - "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "node_modules/pkg-dir/node_modules/p-limit": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", + "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", "dev": true, + "license": "MIT", "dependencies": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" + "yocto-queue": "^1.0.0" }, "engines": { - "node": ">= 0.8" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/read-pkg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", - "integrity": "sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==", + "node_modules/pkg-dir/node_modules/p-locate": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", + "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", "dev": true, + "license": "MIT", "dependencies": { - "load-json-file": "^4.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^3.0.0" + "p-limit": "^4.0.0" }, "engines": { - "node": ">=4" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/read-pkg/node_modules/hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "dev": true + "node_modules/pkg-dir/node_modules/path-exists": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", + "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } }, - "node_modules/read-pkg/node_modules/normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "node_modules/possible-typed-array-names": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", + "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", "dev": true, - "dependencies": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" + "engines": { + "node": ">= 0.4" } }, - "node_modules/read-pkg/node_modules/path-type": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "node_modules/postcss": { + "version": "8.4.49", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.49.tgz", + "integrity": "sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==", "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", "dependencies": { - "pify": "^3.0.0" + "nanoid": "^3.3.7", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" }, "engines": { - "node": ">=4" + "node": "^10 || ^12 || >=14" } }, - "node_modules/read-pkg/node_modules/pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "node_modules/postcss-loader": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-8.1.1.tgz", + "integrity": "sha512-0IeqyAsG6tYiDRCYKQJLAmgQr47DX6N7sFSWvQxt6AcupX8DIdmykuk/o/tx0Lze3ErGHJEp5OSRxrelC6+NdQ==", "dev": true, + "dependencies": { + "cosmiconfig": "^9.0.0", + "jiti": "^1.20.0", + "semver": "^7.5.4" + }, "engines": { - "node": ">=4" + "node": ">= 18.12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "@rspack/core": "0.x || 1.x", + "postcss": "^7.0.0 || ^8.0.1", + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "@rspack/core": { + "optional": true + }, + "webpack": { + "optional": true + } } }, - "node_modules/read-pkg/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "node_modules/postcss-media-query-parser": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz", + "integrity": "sha512-3sOlxmbKcSHMjlUXQZKQ06jOswE7oVkXPxmZdoB1r5l0q6gTFTQSHxNxOrCccElbW7dxNytifNEo8qidX2Vsig==", "dev": true, - "bin": { - "semver": "bin/semver" + "license": "MIT" + }, + "node_modules/postcss-modules-extract-imports": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.1.0.tgz", + "integrity": "sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" } }, - "node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "node_modules/postcss-modules-local-by-default": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.5.tgz", + "integrity": "sha512-6MieY7sIfTK0hYfafw1OMEG+2bg8Q1ocHCpoWLqOKj3JXlKu4G7btkmM/B7lFubYkYWmRSPLZi5chid63ZaZYw==", "dev": true, + "license": "MIT", "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" + "icss-utils": "^5.0.0", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.1.0" }, "engines": { - "node": ">= 6" + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" } }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "node_modules/postcss-modules-scope": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.2.0.tgz", + "integrity": "sha512-oq+g1ssrsZOsx9M96c5w8laRmvEu9C3adDSjI8oTcbfkrTE8hx/zfyobUoWIxaKPO8bt6S62kxpw5GqypEw1QQ==", "dev": true, + "license": "ISC", "dependencies": { - "picomatch": "^2.2.1" + "postcss-selector-parser": "^6.0.4" }, "engines": { - "node": ">=8.10.0" + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" } }, - "node_modules/readdirp/node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "node_modules/postcss-modules-values": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", + "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", "dev": true, + "license": "ISC", + "dependencies": { + "icss-utils": "^5.0.0" + }, "engines": { - "node": ">=8.6" + "node": "^10 || ^12 || >= 14" }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" + "peerDependencies": { + "postcss": "^8.1.0" } }, - "node_modules/reflect-metadata": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.2.2.tgz", - "integrity": "sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==", - "dev": true, - "license": "Apache-2.0" - }, - "node_modules/regenerate": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", - "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", - "dev": true, - "license": "MIT" - }, - "node_modules/regenerate-unicode-properties": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.0.tgz", - "integrity": "sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA==", + "node_modules/postcss-selector-parser": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", "dev": true, "license": "MIT", "dependencies": { - "regenerate": "^1.4.2" + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" }, "engines": { "node": ">=4" } }, - "node_modules/regenerator-runtime": { - "version": "0.14.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", - "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", "dev": true, "license": "MIT" }, - "node_modules/regenerator-transform": { - "version": "0.15.2", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", - "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", + "node_modules/proc-log": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-5.0.0.tgz", + "integrity": "sha512-Azwzvl90HaF0aCz1JrDdXQykFakSSNPaPoiZ9fm5qJIMHioDZEi7OAdRwSm6rSoPtY3Qutnm3L7ogmg3dc+wbQ==", "dev": true, - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.8.4" + "license": "ISC", + "engines": { + "node": "^18.17.0 || >=20.5.0" } }, - "node_modules/regex-parser": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.3.0.tgz", - "integrity": "sha512-TVILVSz2jY5D47F4mA4MppkBrafEaiUWJO/TcZHEIuI13AqoZMkK1WMA4Om1YkYbTx+9Ki1/tSUXbceyr9saRg==", - "dev": true + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true, + "license": "MIT" }, - "node_modules/regexp.prototype.flags": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz", - "integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==", + "node_modules/promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==", "dev": true, + "license": "ISC" + }, + "node_modules/promise-retry": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", + "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", + "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.6", - "define-properties": "^1.2.1", - "es-errors": "^1.3.0", - "set-function-name": "^2.0.1" + "err-code": "^2.0.2", + "retry": "^0.12.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=10" } }, - "node_modules/regexpu-core": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", - "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/regjsgen": "^0.8.0", - "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.1.0", - "regjsparser": "^0.9.1", - "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.1.0" + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" }, "engines": { - "node": ">=4" + "node": ">= 0.10" } }, - "node_modules/regjsparser": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", - "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", + "node_modules/proxy-addr/node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "jsesc": "~0.5.0" - }, - "bin": { - "regjsparser": "bin/parser" + "license": "MIT", + "engines": { + "node": ">= 0.10" } }, - "node_modules/regjsparser/node_modules/jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", + "node_modules/prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", "dev": true, - "bin": { - "jsesc": "bin/jsesc" - } + "optional": true }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">=6" } }, - "node_modules/require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "node_modules/qjobs": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/qjobs/-/qjobs-1.2.0.tgz", + "integrity": "sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg==", "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">=0.9" } }, - "node_modules/requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", - "dev": true - }, - "node_modules/resolve": { - "version": "1.22.8", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", - "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "node_modules/qs": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", + "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" + "side-channel": "^1.0.6" }, - "bin": { - "resolve": "bin/resolve" + "engines": { + "node": ">=0.6" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/resolve-url-loader": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-5.0.0.tgz", - "integrity": "sha512-uZtduh8/8srhBoMx//5bwqjQ+rfYOUq8zC9NrMUGtjBiGTtFJM42s58/36+hTqeqINcnYe08Nj3LkK9lW4N8Xg==", + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", "dev": true, - "dependencies": { - "adjust-sourcemap-loader": "^4.0.0", - "convert-source-map": "^1.7.0", - "loader-utils": "^2.0.0", - "postcss": "^8.2.14", - "source-map": "0.6.1" - }, - "engines": { - "node": ">=12" - } + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" }, - "node_modules/resolve-url-loader/node_modules/loader-utils": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", - "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", "dev": true, "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - }, - "engines": { - "node": ">=8.9.0" + "safe-buffer": "^5.1.0" } }, - "node_modules/resolve-url-loader/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">= 0.6" } }, - "node_modules/restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "node_modules/raw-body": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", "dev": true, "dependencies": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" }, "engines": { - "node": ">=8" - } - }, - "node_modules/retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 4" + "node": ">= 0.8" } }, - "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "node_modules/read-pkg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", + "integrity": "sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==", "dev": true, - "license": "MIT", + "dependencies": { + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" + }, "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" + "node": ">=4" } }, - "node_modules/rfdc": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.4.1.tgz", - "integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==", - "dev": true, - "license": "MIT" + "node_modules/read-pkg/node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "node_modules/read-pkg/node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", "dev": true, "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" } }, - "node_modules/rollup": { - "version": "4.22.4", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.22.4.tgz", - "integrity": "sha512-vD8HJ5raRcWOyymsR6Z3o6+RzfEPCnVLMFJ6vRslO1jt4LO6dUo5Qnpg7y4RkZFM2DMe3WUirkI5c16onjrc6A==", + "node_modules/read-pkg/node_modules/path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", "dev": true, - "license": "MIT", "dependencies": { - "@types/estree": "1.0.5" - }, - "bin": { - "rollup": "dist/bin/rollup" + "pify": "^3.0.0" }, "engines": { - "node": ">=18.0.0", - "npm": ">=8.0.0" - }, - "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.22.4", - "@rollup/rollup-android-arm64": "4.22.4", - "@rollup/rollup-darwin-arm64": "4.22.4", - "@rollup/rollup-darwin-x64": "4.22.4", - "@rollup/rollup-linux-arm-gnueabihf": "4.22.4", - "@rollup/rollup-linux-arm-musleabihf": "4.22.4", - "@rollup/rollup-linux-arm64-gnu": "4.22.4", - "@rollup/rollup-linux-arm64-musl": "4.22.4", - "@rollup/rollup-linux-powerpc64le-gnu": "4.22.4", - "@rollup/rollup-linux-riscv64-gnu": "4.22.4", - "@rollup/rollup-linux-s390x-gnu": "4.22.4", - "@rollup/rollup-linux-x64-gnu": "4.22.4", - "@rollup/rollup-linux-x64-musl": "4.22.4", - "@rollup/rollup-win32-arm64-msvc": "4.22.4", - "@rollup/rollup-win32-ia32-msvc": "4.22.4", - "@rollup/rollup-win32-x64-msvc": "4.22.4", - "fsevents": "~2.3.2" + "node": ">=4" } }, - "node_modules/run-applescript": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-7.0.0.tgz", - "integrity": "sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==", + "node_modules/read-pkg/node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", "dev": true, - "license": "MIT", "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=4" } }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "node_modules/read-pkg/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "dependencies": { - "queue-microtask": "^1.2.2" + "bin": { + "semver": "bin/semver" } }, - "node_modules/rxjs": { - "version": "7.8.1", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", - "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, "dependencies": { - "tslib": "^2.1.0" + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" } }, - "node_modules/safe-array-concat": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz", - "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==", + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", "dev": true, "dependencies": { - "call-bind": "^1.0.7", - "get-intrinsic": "^1.2.4", - "has-symbols": "^1.0.3", - "isarray": "^2.0.5" + "picomatch": "^2.2.1" }, "engines": { - "node": ">=0.4" + "node": ">=8.10.0" + } + }, + "node_modules/readdirp/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/safe-array-concat/node_modules/isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "dev": true + "node_modules/reflect-metadata": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.2.2.tgz", + "integrity": "sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==", + "dev": true, + "license": "Apache-2.0" }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "node_modules/regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] + "license": "MIT" }, - "node_modules/safe-regex-test": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", - "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", + "node_modules/regenerate-unicode-properties": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.0.tgz", + "integrity": "sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.6", - "es-errors": "^1.3.0", - "is-regex": "^1.1.4" + "regenerate": "^1.4.2" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=4" } }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true + "node_modules/regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", + "dev": true, + "license": "MIT" }, - "node_modules/sass": { - "version": "1.77.6", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.77.6.tgz", - "integrity": "sha512-ByXE1oLD79GVq9Ht1PeHWCPMPB8XHpBuz1r85oByKHjZY6qV6rWnQovQzXJXuQ/XyE1Oj3iPk3lo28uzaRA2/Q==", + "node_modules/regenerator-transform": { + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", + "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", "dev": true, "license": "MIT", "dependencies": { - "chokidar": ">=3.0.0 <4.0.0", - "immutable": "^4.0.0", - "source-map-js": ">=0.6.2 <2.0.0" - }, - "bin": { - "sass": "sass.js" - }, - "engines": { - "node": ">=14.0.0" + "@babel/runtime": "^7.8.4" } }, - "node_modules/sass-loader": { - "version": "16.0.0", - "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-16.0.0.tgz", - "integrity": "sha512-n13Z+3rU9A177dk4888czcVFiC8CL9dii4qpXWUg3YIIgZEvi9TCFKjOQcbK0kJM7DJu9VucrZFddvNfYCPwtw==", + "node_modules/regex-parser": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.3.0.tgz", + "integrity": "sha512-TVILVSz2jY5D47F4mA4MppkBrafEaiUWJO/TcZHEIuI13AqoZMkK1WMA4Om1YkYbTx+9Ki1/tSUXbceyr9saRg==", + "dev": true + }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz", + "integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==", "dev": true, - "license": "MIT", "dependencies": { - "neo-async": "^2.6.2" + "call-bind": "^1.0.6", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "set-function-name": "^2.0.1" }, "engines": { - "node": ">= 18.12.0" + "node": ">= 0.4" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "@rspack/core": "0.x || 1.x", - "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0", - "sass": "^1.3.0", - "sass-embedded": "*", - "webpack": "^5.0.0" - }, - "peerDependenciesMeta": { - "@rspack/core": { - "optional": true - }, - "node-sass": { - "optional": true - }, - "sass": { - "optional": true - }, - "sass-embedded": { - "optional": true - }, - "webpack": { - "optional": true - } + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/sax": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.3.0.tgz", - "integrity": "sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==", - "dev": true, - "optional": true - }, - "node_modules/schema-utils": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", - "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", + "node_modules/regexpu-core": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.2.0.tgz", + "integrity": "sha512-H66BPQMrv+V16t8xtmq+UC0CBpiTBA60V8ibS1QVReIp8T1z8hwFxqcGzm9K6lgsN7sB5edVH8a+ze6Fqm4weA==", "dev": true, + "license": "MIT", "dependencies": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.9.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.1.0" + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.2.0", + "regjsgen": "^0.8.0", + "regjsparser": "^0.12.0", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.1.0" }, "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" + "node": ">=4" } }, - "node_modules/select-hose": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", - "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==", + "node_modules/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==", "dev": true, "license": "MIT" }, - "node_modules/selfsigned": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.4.1.tgz", - "integrity": "sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==", + "node_modules/regjsparser": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.12.0.tgz", + "integrity": "sha512-cnE+y8bz4NhMjISKbgeVJtqNbtf5QpjZP+Bslo+UqkIt9QPnX9q095eiRRASJG1/tz6dlNr6Z5NsBiWYokp6EQ==", "dev": true, - "license": "MIT", + "license": "BSD-2-Clause", "dependencies": { - "@types/node-forge": "^1.3.0", - "node-forge": "^1" + "jsesc": "~3.0.2" }, - "engines": { - "node": ">=10" + "bin": { + "regjsparser": "bin/parser" } }, - "node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "node_modules/regjsparser/node_modules/jsesc": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", + "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", "dev": true, - "license": "ISC", + "license": "MIT", "bin": { - "semver": "bin/semver.js" + "jsesc": "bin/jsesc" }, "engines": { - "node": ">=10" + "node": ">=6" } }, - "node_modules/send": { - "version": "0.19.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", - "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", "dev": true, - "license": "MIT", - "dependencies": { - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "2.4.1", - "range-parser": "~1.2.1", - "statuses": "2.0.1" - }, "engines": { - "node": ">= 0.8.0" + "node": ">=0.10.0" } }, - "node_modules/send/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", "dev": true, - "license": "MIT", - "dependencies": { - "ms": "2.0.0" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/send/node_modules/debug/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true, - "license": "MIT" + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", + "dev": true }, - "node_modules/send/node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "node_modules/resolve": { + "version": "1.22.10", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", + "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", "dev": true, "license": "MIT", + "dependencies": { + "is-core-module": "^2.16.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, "bin": { - "mime": "cli.js" + "resolve": "bin/resolve" }, "engines": { - "node": ">=4" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/send/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true, - "license": "MIT" - }, - "node_modules/send/node_modules/statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "node_modules/resolve-url-loader": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-5.0.0.tgz", + "integrity": "sha512-uZtduh8/8srhBoMx//5bwqjQ+rfYOUq8zC9NrMUGtjBiGTtFJM42s58/36+hTqeqINcnYe08Nj3LkK9lW4N8Xg==", "dev": true, - "license": "MIT", + "dependencies": { + "adjust-sourcemap-loader": "^4.0.0", + "convert-source-map": "^1.7.0", + "loader-utils": "^2.0.0", + "postcss": "^8.2.14", + "source-map": "0.6.1" + }, "engines": { - "node": ">= 0.8" + "node": ">=12" } }, - "node_modules/serialize-javascript": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", - "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", + "node_modules/resolve-url-loader/node_modules/loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", "dev": true, "dependencies": { - "randombytes": "^2.1.0" + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" } }, - "node_modules/serve-index": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", - "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==", + "node_modules/resolve-url-loader/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, - "license": "MIT", - "dependencies": { - "accepts": "~1.3.4", - "batch": "0.6.1", - "debug": "2.6.9", - "escape-html": "~1.0.3", - "http-errors": "~1.6.2", - "mime-types": "~2.1.17", - "parseurl": "~1.3.2" - }, "engines": { - "node": ">= 0.8.0" + "node": ">=0.10.0" } }, - "node_modules/serve-index/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "node_modules/restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", "dev": true, - "license": "MIT", "dependencies": { - "ms": "2.0.0" + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" } }, - "node_modules/serve-index/node_modules/depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "node_modules/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", "dev": true, "license": "MIT", "engines": { - "node": ">= 0.6" + "node": ">= 4" } }, - "node_modules/serve-index/node_modules/http-errors": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", - "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", "dev": true, "license": "MIT", - "dependencies": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.0", - "statuses": ">= 1.4.0 < 2" - }, "engines": { - "node": ">= 0.6" + "iojs": ">=1.0.0", + "node": ">=0.10.0" } }, - "node_modules/serve-index/node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", - "dev": true, - "license": "ISC" - }, - "node_modules/serve-index/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "node_modules/rfdc": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.4.1.tgz", + "integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==", "dev": true, "license": "MIT" }, - "node_modules/serve-index/node_modules/setprototypeof": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", - "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "dev": true, - "license": "ISC" + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } }, - "node_modules/serve-static": { - "version": "1.16.2", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz", - "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==", + "node_modules/rollup": { + "version": "4.30.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.30.1.tgz", + "integrity": "sha512-mlJ4glW020fPuLi7DkM/lN97mYEZGWeqBnrljzN0gs7GLctqX3lNWxKQ7Gl712UAX+6fog/L3jh4gb7R6aVi3w==", "dev": true, "license": "MIT", "dependencies": { - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.19.0" + "@types/estree": "1.0.6" + }, + "bin": { + "rollup": "dist/bin/rollup" }, "engines": { - "node": ">= 0.8.0" + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.30.1", + "@rollup/rollup-android-arm64": "4.30.1", + "@rollup/rollup-darwin-arm64": "4.30.1", + "@rollup/rollup-darwin-x64": "4.30.1", + "@rollup/rollup-freebsd-arm64": "4.30.1", + "@rollup/rollup-freebsd-x64": "4.30.1", + "@rollup/rollup-linux-arm-gnueabihf": "4.30.1", + "@rollup/rollup-linux-arm-musleabihf": "4.30.1", + "@rollup/rollup-linux-arm64-gnu": "4.30.1", + "@rollup/rollup-linux-arm64-musl": "4.30.1", + "@rollup/rollup-linux-loongarch64-gnu": "4.30.1", + "@rollup/rollup-linux-powerpc64le-gnu": "4.30.1", + "@rollup/rollup-linux-riscv64-gnu": "4.30.1", + "@rollup/rollup-linux-s390x-gnu": "4.30.1", + "@rollup/rollup-linux-x64-gnu": "4.30.1", + "@rollup/rollup-linux-x64-musl": "4.30.1", + "@rollup/rollup-win32-arm64-msvc": "4.30.1", + "@rollup/rollup-win32-ia32-msvc": "4.30.1", + "@rollup/rollup-win32-x64-msvc": "4.30.1", + "fsevents": "~2.3.2" } }, - "node_modules/serve-static/node_modules/encodeurl": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", - "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "node_modules/run-applescript": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-7.0.0.tgz", + "integrity": "sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==", "dev": true, "license": "MIT", "engines": { - "node": ">= 0.8" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/set-function-length": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", - "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/safe-array-concat": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz", + "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==", "dev": true, "dependencies": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", + "call-bind": "^1.0.7", "get-intrinsic": "^1.2.4", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.2" + "has-symbols": "^1.0.3", + "isarray": "^2.0.5" }, "engines": { - "node": ">= 0.4" + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/set-function-name": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", - "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", + "node_modules/safe-array-concat/node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/safe-regex-test": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", + "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", "dev": true, "dependencies": { - "define-data-property": "^1.1.4", + "call-bind": "^1.0.6", "es-errors": "^1.3.0", - "functions-have-names": "^1.2.3", - "has-property-descriptors": "^1.0.2" + "is-regex": "^1.1.4" }, "engines": { "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", "dev": true }, - "node_modules/shallow-clone": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", - "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "node_modules/sass": { + "version": "1.83.1", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.83.1.tgz", + "integrity": "sha512-EVJbDaEs4Rr3F0glJzFSOvtg2/oy2V/YrGFPqPY24UqcLDWcI9ZY5sN+qyO3c/QCZwzgfirvhXvINiJCE/OLcA==", "dev": true, "license": "MIT", "dependencies": { - "kind-of": "^6.0.2" + "chokidar": "^4.0.0", + "immutable": "^5.0.2", + "source-map-js": ">=0.6.2 <2.0.0" + }, + "bin": { + "sass": "sass.js" }, "engines": { - "node": ">=8" + "node": ">=14.0.0" + }, + "optionalDependencies": { + "@parcel/watcher": "^2.4.1" } }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "node_modules/sass-loader": { + "version": "16.0.4", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-16.0.4.tgz", + "integrity": "sha512-LavLbgbBGUt3wCiYzhuLLu65+fWXaXLmq7YxivLhEqmiupCFZ5sKUAipK3do6V80YSU0jvSxNhEdT13IXNr3rg==", "dev": true, "license": "MIT", "dependencies": { - "shebang-regex": "^3.0.0" + "neo-async": "^2.6.2" }, "engines": { - "node": ">=8" + "node": ">= 18.12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "@rspack/core": "0.x || 1.x", + "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0", + "sass": "^1.3.0", + "sass-embedded": "*", + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "@rspack/core": { + "optional": true + }, + "node-sass": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "webpack": { + "optional": true + } } }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "node_modules/sass/node_modules/chokidar": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", + "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", "dev": true, "license": "MIT", + "dependencies": { + "readdirp": "^4.0.1" + }, "engines": { - "node": ">=8" + "node": ">= 14.16.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" } }, - "node_modules/shell-quote": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", - "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", + "node_modules/sass/node_modules/readdirp": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.1.tgz", + "integrity": "sha512-h80JrZu/MHUZCyHu5ciuoI0+WxsCxzxJTILn6Fs8rxSnFPh+UVHYfeIxK1nVGugMqkfC4vJcBOYbkfkwYK0+gw==", "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14.18.0" + }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "type": "individual", + "url": "https://paulmillr.com/funding/" } }, - "node_modules/side-channel": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", - "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "node_modules/sax": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.3.0.tgz", + "integrity": "sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==", + "dev": true, + "optional": true + }, + "node_modules/schema-utils": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", + "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", "dev": true, "dependencies": { - "call-bind": "^1.0.7", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4", - "object-inspect": "^1.13.1" + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" }, "engines": { - "node": ">= 0.4" + "node": ">= 12.13.0" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "type": "opencollective", + "url": "https://opencollective.com/webpack" } }, - "node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true + "node_modules/select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==", + "dev": true, + "license": "MIT" }, - "node_modules/sigstore": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/sigstore/-/sigstore-2.3.1.tgz", - "integrity": "sha512-8G+/XDU8wNsJOQS5ysDVO0Etg9/2uA5gR9l4ZwijjlwxBcrU6RPfwi2+jJmbP+Ap1Hlp/nVAaEO4Fj22/SL2gQ==", + "node_modules/selfsigned": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.4.1.tgz", + "integrity": "sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==", "dev": true, - "license": "Apache-2.0", + "license": "MIT", "dependencies": { - "@sigstore/bundle": "^2.3.2", - "@sigstore/core": "^1.0.0", - "@sigstore/protobuf-specs": "^0.3.2", - "@sigstore/sign": "^2.3.2", - "@sigstore/tuf": "^2.3.4", - "@sigstore/verify": "^1.2.1" + "@types/node-forge": "^1.3.0", + "node-forge": "^1" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": ">=10" } }, - "node_modules/slash": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz", - "integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==", + "node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=14.16" + "license": "ISC", + "bin": { + "semver": "bin/semver.js" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": ">=10" } }, - "node_modules/slice-ansi": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz", - "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==", + "node_modules/send": { + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", + "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", "dev": true, "license": "MIT", "dependencies": { - "ansi-styles": "^6.0.0", - "is-fullwidth-code-point": "^4.0.0" + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" }, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/slice-ansi?sponsor=1" + "node": ">= 0.8.0" } }, - "node_modules/slice-ansi/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "node_modules/send/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "dependencies": { + "ms": "2.0.0" } }, - "node_modules/slice-ansi/node_modules/is-fullwidth-code-point": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz", - "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==", + "node_modules/send/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "license": "MIT" }, - "node_modules/smart-buffer": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", - "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", + "node_modules/send/node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", "dev": true, "license": "MIT", + "bin": { + "mime": "cli.js" + }, "engines": { - "node": ">= 6.0.0", - "npm": ">= 3.0.0" + "node": ">=4" } }, - "node_modules/socket.io": { - "version": "4.7.5", - "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.7.5.tgz", - "integrity": "sha512-DmeAkF6cwM9jSfmp6Dr/5/mfMwb5Z5qRrSXLpo3Fq5SqyU8CMF15jIN4ZhfSwu35ksM1qmHZDQ/DK5XTccSTvA==", + "node_modules/send/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/send/node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", "dev": true, - "dependencies": { - "accepts": "~1.3.4", - "base64id": "~2.0.0", - "cors": "~2.8.5", - "debug": "~4.3.2", - "engine.io": "~6.5.2", - "socket.io-adapter": "~2.5.2", - "socket.io-parser": "~4.2.4" - }, + "license": "MIT", "engines": { - "node": ">=10.2.0" + "node": ">= 0.8" } }, - "node_modules/socket.io-adapter": { - "version": "2.5.4", - "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.5.4.tgz", - "integrity": "sha512-wDNHGXGewWAjQPt3pyeYBtpWSq9cLE5UW1ZUPL/2eGK9jtse/FpXib7epSTsz0Q0m+6sg6Y4KtcFTlah1bdOVg==", + "node_modules/serialize-javascript": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", + "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", "dev": true, "dependencies": { - "debug": "~4.3.4", - "ws": "~8.11.0" + "randombytes": "^2.1.0" } }, - "node_modules/socket.io-parser": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.4.tgz", - "integrity": "sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==", + "node_modules/serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==", "dev": true, + "license": "MIT", "dependencies": { - "@socket.io/component-emitter": "~3.1.0", - "debug": "~4.3.1" + "accepts": "~1.3.4", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" }, "engines": { - "node": ">=10.0.0" + "node": ">= 0.8.0" } }, - "node_modules/sockjs": { - "version": "0.3.24", - "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", - "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", + "node_modules/serve-index/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "license": "MIT", "dependencies": { - "faye-websocket": "^0.11.3", - "uuid": "^8.3.2", - "websocket-driver": "^0.7.4" + "ms": "2.0.0" } }, - "node_modules/socks": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.3.tgz", - "integrity": "sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==", + "node_modules/serve-index/node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", "dev": true, "license": "MIT", - "dependencies": { - "ip-address": "^9.0.5", - "smart-buffer": "^4.2.0" - }, "engines": { - "node": ">= 10.0.0", - "npm": ">= 3.0.0" + "node": ">= 0.6" } }, - "node_modules/socks-proxy-agent": { - "version": "8.0.4", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.4.tgz", - "integrity": "sha512-GNAq/eg8Udq2x0eNiFkr9gRg5bA7PXEWagQdeRX4cPSG+X/8V38v637gim9bjFptMk1QWsCTr0ttrJEiXbNnRw==", + "node_modules/serve-index/node_modules/http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", "dev": true, "license": "MIT", "dependencies": { - "agent-base": "^7.1.1", - "debug": "^4.3.4", - "socks": "^2.8.3" + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" }, "engines": { - "node": ">= 14" + "node": ">= 0.6" } }, - "node_modules/source-map": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", - "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "node_modules/serve-index/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", "dev": true, - "engines": { - "node": ">= 8" - } + "license": "ISC" }, - "node_modules/source-map-js": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", - "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "node_modules/serve-index/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } + "license": "MIT" }, - "node_modules/source-map-loader": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-5.0.0.tgz", - "integrity": "sha512-k2Dur7CbSLcAH73sBcIkV5xjPV4SzqO1NJ7+XaQl8if3VODDUj3FNchNGpqgJSKbvUfJuhVdv8K2Eu8/TNl2eA==", + "node_modules/serve-index/node_modules/setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", "dev": true, - "dependencies": { - "iconv-lite": "^0.6.3", - "source-map-js": "^1.0.2" - }, - "engines": { - "node": ">= 18.12.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.72.1" - } + "license": "ISC" }, - "node_modules/source-map-loader/node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "node_modules/serve-static": { + "version": "1.16.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz", + "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==", "dev": true, + "license": "MIT", "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.19.0" }, "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "dev": true, - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" + "node": ">= 0.8.0" } }, - "node_modules/source-map-support/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "node_modules/serve-static/node_modules/encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", "dev": true, + "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">= 0.8" } }, - "node_modules/spdx-correct": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", - "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", "dev": true, "dependencies": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" } }, - "node_modules/spdx-exceptions": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", - "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", - "dev": true - }, - "node_modules/spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "node_modules/set-function-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", "dev": true, "dependencies": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" } }, - "node_modules/spdx-license-ids": { - "version": "3.0.17", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.17.tgz", - "integrity": "sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==", + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", "dev": true }, - "node_modules/spdy": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", - "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", + "node_modules/shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", "dev": true, "license": "MIT", "dependencies": { - "debug": "^4.1.0", - "handle-thing": "^2.0.0", - "http-deceiver": "^1.2.7", - "select-hose": "^2.0.0", - "spdy-transport": "^3.0.0" + "kind-of": "^6.0.2" }, "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/spdy-transport": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", - "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "^4.1.0", - "detect-node": "^2.0.4", - "hpack.js": "^2.1.6", - "obuf": "^1.1.2", - "readable-stream": "^3.0.6", - "wbuf": "^1.7.3" + "node": ">=8" } }, - "node_modules/sprintf-js": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", - "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", - "dev": true, - "license": "BSD-3-Clause" - }, - "node_modules/ssri": { - "version": "10.0.6", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.6.tgz", - "integrity": "sha512-MGrFH9Z4NP9Iyhqn16sDtBpRRNJ0Y2hNa6D65h736fVSaPCHr4DM4sWUNvVaSuC+0OBGhwsrydQwmgfg5LncqQ==", + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "minipass": "^7.0.3" + "shebang-regex": "^3.0.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">=8" } }, - "node_modules/statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true, + "license": "MIT", "engines": { - "node": ">= 0.6" + "node": ">=8" } }, - "node_modules/streamroller": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-3.1.5.tgz", - "integrity": "sha512-KFxaM7XT+irxvdqSP1LGLgNWbYN7ay5owZ3r/8t77p+EtSUAfUgtl7be3xtqtOmGUl9K9YPO2ca8133RlTjvKw==", + "node_modules/shell-quote": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", + "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", "dev": true, - "dependencies": { - "date-format": "^4.0.14", - "debug": "^4.3.4", - "fs-extra": "^8.1.0" - }, - "engines": { - "node": ">=8.0" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "node_modules/side-channel": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", "dev": true, "dependencies": { - "safe-buffer": "~5.2.0" + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "node_modules/sigstore": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/sigstore/-/sigstore-3.0.0.tgz", + "integrity": "sha512-PHMifhh3EN4loMcHCz6l3v/luzgT3za+9f8subGgeMNjbJjzH4Ij/YoX3Gvu+kaouJRIlVdTHHCREADYf+ZteA==", "dev": true, + "license": "Apache-2.0", "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" + "@sigstore/bundle": "^3.0.0", + "@sigstore/core": "^2.0.0", + "@sigstore/protobuf-specs": "^0.3.2", + "@sigstore/sign": "^3.0.0", + "@sigstore/tuf": "^3.0.0", + "@sigstore/verify": "^2.0.0" }, "engines": { - "node": ">=8" + "node": "^18.17.0 || >=20.5.0" } }, - "node_modules/string-width-cjs": { - "name": "string-width", - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "node_modules/slash": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz", + "integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==", "dev": true, "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, "engines": { - "node": ">=8" + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/string.prototype.padend": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.6.tgz", - "integrity": "sha512-XZpspuSB7vJWhvJc9DLSlrXl1mcA2BdoY5jjnS135ydXqLoqhs96JjDtCkjJEQHvfqZIp9hBuBMgI589peyx9Q==", + "node_modules/slice-ansi": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz", + "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-object-atoms": "^1.0.0" + "ansi-styles": "^6.0.0", + "is-fullwidth-code-point": "^4.0.0" }, "engines": { - "node": ">= 0.4" + "node": ">=12" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/chalk/slice-ansi?sponsor=1" } }, - "node_modules/string.prototype.trim": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", - "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==", + "node_modules/slice-ansi/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", "dev": true, - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.0", - "es-object-atoms": "^1.0.0" - }, + "license": "MIT", "engines": { - "node": ">= 0.4" + "node": ">=12" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/string.prototype.trimend": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz", - "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==", + "node_modules/slice-ansi/node_modules/is-fullwidth-code-point": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz", + "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==", "dev": true, - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" + "license": "MIT", + "engines": { + "node": ">=12" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/string.prototype.trimstart": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", - "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", + "node_modules/smart-buffer": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socket.io": { + "version": "4.7.5", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.7.5.tgz", + "integrity": "sha512-DmeAkF6cwM9jSfmp6Dr/5/mfMwb5Z5qRrSXLpo3Fq5SqyU8CMF15jIN4ZhfSwu35ksM1qmHZDQ/DK5XTccSTvA==", "dev": true, "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" + "accepts": "~1.3.4", + "base64id": "~2.0.0", + "cors": "~2.8.5", + "debug": "~4.3.2", + "engine.io": "~6.5.2", + "socket.io-adapter": "~2.5.2", + "socket.io-parser": "~4.2.4" }, "engines": { - "node": ">= 0.4" + "node": ">=10.2.0" + } + }, + "node_modules/socket.io-adapter": { + "version": "2.5.4", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.5.4.tgz", + "integrity": "sha512-wDNHGXGewWAjQPt3pyeYBtpWSq9cLE5UW1ZUPL/2eGK9jtse/FpXib7epSTsz0Q0m+6sg6Y4KtcFTlah1bdOVg==", + "dev": true, + "dependencies": { + "debug": "~4.3.4", + "ws": "~8.11.0" + } + }, + "node_modules/socket.io-parser": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.4.tgz", + "integrity": "sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==", + "dev": true, + "dependencies": { + "@socket.io/component-emitter": "~3.1.0", + "debug": "~4.3.1" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=10.0.0" } }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "node_modules/sockjs": { + "version": "0.3.24", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", + "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", "dev": true, + "license": "MIT", "dependencies": { - "ansi-regex": "^5.0.1" + "faye-websocket": "^0.11.3", + "uuid": "^8.3.2", + "websocket-driver": "^0.7.4" + } + }, + "node_modules/socks": { + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.3.tgz", + "integrity": "sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==", + "dev": true, + "license": "MIT", + "dependencies": { + "ip-address": "^9.0.5", + "smart-buffer": "^4.2.0" }, "engines": { - "node": ">=8" + "node": ">= 10.0.0", + "npm": ">= 3.0.0" } }, - "node_modules/strip-ansi-cjs": { - "name": "strip-ansi", - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "node_modules/socks-proxy-agent": { + "version": "8.0.5", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.5.tgz", + "integrity": "sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw==", "dev": true, "license": "MIT", "dependencies": { - "ansi-regex": "^5.0.1" + "agent-base": "^7.1.2", + "debug": "^4.3.4", + "socks": "^2.8.3" }, "engines": { - "node": ">=8" + "node": ">= 14" } }, - "node_modules/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "node_modules/source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", "dev": true, + "license": "BSD-3-Clause", "engines": { - "node": ">=4" + "node": ">=0.10.0" } }, - "node_modules/strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "node_modules/source-map-loader": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-5.0.0.tgz", + "integrity": "sha512-k2Dur7CbSLcAH73sBcIkV5xjPV4SzqO1NJ7+XaQl8if3VODDUj3FNchNGpqgJSKbvUfJuhVdv8K2Eu8/TNl2eA==", "dev": true, - "license": "MIT", + "dependencies": { + "iconv-lite": "^0.6.3", + "source-map-js": "^1.0.2" + }, "engines": { - "node": ">=6" + "node": ">= 18.12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.72.1" } }, - "node_modules/strip-outer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/strip-outer/-/strip-outer-1.0.1.tgz", - "integrity": "sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg==", + "node_modules/source-map-loader/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", "dev": true, "dependencies": { - "escape-string-regexp": "^1.0.2" + "safer-buffer": ">= 2.1.2 < 3.0.0" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", "dev": true, "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" } }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "node_modules/source-map-support/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=0.10.0" } }, - "node_modules/symbol-observable": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-4.0.0.tgz", - "integrity": "sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ==", + "node_modules/spdx-correct": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", "dev": true, - "engines": { - "node": ">=0.10" + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" } }, - "node_modules/tapable": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", - "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "node_modules/spdx-exceptions": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", + "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", + "dev": true + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", "dev": true, - "engines": { - "node": ">=6" + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" } }, - "node_modules/tar": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz", - "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==", + "node_modules/spdx-license-ids": { + "version": "3.0.17", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.17.tgz", + "integrity": "sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==", + "dev": true + }, + "node_modules/spdy": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", + "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", "dev": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^5.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" + "debug": "^4.1.0", + "handle-thing": "^2.0.0", + "http-deceiver": "^1.2.7", + "select-hose": "^2.0.0", + "spdy-transport": "^3.0.0" }, "engines": { - "node": ">=10" + "node": ">=6.0.0" } }, - "node_modules/tar/node_modules/fs-minipass": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "node_modules/spdy-transport": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", + "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", "dev": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" + "debug": "^4.1.0", + "detect-node": "^2.0.4", + "hpack.js": "^2.1.6", + "obuf": "^1.1.2", + "readable-stream": "^3.0.6", + "wbuf": "^1.7.3" } }, - "node_modules/tar/node_modules/fs-minipass/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "node_modules/sprintf-js": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", + "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/ssri": { + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-12.0.0.tgz", + "integrity": "sha512-S7iGNosepx9RadX82oimUkvr0Ct7IjJbEbs4mJcTxst8um95J3sDYU1RBEOvdu6oL1Wek2ODI5i4MAw+dZ6cAQ==", "dev": true, "license": "ISC", "dependencies": { - "yallist": "^4.0.0" + "minipass": "^7.0.3" }, "engines": { - "node": ">=8" + "node": "^18.17.0 || >=20.5.0" } }, - "node_modules/tar/node_modules/minipass": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", - "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", "dev": true, - "license": "ISC", "engines": { - "node": ">=8" + "node": ">= 0.6" } }, - "node_modules/tar/node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "node_modules/streamroller": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-3.1.5.tgz", + "integrity": "sha512-KFxaM7XT+irxvdqSP1LGLgNWbYN7ay5owZ3r/8t77p+EtSUAfUgtl7be3xtqtOmGUl9K9YPO2ca8133RlTjvKw==", "dev": true, - "license": "MIT", - "bin": { - "mkdirp": "bin/cmd.js" + "dependencies": { + "date-format": "^4.0.14", + "debug": "^4.3.4", + "fs-extra": "^8.1.0" }, "engines": { - "node": ">=10" + "node": ">=8.0" } }, - "node_modules/tar/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", "dev": true, - "license": "ISC" + "dependencies": { + "safe-buffer": "~5.2.0" + } }, - "node_modules/terser": { - "version": "5.31.6", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.31.6.tgz", - "integrity": "sha512-PQ4DAriWzKj+qgehQ7LK5bQqCFNMmlhjR2PFFLuqGCpuCAauxemVBWwWOxo3UIwWQx8+Pr61Df++r76wDmkQBg==", + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { - "@jridgewell/source-map": "^0.3.3", - "acorn": "^8.8.2", - "commander": "^2.20.0", - "source-map-support": "~0.5.20" - }, - "bin": { - "terser": "bin/terser" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" }, "engines": { - "node": ">=10" + "node": ">=8" } }, - "node_modules/terser-webpack-plugin": { - "version": "5.3.10", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz", - "integrity": "sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==", + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, + "license": "MIT", "dependencies": { - "@jridgewell/trace-mapping": "^0.3.20", - "jest-worker": "^27.4.5", - "schema-utils": "^3.1.1", - "serialize-javascript": "^6.0.1", - "terser": "^5.26.0" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" }, "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.1.0" + "node": ">=8" + } + }, + "node_modules/string.prototype.padend": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.6.tgz", + "integrity": "sha512-XZpspuSB7vJWhvJc9DLSlrXl1mcA2BdoY5jjnS135ydXqLoqhs96JjDtCkjJEQHvfqZIp9hBuBMgI589peyx9Q==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0" }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "esbuild": { - "optional": true - }, - "uglify-js": { - "optional": true - } + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/terser-webpack-plugin/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "node_modules/string.prototype.trim": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", + "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==", "dev": true, "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.0", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/terser-webpack-plugin/node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "node_modules/string.prototype.trimend": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz", + "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==", "dev": true, - "peerDependencies": { - "ajv": "^6.9.1" + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/terser-webpack-plugin/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "node_modules/terser-webpack-plugin/node_modules/schema-utils": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", - "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "node_modules/string.prototype.trimstart": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", + "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", "dev": true, "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" }, "engines": { - "node": ">= 10.13.0" + "node": ">= 0.4" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/thingies": { - "version": "1.21.0", - "resolved": "https://registry.npmjs.org/thingies/-/thingies-1.21.0.tgz", - "integrity": "sha512-hsqsJsFMsV+aD4s3CWKk85ep/3I9XzYV/IXaSouJMYIoDlgyi11cBhsqYe9/geRfB0YIikBQg6raRaM+nIMP9g==", + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, - "license": "Unlicense", - "engines": { - "node": ">=10.18" + "dependencies": { + "ansi-regex": "^5.0.1" }, - "peerDependencies": { - "tslib": "^2" + "engines": { + "node": ">=8" } }, - "node_modules/thunky": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", - "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", - "dev": true, - "license": "MIT" - }, - "node_modules/tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, "license": "MIT", "dependencies": { - "os-tmpdir": "~1.0.2" + "ansi-regex": "^5.0.1" }, "engines": { - "node": ">=0.6.0" + "node": ">=8" } }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", "dev": true, - "license": "MIT", "engines": { "node": ">=4" } }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "node_modules/strip-outer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-outer/-/strip-outer-1.0.1.tgz", + "integrity": "sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg==", "dev": true, - "license": "MIT", "dependencies": { - "is-number": "^7.0.0" + "escape-string-regexp": "^1.0.2" }, "engines": { - "node": ">=8.0" + "node": ">=0.10.0" } }, - "node_modules/toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, "engines": { - "node": ">=0.6" + "node": ">=4" } }, - "node_modules/tree-dump": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/tree-dump/-/tree-dump-1.0.2.tgz", - "integrity": "sha512-dpev9ABuLWdEubk+cIaI9cHwRNNDjkBBLXTwI4UCUFdQ5xXKqNXoK4FEciw/vxf+NQ7Cb7sGUyeUtORvHIdRXQ==", + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", "dev": true, - "license": "Apache-2.0", "engines": { - "node": ">=10.0" + "node": ">= 0.4" }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/streamich" - }, - "peerDependencies": { - "tslib": "2" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/tree-kill": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", - "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", + "node_modules/symbol-observable": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-4.0.0.tgz", + "integrity": "sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ==", "dev": true, - "bin": { - "tree-kill": "cli.js" + "engines": { + "node": ">=0.10" } }, - "node_modules/trim-repeated": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/trim-repeated/-/trim-repeated-1.0.0.tgz", - "integrity": "sha512-pkonvlKk8/ZuR0D5tLW8ljt5I8kmxp2XKymhepUeOdCEfKpZaktSArkLHZt76OB1ZvO9bssUsDty4SWhLvZpLg==", + "node_modules/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", "dev": true, - "dependencies": { - "escape-string-regexp": "^1.0.2" - }, "engines": { - "node": ">=0.10.0" + "node": ">=6" } }, - "node_modules/tslib": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.3.tgz", - "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==", - "license": "0BSD" - }, - "node_modules/tuf-js": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tuf-js/-/tuf-js-2.2.1.tgz", - "integrity": "sha512-GwIJau9XaA8nLVbUXsN3IlFi7WmQ48gBUrl3FTkkL/XLu/POhBzfmX9hd33FNMX1qAsfl6ozO1iMmW9NC8YniA==", + "node_modules/tar": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz", + "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==", "dev": true, - "license": "MIT", + "license": "ISC", "dependencies": { - "@tufjs/models": "2.0.1", - "debug": "^4.3.4", - "make-fetch-happen": "^13.0.1" + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^5.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": ">=10" } }, - "node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "node_modules/tar/node_modules/fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": ">= 8" } }, - "node_modules/type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "node_modules/tar/node_modules/fs-minipass/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", "dev": true, + "license": "ISC", "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" + "yallist": "^4.0.0" }, "engines": { - "node": ">= 0.6" + "node": ">=8" } }, - "node_modules/typed-array-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", - "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==", + "node_modules/tar/node_modules/minipass": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", "dev": true, - "dependencies": { - "call-bind": "^1.0.7", - "es-errors": "^1.3.0", - "is-typed-array": "^1.1.13" - }, + "license": "ISC", "engines": { - "node": ">= 0.4" + "node": ">=8" } }, - "node_modules/typed-array-byte-length": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", - "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", + "node_modules/tar/node_modules/minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-proto": "^1.0.3", - "is-typed-array": "^1.1.13" + "minipass": "^3.0.0", + "yallist": "^4.0.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">= 8" } }, - "node_modules/typed-array-byte-offset": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz", - "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==", + "node_modules/tar/node_modules/minizlib/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", "dev": true, + "license": "ISC", "dependencies": { - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.7", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-proto": "^1.0.3", - "is-typed-array": "^1.1.13" + "yallist": "^4.0.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=8" } }, - "node_modules/typed-array-length": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.6.tgz", - "integrity": "sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==", + "node_modules/tar/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", "dev": true, - "dependencies": { - "call-bind": "^1.0.7", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-proto": "^1.0.3", - "is-typed-array": "^1.1.13", - "possible-typed-array-names": "^1.0.0" + "license": "MIT", + "bin": { + "mkdirp": "bin/cmd.js" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=10" } }, - "node_modules/typed-assert": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/typed-assert/-/typed-assert-1.0.9.tgz", - "integrity": "sha512-KNNZtayBCtmnNmbo5mG47p1XsCyrx6iVqomjcZnec/1Y5GGARaxPs6r49RnSPeUP3YjNYiU9sQHAtY4BBvnZwg==", - "dev": true + "node_modules/tar/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true, + "license": "ISC" }, - "node_modules/typescript": { - "version": "5.4.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz", - "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", + "node_modules/terser": { + "version": "5.37.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.37.0.tgz", + "integrity": "sha512-B8wRRkmre4ERucLM/uXx4MOV5cbnOlVAqUst+1+iLKPI0dOgFO28f84ptoQt9HEI537PMzfYa/d+GEPKTRXmYA==", "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" + "terser": "bin/terser" }, "engines": { - "node": ">=14.17" + "node": ">=10" } }, - "node_modules/ua-parser-js": { - "version": "0.7.37", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.37.tgz", - "integrity": "sha512-xV8kqRKM+jhMvcHWUKthV9fNebIzrNy//2O9ZwWcfiBFR5f25XVZPLlEajk/sf3Ra15V92isyQqnIEXRDaZWEA==", + "node_modules/terser-webpack-plugin": { + "version": "5.3.10", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz", + "integrity": "sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==", "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/ua-parser-js" + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.20", + "jest-worker": "^27.4.5", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.1", + "terser": "^5.26.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true }, - { - "type": "paypal", - "url": "https://paypal.me/faisalman" + "esbuild": { + "optional": true }, - { - "type": "github", - "url": "https://github.com/sponsors/faisalman" + "uglify-js": { + "optional": true } - ], - "engines": { - "node": "*" } }, - "node_modules/unbox-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", - "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "node_modules/terser-webpack-plugin/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "has-bigints": "^1.0.2", - "has-symbols": "^1.0.3", - "which-boxed-primitive": "^1.0.2" + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/undici-types": { - "version": "6.19.8", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", - "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", - "dev": true, - "license": "MIT" - }, - "node_modules/unicode-canonical-property-names-ecmascript": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz", - "integrity": "sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==", + "node_modules/terser-webpack-plugin/node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" + "peerDependencies": { + "ajv": "^6.9.1" } }, - "node_modules/unicode-match-property-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", - "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "node_modules/terser-webpack-plugin/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/terser-webpack-plugin/node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", "dev": true, - "license": "MIT", "dependencies": { - "unicode-canonical-property-names-ecmascript": "^2.0.0", - "unicode-property-aliases-ecmascript": "^2.0.0" + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" }, "engines": { - "node": ">=4" + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" } }, - "node_modules/unicode-match-property-value-ecmascript": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.0.tgz", - "integrity": "sha512-4IehN3V/+kkr5YeSSDDQG8QLqO26XpL2XP3GQtqwlT/QYSECAwFztxVHjlbh0+gjJ3XmNLS0zDsbgs9jWKExLg==", + "node_modules/thingies": { + "version": "1.21.0", + "resolved": "https://registry.npmjs.org/thingies/-/thingies-1.21.0.tgz", + "integrity": "sha512-hsqsJsFMsV+aD4s3CWKk85ep/3I9XzYV/IXaSouJMYIoDlgyi11cBhsqYe9/geRfB0YIikBQg6raRaM+nIMP9g==", "dev": true, - "license": "MIT", + "license": "Unlicense", "engines": { - "node": ">=4" + "node": ">=10.18" + }, + "peerDependencies": { + "tslib": "^2" } }, - "node_modules/unicode-property-aliases-ecmascript": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", - "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", + "node_modules/thunky": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", + "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } + "license": "MIT" }, - "node_modules/unicorn-magic": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.1.0.tgz", - "integrity": "sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==", + "node_modules/tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", "dev": true, "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/unique-filename": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-3.0.0.tgz", - "integrity": "sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==", - "dev": true, - "license": "ISC", "dependencies": { - "unique-slug": "^4.0.0" + "os-tmpdir": "~1.0.2" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">=0.6.0" } }, - "node_modules/unique-slug": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-4.0.0.tgz", - "integrity": "sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==", + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "imurmurhash": "^0.1.4" + "is-number": "^7.0.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">=8.0" } }, - "node_modules/universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", "dev": true, "engines": { - "node": ">= 4.0.0" + "node": ">=0.6" } }, - "node_modules/unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "node_modules/tree-dump": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/tree-dump/-/tree-dump-1.0.2.tgz", + "integrity": "sha512-dpev9ABuLWdEubk+cIaI9cHwRNNDjkBBLXTwI4UCUFdQ5xXKqNXoK4FEciw/vxf+NQ7Cb7sGUyeUtORvHIdRXQ==", "dev": true, + "license": "Apache-2.0", "engines": { - "node": ">= 0.8" + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" } }, - "node_modules/update-browserslist-db": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.0.tgz", - "integrity": "sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==", + "node_modules/tree-kill": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", + "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "escalade": "^3.1.2", - "picocolors": "^1.0.1" - }, "bin": { - "update-browserslist-db": "cli.js" - }, - "peerDependencies": { - "browserslist": ">= 4.21.0" + "tree-kill": "cli.js" } }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "node_modules/trim-repeated": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-repeated/-/trim-repeated-1.0.0.tgz", + "integrity": "sha512-pkonvlKk8/ZuR0D5tLW8ljt5I8kmxp2XKymhepUeOdCEfKpZaktSArkLHZt76OB1ZvO9bssUsDty4SWhLvZpLg==", "dev": true, "dependencies": { - "punycode": "^2.1.0" + "escape-string-regexp": "^1.0.2" + }, + "engines": { + "node": ">=0.10.0" } }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "dev": true + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" }, - "node_modules/utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "node_modules/tuf-js": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/tuf-js/-/tuf-js-3.0.1.tgz", + "integrity": "sha512-+68OP1ZzSF84rTckf3FA95vJ1Zlx/uaXyiiKyPd1pA4rZNkpEvDAKmsu1xUSmbF/chCRYgZ6UZkDwC7PmzmAyA==", "dev": true, + "license": "MIT", + "dependencies": { + "@tufjs/models": "3.0.1", + "debug": "^4.3.6", + "make-fetch-happen": "^14.0.1" + }, "engines": { - "node": ">= 0.4.0" + "node": "^18.17.0 || >=20.5.0" } }, - "node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "node_modules/tuf-js/node_modules/debug": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", "dev": true, "license": "MIT", - "bin": { - "uuid": "dist/bin/uuid" + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, - "node_modules/validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "node_modules/tuf-js/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "dev": true, - "dependencies": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } + "license": "MIT" }, - "node_modules/validate-npm-package-name": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-5.0.1.tgz", - "integrity": "sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ==", + "node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", "dev": true, - "license": "ISC", + "license": "(MIT OR CC0-1.0)", "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", "dev": true, + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, "engines": { - "node": ">= 0.8" - } - }, - "node_modules/vectorious": { - "version": "6.1.12", - "resolved": "https://registry.npmjs.org/vectorious/-/vectorious-6.1.12.tgz", - "integrity": "sha512-agC4qbdhdVe3DE5FEUazXjE5JOwm6BHhSePij3IZQdYLttYr6nBl8zUi0ZHyQWhOgNqh0b8Qh8w4UUfVzgnXqw==", - "optionalDependencies": { - "nblas": "^2.1.11", - "nlapack": "^2.0.7" + "node": ">= 0.6" } }, - "node_modules/vite": { - "version": "5.4.6", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.6.tgz", - "integrity": "sha512-IeL5f8OO5nylsgzd9tq4qD2QqI0k2CQLGrWD0rCN0EQJZpBK5vJAx0I+GDkMOXxQX/OfFHMuLIx6ddAxGX/k+Q==", + "node_modules/typed-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", + "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==", "dev": true, - "license": "MIT", "dependencies": { - "esbuild": "^0.21.3", - "postcss": "^8.4.43", - "rollup": "^4.20.0" - }, - "bin": { - "vite": "bin/vite.js" + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.13" }, "engines": { - "node": "^18.0.0 || >=20.0.0" - }, - "funding": { - "url": "https://github.com/vitejs/vite?sponsor=1" - }, - "optionalDependencies": { - "fsevents": "~2.3.3" - }, - "peerDependencies": { - "@types/node": "^18.0.0 || >=20.0.0", - "less": "*", - "lightningcss": "^1.21.0", - "sass": "*", - "sass-embedded": "*", - "stylus": "*", - "sugarss": "*", - "terser": "^5.4.0" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "less": { - "optional": true - }, - "lightningcss": { - "optional": true - }, - "sass": { - "optional": true - }, - "sass-embedded": { - "optional": true - }, - "stylus": { - "optional": true - }, - "sugarss": { - "optional": true - }, - "terser": { - "optional": true - } + "node": ">= 0.4" } }, - "node_modules/vite/node_modules/@esbuild/aix-ppc64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", - "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", - "cpu": [ - "ppc64" - ], + "node_modules/typed-array-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", + "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "aix" - ], + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" + }, "engines": { - "node": ">=12" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/vite/node_modules/@esbuild/android-arm": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", - "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", - "cpu": [ - "arm" - ], + "node_modules/typed-array-byte-offset": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz", + "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==", "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" + }, "engines": { - "node": ">=12" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/vite/node_modules/@esbuild/android-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", - "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", - "cpu": [ - "arm64" - ], + "node_modules/typed-array-length": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.6.tgz", + "integrity": "sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==", "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13", + "possible-typed-array-names": "^1.0.0" + }, "engines": { - "node": ">=12" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/vite/node_modules/@esbuild/android-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", - "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", - "cpu": [ - "x64" - ], + "node_modules/typed-assert": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/typed-assert/-/typed-assert-1.0.9.tgz", + "integrity": "sha512-KNNZtayBCtmnNmbo5mG47p1XsCyrx6iVqomjcZnec/1Y5GGARaxPs6r49RnSPeUP3YjNYiU9sQHAtY4BBvnZwg==", + "dev": true + }, + "node_modules/typescript": { + "version": "5.7.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.3.tgz", + "integrity": "sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==", "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, "engines": { - "node": ">=12" + "node": ">=14.17" } }, - "node_modules/vite/node_modules/@esbuild/darwin-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", - "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", - "cpu": [ - "arm64" - ], + "node_modules/ua-parser-js": { + "version": "0.7.37", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.37.tgz", + "integrity": "sha512-xV8kqRKM+jhMvcHWUKthV9fNebIzrNy//2O9ZwWcfiBFR5f25XVZPLlEajk/sf3Ra15V92isyQqnIEXRDaZWEA==", "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/ua-parser-js" + }, + { + "type": "paypal", + "url": "https://paypal.me/faisalman" + }, + { + "type": "github", + "url": "https://github.com/sponsors/faisalman" + } ], "engines": { - "node": ">=12" + "node": "*" } }, - "node_modules/vite/node_modules/@esbuild/darwin-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", - "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", - "cpu": [ - "x64" - ], + "node_modules/unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" + "dependencies": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/vite/node_modules/@esbuild/freebsd-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", - "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", - "cpu": [ - "arm64" - ], + "node_modules/undici-types": { + "version": "6.19.8", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", + "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } + "license": "MIT" }, - "node_modules/vite/node_modules/@esbuild/freebsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", - "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", - "cpu": [ - "x64" - ], + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz", + "integrity": "sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], "engines": { - "node": ">=12" + "node": ">=4" } }, - "node_modules/vite/node_modules/@esbuild/linux-arm": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", - "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", - "cpu": [ - "arm" - ], + "node_modules/unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "linux" - ], + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + }, "engines": { - "node": ">=12" + "node": ">=4" } }, - "node_modules/vite/node_modules/@esbuild/linux-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", - "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", - "cpu": [ - "arm64" - ], + "node_modules/unicode-match-property-value-ecmascript": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.0.tgz", + "integrity": "sha512-4IehN3V/+kkr5YeSSDDQG8QLqO26XpL2XP3GQtqwlT/QYSECAwFztxVHjlbh0+gjJ3XmNLS0zDsbgs9jWKExLg==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "linux" - ], "engines": { - "node": ">=12" + "node": ">=4" } }, - "node_modules/vite/node_modules/@esbuild/linux-ia32": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", - "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", - "cpu": [ - "ia32" - ], + "node_modules/unicode-property-aliases-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "linux" - ], "engines": { - "node": ">=12" + "node": ">=4" } }, - "node_modules/vite/node_modules/@esbuild/linux-loong64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", - "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", - "cpu": [ - "loong64" - ], + "node_modules/unicorn-magic": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.1.0.tgz", + "integrity": "sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "linux" - ], "engines": { - "node": ">=12" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/vite/node_modules/@esbuild/linux-mips64el": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", - "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", - "cpu": [ - "mips64el" - ], + "node_modules/unique-filename": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-4.0.0.tgz", + "integrity": "sha512-XSnEewXmQ+veP7xX2dS5Q4yZAvO40cBN2MWkJ7D/6sW4Dg6wYBNwM1Vrnz1FhH5AdeLIlUXRI9e28z1YZi71NQ==", "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], + "license": "ISC", + "dependencies": { + "unique-slug": "^5.0.0" + }, "engines": { - "node": ">=12" + "node": "^18.17.0 || >=20.5.0" } }, - "node_modules/vite/node_modules/@esbuild/linux-ppc64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", - "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", - "cpu": [ - "ppc64" - ], + "node_modules/unique-slug": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-5.0.0.tgz", + "integrity": "sha512-9OdaqO5kwqR+1kVgHAhsp5vPNU0hnxRa26rBFNfNgM7M6pNtgzeBn3s/xbyCQL3dcjzOatcef6UUHpB/6MaETg==", "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4" + }, "engines": { - "node": ">=12" + "node": "^18.17.0 || >=20.5.0" } }, - "node_modules/vite/node_modules/@esbuild/linux-riscv64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", - "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", - "cpu": [ - "riscv64" - ], + "node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], "engines": { - "node": ">=12" + "node": ">= 4.0.0" } }, - "node_modules/vite/node_modules/@esbuild/linux-s390x": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", - "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", - "cpu": [ - "s390x" - ], + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], "engines": { - "node": ">=12" + "node": ">= 0.8" } }, - "node_modules/vite/node_modules/@esbuild/linux-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", - "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", - "cpu": [ - "x64" + "node_modules/update-browserslist-db": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.2.tgz", + "integrity": "sha512-PPypAm5qvlD7XMZC3BujecnaOxwhrtoFR+Dqkk5Aa/6DssiH0ibKoketaj9w8LP7Bont1rYeoV5plxD7RTEPRg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } ], - "dev": true, "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" } }, - "node_modules/vite/node_modules/@esbuild/netbsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", - "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", - "cpu": [ - "x64" - ], + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=12" + "dependencies": { + "punycode": "^2.1.0" } }, - "node_modules/vite/node_modules/@esbuild/openbsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", - "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", - "cpu": [ - "x64" - ], + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ], "engines": { - "node": ">=12" + "node": ">= 0.4.0" } }, - "node_modules/vite/node_modules/@esbuild/sunos-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", - "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", - "cpu": [ - "x64" - ], + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=12" + "bin": { + "uuid": "dist/bin/uuid" } }, - "node_modules/vite/node_modules/@esbuild/win32-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", - "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", - "cpu": [ - "arm64" - ], + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" } }, - "node_modules/vite/node_modules/@esbuild/win32-ia32": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", - "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", - "cpu": [ - "ia32" - ], + "node_modules/validate-npm-package-name": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-6.0.0.tgz", + "integrity": "sha512-d7KLgL1LD3U3fgnvWEY1cQXoO/q6EQ1BSz48Sa149V/5zVTAbgmZIpyI8TRi6U9/JNyeYLlTKsEMPtLC27RFUg==", "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], + "license": "ISC", "engines": { - "node": ">=12" + "node": "^18.17.0 || >=20.5.0" } }, - "node_modules/vite/node_modules/@esbuild/win32-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", - "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", - "cpu": [ - "x64" - ], + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], "engines": { - "node": ">=12" + "node": ">= 0.8" + } + }, + "node_modules/vectorious": { + "version": "6.1.12", + "resolved": "https://registry.npmjs.org/vectorious/-/vectorious-6.1.12.tgz", + "integrity": "sha512-agC4qbdhdVe3DE5FEUazXjE5JOwm6BHhSePij3IZQdYLttYr6nBl8zUi0ZHyQWhOgNqh0b8Qh8w4UUfVzgnXqw==", + "optionalDependencies": { + "nblas": "^2.1.11", + "nlapack": "^2.0.7" } }, - "node_modules/vite/node_modules/esbuild": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", - "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", + "node_modules/vite": { + "version": "6.0.11", + "resolved": "https://registry.npmjs.org/vite/-/vite-6.0.11.tgz", + "integrity": "sha512-4VL9mQPKoHy4+FE0NnRE/kbY51TOfaknxAjt3fJbGJxhIpBZiqVzlZDEesWWsuREXHwNdAoOFZ9MkPEVXczHwg==", "dev": true, - "hasInstallScript": true, "license": "MIT", + "peer": true, + "dependencies": { + "esbuild": "^0.24.2", + "postcss": "^8.4.49", + "rollup": "^4.23.0" + }, "bin": { - "esbuild": "bin/esbuild" + "vite": "bin/vite.js" }, "engines": { - "node": ">=12" + "node": "^18.0.0 || ^20.0.0 || >=22.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" }, "optionalDependencies": { - "@esbuild/aix-ppc64": "0.21.5", - "@esbuild/android-arm": "0.21.5", - "@esbuild/android-arm64": "0.21.5", - "@esbuild/android-x64": "0.21.5", - "@esbuild/darwin-arm64": "0.21.5", - "@esbuild/darwin-x64": "0.21.5", - "@esbuild/freebsd-arm64": "0.21.5", - "@esbuild/freebsd-x64": "0.21.5", - "@esbuild/linux-arm": "0.21.5", - "@esbuild/linux-arm64": "0.21.5", - "@esbuild/linux-ia32": "0.21.5", - "@esbuild/linux-loong64": "0.21.5", - "@esbuild/linux-mips64el": "0.21.5", - "@esbuild/linux-ppc64": "0.21.5", - "@esbuild/linux-riscv64": "0.21.5", - "@esbuild/linux-s390x": "0.21.5", - "@esbuild/linux-x64": "0.21.5", - "@esbuild/netbsd-x64": "0.21.5", - "@esbuild/openbsd-x64": "0.21.5", - "@esbuild/sunos-x64": "0.21.5", - "@esbuild/win32-arm64": "0.21.5", - "@esbuild/win32-ia32": "0.21.5", - "@esbuild/win32-x64": "0.21.5" - } - }, - "node_modules/vite/node_modules/postcss": { - "version": "8.4.47", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.47.tgz", - "integrity": "sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", + "jiti": ">=1.21.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "sass-embedded": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" + "jiti": { + "optional": true }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true } - ], - "license": "MIT", - "dependencies": { - "nanoid": "^3.3.7", - "picocolors": "^1.1.0", - "source-map-js": "^1.2.1" - }, - "engines": { - "node": "^10 || ^12 || >=14" } }, "node_modules/void-elements": { @@ -15682,9 +16003,9 @@ } }, "node_modules/watchpack": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.1.tgz", - "integrity": "sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg==", + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.2.tgz", + "integrity": "sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==", "dev": true, "license": "MIT", "dependencies": { @@ -15719,22 +16040,23 @@ "resolved": "https://registry.npmjs.org/weak-lru-cache/-/weak-lru-cache-1.2.2.tgz", "integrity": "sha512-DEAoo25RfSYMuTGc9vPJzZcZullwIqRDSI9LOy+fkCJPi6hykCnfKaXTuPBDuXAUcqHXyOgFtHNp/kB2FjYHbw==", "dev": true, - "license": "MIT" + "license": "MIT", + "optional": true }, "node_modules/webpack": { - "version": "5.94.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.94.0.tgz", - "integrity": "sha512-KcsGn50VT+06JH/iunZJedYGUJS5FGjow8wb9c0v5n1Om8O1g4L6LjtfxwlXIATopoQu+vOXXa7gYisWxCoPyg==", + "version": "5.97.1", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.97.1.tgz", + "integrity": "sha512-EksG6gFY3L1eFMROS/7Wzgrii5mBAFe4rIr3r2BTfo7bcc+DWwFZ4OJ/miOuHJO/A85HwyI4eQ0F6IKXesO7Fg==", "dev": true, "license": "MIT", "dependencies": { - "@types/estree": "^1.0.5", - "@webassemblyjs/ast": "^1.12.1", - "@webassemblyjs/wasm-edit": "^1.12.1", - "@webassemblyjs/wasm-parser": "^1.12.1", - "acorn": "^8.7.1", - "acorn-import-attributes": "^1.9.5", - "browserslist": "^4.21.10", + "@types/eslint-scope": "^3.7.7", + "@types/estree": "^1.0.6", + "@webassemblyjs/ast": "^1.14.1", + "@webassemblyjs/wasm-edit": "^1.14.1", + "@webassemblyjs/wasm-parser": "^1.14.1", + "acorn": "^8.14.0", + "browserslist": "^4.24.0", "chrome-trace-event": "^1.0.2", "enhanced-resolve": "^5.17.1", "es-module-lexer": "^1.2.1", @@ -15799,9 +16121,9 @@ } }, "node_modules/webpack-dev-server": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-5.0.4.tgz", - "integrity": "sha512-dljXhUgx3HqKP2d8J/fUMvhxGhzjeNVarDLcbO/EWMSgRizDkxHQDZQaLFL5VJY9tRBj2Gz+rvCEYYvhbqPHNA==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-5.2.0.tgz", + "integrity": "sha512-90SqqYXA2SK36KcT6o1bvwvZfJFcmoamqeJY7+boioffX9g9C0wjjJRGUrQIuh43pb0ttX7+ssavmj/WN2RHtA==", "dev": true, "license": "MIT", "dependencies": { @@ -15818,23 +16140,20 @@ "colorette": "^2.0.10", "compression": "^1.7.4", "connect-history-api-fallback": "^2.0.0", - "default-gateway": "^6.0.3", - "express": "^4.17.3", + "express": "^4.21.2", "graceful-fs": "^4.2.6", - "html-entities": "^2.4.0", - "http-proxy-middleware": "^2.0.3", + "http-proxy-middleware": "^2.0.7", "ipaddr.js": "^2.1.0", "launch-editor": "^2.6.1", "open": "^10.0.3", "p-retry": "^6.2.0", - "rimraf": "^5.0.5", "schema-utils": "^4.2.0", "selfsigned": "^2.4.1", "serve-index": "^1.9.1", "sockjs": "^0.3.24", "spdy": "^4.0.2", - "webpack-dev-middleware": "^7.1.0", - "ws": "^8.16.0" + "webpack-dev-middleware": "^7.4.2", + "ws": "^8.18.0" }, "bin": { "webpack-dev-server": "bin/webpack-dev-server.js" @@ -15858,37 +16177,6 @@ } } }, - "node_modules/webpack-dev-server/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/webpack-dev-server/node_modules/glob": { - "version": "10.4.5", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", - "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", - "dev": true, - "license": "ISC", - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^1.11.1" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/webpack-dev-server/node_modules/http-proxy-middleware": { "version": "2.0.7", "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.7.tgz", @@ -15914,38 +16202,6 @@ } } }, - "node_modules/webpack-dev-server/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/webpack-dev-server/node_modules/rimraf": { - "version": "5.0.10", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.10.tgz", - "integrity": "sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "glob": "^10.3.7" - }, - "bin": { - "rimraf": "dist/esm/bin.mjs" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/webpack-dev-server/node_modules/ws": { "version": "8.18.0", "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", @@ -16324,10 +16580,11 @@ } }, "node_modules/yocto-queue": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", - "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.1.1.tgz", + "integrity": "sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g==", "dev": true, + "license": "MIT", "engines": { "node": ">=12.20" }, @@ -16349,9 +16606,9 @@ } }, "node_modules/zone.js": { - "version": "0.14.10", - "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.14.10.tgz", - "integrity": "sha512-YGAhaO7J5ywOXW6InXNlLmfU194F8lVgu7bRntUF3TiG8Y3nBK0x1UJJuHUP/e8IyihkjCYqhCScpSwnlaSRkQ==", + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.15.0.tgz", + "integrity": "sha512-9oxn0IIjbCZkJ67L+LkhYWRyAy7axphb3VgE2MBDlOqnmHMPWGYMxJxBYFueFq/JGY2GMwS0rU+UCLunEmy5UA==", "license": "MIT" } } diff --git a/package.json b/package.json index 97755ff..392064d 100644 --- a/package.json +++ b/package.json @@ -13,16 +13,16 @@ }, "private": false, "dependencies": { - "@angular/animations": "^18.2.8", - "@angular/cdk": "^18.2.9", - "@angular/common": "^18.2.8", - "@angular/compiler": "^18.2.8", - "@angular/core": "^18.2.8", - "@angular/forms": "^18.2.8", - "@angular/material": "^18.2.9", - "@angular/platform-browser": "18.2.8", - "@angular/platform-browser-dynamic": "^18.2.8", - "@angular/router": "^18.2.8", + "@angular/animations": "^19.1.3", + "@angular/cdk": "^19.1.1", + "@angular/common": "^19.1.3", + "@angular/compiler": "^19.1.3", + "@angular/core": "^19.1.3", + "@angular/forms": "^19.1.3", + "@angular/material": "^19.1.1", + "@angular/platform-browser": "19.1.3", + "@angular/platform-browser-dynamic": "^19.1.3", + "@angular/router": "^19.1.3", "@ngneat/until-destroy": "^10.0.0", "cytoscape": "^3.29.2", "cytoscape-fcose": "^2.2.0", @@ -30,12 +30,12 @@ "rxjs": "~7.8.0", "tslib": "^2.3.0", "vectorious": "^6.1.12", - "zone.js": "~0.14.10" + "zone.js": "~0.15.0" }, "devDependencies": { - "@angular-devkit/build-angular": "^18.2.9", - "@angular/cli": "^18.2.9", - "@angular/compiler-cli": "^18.2.8", + "@angular-devkit/build-angular": "^19.1.4", + "@angular/cli": "^19.1.4", + "@angular/compiler-cli": "^19.1.3", "@types/cytoscape": "^3.21.0", "@types/cytoscape-fcose": "^2.2.4", "@types/jasmine": "~4.3.0", @@ -47,8 +47,8 @@ "karma-coverage": "~2.2.0", "karma-jasmine": "~5.1.0", "karma-jasmine-html-reporter": "~2.1.0", - "ng-packagr": "^18.2.1", + "ng-packagr": "^19.1.1", "npm-run-all": "^4.1.1", - "typescript": "~5.4.5" + "typescript": "~5.7.3" } } From d533504a113ca9e9d7463c7f95d5484e48c2b741 Mon Sep 17 00:00:00 2001 From: EliotRagueneau Date: Fri, 24 Jan 2025 10:54:56 +0000 Subject: [PATCH 24/49] @angular/core migration - explicit-standalone-flag Updates non-standalone Directives, Component and Pipes to 'standalone:false' and removes 'standalone:true' from those who are standalone --- .../diagram-iterator.component.ts | 7 ++++--- .../src/lib/diagram/diagram.component.ts | 15 +++++++-------- .../src/lib/ngx-reactome-style.component.ts | 9 ++++----- src/app/app.component.ts | 9 ++++----- 4 files changed, 19 insertions(+), 21 deletions(-) diff --git a/projects/ngx-reactome-diagram/src/lib/diagram-iterator/diagram-iterator.component.ts b/projects/ngx-reactome-diagram/src/lib/diagram-iterator/diagram-iterator.component.ts index 11dd7fa..33163b4 100644 --- a/projects/ngx-reactome-diagram/src/lib/diagram-iterator/diagram-iterator.component.ts +++ b/projects/ngx-reactome-diagram/src/lib/diagram-iterator/diagram-iterator.component.ts @@ -5,9 +5,10 @@ import {DiagramComponent} from "../diagram/diagram.component"; import {combineLatest} from "rxjs"; @Component({ - selector: 'cr-diagram-iterator', - templateUrl: './diagram-iterator.component.html', - styleUrls: ['./diagram-iterator.component.scss'] + selector: 'cr-diagram-iterator', + templateUrl: './diagram-iterator.component.html', + styleUrls: ['./diagram-iterator.component.scss'], + standalone: false }) export class DiagramIteratorComponent implements AfterViewInit { diff --git a/projects/ngx-reactome-diagram/src/lib/diagram/diagram.component.ts b/projects/ngx-reactome-diagram/src/lib/diagram/diagram.component.ts index 91ee0c2..033f806 100644 --- a/projects/ngx-reactome-diagram/src/lib/diagram/diagram.component.ts +++ b/projects/ngx-reactome-diagram/src/lib/diagram/diagram.component.ts @@ -23,14 +23,13 @@ import { CdkDrag } from '@angular/cdk/drag-drop'; @UntilDestroy({checkProperties: true}) @Component({ - selector: 'cr-diagram', - templateUrl: './diagram.component.html', - styleUrls: ['./diagram.component.scss'], - standalone: true, - imports: [ - CommonModule, - CdkDrag - ] + selector: 'cr-diagram', + templateUrl: './diagram.component.html', + styleUrls: ['./diagram.component.scss'], + imports: [ + CommonModule, + CdkDrag + ] }) export class DiagramComponent implements AfterViewInit, OnChanges { title = 'pathway-browser'; diff --git a/projects/ngx-reactome-style/src/lib/ngx-reactome-style.component.ts b/projects/ngx-reactome-style/src/lib/ngx-reactome-style.component.ts index 74badce..c94f0a5 100644 --- a/projects/ngx-reactome-style/src/lib/ngx-reactome-style.component.ts +++ b/projects/ngx-reactome-style/src/lib/ngx-reactome-style.component.ts @@ -1,15 +1,14 @@ import { Component } from '@angular/core'; @Component({ - selector: 'lib-ngx-reactome-style', - standalone: true, - imports: [], - template: ` + selector: 'lib-ngx-reactome-style', + imports: [], + template: `

ngx-reactome-style works!

`, - styles: `` + styles: `` }) export class NgxReactomeStyleComponent { diff --git a/src/app/app.component.ts b/src/app/app.component.ts index 2eede01..2f2470f 100644 --- a/src/app/app.component.ts +++ b/src/app/app.component.ts @@ -2,11 +2,10 @@ import { Component } from '@angular/core'; import { RouterOutlet } from '@angular/router'; @Component({ - selector: 'app-root', - standalone: true, - imports: [RouterOutlet], - templateUrl: './app.component.html', - styleUrl: './app.component.css' + selector: 'app-root', + imports: [RouterOutlet], + templateUrl: './app.component.html', + styleUrl: './app.component.css' }) export class AppComponent { title = 'ngx-reactome-base'; From c80e24272afc253929024b638ab0add108718178 Mon Sep 17 00:00:00 2001 From: EliotRagueneau Date: Fri, 24 Jan 2025 10:55:07 +0000 Subject: [PATCH 25/49] @angular/material migration - migration-v19 Updates Angular Material to v19 --- projects/ngx-reactome-style/src/assets/_index.scss | 9 ++++++--- src/custom-theme.scss | 3 ++- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/projects/ngx-reactome-style/src/assets/_index.scss b/projects/ngx-reactome-style/src/assets/_index.scss index ccdff25..68f1e64 100644 --- a/projects/ngx-reactome-style/src/assets/_index.scss +++ b/projects/ngx-reactome-style/src/assets/_index.scss @@ -24,7 +24,8 @@ $bg-color: map.get(p.$primary-colors, 990); // you can delete this line and instead use: // `@include mat.typography-hierarchy(mat.define-typography-config());` @include mat.all-component-typographies(); -@include mat.core(); +@include mat.elevation-classes(); +@include mat.app-background(); // Define the palettes for your theme using the Material Design palettes available in palette.scss @@ -72,7 +73,8 @@ $palettes: ( // that you are using. //@include mat.all-component-themes($light-theme); -@include mat.core-theme($light-theme); +@include mat.elevation-classes(); +@include mat.app-background(); @include mat.card-theme($light-theme); @include mat.progress-bar-theme($light-theme); @include mat.tooltip-theme($light-theme); @@ -113,7 +115,8 @@ $color-config: mat.m2-get-color-config($light-theme); $color-config: mat.m2-get-color-config($dark-theme); @include mat.all-component-colors($dark-theme); - @include mat.core-color($dark-theme); + @include mat.elevation-classes(); + @include mat.app-background(); @include mat.card-color($dark-theme); @include mat.progress-bar-color($dark-theme); @include mat.tooltip-color($dark-theme); diff --git a/src/custom-theme.scss b/src/custom-theme.scss index 0357e38..025268d 100644 --- a/src/custom-theme.scss +++ b/src/custom-theme.scss @@ -7,7 +7,8 @@ // Include the common styles for Angular Material. We include this here so that you only // have to load a single css file for Angular Material in your app. // Be sure that you only ever include this mixin once! -@include mat.core(); +@include mat.elevation-classes(); +@include mat.app-background(); // Define the palettes for your theme using the Material Design palettes available in palette.scss // (imported above). For each palette, you can optionally specify a default, lighter, and darker From c041d1100e4e969f7cf409577e46ff1c5d5b2188 Mon Sep 17 00:00:00 2001 From: EliotRagueneau Date: Fri, 24 Jan 2025 18:15:42 +0000 Subject: [PATCH 26/49] :arrow_up: Angular 19 + material 3 --- .../ngx-reactome-style/src/assets/_index.scss | 300 ++++++++++-------- .../src/assets/_palette-def.scss | 226 ------------- .../src/assets/_theme-colors.scss | 204 ++++++++++++ .../src/assets/_variables.scss | 120 ++----- .../src/assets/theme-helper.scss | 36 --- 5 files changed, 396 insertions(+), 490 deletions(-) delete mode 100644 projects/ngx-reactome-style/src/assets/_palette-def.scss create mode 100644 projects/ngx-reactome-style/src/assets/_theme-colors.scss delete mode 100644 projects/ngx-reactome-style/src/assets/theme-helper.scss diff --git a/projects/ngx-reactome-style/src/assets/_index.scss b/projects/ngx-reactome-style/src/assets/_index.scss index 68f1e64..4d76a9e 100644 --- a/projects/ngx-reactome-style/src/assets/_index.scss +++ b/projects/ngx-reactome-style/src/assets/_index.scss @@ -1,145 +1,167 @@ -// Custom Theming for Angular Material -// For more information: https://material.angular.io/guide/theming +//// Custom Theming for Angular Material +//// For more information: https://material.angular.io/guide/theming @use '@angular/material' as mat; -@use "palette-def" as p; +@use "theme-colors" as colors; @use "variables"; -@use 'sass:map'; -@use 'theme-helper'; - -$bg-color: map.get(p.$primary-colors, 990); - - -// Plus imports for other components in your app. - - -// Include the common styles for Angular Material. We include this here so that you only -// have to load a single css file for Angular Material in your app. -// Be sure that you only ever include this mixin once! -// TODO(v15): As of v15 mat.core no longer includes default typography styles. -// The following line adds: -// 1. Default typography styles for all components -// 2. Styles for typography hierarchy classes (e.g. .mat-headline-1) -// If you specify typography styles for the components you use elsewhere, you should delete this line. -// If you don't need the default component typographies but still want the hierarchy styles, -// you can delete this line and instead use: -// `@include mat.typography-hierarchy(mat.define-typography-config());` -@include mat.all-component-typographies(); -@include mat.elevation-classes(); -@include mat.app-background(); - - -// Define the palettes for your theme using the Material Design palettes available in palette.scss -// (imported above). For each palette, you can optionally specify a default, lighter, and darker -// hue. Available color palettes: https://material.io/design/color/ -$primary-palette: mat.m2-define-palette(p.$primary-colors, 600); -$secondary-palette: mat.m2-define-palette(p.$secondary-colors, 600); -$tertiary-palette: mat.m2-define-palette(p.$tertiary-colors, 600); - -// The warn palette is optional (defaults to red). -$error-palette: mat.m2-define-palette(p.$error-colors); -$neutral-palette: mat.m2-define-palette(p.$neutral-colors); -$neutral-variant-palette: mat.m2-define-palette(p.$neutral-variant-colors); - -// Create the theme object. A theme consists of configurations for individual -// theming systems such as "color" or "typography". -$light-theme: mat.m2-define-light-theme(( - color: ( - primary: $primary-palette, - accent: $tertiary-palette, - warn: $error-palette, - ), - density: -1 -)); - -$dark-theme: mat.m2-define-dark-theme(( - color: ( - primary: mat.m2-define-palette(p.$primary-colors, 200), - accent: mat.m2-define-palette(p.$tertiary-colors, 200), - warn: mat.m2-define-palette(p.$error-colors, 200), - ) -)); - -$palettes: ( - primary-palette: $primary-palette, - secondary-palette: $secondary-palette, - tertiary-palette: $tertiary-palette, - error-palette: $error-palette, - neutral-palette: $neutral-palette, - neutral-variant-palette: $neutral-variant-palette -); - -// Include theme styles for core and each component used in your app. -// Alternatively, you can import and @include the theme mixins for each component -// that you are using. -//@include mat.all-component-themes($light-theme); - -@include mat.elevation-classes(); -@include mat.app-background(); -@include mat.card-theme($light-theme); -@include mat.progress-bar-theme($light-theme); -@include mat.tooltip-theme($light-theme); -@include mat.form-field-theme($light-theme); -@include mat.input-theme($light-theme); -@include mat.select-theme($light-theme); -@include mat.dialog-theme($light-theme); -@include mat.slide-toggle-theme($light-theme); -@include mat.checkbox-theme($light-theme); -@include mat.button-theme($light-theme); -@include mat.icon-button-theme($light-theme); -@include mat.fab-theme($light-theme); -@include mat.snack-bar-theme($light-theme); -@include mat.progress-spinner-theme($light-theme); -@include mat.divider-theme($light-theme); -@include mat.expansion-theme($light-theme); -@include mat.icon-theme($light-theme); -@include mat.stepper-theme($light-theme); -@include mat.menu-theme($light-theme); - - -//@include nested-stepper.theme($light-theme); -$bg-color: map.get(p.$primary-colors, 010); - -$color-config: mat.m2-get-color-config($light-theme); - - - -// Apply the dark theme only when the user prefers dark themes. -.dark { - // Use the `-color` mixins to only apply color styles without reapplying the same - // typography and density styles. - $bg-color: map.get(p.$primary-colors, 950); - - $dark-theme: theme-helper.modify-background($dark-theme, p.$dark-theme-background-palette-redef); - $dark-theme: theme-helper.modify-foreground($dark-theme, p.$dark-theme-foreground-palette-redef); - - $color-config: mat.m2-get-color-config($dark-theme); - @include mat.all-component-colors($dark-theme); - - @include mat.elevation-classes(); - @include mat.app-background(); - @include mat.card-color($dark-theme); - @include mat.progress-bar-color($dark-theme); - @include mat.tooltip-color($dark-theme); - @include mat.form-field-color($dark-theme); - @include mat.input-color($dark-theme); - @include mat.select-color($dark-theme); - @include mat.dialog-color($dark-theme); - @include mat.slide-toggle-color($dark-theme); - @include mat.checkbox-color($dark-theme); - @include mat.button-color($dark-theme); - @include mat.icon-button-color($dark-theme); - @include mat.fab-color($dark-theme); - @include mat.snack-bar-color($dark-theme); - @include mat.progress-spinner-color($dark-theme); - @include mat.divider-color($dark-theme); - @include mat.expansion-color($dark-theme); - @include mat.icon-color($dark-theme); - @include mat.stepper-color($dark-theme); - @include mat.menu-color($dark-theme); +@mixin theme() { + :root { + font-family: Roboto, "Helvetica Neue", sans-serif; + @include mat.theme(( + color: ( + primary: colors.$primary-palette, + tertiary: colors.$tertiary-palette, + theme-type: color-scheme + ), + typography: Roboto, + density: 0 + )); + }; + + .high-contrast { + @include colors.high-contrast-overrides('color-scheme'); + } + @include variables.variables(); } -@include variables.theme($palettes); - - +// +//$bg-color: map.get(p.$primary-colors, 990); +// +// +//// Plus imports for other components in your app. +// +// +//// Include the common styles for Angular Material. We include this here so that you only +//// have to load a single css file for Angular Material in your app. +//// Be sure that you only ever include this mixin once! +//// TODO(v15): As of v15 mat.core no longer includes default typography styles. +//// The following line adds: +//// 1. Default typography styles for all components +//// 2. Styles for typography hierarchy classes (e.g. .mat-headline-1) +//// If you specify typography styles for the components you use elsewhere, you should delete this line. +//// If you don't need the default component typographies but still want the hierarchy styles, +//// you can delete this line and instead use: +//// `@include mat.typography-hierarchy(mat.define-typography-config());` +//@include mat.all-component-typographies(); +//@include mat.elevation-classes(); +//@include mat.app-background(); +// +// +//// Define the palettes for your theme using the Material Design palettes available in palette.scss +//// (imported above). For each palette, you can optionally specify a default, lighter, and darker +//// hue. Available color palettes: https://material.io/design/color/ +//$primary-palette: mat.m2-define-palette(p.$primary-colors, 600); +//$secondary-palette: mat.m2-define-palette(p.$secondary-colors, 600); +//$tertiary-palette: mat.m2-define-palette(p.$tertiary-colors, 600); +// +// +// +//// The warn palette is optional (defaults to red). +//$error-palette: mat.m2-define-palette(p.$error-colors); +//$neutral-palette: mat.m2-define-palette(p.$neutral-colors); +//$neutral-variant-palette: mat.m2-define-palette(p.$neutral-variant-colors); +// +//// Create the theme object. A theme consists of configurations for individual +//// theming systems such as "color" or "typography". +//$light-theme: mat.m2-define-light-theme(( +// color: ( +// primary: $primary-palette, +// accent: $tertiary-palette, +// warn: $error-palette, +// ), +// density: -1 +//)); +// +//$dark-theme: mat.m2-define-dark-theme(( +// color: ( +// primary: mat.m2-define-palette(p.$primary-colors, 200), +// accent: mat.m2-define-palette(p.$tertiary-colors, 200), +// warn: mat.m2-define-palette(p.$error-colors, 200), +// ) +//)); +// +//$palettes: ( +// primary-palette: $primary-palette, +// secondary-palette: $secondary-palette, +// tertiary-palette: $tertiary-palette, +// error-palette: $error-palette, +// neutral-palette: $neutral-palette, +// neutral-variant-palette: $neutral-variant-palette +//); +// +//// Include theme styles for core and each component used in your app. +//// Alternatively, you can import and @include the theme mixins for each component +//// that you are using. +////@include mat.all-component-themes($light-theme); +// +//@include mat.elevation-classes(); +//@include mat.app-background(); +//@include mat.card-theme($light-theme); +//@include mat.progress-bar-theme($light-theme); +//@include mat.tooltip-theme($light-theme); +//@include mat.form-field-theme($light-theme); +//@include mat.input-theme($light-theme); +//@include mat.select-theme($light-theme); +//@include mat.dialog-theme($light-theme); +//@include mat.slide-toggle-theme($light-theme); +//@include mat.checkbox-theme($light-theme); +//@include mat.button-theme($light-theme); +//@include mat.icon-button-theme($light-theme); +//@include mat.fab-theme($light-theme); +//@include mat.snack-bar-theme($light-theme); +//@include mat.progress-spinner-theme($light-theme); +//@include mat.divider-theme($light-theme); +//@include mat.expansion-theme($light-theme); +//@include mat.icon-theme($light-theme); +//@include mat.stepper-theme($light-theme); +//@include mat.menu-theme($light-theme); +// +// +////@include nested-stepper.theme($light-theme); +//$bg-color: map.get(p.$primary-colors, 010); +// +//$color-config: mat.m2-get-color-config($light-theme); +// +// +// +//// Apply the dark theme only when the user prefers dark themes. +//.dark { +// // Use the `-color` mixins to only apply color styles without reapplying the same +// // typography and density styles. +// $bg-color: map.get(p.$primary-colors, 950); +// +// $dark-theme: theme-helper.modify-background($dark-theme, p.$dark-theme-background-palette-redef); +// $dark-theme: theme-helper.modify-foreground($dark-theme, p.$dark-theme-foreground-palette-redef); +// +// $color-config: mat.m2-get-color-config($dark-theme); +// @include mat.all-component-colors($dark-theme); +// +// @include mat.elevation-classes(); +// @include mat.app-background(); +// @include mat.card-color($dark-theme); +// @include mat.progress-bar-color($dark-theme); +// @include mat.tooltip-color($dark-theme); +// @include mat.form-field-color($dark-theme); +// @include mat.input-color($dark-theme); +// @include mat.select-color($dark-theme); +// @include mat.dialog-color($dark-theme); +// @include mat.slide-toggle-color($dark-theme); +// @include mat.checkbox-color($dark-theme); +// @include mat.button-color($dark-theme); +// @include mat.icon-button-color($dark-theme); +// @include mat.fab-color($dark-theme); +// @include mat.snack-bar-color($dark-theme); +// @include mat.progress-spinner-color($dark-theme); +// @include mat.divider-color($dark-theme); +// @include mat.expansion-color($dark-theme); +// @include mat.icon-color($dark-theme); +// @include mat.stepper-color($dark-theme); +// @include mat.menu-color($dark-theme); +// +//} +// +//@include variables.theme($palettes); +// +// +// diff --git a/projects/ngx-reactome-style/src/assets/_palette-def.scss b/projects/ngx-reactome-style/src/assets/_palette-def.scss deleted file mode 100644 index fcd4565..0000000 --- a/projects/ngx-reactome-style/src/assets/_palette-def.scss +++ /dev/null @@ -1,226 +0,0 @@ -@use "sass:map"; - -$primary-colors: ( - 002: #ffffff, - 010: #fafdff, - 050: #dff4ff, - 100: #baeaff, - 200: #5cd4ff, - 300: #20b9e5, - 400: #009dc4, - 500: #0081a2, - 600: #006782, - 700: #004d62, - 800: #003545, - 900: #001f29, - 950: #0D1617, - 1000: #000000, - contrast: ( - 002: #000000, - 010: #000000, - 050: #000000, - 100: #000000, - 200: #000000, - 300: #000000, - 400: #000000, - 500: #000000, - 600: #ffffff, - 700: #ffffff, - 800: #ffffff, - 900: #ffffff, - 950: #ffffff, - 990: #ffffff, - 1000: #ffffff - ) -); - -$secondary-colors: ( - 002: #ffffff, - 010: #fafdff, - 050: #dff4ff, - 100: #baeaff, - 200: #5cd4ff, - 300: #20b9e5, - 400: #009dc4, - 500: #0081a2, - 600: #006782, - 700: #004d62, - 800: #003545, - 900: #001f29, - 950: #0D1617, - 1000: #000000, - contrast: ( - 002: #000000, - 050: #000000, - 100: #000000, - 200: #000000, - 300: #000000, - 400: #000000, - 500: #000000, - 600: #000000, - 700: #ffffff, - 800: #ffffff, - 900: #ffffff, - 950: #ffffff, - 990: #ffffff, - 1000: #ffffff - ) -); - -$tertiary-colors: ( - 002: #ffffff, - 010: #FDFCFF, - 050: #EAF1FF, - 100: #d3e4ff, - 200: #a3c9ff, - 300: #74aef8, - 400: #5793db, - 500: #3a79c0, - 600: #1660a5, - 700: #004882, - 800: #00315c, - 900: #001c38, - 950: #0D1317, - 1000: #000000, - contrast: ( - 002: #000000, - 100: #000000, - 200: #000000, - 300: #000000, - 400: #000000, - 500: #000000, - 600: #ffffff, - 700: #ffffff, - 800: #ffffff, - 900: #ffffff, - 950: #ffffff, - 990: #ffffff, - 1000: #ffffff - ) -); - -$neutral-colors: ( - 002: #ffffff, - 010: #FAFDFF, - 050: #D0F8FF, - 100: #a6eeff, - 200: #53d7f1, - 300: #29bbd5, - 400: #009fb6, - 500: #008396, - 600: #006878, - 700: #004e5b, - 800: #00363f, - 900: #001f25, - 950: #001013, - 1000: #000000, - contrast: ( - 002: #000, - 100: #000, - 200: #000, - 300: #000, - 400: #000, - 500: #000, - 600: #fff, - 700: #fff, - 800: #fff, - 900: #fff, - 950: #fff, - 990: #fff, - 1000: #fff - ) -); - -$neutral-variant-colors: ( - 002: #ffffff, - 010: #FAFDFF, - 050: #EAF2F7, - 100: #E9F2F6, - 200: #c0c8cc, - 300: #a4acb1, - 400: #8a9296, - 500: #70787d, - 600: #576064, - 700: #40484c, - 800: #2a3235, - 900: #151d20, - 1000: #000000, - contrast: ( - 002: #000, - 010: #000, - 050: #000, - 100: #000, - 200: #000, - 300: #000, - 400: #000, - 500: #fff, - 600: #fff, - 700: #fff, - 800: #fff, - 900: #fff, - 1000: #fff - ) -); - -$error-colors: ( - 002: #ffffff, - 010: #FFFBFF, - 050: #FFEDEA, - 100: #FFEDEA, - 200: #FFC7C2, - 300: #FFA19A, - 400: #FF7A71, - 500: #ff5449, - 600: #de3730, - 700: #ba1a1a, - 800: #93000a, - 900: #690005, - 1000: #410002, - contrast: ( - 002: #000, - 100: #000, - 200: #000, - 300: #000, - 400: #000, - 500: #000, - 600: #fff, - 700: #fff, - 800: #fff, - 900: #fff, - 950: #fff, - 990: #fff, - 1000: #fff - ) -); - - //Background palette for dark themes. -$dark-theme-background-palette-redef: ( - status-bar: black, - app-bar: map.get($neutral-colors, 900), - background: map.get($neutral-colors, 950), - hover: rgba(white, 0.04), - card: map.get($neutral-colors, 800), - dialog: map.get($neutral-colors, 900), - disabled-button: rgba(white, 0.12), - raised-button: map.get($neutral-colors, 800), - selected-button: map.get($neutral-colors, 900), - selected-disabled-button: map.get($neutral-colors, 800), - disabled-button-toggle: black, - unselected-chip: map.get($neutral-colors, 700), - disabled-list-option: rgba(white, 0.12), - tooltip: map.get($neutral-colors, 700), -); - -// Foreground palette for dark themes. -//$light-theme-background-palette -$dark-theme-foreground-palette-redef: ( - base: white, - disabled-button: rgba(white, 0.3), - elevation: map.get($primary-colors, 200), - icon: white, - icons: white, - text: white, - slider-min: white, - slider-off: rgba(white, 0.3), - slider-off-active: rgba(white, 0.3), -); diff --git a/projects/ngx-reactome-style/src/assets/_theme-colors.scss b/projects/ngx-reactome-style/src/assets/_theme-colors.scss new file mode 100644 index 0000000..36addd8 --- /dev/null +++ b/projects/ngx-reactome-style/src/assets/_theme-colors.scss @@ -0,0 +1,204 @@ +// This file was generated by running 'ng generate @angular/material:theme-color'. +// Proceed with caution if making changes to this file. + +@use 'sass:map'; +@use '@angular/material' as mat; + +// Note: Color palettes are generated from primary: #20b9e5, secondary: #20b9e5, tertiary: #5793db, neutral: #009fb6 +$_palettes: ( + primary: ( + 0: #000000, + 10: #001f29, + 20: #003545, + 25: #004153, + 30: #004d62, + 35: #005a72, + 40: #006781, + 50: #0081a2, + 60: #009dc4, + 70: #20b9e5, + 80: #5bd4ff, + 90: #baeaff, + 95: #def4ff, + 98: #f3faff, + 99: #fafdff, + 100: #ffffff, + ), + secondary: ( + 0: #000000, + 10: #001f29, + 20: #003545, + 25: #004153, + 30: #004d62, + 35: #005a72, + 40: #006781, + 50: #0081a2, + 60: #009dc4, + 70: #20b9e5, + 80: #5bd4ff, + 90: #baeaff, + 95: #def4ff, + 98: #f3faff, + 99: #fafdff, + 100: #ffffff, + ), + tertiary: ( + 0: #000000, + 10: #001c38, + 20: #00315c, + 25: #003c6e, + 30: #004882, + 35: #005496, + 40: #1660a5, + 50: #3a79c0, + 60: #5793db, + 70: #73aef8, + 80: #a3c9ff, + 90: #d3e4ff, + 95: #eaf1ff, + 98: #f8f9ff, + 99: #fdfcff, + 100: #ffffff, + ), + neutral: ( + 0: #000000, + 10: #001f25, + 20: #00363f, + 25: #00424d, + 30: #004e5b, + 35: #005b69, + 40: #006878, + 50: #008396, + 60: #009fb6, + 70: #3dbad2, + 80: #60d6ee, + 90: #a6eeff, + 95: #d6f6ff, + 98: #effbff, + 99: #f7fdff, + 100: #ffffff, + 4: #001115, + 6: #00161b, + 12: #00242a, + 17: #002f37, + 22: #003b44, + 24: #003f4a, + 87: #83e8ff, + 92: #baf1ff, + 94: #cdf5ff, + 96: #def8ff, + ), + neutral-variant: ( + 0: #000000, + 10: #121d22, + 20: #273237, + 25: #323d42, + 30: #3d484e, + 35: #49545a, + 40: #546066, + 50: #6d797f, + 60: #879399, + 70: #a1adb3, + 80: #bcc8cf, + 90: #d8e4eb, + 95: #e6f3f9, + 98: #f3faff, + 99: #fafdff, + 100: #ffffff, + ), + error: ( + 0: #000000, + 10: #410002, + 20: #690005, + 25: #7e0007, + 30: #93000a, + 35: #a80710, + 40: #ba1a1a, + 50: #de3730, + 60: #ff5449, + 70: #ff897d, + 80: #ffb4ab, + 90: #ffdad6, + 95: #ffedea, + 98: #fff8f7, + 99: #fffbff, + 100: #ffffff, + ), +); + +$_rest: ( + secondary: map.get($_palettes, secondary), + neutral: map.get($_palettes, neutral), + neutral-variant: map.get($_palettes, neutral-variant), + error: map.get($_palettes, error), +); + +$primary-palette: map.merge(map.get($_palettes, primary), $_rest); +$tertiary-palette: map.merge(map.get($_palettes, tertiary), $_rest); + +@function _high-contrast-value($light, $dark, $theme-type) { + @if ($theme-type == light) { + @return $light; + } + @if ($theme-type == dark) { + @return $dark; + } + @if ($theme-type == color-scheme) { + @return light-dark(#{$light}, #{$dark}); + } + + @error 'Unknown theme-type #{$theme-type}. Expected light, dark, or color-scheme'; +} + +@mixin high-contrast-overrides($theme-type) { + @include mat.theme-overrides(( + primary: _high-contrast-value(#00313f, #ddf4ff, $theme-type), + on-primary: _high-contrast-value(#ffffff, #000000, $theme-type), + primary-container: _high-contrast-value(#005065, #4ad1fe, $theme-type), + on-primary-container: _high-contrast-value(#ffffff, #000d13, $theme-type), + inverse-primary: _high-contrast-value(#5bd4ff, #004f64, $theme-type), + primary-fixed: _high-contrast-value(#005065, #baeaff, $theme-type), + primary-fixed-dim: _high-contrast-value(#003848, #5bd4ff, $theme-type), + on-primary-fixed: _high-contrast-value(#ffffff, #000000, $theme-type), + on-primary-fixed-variant: _high-contrast-value(#ffffff, #00141b, $theme-type), + secondary: _high-contrast-value(#00313f, #ddf4ff, $theme-type), + on-secondary: _high-contrast-value(#ffffff, #000000, $theme-type), + secondary-container: _high-contrast-value(#005065, #4ad1fe, $theme-type), + on-secondary-container: _high-contrast-value(#ffffff, #000d13, $theme-type), + secondary-fixed: _high-contrast-value(#005065, #baeaff, $theme-type), + secondary-fixed-dim: _high-contrast-value(#003848, #5bd4ff, $theme-type), + on-secondary-fixed: _high-contrast-value(#ffffff, #000000, $theme-type), + on-secondary-fixed-variant: _high-contrast-value(#ffffff, #00141b, $theme-type), + tertiary: _high-contrast-value(#002d54, #e9f0ff, $theme-type), + on-tertiary: _high-contrast-value(#ffffff, #000000, $theme-type), + tertiary-container: _high-contrast-value(#004a86, #9bc5ff, $theme-type), + on-tertiary-container: _high-contrast-value(#ffffff, #000c1d, $theme-type), + tertiary-fixed: _high-contrast-value(#004a86, #d3e4ff, $theme-type), + tertiary-fixed-dim: _high-contrast-value(#003460, #a3c9ff, $theme-type), + on-tertiary-fixed: _high-contrast-value(#ffffff, #000000, $theme-type), + on-tertiary-fixed-variant: _high-contrast-value(#ffffff, #001227, $theme-type), + background: _high-contrast-value(#effbff, #00161b, $theme-type), + on-background: _high-contrast-value(#001f25, #a6eeff, $theme-type), + surface: _high-contrast-value(#effbff, #00161b, $theme-type), + surface-dim: _high-contrast-value(#4fc8e0, #00161b, $theme-type), + surface-bright: _high-contrast-value(#effbff, #005866, $theme-type), + surface-container-lowest: _high-contrast-value(#ffffff, #000000, $theme-type), + surface-container: _high-contrast-value(#a6eeff, #00363f, $theme-type), + surface-container-high: _high-contrast-value(#70e4fd, #00424d, $theme-type), + surface-container-highest: _high-contrast-value(#60d6ee, #004e5b, $theme-type), + on-surface: _high-contrast-value(#000000, #ffffff, $theme-type), + shadow: _high-contrast-value(#000000, #000000, $theme-type), + scrim: _high-contrast-value(#000000, #000000, $theme-type), + surface-tint: _high-contrast-value(#006781, #5bd4ff, $theme-type), + inverse-surface: _high-contrast-value(#00363f, #a6eeff, $theme-type), + inverse-on-surface: _high-contrast-value(#ffffff, #000000, $theme-type), + outline: _high-contrast-value(#222e33, #e6f2f9, $theme-type), + outline-variant: _high-contrast-value(#3f4b50, #b8c4cb, $theme-type), + error: _high-contrast-value(#600004, #ffece9, $theme-type), + on-error: _high-contrast-value(#ffffff, #000000, $theme-type), + error-container: _high-contrast-value(#98000a, #ffaea4, $theme-type), + on-error-container: _high-contrast-value(#ffffff, #220001, $theme-type), + surface-variant: _high-contrast-value(#d8e4eb, #3d484e, $theme-type), + on-surface-variant: _high-contrast-value(#000000, #ffffff, $theme-type), + )) + } diff --git a/projects/ngx-reactome-style/src/assets/_variables.scss b/projects/ngx-reactome-style/src/assets/_variables.scss index 7babe98..0c73c5d 100644 --- a/projects/ngx-reactome-style/src/assets/_variables.scss +++ b/projects/ngx-reactome-style/src/assets/_variables.scss @@ -1,108 +1,50 @@ @use "@angular/material" as mat; @use "sass:map"; -@mixin theme($palettes) { - $primary-palette: map.get($palettes, 'primary-palette'); - $secondary-palette: map.get($palettes, 'secondary-palette'); - $tertiary-palette: map.get($palettes, 'tertiary-palette'); - $error-palette: map.get($palettes, 'error-palette'); - $neutral-palette: map.get($palettes, 'neutral-palette'); - $neutral-variant-palette: map.get($palettes, 'neutral-variant-palette'); - - - $primary: mat.m2-get-color-from-palette($primary-palette, 600); - $surface: mat.m2-get-color-from-palette($neutral-palette, 010); +@mixin variables() { :root { - --primary: #{$primary}; - --on-primary: #{mat.m2-get-color-from-palette($primary-palette, 002)}; - --primary-container: #{mat.m2-get-color-from-palette($primary-palette, 100)}; - --on-primary-container: #{mat.m2-get-color-from-palette($primary-palette, 900)}; + --primary: var(--mat-sys-primary); + --on-primary: var(--mat-sys-on-primary); + --primary-container: var(--mat-sys-primary-container); + --on-primary-container: var(--mat-sys-on-primary-container); - --secondary: #{ mat.m2-get-color-from-palette($secondary-palette, 600)}; - --on-secondary: #{mat.m2-get-color-from-palette($secondary-palette, 002)}; - --secondary-container: #{ mat.m2-get-color-from-palette($secondary-palette, 100)}; - --on-secondary-container: #{ mat.m2-get-color-from-palette($secondary-palette, 900)}; + --secondary: var(--mat-sys-secondary); + --on-secondary: var(--mat-sys-on-secondary); + --secondary-container: var(--mat-sys-secondary-container); + --on-secondary-container: var(--mat-sys-on-secondary-container); - --tertiary: #{mat.m2-get-color-from-palette($tertiary-palette, 600)}; - --on-tertiary: #{mat.m2-get-color-from-palette($tertiary-palette, 002)}; - --tertiary-container: #{ mat.m2-get-color-from-palette($tertiary-palette, 100)}; - --on-tertiary-container: #{ mat.m2-get-color-from-palette($tertiary-palette, 900)}; + --tertiary: var(--mat-sys-tertiary); + --on-tertiary: var(--mat-sys-on-tertiary); + --tertiary-container: var(--mat-sys-tertiary-container); + --on-tertiary-container: var(--mat-sys-on-tertiary-container); - --error: #{mat.m2-get-color-from-palette($error-palette, 600)}; - --on-error: #{mat.m2-get-color-from-palette($error-palette, 002)}; - --error-container: #{ mat.m2-get-color-from-palette($error-palette, 100)}; - --on-error-container: #{mat.m2-get-color-from-palette($error-palette, 900)}; + --error: var(--mat-sys-error); + --on-error: var(--mat-sys-on-error); + --error-container: var(--mat-sys-error-container); + --on-error-container: var(--mat-sys-on-error-container); - --background: #{mat.m2-get-color-from-palette($neutral-palette, 010)}; - --on-background: #{mat.m2-get-color-from-palette($neutral-palette, 900)}; - --surface: #{$surface}; - --on-surface: #{mat.m2-get-color-from-palette($neutral-palette, 900)}; + --background: var(--mat-sys-background); + --on-background: var(--mat-sys-on-background); + --surface: var(--mat-sys-surface); + --on-surface: var(--mat-sys-on-surface); - --surface-variant: #{mat.m2-get-color-from-palette($neutral-variant-palette, 100)}; - --on-surface-variant: #{mat.m2-get-color-from-palette($neutral-variant-palette, 700)}; - --outline: #{mat.m2-get-color-from-palette($neutral-variant-palette, 500)}; - --outline-variant: #{mat.m2-get-color-from-palette($neutral-variant-palette, 200)}; + --surface-variant: var(--mat-sys-surface-variant); + --on-surface-variant: var(--mat-sys-on-surface-variant); + --outline: var(--mat-sys-outline); + --outline-variant: var(--mat-sys-outline-variant); - --surface1: #{linear-gradient(0, transparentize($primary, 0.95), transparentize($primary, 0.95)), $surface}; - --surface2: #{linear-gradient(0, transparentize($primary, 0.92), transparentize($primary, 0.92)), $surface}; - --surface3: #{linear-gradient(0, transparentize($primary, 0.89), transparentize($primary, 0.89)), $surface}; - --surface4: #{linear-gradient(0, transparentize($primary, 0.88), transparentize($primary, 0.88)), $surface}; - --surface5: #{linear-gradient(0, transparentize($primary, 0.86), transparentize($primary, 0.86)), $surface}; + --surface1: color-mix(in lch, var(--primary) 5%, var(--surface) 95%); + --surface2: color-mix(in lch, var(--primary) 8%, var(--surface) 92%); + --surface3: color-mix(in lch, var(--primary) 11%, var(--surface) 89%); + --surface4: color-mix(in lch, var(--primary) 12%, var(--surface) 88%); + --surface5: color-mix(in lch, var(--primary) 14%, var(--surface) 86%); - --card: #{mat.m2-get-color-from-palette($neutral-palette, 010)}; + --card: var(--mat-sys-neutral10); --icon-positive: #0C9509; --hover: rgba(0, 0, 0, 0.04); } - - - .dark { - $primary: mat.m2-get-color-from-palette($primary-palette, 200); - $surface: mat.m2-get-color-from-palette($neutral-palette, 900); - - - --primary: #{$primary}; - --on-primary: #{mat.m2-get-color-from-palette($primary-palette, 950)}; - --primary-container: #{mat.m2-get-color-from-palette($primary-palette, 700)}; - --on-primary-container: #{mat.m2-get-color-from-palette($primary-palette, 100)}; - - --secondary: #{mat.m2-get-color-from-palette($secondary-palette, 200)}; - --on-secondary: #{mat.m2-get-color-from-palette($secondary-palette, 800)}; - --secondary-container: #{mat.m2-get-color-from-palette($secondary-palette, 700)}; - --on-secondary-container: #{mat.m2-get-color-from-palette($secondary-palette, 100)}; - - --tertiary: #{mat.m2-get-color-from-palette($tertiary-palette, 200)}; - --on-tertiary: #{mat.m2-get-color-from-palette($tertiary-palette, 950)}; - --tertiary-container: #{mat.m2-get-color-from-palette($tertiary-palette, 700)}; - --on-tertiary-container: #{mat.m2-get-color-from-palette($tertiary-palette, 100)}; - - --error: #{mat.m2-get-color-from-palette($error-palette, 200)}; - --on-error: #{mat.m2-get-color-from-palette($error-palette, 800)}; - --error-container: #{mat.m2-get-color-from-palette($error-palette, 700)}; - --on-error-container: #{mat.m2-get-color-from-palette($error-palette, 100)}; - - --background: #{mat.m2-get-color-from-palette($neutral-palette, 900)}; - --on-background: #{mat.m2-get-color-from-palette($neutral-palette, 100)}; - --surface: #{$surface}; - --on-surface: #{mat.m2-get-color-from-palette($neutral-palette, 002)}; - - --surface-variant: #{mat.m2-get-color-from-palette($neutral-variant-palette, 800)}; - --on-surface-variant: #{mat.m2-get-color-from-palette($neutral-variant-palette, 200)}; - --outline: #{mat.m2-get-color-from-palette($neutral-variant-palette, 400)}; - --outline-variant: #{mat.m2-get-color-from-palette($neutral-variant-palette, 700)}; - - --surface1: #{linear-gradient(0, transparentize($primary, 0.95), transparentize($primary, 0.95)), $surface}; - --surface2: #{linear-gradient(0, transparentize($primary, 0.92), transparentize($primary, 0.92)), $surface}; - --surface3: #{linear-gradient(0, transparentize($primary, 0.89), transparentize($primary, 0.89)), $surface}; - --surface4: #{linear-gradient(0, transparentize($primary, 0.88), transparentize($primary, 0.88)), $surface}; - --surface5: #{linear-gradient(0, transparentize($primary, 0.86), transparentize($primary, 0.86)), $surface}; - - --card: #{mat.m2-get-color-from-palette($neutral-palette, 800)}; - - --icon-positive: #51F44D; - --hover: rgba(255, 255, 255, 0.04); - } } diff --git a/projects/ngx-reactome-style/src/assets/theme-helper.scss b/projects/ngx-reactome-style/src/assets/theme-helper.scss deleted file mode 100644 index 0e8328a..0000000 --- a/projects/ngx-reactome-style/src/assets/theme-helper.scss +++ /dev/null @@ -1,36 +0,0 @@ -@function modify-background($theme, $background-palette) { - // Replace the background in the color object's background palette. - $theme-color: map-get($theme, color); - $color-background-palette: map-get($theme-color, background); - $color-background-palette: map-merge($color-background-palette, $background-palette); - - // Replace the background in the background palette. - $background-palette: map-get($theme, background); - $background-palette: map-merge($background-palette, $background-palette); - - // Merge the changes into a new theme. - $modified-theme-color: map-merge($theme-color, (background: $color-background-palette)); - $modified-theme: map-merge($theme, (color: $modified-theme-color)); - $modified-theme: map-merge($modified-theme, (background: $background-palette)); - - @return $modified-theme; -} - - -@function modify-foreground($theme, $foreground-palette) { - // Replace the foreground in the color object's foreground palette. - $theme-color: map-get($theme, color); - $color-foreground-palette: map-get($theme-color, foreground); - $color-foreground-palette: map-merge($color-foreground-palette, $foreground-palette); - - // Replace the foreground in the foreground palette. - $foreground-palette: map-get($theme, foreground); - $foreground-palette: map-merge($foreground-palette, $foreground-palette); - - // Merge the changes into a new theme. - $modified-theme-color: map-merge($theme-color, (foreground: $color-foreground-palette)); - $modified-theme: map-merge($theme, (color: $modified-theme-color)); - $modified-theme: map-merge($modified-theme, (foreground: $foreground-palette)); - - @return $modified-theme; -} From 5bf6c743f9184b5dd8efc31e29115809cd68441c Mon Sep 17 00:00:00 2001 From: Eliot Ragueneau Date: Tue, 4 Feb 2025 12:01:30 +0000 Subject: [PATCH 27/49] :lipstick: Update style --- projects/ngx-reactome-style/package.json | 6 +-- .../ngx-reactome-style/src/assets/_index.scss | 18 ++++++++- .../src/assets/_theme-colors.scss | 2 +- .../src/assets/_variables.scss | 2 +- src/custom-theme.scss | 38 ------------------- 5 files changed, 21 insertions(+), 45 deletions(-) delete mode 100644 src/custom-theme.scss diff --git a/projects/ngx-reactome-style/package.json b/projects/ngx-reactome-style/package.json index ddce92f..c1ffee0 100644 --- a/projects/ngx-reactome-style/package.json +++ b/projects/ngx-reactome-style/package.json @@ -2,9 +2,9 @@ "name": "ngx-reactome-style", "version": "0.0.19", "peerDependencies": { - "@angular/common": "^18.2.4", - "@angular/core": "^18.2.4", - "@angular/material": "^18.2.4" + "@angular/common": "^19.1.2", + "@angular/core": "^19.1.2", + "@angular/material": "^19.1.2" }, "dependencies": { "tslib": "^2.3.0" diff --git a/projects/ngx-reactome-style/src/assets/_index.scss b/projects/ngx-reactome-style/src/assets/_index.scss index 4d76a9e..037f327 100644 --- a/projects/ngx-reactome-style/src/assets/_index.scss +++ b/projects/ngx-reactome-style/src/assets/_index.scss @@ -6,18 +6,32 @@ @mixin theme() { :root { - font-family: Roboto, "Helvetica Neue", sans-serif; + color-scheme: light; @include mat.theme(( color: ( primary: colors.$primary-palette, tertiary: colors.$tertiary-palette, - theme-type: color-scheme + theme-type: light ), typography: Roboto, density: 0 )); + font: var(--mat-sys-body-large); }; + body.dark { + color-scheme: dark; + @include mat.theme(( + color: ( + primary: colors.$primary-palette, + tertiary: colors.$tertiary-palette, + theme-type: dark + ), + typography: Roboto, + density: 0 + )); + } + .high-contrast { @include colors.high-contrast-overrides('color-scheme'); } diff --git a/projects/ngx-reactome-style/src/assets/_theme-colors.scss b/projects/ngx-reactome-style/src/assets/_theme-colors.scss index 36addd8..e81f2a3 100644 --- a/projects/ngx-reactome-style/src/assets/_theme-colors.scss +++ b/projects/ngx-reactome-style/src/assets/_theme-colors.scss @@ -146,7 +146,7 @@ $tertiary-palette: map.merge(map.get($_palettes, tertiary), $_rest); @if ($theme-type == color-scheme) { @return light-dark(#{$light}, #{$dark}); } - + @error 'Unknown theme-type #{$theme-type}. Expected light, dark, or color-scheme'; } diff --git a/projects/ngx-reactome-style/src/assets/_variables.scss b/projects/ngx-reactome-style/src/assets/_variables.scss index 0c73c5d..3930c13 100644 --- a/projects/ngx-reactome-style/src/assets/_variables.scss +++ b/projects/ngx-reactome-style/src/assets/_variables.scss @@ -2,7 +2,7 @@ @use "sass:map"; @mixin variables() { - :root { + body { --primary: var(--mat-sys-primary); --on-primary: var(--mat-sys-on-primary); --primary-container: var(--mat-sys-primary-container); diff --git a/src/custom-theme.scss b/src/custom-theme.scss deleted file mode 100644 index 025268d..0000000 --- a/src/custom-theme.scss +++ /dev/null @@ -1,38 +0,0 @@ - -// Custom Theming for Angular Material -// For more information: https://material.angular.io/guide/theming -@use '@angular/material' as mat; -// Plus imports for other components in your app. - -// Include the common styles for Angular Material. We include this here so that you only -// have to load a single css file for Angular Material in your app. -// Be sure that you only ever include this mixin once! -@include mat.elevation-classes(); -@include mat.app-background(); - -// Define the palettes for your theme using the Material Design palettes available in palette.scss -// (imported above). For each palette, you can optionally specify a default, lighter, and darker -// hue. Available color palettes: https://material.io/design/color/ -$ngx-reactome-base-primary: mat.m2-define-palette(mat.$m2-indigo-palette); -$ngx-reactome-base-accent: mat.m2-define-palette(mat.$m2-pink-palette, A200, A100, A400); - -// The warn palette is optional (defaults to red). -$ngx-reactome-base-warn: mat.m2-define-palette(mat.$m2-red-palette); - -// Create the theme object. A theme consists of configurations for individual -// theming systems such as "color" or "typography". -$ngx-reactome-base-theme: mat.m2-define-light-theme(( - color: ( - primary: $ngx-reactome-base-primary, - accent: $ngx-reactome-base-accent, - warn: $ngx-reactome-base-warn, - ), - typography: mat.m2-define-typography-config(), - density: 0 -)); - -// Include theme styles for core and each component used in your app. -// Alternatively, you can import and @include the theme mixins for each component -// that you are using. -@include mat.all-component-themes($ngx-reactome-base-theme); - From 94d6ab619eab83798bd7ba38a723e71f0ef8e541 Mon Sep 17 00:00:00 2001 From: Eliot Ragueneau Date: Sat, 6 Sep 2025 00:54:59 +0200 Subject: [PATCH 28/49] :wastebasket: Remove previous theme def --- .../ngx-reactome-style/src/assets/_index.scss | 142 ------------------ 1 file changed, 142 deletions(-) diff --git a/projects/ngx-reactome-style/src/assets/_index.scss b/projects/ngx-reactome-style/src/assets/_index.scss index 037f327..fd87306 100644 --- a/projects/ngx-reactome-style/src/assets/_index.scss +++ b/projects/ngx-reactome-style/src/assets/_index.scss @@ -37,145 +37,3 @@ } @include variables.variables(); } - - -// -//$bg-color: map.get(p.$primary-colors, 990); -// -// -//// Plus imports for other components in your app. -// -// -//// Include the common styles for Angular Material. We include this here so that you only -//// have to load a single css file for Angular Material in your app. -//// Be sure that you only ever include this mixin once! -//// TODO(v15): As of v15 mat.core no longer includes default typography styles. -//// The following line adds: -//// 1. Default typography styles for all components -//// 2. Styles for typography hierarchy classes (e.g. .mat-headline-1) -//// If you specify typography styles for the components you use elsewhere, you should delete this line. -//// If you don't need the default component typographies but still want the hierarchy styles, -//// you can delete this line and instead use: -//// `@include mat.typography-hierarchy(mat.define-typography-config());` -//@include mat.all-component-typographies(); -//@include mat.elevation-classes(); -//@include mat.app-background(); -// -// -//// Define the palettes for your theme using the Material Design palettes available in palette.scss -//// (imported above). For each palette, you can optionally specify a default, lighter, and darker -//// hue. Available color palettes: https://material.io/design/color/ -//$primary-palette: mat.m2-define-palette(p.$primary-colors, 600); -//$secondary-palette: mat.m2-define-palette(p.$secondary-colors, 600); -//$tertiary-palette: mat.m2-define-palette(p.$tertiary-colors, 600); -// -// -// -//// The warn palette is optional (defaults to red). -//$error-palette: mat.m2-define-palette(p.$error-colors); -//$neutral-palette: mat.m2-define-palette(p.$neutral-colors); -//$neutral-variant-palette: mat.m2-define-palette(p.$neutral-variant-colors); -// -//// Create the theme object. A theme consists of configurations for individual -//// theming systems such as "color" or "typography". -//$light-theme: mat.m2-define-light-theme(( -// color: ( -// primary: $primary-palette, -// accent: $tertiary-palette, -// warn: $error-palette, -// ), -// density: -1 -//)); -// -//$dark-theme: mat.m2-define-dark-theme(( -// color: ( -// primary: mat.m2-define-palette(p.$primary-colors, 200), -// accent: mat.m2-define-palette(p.$tertiary-colors, 200), -// warn: mat.m2-define-palette(p.$error-colors, 200), -// ) -//)); -// -//$palettes: ( -// primary-palette: $primary-palette, -// secondary-palette: $secondary-palette, -// tertiary-palette: $tertiary-palette, -// error-palette: $error-palette, -// neutral-palette: $neutral-palette, -// neutral-variant-palette: $neutral-variant-palette -//); -// -//// Include theme styles for core and each component used in your app. -//// Alternatively, you can import and @include the theme mixins for each component -//// that you are using. -////@include mat.all-component-themes($light-theme); -// -//@include mat.elevation-classes(); -//@include mat.app-background(); -//@include mat.card-theme($light-theme); -//@include mat.progress-bar-theme($light-theme); -//@include mat.tooltip-theme($light-theme); -//@include mat.form-field-theme($light-theme); -//@include mat.input-theme($light-theme); -//@include mat.select-theme($light-theme); -//@include mat.dialog-theme($light-theme); -//@include mat.slide-toggle-theme($light-theme); -//@include mat.checkbox-theme($light-theme); -//@include mat.button-theme($light-theme); -//@include mat.icon-button-theme($light-theme); -//@include mat.fab-theme($light-theme); -//@include mat.snack-bar-theme($light-theme); -//@include mat.progress-spinner-theme($light-theme); -//@include mat.divider-theme($light-theme); -//@include mat.expansion-theme($light-theme); -//@include mat.icon-theme($light-theme); -//@include mat.stepper-theme($light-theme); -//@include mat.menu-theme($light-theme); -// -// -////@include nested-stepper.theme($light-theme); -//$bg-color: map.get(p.$primary-colors, 010); -// -//$color-config: mat.m2-get-color-config($light-theme); -// -// -// -//// Apply the dark theme only when the user prefers dark themes. -//.dark { -// // Use the `-color` mixins to only apply color styles without reapplying the same -// // typography and density styles. -// $bg-color: map.get(p.$primary-colors, 950); -// -// $dark-theme: theme-helper.modify-background($dark-theme, p.$dark-theme-background-palette-redef); -// $dark-theme: theme-helper.modify-foreground($dark-theme, p.$dark-theme-foreground-palette-redef); -// -// $color-config: mat.m2-get-color-config($dark-theme); -// @include mat.all-component-colors($dark-theme); -// -// @include mat.elevation-classes(); -// @include mat.app-background(); -// @include mat.card-color($dark-theme); -// @include mat.progress-bar-color($dark-theme); -// @include mat.tooltip-color($dark-theme); -// @include mat.form-field-color($dark-theme); -// @include mat.input-color($dark-theme); -// @include mat.select-color($dark-theme); -// @include mat.dialog-color($dark-theme); -// @include mat.slide-toggle-color($dark-theme); -// @include mat.checkbox-color($dark-theme); -// @include mat.button-color($dark-theme); -// @include mat.icon-button-color($dark-theme); -// @include mat.fab-color($dark-theme); -// @include mat.snack-bar-color($dark-theme); -// @include mat.progress-spinner-color($dark-theme); -// @include mat.divider-color($dark-theme); -// @include mat.expansion-color($dark-theme); -// @include mat.icon-color($dark-theme); -// @include mat.stepper-color($dark-theme); -// @include mat.menu-color($dark-theme); -// -//} -// -//@include variables.theme($palettes); -// -// -// From 52a8838ff5a1585e17ab8c7ac80843c822de6e16 Mon Sep 17 00:00:00 2001 From: guanmingwu Date: Sat, 11 Oct 2025 13:38:14 -0700 Subject: [PATCH 29/49] updated reactome-cytoscape-style to the pathway browser version --- .../ngx-reactome-cytoscape-style/package.json | 6 +- .../src/lib/interactivity.ts | 239 ++++++++++++++---- .../src/lib/style.ts | 2 +- 3 files changed, 187 insertions(+), 60 deletions(-) diff --git a/projects/ngx-reactome-cytoscape-style/package.json b/projects/ngx-reactome-cytoscape-style/package.json index 37b415a..28b9f06 100644 --- a/projects/ngx-reactome-cytoscape-style/package.json +++ b/projects/ngx-reactome-cytoscape-style/package.json @@ -1,13 +1,13 @@ { "name": "ngx-reactome-cytoscape-style", - "version": "0.0.18", + "version": "0.0.19", "peerDependencies": { "cytoscape": "^3.27.0", "cytoscape-fcose": "^2.2.0", "cytoscape-layers": "^2.4.4", "lodash.memoize": "^4.1.2", - "@angular/common": "^18.2.8", - "@angular/core": "^18.2.8" + "@angular/common": "^17.2.4", + "@angular/core": "^17.2.4" }, "dependencies": { "tslib": "^2.3.0" diff --git a/projects/ngx-reactome-cytoscape-style/src/lib/interactivity.ts b/projects/ngx-reactome-cytoscape-style/src/lib/interactivity.ts index 404efb0..57b7813 100644 --- a/projects/ngx-reactome-cytoscape-style/src/lib/interactivity.ts +++ b/projects/ngx-reactome-cytoscape-style/src/lib/interactivity.ts @@ -2,19 +2,27 @@ import cytoscape from "cytoscape"; import {extract} from "./properties-utils"; import {Properties} from "./properties"; import {ReactomeEvent, ReactomeEventTypes} from "./model/reactome-event.model"; -import Layers, {IHTMLLayer, LayersPlugin} from 'cytoscape-layers'; +import Layers, {IHTMLLayer, layers, LayersPlugin} from 'cytoscape-layers'; +import * as _ from "lodash"; cytoscape.use(Layers) +type RenderableHTMLElement = HTMLElement & { render: _.DebouncedFunc<() => void> }; export class Interactivity { + + isMobile = 'ontouchstart' in document || navigator.maxTouchPoints > 0; + constructor(private cy: cytoscape.Core, private properties: Properties) { + console.log('is mobile', this.isMobile) // @ts-ignore - // cy.elements().ungrabify().panify(); + cy.elements().ungrabify().panify(); this.initHover(cy); this.initSelect(cy); - this.initZoom(cy); + this.initClick(cy); this.initStructureVideo(cy); + this.initStructureMolecule(cy); + this.initZoom(cy); } expandReaction(reactionNode: cytoscape.NodeCollection) { @@ -136,18 +144,6 @@ export class Interactivity { cy }))) - .on('click', 'node.InteractorOccurrences', e => { - const openClass = 'opened'; - e.target.toggleClass(openClass); - let eventType = !e.target.hasClass(openClass) ? ReactomeEventTypes.open : ReactomeEventTypes.close; - container.dispatchEvent(new ReactomeEvent(eventType, { - element: e.target, - type: "Interactor", - reactomeId: e.target.data('reactomeId'), - cy - })) - }) - .on('unselect', 'node.PhysicalEntity', e => container.dispatchEvent(new ReactomeEvent(ReactomeEventTypes.unselect, { element: e.target, type: "PhysicalEntity", @@ -174,7 +170,7 @@ export class Interactivity { }))) .on('select', 'edge', e => selectReaction(mapper(e.target).connectedNodes('.reaction'))) - .on('unselect', 'edge', e => selectReaction( + .on('unselect', 'edge', () => selectReaction( mapper(cy.edges(':selected').connectedNodes('.reaction') .add(cy.nodes('.reaction:selected'))) )) // Avoid single element selection when double-clicking @@ -182,67 +178,181 @@ export class Interactivity { .on('select', 'node.reaction', event => selectReaction(mapper(event.target))) .on('select', 'node.Modification', e => mapper(cy.nodes(`#${e.target.data('nodeId')}`)).select()) - .on('click', '.Interactor', e => { + } + + initClick(cy: cytoscape.Core) { + const container = cy.container()!; + + cy + .on('tap', 'node.InteractorOccurrences', e => { + const openClass = 'opened'; + let eventType = !e.target.hasClass(openClass) ? ReactomeEventTypes.open : ReactomeEventTypes.close; + e.target.toggleClass(openClass); + container.dispatchEvent(new ReactomeEvent(eventType, { + element: e.target, + type: "Interactor", + reactomeId: e.target.data('reactomeId'), + cy + })) + }) + + .on('tap', '.Interactor', e => { const prop = e.target.isNode() ? 'accURL' : 'evidenceURLs'; const url = e.target.data(prop); if (url) window.open(url); - }); + }) + .on('tap', '.DiseaseInteractor', e => { + const prop = e.target.isNode() ? 'accURL' : 'evidenceURLs'; + const url = e.target.data(prop); + if (url) window.open(url); + }) + // .on('tap', e => { + // const openClass = 'opened'; + // let eventType = !e.target.hasClass(openClass) ? ReactomeEventTypes.open : ReactomeEventTypes.close; + // e.target.toggleClass(openClass); + // container.dispatchEvent(new ReactomeEvent(eventType, { + // element: e.target, + // type: "Any", + // reactomeId: e.target.data('reactomeId'), + // cy + // })) + // }); } - private videoLayer!: IHTMLLayer; + private videoLayer?: IHTMLLayer; initStructureVideo(cy: cytoscape.Core) { + const layersPlugin: LayersPlugin = layers(cy); + this.videoLayer = layersPlugin.append('html'); + if (this.videoLayer) this.videoLayer.node.style.opacity = '0'; + layersPlugin.renderPerNode( + this.videoLayer!, + (elem: HTMLElement) => { + (elem as RenderableHTMLElement).render() + }, + { + init: (elem: RenderableHTMLElement, node: cytoscape.NodeSingular) => { + const name = node.data('displayName'); + + elem.innerHTML = node.data('html') || ''; + elem.style.display = "flex"; + const video = elem.children[0] as HTMLVideoElement; + + elem.render = _.throttle(() => { + if (isElementInViewport(elem)) { + // console.log('rendering', name) + if (this.videoLayer?.node.style.opacity !== '0' && video.readyState === video.HAVE_NOTHING && video.networkState === video.NETWORK_IDLE) { + video.classList.add('loading'); + video.oncanplay = e => video.classList.remove('loading') + let errors = 0; + const sources = video.querySelectorAll('source')!; + sources.forEach(source => source.addEventListener('error', (e) => { + errors ++; + if (errors === sources.length) this.removeProteinVideo(video, node) + })); + + video.load(); + } + elem.style.visibility = node.visible() ? 'visible' : 'hidden'; + } + + }, 500 + ); + }, + transform: `translate(-70%, -50%)`, + position: 'center', + uniqueElements: false, + checkBounds: false, // Need false otherwise destroy nodes when out of view + selector: '.Protein', + updateOn: "render", // Need render to call display whenever we move + queryEachTime: false, + } + ); + + this.videoLayer?.node.classList.add('video') + const handler = (action: (video: HTMLVideoElement) => void) => async (event: cytoscape.EventObject) => { + const videoId = event.target.id(); + const videoElement = this.videoLayer?.node.querySelector(`#video-${videoId}`) as HTMLVideoElement; + if (videoElement && videoElement.readyState >= videoElement.HAVE_ENOUGH_DATA) { + action(videoElement) + } + }; + if (this.isMobile) { + this.cy + .on('select', 'node.Protein', handler(v => v.play())) + .on('unselect', 'node.Protein', handler(v => v.pause())) + } + this.cy + .on('mouseover', 'node.Protein', handler(v => v.play())) + .on('mouseout', 'node.Protein', handler(v => v.pause())); + } + + removeProteinVideo(video: HTMLVideoElement, node: cytoscape.NodeSingular) { + video.classList.remove('loading') + let baseFontSize = extract(this.properties.font.size); + node.style({ + 'font-size': baseFontSize, + 'text-margin-x': 0, + 'text-max-width': "100%", + }) + this.proteins = this.proteins.not(node); + }; + + private moleculeLayer?: IHTMLLayer; + + initStructureMolecule(cy: cytoscape.Core) { // @ts-ignore const layers: LayersPlugin = cy.layers(); - this.videoLayer = layers.append('html'); + this.moleculeLayer = layers.append('html'); + this.moleculeLayer.node.classList.add('molecule') + layers.renderPerNode( - this.videoLayer, + this.moleculeLayer, (elem: HTMLElement, node: cytoscape.NodeSingular) => { - + elem.style.visibility = node.visible() ? 'visible' : 'hidden'; }, { init: (elem: HTMLElement, node: cytoscape.NodeSingular) => { elem.innerHTML = node.data('html') || ''; elem.style.display = "flex" }, - transform: `translate(-70%, -50%)`, + transform: `translate(-100%, -50%)`, position: 'center', uniqueElements: true, checkBounds: false, - selector: '.Protein', + selector: '.Molecule', queryEachTime: false, } ); - this.cy - ?.on('mouseover', 'node.Protein', (event) => { - const videoId = event.target.id(); - const videoElement = this.videoLayer.node.querySelector(`#video-${videoId}`) as HTMLVideoElement; - if (videoElement) { - videoElement.play(); - } - }) - .on('mouseout', 'node.Protein', (event) => { - const videoId = event.target.id(); - const videoElement = this.videoLayer.node.querySelector(`#video-${videoId}`) as HTMLVideoElement; - if (videoElement) { - videoElement.pause(); - } - }); } - onZoom!: (e?: cytoscape.EventObjectCore) => void; + onZoom: { + [name: string]: (e?: cytoscape.EventObjectCore) => void + shadow: (e?: cytoscape.EventObjectCore) => void; + protein: (e?: cytoscape.EventObjectCore) => void; + } = { + shadow: () => undefined, + protein: () => undefined, + }; + + triggerZoom() { + Object.values(this.onZoom).forEach(onZoom => onZoom()) + } proteins!: cytoscape.NodeCollection; updateProteins() { - this.proteins = this.cy.nodes('.Protein'); + this.proteins = this.cy.nodes('.Protein') + .or('.Molecule'); } initZoom(cy: cytoscape.Core) { - + const shadows = cy.edges('[?pathway]'); + const shadowLabels = cy.nodes('.Shadow'); + const trivial = cy.elements('.trivial'); this.updateProteins(); cy.minZoom(Math.min(cy.zoom(), extract(this.properties.shadow.labelOpacity)[0][0] / 100)); @@ -254,21 +364,12 @@ export class Interactivity { const zoomEnd = structureOpacityArray[structureOpacityArray.length - 1][0] - this.onZoom = e => { + this.onZoom.shadow = () => { const zoomLevel = cy.zoom(); const z = zoomLevel * 100; const shadowLabelOpacity = this.interpolate(z, extract(this.properties.shadow.labelOpacity).map(v => this.p(...v))) / 100; const trivialOpacity = this.interpolate(z, extract(this.properties.trivial.opacity).map(v => this.p(...v))) / 100; const shadowOpacity = this.interpolate(z, extract(this.properties.shadow.opacity).map(v => this.p(...v))) / 100; - const videoOpacity = this.interpolate(z, extract(this.properties.structure.opacity).map(v => this.p(...v))) / 100; - - const maxWidth = this.interpolate(z, [this.p(zoomStart, 100), this.p(zoomEnd, 50)]); - const margin = this.interpolate(z, [this.p(zoomStart, 0), this.p(zoomEnd, 25)]); - const fontSize = this.interpolate(z, [this.p(zoomStart, baseFontSize), this.p(zoomEnd, baseFontSize / 2)]); - - const shadows = cy.edges('[?pathway]'); - const shadowLabels = cy.nodes('.Shadow'); - const trivial = cy.elements('.trivial'); shadows.style({ 'underlay-opacity': shadowOpacity }); @@ -279,19 +380,35 @@ export class Interactivity { 'opacity': trivialOpacity, 'underlay-opacity': Math.min(shadowOpacity, trivialOpacity) }); + } + + this.onZoom.protein = () => { + const zoomLevel = cy.zoom(); + const z = zoomLevel * 100; + const videoOpacity = this.interpolate(z, extract(this.properties.structure.opacity).map(v => this.p(...v))) / 100; + + const maxWidth = this.interpolate(z, [this.p(zoomStart, 100), this.p(zoomEnd, 50)]); + this.margin = this.interpolate(z, [this.p(zoomStart, 0), this.p(zoomEnd, 0.25)]); + const fontSize = this.interpolate(z, [this.p(zoomStart, baseFontSize), this.p(zoomEnd, baseFontSize / 2)]); this.proteins.style( { 'font-size': fontSize, - 'text-margin-x': margin + "%", + 'text-margin-x': (n: cytoscape.NodeSingular) => this.margin * n.data("width"), 'text-max-width': maxWidth + "%", }) - this.videoLayer.node.style.opacity = videoOpacity + ''; - } + if (this.videoLayer) this.videoLayer.node.style.opacity = videoOpacity + ''; + if (this.moleculeLayer) this.moleculeLayer.node.style.opacity = videoOpacity + ''; + }; + + cy.on('zoom', this.onZoom.shadow); + cy.on('zoom', this.onZoom.protein); - cy.on('zoom', this.onZoom); + this.triggerZoom() } + margin = 0; + p(x: number, y: number): P { return new P(x, y) } @@ -344,4 +461,14 @@ class P extends Array { } +function isElementInViewport(el: HTMLElement) { + let rect = el.getBoundingClientRect(); + return ( + rect.top >= 0 && + rect.left >= 0 && + rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) && + rect.right <= (window.innerWidth || document.documentElement.clientWidth) + ); +} + diff --git a/projects/ngx-reactome-cytoscape-style/src/lib/style.ts b/projects/ngx-reactome-cytoscape-style/src/lib/style.ts index 24935fd..3c5e6bd 100644 --- a/projects/ngx-reactome-cytoscape-style/src/lib/style.ts +++ b/projects/ngx-reactome-cytoscape-style/src/lib/style.ts @@ -839,6 +839,6 @@ export class Style { this.clearCache(); cy.style(this.getStyleSheet()); this.initSubPathwayColors(); - this.interactivity.onZoom() + this.interactivity.triggerZoom() } } From e9de49e873d3770e9e45684d0b4a1db5dd58741d Mon Sep 17 00:00:00 2001 From: guanmingwu Date: Sat, 11 Oct 2025 13:41:15 -0700 Subject: [PATCH 30/49] updated related code to the latest version at pathway browser --- projects/ngx-reactome-diagram/package.json | 2 +- .../src/lib/diagram/diagram.component.html | 2 +- .../src/lib/diagram/diagram.component.ts | 223 +++++++++++++----- .../src/lib/services/diagram-state.service.ts | 33 ++- 4 files changed, 198 insertions(+), 62 deletions(-) diff --git a/projects/ngx-reactome-diagram/package.json b/projects/ngx-reactome-diagram/package.json index b4a886b..89c2133 100644 --- a/projects/ngx-reactome-diagram/package.json +++ b/projects/ngx-reactome-diagram/package.json @@ -1,6 +1,6 @@ { "name": "ngx-reactome-diagram", - "version": "0.0.31", + "version": "0.0.32", "peerDependencies": { "cytoscape": "^3.27.0", "cytoscape-fcose": "^2.2.0", diff --git a/projects/ngx-reactome-diagram/src/lib/diagram/diagram.component.html b/projects/ngx-reactome-diagram/src/lib/diagram/diagram.component.html index 3e5832a..50fcb03 100644 --- a/projects/ngx-reactome-diagram/src/lib/diagram/diagram.component.html +++ b/projects/ngx-reactome-diagram/src/lib/diagram/diagram.component.html @@ -3,7 +3,7 @@
+ (mousemove)="dragMove($event, compareContainer, container)" [class.active]="compareDragging">
diff --git a/projects/ngx-reactome-diagram/src/lib/diagram/diagram.component.ts b/projects/ngx-reactome-diagram/src/lib/diagram/diagram.component.ts index 033f806..b992423 100644 --- a/projects/ngx-reactome-diagram/src/lib/diagram/diagram.component.ts +++ b/projects/ngx-reactome-diagram/src/lib/diagram/diagram.component.ts @@ -26,6 +26,7 @@ import { CdkDrag } from '@angular/cdk/drag-drop'; selector: 'cr-diagram', templateUrl: './diagram.component.html', styleUrls: ['./diagram.component.scss'], + standalone: true, imports: [ CommonModule, CdkDrag @@ -49,6 +50,8 @@ export class DiagramComponent implements AfterViewInit, OnChanges { cyCompare!: cytoscape.Core; legend!: cytoscape.Core; reactomeStyle!: Style; + reactomeStyleCompare!: Style; + private _reactomeEvents$: Subject = new Subject(); private _ignore = false; @@ -154,47 +157,100 @@ export class DiagramComponent implements AfterViewInit, OnChanges { container.dispatchEvent(event); } + private initialiseReplaceElements() { + if (this.comparing) + this.cy.batch(() => { + this.cy.elements('[!isBackground]').style('visibility', 'hidden') + this.cy.edges('.shadow').style('underlay-padding', 0) + this.lastIndex = 0; + this.updateReplacementVisibility(); + this.cy.elements('.Compartment').style('visibility', 'visible') + }) + } + private loadCompare(elements: cytoscape.ElementsDefinition, container: HTMLDivElement) { + + const getPosition = (e: cytoscape.SingularElementArgument) => e.is('.Shadow') ? e.data('triggerPosition') : e.boundingBox().x1; if (this.comparing) { this.cy.elements('[!isBackground]').style('visibility', 'hidden') this.replacedElements = this.cy! .elements('[?replacedBy]') .add('[?isCrossed]') - .sort((a, b) => a.boundingBox().x1 - b.boundingBox().x1); - this.replacedElementsLeft = this.replacedElements.map(ele => ele.boundingBox().x1); - this.cy!.elements('.Compartment').style('visibility', 'visible') + .sort((a, b) => getPosition(a) - getPosition(b)) + .style('visibility', 'hidden') + .toArray(); + + this.replacedElementsPosition = this.replacedElements.map(getPosition); + + + this.cy.on('add', e => { + const addedElement = e.target; + if (addedElement.data('replacedBy') || addedElement.data('isCrossed')) { + const x = getPosition(addedElement); + let index = this.replacedElementsPosition.findIndex(x1 => x1 >= x); + if (index === -1) index = this.replacedElements.length; + + this.replacedElements.splice(index, 0, addedElement); + this.replacedElementsPosition.splice(index, 0, x); + addedElement.style('visibility', 'hidden'); + } + }) + + this.cy.on('remove', e => { + const removedElement = e.target; + const index = this.replacedElements.indexOf(removedElement); + if (index > -1) { + this.replacedElements.splice(index, 1); + this.replacedElementsPosition.splice(index, 1); + } + }) const compareContainer = this.compareContainer!.nativeElement; this.cyCompare = cytoscape({ container: compareContainer, elements: elements, style: this.reactomeStyle?.getStyleSheet(), - layout: {name: "preset"}, + layout: { name: "preset" }, }); - - this.cyCompare.elements('[?isFadeOut]').style('visibility', 'hidden'); - this.cyCompare.elements('.Compartment').style('visibility', 'hidden'); + + this.cyCompare.elements('[?isFadeOut]').remove(); + this.cyCompare.elements('.Compartment').remove(); this.cy!.nodes('.crossed').removeClass('crossed'); this.cyCompare!.on('viewport', () => this.syncViewports(this.cyCompare, compareContainer, this.cy, container)) this.cy!.on('viewport', () => this.syncViewports(this.cy, container, this.cyCompare, compareContainer)) - this.reactomeStyle?.bindToCytoscape(this.cyCompare); + this.reactomeStyleCompare = new Style(compareContainer); + this.reactomeStyleCompare?.bindToCytoscape(this.cyCompare); this.cyCompare.minZoom(this.cy!.minZoom()) this.cyCompare.maxZoom(this.cy!.maxZoom()) - this.updateReplacementVisibility() setTimeout(() => { this.syncViewports(this.cy!, container, this.cyCompare, compareContainer) + this.initialiseReplaceElements(); }) } } + + avoidSideEffect(m: () => any) { + this._ignore = true; + m(); + this._ignore = false; + } + + flagging = this.state.onChange.flag$.subscribe((value) => this.avoidSideEffect( + () => [this.cy, this.cyCompare].forEach(cy => {if (cy) {this.flag(value, cy)} }) + )); + selecting = this.state.onChange.select$.subscribe((value) => this.avoidSideEffect( + () => [this.cy, this.cyCompare].forEach(cy => {if (cy) {this.select(value, cy)} }) + )); + private stateToDiagram() { - for (let cy of [this.cy, this.cyCompare].filter(cy => cy !== undefined)) { - this.flag(this.state.get('flag'), cy); - this.select(this.state.get("select"), cy); - } + // for (let cy of [this.cy, this.cyCompare].filter(cy => cy !== undefined)) { + // this.flag(this.state.get('flag'), cy); + // this.select(this.state.get("select"), cy); + // } } readonly classRegex = /class:(\w+)([!.]drug)?/ @@ -238,17 +294,28 @@ export class DiagramComponent implements AfterViewInit, OnChanges { // Apparently the selected state is kept when a new diagram is loaded. // This method is used to reset the state resetState() { - this.state.set('select', []); + this.state.set('select', ''); this.state.set('flag', []); } - select(tokens: (string | number)[], cy: cytoscape.Core): cytoscape.CollectionArgument { - let selected = this.getElements(tokens, cy); + select(tokens: (string | number), cy: cytoscape.Core): cytoscape.CollectionArgument { + cy.elements(':selected').unselect(); + let selected = this.getElements([tokens], cy); selected.select(); if ("connectedNodes" in selected) { selected = selected.add(selected.connectedNodes()); } - cy.fit(selected, 100) + + if (this._ignore) { + cy.animate({ + fit: { + eles: selected, + padding: 100 + }, + duration: 1000, + easing: "ease-in-out" + }) + } return selected; } @@ -258,35 +325,46 @@ export class DiagramComponent implements AfterViewInit, OnChanges { } flagElements(toFlag: cytoscape.CollectionArgument, cy: cytoscape.Core): cytoscape.CollectionArgument { + const shadowNodes = cy.nodes('.Shadow'); + const shadowEdges = cy.edges('[?color]'); + const trivials = cy.elements('.trivial'); + + if (toFlag.nonempty()) { + cy.batch(() => { + this.setSubPathwayVisibility(false, cy); + cy.elements().removeClass('flag') + toFlag.addClass('flag') + .edges().style({'underlay-opacity': 1}) + }) + + return toFlag + } else { + cy.batch(() => { + this.setSubPathwayVisibility(true, cy); + cy.elements().removeClass('flag'); + }) + + return cy.collection() + } + } + + setSubPathwayVisibility(visible: boolean, cy: cytoscape.Core) { const shadowNodes = cy.nodes('.Shadow'); const shadowEdges = cy.edges('[?color]'); const trivials = cy.elements('.trivial'); - if (toFlag.nonempty()) { - this.cy.batch(() => { - shadowNodes.style({visibility: 'hidden'}) - shadowEdges.removeClass('shadow') - cy.off('zoom', this.reactomeStyle.interactivity.onZoom) - trivials.style({opacity: 1}) - cy.edges().style({'underlay-opacity': 0}) - cy.elements().removeClass('flag') - toFlag.addClass('flag') - .edges().style({'underlay-opacity': 1}) - }) - - return toFlag + if (visible) { + shadowNodes.style({opacity: 1}) + trivials.style({opacity: 1}) + shadowEdges.addClass('shadow') + cy.on('zoom', cy.data('reactome').interactivity.onZoom.shadow) + cy.data('reactome').interactivity.onZoom.shadow() } else { - this.cy.batch(() => { - shadowNodes.style({visibility: 'visible'}) - trivials.style({opacity: 1}) - shadowEdges.addClass('shadow') - - cy.elements().removeClass('flag') - cy.on('zoom', this.reactomeStyle.interactivity.onZoom) - this.reactomeStyle.interactivity.onZoom() - }) - - return cy.collection() + shadowNodes.style({opacity: 0}) + shadowEdges.removeClass('shadow') + cy.off('zoom', cy.data('reactome').interactivity.onZoom.shadow) + trivials.style({opacity: 1}) + cy.edges().style({'underlay-opacity': 0}) } } @@ -311,18 +389,48 @@ export class DiagramComponent implements AfterViewInit, OnChanges { ratio = 0.384; - replacedElements!: cytoscape.Collection; - replacedElementsLeft: number[] = []; + replacedElements!: cytoscape.SingularElementArgument[]; + replacedElementsPosition: number[] = []; lastIndex = 0; + underlayPadding = 0; + +private updateReplacementVisibility() { + + // // Calculate the position of the element that is to the right of the separation - private updateReplacementVisibility() { const extent = this.cyCompare!.extent(); - let limitIndex = this.replacedElementsLeft.findIndex(x1 => x1 >= extent.x1); + let limitIndex = this.replacedElementsPosition.findIndex(x1 => x1 >= extent.x1); if (limitIndex === -1) limitIndex = this.replacedElements.length; + + /// Alternative calculation. In theory more optimised, but seems worse when console is opened for some reason + + // const currentPos = this.cyCompare!.extent().x1; + // let limitIndex = this.lastIndex; + // let i = this.lastIndex; + // if (currentPos > this.lastPosition) { // Dragging to the right + // while (i >= 0 && this.replacedElementsPosition[i] < currentPos) i++; + // limitIndex = i; + // } else if (currentPos < this.lastPosition) { // Dragging to the left + // do i--; + // while (i < this.replacedElementsPosition.length && this.replacedElementsPosition[i] >= currentPos) + // limitIndex = i+1; + // } + // + // this.lastPosition = currentPos; + // --------- + if (this.lastIndex !== limitIndex) { - if (limitIndex < this.lastIndex) this.replacedElements.slice(limitIndex, this.lastIndex).style('visibility', 'hidden'); - if (limitIndex > this.lastIndex) this.replacedElements.slice(this.lastIndex, limitIndex).style('visibility', 'visible'); + // If at least one element is switched from left to right + if (limitIndex < this.lastIndex) this.replacedElements.slice(limitIndex, this.lastIndex) + .map(e => e.style('visibility', 'hidden')) // Hide the range of elements + .filter(e => e.is('.Shadow')) // And if it is an shadow + .forEach(shadow => shadow.data('edges').style('underlay-padding', 0)) // Hide as well the associated reaction underlay + // If at least one element is switched from right to left + if (limitIndex > this.lastIndex) this.replacedElements.slice(this.lastIndex, limitIndex) + .map(e => e.style('visibility', 'visible')) // Show the range of elements + .filter(e => e.is('.Shadow')) // And if it is an shadow + .forEach(shadow => shadow.data('edges').style('underlay-padding', this.underlayPadding)) // Show as well the associated reaction underlay } this.lastIndex = limitIndex } @@ -361,9 +469,9 @@ export class DiagramComponent implements AfterViewInit, OnChanges { this.compareDragging = false; } - dragMove($event: MouseEvent, compareContainer: HTMLDivElement) { + dragMove($event: MouseEvent, compareContainer: HTMLDivElement, container: HTMLDivElement) { if (!this.compareDragging) return; - compareContainer.style['left'] = $event.x + 'px'; + compareContainer.style['left'] = $event.x - container.getBoundingClientRect().x + 'px'; this.cyCompare.resize() this.syncViewports(this.cy!, this.cytoscapeContainer!.nativeElement, this.cyCompare!, this.compareContainer!.nativeElement); } @@ -379,7 +487,8 @@ export class DiagramComponent implements AfterViewInit, OnChanges { // ----- Event Syncing ----- - stateToDiagramSub = this.state.state$.subscribe(() => this.stateToDiagram()); + // stateToDiagramSub = this.state.state$.subscribe(() => this.stateToDiagram()); + compareBackgroundSync = this.reactomeEvents$.pipe( filter(() => this.comparing), filter((e) => e.detail.cy !== this.legend) @@ -387,13 +496,19 @@ export class DiagramComponent implements AfterViewInit, OnChanges { const src = event.detail.cy; const tgt = src === this.cy ? this.cyCompare : this.cy; - const replacedBy = event.detail.element.data('replacedBy') || - event.detail.element.data('replacement') || - (event.detail.element.data('isBackground') && !event.detail.element.data('isFadeOut') && event.detail.element.data('id')) + let replacedBy = event.detail.element.data('replacedBy'); + replacedBy = replacedBy || event.detail.element.data('replacement'); + replacedBy = replacedBy || (event.detail.element.data('isBackground') && !event.detail.element.data('isFadeOut') && event.detail.element.data('id')); + if (!replacedBy) return; let replacements = tgt.getElementById(replacedBy); if (event.detail.type === 'reaction') { + // Need to check if replaceBy is an object or a number + if (typeof replacedBy === 'object' && replacedBy !== null) { + // If replacedBy is an object, try to get its id property + replacedBy = replacedBy.reactomeId; + } replacements = replacements.add(tgt.elements(`[reactionId=${replacedBy}]`)) } @@ -449,7 +564,7 @@ export class DiagramComponent implements AfterViewInit, OnChanges { // Make sure reactomeIds don't contain duplicated element const uniqueSet = new Set(reactomeIds); reactomeIds = Array.from(uniqueSet); - this.state.set('select', reactomeIds) + this.state.set('select', reactomeIds[0] || ''); } ); diff --git a/projects/ngx-reactome-diagram/src/lib/services/diagram-state.service.ts b/projects/ngx-reactome-diagram/src/lib/services/diagram-state.service.ts index 114b276..7dc2ae5 100644 --- a/projects/ngx-reactome-diagram/src/lib/services/diagram-state.service.ts +++ b/projects/ngx-reactome-diagram/src/lib/services/diagram-state.service.ts @@ -1,6 +1,6 @@ import {Injectable} from '@angular/core'; import {ActivatedRoute, Router} from "@angular/router"; -import {BehaviorSubject} from "rxjs"; +import {BehaviorSubject, distinctUntilChanged, map, Observable, tap} from "rxjs"; import {isArray} from "lodash"; @@ -11,11 +11,17 @@ export interface UrlParam { export type State = { [token: string]: UrlParam - select: UrlParam<(string | number)[]> + select: UrlParam<(string | number)> flag: UrlParam<(string | number)[]> - overlay: UrlParam<(string)> + path: UrlParam + flagInteractors: UrlParam + overlay: UrlParam + analysis: UrlParam + analysisProfile: UrlParam }; +type ObservableState = { [K in keyof State as `${K & string}$`]: Observable }; + @Injectable({ providedIn: 'root' }) @@ -25,13 +31,27 @@ export class DiagramStateService { blockRouterChange = false; private state: State = { - select: {otherTokens: ['SEL'], value: []}, + select: {otherTokens: ['SEL'], value: ''}, flag: {otherTokens: ['FLG'], value: []}, - overlay: {value: ''} + path: {otherTokens: ['PATH'], value: []}, + flagInteractors: {otherTokens: ['FLGINT'], value: false}, + overlay: {value: ''}, + analysis: {value: null, otherTokens: ['ANALYSIS']}, + analysisProfile: {value: null}, }; private _state$ = new BehaviorSubject(this.state); - public state$ = this._state$.asObservable() + public state$ = this._state$.asObservable(); + public onChange: ObservableState = Object.keys(this.state) + .reduce((properties, prop: keyof State) => { + properties[`${prop}$`] = this.state$.pipe( + map(state => state[prop].value), + distinctUntilChanged((v1, v2) => v1?.toString() === v2?.toString()), + tap(v => console.log(`${prop} has been updated to ${v}`)), + // share() + ) + return properties; + }, {} as ObservableState); constructor(route: ActivatedRoute, private router: Router) { route.queryParamMap.subscribe(params => { @@ -63,6 +83,7 @@ export class DiagramStateService { set(token: T, value: State[T]['value']): void { this.state[token].value = value; // N.B. by GW: Not sure why this.ignore is here. Nothing changes here!!! + // Most likely this.ignore = true below this.ignore = false; if (!this.blockRouterChange) { this.onPropertyModified().then(() => From 76b6072ecc1040ee07502ef18cb27447ce84a12d Mon Sep 17 00:00:00 2001 From: guanmingwu Date: Sat, 11 Oct 2025 14:11:04 -0700 Subject: [PATCH 31/49] bug fix based on the new code --- projects/ngx-reactome-cytoscape-style/package.json | 2 +- projects/ngx-reactome-cytoscape-style/src/lib/style.ts | 1 + .../src/lib/diagram/diagram.component.ts | 7 ++++--- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/projects/ngx-reactome-cytoscape-style/package.json b/projects/ngx-reactome-cytoscape-style/package.json index 28b9f06..bbc82d9 100644 --- a/projects/ngx-reactome-cytoscape-style/package.json +++ b/projects/ngx-reactome-cytoscape-style/package.json @@ -1,6 +1,6 @@ { "name": "ngx-reactome-cytoscape-style", - "version": "0.0.19", + "version": "0.0.20", "peerDependencies": { "cytoscape": "^3.27.0", "cytoscape-fcose": "^2.2.0", diff --git a/projects/ngx-reactome-cytoscape-style/src/lib/style.ts b/projects/ngx-reactome-cytoscape-style/src/lib/style.ts index 3c5e6bd..d5f0f56 100644 --- a/projects/ngx-reactome-cytoscape-style/src/lib/style.ts +++ b/projects/ngx-reactome-cytoscape-style/src/lib/style.ts @@ -26,6 +26,7 @@ export class Style { bindToCytoscape(cy: cytoscape.Core) { this.cy = cy; + cy.data('reactome', this); this.interactivity = new Interactivity(cy, this.properties); this.initSubPathwayColors() } diff --git a/projects/ngx-reactome-diagram/src/lib/diagram/diagram.component.ts b/projects/ngx-reactome-diagram/src/lib/diagram/diagram.component.ts index b992423..56c9e4b 100644 --- a/projects/ngx-reactome-diagram/src/lib/diagram/diagram.component.ts +++ b/projects/ngx-reactome-diagram/src/lib/diagram/diagram.component.ts @@ -505,11 +505,12 @@ private updateReplacementVisibility() { let replacements = tgt.getElementById(replacedBy); if (event.detail.type === 'reaction') { // Need to check if replaceBy is an object or a number - if (typeof replacedBy === 'object' && replacedBy !== null) { + if (typeof replacedBy === 'object') { // If replacedBy is an object, try to get its id property replacedBy = replacedBy.reactomeId; - } - replacements = replacements.add(tgt.elements(`[reactionId=${replacedBy}]`)) + } + if (typeof replacedBy === 'number') // Looks like there is a bug in cytoscape. check for object will return all elements. + replacements = replacements.add(tgt.elements(`[reactionId=${replacedBy}]`)) } this.applyEvent(event, replacements) From 5adf09a0b3b5bdcbebd96d8625f8291972c4a6e3 Mon Sep 17 00:00:00 2001 From: guanmingwu Date: Mon, 13 Oct 2025 16:26:50 -0700 Subject: [PATCH 32/49] uncomment out a function --- projects/ngx-reactome-diagram/package.json | 2 +- .../src/lib/diagram/diagram.component.ts | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/projects/ngx-reactome-diagram/package.json b/projects/ngx-reactome-diagram/package.json index 89c2133..c932ad3 100644 --- a/projects/ngx-reactome-diagram/package.json +++ b/projects/ngx-reactome-diagram/package.json @@ -1,6 +1,6 @@ { "name": "ngx-reactome-diagram", - "version": "0.0.32", + "version": "0.0.33", "peerDependencies": { "cytoscape": "^3.27.0", "cytoscape-fcose": "^2.2.0", diff --git a/projects/ngx-reactome-diagram/src/lib/diagram/diagram.component.ts b/projects/ngx-reactome-diagram/src/lib/diagram/diagram.component.ts index 56c9e4b..f8323bd 100644 --- a/projects/ngx-reactome-diagram/src/lib/diagram/diagram.component.ts +++ b/projects/ngx-reactome-diagram/src/lib/diagram/diagram.component.ts @@ -247,10 +247,10 @@ export class DiagramComponent implements AfterViewInit, OnChanges { )); private stateToDiagram() { - // for (let cy of [this.cy, this.cyCompare].filter(cy => cy !== undefined)) { - // this.flag(this.state.get('flag'), cy); - // this.select(this.state.get("select"), cy); - // } + for (let cy of [this.cy, this.cyCompare].filter(cy => cy !== undefined)) { + this.flag(this.state.get('flag'), cy); + this.select(this.state.get("select"), cy); + } } readonly classRegex = /class:(\w+)([!.]drug)?/ From 7c8af600fb9ac56fd3681e6518124ff5e8d5afa4 Mon Sep 17 00:00:00 2001 From: guanmingwu Date: Mon, 27 Oct 2025 13:26:28 -0700 Subject: [PATCH 33/49] bug fix: getElements() should return nothing when token is empty --- projects/ngx-reactome-diagram/package.json | 2 +- .../ngx-reactome-diagram/src/lib/diagram/diagram.component.ts | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/projects/ngx-reactome-diagram/package.json b/projects/ngx-reactome-diagram/package.json index c932ad3..45ea003 100644 --- a/projects/ngx-reactome-diagram/package.json +++ b/projects/ngx-reactome-diagram/package.json @@ -1,6 +1,6 @@ { "name": "ngx-reactome-diagram", - "version": "0.0.33", + "version": "0.0.34", "peerDependencies": { "cytoscape": "^3.27.0", "cytoscape-fcose": "^2.2.0", diff --git a/projects/ngx-reactome-diagram/src/lib/diagram/diagram.component.ts b/projects/ngx-reactome-diagram/src/lib/diagram/diagram.component.ts index f8323bd..ae54ec7 100644 --- a/projects/ngx-reactome-diagram/src/lib/diagram/diagram.component.ts +++ b/projects/ngx-reactome-diagram/src/lib/diagram/diagram.component.ts @@ -261,6 +261,9 @@ export class DiagramComponent implements AfterViewInit, OnChanges { elements = cy.collection() tokens.forEach(token => { if (typeof token === 'string') { + // An empty token should be ignored. If this is not done, + // all objects will be selected since [acc=""] matches all elements without acc attribute. + if (token.trim().length === 0) return; if (token.startsWith('R-')) { elements = elements.or(`[graph.stId="${token}"]`) } else { From ee141b4415ec7c7597db164902b7938c57f523fb Mon Sep 17 00:00:00 2001 From: Adam Wright Date: Sat, 3 Oct 2026 00:45:47 +0000 Subject: [PATCH 34/49] Update Angular core and CLI to 20 (ng update) Co-Authored-By: Claude Opus 5.5 --- angular.json | 26 + package-lock.json | 11407 ++++++++++++++++++++++++++++---------------- package.json | 26 +- tsconfig.json | 2 +- 4 files changed, 7371 insertions(+), 4090 deletions(-) diff --git a/angular.json b/angular.json index 89215a1..2545222 100644 --- a/angular.json +++ b/angular.json @@ -194,5 +194,31 @@ }, "cli": { "analytics": false + }, + "schematics": { + "@schematics/angular:component": { + "type": "component" + }, + "@schematics/angular:directive": { + "type": "directive" + }, + "@schematics/angular:service": { + "type": "service" + }, + "@schematics/angular:guard": { + "typeSeparator": "." + }, + "@schematics/angular:interceptor": { + "typeSeparator": "." + }, + "@schematics/angular:module": { + "typeSeparator": "." + }, + "@schematics/angular:pipe": { + "typeSeparator": "." + }, + "@schematics/angular:resolver": { + "typeSeparator": "." + } } } diff --git a/package-lock.json b/package-lock.json index 944f1da..bcaed85 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,16 +8,16 @@ "name": "ngx-reactome-base", "version": "0.0.19", "dependencies": { - "@angular/animations": "^19.1.3", + "@angular/animations": "^20.3.33", "@angular/cdk": "^19.1.1", - "@angular/common": "^19.1.3", - "@angular/compiler": "^19.1.3", - "@angular/core": "^19.1.3", - "@angular/forms": "^19.1.3", + "@angular/common": "^20.3.33", + "@angular/compiler": "^20.3.33", + "@angular/core": "^20.3.33", + "@angular/forms": "^20.3.33", "@angular/material": "^19.1.1", - "@angular/platform-browser": "19.1.3", - "@angular/platform-browser-dynamic": "^19.1.3", - "@angular/router": "^19.1.3", + "@angular/platform-browser": "20.3.33", + "@angular/platform-browser-dynamic": "^20.3.33", + "@angular/router": "^20.3.33", "@ngneat/until-destroy": "^10.0.0", "cytoscape": "^3.29.2", "cytoscape-fcose": "^2.2.0", @@ -28,9 +28,9 @@ "zone.js": "~0.15.0" }, "devDependencies": { - "@angular-devkit/build-angular": "^19.1.4", - "@angular/cli": "^19.1.4", - "@angular/compiler-cli": "^19.1.3", + "@angular-devkit/build-angular": "^20.3.37", + "@angular/cli": "^20.3.37", + "@angular/compiler-cli": "^20.3.33", "@types/cytoscape": "^3.21.0", "@types/cytoscape-fcose": "^2.2.4", "@types/jasmine": "~4.3.0", @@ -42,9 +42,218 @@ "karma-coverage": "~2.2.0", "karma-jasmine": "~5.1.0", "karma-jasmine-html-reporter": "~2.1.0", - "ng-packagr": "^19.1.1", + "ng-packagr": "^20.3.2", "npm-run-all": "^4.1.1", - "typescript": "~5.7.3" + "typescript": "~5.9.3" + } + }, + "node_modules/@algolia/abtesting": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@algolia/abtesting/-/abtesting-1.1.0.tgz", + "integrity": "sha512-sEyWjw28a/9iluA37KLGu8vjxEIlb60uxznfTUmXImy7H5NvbpSO6yYgmgH5KiD7j+zTUUihiST0jEP12IoXow==", + "dev": true, + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.35.0", + "@algolia/requester-browser-xhr": "5.35.0", + "@algolia/requester-fetch": "5.35.0", + "@algolia/requester-node-http": "5.35.0" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/client-abtesting": { + "version": "5.35.0", + "resolved": "https://registry.npmjs.org/@algolia/client-abtesting/-/client-abtesting-5.35.0.tgz", + "integrity": "sha512-uUdHxbfHdoppDVflCHMxRlj49/IllPwwQ2cQ8DLC4LXr3kY96AHBpW0dMyi6ygkn2MtFCc6BxXCzr668ZRhLBQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.35.0", + "@algolia/requester-browser-xhr": "5.35.0", + "@algolia/requester-fetch": "5.35.0", + "@algolia/requester-node-http": "5.35.0" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/client-analytics": { + "version": "5.35.0", + "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-5.35.0.tgz", + "integrity": "sha512-SunAgwa9CamLcRCPnPHx1V2uxdQwJGqb1crYrRWktWUdld0+B2KyakNEeVn5lln4VyeNtW17Ia7V7qBWyM/Skw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.35.0", + "@algolia/requester-browser-xhr": "5.35.0", + "@algolia/requester-fetch": "5.35.0", + "@algolia/requester-node-http": "5.35.0" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/client-common": { + "version": "5.35.0", + "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-5.35.0.tgz", + "integrity": "sha512-ipE0IuvHu/bg7TjT2s+187kz/E3h5ssfTtjpg1LbWMgxlgiaZIgTTbyynM7NfpSJSKsgQvCQxWjGUO51WSCu7w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/client-insights": { + "version": "5.35.0", + "resolved": "https://registry.npmjs.org/@algolia/client-insights/-/client-insights-5.35.0.tgz", + "integrity": "sha512-UNbCXcBpqtzUucxExwTSfAe8gknAJ485NfPN6o1ziHm6nnxx97piIbcBQ3edw823Tej2Wxu1C0xBY06KgeZ7gA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.35.0", + "@algolia/requester-browser-xhr": "5.35.0", + "@algolia/requester-fetch": "5.35.0", + "@algolia/requester-node-http": "5.35.0" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/client-personalization": { + "version": "5.35.0", + "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-5.35.0.tgz", + "integrity": "sha512-/KWjttZ6UCStt4QnWoDAJ12cKlQ+fkpMtyPmBgSS2WThJQdSV/4UWcqCUqGH7YLbwlj3JjNirCu3Y7uRTClxvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.35.0", + "@algolia/requester-browser-xhr": "5.35.0", + "@algolia/requester-fetch": "5.35.0", + "@algolia/requester-node-http": "5.35.0" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/client-query-suggestions": { + "version": "5.35.0", + "resolved": "https://registry.npmjs.org/@algolia/client-query-suggestions/-/client-query-suggestions-5.35.0.tgz", + "integrity": "sha512-8oCuJCFf/71IYyvQQC+iu4kgViTODbXDk3m7yMctEncRSRV+u2RtDVlpGGfPlJQOrAY7OONwJlSHkmbbm2Kp/w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.35.0", + "@algolia/requester-browser-xhr": "5.35.0", + "@algolia/requester-fetch": "5.35.0", + "@algolia/requester-node-http": "5.35.0" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/client-search": { + "version": "5.35.0", + "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-5.35.0.tgz", + "integrity": "sha512-FfmdHTrXhIduWyyuko1YTcGLuicVbhUyRjO3HbXE4aP655yKZgdTIfMhZ/V5VY9bHuxv/fGEh3Od1Lvv2ODNTg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.35.0", + "@algolia/requester-browser-xhr": "5.35.0", + "@algolia/requester-fetch": "5.35.0", + "@algolia/requester-node-http": "5.35.0" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/ingestion": { + "version": "1.35.0", + "resolved": "https://registry.npmjs.org/@algolia/ingestion/-/ingestion-1.35.0.tgz", + "integrity": "sha512-gPzACem9IL1Co8mM1LKMhzn1aSJmp+Vp434An4C0OBY4uEJRcqsLN3uLBlY+bYvFg8C8ImwM9YRiKczJXRk0XA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.35.0", + "@algolia/requester-browser-xhr": "5.35.0", + "@algolia/requester-fetch": "5.35.0", + "@algolia/requester-node-http": "5.35.0" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/monitoring": { + "version": "1.35.0", + "resolved": "https://registry.npmjs.org/@algolia/monitoring/-/monitoring-1.35.0.tgz", + "integrity": "sha512-w9MGFLB6ashI8BGcQoVt7iLgDIJNCn4OIu0Q0giE3M2ItNrssvb8C0xuwJQyTy1OFZnemG0EB1OvXhIHOvQwWw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.35.0", + "@algolia/requester-browser-xhr": "5.35.0", + "@algolia/requester-fetch": "5.35.0", + "@algolia/requester-node-http": "5.35.0" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/recommend": { + "version": "5.35.0", + "resolved": "https://registry.npmjs.org/@algolia/recommend/-/recommend-5.35.0.tgz", + "integrity": "sha512-AhrVgaaXAb8Ue0u2nuRWwugt0dL5UmRgS9LXe0Hhz493a8KFeZVUE56RGIV3hAa6tHzmAV7eIoqcWTQvxzlJeQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.35.0", + "@algolia/requester-browser-xhr": "5.35.0", + "@algolia/requester-fetch": "5.35.0", + "@algolia/requester-node-http": "5.35.0" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/requester-browser-xhr": { + "version": "5.35.0", + "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-5.35.0.tgz", + "integrity": "sha512-diY415KLJZ6x1Kbwl9u96Jsz0OstE3asjXtJ9pmk1d+5gPuQ5jQyEsgC+WmEXzlec3iuVszm8AzNYYaqw6B+Zw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.35.0" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/requester-fetch": { + "version": "5.35.0", + "resolved": "https://registry.npmjs.org/@algolia/requester-fetch/-/requester-fetch-5.35.0.tgz", + "integrity": "sha512-uydqnSmpAjrgo8bqhE9N1wgcB98psTRRQXcjc4izwMB7yRl9C8uuAQ/5YqRj04U0mMQ+fdu2fcNF6m9+Z1BzDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.35.0" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/requester-node-http": { + "version": "5.35.0", + "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-5.35.0.tgz", + "integrity": "sha512-RgLX78ojYOrThJHrIiPzT4HW3yfQa0D7K+MQ81rhxqaNyNBu4F1r+72LNHYH/Z+y9I1Mrjrd/c/Ue5zfDgAEjQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.35.0" + }, + "engines": { + "node": ">= 14.0.0" } }, "node_modules/@ampproject/remapping": { @@ -111,96 +320,103 @@ "peer": true }, "node_modules/@angular-devkit/build-angular": { - "version": "19.1.4", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-19.1.4.tgz", - "integrity": "sha512-t8qC26Boz1aAMt2xVKthwEXRqMI4ZVwelxRNfHryLdLTujTaehFt3qbjxukMmRGCWmQObauH0UOvDh3pAA24dQ==", + "version": "20.3.37", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-20.3.37.tgz", + "integrity": "sha512-piXV1WYz/HPn5KTtPv51CspZPkX5Yys01M+8zrcfH+ZD98jLOqtlb9msJ36h8ovvEyIeZnCnuhmsOKfgwOggoQ==", "dev": true, "license": "MIT", "dependencies": { "@ampproject/remapping": "2.3.0", - "@angular-devkit/architect": "0.1901.4", - "@angular-devkit/build-webpack": "0.1901.4", - "@angular-devkit/core": "19.1.4", - "@angular/build": "19.1.4", - "@babel/core": "7.26.0", - "@babel/generator": "7.26.3", - "@babel/helper-annotate-as-pure": "7.25.9", + "@angular-devkit/architect": "0.2003.37", + "@angular-devkit/build-webpack": "0.2003.37", + "@angular-devkit/core": "20.3.37", + "@angular/build": "20.3.37", + "@babel/core": "7.29.7", + "@babel/generator": "7.28.3", + "@babel/helper-annotate-as-pure": "7.27.3", "@babel/helper-split-export-declaration": "7.24.7", - "@babel/plugin-transform-async-generator-functions": "7.25.9", - "@babel/plugin-transform-async-to-generator": "7.25.9", - "@babel/plugin-transform-runtime": "7.25.9", - "@babel/preset-env": "7.26.0", - "@babel/runtime": "7.26.0", + "@babel/plugin-transform-async-generator-functions": "7.28.0", + "@babel/plugin-transform-async-to-generator": "7.27.1", + "@babel/plugin-transform-runtime": "7.28.3", + "@babel/preset-env": "7.28.3", + "@babel/runtime": "7.28.3", "@discoveryjs/json-ext": "0.6.3", - "@ngtools/webpack": "19.1.4", - "@vitejs/plugin-basic-ssl": "1.2.0", + "@ngtools/webpack": "20.3.37", "ansi-colors": "4.1.3", - "autoprefixer": "10.4.20", - "babel-loader": "9.2.1", + "autoprefixer": "10.4.21", + "babel-loader": "10.0.0", "browserslist": "^4.21.5", - "copy-webpack-plugin": "12.0.2", + "copy-webpack-plugin": "14.0.0", "css-loader": "7.1.2", - "esbuild-wasm": "0.24.2", + "esbuild-wasm": "0.28.1", "fast-glob": "3.3.3", - "http-proxy-middleware": "3.0.3", + "http-proxy-middleware": "3.0.7", "istanbul-lib-instrument": "6.0.3", "jsonc-parser": "3.3.1", "karma-source-map-support": "1.4.0", - "less": "4.2.1", - "less-loader": "12.2.0", + "less": "4.9.0", + "less-loader": "12.3.0", "license-webpack-plugin": "4.0.2", "loader-utils": "3.3.1", - "mini-css-extract-plugin": "2.9.2", - "open": "10.1.0", - "ora": "5.4.1", - "picomatch": "4.0.2", - "piscina": "4.8.0", - "postcss": "8.4.49", + "mini-css-extract-plugin": "2.9.4", + "open": "10.2.0", + "ora": "8.2.0", + "picomatch": "4.0.4", + "piscina": "5.2.0", + "postcss": "8.5.23", "postcss-loader": "8.1.1", "resolve-url-loader": "5.0.0", - "rxjs": "7.8.1", - "sass": "1.83.1", - "sass-loader": "16.0.4", - "semver": "7.6.3", + "rxjs": "7.8.2", + "sass": "1.90.0", + "sass-loader": "16.0.5", + "semver": "7.7.2", "source-map-loader": "5.0.0", "source-map-support": "0.5.21", - "terser": "5.37.0", + "terser": "5.43.1", "tree-kill": "1.2.2", "tslib": "2.8.1", - "webpack": "5.97.1", + "webpack": "5.105.0", "webpack-dev-middleware": "7.4.2", - "webpack-dev-server": "5.2.0", + "webpack-dev-server": "5.2.6", "webpack-merge": "6.0.1", "webpack-subresource-integrity": "5.1.0" }, "engines": { - "node": "^18.19.1 || ^20.11.1 || >=22.0.0", + "node": "^20.19.0 || ^22.12.0 || >=24.0.0", "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", "yarn": ">= 1.13.0" }, "optionalDependencies": { - "esbuild": "0.24.2" + "esbuild": "0.28.1" }, "peerDependencies": { - "@angular/compiler-cli": "^19.0.0", - "@angular/localize": "^19.0.0", - "@angular/platform-server": "^19.0.0", - "@angular/service-worker": "^19.0.0", - "@angular/ssr": "^19.1.4", - "@web/test-runner": "^0.19.0", + "@angular/compiler-cli": "^20.0.0", + "@angular/core": "^20.0.0", + "@angular/localize": "^20.0.0", + "@angular/platform-browser": "^20.0.0", + "@angular/platform-server": "^20.0.0", + "@angular/service-worker": "^20.0.0", + "@angular/ssr": "^20.3.37", + "@web/test-runner": "^0.20.0", "browser-sync": "^3.0.2", - "jest": "^29.5.0", - "jest-environment-jsdom": "^29.5.0", + "jest": "^29.5.0 || ^30.2.0", + "jest-environment-jsdom": "^29.5.0 || ^30.2.0", "karma": "^6.3.0", - "ng-packagr": "^19.0.0", + "ng-packagr": "^20.0.0", "protractor": "^7.0.0", - "tailwindcss": "^2.0.0 || ^3.0.0", - "typescript": ">=5.5 <5.8" + "tailwindcss": "^2.0.0 || ^3.0.0 || ^4.0.0", + "typescript": ">=5.8 <6.0" }, "peerDependenciesMeta": { + "@angular/core": { + "optional": true + }, "@angular/localize": { "optional": true }, + "@angular/platform-browser": { + "optional": true + }, "@angular/platform-server": { "optional": true }, @@ -237,37 +453,37 @@ } }, "node_modules/@angular-devkit/build-angular/node_modules/@angular-devkit/architect": { - "version": "0.1901.4", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1901.4.tgz", - "integrity": "sha512-EoRTN8p7z0YnqOEIJKKu/NwSsCJxFkyGuZOobz7btnUWwlDqG8CNAhJgtlsOXPihwEkHEkzRIm1feDkWEjCYsA==", + "version": "0.2003.37", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.2003.37.tgz", + "integrity": "sha512-QJPV1khLavmdFNzn/2bhWCbbw3IRX/SCNtUAPh0Fr+ZninYNWC8xMSGGNivyYUQfLOZ1jP/1zgPaLCc8nJfQGg==", "dev": true, "license": "MIT", "dependencies": { - "@angular-devkit/core": "19.1.4", - "rxjs": "7.8.1" + "@angular-devkit/core": "20.3.37", + "rxjs": "7.8.2" }, "engines": { - "node": "^18.19.1 || ^20.11.1 || >=22.0.0", + "node": "^20.19.0 || ^22.12.0 || >=24.0.0", "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", "yarn": ">= 1.13.0" } }, "node_modules/@angular-devkit/build-angular/node_modules/@angular-devkit/core": { - "version": "19.1.4", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-19.1.4.tgz", - "integrity": "sha512-IDvSSiQgaixH2RtZtIpq1+XaHeuzMiTWfDyNF9DuYcU+S8CdG1SWrc8d59tmOrM/q+IRGyFgbBhTU1un52hNHw==", + "version": "20.3.37", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-20.3.37.tgz", + "integrity": "sha512-Mkh0QLXGdzPEqimmhhXn6nS2hoDQhWc7qrQrkvKVLaU9mh0ltd2U/3yOIIeZsRqgKRjbNW+VFlyC0z2unuiXxA==", "dev": true, "license": "MIT", "dependencies": { - "ajv": "8.17.1", + "ajv": "8.18.0", "ajv-formats": "3.0.1", "jsonc-parser": "3.3.1", - "picomatch": "4.0.2", - "rxjs": "7.8.1", - "source-map": "0.7.4" + "picomatch": "4.0.4", + "rxjs": "7.8.2", + "source-map": "0.7.6" }, "engines": { - "node": "^18.19.1 || ^20.11.1 || >=22.0.0", + "node": "^20.19.0 || ^22.12.0 || >=24.0.0", "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", "yarn": ">= 1.13.0" }, @@ -281,9 +497,9 @@ } }, "node_modules/@angular-devkit/build-angular/node_modules/ajv": { - "version": "8.17.1", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", - "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.18.0.tgz", + "integrity": "sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==", "dev": true, "license": "MIT", "dependencies": { @@ -315,22 +531,79 @@ } } }, - "node_modules/@angular-devkit/build-angular/node_modules/chokidar": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", - "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", + "node_modules/@angular-devkit/build-angular/node_modules/ansi-regex": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.4.0.tgz", + "integrity": "sha512-KzTVk2tCWAHtYrvvvaP8bJKJq2pVinhLcGEQdtLIYPbmNGNyYe8QwNaTUYQp2J7/vIsUKt5QCqAfUkYyG9DkOw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/chalk": { + "version": "5.6.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.6.2.tgz", + "integrity": "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/cli-cursor": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-5.0.0.tgz", + "integrity": "sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==", "dev": true, "license": "MIT", - "optional": true, - "peer": true, "dependencies": { - "readdirp": "^4.0.1" + "restore-cursor": "^5.0.0" }, "engines": { - "node": ">= 14.16.0" + "node": ">=18" }, "funding": { - "url": "https://paulmillr.com/funding/" + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/emoji-regex": { + "version": "10.6.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.6.0.tgz", + "integrity": "sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==", + "dev": true, + "license": "MIT" + }, + "node_modules/@angular-devkit/build-angular/node_modules/is-interactive": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-2.0.0.tgz", + "integrity": "sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/is-unicode-supported": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-2.1.0.tgz", + "integrity": "sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/@angular-devkit/build-angular/node_modules/istanbul-lib-instrument": { @@ -350,153 +623,290 @@ "node": ">=10" } }, - "node_modules/@angular-devkit/build-angular/node_modules/readdirp": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.1.tgz", - "integrity": "sha512-h80JrZu/MHUZCyHu5ciuoI0+WxsCxzxJTILn6Fs8rxSnFPh+UVHYfeIxK1nVGugMqkfC4vJcBOYbkfkwYK0+gw==", + "node_modules/@angular-devkit/build-angular/node_modules/log-symbols": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-6.0.0.tgz", + "integrity": "sha512-i24m8rpwhmPIS4zscNzK6MSEhk0DUWa/8iYQWxhffV8jkI4Phvs3F+quL5xvS0gdQR0FyTCMMH33Y78dDTzzIw==", "dev": true, "license": "MIT", - "optional": true, - "peer": true, + "dependencies": { + "chalk": "^5.3.0", + "is-unicode-supported": "^1.3.0" + }, "engines": { - "node": ">= 14.18.0" + "node": ">=18" }, "funding": { - "type": "individual", - "url": "https://paulmillr.com/funding/" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@angular-devkit/build-webpack": { - "version": "0.1901.4", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1901.4.tgz", - "integrity": "sha512-C/Cd1JeRTy2P/powIldc5UZObw92TDGATD/LFlfPfi94celLa2DlEL1ybPTpnGs/R5/q5R26F6fbhmAVSeTJ8g==", + "node_modules/@angular-devkit/build-angular/node_modules/log-symbols/node_modules/is-unicode-supported": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz", + "integrity": "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==", "dev": true, "license": "MIT", - "dependencies": { - "@angular-devkit/architect": "0.1901.4", - "rxjs": "7.8.1" - }, "engines": { - "node": "^18.19.1 || ^20.11.1 || >=22.0.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" + "node": ">=12" }, - "peerDependencies": { - "webpack": "^5.30.0", - "webpack-dev-server": "^5.0.2" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@angular-devkit/build-webpack/node_modules/@angular-devkit/architect": { - "version": "0.1901.4", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1901.4.tgz", - "integrity": "sha512-EoRTN8p7z0YnqOEIJKKu/NwSsCJxFkyGuZOobz7btnUWwlDqG8CNAhJgtlsOXPihwEkHEkzRIm1feDkWEjCYsA==", + "node_modules/@angular-devkit/build-angular/node_modules/onetime": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-7.0.0.tgz", + "integrity": "sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==", "dev": true, "license": "MIT", "dependencies": { - "@angular-devkit/core": "19.1.4", - "rxjs": "7.8.1" + "mimic-function": "^5.0.0" }, "engines": { - "node": "^18.19.1 || ^20.11.1 || >=22.0.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@angular-devkit/build-webpack/node_modules/@angular-devkit/core": { - "version": "19.1.4", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-19.1.4.tgz", - "integrity": "sha512-IDvSSiQgaixH2RtZtIpq1+XaHeuzMiTWfDyNF9DuYcU+S8CdG1SWrc8d59tmOrM/q+IRGyFgbBhTU1un52hNHw==", + "node_modules/@angular-devkit/build-angular/node_modules/ora": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/ora/-/ora-8.2.0.tgz", + "integrity": "sha512-weP+BZ8MVNnlCm8c0Qdc1WSWq4Qn7I+9CJGm7Qali6g44e/PUzbjNqJX5NJ9ljlNMosfJvg1fKEGILklK9cwnw==", "dev": true, "license": "MIT", "dependencies": { - "ajv": "8.17.1", - "ajv-formats": "3.0.1", - "jsonc-parser": "3.3.1", - "picomatch": "4.0.2", - "rxjs": "7.8.1", - "source-map": "0.7.4" + "chalk": "^5.3.0", + "cli-cursor": "^5.0.0", + "cli-spinners": "^2.9.2", + "is-interactive": "^2.0.0", + "is-unicode-supported": "^2.0.0", + "log-symbols": "^6.0.0", + "stdin-discarder": "^0.2.2", + "string-width": "^7.2.0", + "strip-ansi": "^7.1.0" }, "engines": { - "node": "^18.19.1 || ^20.11.1 || >=22.0.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" - }, - "peerDependencies": { - "chokidar": "^4.0.0" + "node": ">=18" }, - "peerDependenciesMeta": { - "chokidar": { - "optional": true - } + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@angular-devkit/build-webpack/node_modules/ajv": { - "version": "8.17.1", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", - "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "node_modules/@angular-devkit/build-angular/node_modules/restore-cursor": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-5.1.0.tgz", + "integrity": "sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==", "dev": true, "license": "MIT", "dependencies": { - "fast-deep-equal": "^3.1.3", - "fast-uri": "^3.0.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2" + "onetime": "^7.0.0", + "signal-exit": "^4.1.0" + }, + "engines": { + "node": ">=18" }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@angular-devkit/build-webpack/node_modules/ajv-formats": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-3.0.1.tgz", - "integrity": "sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==", + "node_modules/@angular-devkit/build-angular/node_modules/rxjs": { + "version": "7.8.2", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.2.tgz", + "integrity": "sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==", "dev": true, - "license": "MIT", + "license": "Apache-2.0", "dependencies": { - "ajv": "^8.0.0" - }, - "peerDependencies": { - "ajv": "^8.0.0" - }, - "peerDependenciesMeta": { - "ajv": { - "optional": true - } + "tslib": "^2.1.0" } }, - "node_modules/@angular-devkit/build-webpack/node_modules/chokidar": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", - "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", + "node_modules/@angular-devkit/build-angular/node_modules/semver": { + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "readdirp": "^4.0.1" + "license": "ISC", + "bin": { + "semver": "bin/semver.js" }, "engines": { - "node": ">= 14.16.0" + "node": ">=10" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=14" }, "funding": { - "url": "https://paulmillr.com/funding/" + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@angular-devkit/build-webpack/node_modules/readdirp": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.1.tgz", - "integrity": "sha512-h80JrZu/MHUZCyHu5ciuoI0+WxsCxzxJTILn6Fs8rxSnFPh+UVHYfeIxK1nVGugMqkfC4vJcBOYbkfkwYK0+gw==", + "node_modules/@angular-devkit/build-angular/node_modules/source-map": { + "version": "0.7.6", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.6.tgz", + "integrity": "sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">= 12" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/string-width": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", + "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", "dev": true, "license": "MIT", - "optional": true, - "peer": true, + "dependencies": { + "emoji-regex": "^10.3.0", + "get-east-asian-width": "^1.0.0", + "strip-ansi": "^7.1.0" + }, "engines": { - "node": ">= 14.18.0" + "node": ">=18" }, "funding": { - "type": "individual", - "url": "https://paulmillr.com/funding/" + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/strip-ansi": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz", + "integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.2.2" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/@angular-devkit/build-webpack": { + "version": "0.2003.37", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.2003.37.tgz", + "integrity": "sha512-drnrIuM+ya/uBbiy7JV5p/I/vXTD6BpGm+XiMA0GpnjIuAcnonABJdvUSickrlZjb73swD9vadPJvtmBygjVtw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@angular-devkit/architect": "0.2003.37", + "rxjs": "7.8.2" + }, + "engines": { + "node": "^20.19.0 || ^22.12.0 || >=24.0.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "peerDependencies": { + "webpack": "^5.30.0", + "webpack-dev-server": "^5.0.2" + } + }, + "node_modules/@angular-devkit/build-webpack/node_modules/@angular-devkit/architect": { + "version": "0.2003.37", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.2003.37.tgz", + "integrity": "sha512-QJPV1khLavmdFNzn/2bhWCbbw3IRX/SCNtUAPh0Fr+ZninYNWC8xMSGGNivyYUQfLOZ1jP/1zgPaLCc8nJfQGg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@angular-devkit/core": "20.3.37", + "rxjs": "7.8.2" + }, + "engines": { + "node": "^20.19.0 || ^22.12.0 || >=24.0.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular-devkit/build-webpack/node_modules/@angular-devkit/core": { + "version": "20.3.37", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-20.3.37.tgz", + "integrity": "sha512-Mkh0QLXGdzPEqimmhhXn6nS2hoDQhWc7qrQrkvKVLaU9mh0ltd2U/3yOIIeZsRqgKRjbNW+VFlyC0z2unuiXxA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "8.18.0", + "ajv-formats": "3.0.1", + "jsonc-parser": "3.3.1", + "picomatch": "4.0.4", + "rxjs": "7.8.2", + "source-map": "0.7.6" + }, + "engines": { + "node": "^20.19.0 || ^22.12.0 || >=24.0.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "peerDependencies": { + "chokidar": "^4.0.0" + }, + "peerDependenciesMeta": { + "chokidar": { + "optional": true + } + } + }, + "node_modules/@angular-devkit/build-webpack/node_modules/ajv": { + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.18.0.tgz", + "integrity": "sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/@angular-devkit/build-webpack/node_modules/ajv-formats": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-3.0.1.tgz", + "integrity": "sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/@angular-devkit/build-webpack/node_modules/rxjs": { + "version": "7.8.2", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.2.tgz", + "integrity": "sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/@angular-devkit/build-webpack/node_modules/source-map": { + "version": "0.7.6", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.6.tgz", + "integrity": "sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">= 12" } }, "node_modules/@angular-devkit/core": { @@ -587,78 +997,91 @@ } }, "node_modules/@angular/animations": { - "version": "19.1.3", - "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-19.1.3.tgz", - "integrity": "sha512-MI+Tbp9OOisrQtTQH7o+xiQCODXicCs8WHNpGzdCpnXdRkQuVSOb6xAjD9OXJqcQGotLgeyennnkIJGXdz4RTA==", + "version": "20.3.33", + "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-20.3.33.tgz", + "integrity": "sha512-z9gPYm1byXYE0tMGzjjDXE4OprxvjUhV4jOXVfLLlU0Sk5ChM3GwR0m2Vh+hDWDrJ2f7nfKKTeoGlLriP7NPZA==", + "deprecated": "@angular/animations is deprecated. Use `animate.enter` and `animate.leave` instead. For more information see: https://v22.angular.dev/guide/animations.", "license": "MIT", "dependencies": { "tslib": "^2.3.0" }, "engines": { - "node": "^18.19.1 || ^20.11.1 || >=22.0.0" + "node": "^20.19.0 || ^22.12.0 || >=24.0.0" }, "peerDependencies": { - "@angular/core": "19.1.3" + "@angular/core": "20.3.33" } }, "node_modules/@angular/build": { - "version": "19.1.4", - "resolved": "https://registry.npmjs.org/@angular/build/-/build-19.1.4.tgz", - "integrity": "sha512-yfvLeUT2a8JTuVBY259vsSv0uLyhikHHgQcWa3VSr0TvCKrwCsBIFDq7vqmhLqIVWi/Z4D7n3J5JQAbDrl38Sg==", + "version": "20.3.37", + "resolved": "https://registry.npmjs.org/@angular/build/-/build-20.3.37.tgz", + "integrity": "sha512-r4Wdu+O/Dy0WswW/GuNwvLj3ZPbqJgLRonQLN7MJpYr3CeogB83iTsipvWFC1zZbcY8YwOMfJ8zCErYdbhqGvQ==", "dev": true, "license": "MIT", "dependencies": { "@ampproject/remapping": "2.3.0", - "@angular-devkit/architect": "0.1901.4", - "@babel/core": "7.26.0", - "@babel/helper-annotate-as-pure": "7.25.9", + "@angular-devkit/architect": "0.2003.37", + "@babel/core": "7.29.7", + "@babel/helper-annotate-as-pure": "7.27.3", "@babel/helper-split-export-declaration": "7.24.7", - "@babel/plugin-syntax-import-attributes": "7.26.0", - "@inquirer/confirm": "5.1.1", - "@vitejs/plugin-basic-ssl": "1.2.0", - "beasties": "0.2.0", + "@inquirer/confirm": "5.1.14", + "@vitejs/plugin-basic-ssl": "2.1.0", + "beasties": "0.3.5", "browserslist": "^4.23.0", - "esbuild": "0.24.2", - "fast-glob": "3.3.3", + "esbuild": "0.28.1", "https-proxy-agent": "7.0.6", "istanbul-lib-instrument": "6.0.3", - "listr2": "8.2.5", + "jsonc-parser": "3.3.1", + "listr2": "9.0.1", "magic-string": "0.30.17", - "mrmime": "2.0.0", - "parse5-html-rewriting-stream": "7.0.0", - "picomatch": "4.0.2", - "piscina": "4.8.0", - "rollup": "4.30.1", - "sass": "1.83.1", - "semver": "7.6.3", - "vite": "6.0.7", - "watchpack": "2.4.2" - }, - "engines": { - "node": "^18.19.1 || ^20.11.1 || >=22.0.0", + "mrmime": "2.0.1", + "parse5-html-rewriting-stream": "8.0.0", + "picomatch": "4.0.4", + "piscina": "5.2.0", + "rollup": "4.59.0", + "sass": "1.90.0", + "semver": "7.7.2", + "source-map-support": "0.5.21", + "tinyglobby": "0.2.14", + "vite": "7.3.6", + "watchpack": "2.4.4" + }, + "engines": { + "node": "^20.19.0 || ^22.12.0 || >=24.0.0", "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", "yarn": ">= 1.13.0" }, "optionalDependencies": { - "lmdb": "3.2.2" + "lmdb": "3.4.2" }, "peerDependencies": { - "@angular/compiler": "^19.0.0", - "@angular/compiler-cli": "^19.0.0", - "@angular/localize": "^19.0.0", - "@angular/platform-server": "^19.0.0", - "@angular/service-worker": "^19.0.0", - "@angular/ssr": "^19.1.4", + "@angular/compiler": "^20.0.0", + "@angular/compiler-cli": "^20.0.0", + "@angular/core": "^20.0.0", + "@angular/localize": "^20.0.0", + "@angular/platform-browser": "^20.0.0", + "@angular/platform-server": "^20.0.0", + "@angular/service-worker": "^20.0.0", + "@angular/ssr": "^20.3.37", + "karma": "^6.4.0", "less": "^4.2.0", - "ng-packagr": "^19.0.0", + "ng-packagr": "^20.0.0", "postcss": "^8.4.0", - "tailwindcss": "^2.0.0 || ^3.0.0", - "typescript": ">=5.5 <5.8" + "tailwindcss": "^2.0.0 || ^3.0.0 || ^4.0.0", + "tslib": "^2.3.0", + "typescript": ">=5.8 <6.0", + "vitest": "^3.1.1" }, "peerDependenciesMeta": { + "@angular/core": { + "optional": true + }, "@angular/localize": { "optional": true }, + "@angular/platform-browser": { + "optional": true + }, "@angular/platform-server": { "optional": true }, @@ -668,6 +1091,9 @@ "@angular/ssr": { "optional": true }, + "karma": { + "optional": true + }, "less": { "optional": true }, @@ -679,41 +1105,44 @@ }, "tailwindcss": { "optional": true + }, + "vitest": { + "optional": true } } }, "node_modules/@angular/build/node_modules/@angular-devkit/architect": { - "version": "0.1901.4", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1901.4.tgz", - "integrity": "sha512-EoRTN8p7z0YnqOEIJKKu/NwSsCJxFkyGuZOobz7btnUWwlDqG8CNAhJgtlsOXPihwEkHEkzRIm1feDkWEjCYsA==", + "version": "0.2003.37", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.2003.37.tgz", + "integrity": "sha512-QJPV1khLavmdFNzn/2bhWCbbw3IRX/SCNtUAPh0Fr+ZninYNWC8xMSGGNivyYUQfLOZ1jP/1zgPaLCc8nJfQGg==", "dev": true, "license": "MIT", "dependencies": { - "@angular-devkit/core": "19.1.4", - "rxjs": "7.8.1" + "@angular-devkit/core": "20.3.37", + "rxjs": "7.8.2" }, "engines": { - "node": "^18.19.1 || ^20.11.1 || >=22.0.0", + "node": "^20.19.0 || ^22.12.0 || >=24.0.0", "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", "yarn": ">= 1.13.0" } }, "node_modules/@angular/build/node_modules/@angular-devkit/core": { - "version": "19.1.4", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-19.1.4.tgz", - "integrity": "sha512-IDvSSiQgaixH2RtZtIpq1+XaHeuzMiTWfDyNF9DuYcU+S8CdG1SWrc8d59tmOrM/q+IRGyFgbBhTU1un52hNHw==", + "version": "20.3.37", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-20.3.37.tgz", + "integrity": "sha512-Mkh0QLXGdzPEqimmhhXn6nS2hoDQhWc7qrQrkvKVLaU9mh0ltd2U/3yOIIeZsRqgKRjbNW+VFlyC0z2unuiXxA==", "dev": true, "license": "MIT", "dependencies": { - "ajv": "8.17.1", + "ajv": "8.18.0", "ajv-formats": "3.0.1", "jsonc-parser": "3.3.1", - "picomatch": "4.0.2", - "rxjs": "7.8.1", - "source-map": "0.7.4" + "picomatch": "4.0.4", + "rxjs": "7.8.2", + "source-map": "0.7.6" }, "engines": { - "node": "^18.19.1 || ^20.11.1 || >=22.0.0", + "node": "^20.19.0 || ^22.12.0 || >=24.0.0", "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", "yarn": ">= 1.13.0" }, @@ -727,9 +1156,9 @@ } }, "node_modules/@angular/build/node_modules/ajv": { - "version": "8.17.1", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", - "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.18.0.tgz", + "integrity": "sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==", "dev": true, "license": "MIT", "dependencies": { @@ -761,24 +1190,6 @@ } } }, - "node_modules/@angular/build/node_modules/chokidar": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", - "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "readdirp": "^4.0.1" - }, - "engines": { - "node": ">= 14.16.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, "node_modules/@angular/build/node_modules/istanbul-lib-instrument": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz", @@ -796,92 +1207,37 @@ "node": ">=10" } }, - "node_modules/@angular/build/node_modules/readdirp": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.1.tgz", - "integrity": "sha512-h80JrZu/MHUZCyHu5ciuoI0+WxsCxzxJTILn6Fs8rxSnFPh+UVHYfeIxK1nVGugMqkfC4vJcBOYbkfkwYK0+gw==", + "node_modules/@angular/build/node_modules/rxjs": { + "version": "7.8.2", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.2.tgz", + "integrity": "sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==", "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "engines": { - "node": ">= 14.18.0" - }, - "funding": { - "type": "individual", - "url": "https://paulmillr.com/funding/" + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.1.0" } }, - "node_modules/@angular/build/node_modules/vite": { - "version": "6.0.7", - "resolved": "https://registry.npmjs.org/vite/-/vite-6.0.7.tgz", - "integrity": "sha512-RDt8r/7qx9940f8FcOIAH9PTViRrghKaK2K1jY3RaAURrEUbm9Du1mJ72G+jlhtG3WwodnfzY8ORQZbBavZEAQ==", + "node_modules/@angular/build/node_modules/semver": { + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", "dev": true, - "license": "MIT", - "dependencies": { - "esbuild": "^0.24.2", - "postcss": "^8.4.49", - "rollup": "^4.23.0" - }, + "license": "ISC", "bin": { - "vite": "bin/vite.js" + "semver": "bin/semver.js" }, "engines": { - "node": "^18.0.0 || ^20.0.0 || >=22.0.0" - }, - "funding": { - "url": "https://github.com/vitejs/vite?sponsor=1" - }, - "optionalDependencies": { - "fsevents": "~2.3.3" - }, - "peerDependencies": { - "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", - "jiti": ">=1.21.0", - "less": "*", - "lightningcss": "^1.21.0", - "sass": "*", - "sass-embedded": "*", - "stylus": "*", - "sugarss": "*", - "terser": "^5.16.0", - "tsx": "^4.8.1", - "yaml": "^2.4.2" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "jiti": { - "optional": true - }, - "less": { - "optional": true - }, - "lightningcss": { - "optional": true - }, - "sass": { - "optional": true - }, - "sass-embedded": { - "optional": true - }, - "stylus": { - "optional": true - }, - "sugarss": { - "optional": true - }, - "terser": { - "optional": true - }, - "tsx": { - "optional": true - }, - "yaml": { - "optional": true - } + "node": ">=10" + } + }, + "node_modules/@angular/build/node_modules/source-map": { + "version": "0.7.6", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.6.tgz", + "integrity": "sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">= 12" } }, "node_modules/@angular/cdk": { @@ -902,71 +1258,72 @@ } }, "node_modules/@angular/cli": { - "version": "19.1.4", - "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-19.1.4.tgz", - "integrity": "sha512-C1Z2OTLjUJIkLsay6RJ1rzY0Tdb1Mj/cBh9dZryDstuits8G0Tphe36hnLownnoHspFQfjSRtVzF4NwKiDlQRw==", + "version": "20.3.37", + "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-20.3.37.tgz", + "integrity": "sha512-MM+8IVZVNix1xZQF4PArQWwpOFrf3CmSNZKcqxLdtyiYQDcfgcpYic4BeMHQ/pv/y9qgKGbO0pU0Y8eEkaszlg==", "dev": true, "license": "MIT", "dependencies": { - "@angular-devkit/architect": "0.1901.4", - "@angular-devkit/core": "19.1.4", - "@angular-devkit/schematics": "19.1.4", - "@inquirer/prompts": "7.2.1", - "@listr2/prompt-adapter-inquirer": "2.0.18", - "@schematics/angular": "19.1.4", + "@angular-devkit/architect": "0.2003.37", + "@angular-devkit/core": "20.3.37", + "@angular-devkit/schematics": "20.3.37", + "@inquirer/prompts": "7.8.2", + "@listr2/prompt-adapter-inquirer": "3.0.1", + "@modelcontextprotocol/sdk": "1.30.0", + "@schematics/angular": "20.3.37", "@yarnpkg/lockfile": "1.1.0", + "algoliasearch": "5.35.0", "ini": "5.0.0", "jsonc-parser": "3.3.1", - "listr2": "8.2.5", - "npm-package-arg": "12.0.1", - "npm-pick-manifest": "10.0.0", - "pacote": "20.0.0", + "listr2": "9.0.1", + "npm-package-arg": "13.0.0", + "pacote": "21.5.1", "resolve": "1.22.10", - "semver": "7.6.3", - "symbol-observable": "4.0.0", - "yargs": "17.7.2" + "semver": "7.7.2", + "yargs": "18.0.0", + "zod": "4.1.13" }, "bin": { "ng": "bin/ng.js" }, "engines": { - "node": "^18.19.1 || ^20.11.1 || >=22.0.0", + "node": "^20.19.0 || ^22.12.0 || >=24.0.0", "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", "yarn": ">= 1.13.0" } }, "node_modules/@angular/cli/node_modules/@angular-devkit/architect": { - "version": "0.1901.4", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1901.4.tgz", - "integrity": "sha512-EoRTN8p7z0YnqOEIJKKu/NwSsCJxFkyGuZOobz7btnUWwlDqG8CNAhJgtlsOXPihwEkHEkzRIm1feDkWEjCYsA==", + "version": "0.2003.37", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.2003.37.tgz", + "integrity": "sha512-QJPV1khLavmdFNzn/2bhWCbbw3IRX/SCNtUAPh0Fr+ZninYNWC8xMSGGNivyYUQfLOZ1jP/1zgPaLCc8nJfQGg==", "dev": true, "license": "MIT", "dependencies": { - "@angular-devkit/core": "19.1.4", - "rxjs": "7.8.1" + "@angular-devkit/core": "20.3.37", + "rxjs": "7.8.2" }, "engines": { - "node": "^18.19.1 || ^20.11.1 || >=22.0.0", + "node": "^20.19.0 || ^22.12.0 || >=24.0.0", "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", "yarn": ">= 1.13.0" } }, "node_modules/@angular/cli/node_modules/@angular-devkit/core": { - "version": "19.1.4", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-19.1.4.tgz", - "integrity": "sha512-IDvSSiQgaixH2RtZtIpq1+XaHeuzMiTWfDyNF9DuYcU+S8CdG1SWrc8d59tmOrM/q+IRGyFgbBhTU1un52hNHw==", + "version": "20.3.37", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-20.3.37.tgz", + "integrity": "sha512-Mkh0QLXGdzPEqimmhhXn6nS2hoDQhWc7qrQrkvKVLaU9mh0ltd2U/3yOIIeZsRqgKRjbNW+VFlyC0z2unuiXxA==", "dev": true, "license": "MIT", "dependencies": { - "ajv": "8.17.1", + "ajv": "8.18.0", "ajv-formats": "3.0.1", "jsonc-parser": "3.3.1", - "picomatch": "4.0.2", - "rxjs": "7.8.1", - "source-map": "0.7.4" + "picomatch": "4.0.4", + "rxjs": "7.8.2", + "source-map": "0.7.6" }, "engines": { - "node": "^18.19.1 || ^20.11.1 || >=22.0.0", + "node": "^20.19.0 || ^22.12.0 || >=24.0.0", "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", "yarn": ">= 1.13.0" }, @@ -980,28 +1337,28 @@ } }, "node_modules/@angular/cli/node_modules/@angular-devkit/schematics": { - "version": "19.1.4", - "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-19.1.4.tgz", - "integrity": "sha512-EKXBkx6EDcvyO+U68w/eXicRaF92zSSzYNvR3tMZszEKYE6xBr3kZxY99PP54HXQHR4zYwLvFJVp+T6bnvte2w==", + "version": "20.3.37", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-20.3.37.tgz", + "integrity": "sha512-cut471ALIuZR+WyoQLFfypZDNTxwG35O7fEj6wTh65EliNISTkmZaqUOgqNjTT6xJ/YaDwZ9+CuSfTdyO0hMCg==", "dev": true, "license": "MIT", "dependencies": { - "@angular-devkit/core": "19.1.4", + "@angular-devkit/core": "20.3.37", "jsonc-parser": "3.3.1", "magic-string": "0.30.17", - "ora": "5.4.1", - "rxjs": "7.8.1" + "ora": "8.2.0", + "rxjs": "7.8.2" }, "engines": { - "node": "^18.19.1 || ^20.11.1 || >=22.0.0", + "node": "^20.19.0 || ^22.12.0 || >=24.0.0", "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", "yarn": ">= 1.13.0" } }, "node_modules/@angular/cli/node_modules/ajv": { - "version": "8.17.1", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", - "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.18.0.tgz", + "integrity": "sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==", "dev": true, "license": "MIT", "dependencies": { @@ -1033,103 +1390,307 @@ } } }, - "node_modules/@angular/cli/node_modules/chokidar": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", - "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", + "node_modules/@angular/cli/node_modules/ansi-regex": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.4.0.tgz", + "integrity": "sha512-KzTVk2tCWAHtYrvvvaP8bJKJq2pVinhLcGEQdtLIYPbmNGNyYe8QwNaTUYQp2J7/vIsUKt5QCqAfUkYyG9DkOw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@angular/cli/node_modules/chalk": { + "version": "5.6.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.6.2.tgz", + "integrity": "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@angular/cli/node_modules/cli-cursor": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-5.0.0.tgz", + "integrity": "sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==", "dev": true, "license": "MIT", - "optional": true, - "peer": true, "dependencies": { - "readdirp": "^4.0.1" + "restore-cursor": "^5.0.0" }, "engines": { - "node": ">= 14.16.0" + "node": ">=18" }, "funding": { - "url": "https://paulmillr.com/funding/" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@angular/cli/node_modules/readdirp": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.1.tgz", - "integrity": "sha512-h80JrZu/MHUZCyHu5ciuoI0+WxsCxzxJTILn6Fs8rxSnFPh+UVHYfeIxK1nVGugMqkfC4vJcBOYbkfkwYK0+gw==", + "node_modules/@angular/cli/node_modules/emoji-regex": { + "version": "10.6.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.6.0.tgz", + "integrity": "sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==", + "dev": true, + "license": "MIT" + }, + "node_modules/@angular/cli/node_modules/is-interactive": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-2.0.0.tgz", + "integrity": "sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==", "dev": true, "license": "MIT", - "optional": true, - "peer": true, "engines": { - "node": ">= 14.18.0" + "node": ">=12" }, "funding": { - "type": "individual", - "url": "https://paulmillr.com/funding/" + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@angular/cli/node_modules/is-unicode-supported": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-2.1.0.tgz", + "integrity": "sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@angular/cli/node_modules/log-symbols": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-6.0.0.tgz", + "integrity": "sha512-i24m8rpwhmPIS4zscNzK6MSEhk0DUWa/8iYQWxhffV8jkI4Phvs3F+quL5xvS0gdQR0FyTCMMH33Y78dDTzzIw==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^5.3.0", + "is-unicode-supported": "^1.3.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@angular/cli/node_modules/log-symbols/node_modules/is-unicode-supported": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz", + "integrity": "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@angular/cli/node_modules/onetime": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-7.0.0.tgz", + "integrity": "sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-function": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@angular/cli/node_modules/ora": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/ora/-/ora-8.2.0.tgz", + "integrity": "sha512-weP+BZ8MVNnlCm8c0Qdc1WSWq4Qn7I+9CJGm7Qali6g44e/PUzbjNqJX5NJ9ljlNMosfJvg1fKEGILklK9cwnw==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^5.3.0", + "cli-cursor": "^5.0.0", + "cli-spinners": "^2.9.2", + "is-interactive": "^2.0.0", + "is-unicode-supported": "^2.0.0", + "log-symbols": "^6.0.0", + "stdin-discarder": "^0.2.2", + "string-width": "^7.2.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@angular/cli/node_modules/restore-cursor": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-5.1.0.tgz", + "integrity": "sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==", + "dev": true, + "license": "MIT", + "dependencies": { + "onetime": "^7.0.0", + "signal-exit": "^4.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@angular/cli/node_modules/rxjs": { + "version": "7.8.2", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.2.tgz", + "integrity": "sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/@angular/cli/node_modules/semver": { + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@angular/cli/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@angular/cli/node_modules/source-map": { + "version": "0.7.6", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.6.tgz", + "integrity": "sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">= 12" + } + }, + "node_modules/@angular/cli/node_modules/string-width": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", + "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^10.3.0", + "get-east-asian-width": "^1.0.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@angular/cli/node_modules/strip-ansi": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz", + "integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.2.2" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, "node_modules/@angular/common": { - "version": "19.1.3", - "resolved": "https://registry.npmjs.org/@angular/common/-/common-19.1.3.tgz", - "integrity": "sha512-r1P0W6FKrON83szIJboF8z6UNCVL4HIxyD+nhmHMMT/iJpu4kDHVugaN/+w2jYLb4oelAJK5xzkzA+1IaHpzLg==", + "version": "20.3.33", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-20.3.33.tgz", + "integrity": "sha512-PMfSF2j/C3gGHPp6O6c/BL+32msNzhmkzavrxtmBSxIGAOB5Q4KNktnIuolVrvVvu/0UrZj1/zwT91r/GKRaeA==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" }, "engines": { - "node": "^18.19.1 || ^20.11.1 || >=22.0.0" + "node": "^20.19.0 || ^22.12.0 || >=24.0.0" }, "peerDependencies": { - "@angular/core": "19.1.3", + "@angular/core": "20.3.33", "rxjs": "^6.5.3 || ^7.4.0" } }, "node_modules/@angular/compiler": { - "version": "19.1.3", - "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-19.1.3.tgz", - "integrity": "sha512-omX5Gyt3zlJVTUteO2YxsqYWtAIpkvs8kRYSUsLTi79V1gbGo+J1TawFuyBTrWxj4UtTGvwmDgZxiCIwMtP5KQ==", + "version": "20.3.33", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-20.3.33.tgz", + "integrity": "sha512-tqKZaapDV05r2SXA6bOzTSpiNhSoqZR9Usuacs5myMpbpt4gwNMAZkgaIoIcPutnhbd3qT+Og54VCVvCOXF8pg==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" }, "engines": { - "node": "^18.19.1 || ^20.11.1 || >=22.0.0" - }, - "peerDependencies": { - "@angular/core": "19.1.3" - }, - "peerDependenciesMeta": { - "@angular/core": { - "optional": true - } + "node": "^20.19.0 || ^22.12.0 || >=24.0.0" } }, "node_modules/@angular/compiler-cli": { - "version": "19.1.3", - "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-19.1.3.tgz", - "integrity": "sha512-nDBvZenQECcr9CClmTp3iJNilRQ6oDKFgBkhlWffEFBx0Z6kBA36MXKKLuCkf31D+NGmt5VJlAkl8Ax8BJ9qJw==", + "version": "20.3.33", + "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-20.3.33.tgz", + "integrity": "sha512-NKE4N4ssXysHLJQ7xVqvAv/yf3JfJxaFz5H+Ue+EnYToAmTxXe7uyt2MPRIydef/H63n7O9uphVp5P5GkRxVuA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/core": "7.26.0", + "@babel/core": "7.29.7", "@jridgewell/sourcemap-codec": "^1.4.14", "chokidar": "^4.0.0", "convert-source-map": "^1.5.1", "reflect-metadata": "^0.2.0", "semver": "^7.0.0", "tslib": "^2.3.0", - "yargs": "^17.2.1" + "yargs": "^18.0.0" }, "bin": { "ng-xi18n": "bundles/src/bin/ng_xi18n.js", - "ngc": "bundles/src/bin/ngc.js", - "ngcc": "bundles/ngcc/index.js" + "ngc": "bundles/src/bin/ngc.js" }, "engines": { - "node": "^18.19.1 || ^20.11.1 || >=22.0.0" + "node": "^20.19.0 || ^22.12.0 || >=24.0.0" }, "peerDependencies": { - "@angular/compiler": "19.1.3", - "typescript": ">=5.5 <5.8" + "@angular/compiler": "20.3.33", + "typescript": ">=5.8 <6.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, "node_modules/@angular/compiler-cli/node_modules/chokidar": { @@ -1149,9 +1710,9 @@ } }, "node_modules/@angular/compiler-cli/node_modules/readdirp": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.1.tgz", - "integrity": "sha512-h80JrZu/MHUZCyHu5ciuoI0+WxsCxzxJTILn6Fs8rxSnFPh+UVHYfeIxK1nVGugMqkfC4vJcBOYbkfkwYK0+gw==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", + "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", "dev": true, "license": "MIT", "engines": { @@ -1163,36 +1724,45 @@ } }, "node_modules/@angular/core": { - "version": "19.1.3", - "resolved": "https://registry.npmjs.org/@angular/core/-/core-19.1.3.tgz", - "integrity": "sha512-Hh1eHvi+y+gsTRODiEEEWnRj5zqv9WNoou1KmQ1mv1NTOf0Pv61Hg9P2rBWDr0mPIXFSzqUKjyzW30BgdQ+AEA==", + "version": "20.3.33", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-20.3.33.tgz", + "integrity": "sha512-Ld/AhODjPf8c14xUOWUnJygaZb2TsRy99ZhwFkEsRJOzqauzEFovb8Hb2MEaB1e4RolADN+HWxPvE4n+u3HFmA==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" }, "engines": { - "node": "^18.19.1 || ^20.11.1 || >=22.0.0" + "node": "^20.19.0 || ^22.12.0 || >=24.0.0" }, "peerDependencies": { + "@angular/compiler": "20.3.33", "rxjs": "^6.5.3 || ^7.4.0", "zone.js": "~0.15.0" + }, + "peerDependenciesMeta": { + "@angular/compiler": { + "optional": true + }, + "zone.js": { + "optional": true + } } }, "node_modules/@angular/forms": { - "version": "19.1.3", - "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-19.1.3.tgz", - "integrity": "sha512-M6eEJBysJm9zSUhm8ggljZCsgHLccZl70P34tyddb8erh9it2uoOXW0aVaZgDt1UAiF5a1EzjdVdN4TZTT/OGA==", + "version": "20.3.33", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-20.3.33.tgz", + "integrity": "sha512-UmwKS9toyYhgq8LEbvFxNBfD9dUXr+B6Y5OTwBGwIRy8RhUrOiLwrXTRr+2y/yREGgDtGAWl8zQRVMVk2BNybw==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" }, "engines": { - "node": "^18.19.1 || ^20.11.1 || >=22.0.0" + "node": "^20.19.0 || ^22.12.0 || >=24.0.0" }, "peerDependencies": { - "@angular/common": "19.1.3", - "@angular/core": "19.1.3", - "@angular/platform-browser": "19.1.3", + "@angular/common": "20.3.33", + "@angular/core": "20.3.33", + "@angular/platform-browser": "20.3.33", "rxjs": "^6.5.3 || ^7.4.0" } }, @@ -1215,20 +1785,20 @@ } }, "node_modules/@angular/platform-browser": { - "version": "19.1.3", - "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-19.1.3.tgz", - "integrity": "sha512-bLgnM2hRyzUdoWRoUhe+IMenlr74EvrgwyG7anJ27bjg5PcvhQPXrGqU0hri5yPDb9SHVJZminr7OjNCN8QJkQ==", + "version": "20.3.33", + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-20.3.33.tgz", + "integrity": "sha512-od2uw6ee68r5TczjoYDsJuIDWoH4op3/req3sdeFtVHWdQgzf/AhM0B5ZBVRya8THon/b/SDHdhxOrUTgcszTA==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" }, "engines": { - "node": "^18.19.1 || ^20.11.1 || >=22.0.0" + "node": "^20.19.0 || ^22.12.0 || >=24.0.0" }, "peerDependencies": { - "@angular/animations": "19.1.3", - "@angular/common": "19.1.3", - "@angular/core": "19.1.3" + "@angular/animations": "20.3.33", + "@angular/common": "20.3.33", + "@angular/core": "20.3.33" }, "peerDependenciesMeta": { "@angular/animations": { @@ -1237,60 +1807,61 @@ } }, "node_modules/@angular/platform-browser-dynamic": { - "version": "19.1.3", - "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-19.1.3.tgz", - "integrity": "sha512-rfsHu/+wB8YLPjsHKd/Go0SI8zP2gjMkebUHM9SbvVLXEAkxFubcF2htVKbKu8eTncfEJEXD6+3gRAjh5SLrKw==", + "version": "20.3.33", + "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-20.3.33.tgz", + "integrity": "sha512-IwElnTCUW1ZZRr/pw6IRb9dRyNF8KBOh9QoGcmTk6uRAWynenYAe5yICFvgOKozqOHBarFNv8h4jXXJ/W8TcfA==", + "deprecated": "@angular/platform-browser-dynamic is deprecated. Use `@angular/platform-browser` instead.", "license": "MIT", "dependencies": { "tslib": "^2.3.0" }, "engines": { - "node": "^18.19.1 || ^20.11.1 || >=22.0.0" + "node": "^20.19.0 || ^22.12.0 || >=24.0.0" }, "peerDependencies": { - "@angular/common": "19.1.3", - "@angular/compiler": "19.1.3", - "@angular/core": "19.1.3", - "@angular/platform-browser": "19.1.3" + "@angular/common": "20.3.33", + "@angular/compiler": "20.3.33", + "@angular/core": "20.3.33", + "@angular/platform-browser": "20.3.33" } }, "node_modules/@angular/router": { - "version": "19.1.3", - "resolved": "https://registry.npmjs.org/@angular/router/-/router-19.1.3.tgz", - "integrity": "sha512-DJ9BgvtxJV6xohaPQXPdBsFCZoQIEq2OPDyKcoW4L0ST4kIIFpHyI6wJ+AlPnLkhSwmOOoHciH0oxZ2xPVxmiQ==", + "version": "20.3.33", + "resolved": "https://registry.npmjs.org/@angular/router/-/router-20.3.33.tgz", + "integrity": "sha512-M55ibvrJSWGP7sGf+uZFvC66cxRkFlS4TjtI4Owus4gDCqW69/jhUo8pNGXf0T3QpO3iorbHScZfGwVmLATLLA==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" }, "engines": { - "node": "^18.19.1 || ^20.11.1 || >=22.0.0" + "node": "^20.19.0 || ^22.12.0 || >=24.0.0" }, "peerDependencies": { - "@angular/common": "19.1.3", - "@angular/core": "19.1.3", - "@angular/platform-browser": "19.1.3", + "@angular/common": "20.3.33", + "@angular/core": "20.3.33", + "@angular/platform-browser": "20.3.33", "rxjs": "^6.5.3 || ^7.4.0" } }, "node_modules/@babel/code-frame": { - "version": "7.26.2", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", - "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.7.tgz", + "integrity": "sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-validator-identifier": "^7.25.9", + "@babel/helper-validator-identifier": "^7.29.7", "js-tokens": "^4.0.0", - "picocolors": "^1.0.0" + "picocolors": "^1.1.1" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/compat-data": { - "version": "7.26.5", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.5.tgz", - "integrity": "sha512-XvcZi1KWf88RVbF9wn8MN6tYFloU5qX8KjuF3E1PVBmJ9eypXfs4GRiJwLuTZL0iSnJUKn1BFPa5BPZZJyFzPg==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.29.7.tgz", + "integrity": "sha512-locTkQyKvwIEgBzVrn8693ebc97F2U8ZHjbXwDXJ5Fn2TCpNwTlKcaKLkdHop5c/icOFE7qt7Q9JC5hnKNa6Gg==", "dev": true, "license": "MIT", "engines": { @@ -1298,22 +1869,22 @@ } }, "node_modules/@babel/core": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.0.tgz", - "integrity": "sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.26.0", - "@babel/generator": "^7.26.0", - "@babel/helper-compilation-targets": "^7.25.9", - "@babel/helper-module-transforms": "^7.26.0", - "@babel/helpers": "^7.26.0", - "@babel/parser": "^7.26.0", - "@babel/template": "^7.25.9", - "@babel/traverse": "^7.25.9", - "@babel/types": "^7.26.0", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.29.7.tgz", + "integrity": "sha512-RgHBCvtjbOK2gXSNBNIkNoEc9qoVEtau3hj8gEqKQuL3HZAibKarWFEI3Lfm6EYKkLalOh8eSrj9b+ch9H/VBA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.29.7", + "@babel/generator": "^7.29.7", + "@babel/helper-compilation-targets": "^7.29.7", + "@babel/helper-module-transforms": "^7.29.7", + "@babel/helpers": "^7.29.7", + "@babel/parser": "^7.29.7", + "@babel/template": "^7.29.7", + "@babel/traverse": "^7.29.7", + "@babel/types": "^7.29.7", + "@jridgewell/remapping": "^2.3.5", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -1328,6 +1899,23 @@ "url": "https://opencollective.com/babel" } }, + "node_modules/@babel/core/node_modules/@babel/generator": { + "version": "7.29.8", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.8.tgz", + "integrity": "sha512-gZbepsdh3WDtgZKWL+vTPh71LSBrm/Y4/QDZBVCcYfmeTEEuoOYwlSy+G1StfJg+/Zy550u/3TATbm7qDbbMtg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.29.8", + "@babel/types": "^7.29.8", + "@jridgewell/gen-mapping": "^0.3.12", + "@jridgewell/trace-mapping": "^0.3.28", + "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/core/node_modules/convert-source-map": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", @@ -1344,16 +1932,16 @@ } }, "node_modules/@babel/generator": { - "version": "7.26.3", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.3.tgz", - "integrity": "sha512-6FF/urZvD0sTeO7k6/B15pMLC4CHUv1426lzr3N01aHJTl046uCAh9LXW/fzeXXjPNCJ6iABW5XaWOsIZB93aQ==", + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.3.tgz", + "integrity": "sha512-3lSpxGgvnmZznmBkCRnVREPUFJv2wrv9iAoFDvADJc0ypmdOxdUtcLeBgBJ6zE0PMeTKnxeQzyk0xTBq4Ep7zw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/parser": "^7.26.3", - "@babel/types": "^7.26.3", - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.25", + "@babel/parser": "^7.28.3", + "@babel/types": "^7.28.2", + "@jridgewell/gen-mapping": "^0.3.12", + "@jridgewell/trace-mapping": "^0.3.28", "jsesc": "^3.0.2" }, "engines": { @@ -1361,27 +1949,27 @@ } }, "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.9.tgz", - "integrity": "sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==", + "version": "7.27.3", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.3.tgz", + "integrity": "sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.25.9" + "@babel/types": "^7.27.3" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.26.5", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.26.5.tgz", - "integrity": "sha512-IXuyn5EkouFJscIDuFF5EsiSolseme1s0CZB+QxVugqJLYmKdxI1VfIBOst0SUu4rnk2Z7kqTwmoO1lp3HIfnA==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.29.7.tgz", + "integrity": "sha512-wem6WaBj4NaVYVdNhLPPVacES6ZJ+KBBfSkTMD3YZxbP3rm3Di85tJU5ljaUNhaOynt+Aj0xruhYuzQBt8n71g==", "dev": true, "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.26.5", - "@babel/helper-validator-option": "^7.25.9", + "@babel/compat-data": "^7.29.7", + "@babel/helper-validator-option": "^7.29.7", "browserslist": "^4.24.0", "lru-cache": "^5.1.1", "semver": "^6.3.1" @@ -1401,18 +1989,18 @@ } }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.25.9.tgz", - "integrity": "sha512-UTZQMvt0d/rSz6KI+qdu7GQze5TIajwTS++GUozlw8VBJDEOAqSXwm1WvmYEZwqdqSGQshRocPDqrt4HBZB3fQ==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.29.7.tgz", + "integrity": "sha512-IY3ZD9Tmooqr3TUhc3DUWxiuo8xx1DWLhd5M7hQ+ZWJamqM2BbalrBJb2MisSLoYorOj75U03qULCxQTY9r3hg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.9", - "@babel/helper-member-expression-to-functions": "^7.25.9", - "@babel/helper-optimise-call-expression": "^7.25.9", - "@babel/helper-replace-supers": "^7.25.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9", - "@babel/traverse": "^7.25.9", + "@babel/helper-annotate-as-pure": "^7.29.7", + "@babel/helper-member-expression-to-functions": "^7.29.7", + "@babel/helper-optimise-call-expression": "^7.29.7", + "@babel/helper-replace-supers": "^7.29.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.29.7", + "@babel/traverse": "^7.29.7", "semver": "^6.3.1" }, "engines": { @@ -1422,6 +2010,19 @@ "@babel/core": "^7.0.0" } }, + "node_modules/@babel/helper-create-class-features-plugin/node_modules/@babel/helper-annotate-as-pure": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.29.7.tgz", + "integrity": "sha512-OoK6239jHPuSQOoS0kfTVKn0b/rVTk0seKq4Gd2UMLtmOVLjDC0ki3e+c90Trqv2gMfvJFqkiljrr568+qddiw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", @@ -1433,14 +2034,14 @@ } }, "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.26.3", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.26.3.tgz", - "integrity": "sha512-G7ZRb40uUgdKOQqPLjfD12ZmGA54PzqDFUv2BKImnC9QIfGhIHKvVML0oN8IUiDq4iRqpq74ABpvOaerfWdong==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.29.7.tgz", + "integrity": "sha512-907Uymvqgg1dwUA+7IGwFAOSYzQOuzPXKNJ1yxzwPffzkYFg2q2eHi1fIOs6sXkG9NbIUMunnUlkYsfRFNvomg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.9", - "regexpu-core": "^6.2.0", + "@babel/helper-annotate-as-pure": "^7.29.7", + "regexpu-core": "^6.3.1", "semver": "^6.3.1" }, "engines": { @@ -1450,6 +2051,19 @@ "@babel/core": "^7.0.0" } }, + "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/@babel/helper-annotate-as-pure": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.29.7.tgz", + "integrity": "sha512-OoK6239jHPuSQOoS0kfTVKn0b/rVTk0seKq4Gd2UMLtmOVLjDC0ki3e+c90Trqv2gMfvJFqkiljrr568+qddiw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/semver": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", @@ -1461,60 +2075,117 @@ } }, "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.3.tgz", - "integrity": "sha512-HK7Bi+Hj6H+VTHA3ZvBis7V/6hu9QuTrnMXNybfUf2iiuU/N97I8VjB+KbhFF8Rld/Lx5MzoCwPCpPjfK+n8Cg==", + "version": "0.6.8", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.8.tgz", + "integrity": "sha512-47UwBLPpQi1NoWzLuHNjRoHlYXMwIJoBf7MFou6viC/sIHWYygpvr0B6IAyh5sBdA2nr2LPIRww8lfaUVQINBA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-compilation-targets": "^7.22.6", - "@babel/helper-plugin-utils": "^7.22.5", - "debug": "^4.1.1", + "@babel/helper-compilation-targets": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6", + "debug": "^4.4.3", "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2" + "resolve": "^1.22.11" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, - "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.25.9.tgz", - "integrity": "sha512-wbfdZ9w5vk0C0oyHqAJbc62+vet5prjj01jjJ8sKn3j9h3MQQlflEdXYvuqRWjHnM12coDEqiC1IRCi0U/EKwQ==", + "node_modules/@babel/helper-define-polyfill-provider/node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/traverse": "^7.25.9", - "@babel/types": "^7.25.9" + "ms": "^2.1.3" }, "engines": { - "node": ">=6.9.0" + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, - "node_modules/@babel/helper-module-imports": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz", - "integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==", + "node_modules/@babel/helper-define-polyfill-provider/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "dev": true, - "license": "MIT", - "dependencies": { - "@babel/traverse": "^7.25.9", - "@babel/types": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - } + "license": "MIT" }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz", - "integrity": "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==", + "node_modules/@babel/helper-define-polyfill-provider/node_modules/resolve": { + "version": "1.22.12", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.12.tgz", + "integrity": "sha512-TyeJ1zif53BPfHootBGwPRYT1RUt6oGWsaQr8UyZW/eAm9bKoijtvruSDEmZHm92CwS9nj7/fWttqPCgzep8CA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-module-imports": "^7.25.9", - "@babel/helper-validator-identifier": "^7.25.9", - "@babel/traverse": "^7.25.9" + "es-errors": "^1.3.0", + "is-core-module": "^2.16.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/@babel/helper-globals": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.29.7.tgz", + "integrity": "sha512-3nQVUAtvkKH9zahfWgw96Jc/uFOmjACE1kQz82E2lqWmHBgjzbNlsC22nuQTfahmWeQtTq5nQ/4Nnd2A1wj4zA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.29.7.tgz", + "integrity": "sha512-j+7JYmk1JYDtACIGj0QJqqWZjoUpMoEikQGADMaHgCMCSDqd2+P32rfcibUNrGOMWrlzK1WJBdxrB3JJQZwWtg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.29.7", + "@babel/types": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.29.7.tgz", + "integrity": "sha512-ejHwrQQYcm9xnTivShn2IDOlIzInN34AXskvq9QicvCtEzq1Vzclu/tKF8Jq1Cg8JG2GL6/EmjgsCT7lXepE3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.29.7", + "@babel/types": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.29.7.tgz", + "integrity": "sha512-UPUVSyXbOh627KiCIGQSgwWzGeBKLkaJ9PJEdrngIwMSzxLR4jS4+f1f1jb7VzBbg8nFLaYotvVPFCTqdrmTAg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.29.7", + "@babel/helper-validator-identifier": "^7.29.7", + "@babel/traverse": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1524,22 +2195,22 @@ } }, "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.25.9.tgz", - "integrity": "sha512-FIpuNaz5ow8VyrYcnXQTDRGvV6tTjkNtCK/RYNDXGSLlUD6cBuQTSw43CShGxjvfBTfcUA/r6UhUCbtYqkhcuQ==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.29.7.tgz", + "integrity": "sha512-+kmGVjcT9RGYzoDwdwEqEvGgKe3BYq+O1iGzjFubaNgZHwYHP6lsF2Yghf4kEuv9BV7tYDZ913aBW9am6YKong==", "dev": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.25.9" + "@babel/types": "^7.29.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.26.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.26.5.tgz", - "integrity": "sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.29.7.tgz", + "integrity": "sha512-G7sHYigPY17oO5SYWnfD/0MTBwVR781S/JI643e/JhUYgVgWE/61SoW3NH9KWUKyKq5LVh3npif99Wkt6j86Jw==", "dev": true, "license": "MIT", "engines": { @@ -1547,15 +2218,15 @@ } }, "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.25.9.tgz", - "integrity": "sha512-IZtukuUeBbhgOcaW2s06OXTzVNJR0ybm4W5xC1opWFFJMZbwRj5LCk+ByYH7WdZPZTt8KnFwA8pvjN2yqcPlgw==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.29.7.tgz", + "integrity": "sha512-16AMiW26DbXWBbr3B8wNozKM0ydMLB892vaOaJW/fPJdnT8vJk5sdkQcU/isqUxyCE0cEoa8wZOcbgDuC4b6Og==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.9", - "@babel/helper-wrap-function": "^7.25.9", - "@babel/traverse": "^7.25.9" + "@babel/helper-annotate-as-pure": "^7.29.7", + "@babel/helper-wrap-function": "^7.29.7", + "@babel/traverse": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1564,16 +2235,29 @@ "@babel/core": "^7.0.0" } }, + "node_modules/@babel/helper-remap-async-to-generator/node_modules/@babel/helper-annotate-as-pure": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.29.7.tgz", + "integrity": "sha512-OoK6239jHPuSQOoS0kfTVKn0b/rVTk0seKq4Gd2UMLtmOVLjDC0ki3e+c90Trqv2gMfvJFqkiljrr568+qddiw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/helper-replace-supers": { - "version": "7.26.5", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.26.5.tgz", - "integrity": "sha512-bJ6iIVdYX1YooY2X7w1q6VITt+LnUILtNk7zT78ykuwStx8BauCzxvFqFaHjOpW1bVnSUM1PN1f0p5P21wHxvg==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.29.7.tgz", + "integrity": "sha512-atfGXWSeCiF4DnKZIfmJfQRkSw9b9gNNXR1kqKjbhG4pGYCOnkp8OcTB8E3NXjBu8NpheSnOeNKz8KT7UNFTmQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-member-expression-to-functions": "^7.25.9", - "@babel/helper-optimise-call-expression": "^7.25.9", - "@babel/traverse": "^7.26.5" + "@babel/helper-member-expression-to-functions": "^7.29.7", + "@babel/helper-optimise-call-expression": "^7.29.7", + "@babel/traverse": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1583,14 +2267,14 @@ } }, "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.25.9.tgz", - "integrity": "sha512-K4Du3BFa3gvyhzgPcntrkDgZzQaq6uozzcpGbOO1OEJaI+EJdqWIMTLgFgQf6lrfiDFo5FU+BxKepI9RmZqahA==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.29.7.tgz", + "integrity": "sha512-brcMGQaVzIeUb+6/bs1Av0f8YuNNjKY2JyvfRCsFuFsdKccEQ5Ges2y74D74NZ1Rz8lKJ9ksJkfqwQFJ/iNEyQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/traverse": "^7.25.9", - "@babel/types": "^7.25.9" + "@babel/traverse": "^7.29.7", + "@babel/types": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1610,9 +2294,9 @@ } }, "node_modules/@babel/helper-string-parser": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", - "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.29.7.tgz", + "integrity": "sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==", "dev": true, "license": "MIT", "engines": { @@ -1620,9 +2304,9 @@ } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", - "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.29.7.tgz", + "integrity": "sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==", "dev": true, "license": "MIT", "engines": { @@ -1630,9 +2314,9 @@ } }, "node_modules/@babel/helper-validator-option": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz", - "integrity": "sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.29.7.tgz", + "integrity": "sha512-N9ZErrD+yW5geCDtBqnOoxmR8+tNKiGuxKlDpuJxfsqpa2dFcexaziGAE/qoHLiDDreVNMupxGmSoNlyvsA3gw==", "dev": true, "license": "MIT", "engines": { @@ -1640,42 +2324,42 @@ } }, "node_modules/@babel/helper-wrap-function": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.25.9.tgz", - "integrity": "sha512-ETzz9UTjQSTmw39GboatdymDq4XIQbR8ySgVrylRhPOFpsd+JrKHIuF0de7GCWmem+T4uC5z7EZguod7Wj4A4g==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.29.7.tgz", + "integrity": "sha512-iES0Skag9ERIF68aXadpO6dbXa03mNWK3sEqJaMnLNs/eC3l0lkImdfoy6Y09/SfkpawdAB4RjQ7PVA7TcVGdw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/template": "^7.25.9", - "@babel/traverse": "^7.25.9", - "@babel/types": "^7.25.9" + "@babel/template": "^7.29.7", + "@babel/traverse": "^7.29.7", + "@babel/types": "^7.29.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helpers": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.26.0.tgz", - "integrity": "sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.29.7.tgz", + "integrity": "sha512-1k2lAGRMfHTcwuNYcCNUmaUffmQv8KWMfh2iJUUeRlwlwH4FdNG7mfPI10NPfLHJFThE4Tyr4mv7kTNZOiPuBg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/template": "^7.25.9", - "@babel/types": "^7.26.0" + "@babel/template": "^7.29.7", + "@babel/types": "^7.29.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/parser": { - "version": "7.26.5", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.5.tgz", - "integrity": "sha512-SRJ4jYmXRqV1/Xc+TIVG84WjHBXKlxO9sHQnA2Pf12QQEAp1LOh6kDzNHXcUnbH1QI0FDoPPVOt+vyUDucxpaw==", + "version": "7.29.9", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.9.tgz", + "integrity": "sha512-CjXrNHTnvqBVqHgdBysY3vk2T8tpJHb5/RMeHJBTyVa9xgugCB0CJTx/3oO8RV2QRQP391RWpB7D6hLjm8V9uA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.26.5" + "@babel/types": "^7.29.8" }, "bin": { "parser": "bin/babel-parser.js" @@ -1685,14 +2369,14 @@ } }, "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.25.9.tgz", - "integrity": "sha512-ZkRyVkThtxQ/J6nv3JFYv1RYY+JT5BvU0y3k5bWrmuG4woXypRa4PXmm9RhOwodRkYFWqC0C0cqcJ4OqR7kW+g==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.29.7.tgz", + "integrity": "sha512-j8SrR0zLZrRsC09DlszEx8FpMiwukKffYXMK0d5LmOglO7vGG6sz/BR/20yHqWH+Lnn31JTt2PE3hIWNgM2J6w==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/traverse": "^7.25.9" + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/traverse": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1702,13 +2386,13 @@ } }, "node_modules/@babel/plugin-bugfix-safari-class-field-initializer-scope": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.25.9.tgz", - "integrity": "sha512-MrGRLZxLD/Zjj0gdU15dfs+HH/OXvnw/U4jJD8vpcP2CJQapPEv1IWwjc/qMg7ItBlPwSv1hRBbb7LeuANdcnw==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.29.7.tgz", + "integrity": "sha512-r8j8escF+U2FUHo0KOhPUdMzUO+jp9fInva6+ACVAF3Y97Ev+5iNZwiqTghmzNeWwDkOPlYuTcfb1vDaoZKmAQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1718,13 +2402,13 @@ } }, "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.25.9.tgz", - "integrity": "sha512-2qUwwfAFpJLZqxd02YW9btUCZHl+RFvdDkNfZwaIJrvB8Tesjsk8pEQkTvGwZXLqXUx/2oyY3ySRhm6HOXuCug==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.29.7.tgz", + "integrity": "sha512-GE1TFSiuFeGsCxmYXZl8HwoPrVlwe4rHPFE8weieGKZqnDORK+Ar3vgWMgW+AOxQ6/2TgLSKx9p6W7O4rC6qgQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1734,15 +2418,15 @@ } }, "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.25.9.tgz", - "integrity": "sha512-6xWgLZTJXwilVjlnV7ospI3xi+sl8lN8rXXbBD6vYn3UYDlGsag8wrZkKcSI8G6KgqKP7vNFaDgeDnfAABq61g==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.29.7.tgz", + "integrity": "sha512-QQt9qKHZ2sg/kivaLr7lnQr8HVrQDdBNSfCsTjiDxRuX/K5ORyKq+Bu8Xr0cDE3Dfkv0cw28Ve0EKyKMvulkOw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9", - "@babel/plugin-transform-optional-chaining": "^7.25.9" + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.29.7", + "@babel/plugin-transform-optional-chaining": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1752,14 +2436,14 @@ } }, "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.25.9.tgz", - "integrity": "sha512-aLnMXYPnzwwqhYSCyXfKkIkYgJ8zv9RK+roo9DkTXz38ynIhd9XCbN08s3MGvqL2MYGVUGdRQLL/JqBIeJhJBg==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.29.7.tgz", + "integrity": "sha512-pn6QacGLgvCcwc+syUhKE/qSjV2D1IHDB84RNxWYSt1mW3K/SCtjinZ2p0cETJxAWBjPy3K/1lHwG5BjjPxNlw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/traverse": "^7.25.9" + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/traverse": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1782,13 +2466,13 @@ } }, "node_modules/@babel/plugin-syntax-import-assertions": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.26.0.tgz", - "integrity": "sha512-QCWT5Hh830hK5EQa7XzuqIkQU9tT/whqbDz7kuaZMHFl1inRRg7JnuAEOQ0Ur0QUl0NufCk1msK2BeY79Aj/eg==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.29.7.tgz", + "integrity": "sha512-/An1OCBN93thpBAGyfsK2pcf0jvju1SAtKkL2Ny++B5Sy6sqgzXDQH1cZxWbF96Wuk+bn41MDA9bLd4VVAw6rw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1798,13 +2482,13 @@ } }, "node_modules/@babel/plugin-syntax-import-attributes": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.26.0.tgz", - "integrity": "sha512-e2dttdsJ1ZTpi3B9UYGLw41hifAubg19AtCu/2I/F1QNVclOBr1dYpTdmdyZ84Xiz43BS/tCUkMAZNLv12Pi+A==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.29.7.tgz", + "integrity": "sha512-zGYcYfq/WmZ4V+kBIXQon9dSSc8ircGZqw9ZaNhhGj9nZkeBu1jHLBDQqYYi5WA9uawvA2sIMbry2nCFhf5Djg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1831,13 +2515,13 @@ } }, "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.25.9.tgz", - "integrity": "sha512-6jmooXYIwn9ca5/RylZADJ+EnSxVUS5sjeJ9UPk6RWRzXCmOJCy6dqItPJFpw2cuCangPK4OYr5uhGKcmrm5Qg==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.29.7.tgz", + "integrity": "sha512-N7zArUXWzAMzm+/N0uPBeVB3Fam5lMxtUwMmDK5f/IBBS7a7p1qeUoxd/6CckXoxUdgsntq1Dh8xNW06maZbDQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1847,15 +2531,15 @@ } }, "node_modules/@babel/plugin-transform-async-generator-functions": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.25.9.tgz", - "integrity": "sha512-RXV6QAzTBbhDMO9fWwOmwwTuYaiPbggWQ9INdZqAYeSHyG7FzQ+nOZaUUjNwKv9pV3aE4WFqFm1Hnbci5tBCAw==", + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.28.0.tgz", + "integrity": "sha512-BEOdvX4+M765icNPZeidyADIvQ1m1gmunXufXxvRESy/jNNyfovIqUyE7MVgGBjWktCoJlzvFA1To2O4ymIO3Q==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-remap-async-to-generator": "^7.25.9", - "@babel/traverse": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-remap-async-to-generator": "^7.27.1", + "@babel/traverse": "^7.28.0" }, "engines": { "node": ">=6.9.0" @@ -1865,15 +2549,15 @@ } }, "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.25.9.tgz", - "integrity": "sha512-NT7Ejn7Z/LjUH0Gv5KsBCxh7BH3fbLTV0ptHvpeMvrt3cPThHfJfst9Wrb7S8EvJ7vRTFI7z+VAvFVEQn/m5zQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.27.1.tgz", + "integrity": "sha512-NREkZsZVJS4xmTr8qzE5y8AfIPqsdQfRuUiLRTEzb7Qii8iFWCyDKaUV2c0rCuh4ljDZ98ALHP/PetiBV2nddA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-module-imports": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-remap-async-to-generator": "^7.25.9" + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-remap-async-to-generator": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1883,13 +2567,13 @@ } }, "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.26.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.26.5.tgz", - "integrity": "sha512-chuTSY+hq09+/f5lMj8ZSYgCFpppV2CbYrhNFJ1BFoXpiWPnnAb7R0MqrafCpN8E1+YRrtM1MXZHJdIx8B6rMQ==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.29.7.tgz", + "integrity": "sha512-cUSmjh72N+rN4PrkFlN1dJwNCwjVp5d38/CQrEsFggkD10UiFlBFgdH3tv5dNsLuHY+3S8db2xCHjhZcv5WgvA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.26.5" + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1899,13 +2583,13 @@ } }, "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.25.9.tgz", - "integrity": "sha512-1F05O7AYjymAtqbsFETboN1NvBdcnzMerO+zlMyJBEz6WkMdejvGWw9p05iTSjC85RLlBseHHQpYaM4gzJkBGg==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.29.7.tgz", + "integrity": "sha512-ONyr4+AZhKh8yKWInVxU9AXA9EbsyeLcL6V0dJy6M2/62vuvpGm29zzuymbTpdc451GEpDIdAyPLP3r+P61yKQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1915,14 +2599,14 @@ } }, "node_modules/@babel/plugin-transform-class-properties": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.25.9.tgz", - "integrity": "sha512-bbMAII8GRSkcd0h0b4X+36GksxuheLFjP65ul9w6C3KgAamI3JqErNgSrosX6ZPj+Mpim5VvEbawXxJCyEUV3Q==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.29.7.tgz", + "integrity": "sha512-GtcpjFvanPfzNQi3eTitsCqtRRmmqzpy/A+yhTR1HaZo1Ly3EA8ZXxlPyHdR8/IuRMYc3E4wdGBewB2QKQjAaA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-create-class-features-plugin": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1932,14 +2616,14 @@ } }, "node_modules/@babel/plugin-transform-class-static-block": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.26.0.tgz", - "integrity": "sha512-6J2APTs7BDDm+UMqP1useWqhcRAXo0WIoVj26N7kPFB6S73Lgvyka4KTZYIxtgYXiN5HTyRObA72N2iu628iTQ==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.29.7.tgz", + "integrity": "sha512-kibJgmEdX2iMwsHY2tSZNDgj8PwIlCQz7FK9KuGKO8zsuoUwSEhoNnNVp/emKWrbY4HeO6kkXfdMqRKKKXBm2A==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-create-class-features-plugin": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1949,18 +2633,18 @@ } }, "node_modules/@babel/plugin-transform-classes": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.25.9.tgz", - "integrity": "sha512-mD8APIXmseE7oZvZgGABDyM34GUmK45Um2TXiBUt7PnuAxrgoSVf123qUzPxEr/+/BHrRn5NMZCdE2m/1F8DGg==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.29.7.tgz", + "integrity": "sha512-qV0OGGBVacduzQHE649JyCneOFI/maT+YKsO+K4Yi3xv2wTPNjM/W2o2gdzMwEAZz7fXNTHAe0NcSg30bIN69g==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.9", - "@babel/helper-compilation-targets": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-replace-supers": "^7.25.9", - "@babel/traverse": "^7.25.9", - "globals": "^11.1.0" + "@babel/helper-annotate-as-pure": "^7.29.7", + "@babel/helper-compilation-targets": "^7.29.7", + "@babel/helper-globals": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-replace-supers": "^7.29.7", + "@babel/traverse": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1969,15 +2653,28 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-transform-classes/node_modules/@babel/helper-annotate-as-pure": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.29.7.tgz", + "integrity": "sha512-OoK6239jHPuSQOoS0kfTVKn0b/rVTk0seKq4Gd2UMLtmOVLjDC0ki3e+c90Trqv2gMfvJFqkiljrr568+qddiw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.25.9.tgz", - "integrity": "sha512-HnBegGqXZR12xbcTHlJ9HGxw1OniltT26J5YpfruGqtUHlz/xKf/G2ak9e+t0rVqrjXa9WOhvYPz1ERfMj23AA==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.29.7.tgz", + "integrity": "sha512-RK7/IyU5phpuCdBAuig5VkzG/EnbDaui5SQGdU9BFrHdV+mV4cUjLMQ9lJDjLNtWHsqtiefpGZUXQP2BiTYMsA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/template": "^7.25.9" + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/template": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1987,13 +2684,14 @@ } }, "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.25.9.tgz", - "integrity": "sha512-WkCGb/3ZxXepmMiX101nnGiU+1CAdut8oHyEOHxkKuS1qKpU2SMXE2uSvfz8PBuLd49V6LEsbtyPhWC7fnkgvQ==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.29.7.tgz", + "integrity": "sha512-iPX8aD6H9zV5s7ZsqTdNocPN/MGQ5sSMnElKrktxjJRMnB2jN/1p2+R7GkfD6CAYoVFqy5A4XnSIUeGgJzIWpg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/traverse": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -2003,14 +2701,14 @@ } }, "node_modules/@babel/plugin-transform-dotall-regex": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.25.9.tgz", - "integrity": "sha512-t7ZQ7g5trIgSRYhI9pIJtRl64KHotutUJsh4Eze5l7olJv+mRSg4/MmbZ0tv1eeqRbdvo/+trvJD/Oc5DmW2cA==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.29.7.tgz", + "integrity": "sha512-3qc18hsD2RdZiyJNDNc7HQpv6xbncwh8FYtxNFFzclSyh/trPD9KkVR9BDECUjDLvb7yJVF15GfYUuC+LMkkiQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-create-regexp-features-plugin": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -2020,13 +2718,13 @@ } }, "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.25.9.tgz", - "integrity": "sha512-LZxhJ6dvBb/f3x8xwWIuyiAHy56nrRG3PeYTpBkkzkYRRQ6tJLu68lEF5VIqMUZiAV7a8+Tb78nEoMCMcqjXBw==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.29.7.tgz", + "integrity": "sha512-6IvRRriEMqnBwD6chtxdLpMYCHWEzN+oL5cyQtjykya19UgzbmKhxmhZgKC/LHxS2nYr9Q/qYPZ5Lr6jOL9+yQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -2036,14 +2734,14 @@ } }, "node_modules/@babel/plugin-transform-duplicate-named-capturing-groups-regex": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.25.9.tgz", - "integrity": "sha512-0UfuJS0EsXbRvKnwcLjFtJy/Sxc5J5jhLHnFhy7u4zih97Hz6tJkLU+O+FMMrNZrosUPxDi6sYxJ/EA8jDiAog==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.29.7.tgz", + "integrity": "sha512-2wiIyo2BjtgU7HufSeDnL9L2O7zr8jmhFKuSr65VpRkUiRKRNpb0mdlk56+XPPKoIrfHqzbMuglDvZun0RISsA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-create-regexp-features-plugin": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -2053,13 +2751,30 @@ } }, "node_modules/@babel/plugin-transform-dynamic-import": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.25.9.tgz", - "integrity": "sha512-GCggjexbmSLaFhqsojeugBpeaRIgWNTcgKVq/0qIteFEqY2A+b9QidYadrWlnbWQUrW5fn+mCvf3tr7OeBFTyg==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.29.7.tgz", + "integrity": "sha512-giOlEm/EFjfjr+te9NsdjkUo2v4f8rS/SXPumRVHAtbNcyNlvtREkU1dZzaIDclNpnaVhlCqRdFKhJBjBikzLg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-explicit-resource-management": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-explicit-resource-management/-/plugin-transform-explicit-resource-management-7.29.7.tgz", + "integrity": "sha512-Rstj7coNz8sE+7Ju7ihpHLI564lsK5pUpNNlvptCIC/16E/S5hbl6n3kESPKdNRmqEWlpn5xpS5Q2dvXBsySLw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/plugin-transform-destructuring": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -2069,13 +2784,13 @@ } }, "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.26.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.26.3.tgz", - "integrity": "sha512-7CAHcQ58z2chuXPWblnn1K6rLDnDWieghSOEmqQsrBenH0P9InCUtOJYD89pvngljmZlJcz3fcmgYsXFNGa1ZQ==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.29.7.tgz", + "integrity": "sha512-zFpMOTLZBdW5LfObqcSbL6kefg4R4eLdmvS0wbN9M6D5Mym/sKm9toOoWyVOa+xDjvCnuWcHls2YonXwHvH3CQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -2085,13 +2800,13 @@ } }, "node_modules/@babel/plugin-transform-export-namespace-from": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.25.9.tgz", - "integrity": "sha512-2NsEz+CxzJIVOPx2o9UsW1rXLqtChtLoVnwYHHiB04wS5sgn7mrV45fWMBX0Kk+ub9uXytVYfNP2HjbVbCB3Ww==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.29.7.tgz", + "integrity": "sha512-24B2nOy2TeJSMheqwPD4DDQOV/elLSIlKxjZt4i05H5AgdPdWR3n18HnNrcJ+j76WJd9gbwb9jPjNYUy6RautA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -2101,14 +2816,14 @@ } }, "node_modules/@babel/plugin-transform-for-of": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.25.9.tgz", - "integrity": "sha512-LqHxduHoaGELJl2uhImHwRQudhCM50pT46rIBNvtT/Oql3nqiS3wOwP+5ten7NpYSXrrVLgtZU3DZmPtWZo16A==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.29.7.tgz", + "integrity": "sha512-zeSIHh0+E1Um1WJRXCFlHQYu2ieJNdivLLjlBEp+dIBu3S51n+SZZmIXjxnItw6pz56Cn+KvK68BIBVsxq2JiQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -2118,15 +2833,15 @@ } }, "node_modules/@babel/plugin-transform-function-name": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.25.9.tgz", - "integrity": "sha512-8lP+Yxjv14Vc5MuWBpJsoUCd3hD6V9DgBon2FVYL4jJgbnVQ9fTgYmonchzZJOVNgzEgbxp4OwAf6xz6M/14XA==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.29.7.tgz", + "integrity": "sha512-otRWaHXE6fbAGkePvaj/kvs3HsqXfPhlnzwSOlnFgbqCPMd975dW+4wZ00WFBt+/YlBGcJwNrARQTOJOb4ZrIg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-compilation-targets": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/traverse": "^7.25.9" + "@babel/helper-compilation-targets": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/traverse": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -2136,13 +2851,13 @@ } }, "node_modules/@babel/plugin-transform-json-strings": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.25.9.tgz", - "integrity": "sha512-xoTMk0WXceiiIvsaquQQUaLLXSW1KJ159KP87VilruQm0LNNGxWzahxSS6T6i4Zg3ezp4vA4zuwiNUR53qmQAw==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.29.7.tgz", + "integrity": "sha512-RRnE2+eon1rJAq8MnoF1b5kTpY1vU88twHcvcKMrsqP/jxIRqDVs9iJB5fqPuqyeFAW0wJo4MlUIPpQCq/aRsg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -2152,13 +2867,13 @@ } }, "node_modules/@babel/plugin-transform-literals": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.25.9.tgz", - "integrity": "sha512-9N7+2lFziW8W9pBl2TzaNht3+pgMIRP74zizeCSrtnSKVdUl8mAjjOP2OOVQAfZ881P2cNjDj1uAMEdeD50nuQ==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.29.7.tgz", + "integrity": "sha512-DZ/oLP21ZuWx1vKqnoNv6/tvEK48AQOBRai40CX9dTjGluvT/YZCyY3rryDtyUqCEoyNroy5KKPwX2iQCiRvyw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -2168,13 +2883,13 @@ } }, "node_modules/@babel/plugin-transform-logical-assignment-operators": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.25.9.tgz", - "integrity": "sha512-wI4wRAzGko551Y8eVf6iOY9EouIDTtPb0ByZx+ktDGHwv6bHFimrgJM/2T021txPZ2s4c7bqvHbd+vXG6K948Q==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.29.7.tgz", + "integrity": "sha512-A0H91hh6W8MFRkp5TqJmMr39jzGD1A1E1Ysiv2O06Sfbhkapm+XyIzxWCEh5kqwOZ1/8QZ0dY3SeQ7XBqfJd5Q==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -2184,13 +2899,13 @@ } }, "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.25.9.tgz", - "integrity": "sha512-PYazBVfofCQkkMzh2P6IdIUaCEWni3iYEerAsRWuVd8+jlM1S9S9cz1dF9hIzyoZ8IA3+OwVYIp9v9e+GbgZhA==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.29.7.tgz", + "integrity": "sha512-hl1kwFZCCiDyfH25Xmco9jTrkPgnS9pmOzSG7W5I4SaGbLeqKv417hcU2RKmaxoPEgsoJh7ZPOrnPGq99bHoUg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -2200,14 +2915,14 @@ } }, "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.25.9.tgz", - "integrity": "sha512-g5T11tnI36jVClQlMlt4qKDLlWnG5pP9CSM4GhdRciTNMRgkfpo5cR6b4rGIOYPgRRuFAvwjPQ/Yk+ql4dyhbw==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.29.7.tgz", + "integrity": "sha512-fxtQoH3m5ywUSIfaH0FGCzWu4McsYon5bD3K4XnskC7f+OyQMj7rsOMi4NvvmJ83WwBAg4UCe+ov4VZlqEvyew==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-module-transforms": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-module-transforms": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -2217,14 +2932,14 @@ } }, "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.26.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.26.3.tgz", - "integrity": "sha512-MgR55l4q9KddUDITEzEFYn5ZsGDXMSsU9E+kh7fjRXTIC3RHqfCo8RPRbyReYJh44HQ/yomFkqbOFohXvDCiIQ==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.29.7.tgz", + "integrity": "sha512-j0vCldybPC5b5dwCQOJ21uKtHzt7hxLygJTg9eF1ScfaikEDNfzn94XoW5Fi+seBR0nCyL23xaBFFkq7dTM8XQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-module-transforms": "^7.26.0", - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-module-transforms": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -2234,16 +2949,16 @@ } }, "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.25.9.tgz", - "integrity": "sha512-hyss7iIlH/zLHaehT+xwiymtPOpsiwIIRlCAOwBB04ta5Tt+lNItADdlXw3jAWZ96VJ2jlhl/c+PNIQPKNfvcA==", + "version": "7.29.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.29.8.tgz", + "integrity": "sha512-6iSnEK0zlkLKU4heofK/AdmRD4e2SHVpJMtrwnTCzhnaM98ria4rTrOXBBi45BTTYnJtO8txnPsX4fChYXkmeA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-module-transforms": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-validator-identifier": "^7.25.9", - "@babel/traverse": "^7.25.9" + "@babel/helper-module-transforms": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-validator-identifier": "^7.29.7", + "@babel/traverse": "^7.29.8" }, "engines": { "node": ">=6.9.0" @@ -2253,14 +2968,14 @@ } }, "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.25.9.tgz", - "integrity": "sha512-bS9MVObUgE7ww36HEfwe6g9WakQ0KF07mQF74uuXdkoziUPfKyu/nIm663kz//e5O1nPInPFx36z7WJmJ4yNEw==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.29.7.tgz", + "integrity": "sha512-B4UkaTK3QpgCwJnrxKfMPKdo92CN7OKXAlpAAnM3UPu0Q0lCCk57ylA9AJbRy2v8dDKOPAAWcoR6CMyeoHwRCA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-module-transforms": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-module-transforms": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -2270,14 +2985,14 @@ } }, "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.25.9.tgz", - "integrity": "sha512-oqB6WHdKTGl3q/ItQhpLSnWWOpjUJLsOCLVyeFgeTktkBSCiurvPOsyt93gibI9CmuKvTUEtWmG5VhZD+5T/KA==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.29.7.tgz", + "integrity": "sha512-vuFoLwr4qnv2xbZ16SQd6uPcH5FNrLHhk/Jzo++0XJFcaDsr4gjJVg6j398oMHiC+83k/GiBzviwF5KBJkPUtQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-create-regexp-features-plugin": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -2287,13 +3002,13 @@ } }, "node_modules/@babel/plugin-transform-new-target": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.25.9.tgz", - "integrity": "sha512-U/3p8X1yCSoKyUj2eOBIx3FOn6pElFOKvAAGf8HTtItuPyB+ZeOqfn+mvTtg9ZlOAjsPdK3ayQEjqHjU/yLeVQ==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.29.7.tgz", + "integrity": "sha512-fEo41GmsOUhOBlw8ioo6zvjX5Xc2Lqkzlyfqbpsk3eB6TReV18uhxZ0esfEokVbY2+PVJAQHNKxER6lGrzNd3A==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -2303,13 +3018,13 @@ } }, "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { - "version": "7.26.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.26.6.tgz", - "integrity": "sha512-CKW8Vu+uUZneQCPtXmSBUC6NCAUdya26hWCElAWh5mVSlSRsmiCPUUDKb3Z0szng1hiAJa098Hkhg9o4SE35Qw==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.29.7.tgz", + "integrity": "sha512-idmp1dFaekP9GbcMvG24Kvw2BfhFZjHnNJCkV4WuIY4PskJzwI3f1N5OdgYke38T7rftO6ERulFRn2cFeZwRkg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.26.5" + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -2319,13 +3034,13 @@ } }, "node_modules/@babel/plugin-transform-numeric-separator": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.25.9.tgz", - "integrity": "sha512-TlprrJ1GBZ3r6s96Yq8gEQv82s8/5HnCVHtEJScUj90thHQbwe+E5MLhi2bbNHBEJuzrvltXSru+BUxHDoog7Q==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.29.7.tgz", + "integrity": "sha512-zR7fv/z14OjgHl4AgRtkDBvBMhIzCxqV/qN/2BCRC7LjFwvuzjYe7gDWxC4Wl/SNsLM6SE1IWvRPYMgSJaUvNw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -2335,15 +3050,17 @@ } }, "node_modules/@babel/plugin-transform-object-rest-spread": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.25.9.tgz", - "integrity": "sha512-fSaXafEE9CVHPweLYw4J0emp1t8zYTXyzN3UuG+lylqkvYd7RMrsOQ8TYx5RF231be0vqtFC6jnx3UmpJmKBYg==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.29.7.tgz", + "integrity": "sha512-Ld98jn4c0smUywL57m7SgsHq3OpThOa6LqZJif3G6jYOovPleoFhVrBJ1WegRApSFB2wu4+RelAj9AC9G08Z4A==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-compilation-targets": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/plugin-transform-parameters": "^7.25.9" + "@babel/helper-compilation-targets": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/plugin-transform-destructuring": "^7.29.7", + "@babel/plugin-transform-parameters": "^7.29.7", + "@babel/traverse": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -2353,14 +3070,14 @@ } }, "node_modules/@babel/plugin-transform-object-super": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.25.9.tgz", - "integrity": "sha512-Kj/Gh+Rw2RNLbCK1VAWj2U48yxxqL2x0k10nPtSdRa0O2xnHXalD0s+o1A6a0W43gJ00ANo38jxkQreckOzv5A==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.29.7.tgz", + "integrity": "sha512-Ea/diGcw0twB5IlZPO5sgET6fJsLJqPABqTuFWIR+iMPGPZJkATEIWx0wa+aEQ5UY1CBQyP/gkAiLEqn1vBiQA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-replace-supers": "^7.25.9" + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-replace-supers": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -2370,13 +3087,13 @@ } }, "node_modules/@babel/plugin-transform-optional-catch-binding": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.25.9.tgz", - "integrity": "sha512-qM/6m6hQZzDcZF3onzIhZeDHDO43bkNNlOX0i8n3lR6zLbu0GN2d8qfM/IERJZYauhAHSLHy39NF0Ctdvcid7g==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.29.7.tgz", + "integrity": "sha512-sLsyndxK2VwX6yNUOakMb7Sh553ZTe/vVM1XJ+9Z5aW1ytsc8xOIwmyk05NNjN60vkc5/KqoTH6hB4V41LJhng==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -2386,14 +3103,14 @@ } }, "node_modules/@babel/plugin-transform-optional-chaining": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.25.9.tgz", - "integrity": "sha512-6AvV0FsLULbpnXeBjrY4dmWF8F7gf8QnvTEoO/wX/5xm/xE1Xo8oPuD3MPS+KS9f9XBEAWN7X1aWr4z9HdOr7A==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.29.7.tgz", + "integrity": "sha512-6GM1dhvK3gNODkXcEcMCOLEDCLSoZ/sBbro2Ax8HURyasQ4NshagQixkRFdh5niI6E4gmA/jYI/4aT7rRos3ZQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -2403,13 +3120,13 @@ } }, "node_modules/@babel/plugin-transform-parameters": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.25.9.tgz", - "integrity": "sha512-wzz6MKwpnshBAiRmn4jR8LYz/g8Ksg0o80XmwZDlordjwEk9SxBzTWC7F5ef1jhbrbOW2DJ5J6ayRukrJmnr0g==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.29.7.tgz", + "integrity": "sha512-ZDOBqV/qLYJI0YElr8DcENEyARsFQeESqWXH6gZlghYXuPPjvweuDhP4VyEi4BlUBlLRFZVjxoZDMjxhLW766g==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -2419,14 +3136,14 @@ } }, "node_modules/@babel/plugin-transform-private-methods": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.25.9.tgz", - "integrity": "sha512-D/JUozNpQLAPUVusvqMxyvjzllRaF8/nSrP1s2YGQT/W4LHK4xxsMcHjhOGTS01mp9Hda8nswb+FblLdJornQw==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.29.7.tgz", + "integrity": "sha512-/6Rz4DK1ETDEM/bWHsPHcaEe7ZaT1EqSXjtSP/L0DijOYuaUhiRiOKcwpZ8P7zR4xXEHc2ITdiCgBm9Tpyv9ug==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-create-class-features-plugin": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -2436,15 +3153,15 @@ } }, "node_modules/@babel/plugin-transform-private-property-in-object": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.25.9.tgz", - "integrity": "sha512-Evf3kcMqzXA3xfYJmZ9Pg1OvKdtqsDMSWBDzZOPLvHiTt36E75jLDQo5w1gtRU95Q4E5PDttrTf25Fw8d/uWLw==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.29.7.tgz", + "integrity": "sha512-+BNo06dnrzdNNqCm1X6YUaVv0DKk8Q+JYcoZfOkLhYWNCXzlwTSRq8zGWayT1csjcpNXV9CQTBRRbmTLZac5cA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.9", - "@babel/helper-create-class-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-annotate-as-pure": "^7.29.7", + "@babel/helper-create-class-features-plugin": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -2453,14 +3170,27 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-transform-private-property-in-object/node_modules/@babel/helper-annotate-as-pure": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.29.7.tgz", + "integrity": "sha512-OoK6239jHPuSQOoS0kfTVKn0b/rVTk0seKq4Gd2UMLtmOVLjDC0ki3e+c90Trqv2gMfvJFqkiljrr568+qddiw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/plugin-transform-property-literals": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.25.9.tgz", - "integrity": "sha512-IvIUeV5KrS/VPavfSM/Iu+RE6llrHrYIKY1yfCzyO/lMXHQ+p7uGhonmGVisv6tSBSVgWzMBohTcvkC9vQcQFA==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.29.7.tgz", + "integrity": "sha512-bOMRLQuI0A5ZqHq3OWJ89/rXpJ/NJrbVhXiP4zwPGMs6kpcVsuTUNjwoE30K0Qm3mf48a/TnRYYD6vPNqcg6jA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -2470,14 +3200,13 @@ } }, "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.25.9.tgz", - "integrity": "sha512-vwDcDNsgMPDGP0nMqzahDWE5/MLcX8sv96+wfX7as7LoF/kr97Bo/7fI00lXY4wUXYfVmwIIyG80fGZ1uvt2qg==", + "version": "7.29.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.29.8.tgz", + "integrity": "sha512-0UpIXPtdDtMXfnV2OJAVMLpj3H/92vmkA6lpSRakmycJvj3VUy6Xs1dM8tXRugupykr5WB+LpiVl0J8LMVg2mg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "regenerator-transform": "^0.15.2" + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -2487,14 +3216,14 @@ } }, "node_modules/@babel/plugin-transform-regexp-modifiers": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.26.0.tgz", - "integrity": "sha512-vN6saax7lrA2yA/Pak3sCxuD6F5InBjn9IcrIKQPjpsLvuHYLVroTxjdlVRHjjBWxKOqIwpTXDkOssYT4BFdRw==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.29.7.tgz", + "integrity": "sha512-mB5Fs0VWrJ42ZCmc8114v60qetdaUVNkj9PmSZRmanCZM3S9hm0CFRLjRmYIsuXav14l2jvZ+4T8iiCGnhj3nQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-create-regexp-features-plugin": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -2504,13 +3233,13 @@ } }, "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.25.9.tgz", - "integrity": "sha512-7DL7DKYjn5Su++4RXu8puKZm2XBPHyjWLUidaPEkCUBbE7IPcsrkRHggAOOKydH1dASWdcUBxrkOGNxUv5P3Jg==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.29.7.tgz", + "integrity": "sha512-5+YhdpVgmfSmwZyLMftfaiffLRMHjzIRHFHHLdibcSyJm2pasMrKHrO3Ptrt2DRshjvpgjEJJ1zVW14WPq/6QA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -2520,17 +3249,17 @@ } }, "node_modules/@babel/plugin-transform-runtime": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.25.9.tgz", - "integrity": "sha512-nZp7GlEl+yULJrClz0SwHPqir3lc0zsPrDHQUcxGspSL7AKrexNSEfTbfqnDNJUO13bgKyfuOLMF8Xqtu8j3YQ==", + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.28.3.tgz", + "integrity": "sha512-Y6ab1kGqZ0u42Zv/4a7l0l72n9DKP/MKoKWaUSBylrhNZO2prYuqFOLbn5aW5SIFXwSH93yfjbgllL8lxuGKLg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-module-imports": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", - "babel-plugin-polyfill-corejs2": "^0.4.10", - "babel-plugin-polyfill-corejs3": "^0.10.6", - "babel-plugin-polyfill-regenerator": "^0.6.1", + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "babel-plugin-polyfill-corejs2": "^0.4.14", + "babel-plugin-polyfill-corejs3": "^0.13.0", + "babel-plugin-polyfill-regenerator": "^0.6.5", "semver": "^6.3.1" }, "engines": { @@ -2551,13 +3280,13 @@ } }, "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.25.9.tgz", - "integrity": "sha512-MUv6t0FhO5qHnS/W8XCbHmiRWOphNufpE1IVxhK5kuN3Td9FT1x4rx4K42s3RYdMXCXpfWkGSbCSd0Z64xA7Ng==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.29.7.tgz", + "integrity": "sha512-I+WYbGBAiCn7nA6xBrlgPH+MB7HWb4u8pv5S0Pv7OtwNvIFvCCb24YlttKEeUFVurfBCEaOTnuhlqsb7f0Z5Dg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -2567,14 +3296,14 @@ } }, "node_modules/@babel/plugin-transform-spread": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.25.9.tgz", - "integrity": "sha512-oNknIB0TbURU5pqJFVbOOFspVlrpVwo2H1+HUIsVDvp5VauGGDP1ZEvO8Nn5xyMEs3dakajOxlmkNW7kNgSm6A==", + "version": "7.29.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.29.8.tgz", + "integrity": "sha512-4S9ksMGVWUshvgK0mKfvZky7leuG5/uoFVwMpAomJ8bMoDJiNHRVmc1EglwW/CmGVSqqWpEbXm9FmbRit22qoA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -2584,13 +3313,13 @@ } }, "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.25.9.tgz", - "integrity": "sha512-WqBUSgeVwucYDP9U/xNRQam7xV8W5Zf+6Eo7T2SRVUFlhRiMNFdFz58u0KZmCVVqs2i7SHgpRnAhzRNmKfi2uA==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.29.7.tgz", + "integrity": "sha512-BCHzNYJGe9l7EpwwDBN/ztlL2NYFFq8hp9ddjtUEM9f2O7S7kKV/lL6Fwo7IF7NSkYhPK2vO+86nIGltA90MsA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -2600,13 +3329,13 @@ } }, "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.25.9.tgz", - "integrity": "sha512-o97AE4syN71M/lxrCtQByzphAdlYluKPDBzDVzMmfCobUjjhAryZV0AIpRPrxN0eAkxXO6ZLEScmt+PNhj2OTw==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.29.7.tgz", + "integrity": "sha512-NCSEJ4sLFU2gqAub45HYh4fus2yQ36rr6ei6vpU7NdoJqCpxvEG8E6eJpscGyXP3VHD2Ny+fSXr04k1hoUrFqA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -2616,13 +3345,13 @@ } }, "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.25.9.tgz", - "integrity": "sha512-v61XqUMiueJROUv66BVIOi0Fv/CUuZuZMl5NkRoCVxLAnMexZ0A3kMe7vvZ0nulxMuMp0Mk6S5hNh48yki08ZA==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.29.7.tgz", + "integrity": "sha512-223mNGoTkBiTEWFoK+Q6Go3tueMRclO8vxxxxquNCYuNI4jWOofFKJRRDu6SDrB8Sgo1UEGW9T4GAQ8ZyRso1A==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -2632,13 +3361,13 @@ } }, "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.25.9.tgz", - "integrity": "sha512-s5EDrE6bW97LtxOcGj1Khcx5AaXwiMmi4toFWRDP9/y0Woo6pXC+iyPu/KuhKtfSrNFd7jJB+/fkOtZy6aIC6Q==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.29.7.tgz", + "integrity": "sha512-jCfXxSjf94lf4E0hKE0AByxF6F3/pVFqRdUUNkDJhsY0m1ZKjnN6ZYyMeHNpzflxb/0q5b7t3p+BE+SLF1WOtA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -2648,14 +3377,14 @@ } }, "node_modules/@babel/plugin-transform-unicode-property-regex": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.25.9.tgz", - "integrity": "sha512-Jt2d8Ga+QwRluxRQ307Vlxa6dMrYEMZCgGxoPR8V52rxPyldHu3hdlHspxaqYmE7oID5+kB+UKUB/eWS+DkkWg==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.29.7.tgz", + "integrity": "sha512-OgZ+zoAJgZLUCunsTRQ5LAjOywDv5zzZ2/hQ5aMw1pGXyY2rtE8/chXYUmu3AlVHKpm10KEdG9aMwbI/K76ZGw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-create-regexp-features-plugin": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -2665,14 +3394,14 @@ } }, "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.25.9.tgz", - "integrity": "sha512-yoxstj7Rg9dlNn9UQxzk4fcNivwv4nUYz7fYXBaKxvw/lnmPuOm/ikoELygbYq68Bls3D/D+NBPHiLwZdZZ4HA==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.29.7.tgz", + "integrity": "sha512-7D/x/23/d/3VqZ0QA+LGbZMlGwZjztBygSWWWsfTPoQ1oQ6Q1P6Mr3d0kk42XabyUVw+fha3LqdRsFqeKqvCyA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-create-regexp-features-plugin": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -2682,14 +3411,14 @@ } }, "node_modules/@babel/plugin-transform-unicode-sets-regex": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.25.9.tgz", - "integrity": "sha512-8BYqO3GeVNHtx69fdPshN3fnzUNLrWdHhk/icSwigksJGczKSizZ+Z6SBCxTs723Fr5VSNorTIK7a+R2tISvwQ==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.29.7.tgz", + "integrity": "sha512-BLOhLht9DOJwIxlmp91wHvkXv1lguuHS3/FwUO8HL1H0u8s4hR1gASVFyilu9iGtcTRYqjTZmlsFFeQletntEg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-create-regexp-features-plugin": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -2699,80 +3428,81 @@ } }, "node_modules/@babel/preset-env": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.26.0.tgz", - "integrity": "sha512-H84Fxq0CQJNdPFT2DrfnylZ3cf5K43rGfWK4LJGPpjKHiZlk0/RzwEus3PDDZZg+/Er7lCA03MVacueUuXdzfw==", + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.28.3.tgz", + "integrity": "sha512-ROiDcM+GbYVPYBOeCR6uBXKkQpBExLl8k9HO1ygXEyds39j+vCCsjmj7S8GOniZQlEs81QlkdJZe76IpLSiqpg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.26.0", - "@babel/helper-compilation-targets": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-validator-option": "^7.25.9", - "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.25.9", - "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.25.9", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.25.9", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.25.9", - "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.25.9", + "@babel/compat-data": "^7.28.0", + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-validator-option": "^7.27.1", + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.27.1", + "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.27.1", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.27.1", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.27.1", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.28.3", "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", - "@babel/plugin-syntax-import-assertions": "^7.26.0", - "@babel/plugin-syntax-import-attributes": "^7.26.0", + "@babel/plugin-syntax-import-assertions": "^7.27.1", + "@babel/plugin-syntax-import-attributes": "^7.27.1", "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", - "@babel/plugin-transform-arrow-functions": "^7.25.9", - "@babel/plugin-transform-async-generator-functions": "^7.25.9", - "@babel/plugin-transform-async-to-generator": "^7.25.9", - "@babel/plugin-transform-block-scoped-functions": "^7.25.9", - "@babel/plugin-transform-block-scoping": "^7.25.9", - "@babel/plugin-transform-class-properties": "^7.25.9", - "@babel/plugin-transform-class-static-block": "^7.26.0", - "@babel/plugin-transform-classes": "^7.25.9", - "@babel/plugin-transform-computed-properties": "^7.25.9", - "@babel/plugin-transform-destructuring": "^7.25.9", - "@babel/plugin-transform-dotall-regex": "^7.25.9", - "@babel/plugin-transform-duplicate-keys": "^7.25.9", - "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.25.9", - "@babel/plugin-transform-dynamic-import": "^7.25.9", - "@babel/plugin-transform-exponentiation-operator": "^7.25.9", - "@babel/plugin-transform-export-namespace-from": "^7.25.9", - "@babel/plugin-transform-for-of": "^7.25.9", - "@babel/plugin-transform-function-name": "^7.25.9", - "@babel/plugin-transform-json-strings": "^7.25.9", - "@babel/plugin-transform-literals": "^7.25.9", - "@babel/plugin-transform-logical-assignment-operators": "^7.25.9", - "@babel/plugin-transform-member-expression-literals": "^7.25.9", - "@babel/plugin-transform-modules-amd": "^7.25.9", - "@babel/plugin-transform-modules-commonjs": "^7.25.9", - "@babel/plugin-transform-modules-systemjs": "^7.25.9", - "@babel/plugin-transform-modules-umd": "^7.25.9", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.25.9", - "@babel/plugin-transform-new-target": "^7.25.9", - "@babel/plugin-transform-nullish-coalescing-operator": "^7.25.9", - "@babel/plugin-transform-numeric-separator": "^7.25.9", - "@babel/plugin-transform-object-rest-spread": "^7.25.9", - "@babel/plugin-transform-object-super": "^7.25.9", - "@babel/plugin-transform-optional-catch-binding": "^7.25.9", - "@babel/plugin-transform-optional-chaining": "^7.25.9", - "@babel/plugin-transform-parameters": "^7.25.9", - "@babel/plugin-transform-private-methods": "^7.25.9", - "@babel/plugin-transform-private-property-in-object": "^7.25.9", - "@babel/plugin-transform-property-literals": "^7.25.9", - "@babel/plugin-transform-regenerator": "^7.25.9", - "@babel/plugin-transform-regexp-modifiers": "^7.26.0", - "@babel/plugin-transform-reserved-words": "^7.25.9", - "@babel/plugin-transform-shorthand-properties": "^7.25.9", - "@babel/plugin-transform-spread": "^7.25.9", - "@babel/plugin-transform-sticky-regex": "^7.25.9", - "@babel/plugin-transform-template-literals": "^7.25.9", - "@babel/plugin-transform-typeof-symbol": "^7.25.9", - "@babel/plugin-transform-unicode-escapes": "^7.25.9", - "@babel/plugin-transform-unicode-property-regex": "^7.25.9", - "@babel/plugin-transform-unicode-regex": "^7.25.9", - "@babel/plugin-transform-unicode-sets-regex": "^7.25.9", + "@babel/plugin-transform-arrow-functions": "^7.27.1", + "@babel/plugin-transform-async-generator-functions": "^7.28.0", + "@babel/plugin-transform-async-to-generator": "^7.27.1", + "@babel/plugin-transform-block-scoped-functions": "^7.27.1", + "@babel/plugin-transform-block-scoping": "^7.28.0", + "@babel/plugin-transform-class-properties": "^7.27.1", + "@babel/plugin-transform-class-static-block": "^7.28.3", + "@babel/plugin-transform-classes": "^7.28.3", + "@babel/plugin-transform-computed-properties": "^7.27.1", + "@babel/plugin-transform-destructuring": "^7.28.0", + "@babel/plugin-transform-dotall-regex": "^7.27.1", + "@babel/plugin-transform-duplicate-keys": "^7.27.1", + "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.27.1", + "@babel/plugin-transform-dynamic-import": "^7.27.1", + "@babel/plugin-transform-explicit-resource-management": "^7.28.0", + "@babel/plugin-transform-exponentiation-operator": "^7.27.1", + "@babel/plugin-transform-export-namespace-from": "^7.27.1", + "@babel/plugin-transform-for-of": "^7.27.1", + "@babel/plugin-transform-function-name": "^7.27.1", + "@babel/plugin-transform-json-strings": "^7.27.1", + "@babel/plugin-transform-literals": "^7.27.1", + "@babel/plugin-transform-logical-assignment-operators": "^7.27.1", + "@babel/plugin-transform-member-expression-literals": "^7.27.1", + "@babel/plugin-transform-modules-amd": "^7.27.1", + "@babel/plugin-transform-modules-commonjs": "^7.27.1", + "@babel/plugin-transform-modules-systemjs": "^7.27.1", + "@babel/plugin-transform-modules-umd": "^7.27.1", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.27.1", + "@babel/plugin-transform-new-target": "^7.27.1", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.27.1", + "@babel/plugin-transform-numeric-separator": "^7.27.1", + "@babel/plugin-transform-object-rest-spread": "^7.28.0", + "@babel/plugin-transform-object-super": "^7.27.1", + "@babel/plugin-transform-optional-catch-binding": "^7.27.1", + "@babel/plugin-transform-optional-chaining": "^7.27.1", + "@babel/plugin-transform-parameters": "^7.27.7", + "@babel/plugin-transform-private-methods": "^7.27.1", + "@babel/plugin-transform-private-property-in-object": "^7.27.1", + "@babel/plugin-transform-property-literals": "^7.27.1", + "@babel/plugin-transform-regenerator": "^7.28.3", + "@babel/plugin-transform-regexp-modifiers": "^7.27.1", + "@babel/plugin-transform-reserved-words": "^7.27.1", + "@babel/plugin-transform-shorthand-properties": "^7.27.1", + "@babel/plugin-transform-spread": "^7.27.1", + "@babel/plugin-transform-sticky-regex": "^7.27.1", + "@babel/plugin-transform-template-literals": "^7.27.1", + "@babel/plugin-transform-typeof-symbol": "^7.27.1", + "@babel/plugin-transform-unicode-escapes": "^7.27.1", + "@babel/plugin-transform-unicode-property-regex": "^7.27.1", + "@babel/plugin-transform-unicode-regex": "^7.27.1", + "@babel/plugin-transform-unicode-sets-regex": "^7.27.1", "@babel/preset-modules": "0.1.6-no-external-plugins", - "babel-plugin-polyfill-corejs2": "^0.4.10", - "babel-plugin-polyfill-corejs3": "^0.10.6", - "babel-plugin-polyfill-regenerator": "^0.6.1", - "core-js-compat": "^3.38.1", + "babel-plugin-polyfill-corejs2": "^0.4.14", + "babel-plugin-polyfill-corejs3": "^0.13.0", + "babel-plugin-polyfill-regenerator": "^0.6.5", + "core-js-compat": "^3.43.0", "semver": "^6.3.1" }, "engines": { @@ -2808,63 +3538,60 @@ } }, "node_modules/@babel/runtime": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.26.0.tgz", - "integrity": "sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==", + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.3.tgz", + "integrity": "sha512-9uIQ10o0WGdpP6GDhXcdOJPJuDgFtIDtN/9+ArJQ2NAfAmiuhTQdzkaTGR33v43GYS2UrSA0eX2pPPHoFVvpxA==", "dev": true, "license": "MIT", - "dependencies": { - "regenerator-runtime": "^0.14.0" - }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/template": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.9.tgz", - "integrity": "sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.29.7.tgz", + "integrity": "sha512-puq+Gf35oI24FeN11LkoUQFqv9uwNeWpxXZi/Ji3rRIoKAzKnxRaZ+Gkj0vKS9ZCiTESfng1N9LyOyXvo+m+Gg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.25.9", - "@babel/parser": "^7.25.9", - "@babel/types": "^7.25.9" + "@babel/code-frame": "^7.29.7", + "@babel/parser": "^7.29.7", + "@babel/types": "^7.29.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.26.5", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.26.5.tgz", - "integrity": "sha512-rkOSPOw+AXbgtwUga3U4u8RpoK9FEFWBNAlTpcnkLFjL5CT+oyHNuUUC/xx6XefEJ16r38r8Bc/lfp6rYuHeJQ==", + "version": "7.29.8", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.29.8.tgz", + "integrity": "sha512-I5z7H3bf/41ktsNVLtpN0wAa336HkqIHQ5BuPLEhTkt1jVSyZpeNKIzTgEWmlxjdg81R0IgUCcaE+Ok3NvrfZg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.26.2", - "@babel/generator": "^7.26.5", - "@babel/parser": "^7.26.5", - "@babel/template": "^7.25.9", - "@babel/types": "^7.26.5", - "debug": "^4.3.1", - "globals": "^11.1.0" + "@babel/code-frame": "^7.29.7", + "@babel/generator": "^7.29.8", + "@babel/helper-globals": "^7.29.7", + "@babel/parser": "^7.29.8", + "@babel/template": "^7.29.7", + "@babel/types": "^7.29.8", + "debug": "^4.3.1" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse/node_modules/@babel/generator": { - "version": "7.26.5", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.5.tgz", - "integrity": "sha512-2caSP6fN9I7HOe6nqhtft7V4g7/V/gfDsC3Ag4W7kEzzvRGKqiv0pu0HogPiZ3KaVSoNDhUws6IJjDjpfmYIXw==", + "version": "7.29.8", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.8.tgz", + "integrity": "sha512-gZbepsdh3WDtgZKWL+vTPh71LSBrm/Y4/QDZBVCcYfmeTEEuoOYwlSy+G1StfJg+/Zy550u/3TATbm7qDbbMtg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/parser": "^7.26.5", - "@babel/types": "^7.26.5", - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.25", + "@babel/parser": "^7.29.8", + "@babel/types": "^7.29.8", + "@jridgewell/gen-mapping": "^0.3.12", + "@jridgewell/trace-mapping": "^0.3.28", "jsesc": "^3.0.2" }, "engines": { @@ -2872,14 +3599,14 @@ } }, "node_modules/@babel/types": { - "version": "7.26.5", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.5.tgz", - "integrity": "sha512-L6mZmwFDK6Cjh1nRCLXpa6no13ZIioJDz7mdkzHv399pThrTa/k0nUlNaenOeh2kWu/iaOQYElEpKPUswUa9Vg==", + "version": "7.29.8", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.8.tgz", + "integrity": "sha512-Vj1jF3cPfxg7OAfoI7QnVKLoILlm2JF9pnVHrX8qx7AHMiYWT+NDAA7jChlNgRS4WTLc/fD1lXLmPixluj+3Gg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-string-parser": "^7.25.9", - "@babel/helper-validator-identifier": "^7.25.9" + "@babel/helper-string-parser": "^7.29.7", + "@babel/helper-validator-identifier": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -2905,9 +3632,9 @@ } }, "node_modules/@esbuild/aix-ppc64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.24.2.tgz", - "integrity": "sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.28.1.tgz", + "integrity": "sha512-Svl7tq8k/08+p6CXPpRjQ1fKX+1odH/BQbb48fV6fj3CWHhsoIOoY87w1oHXm0qEpkIK3ZfVgp0hed3XBXzXMQ==", "cpu": [ "ppc64" ], @@ -2922,9 +3649,9 @@ } }, "node_modules/@esbuild/android-arm": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.24.2.tgz", - "integrity": "sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.28.1.tgz", + "integrity": "sha512-0k2F129Xdio1TdJfzJ8sy1Q47vUD2NnwdhiAf7drUN1EBTfPf4hsFCtmMgu/6m8JSzsBrlmVjudMBQqOfG8usQ==", "cpu": [ "arm" ], @@ -2939,9 +3666,9 @@ } }, "node_modules/@esbuild/android-arm64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.24.2.tgz", - "integrity": "sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.28.1.tgz", + "integrity": "sha512-34EGEbCIAgosYz6goLcopX6Mo7NyGv9tfwEM2/7Ce2VcVRk568iSvniGWcUXIy7wEDR1wzolcxcriFVrWYcwBg==", "cpu": [ "arm64" ], @@ -2956,9 +3683,9 @@ } }, "node_modules/@esbuild/android-x64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.24.2.tgz", - "integrity": "sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.28.1.tgz", + "integrity": "sha512-dbwY7ltSMDWsRatcRpCnES4F+im88OCUgGZjy52shC7GqHRE/cYlxNbB4Z4UpJswpcc4Qxd2oE/ufM0p61IKng==", "cpu": [ "x64" ], @@ -2973,9 +3700,9 @@ } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.24.2.tgz", - "integrity": "sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.28.1.tgz", + "integrity": "sha512-TZbWkQY7kvTAXbXUT7uVACR5cMHsDiSz9z7ZKAX/RTq/WJEk3QyRr0wZpNhBDX+/0CtdqUIJlOiodQcta6tY3Q==", "cpu": [ "arm64" ], @@ -2990,9 +3717,9 @@ } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.24.2.tgz", - "integrity": "sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.28.1.tgz", + "integrity": "sha512-zfdzgK9ACBNZLI/CyHTOx81SyNbM6YXn7rxSgX97VjyiPl9W1i4Ka4fgKECEoFCKGpvBj5qArWIGgQjOwkgskQ==", "cpu": [ "x64" ], @@ -3007,9 +3734,9 @@ } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.24.2.tgz", - "integrity": "sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.28.1.tgz", + "integrity": "sha512-wG2EA8ENdEI0qhkSZMjfqrdY+ziCYCPMmtZjjIwOmXFjmyzEHn+UUxk5of+SYsjtfs3VpnlC7QLzSI5hY/rOAw==", "cpu": [ "arm64" ], @@ -3024,9 +3751,9 @@ } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.24.2.tgz", - "integrity": "sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.28.1.tgz", + "integrity": "sha512-i7dZ9vQgnvSCzi/rYCXNgtF/U+eKZNJBzu3eTQbRgHnM7tNSizLOkRFAl3qzVc/Op/u5YkHHa4pf/3DOYHthLQ==", "cpu": [ "x64" ], @@ -3041,9 +3768,9 @@ } }, "node_modules/@esbuild/linux-arm": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.24.2.tgz", - "integrity": "sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.28.1.tgz", + "integrity": "sha512-qVXBOHQS+d5Y722GwJzJUtOLlX7km3CraOaGormF1pDtPd2C/l1SHRPgjLunLGe51Sh5YYWKMFDyV4SxgMQYTQ==", "cpu": [ "arm" ], @@ -3058,9 +3785,9 @@ } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.24.2.tgz", - "integrity": "sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.28.1.tgz", + "integrity": "sha512-yHs+0uc8+nvEAfAfxrWQKK5peSNzBc4PegcMO0EJ2hT71uA7vB8Ihg2e77R2P7SG5uYjPbHlLLmve4LLLRCf0g==", "cpu": [ "arm64" ], @@ -3075,9 +3802,9 @@ } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.24.2.tgz", - "integrity": "sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.28.1.tgz", + "integrity": "sha512-d1z4ZuP0ajrfz/FhGT4vv278rX8KnPPJx8i5+AtK7TYbx9Le9F1hyzurZpkEyjkGa9dUGhQow4C1NmeGvqxN2w==", "cpu": [ "ia32" ], @@ -3092,9 +3819,9 @@ } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.24.2.tgz", - "integrity": "sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.28.1.tgz", + "integrity": "sha512-M5sRjUVZrkm1OAPR3dlOYzNmN+loZKGVi1VUQGrwuqLcbR6qeAz+famMhjASeH3YVKvZz+zT1jlh/keC3Rj/lg==", "cpu": [ "loong64" ], @@ -3109,9 +3836,9 @@ } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.24.2.tgz", - "integrity": "sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.28.1.tgz", + "integrity": "sha512-mRObBZeHh2OxcBFPWE/FjylkRgZdYuiTR3vaTozquCGOH14iP9oN4x4Ge81CoIDYQrXmIxpFumJBu5MtZpnQJQ==", "cpu": [ "mips64el" ], @@ -3126,9 +3853,9 @@ } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.24.2.tgz", - "integrity": "sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.28.1.tgz", + "integrity": "sha512-slScBsMAb3GFDcdrCgLwZtPYRoH2H/youv10QiZyRjmsP48fznoveWytSgCI/R0ZcUgpc0ZhIUEx6LHts8yrfQ==", "cpu": [ "ppc64" ], @@ -3143,9 +3870,9 @@ } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.24.2.tgz", - "integrity": "sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.28.1.tgz", + "integrity": "sha512-kw0owk1o0GFETUJyW0jc0G4Yzs0BHZn0JDZ8JRT088vjJYX777BAs1fDGxAC+q831qOs2DTC96mNsG2opdfyyQ==", "cpu": [ "riscv64" ], @@ -3160,9 +3887,9 @@ } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.24.2.tgz", - "integrity": "sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.28.1.tgz", + "integrity": "sha512-/lAIjX8aYFRByhh6L5rYtPEDRqa9de/4V/juOXcta5frjvzXO4/sqEtyytse0g3zZFuWu5cDN0MkLz2qRDD2Ag==", "cpu": [ "s390x" ], @@ -3177,9 +3904,9 @@ } }, "node_modules/@esbuild/linux-x64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.24.2.tgz", - "integrity": "sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.28.1.tgz", + "integrity": "sha512-u/anNYF2mmVOEDwLtnQ1wOr3EZ9sTNGLWrsYGYwHWzGA3Si84IOkHXlbWTD1NB+9/1lcnweYKO54uhxZydNzfA==", "cpu": [ "x64" ], @@ -3194,9 +3921,9 @@ } }, "node_modules/@esbuild/netbsd-arm64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.24.2.tgz", - "integrity": "sha512-wuLK/VztRRpMt9zyHSazyCVdCXlpHkKm34WUyinD2lzK07FAHTq0KQvZZlXikNWkDGoT6x3TD51jKQ7gMVpopw==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.28.1.tgz", + "integrity": "sha512-oks0DYbLwWMmaakTsCb+zL4E+aHRVLom9IJZOAthMQEPiQmydXHkziYEsGYRx0uNV/IjEKGAV941JzH02pflqw==", "cpu": [ "arm64" ], @@ -3211,9 +3938,9 @@ } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.24.2.tgz", - "integrity": "sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.28.1.tgz", + "integrity": "sha512-aeL6lAnN89Hz43Mlh1G8ARasbuoYvSITDEx0tHh5b7jJnHcssqgjy9Yx430GDpmCa6OyrKoS0aNRjKundRizGg==", "cpu": [ "x64" ], @@ -3228,9 +3955,9 @@ } }, "node_modules/@esbuild/openbsd-arm64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.24.2.tgz", - "integrity": "sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.28.1.tgz", + "integrity": "sha512-MEFJe5C3R8pwXdZ5Y21oo6m7ePiS0d9pWucn99O/wvyJZChoIQKrQDxKrGeW8F5+T0okTHesAmDeiHDTIq0V/Q==", "cpu": [ "arm64" ], @@ -3245,9 +3972,9 @@ } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.24.2.tgz", - "integrity": "sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.28.1.tgz", + "integrity": "sha512-i/ZLIOafE0Z8cI/XANJAixoJL/uRAoS2xOA3rb0xN+KK0K177cMAsQYkzHtBrtMXAKuAc7HGgcWiZ/sRC1Nxgw==", "cpu": [ "x64" ], @@ -3261,10 +3988,27 @@ "node": ">=18" } }, + "node_modules/@esbuild/openharmony-arm64": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.28.1.tgz", + "integrity": "sha512-ge+Z7EXFNt2BO1oAMsVpiQ8EwndV9i1xXerAeTIK7AtPs3bKFXQM7nlRxDSIUIMeueR1CNXxqztLzdNeReKBJg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">=18" + } + }, "node_modules/@esbuild/sunos-x64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.24.2.tgz", - "integrity": "sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.28.1.tgz", + "integrity": "sha512-BEjgtECkL3vY+SaSQ6nzVfiALUeFxpawyp8Jmf5PtYhf1Ug40N1h/hxlhts+f1FvSvarEigdxS3BlSMI2PJLcQ==", "cpu": [ "x64" ], @@ -3279,9 +4023,9 @@ } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.24.2.tgz", - "integrity": "sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.28.1.tgz", + "integrity": "sha512-lCv9eK/H6ZJWbE7bh2nw54CZ9M2nupBxJcTsdk/QQnWkdSjKGuxmmH8/GWrlT1eMmZfn4dGcCjRte397WqfQXA==", "cpu": [ "arm64" ], @@ -3296,9 +4040,9 @@ } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.24.2.tgz", - "integrity": "sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.28.1.tgz", + "integrity": "sha512-zvb/mB2bSCoJOpoCBgYKKpX6YM6mJBlBUVUtVj41DlZJVEB6/0CKlRYxP5wWl1C1ILiCoAU5wZZ4q1P3qeS6Eg==", "cpu": [ "ia32" ], @@ -3313,9 +4057,9 @@ } }, "node_modules/@esbuild/win32-x64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.24.2.tgz", - "integrity": "sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.28.1.tgz", + "integrity": "sha512-bm4Mowrv+GXMlpWX++EcXw/iLyd1o3+bJkC2DkWXYVvgZCqD/bSj9ctZeAMC3cIxgjRVR2Dufaiu4YPxr5gW1A==", "cpu": [ "x64" ], @@ -3329,62 +4073,112 @@ "node": ">=18" } }, + "node_modules/@gar/promise-retry": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@gar/promise-retry/-/promise-retry-1.0.3.tgz", + "integrity": "sha512-GmzA9ckNokPypTg10pgpeHNQe7ph+iIKKmhKu3Ob9ANkswreCx7R3cKmY781K8QK3AqVL3xVh9A42JvIAbkkSA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^20.17.0 || >=22.9.0" + } + }, + "node_modules/@hono/node-server": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@hono/node-server/-/node-server-2.1.3.tgz", + "integrity": "sha512-TA//nWMqPhbfdfneACk6t5a9eqbS9lABEPyKn0/xZTah3H3U2XaVg85rJFl0/Fyit0I552YDHgXGVSf3GwqbUw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=20" + }, + "peerDependencies": { + "hono": "^4" + } + }, + "node_modules/@inquirer/ansi": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@inquirer/ansi/-/ansi-1.0.2.tgz", + "integrity": "sha512-S8qNSZiYzFd0wAcyG5AXCvUHC5Sr7xpZ9wZ2py9XR88jUz8wooStVx5M6dRzczbBWjic9NP7+rY0Xi7qqK/aMQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, "node_modules/@inquirer/checkbox": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/@inquirer/checkbox/-/checkbox-4.0.6.tgz", - "integrity": "sha512-PgP35JfmGjHU0LSXOyRew0zHuA9N6OJwOlos1fZ20b7j8ISeAdib3L+n0jIxBtX958UeEpte6xhG/gxJ5iUqMw==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/@inquirer/checkbox/-/checkbox-4.3.2.tgz", + "integrity": "sha512-VXukHf0RR1doGe6Sm4F0Em7SWYLTHSsbGfJdS9Ja2bX5/D5uwVOEjr07cncLROdBvmnvCATYEWlHqYmXv2IlQA==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/core": "^10.1.4", - "@inquirer/figures": "^1.0.9", - "@inquirer/type": "^3.0.2", - "ansi-escapes": "^4.3.2", - "yoctocolors-cjs": "^2.1.2" + "@inquirer/ansi": "^1.0.2", + "@inquirer/core": "^10.3.2", + "@inquirer/figures": "^1.0.15", + "@inquirer/type": "^3.0.10", + "yoctocolors-cjs": "^2.1.3" }, "engines": { "node": ">=18" }, "peerDependencies": { "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } } }, "node_modules/@inquirer/confirm": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/@inquirer/confirm/-/confirm-5.1.1.tgz", - "integrity": "sha512-vVLSbGci+IKQvDOtzpPTCOiEJCNidHcAq9JYVoWTW0svb5FiwSLotkM+JXNXejfjnzVYV9n0DTBythl9+XgTxg==", + "version": "5.1.14", + "resolved": "https://registry.npmjs.org/@inquirer/confirm/-/confirm-5.1.14.tgz", + "integrity": "sha512-5yR4IBfe0kXe59r1YCTG8WXkUbl7Z35HK87Sw+WUyGD8wNUx7JvY7laahzeytyE1oLn74bQnL7hstctQxisQ8Q==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/core": "^10.1.2", - "@inquirer/type": "^3.0.2" + "@inquirer/core": "^10.1.15", + "@inquirer/type": "^3.0.8" }, "engines": { "node": ">=18" }, "peerDependencies": { "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } } }, "node_modules/@inquirer/core": { - "version": "10.1.4", - "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-10.1.4.tgz", - "integrity": "sha512-5y4/PUJVnRb4bwWY67KLdebWOhOc7xj5IP2J80oWXa64mVag24rwQ1VAdnj7/eDY/odhguW0zQ1Mp1pj6fO/2w==", + "version": "10.3.2", + "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-10.3.2.tgz", + "integrity": "sha512-43RTuEbfP8MbKzedNqBrlhhNKVwoK//vUFNW3Q3vZ88BLcrs4kYpGg+B2mm5p2K/HfygoCxuKwJJiv8PbGmE0A==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/figures": "^1.0.9", - "@inquirer/type": "^3.0.2", - "ansi-escapes": "^4.3.2", + "@inquirer/ansi": "^1.0.2", + "@inquirer/figures": "^1.0.15", + "@inquirer/type": "^3.0.10", "cli-width": "^4.1.0", "mute-stream": "^2.0.0", "signal-exit": "^4.1.0", - "strip-ansi": "^6.0.1", "wrap-ansi": "^6.2.0", - "yoctocolors-cjs": "^2.1.2" + "yoctocolors-cjs": "^2.1.3" }, "engines": { "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } } }, "node_modules/@inquirer/core/node_modules/signal-exit": { @@ -3401,45 +4195,94 @@ } }, "node_modules/@inquirer/editor": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/@inquirer/editor/-/editor-4.2.3.tgz", - "integrity": "sha512-S9KnIOJuTZpb9upeRSBBhoDZv7aSV3pG9TECrBj0f+ZsFwccz886hzKBrChGrXMJwd4NKY+pOA9Vy72uqnd6Eg==", + "version": "4.2.23", + "resolved": "https://registry.npmjs.org/@inquirer/editor/-/editor-4.2.23.tgz", + "integrity": "sha512-aLSROkEwirotxZ1pBaP8tugXRFCxW94gwrQLxXfrZsKkfjOYC1aRvAZuhpJOb5cu4IBTJdsCigUlf2iCOu4ZDQ==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/core": "^10.1.4", - "@inquirer/type": "^3.0.2", - "external-editor": "^3.1.0" + "@inquirer/core": "^10.3.2", + "@inquirer/external-editor": "^1.0.3", + "@inquirer/type": "^3.0.10" }, "engines": { "node": ">=18" }, "peerDependencies": { "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } } }, "node_modules/@inquirer/expand": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/@inquirer/expand/-/expand-4.0.6.tgz", - "integrity": "sha512-TRTfi1mv1GeIZGyi9PQmvAaH65ZlG4/FACq6wSzs7Vvf1z5dnNWsAAXBjWMHt76l+1hUY8teIqJFrWBk5N6gsg==", + "version": "4.0.23", + "resolved": "https://registry.npmjs.org/@inquirer/expand/-/expand-4.0.23.tgz", + "integrity": "sha512-nRzdOyFYnpeYTTR2qFwEVmIWypzdAx/sIkCMeTNTcflFOovfqUk+HcFhQQVBftAh9gmGrpFj6QcGEqrDMDOiew==", + "dev": true, + "license": "MIT", + "dependencies": { + "@inquirer/core": "^10.3.2", + "@inquirer/type": "^3.0.10", + "yoctocolors-cjs": "^2.1.3" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@inquirer/external-editor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@inquirer/external-editor/-/external-editor-1.0.3.tgz", + "integrity": "sha512-RWbSrDiYmO4LbejWY7ttpxczuwQyZLBUyygsA9Nsv95hpzUWwnNTVQmAq3xuh7vNwCp07UTmE5i11XAEExx4RA==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/core": "^10.1.4", - "@inquirer/type": "^3.0.2", - "yoctocolors-cjs": "^2.1.2" + "chardet": "^2.1.1", + "iconv-lite": "^0.7.0" }, "engines": { "node": ">=18" }, "peerDependencies": { "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@inquirer/external-editor/node_modules/iconv-lite": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.3.tgz", + "integrity": "sha512-IKXpvIzjnC9XTAUbVBcMfGS0EPaIXtW6v+zr+RRp+hqULEpo0owZax6wyRwPOJbWbzjYspQwusTsfVr0ifh4uQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" } }, "node_modules/@inquirer/figures": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@inquirer/figures/-/figures-1.0.9.tgz", - "integrity": "sha512-BXvGj0ehzrngHTPTDqUoDT3NXL8U0RxUk2zJm2A66RhCEIWdtU1v6GuUqNAgArW4PQ9CinqIWyHdQgdwOj06zQ==", + "version": "1.0.15", + "resolved": "https://registry.npmjs.org/@inquirer/figures/-/figures-1.0.15.tgz", + "integrity": "sha512-t2IEY+unGHOzAaVM5Xx6DEWKeXlDDcNPeDyUpsRc6CUhBfU3VQOEl+Vssh7VNp1dR8MdUJBWhuObjXCsVpjN5g==", "dev": true, "license": "MIT", "engines": { @@ -3447,143 +4290,178 @@ } }, "node_modules/@inquirer/input": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/@inquirer/input/-/input-4.1.3.tgz", - "integrity": "sha512-zeo++6f7hxaEe7OjtMzdGZPHiawsfmCZxWB9X1NpmYgbeoyerIbWemvlBxxl+sQIlHC0WuSAG19ibMq3gbhaqQ==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@inquirer/input/-/input-4.3.1.tgz", + "integrity": "sha512-kN0pAM4yPrLjJ1XJBjDxyfDduXOuQHrBB8aLDMueuwUGn+vNpF7Gq7TvyVxx8u4SHlFFj4trmj+a2cbpG4Jn1g==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/core": "^10.1.4", - "@inquirer/type": "^3.0.2" + "@inquirer/core": "^10.3.2", + "@inquirer/type": "^3.0.10" }, "engines": { "node": ">=18" }, "peerDependencies": { "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } } }, "node_modules/@inquirer/number": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/@inquirer/number/-/number-3.0.6.tgz", - "integrity": "sha512-xO07lftUHk1rs1gR0KbqB+LJPhkUNkyzV/KhH+937hdkMazmAYHLm1OIrNKpPelppeV1FgWrgFDjdUD8mM+XUg==", + "version": "3.0.23", + "resolved": "https://registry.npmjs.org/@inquirer/number/-/number-3.0.23.tgz", + "integrity": "sha512-5Smv0OK7K0KUzUfYUXDXQc9jrf8OHo4ktlEayFlelCjwMXz0299Y8OrI+lj7i4gCBY15UObk76q0QtxjzFcFcg==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/core": "^10.1.4", - "@inquirer/type": "^3.0.2" + "@inquirer/core": "^10.3.2", + "@inquirer/type": "^3.0.10" }, "engines": { "node": ">=18" }, "peerDependencies": { "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } } }, "node_modules/@inquirer/password": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/@inquirer/password/-/password-4.0.6.tgz", - "integrity": "sha512-QLF0HmMpHZPPMp10WGXh6F+ZPvzWE7LX6rNoccdktv/Rov0B+0f+eyXkAcgqy5cH9V+WSpbLxu2lo3ysEVK91w==", + "version": "4.0.23", + "resolved": "https://registry.npmjs.org/@inquirer/password/-/password-4.0.23.tgz", + "integrity": "sha512-zREJHjhT5vJBMZX/IUbyI9zVtVfOLiTO66MrF/3GFZYZ7T4YILW5MSkEYHceSii/KtRk+4i3RE7E1CUXA2jHcA==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/core": "^10.1.4", - "@inquirer/type": "^3.0.2", - "ansi-escapes": "^4.3.2" + "@inquirer/ansi": "^1.0.2", + "@inquirer/core": "^10.3.2", + "@inquirer/type": "^3.0.10" }, "engines": { "node": ">=18" }, "peerDependencies": { "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } } }, "node_modules/@inquirer/prompts": { - "version": "7.2.1", - "resolved": "https://registry.npmjs.org/@inquirer/prompts/-/prompts-7.2.1.tgz", - "integrity": "sha512-v2JSGri6/HXSfoGIwuKEn8sNCQK6nsB2BNpy2lSX6QH9bsECrMv93QHnj5+f+1ZWpF/VNioIV2B/PDox8EvGuQ==", + "version": "7.8.2", + "resolved": "https://registry.npmjs.org/@inquirer/prompts/-/prompts-7.8.2.tgz", + "integrity": "sha512-nqhDw2ZcAUrKNPwhjinJny903bRhI0rQhiDz1LksjeRxqa36i3l75+4iXbOy0rlDpLJGxqtgoPavQjmmyS5UJw==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/checkbox": "^4.0.4", - "@inquirer/confirm": "^5.1.1", - "@inquirer/editor": "^4.2.1", - "@inquirer/expand": "^4.0.4", - "@inquirer/input": "^4.1.1", - "@inquirer/number": "^3.0.4", - "@inquirer/password": "^4.0.4", - "@inquirer/rawlist": "^4.0.4", - "@inquirer/search": "^3.0.4", - "@inquirer/select": "^4.0.4" + "@inquirer/checkbox": "^4.2.1", + "@inquirer/confirm": "^5.1.14", + "@inquirer/editor": "^4.2.17", + "@inquirer/expand": "^4.0.17", + "@inquirer/input": "^4.2.1", + "@inquirer/number": "^3.0.17", + "@inquirer/password": "^4.0.17", + "@inquirer/rawlist": "^4.1.5", + "@inquirer/search": "^3.1.0", + "@inquirer/select": "^4.3.1" }, "engines": { "node": ">=18" }, "peerDependencies": { "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } } }, "node_modules/@inquirer/rawlist": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/@inquirer/rawlist/-/rawlist-4.0.6.tgz", - "integrity": "sha512-QoE4s1SsIPx27FO4L1b1mUjVcoHm1pWE/oCmm4z/Hl+V1Aw5IXl8FYYzGmfXaBT0l/sWr49XmNSiq7kg3Kd/Lg==", + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/@inquirer/rawlist/-/rawlist-4.1.11.tgz", + "integrity": "sha512-+LLQB8XGr3I5LZN/GuAHo+GpDJegQwuPARLChlMICNdwW7OwV2izlCSCxN6cqpL0sMXmbKbFcItJgdQq5EBXTw==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/core": "^10.1.4", - "@inquirer/type": "^3.0.2", - "yoctocolors-cjs": "^2.1.2" + "@inquirer/core": "^10.3.2", + "@inquirer/type": "^3.0.10", + "yoctocolors-cjs": "^2.1.3" }, "engines": { "node": ">=18" }, "peerDependencies": { "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } } }, "node_modules/@inquirer/search": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/@inquirer/search/-/search-3.0.6.tgz", - "integrity": "sha512-eFZ2hiAq0bZcFPuFFBmZEtXU1EarHLigE+ENCtpO+37NHCl4+Yokq1P/d09kUblObaikwfo97w+0FtG/EXl5Ng==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/@inquirer/search/-/search-3.2.2.tgz", + "integrity": "sha512-p2bvRfENXCZdWF/U2BXvnSI9h+tuA8iNqtUKb9UWbmLYCRQxd8WkvwWvYn+3NgYaNwdUkHytJMGG4MMLucI1kA==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/core": "^10.1.4", - "@inquirer/figures": "^1.0.9", - "@inquirer/type": "^3.0.2", - "yoctocolors-cjs": "^2.1.2" + "@inquirer/core": "^10.3.2", + "@inquirer/figures": "^1.0.15", + "@inquirer/type": "^3.0.10", + "yoctocolors-cjs": "^2.1.3" }, "engines": { "node": ">=18" }, "peerDependencies": { "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } } }, "node_modules/@inquirer/select": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/@inquirer/select/-/select-4.0.6.tgz", - "integrity": "sha512-yANzIiNZ8fhMm4NORm+a74+KFYHmf7BZphSOBovIzYPVLquseTGEkU5l2UTnBOf5k0VLmTgPighNDLE9QtbViQ==", + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/@inquirer/select/-/select-4.4.2.tgz", + "integrity": "sha512-l4xMuJo55MAe+N7Qr4rX90vypFwCajSakx59qe/tMaC1aEHWLyw68wF4o0A4SLAY4E0nd+Vt+EyskeDIqu1M6w==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/core": "^10.1.4", - "@inquirer/figures": "^1.0.9", - "@inquirer/type": "^3.0.2", - "ansi-escapes": "^4.3.2", - "yoctocolors-cjs": "^2.1.2" + "@inquirer/ansi": "^1.0.2", + "@inquirer/core": "^10.3.2", + "@inquirer/figures": "^1.0.15", + "@inquirer/type": "^3.0.10", + "yoctocolors-cjs": "^2.1.3" }, "engines": { "node": ">=18" }, "peerDependencies": { "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } } }, "node_modules/@inquirer/type": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-3.0.2.tgz", - "integrity": "sha512-ZhQ4TvhwHZF+lGhQ2O/rsjo80XoZR5/5qhOY3t6FJuX5XBg5Be8YzYTvaUGJnc12AUGI2nr4QSUE4PhKSigx7g==", + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-3.0.10.tgz", + "integrity": "sha512-BvziSRxfz5Ov8ch0z/n3oijRSEcEsHnhggm4xFZe93DHcUCTlutlq9Ox4SVENAfcRD22UQq7T/atg9Wr3k09eA==", "dev": true, "license": "MIT", "engines": { @@ -3591,196 +4469,324 @@ }, "peerDependencies": { "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } } }, - "node_modules/@isaacs/cliui": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", - "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "node_modules/@isaacs/fs-minipass": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@isaacs/fs-minipass/-/fs-minipass-4.0.1.tgz", + "integrity": "sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==", "dev": true, "license": "ISC", "dependencies": { - "string-width": "^5.1.2", - "string-width-cjs": "npm:string-width@^4.2.0", - "strip-ansi": "^7.0.1", - "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", - "wrap-ansi": "^8.1.0", - "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + "minipass": "^7.0.4" }, "engines": { - "node": ">=12" + "node": ">=18.0.0" } }, - "node_modules/@isaacs/cliui/node_modules/ansi-regex": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", - "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", "dev": true, - "license": "MIT", "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" + "node": ">=8" } }, - "node_modules/@isaacs/cliui/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", "dev": true, "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" } }, - "node_modules/@isaacs/cliui/node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true, - "license": "MIT" - }, - "node_modules/@isaacs/cliui/node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "node_modules/@jridgewell/remapping": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", + "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", "dev": true, "license": "MIT", "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" } }, - "node_modules/@isaacs/cliui/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", + "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.6.0.tgz", + "integrity": "sha512-T7jf+5zgsZHwNJ4lvQ7/aezbyk0nNX+zJVWpmHA7VYsEx7a7qr5Rg5IbtJFqkgze5Y2sruq1RUY8Q837Od7iFw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", "dev": true, "license": "MIT", "dependencies": { - "ansi-regex": "^6.0.1" - }, + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@jsonjoy.com/base64": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/base64/-/base64-1.1.2.tgz", + "integrity": "sha512-q6XAnWQDIMA3+FTiOYajoYqySkO+JSat0ytXGSuRdq9uXE7o92gzuQwQM14xaCRlBLGq3v5miDGC4vkVTn54xA==", + "dev": true, + "license": "Apache-2.0", "engines": { - "node": ">=12" + "node": ">=10.0" }, "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" } }, - "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "node_modules/@jsonjoy.com/buffers": { + "version": "17.67.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/buffers/-/buffers-17.67.0.tgz", + "integrity": "sha512-tfExRpYxBvi32vPs9ZHaTjSP4fHAfzSmcahOfNxtvGHcyJel+aibkPlGeBB+7AoC6hL7lXIE++8okecBxx7lcw==", "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" + "license": "Apache-2.0", + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/codegen": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/codegen/-/codegen-1.0.0.tgz", + "integrity": "sha512-E8Oy+08cmCf0EK/NMxpaJZmOxPqM+6iSe2S4nlSBrPZOORoDJILxtbSUEDKQyTamm/BVAhIGllOBNU79/dwf0g==", + "dev": true, + "license": "Apache-2.0", "engines": { - "node": ">=12" + "node": ">=10.0" }, "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" } }, - "node_modules/@isaacs/fs-minipass": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@isaacs/fs-minipass/-/fs-minipass-4.0.1.tgz", - "integrity": "sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==", + "node_modules/@jsonjoy.com/fs-core": { + "version": "4.80.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-core/-/fs-core-4.80.0.tgz", + "integrity": "sha512-qMKWshnyjbyhm+NbzqGE3w5y1mckFFEMj0aDPU2/JBNh1BzIjVy9esq9lBmRnNVmhMEkxwDzLZ8Gqh5G1P5Dag==", "dev": true, - "license": "ISC", + "license": "Apache-2.0", "dependencies": { - "minipass": "^7.0.4" + "@jsonjoy.com/fs-node-builtins": "4.80.0", + "@jsonjoy.com/fs-node-utils": "4.80.0", + "thingies": "^2.5.0" }, "engines": { - "node": ">=18.0.0" + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" } }, - "node_modules/@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "node_modules/@jsonjoy.com/fs-fsa": { + "version": "4.80.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-fsa/-/fs-fsa-4.80.0.tgz", + "integrity": "sha512-ZBEKl7J6dbkRCfmrFV48Re211A/FHqniTUhsWCsaRteNSOqMgkX3qF1UreVgwB9oSPm81JLAwhIi6Lb/NH/PoA==", "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@jsonjoy.com/fs-core": "4.80.0", + "@jsonjoy.com/fs-node-builtins": "4.80.0", + "@jsonjoy.com/fs-node-utils": "4.80.0", + "thingies": "^2.5.0" + }, "engines": { - "node": ">=8" + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" } }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", - "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "node_modules/@jsonjoy.com/fs-node": { + "version": "4.80.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-node/-/fs-node-4.80.0.tgz", + "integrity": "sha512-yiBlUfkMMRFFGy8CD/h2zd5rPnrM6bjlF+nx2LRAxNV6hOSiuObQIUEE7m7y2VTMisjxCRtzINH94bFGySWL7g==", "dev": true, + "license": "Apache-2.0", "dependencies": { - "@jridgewell/set-array": "^1.2.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.24" + "@jsonjoy.com/fs-core": "4.80.0", + "@jsonjoy.com/fs-node-builtins": "4.80.0", + "@jsonjoy.com/fs-node-utils": "4.80.0", + "@jsonjoy.com/fs-print": "4.80.0", + "@jsonjoy.com/fs-snapshot": "4.80.0", + "glob-to-regex.js": "^1.3.1", + "thingies": "^2.5.0" }, "engines": { - "node": ">=6.0.0" + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" } }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", - "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "node_modules/@jsonjoy.com/fs-node-builtins": { + "version": "4.80.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-node-builtins/-/fs-node-builtins-4.80.0.tgz", + "integrity": "sha512-OIOIhqaWiwUySFMny4epIAoviXsyMaQQ63PTc3zH+5HEOvarl5hpUmZIhp2m5+OfyKAh5ylxXnQIgew1OgJDVw==", "dev": true, + "license": "Apache-2.0", "engines": { - "node": ">=6.0.0" + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" } }, - "node_modules/@jridgewell/set-array": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", - "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "node_modules/@jsonjoy.com/fs-node-to-fsa": { + "version": "4.80.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-node-to-fsa/-/fs-node-to-fsa-4.80.0.tgz", + "integrity": "sha512-ljeaR5xwtX1EyRmB0wvXANUMQZ3mjKcm7z8s2N8D8SLQ04CcAGtUhHFRZQXFb9mhgFyEVMydQGQtSOFS7pcrFQ==", "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@jsonjoy.com/fs-fsa": "4.80.0", + "@jsonjoy.com/fs-node-builtins": "4.80.0", + "@jsonjoy.com/fs-node-utils": "4.80.0" + }, "engines": { - "node": ">=6.0.0" + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" } }, - "node_modules/@jridgewell/source-map": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", - "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", + "node_modules/@jsonjoy.com/fs-node-utils": { + "version": "4.80.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-node-utils/-/fs-node-utils-4.80.0.tgz", + "integrity": "sha512-xwHeVVi3f+Khg/Fmb8i5qoYVmQ08QznE5TWhQokUmIZjz4KBPzU+zt/+bahBI6G1ghtqajt27lWuAciIxApuzA==", "dev": true, + "license": "Apache-2.0", "dependencies": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.25" + "@jsonjoy.com/fs-node-builtins": "4.80.0", + "glob-to-regex.js": "^1.3.1" + }, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" } }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", - "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "node_modules/@jsonjoy.com/fs-print": { + "version": "4.80.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-print/-/fs-print-4.80.0.tgz", + "integrity": "sha512-1ocZLJw/m/xlq0moaIHO7HV9nHRVBUvdc2zMzhsJGkFOrqfwWvexfCv5cYCPPLRhP+9p3yunoi4Ep5YhRORC9Q==", "dev": true, - "license": "MIT" + "license": "Apache-2.0", + "dependencies": { + "@jsonjoy.com/fs-node-utils": "4.80.0", + "tree-dump": "^1.1.0" + }, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "node_modules/@jsonjoy.com/fs-snapshot": { + "version": "4.80.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-snapshot/-/fs-snapshot-4.80.0.tgz", + "integrity": "sha512-3AV23Q1H228KTtJKTUE0nNq8FCtxSvtENOLrEat80wkAJCKHuqQEv8yjhpS8Bei2OEFJAnluGXp9Ri2SWBlROw==", "dev": true, + "license": "Apache-2.0", "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" + "@jsonjoy.com/buffers": "^17.65.0", + "@jsonjoy.com/fs-node-utils": "4.80.0", + "@jsonjoy.com/json-pack": "^17.65.0", + "@jsonjoy.com/util": "^17.65.0" + }, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" } }, - "node_modules/@jsonjoy.com/base64": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/base64/-/base64-1.1.2.tgz", - "integrity": "sha512-q6XAnWQDIMA3+FTiOYajoYqySkO+JSat0ytXGSuRdq9uXE7o92gzuQwQM14xaCRlBLGq3v5miDGC4vkVTn54xA==", + "node_modules/@jsonjoy.com/fs-snapshot/node_modules/@jsonjoy.com/base64": { + "version": "17.67.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/base64/-/base64-17.67.0.tgz", + "integrity": "sha512-5SEsJGsm15aP8TQGkDfJvz9axgPwAEm98S5DxOuYe8e1EbfajcDmgeXXzccEjh+mLnjqEKrkBdjHWS5vFNwDdw==", "dev": true, "license": "Apache-2.0", "engines": { @@ -3794,17 +4800,38 @@ "tslib": "2" } }, - "node_modules/@jsonjoy.com/json-pack": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/json-pack/-/json-pack-1.1.1.tgz", - "integrity": "sha512-osjeBqMJ2lb/j/M8NCPjs1ylqWIcTRTycIhVB5pt6LgzgeRSb0YRZ7j9RfA8wIUrsr/medIuhVyonXRZWLyfdw==", + "node_modules/@jsonjoy.com/fs-snapshot/node_modules/@jsonjoy.com/codegen": { + "version": "17.67.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/codegen/-/codegen-17.67.0.tgz", + "integrity": "sha512-idnkUplROpdBOV0HMcwhsCUS5TRUi9poagdGs70A6S4ux9+/aPuKbh8+UYRTLYQHtXvAdNfQWXDqZEx5k4Dj2Q==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/fs-snapshot/node_modules/@jsonjoy.com/json-pack": { + "version": "17.67.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/json-pack/-/json-pack-17.67.0.tgz", + "integrity": "sha512-t0ejURcGaZsn1ClbJ/3kFqSOjlryd92eQY465IYrezsXmPcfHPE/av4twRSxf6WE+TkZgLY+71vCZbiIiFKA/w==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@jsonjoy.com/base64": "^1.1.1", - "@jsonjoy.com/util": "^1.1.2", + "@jsonjoy.com/base64": "17.67.0", + "@jsonjoy.com/buffers": "17.67.0", + "@jsonjoy.com/codegen": "17.67.0", + "@jsonjoy.com/json-pointer": "17.67.0", + "@jsonjoy.com/util": "17.67.0", "hyperdyperid": "^1.2.0", - "thingies": "^1.20.0" + "thingies": "^2.5.0", + "tree-dump": "^1.1.0" }, "engines": { "node": ">=10.0" @@ -3817,12 +4844,15 @@ "tslib": "2" } }, - "node_modules/@jsonjoy.com/util": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/util/-/util-1.5.0.tgz", - "integrity": "sha512-ojoNsrIuPI9g6o8UxhraZQSyF2ByJanAY4cTFbc8Mf2AXEF4aQRGY1dJxyJpuyav8r9FGflEt/Ff3u5Nt6YMPA==", + "node_modules/@jsonjoy.com/fs-snapshot/node_modules/@jsonjoy.com/json-pointer": { + "version": "17.67.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/json-pointer/-/json-pointer-17.67.0.tgz", + "integrity": "sha512-+iqOFInH+QZGmSuaybBUNdh7yvNrXvqR+h3wjXm0N/3JK1EyyFAeGJvqnmQL61d1ARLlk/wJdFKSL+LHJ1eaUA==", "dev": true, "license": "Apache-2.0", + "dependencies": { + "@jsonjoy.com/util": "17.67.0" + }, "engines": { "node": ">=10.0" }, @@ -3834,56 +4864,158 @@ "tslib": "2" } }, - "node_modules/@leichtgewicht/ip-codec": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz", - "integrity": "sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==", - "dev": true, - "license": "MIT" - }, - "node_modules/@listr2/prompt-adapter-inquirer": { - "version": "2.0.18", - "resolved": "https://registry.npmjs.org/@listr2/prompt-adapter-inquirer/-/prompt-adapter-inquirer-2.0.18.tgz", - "integrity": "sha512-0hz44rAcrphyXcA8IS7EJ2SCoaBZD2u5goE8S/e+q/DL+dOGpqpcLidVOFeLG3VgML62SXmfRLAhWt0zL1oW4Q==", + "node_modules/@jsonjoy.com/fs-snapshot/node_modules/@jsonjoy.com/util": { + "version": "17.67.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/util/-/util-17.67.0.tgz", + "integrity": "sha512-6+8xBaz1rLSohlGh68D1pdw3AwDi9xydm8QNlAFkvnavCJYSze+pxoW2VKP8p308jtlMRLs5NTHfPlZLd4w7ew==", "dev": true, - "license": "MIT", + "license": "Apache-2.0", "dependencies": { - "@inquirer/type": "^1.5.5" + "@jsonjoy.com/buffers": "17.67.0", + "@jsonjoy.com/codegen": "17.67.0" }, "engines": { - "node": ">=18.0.0" + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" }, "peerDependencies": { - "@inquirer/prompts": ">= 3 < 8" + "tslib": "2" } }, - "node_modules/@listr2/prompt-adapter-inquirer/node_modules/@inquirer/type": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-1.5.5.tgz", - "integrity": "sha512-MzICLu4yS7V8AA61sANROZ9vT1H3ooca5dSmI1FjZkzq7o/koMsRfQSzRtFo+F3Ao4Sf1C0bpLKejpKB/+j6MA==", + "node_modules/@jsonjoy.com/json-pack": { + "version": "1.21.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/json-pack/-/json-pack-1.21.0.tgz", + "integrity": "sha512-+AKG+R2cfZMShzrF2uQw34v3zbeDYUqnQ+jg7ORic3BGtfw9p/+N6RJbq/kkV8JmYZaINknaEQ2m0/f693ZPpg==", "dev": true, - "license": "MIT", + "license": "Apache-2.0", "dependencies": { - "mute-stream": "^1.0.0" + "@jsonjoy.com/base64": "^1.1.2", + "@jsonjoy.com/buffers": "^1.2.0", + "@jsonjoy.com/codegen": "^1.0.0", + "@jsonjoy.com/json-pointer": "^1.0.2", + "@jsonjoy.com/util": "^1.9.0", + "hyperdyperid": "^1.2.0", + "thingies": "^2.5.0", + "tree-dump": "^1.1.0" }, "engines": { - "node": ">=18" + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" } }, - "node_modules/@listr2/prompt-adapter-inquirer/node_modules/mute-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-1.0.0.tgz", - "integrity": "sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==", + "node_modules/@jsonjoy.com/json-pack/node_modules/@jsonjoy.com/buffers": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/buffers/-/buffers-1.2.1.tgz", + "integrity": "sha512-12cdlDwX4RUM3QxmUbVJWqZ/mrK6dFQH4Zxq6+r1YXKXYBNgZXndx2qbCJwh3+WWkCSn67IjnlG3XYTvmvYtgA==", "dev": true, - "license": "ISC", + "license": "Apache-2.0", "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@lmdb/lmdb-darwin-arm64": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/@lmdb/lmdb-darwin-arm64/-/lmdb-darwin-arm64-3.2.2.tgz", - "integrity": "sha512-WBSJT9Z7DTol5viq+DZD2TapeWOw7mlwXxiSBHgAzqVwsaVb0h/ekMD9iu/jDD8MUA20tO9N0WEdnT06fsUp+g==", + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/json-pointer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/json-pointer/-/json-pointer-1.0.2.tgz", + "integrity": "sha512-Fsn6wM2zlDzY1U+v4Nc8bo3bVqgfNTGcn6dMgs6FjrEnt4ZCe60o6ByKRjOGlI2gow0aE/Q41QOigdTqkyK5fg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@jsonjoy.com/codegen": "^1.0.0", + "@jsonjoy.com/util": "^1.9.0" + }, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/util": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/util/-/util-1.9.0.tgz", + "integrity": "sha512-pLuQo+VPRnN8hfPqUTLTHk126wuYdXVxE6aDmjSeV4NCAgyxWbiOIeNJVtID3h1Vzpoi9m4jXezf73I6LgabgQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@jsonjoy.com/buffers": "^1.0.0", + "@jsonjoy.com/codegen": "^1.0.0" + }, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/util/node_modules/@jsonjoy.com/buffers": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/buffers/-/buffers-1.2.1.tgz", + "integrity": "sha512-12cdlDwX4RUM3QxmUbVJWqZ/mrK6dFQH4Zxq6+r1YXKXYBNgZXndx2qbCJwh3+WWkCSn67IjnlG3XYTvmvYtgA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@leichtgewicht/ip-codec": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz", + "integrity": "sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@listr2/prompt-adapter-inquirer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@listr2/prompt-adapter-inquirer/-/prompt-adapter-inquirer-3.0.1.tgz", + "integrity": "sha512-3XFmGwm3u6ioREG+ynAQB7FoxfajgQnMhIu8wC5eo/Lsih4aKDg0VuIMGaOsYn7hJSJagSeaD4K8yfpkEoDEmA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@inquirer/type": "^3.0.7" + }, + "engines": { + "node": ">=20.0.0" + }, + "peerDependencies": { + "@inquirer/prompts": ">= 3 < 8", + "listr2": "9.0.1" + } + }, + "node_modules/@lmdb/lmdb-darwin-arm64": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-darwin-arm64/-/lmdb-darwin-arm64-3.4.2.tgz", + "integrity": "sha512-NK80WwDoODyPaSazKbzd3NEJ3ygePrkERilZshxBViBARNz21rmediktGHExoj9n5t9+ChlgLlxecdFKLCuCKg==", "cpu": [ "arm64" ], @@ -3895,9 +5027,9 @@ ] }, "node_modules/@lmdb/lmdb-darwin-x64": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/@lmdb/lmdb-darwin-x64/-/lmdb-darwin-x64-3.2.2.tgz", - "integrity": "sha512-4S13kUtR7c/j/MzkTIBJCXv52hQ41LG2ukeaqw4Eng9K0pNKLFjo1sDSz96/yKhwykxrWDb13ddJ/ZqD3rAhUA==", + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-darwin-x64/-/lmdb-darwin-x64-3.4.2.tgz", + "integrity": "sha512-zevaowQNmrp3U7Fz1s9pls5aIgpKRsKb3dZWDINtLiozh3jZI9fBrI19lYYBxqdyiIyNdlyiidPnwPShj4aK+w==", "cpu": [ "x64" ], @@ -3909,9 +5041,9 @@ ] }, "node_modules/@lmdb/lmdb-linux-arm": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-arm/-/lmdb-linux-arm-3.2.2.tgz", - "integrity": "sha512-uW31JmfuPAaLUYW7NsEU8gzwgDAzpGPwjvkxnKlcWd8iDutoPKDJi8Wk9lFmPEZRxVSB0j1/wDQ7N2qliR9UFA==", + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-arm/-/lmdb-linux-arm-3.4.2.tgz", + "integrity": "sha512-OmHCULY17rkx/RoCoXlzU7LyR8xqrksgdYWwtYa14l/sseezZ8seKWXcogHcjulBddER5NnEFV4L/Jtr2nyxeg==", "cpu": [ "arm" ], @@ -3923,9 +5055,9 @@ ] }, "node_modules/@lmdb/lmdb-linux-arm64": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-arm64/-/lmdb-linux-arm64-3.2.2.tgz", - "integrity": "sha512-4hdgZtWI1idQlWRp+eleWXD9KLvObgboRaVoBj2POdPEYvsKANllvMW0El8tEQwtw74yB9NT6P8ENBB5UJf5+g==", + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-arm64/-/lmdb-linux-arm64-3.4.2.tgz", + "integrity": "sha512-ZBEfbNZdkneebvZs98Lq30jMY8V9IJzckVeigGivV7nTHJc+89Ctomp1kAIWKlwIG0ovCDrFI448GzFPORANYg==", "cpu": [ "arm64" ], @@ -3937,9 +5069,9 @@ ] }, "node_modules/@lmdb/lmdb-linux-x64": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-x64/-/lmdb-linux-x64-3.2.2.tgz", - "integrity": "sha512-A0zjf4a2vM4B4GAx78ncuOTZ8Ka1DbTaG1Axf1e00Sa7f5coqlWiLg1PX7Gxvyibc2YqtqB+8tg1KKrE8guZVw==", + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-x64/-/lmdb-linux-x64-3.4.2.tgz", + "integrity": "sha512-vL9nM17C77lohPYE4YaAQvfZCSVJSryE4fXdi8M7uWPBnU+9DJabgKVAeyDb84ZM2vcFseoBE4/AagVtJeRE7g==", "cpu": [ "x64" ], @@ -3950,10 +5082,24 @@ "linux" ] }, + "node_modules/@lmdb/lmdb-win32-arm64": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-win32-arm64/-/lmdb-win32-arm64-3.4.2.tgz", + "integrity": "sha512-SXWjdBfNDze4ZPeLtYIzsIeDJDJ/SdsA0pEXcUBayUIMO0FQBHfVZZyHXQjjHr4cvOAzANBgIiqaXRwfMhzmLw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, "node_modules/@lmdb/lmdb-win32-x64": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/@lmdb/lmdb-win32-x64/-/lmdb-win32-x64-3.2.2.tgz", - "integrity": "sha512-Y0qoSCAja+xZE7QQ0LCHoYAuyI1n9ZqukQJa8lv9X3yCvWahFF7OYHAgVH1ejp43XWstj3U89/PAAzcowgF/uQ==", + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-win32-x64/-/lmdb-win32-x64-3.4.2.tgz", + "integrity": "sha512-IY+r3bxKW6Q6sIPiMC0L533DEfRJSXibjSI3Ft/w9Q8KQBNqEIvUFXt+09wV8S5BRk0a8uSF19YWxuRwEfI90g==", "cpu": [ "x64" ], @@ -3964,10 +5110,119 @@ "win32" ] }, + "node_modules/@modelcontextprotocol/sdk": { + "version": "1.30.0", + "resolved": "https://registry.npmjs.org/@modelcontextprotocol/sdk/-/sdk-1.30.0.tgz", + "integrity": "sha512-xKd8OIzlqNzcqcNumGAa6g+PW2kjD5vrpcKOnfldAUPP3j7lnqMPwlTXQm8gF+UwH72z0lqaRbjr9hqGz0eITA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@hono/node-server": "^1.19.9 || ^2.0.5", + "ajv": "^8.17.1", + "ajv-formats": "^3.0.1", + "content-type": "^1.0.5", + "cors": "^2.8.5", + "cross-spawn": "^7.0.5", + "eventsource": "^3.0.2", + "eventsource-parser": "^3.0.0", + "express": "^5.2.1", + "express-rate-limit": "^8.2.1", + "hono": "^4.11.4", + "jose": "^6.1.3", + "json-schema-typed": "^8.0.2", + "pkce-challenge": "^5.0.0", + "raw-body": "^3.0.0", + "zod": "^3.25 || ^4.0", + "zod-to-json-schema": "^3.25.1" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@cfworker/json-schema": "^4.1.1", + "zod": "^3.25 || ^4.0" + }, + "peerDependenciesMeta": { + "@cfworker/json-schema": { + "optional": true + }, + "zod": { + "optional": false + } + } + }, + "node_modules/@modelcontextprotocol/sdk/node_modules/ajv": { + "version": "8.20.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.20.0.tgz", + "integrity": "sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/@modelcontextprotocol/sdk/node_modules/ajv-formats": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-3.0.1.tgz", + "integrity": "sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/@modelcontextprotocol/sdk/node_modules/iconv-lite": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.3.tgz", + "integrity": "sha512-IKXpvIzjnC9XTAUbVBcMfGS0EPaIXtW6v+zr+RRp+hqULEpo0owZax6wyRwPOJbWbzjYspQwusTsfVr0ifh4uQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/@modelcontextprotocol/sdk/node_modules/raw-body": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-3.0.2.tgz", + "integrity": "sha512-K5zQjDllxWkf7Z5xJdV0/B0WTNqx6vxG70zJE4N0kBs4LovmEYWJzQGxC9bS9RAKu3bgM40lrd5zoLJ12MQ5BA==", + "dev": true, + "license": "MIT", + "dependencies": { + "bytes": "~3.1.2", + "http-errors": "~2.0.1", + "iconv-lite": "~0.7.0", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, "node_modules/@msgpackr-extract/msgpackr-extract-darwin-arm64": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-darwin-arm64/-/msgpackr-extract-darwin-arm64-3.0.3.tgz", - "integrity": "sha512-QZHtlVgbAdy2zAqNA9Gu1UpIuI8Xvsd1v8ic6B2pZmeFnFcMWiPLfWXh7TVw4eGEZ/C9TH281KwhVoeQUKbyjw==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-darwin-arm64/-/msgpackr-extract-darwin-arm64-3.0.4.tgz", + "integrity": "sha512-LCkGo6JDfaBhgST7UpPWgNgLINpcpabaHfyz5OBx75nUYxBsaEPxjnyNjWpeb/xBup/682QnBfRBy2/LvPutZQ==", "cpu": [ "arm64" ], @@ -3979,9 +5234,9 @@ ] }, "node_modules/@msgpackr-extract/msgpackr-extract-darwin-x64": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-darwin-x64/-/msgpackr-extract-darwin-x64-3.0.3.tgz", - "integrity": "sha512-mdzd3AVzYKuUmiWOQ8GNhl64/IoFGol569zNRdkLReh6LRLHOXxU4U8eq0JwaD8iFHdVGqSy4IjFL4reoWCDFw==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-darwin-x64/-/msgpackr-extract-darwin-x64-3.0.4.tgz", + "integrity": "sha512-zExlW9zUJKZH/tOtVMttwjKa4Xm/3KcNjnE3dPN92uCktwavMxpgCA3MoJK/DOnTWsQgo224OaST27/mPNAf+w==", "cpu": [ "x64" ], @@ -3993,9 +5248,9 @@ ] }, "node_modules/@msgpackr-extract/msgpackr-extract-linux-arm": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-arm/-/msgpackr-extract-linux-arm-3.0.3.tgz", - "integrity": "sha512-fg0uy/dG/nZEXfYilKoRe7yALaNmHoYeIoJuJ7KJ+YyU2bvY8vPv27f7UKhGRpY6euFYqEVhxCFZgAUNQBM3nw==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-arm/-/msgpackr-extract-linux-arm-3.0.4.tgz", + "integrity": "sha512-Tg3yX65f5GbtXLkrYEHE5oibZG9epyYWas7FogTTEJeDEF9JlXJzKgXaNhT3UXlTOeA+AfZpYZYZ0uPj7Cfquw==", "cpu": [ "arm" ], @@ -4007,9 +5262,9 @@ ] }, "node_modules/@msgpackr-extract/msgpackr-extract-linux-arm64": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-arm64/-/msgpackr-extract-linux-arm64-3.0.3.tgz", - "integrity": "sha512-YxQL+ax0XqBJDZiKimS2XQaf+2wDGVa1enVRGzEvLLVFeqa5kx2bWbtcSXgsxjQB7nRqqIGFIcLteF/sHeVtQg==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-arm64/-/msgpackr-extract-linux-arm64-3.0.4.tgz", + "integrity": "sha512-dgX0P/9wGPJeHFBG+ZmhgE6bmtMt7NP5CRBGyyktpopdk/mW4POnrpQsSLtKI1dwpc+pPLuXHDh6vvskyQE/sw==", "cpu": [ "arm64" ], @@ -4021,9 +5276,9 @@ ] }, "node_modules/@msgpackr-extract/msgpackr-extract-linux-x64": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-x64/-/msgpackr-extract-linux-x64-3.0.3.tgz", - "integrity": "sha512-cvwNfbP07pKUfq1uH+S6KJ7dT9K8WOE4ZiAcsrSes+UY55E/0jLYc+vq+DO7jlmqRb5zAggExKm0H7O/CBaesg==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-x64/-/msgpackr-extract-linux-x64-3.0.4.tgz", + "integrity": "sha512-8TNXMEjJc3QEy7R/x1INhgiU+XakDAFUzBhaz7+Rbrs8NH5UQeHQxxmzsSBJGyV6I1jW79undiQm8tOI+D+8FQ==", "cpu": [ "x64" ], @@ -4035,9 +5290,9 @@ ] }, "node_modules/@msgpackr-extract/msgpackr-extract-win32-x64": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-win32-x64/-/msgpackr-extract-win32-x64-3.0.3.tgz", - "integrity": "sha512-x0fWaQtYp4E6sktbsdAqnehxDgEc/VwM7uLsRCYWaiGu0ykYdZPiS8zCWdnjHwyiumousxfBm4SO31eXqwEZhQ==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-win32-x64/-/msgpackr-extract-win32-x64-3.0.4.tgz", + "integrity": "sha512-CmCXPQrkbwExx3j946/PtHWHbYJiCRBRDl4BlkRQcJB/YOwQxJRTpoo7aTsortjgoJ1x7opzTSxn7C+ASSLVjQ==", "cpu": [ "x64" ], @@ -4048,10 +5303,30 @@ "win32" ] }, + "node_modules/@napi-rs/lzma-linux-x64-gnu": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/@napi-rs/lzma-linux-x64-gnu/-/lzma-linux-x64-gnu-1.5.1.tgz", + "integrity": "sha512-oTXEIha4SsuXdTA4Iyskj0kpdx2yVXdhd75c2v3xGrHFfVMsbhTPZU/nMPL4sWKo4pBHm3aucLaqGlF696dTyQ==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^22.20 || ^24.12 || >=25" + } + }, "node_modules/@napi-rs/nice": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@napi-rs/nice/-/nice-1.0.1.tgz", - "integrity": "sha512-zM0mVWSXE0a0h9aKACLwKmD6nHcRiKrPpCfvaKqG1CqDEyjEawId0ocXxVzPMCAm6kkWr2P025msfxXEnt8UGQ==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice/-/nice-1.1.1.tgz", + "integrity": "sha512-xJIPs+bYuc9ASBl+cvGsKbGrJmS6fAKaSZCnT0lhahT5rhA2VVy9/EcIgd2JhtEuFOJNx7UHNn/qiTPTY4nrQw==", "dev": true, "license": "MIT", "optional": true, @@ -4063,28 +5338,29 @@ "url": "https://github.com/sponsors/Brooooooklyn" }, "optionalDependencies": { - "@napi-rs/nice-android-arm-eabi": "1.0.1", - "@napi-rs/nice-android-arm64": "1.0.1", - "@napi-rs/nice-darwin-arm64": "1.0.1", - "@napi-rs/nice-darwin-x64": "1.0.1", - "@napi-rs/nice-freebsd-x64": "1.0.1", - "@napi-rs/nice-linux-arm-gnueabihf": "1.0.1", - "@napi-rs/nice-linux-arm64-gnu": "1.0.1", - "@napi-rs/nice-linux-arm64-musl": "1.0.1", - "@napi-rs/nice-linux-ppc64-gnu": "1.0.1", - "@napi-rs/nice-linux-riscv64-gnu": "1.0.1", - "@napi-rs/nice-linux-s390x-gnu": "1.0.1", - "@napi-rs/nice-linux-x64-gnu": "1.0.1", - "@napi-rs/nice-linux-x64-musl": "1.0.1", - "@napi-rs/nice-win32-arm64-msvc": "1.0.1", - "@napi-rs/nice-win32-ia32-msvc": "1.0.1", - "@napi-rs/nice-win32-x64-msvc": "1.0.1" + "@napi-rs/nice-android-arm-eabi": "1.1.1", + "@napi-rs/nice-android-arm64": "1.1.1", + "@napi-rs/nice-darwin-arm64": "1.1.1", + "@napi-rs/nice-darwin-x64": "1.1.1", + "@napi-rs/nice-freebsd-x64": "1.1.1", + "@napi-rs/nice-linux-arm-gnueabihf": "1.1.1", + "@napi-rs/nice-linux-arm64-gnu": "1.1.1", + "@napi-rs/nice-linux-arm64-musl": "1.1.1", + "@napi-rs/nice-linux-ppc64-gnu": "1.1.1", + "@napi-rs/nice-linux-riscv64-gnu": "1.1.1", + "@napi-rs/nice-linux-s390x-gnu": "1.1.1", + "@napi-rs/nice-linux-x64-gnu": "1.1.1", + "@napi-rs/nice-linux-x64-musl": "1.1.1", + "@napi-rs/nice-openharmony-arm64": "1.1.1", + "@napi-rs/nice-win32-arm64-msvc": "1.1.1", + "@napi-rs/nice-win32-ia32-msvc": "1.1.1", + "@napi-rs/nice-win32-x64-msvc": "1.1.1" } }, "node_modules/@napi-rs/nice-android-arm-eabi": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@napi-rs/nice-android-arm-eabi/-/nice-android-arm-eabi-1.0.1.tgz", - "integrity": "sha512-5qpvOu5IGwDo7MEKVqqyAxF90I6aLj4n07OzpARdgDRfz8UbBztTByBp0RC59r3J1Ij8uzYi6jI7r5Lws7nn6w==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-android-arm-eabi/-/nice-android-arm-eabi-1.1.1.tgz", + "integrity": "sha512-kjirL3N6TnRPv5iuHw36wnucNqXAO46dzK9oPb0wj076R5Xm8PfUVA9nAFB5ZNMmfJQJVKACAPd/Z2KYMppthw==", "cpu": [ "arm" ], @@ -4099,9 +5375,9 @@ } }, "node_modules/@napi-rs/nice-android-arm64": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@napi-rs/nice-android-arm64/-/nice-android-arm64-1.0.1.tgz", - "integrity": "sha512-GqvXL0P8fZ+mQqG1g0o4AO9hJjQaeYG84FRfZaYjyJtZZZcMjXW5TwkL8Y8UApheJgyE13TQ4YNUssQaTgTyvA==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-android-arm64/-/nice-android-arm64-1.1.1.tgz", + "integrity": "sha512-blG0i7dXgbInN5urONoUCNf+DUEAavRffrO7fZSeoRMJc5qD+BJeNcpr54msPF6qfDD6kzs9AQJogZvT2KD5nw==", "cpu": [ "arm64" ], @@ -4116,9 +5392,9 @@ } }, "node_modules/@napi-rs/nice-darwin-arm64": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@napi-rs/nice-darwin-arm64/-/nice-darwin-arm64-1.0.1.tgz", - "integrity": "sha512-91k3HEqUl2fsrz/sKkuEkscj6EAj3/eZNCLqzD2AA0TtVbkQi8nqxZCZDMkfklULmxLkMxuUdKe7RvG/T6s2AA==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-darwin-arm64/-/nice-darwin-arm64-1.1.1.tgz", + "integrity": "sha512-s/E7w45NaLqTGuOjC2p96pct4jRfo61xb9bU1unM/MJ/RFkKlJyJDx7OJI/O0ll/hrfpqKopuAFDV8yo0hfT7A==", "cpu": [ "arm64" ], @@ -4133,9 +5409,9 @@ } }, "node_modules/@napi-rs/nice-darwin-x64": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@napi-rs/nice-darwin-x64/-/nice-darwin-x64-1.0.1.tgz", - "integrity": "sha512-jXnMleYSIR/+TAN/p5u+NkCA7yidgswx5ftqzXdD5wgy/hNR92oerTXHc0jrlBisbd7DpzoaGY4cFD7Sm5GlgQ==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-darwin-x64/-/nice-darwin-x64-1.1.1.tgz", + "integrity": "sha512-dGoEBnVpsdcC+oHHmW1LRK5eiyzLwdgNQq3BmZIav+9/5WTZwBYX7r5ZkQC07Nxd3KHOCkgbHSh4wPkH1N1LiQ==", "cpu": [ "x64" ], @@ -4150,9 +5426,9 @@ } }, "node_modules/@napi-rs/nice-freebsd-x64": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@napi-rs/nice-freebsd-x64/-/nice-freebsd-x64-1.0.1.tgz", - "integrity": "sha512-j+iJ/ezONXRQsVIB/FJfwjeQXX7A2tf3gEXs4WUGFrJjpe/z2KB7sOv6zpkm08PofF36C9S7wTNuzHZ/Iiccfw==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-freebsd-x64/-/nice-freebsd-x64-1.1.1.tgz", + "integrity": "sha512-kHv4kEHAylMYmlNwcQcDtXjklYp4FCf0b05E+0h6nDHsZ+F0bDe04U/tXNOqrx5CmIAth4vwfkjjUmp4c4JktQ==", "cpu": [ "x64" ], @@ -4167,9 +5443,9 @@ } }, "node_modules/@napi-rs/nice-linux-arm-gnueabihf": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-arm-gnueabihf/-/nice-linux-arm-gnueabihf-1.0.1.tgz", - "integrity": "sha512-G8RgJ8FYXYkkSGQwywAUh84m946UTn6l03/vmEXBYNJxQJcD+I3B3k5jmjFG/OPiU8DfvxutOP8bi+F89MCV7Q==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-arm-gnueabihf/-/nice-linux-arm-gnueabihf-1.1.1.tgz", + "integrity": "sha512-E1t7K0efyKXZDoZg1LzCOLxgolxV58HCkaEkEvIYQx12ht2pa8hoBo+4OB3qh7e+QiBlp1SRf+voWUZFxyhyqg==", "cpu": [ "arm" ], @@ -4184,13 +5460,16 @@ } }, "node_modules/@napi-rs/nice-linux-arm64-gnu": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-arm64-gnu/-/nice-linux-arm64-gnu-1.0.1.tgz", - "integrity": "sha512-IMDak59/W5JSab1oZvmNbrms3mHqcreaCeClUjwlwDr0m3BoR09ZiN8cKFBzuSlXgRdZ4PNqCYNeGQv7YMTjuA==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-arm64-gnu/-/nice-linux-arm64-gnu-1.1.1.tgz", + "integrity": "sha512-CIKLA12DTIZlmTaaKhQP88R3Xao+gyJxNWEn04wZwC2wmRapNnxCUZkVwggInMJvtVElA+D4ZzOU5sX4jV+SmQ==", "cpu": [ "arm64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -4201,13 +5480,16 @@ } }, "node_modules/@napi-rs/nice-linux-arm64-musl": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-arm64-musl/-/nice-linux-arm64-musl-1.0.1.tgz", - "integrity": "sha512-wG8fa2VKuWM4CfjOjjRX9YLIbysSVV1S3Kgm2Fnc67ap/soHBeYZa6AGMeR5BJAylYRjnoVOzV19Cmkco3QEPw==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-arm64-musl/-/nice-linux-arm64-musl-1.1.1.tgz", + "integrity": "sha512-+2Rzdb3nTIYZ0YJF43qf2twhqOCkiSrHx2Pg6DJaCPYhhaxbLcdlV8hCRMHghQ+EtZQWGNcS2xF4KxBhSGeutg==", "cpu": [ "arm64" ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -4218,13 +5500,16 @@ } }, "node_modules/@napi-rs/nice-linux-ppc64-gnu": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-ppc64-gnu/-/nice-linux-ppc64-gnu-1.0.1.tgz", - "integrity": "sha512-lxQ9WrBf0IlNTCA9oS2jg/iAjQyTI6JHzABV664LLrLA/SIdD+I1i3Mjf7TsnoUbgopBcCuDztVLfJ0q9ubf6Q==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-ppc64-gnu/-/nice-linux-ppc64-gnu-1.1.1.tgz", + "integrity": "sha512-4FS8oc0GeHpwvv4tKciKkw3Y4jKsL7FRhaOeiPei0X9T4Jd619wHNe4xCLmN2EMgZoeGg+Q7GY7BsvwKpL22Tg==", "cpu": [ "ppc64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -4235,13 +5520,16 @@ } }, "node_modules/@napi-rs/nice-linux-riscv64-gnu": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-riscv64-gnu/-/nice-linux-riscv64-gnu-1.0.1.tgz", - "integrity": "sha512-3xs69dO8WSWBb13KBVex+yvxmUeEsdWexxibqskzoKaWx9AIqkMbWmE2npkazJoopPKX2ULKd8Fm9veEn0g4Ig==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-riscv64-gnu/-/nice-linux-riscv64-gnu-1.1.1.tgz", + "integrity": "sha512-HU0nw9uD4FO/oGCCk409tCi5IzIZpH2agE6nN4fqpwVlCn5BOq0MS1dXGjXaG17JaAvrlpV5ZeyZwSon10XOXw==", "cpu": [ "riscv64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -4252,13 +5540,16 @@ } }, "node_modules/@napi-rs/nice-linux-s390x-gnu": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-s390x-gnu/-/nice-linux-s390x-gnu-1.0.1.tgz", - "integrity": "sha512-lMFI3i9rlW7hgToyAzTaEybQYGbQHDrpRkg+1gJWEpH0PLAQoZ8jiY0IzakLfNWnVda1eTYYlxxFYzW8Rqczkg==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-s390x-gnu/-/nice-linux-s390x-gnu-1.1.1.tgz", + "integrity": "sha512-2YqKJWWl24EwrX0DzCQgPLKQBxYDdBxOHot1KWEq7aY2uYeX+Uvtv4I8xFVVygJDgf6/92h9N3Y43WPx8+PAgQ==", "cpu": [ "s390x" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -4269,13 +5560,16 @@ } }, "node_modules/@napi-rs/nice-linux-x64-gnu": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-x64-gnu/-/nice-linux-x64-gnu-1.0.1.tgz", - "integrity": "sha512-XQAJs7DRN2GpLN6Fb+ZdGFeYZDdGl2Fn3TmFlqEL5JorgWKrQGRUrpGKbgZ25UeZPILuTKJ+OowG2avN8mThBA==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-x64-gnu/-/nice-linux-x64-gnu-1.1.1.tgz", + "integrity": "sha512-/gaNz3R92t+dcrfCw/96pDopcmec7oCcAQ3l/M+Zxr82KT4DljD37CpgrnXV+pJC263JkW572pdbP3hP+KjcIg==", "cpu": [ "x64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -4286,13 +5580,16 @@ } }, "node_modules/@napi-rs/nice-linux-x64-musl": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-x64-musl/-/nice-linux-x64-musl-1.0.1.tgz", - "integrity": "sha512-/rodHpRSgiI9o1faq9SZOp/o2QkKQg7T+DK0R5AkbnI/YxvAIEHf2cngjYzLMQSQgUhxym+LFr+UGZx4vK4QdQ==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-x64-musl/-/nice-linux-x64-musl-1.1.1.tgz", + "integrity": "sha512-xScCGnyj/oppsNPMnevsBe3pvNaoK7FGvMjT35riz9YdhB2WtTG47ZlbxtOLpjeO9SqqQ2J2igCmz6IJOD5JYw==", "cpu": [ "x64" ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -4302,10 +5599,27 @@ "node": ">= 10" } }, + "node_modules/@napi-rs/nice-openharmony-arm64": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-openharmony-arm64/-/nice-openharmony-arm64-1.1.1.tgz", + "integrity": "sha512-6uJPRVwVCLDeoOaNyeiW0gp2kFIM4r7PL2MczdZQHkFi9gVlgm+Vn+V6nTWRcu856mJ2WjYJiumEajfSm7arPQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">= 10" + } + }, "node_modules/@napi-rs/nice-win32-arm64-msvc": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@napi-rs/nice-win32-arm64-msvc/-/nice-win32-arm64-msvc-1.0.1.tgz", - "integrity": "sha512-rEcz9vZymaCB3OqEXoHnp9YViLct8ugF+6uO5McifTedjq4QMQs3DHz35xBEGhH3gJWEsXMUbzazkz5KNM5YUg==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-win32-arm64-msvc/-/nice-win32-arm64-msvc-1.1.1.tgz", + "integrity": "sha512-uoTb4eAvM5B2aj/z8j+Nv8OttPf2m+HVx3UjA5jcFxASvNhQriyCQF1OB1lHL43ZhW+VwZlgvjmP5qF3+59atA==", "cpu": [ "arm64" ], @@ -4320,9 +5634,9 @@ } }, "node_modules/@napi-rs/nice-win32-ia32-msvc": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@napi-rs/nice-win32-ia32-msvc/-/nice-win32-ia32-msvc-1.0.1.tgz", - "integrity": "sha512-t7eBAyPUrWL8su3gDxw9xxxqNwZzAqKo0Szv3IjVQd1GpXXVkb6vBBQUuxfIYaXMzZLwlxRQ7uzM2vdUE9ULGw==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-win32-ia32-msvc/-/nice-win32-ia32-msvc-1.1.1.tgz", + "integrity": "sha512-CNQqlQT9MwuCsg1Vd/oKXiuH+TcsSPJmlAFc5frFyX/KkOh0UpBLEj7aoY656d5UKZQMQFP7vJNa1DNUNORvug==", "cpu": [ "ia32" ], @@ -4337,9 +5651,9 @@ } }, "node_modules/@napi-rs/nice-win32-x64-msvc": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@napi-rs/nice-win32-x64-msvc/-/nice-win32-x64-msvc-1.0.1.tgz", - "integrity": "sha512-JlF+uDcatt3St2ntBG8H02F1mM45i5SF9W+bIKiReVE6wiy3o16oBP/yxt+RZ+N6LbCImJXJ6bXNO2kn9AXicg==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-win32-x64-msvc/-/nice-win32-x64-msvc-1.1.1.tgz", + "integrity": "sha512-vB+4G/jBQCAh0jelMTY3+kgFy00Hlx2f2/1zjMoH821IbplbWZOkLiTYXQkygNTzQJTq5cvwBDgn2ppHD+bglQ==", "cpu": [ "x64" ], @@ -4366,22 +5680,35 @@ } }, "node_modules/@ngtools/webpack": { - "version": "19.1.4", - "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-19.1.4.tgz", - "integrity": "sha512-ZmUlbVqu/pz8abxVxNCKgKeY5g2MX1NsKxhM8rRV5tVV/MaAtSYNHgmFSYcKWA178v7k6BUuhnoNNxl5qqc1kw==", + "version": "20.3.37", + "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-20.3.37.tgz", + "integrity": "sha512-7OQurKdQCifpU1VTd0JhIN3ItqEO0WqQiIHSen0+irU1akC9WK+CTa1Lm77w1Q/SGuqsoL30hzR/yfEIQEf55A==", "dev": true, "license": "MIT", "engines": { - "node": "^18.19.1 || ^20.11.1 || >=22.0.0", + "node": "^20.19.0 || ^22.12.0 || >=24.0.0", "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", "yarn": ">= 1.13.0" }, "peerDependencies": { - "@angular/compiler-cli": "^19.0.0", - "typescript": ">=5.5 <5.8", + "@angular/compiler-cli": "^20.0.0", + "typescript": ">=5.8 <6.0", "webpack": "^5.54.0" } }, + "node_modules/@noble/hashes": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.8.0.tgz", + "integrity": "sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -4421,295 +5748,334 @@ } }, "node_modules/@npmcli/agent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@npmcli/agent/-/agent-3.0.0.tgz", - "integrity": "sha512-S79NdEgDQd/NGCay6TCoVzXSj74skRZIKJcpJjC5lOq34SZzyI6MqtiiWoiVWoVrTcGjNeC4ipbh1VIHlpfF5Q==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@npmcli/agent/-/agent-4.0.2.tgz", + "integrity": "sha512-EUEuWAxnL07Sp5/iC/1X6Xj+XThUvnbei9zfRWZdEXa7lss9RTHMhAHBeg+MZ5To9s/gGaSI+UwZTPdYMvKSeg==", "dev": true, "license": "ISC", "dependencies": { "agent-base": "^7.1.0", "http-proxy-agent": "^7.0.0", "https-proxy-agent": "^7.0.1", - "lru-cache": "^10.0.1", + "lru-cache": "^11.2.1", "socks-proxy-agent": "^8.0.3" }, "engines": { - "node": "^18.17.0 || >=20.5.0" + "node": "^20.17.0 || >=22.9.0" } }, "node_modules/@npmcli/agent/node_modules/lru-cache": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "version": "11.5.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.5.3.tgz", + "integrity": "sha512-U4N8FgzmWxc8k1VH8Kr6lQg18U7Fjvby6wXHVRX/ZZ7IwWbRMgrRbP0Wrb5q5NVinryp4SQampHKdvtecItxUg==", "dev": true, - "license": "ISC" + "license": "BlueOak-1.0.0", + "engines": { + "node": "20 || >=22" + } }, "node_modules/@npmcli/fs": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-4.0.0.tgz", - "integrity": "sha512-/xGlezI6xfGO9NwuJlnwz/K14qD1kCSAGtacBHnGzeAIuJGazcp45KP5NuyARXoKb7cwulAGWVsbeSxdG/cb0Q==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-5.0.0.tgz", + "integrity": "sha512-7OsC1gNORBEawOa5+j2pXN9vsicaIOH5cPXxoR6fJOmH6/EXpJB2CajXOu1fPRFun2m1lktEFX11+P89hqO/og==", "dev": true, "license": "ISC", "dependencies": { "semver": "^7.3.5" }, "engines": { - "node": "^18.17.0 || >=20.5.0" + "node": "^20.17.0 || >=22.9.0" } }, "node_modules/@npmcli/git": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-6.0.1.tgz", - "integrity": "sha512-BBWMMxeQzalmKadyimwb2/VVQyJB01PH0HhVSNLHNBDZN/M/h/02P6f8fxedIiFhpMj11SO9Ep5tKTBE7zL2nw==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-7.0.2.tgz", + "integrity": "sha512-oeolHDjExNAJAnlYP2qzNjMX/Xi9bmu78C9dIGr4xjobrSKbuMYCph8lTzn4vnW3NjIqVmw/f8BCfouqyJXlRg==", "dev": true, "license": "ISC", "dependencies": { - "@npmcli/promise-spawn": "^8.0.0", - "ini": "^5.0.0", - "lru-cache": "^10.0.1", - "npm-pick-manifest": "^10.0.0", - "proc-log": "^5.0.0", - "promise-inflight": "^1.0.1", - "promise-retry": "^2.0.1", + "@gar/promise-retry": "^1.0.0", + "@npmcli/promise-spawn": "^9.0.0", + "ini": "^6.0.0", + "lru-cache": "^11.2.1", + "npm-pick-manifest": "^11.0.1", + "proc-log": "^6.0.0", "semver": "^7.3.5", - "which": "^5.0.0" + "which": "^6.0.0" }, "engines": { - "node": "^18.17.0 || >=20.5.0" + "node": "^20.17.0 || >=22.9.0" } }, - "node_modules/@npmcli/git/node_modules/isexe": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", - "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", + "node_modules/@npmcli/git/node_modules/ini": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-6.0.0.tgz", + "integrity": "sha512-IBTdIkzZNOpqm7q3dRqJvMaldXjDHWkEDfrwGEQTs5eaQMWV+djAhR+wahyNNMAa+qpbDUhBMVt4ZKNwpPm7xQ==", "dev": true, "license": "ISC", "engines": { - "node": ">=16" + "node": "^20.17.0 || >=22.9.0" + } + }, + "node_modules/@npmcli/git/node_modules/isexe": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-4.0.0.tgz", + "integrity": "sha512-FFUtZMpoZ8RqHS3XeXEmHWLA4thH+ZxCv2lOiPIn1Xc7CxrqhWzNSDzD+/chS/zbYezmiwWLdQC09JdQKmthOw==", + "dev": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=20" } }, "node_modules/@npmcli/git/node_modules/lru-cache": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "version": "11.5.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.5.3.tgz", + "integrity": "sha512-U4N8FgzmWxc8k1VH8Kr6lQg18U7Fjvby6wXHVRX/ZZ7IwWbRMgrRbP0Wrb5q5NVinryp4SQampHKdvtecItxUg==", "dev": true, - "license": "ISC" + "license": "BlueOak-1.0.0", + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/@npmcli/git/node_modules/proc-log": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-6.1.0.tgz", + "integrity": "sha512-iG+GYldRf2BQ0UDUAd6JQ/RwzaQy6mXmsk/IzlYyal4A4SNFw54MeH4/tLkF4I5WoWG9SQwuqWzS99jaFQHBuQ==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^20.17.0 || >=22.9.0" + } }, "node_modules/@npmcli/git/node_modules/which": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/which/-/which-5.0.0.tgz", - "integrity": "sha512-JEdGzHwwkrbWoGOlIHqQ5gtprKGOenpDHpxE9zVR1bWbOtYRyPPHMe9FaP6x61CmNaTThSkb0DAJte5jD+DmzQ==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/which/-/which-6.0.1.tgz", + "integrity": "sha512-oGLe46MIrCRqX7ytPUf66EAYvdeMIZYn3WaocqqKZAxrBpkqHfL/qvTyJ/bTk5+AqHCjXmrv3CEWgy368zhRUg==", "dev": true, "license": "ISC", "dependencies": { - "isexe": "^3.1.1" + "isexe": "^4.0.0" }, "bin": { "node-which": "bin/which.js" }, "engines": { - "node": "^18.17.0 || >=20.5.0" + "node": "^20.17.0 || >=22.9.0" } }, "node_modules/@npmcli/installed-package-contents": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-3.0.0.tgz", - "integrity": "sha512-fkxoPuFGvxyrH+OQzyTkX2LUEamrF4jZSmxjAtPPHHGO0dqsQ8tTKjnIS8SAnPHdk2I03BDtSMR5K/4loKg79Q==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-4.0.0.tgz", + "integrity": "sha512-yNyAdkBxB72gtZ4GrwXCM0ZUedo9nIbOMKfGjt6Cu6DXf0p8y1PViZAKDC8q8kv/fufx0WTjRBdSlyrvnP7hmA==", "dev": true, "license": "ISC", "dependencies": { - "npm-bundled": "^4.0.0", - "npm-normalize-package-bin": "^4.0.0" + "npm-bundled": "^5.0.0", + "npm-normalize-package-bin": "^5.0.0" }, "bin": { "installed-package-contents": "bin/index.js" }, "engines": { - "node": "^18.17.0 || >=20.5.0" + "node": "^20.17.0 || >=22.9.0" } }, "node_modules/@npmcli/node-gyp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@npmcli/node-gyp/-/node-gyp-4.0.0.tgz", - "integrity": "sha512-+t5DZ6mO/QFh78PByMq1fGSAub/agLJZDRfJRMeOSNCt8s9YVlTjmGpIPwPhvXTGUIJk+WszlT0rQa1W33yzNA==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/node-gyp/-/node-gyp-5.0.0.tgz", + "integrity": "sha512-uuG5HZFXLfyFKqg8QypsmgLQW7smiRjVc45bqD/ofZZcR/uxEjgQU8qDPv0s9TEeMUiAAU/GC5bR6++UdTirIQ==", "dev": true, "license": "ISC", "engines": { - "node": "^18.17.0 || >=20.5.0" + "node": "^20.17.0 || >=22.9.0" } }, "node_modules/@npmcli/package-json": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/@npmcli/package-json/-/package-json-6.1.1.tgz", - "integrity": "sha512-d5qimadRAUCO4A/Txw71VM7UrRZzV+NPclxz/dc+M6B2oYwjWTjqh8HA/sGQgs9VZuJ6I/P7XIAlJvgrl27ZOw==", + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/@npmcli/package-json/-/package-json-7.0.5.tgz", + "integrity": "sha512-iVuTlG3ORq2iaVa1IWUxAO/jIp77tUKBhoMjuzYW2kL4MLN1bi/ofqkZ7D7OOwh8coAx1/S2ge0rMdGv8sLSOQ==", "dev": true, "license": "ISC", "dependencies": { - "@npmcli/git": "^6.0.0", - "glob": "^10.2.2", - "hosted-git-info": "^8.0.0", - "json-parse-even-better-errors": "^4.0.0", - "proc-log": "^5.0.0", + "@npmcli/git": "^7.0.0", + "glob": "^13.0.0", + "hosted-git-info": "^9.0.0", + "json-parse-even-better-errors": "^5.0.0", + "proc-log": "^6.0.0", "semver": "^7.5.3", - "validate-npm-package-license": "^3.0.4" + "spdx-expression-parse": "^4.0.0" }, "engines": { - "node": "^18.17.0 || >=20.5.0" + "node": "^20.17.0 || >=22.9.0" + } + }, + "node_modules/@npmcli/package-json/node_modules/balanced-match": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", + "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "18 || 20 || >=22" } }, "node_modules/@npmcli/package-json/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "version": "5.0.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.12.tgz", + "integrity": "sha512-YovQ3rzhaLMIrDjNDMkNS01tea93qhEhG5xy8f6+R0l+dw3Ki+5sCoIoI942iuLZTHWogWktgwVDhU09iNEimQ==", "dev": true, "license": "MIT", "dependencies": { - "balanced-match": "^1.0.0" + "balanced-match": "^4.0.2" + }, + "engines": { + "node": "20 || >=22" } }, "node_modules/@npmcli/package-json/node_modules/glob": { - "version": "10.4.5", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", - "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "version": "13.0.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-13.0.6.tgz", + "integrity": "sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw==", "dev": true, - "license": "ISC", + "license": "BlueOak-1.0.0", "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^1.11.1" + "minimatch": "^10.2.2", + "minipass": "^7.1.3", + "path-scurry": "^2.0.2" }, - "bin": { - "glob": "dist/esm/bin.mjs" + "engines": { + "node": "18 || 20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/@npmcli/package-json/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "version": "10.2.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.6.tgz", + "integrity": "sha512-vpLQEs+VLCr1nU0BXS07maYoFwlDAH0gngQuuttxIwutDFEMHq2blX+8vpgxDdK3J1PwjCJiep77OitTZ4Ll1A==", "dev": true, - "license": "ISC", + "license": "BlueOak-1.0.0", "dependencies": { - "brace-expansion": "^2.0.1" + "brace-expansion": "^5.0.8" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": "18 || 20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/@npmcli/package-json/node_modules/proc-log": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-6.1.0.tgz", + "integrity": "sha512-iG+GYldRf2BQ0UDUAd6JQ/RwzaQy6mXmsk/IzlYyal4A4SNFw54MeH4/tLkF4I5WoWG9SQwuqWzS99jaFQHBuQ==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^20.17.0 || >=22.9.0" + } + }, + "node_modules/@npmcli/package-json/node_modules/spdx-expression-parse": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-4.0.0.tgz", + "integrity": "sha512-Clya5JIij/7C6bRR22+tnGXbc4VKlibKSVj2iHvVeX5iMW7s1SIQlqu699JkODJJIhh/pUu8L0/VLh8xflD+LQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, "node_modules/@npmcli/promise-spawn": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-8.0.2.tgz", - "integrity": "sha512-/bNJhjc+o6qL+Dwz/bqfTQClkEO5nTQ1ZEcdCkAQjhkZMHIh22LPG7fNh1enJP1NKWDqYiiABnjFCY7E0zHYtQ==", + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-9.0.1.tgz", + "integrity": "sha512-OLUaoqBuyxeTqUvjA3FZFiXUfYC1alp3Sa99gW3EUDz3tZ3CbXDdcZ7qWKBzicrJleIgucoWamWH1saAmH/l2Q==", "dev": true, "license": "ISC", "dependencies": { - "which": "^5.0.0" + "which": "^6.0.0" }, "engines": { - "node": "^18.17.0 || >=20.5.0" + "node": "^20.17.0 || >=22.9.0" } }, "node_modules/@npmcli/promise-spawn/node_modules/isexe": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", - "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-4.0.0.tgz", + "integrity": "sha512-FFUtZMpoZ8RqHS3XeXEmHWLA4thH+ZxCv2lOiPIn1Xc7CxrqhWzNSDzD+/chS/zbYezmiwWLdQC09JdQKmthOw==", "dev": true, - "license": "ISC", + "license": "BlueOak-1.0.0", "engines": { - "node": ">=16" + "node": ">=20" } }, "node_modules/@npmcli/promise-spawn/node_modules/which": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/which/-/which-5.0.0.tgz", - "integrity": "sha512-JEdGzHwwkrbWoGOlIHqQ5gtprKGOenpDHpxE9zVR1bWbOtYRyPPHMe9FaP6x61CmNaTThSkb0DAJte5jD+DmzQ==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/which/-/which-6.0.1.tgz", + "integrity": "sha512-oGLe46MIrCRqX7ytPUf66EAYvdeMIZYn3WaocqqKZAxrBpkqHfL/qvTyJ/bTk5+AqHCjXmrv3CEWgy368zhRUg==", "dev": true, "license": "ISC", "dependencies": { - "isexe": "^3.1.1" + "isexe": "^4.0.0" }, "bin": { "node-which": "bin/which.js" }, "engines": { - "node": "^18.17.0 || >=20.5.0" + "node": "^20.17.0 || >=22.9.0" } }, "node_modules/@npmcli/redact": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@npmcli/redact/-/redact-3.0.0.tgz", - "integrity": "sha512-/1uFzjVcfzqrgCeGW7+SZ4hv0qLWmKXVzFahZGJ6QuJBj6Myt9s17+JL86i76NV9YSnJRcGXJYQbAU0rn1YTCQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/redact/-/redact-4.0.0.tgz", + "integrity": "sha512-gOBg5YHMfZy+TfHArfVogwgfBeQnKbbGo3pSUyK/gSI0AVu+pEiDVcKlQb0D8Mg1LNRZILZ6XG8I5dJ4KuAd9Q==", "dev": true, "license": "ISC", "engines": { - "node": "^18.17.0 || >=20.5.0" + "node": "^20.17.0 || >=22.9.0" } }, "node_modules/@npmcli/run-script": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-9.0.2.tgz", - "integrity": "sha512-cJXiUlycdizQwvqE1iaAb4VRUM3RX09/8q46zjvy+ct9GhfZRWd7jXYVc1tn/CfRlGPVkX/u4sstRlepsm7hfw==", + "version": "10.0.4", + "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-10.0.4.tgz", + "integrity": "sha512-mGUWr1uMnf0le2TwfOZY4SFxZGXGfm4Jtay/nwAa2FLNAKXUoUwaGwBMNH36UHPtinWfTSJ3nqFQr0091CxVGg==", "dev": true, "license": "ISC", "dependencies": { - "@npmcli/node-gyp": "^4.0.0", - "@npmcli/package-json": "^6.0.0", - "@npmcli/promise-spawn": "^8.0.0", - "node-gyp": "^11.0.0", - "proc-log": "^5.0.0", - "which": "^5.0.0" + "@npmcli/node-gyp": "^5.0.0", + "@npmcli/package-json": "^7.0.0", + "@npmcli/promise-spawn": "^9.0.0", + "node-gyp": "^12.1.0", + "proc-log": "^6.0.0" }, "engines": { - "node": "^18.17.0 || >=20.5.0" - } - }, - "node_modules/@npmcli/run-script/node_modules/isexe": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", - "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=16" + "node": "^20.17.0 || >=22.9.0" } }, - "node_modules/@npmcli/run-script/node_modules/which": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/which/-/which-5.0.0.tgz", - "integrity": "sha512-JEdGzHwwkrbWoGOlIHqQ5gtprKGOenpDHpxE9zVR1bWbOtYRyPPHMe9FaP6x61CmNaTThSkb0DAJte5jD+DmzQ==", + "node_modules/@npmcli/run-script/node_modules/proc-log": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-6.1.0.tgz", + "integrity": "sha512-iG+GYldRf2BQ0UDUAd6JQ/RwzaQy6mXmsk/IzlYyal4A4SNFw54MeH4/tLkF4I5WoWG9SQwuqWzS99jaFQHBuQ==", "dev": true, "license": "ISC", - "dependencies": { - "isexe": "^3.1.1" - }, - "bin": { - "node-which": "bin/which.js" - }, "engines": { - "node": "^18.17.0 || >=20.5.0" + "node": "^20.17.0 || >=22.9.0" } }, "node_modules/@parcel/watcher": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.5.0.tgz", - "integrity": "sha512-i0GV1yJnm2n3Yq1qw6QrUrd/LI9bE8WEBOTtOkpCXHHdyN3TAGgqAK/DAT05z4fq2x04cARXt2pDmjWjL92iTQ==", + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.6.0.tgz", + "integrity": "sha512-7FNeNl8NCE7aINx7WXiKQrPYZWC/hvrTsmk6zmxbI7LTXE7hVek/n8AfVgpe2y82zl3w0HvCHN0bVKMBoJcC0w==", "dev": true, "hasInstallScript": true, "license": "MIT", "optional": true, "dependencies": { - "detect-libc": "^1.0.3", + "detect-libc": "^2.0.3", "is-glob": "^4.0.3", - "micromatch": "^4.0.5", - "node-addon-api": "^7.0.0" + "node-addon-api": "^7.0.0", + "picomatch": "^4.0.4" }, "engines": { "node": ">= 10.0.0" @@ -4719,25 +6085,24 @@ "url": "https://opencollective.com/parcel" }, "optionalDependencies": { - "@parcel/watcher-android-arm64": "2.5.0", - "@parcel/watcher-darwin-arm64": "2.5.0", - "@parcel/watcher-darwin-x64": "2.5.0", - "@parcel/watcher-freebsd-x64": "2.5.0", - "@parcel/watcher-linux-arm-glibc": "2.5.0", - "@parcel/watcher-linux-arm-musl": "2.5.0", - "@parcel/watcher-linux-arm64-glibc": "2.5.0", - "@parcel/watcher-linux-arm64-musl": "2.5.0", - "@parcel/watcher-linux-x64-glibc": "2.5.0", - "@parcel/watcher-linux-x64-musl": "2.5.0", - "@parcel/watcher-win32-arm64": "2.5.0", - "@parcel/watcher-win32-ia32": "2.5.0", - "@parcel/watcher-win32-x64": "2.5.0" + "@parcel/watcher-android-arm64": "2.6.0", + "@parcel/watcher-darwin-arm64": "2.6.0", + "@parcel/watcher-darwin-x64": "2.6.0", + "@parcel/watcher-freebsd-x64": "2.6.0", + "@parcel/watcher-linux-arm-glibc": "2.6.0", + "@parcel/watcher-linux-arm-musl": "2.6.0", + "@parcel/watcher-linux-arm64-glibc": "2.6.0", + "@parcel/watcher-linux-arm64-musl": "2.6.0", + "@parcel/watcher-linux-x64-glibc": "2.6.0", + "@parcel/watcher-linux-x64-musl": "2.6.0", + "@parcel/watcher-win32-arm64": "2.6.0", + "@parcel/watcher-win32-x64": "2.6.0" } }, "node_modules/@parcel/watcher-android-arm64": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.5.0.tgz", - "integrity": "sha512-qlX4eS28bUcQCdribHkg/herLe+0A9RyYC+mm2PXpncit8z5b3nSqGVzMNR3CmtAOgRutiZ02eIJJgP/b1iEFQ==", + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.6.0.tgz", + "integrity": "sha512-trgpLSCKRC/huFjXX/Smh+0sWe4+YtKfktIToiMl59ghz7z+qkH6kMvNnUbLyRs9N11t8l4svSCs1+5B3rOAhA==", "cpu": [ "arm64" ], @@ -4756,9 +6121,9 @@ } }, "node_modules/@parcel/watcher-darwin-arm64": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.5.0.tgz", - "integrity": "sha512-hyZ3TANnzGfLpRA2s/4U1kbw2ZI4qGxaRJbBH2DCSREFfubMswheh8TeiC1sGZ3z2jUf3s37P0BBlrD3sjVTUw==", + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.6.0.tgz", + "integrity": "sha512-Y3QV0gl7Q1zbfueunkWIERICbEojQFCgpyG7YqOGNFLsckXyI1xu9mAIUpKY9QBYzBtSkN8dBPwd3yiAO9ovMw==", "cpu": [ "arm64" ], @@ -4777,9 +6142,9 @@ } }, "node_modules/@parcel/watcher-darwin-x64": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.5.0.tgz", - "integrity": "sha512-9rhlwd78saKf18fT869/poydQK8YqlU26TMiNg7AIu7eBp9adqbJZqmdFOsbZ5cnLp5XvRo9wcFmNHgHdWaGYA==", + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.6.0.tgz", + "integrity": "sha512-Ohv6OpzhUfKYD7Beb8kDvG0jbIxORCYY1JRdZnaBtnjjkJxgD7ZVL0nw2sCYd0yTMKTvz3nnTnOF3cDifK+kvw==", "cpu": [ "x64" ], @@ -4798,9 +6163,9 @@ } }, "node_modules/@parcel/watcher-freebsd-x64": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.5.0.tgz", - "integrity": "sha512-syvfhZzyM8kErg3VF0xpV8dixJ+RzbUaaGaeb7uDuz0D3FK97/mZ5AJQ3XNnDsXX7KkFNtyQyFrXZzQIcN49Tw==", + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.6.0.tgz", + "integrity": "sha512-5HmXvDgs8VK+74jF9y9/2FE3/OnlcKmc56tjmSrEuZjpSZOGL+fvAu+HKJBdPs9uwoP2hE6TlSUpXZ/C5jUFmQ==", "cpu": [ "x64" ], @@ -4819,13 +6184,16 @@ } }, "node_modules/@parcel/watcher-linux-arm-glibc": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.5.0.tgz", - "integrity": "sha512-0VQY1K35DQET3dVYWpOaPFecqOT9dbuCfzjxoQyif1Wc574t3kOSkKevULddcR9znz1TcklCE7Ht6NIxjvTqLA==", + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.6.0.tgz", + "integrity": "sha512-Ps/hui3A+vMbjdqlqAowK2ZL8+BO8dBjxeWXj6npTBs3jx4wWmbPpaLuqwrQrSqIVMCnpWo238bJ1U37GhQOYg==", "cpu": [ "arm" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -4840,13 +6208,16 @@ } }, "node_modules/@parcel/watcher-linux-arm-musl": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.5.0.tgz", - "integrity": "sha512-6uHywSIzz8+vi2lAzFeltnYbdHsDm3iIB57d4g5oaB9vKwjb6N6dRIgZMujw4nm5r6v9/BQH0noq6DzHrqr2pA==", + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.6.0.tgz", + "integrity": "sha512-9c6AUHgHoG+IY88MRIHupztQiQnrbqHYQjkM2btA+Bf/wQnQMuiD0Wfk1EVv3TlNT3x41uU71rn6E4xh/+zvkw==", "cpu": [ "arm" ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -4861,13 +6232,16 @@ } }, "node_modules/@parcel/watcher-linux-arm64-glibc": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.5.0.tgz", - "integrity": "sha512-BfNjXwZKxBy4WibDb/LDCriWSKLz+jJRL3cM/DllnHH5QUyoiUNEp3GmL80ZqxeumoADfCCP19+qiYiC8gUBjA==", + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.6.0.tgz", + "integrity": "sha512-yHRqS2owEXe6Hic9z6Mh1ECsCd+ODVOGvZDyciqRd21+v+o+DnXMOrw50DSpIG2sb8GPEaPPmfeCAWKPJdq46g==", "cpu": [ "arm64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -4882,13 +6256,16 @@ } }, "node_modules/@parcel/watcher-linux-arm64-musl": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.5.0.tgz", - "integrity": "sha512-S1qARKOphxfiBEkwLUbHjCY9BWPdWnW9j7f7Hb2jPplu8UZ3nes7zpPOW9bkLbHRvWM0WDTsjdOTUgW0xLBN1Q==", + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.6.0.tgz", + "integrity": "sha512-WhB2e/V7rqdHHWZusBSPuy5Ei8S6lSz6FE5TKKQz5h3a0O+C+mhY7vxU9b/stqvMb8beLnPY82ZrFTLKs+SrKA==", "cpu": [ "arm64" ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -4903,13 +6280,16 @@ } }, "node_modules/@parcel/watcher-linux-x64-glibc": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.5.0.tgz", - "integrity": "sha512-d9AOkusyXARkFD66S6zlGXyzx5RvY+chTP9Jp0ypSTC9d4lzyRs9ovGf/80VCxjKddcUvnsGwCHWuF2EoPgWjw==", + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.6.0.tgz", + "integrity": "sha512-ulGE6x6Oz6iAwg75T8YQSoguBWasniIbX+QWpaYPcCnDOpdWX3k+4xbEYPZVLxOuoJI+svJJPD3sEj8G7lrQ3A==", "cpu": [ "x64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -4924,13 +6304,16 @@ } }, "node_modules/@parcel/watcher-linux-x64-musl": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.5.0.tgz", - "integrity": "sha512-iqOC+GoTDoFyk/VYSFHwjHhYrk8bljW6zOhPuhi5t9ulqiYq1togGJB5e3PwYVFFfeVgc6pbz3JdQyDoBszVaA==", + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.6.0.tgz", + "integrity": "sha512-tkBYKt7YQrjIJWYDnto2YgO8MRkjlMTSNoRHzsXinBqbLdeOM3L32wPZJvIZxqaLMfSlS/4sUjH/6STVP/XDLw==", "cpu": [ "x64" ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -4945,9 +6328,9 @@ } }, "node_modules/@parcel/watcher-win32-arm64": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.5.0.tgz", - "integrity": "sha512-twtft1d+JRNkM5YbmexfcH/N4znDtjgysFaV9zvZmmJezQsKpkfLYJ+JFV3uygugK6AtIM2oADPkB2AdhBrNig==", + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.6.0.tgz", + "integrity": "sha512-gIZAP23jaHjGWasY/TY6yL7NHFClf0Ga7FN+iINvk+KN94rhm94lYZhFsbYFNcA04/onvGD9kKmiJLJB2HbNwQ==", "cpu": [ "arm64" ], @@ -4965,12 +6348,12 @@ "url": "https://opencollective.com/parcel" } }, - "node_modules/@parcel/watcher-win32-ia32": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.5.0.tgz", - "integrity": "sha512-+rgpsNRKwo8A53elqbbHXdOMtY/tAtTzManTWShB5Kk54N8Q9mzNWV7tV+IbGueCbcj826MfWGU3mprWtuf1TA==", + "node_modules/@parcel/watcher-win32-x64": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.6.0.tgz", + "integrity": "sha512-cA+/pXV2YkfxlIcXOQ5fSWqAzzPyD78/x5qbK/I0vUkrlYHA8TIz+MXjAbGouguKVSI4bOmkTSJ1/poVSsgt+A==", "cpu": [ - "ia32" + "x64" ], "dev": true, "license": "MIT", @@ -4986,60 +6369,213 @@ "url": "https://opencollective.com/parcel" } }, - "node_modules/@parcel/watcher-win32-x64": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.5.0.tgz", - "integrity": "sha512-lPrxve92zEHdgeff3aiu4gDOIt4u7sJYha6wbdEZDCDUhtjTsOMiaJzG5lMY4GkWH8p0fMmO2Ppq5G5XXG+DQw==", - "cpu": [ - "x64" - ], + "node_modules/@parcel/watcher/node_modules/node-addon-api": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz", + "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "win32" - ], + "optional": true + }, + "node_modules/@peculiar/asn1-cms": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-cms/-/asn1-cms-2.10.0.tgz", + "integrity": "sha512-CkX0H4NCIOMHOU3rh2xXZywinYZ/EnJlaOlJiGI0e5L4XjFqHf4iH30LMbXWChVppdA9ljbanjtzQFOhDNfTWg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@peculiar/asn1-schema": "^2.10.0", + "@peculiar/asn1-x509": "^2.10.0", + "@peculiar/asn1-x509-attr": "^2.10.0", + "asn1js": "^3.0.10", + "tslib": "^2.8.1" + }, "engines": { - "node": ">= 10.0.0" + "node": ">=14" + } + }, + "node_modules/@peculiar/asn1-csr": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-csr/-/asn1-csr-2.10.0.tgz", + "integrity": "sha512-jTPTr/9rxKM+niQLMF3jiAMb0lWHUhUHIuSOhdGCIfpB4FAQYf9SoiXOgxP8bS/68IB+bj+1OHvVnDVCQfVUZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@peculiar/asn1-schema": "^2.10.0", + "@peculiar/asn1-x509": "^2.10.0", + "asn1js": "^3.0.10", + "tslib": "^2.8.1" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" + "engines": { + "node": ">=14" } }, - "node_modules/@parcel/watcher/node_modules/detect-libc": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", - "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", + "node_modules/@peculiar/asn1-ecc": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-ecc/-/asn1-ecc-2.10.0.tgz", + "integrity": "sha512-GFd3iOjFrWX+QWH2R2dO5QSJyyRGv9CIBKtRlGlPNCvb2RvmCbBDexe91MJgV76c69d998Xsa+CvuQ98seoiPg==", "dev": true, - "license": "Apache-2.0", - "optional": true, - "bin": { - "detect-libc": "bin/detect-libc.js" + "license": "MIT", + "dependencies": { + "@peculiar/asn1-schema": "^2.10.0", + "@peculiar/asn1-x509": "^2.10.0", + "asn1js": "^3.0.10", + "tslib": "^2.8.1" }, "engines": { - "node": ">=0.10" + "node": ">=14" } }, - "node_modules/@parcel/watcher/node_modules/node-addon-api": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz", - "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==", + "node_modules/@peculiar/asn1-pfx": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-pfx/-/asn1-pfx-2.10.0.tgz", + "integrity": "sha512-1y3QK9ZH1IPleAMmRoJlPS10eGkAWnULETW8zDFNUK1ffqpG7zmDY+kYBMYQgwlcQZ2iitLm2z2EBP0xzRXpaA==", "dev": true, "license": "MIT", - "optional": true + "dependencies": { + "@peculiar/asn1-cms": "^2.10.0", + "@peculiar/asn1-pkcs8": "^2.10.0", + "@peculiar/asn1-rsa": "^2.10.0", + "@peculiar/asn1-schema": "^2.10.0", + "asn1js": "^3.0.10", + "tslib": "^2.8.1" + }, + "engines": { + "node": ">=14" + } }, - "node_modules/@pkgjs/parseargs": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", - "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "node_modules/@peculiar/asn1-pkcs8": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-pkcs8/-/asn1-pkcs8-2.10.0.tgz", + "integrity": "sha512-Ri+BZT9bnwqlHWmhs7lvWjvJRxKev2hA2+4EbZajgeYWCbR8hyv0znF4DhsFouOhMj2nSDV/iGJ6DMQtwITnCw==", "dev": true, "license": "MIT", - "optional": true, + "dependencies": { + "@peculiar/asn1-schema": "^2.10.0", + "@peculiar/asn1-x509": "^2.10.0", + "asn1js": "^3.0.10", + "tslib": "^2.8.1" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@peculiar/asn1-pkcs9": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-pkcs9/-/asn1-pkcs9-2.10.0.tgz", + "integrity": "sha512-XIXsbDQFezYk6fudczkuvawkRD4GNpISGCqfYhdkJlvcGF/RFknU+0DDJagOaJqBf+PdPzk4J9oMqDGcvfR9HQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@peculiar/asn1-cms": "^2.10.0", + "@peculiar/asn1-pfx": "^2.10.0", + "@peculiar/asn1-pkcs8": "^2.10.0", + "@peculiar/asn1-schema": "^2.10.0", + "@peculiar/asn1-x509": "^2.10.0", + "@peculiar/asn1-x509-attr": "^2.10.0", + "asn1js": "^3.0.10", + "tslib": "^2.8.1" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@peculiar/asn1-rsa": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-rsa/-/asn1-rsa-2.10.0.tgz", + "integrity": "sha512-4Jvmwlh3gZAhNZ4/u7JSyLuce9hofOFZ4o3PYKAccCImGnyaT5CMym/ATgvAvqpOYFNW531oPZvJlEBhJy9VfA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@peculiar/asn1-schema": "^2.10.0", + "@peculiar/asn1-x509": "^2.10.0", + "asn1js": "^3.0.10", + "tslib": "^2.8.1" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@peculiar/asn1-schema": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-schema/-/asn1-schema-2.10.0.tgz", + "integrity": "sha512-GhokD41lV4gQrrLYm3wCkHfBOnJrnhDMgt4XeMW8gzfE1UdJqIuSwsE+ggf82XBjUXRJylcm+KIGQFa4utIVLw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@peculiar/utils": "^2.0.2", + "asn1js": "^3.0.10", + "tslib": "^2.8.1" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@peculiar/asn1-x509": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-x509/-/asn1-x509-2.10.0.tgz", + "integrity": "sha512-ucNVg8+ANveTpMN3fy9lA2alryONdXc2A4cEG2hMniWbvQt+YOZoe8BI80YYNO8FBcuDY1qbDQ4uQGQVraHxGA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@peculiar/asn1-schema": "^2.10.0", + "@peculiar/utils": "^2.0.2", + "asn1js": "^3.0.10", + "tslib": "^2.8.1" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@peculiar/asn1-x509-attr": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-x509-attr/-/asn1-x509-attr-2.10.0.tgz", + "integrity": "sha512-/85GtKOKmgvuSJNlaFfwGWNdRSZZ+hpF02NyM01XiCdzpaZONiBltDyfluFPvFx966CR+ZHNSG1jniwpy07oGg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@peculiar/asn1-schema": "^2.10.0", + "@peculiar/asn1-x509": "^2.10.0", + "asn1js": "^3.0.10", + "tslib": "^2.8.1" + }, "engines": { "node": ">=14" } }, + "node_modules/@peculiar/utils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@peculiar/utils/-/utils-2.0.3.tgz", + "integrity": "sha512-+oL3HPFRIZ1St2K50lWCXiioIgSoxzz7R1J3uF6neO2yl1sgmpgY6XXJH4BdpoDkMWznQTeYF6oWNDZLCdQ4eQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^2.8.1" + } + }, + "node_modules/@peculiar/x509": { + "version": "1.14.3", + "resolved": "https://registry.npmjs.org/@peculiar/x509/-/x509-1.14.3.tgz", + "integrity": "sha512-C2Xj8FZ0uHWeCXXqX5B4/gVFQmtSkiuOolzAgutjTfseNOHT3pUjljDZsTSxXFGgio54bCzVFqmEOUrIVk8RDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@peculiar/asn1-cms": "^2.6.0", + "@peculiar/asn1-csr": "^2.6.0", + "@peculiar/asn1-ecc": "^2.6.0", + "@peculiar/asn1-pkcs9": "^2.6.0", + "@peculiar/asn1-rsa": "^2.6.0", + "@peculiar/asn1-schema": "^2.6.0", + "@peculiar/asn1-x509": "^2.6.0", + "pvtsutils": "^1.3.6", + "reflect-metadata": "^0.2.2", + "tslib": "^2.8.1", + "tsyringe": "^4.10.0" + }, + "engines": { + "node": ">=20.0.0" + } + }, "node_modules/@rollup/plugin-json": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/@rollup/plugin-json/-/plugin-json-6.1.0.tgz", @@ -5062,9 +6598,9 @@ } }, "node_modules/@rollup/pluginutils": { - "version": "5.1.4", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.4.tgz", - "integrity": "sha512-USm05zrsFxYLPdWWq+K3STlWiT/3ELn3RcV5hJMghpeAIhxfsUIg6mt12CBJBInWMV4VneoV7SfGv8xIwo2qNQ==", + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.4.0.tgz", + "integrity": "sha512-MfPp06CjRLfXQ3wY0R8vJDYBy/MvVcc9OulEfR0B8Iv9ko+GCNaRZ+EpJYFl27LhKsZK0o420sYCRHCjfCgeUg==", "dev": true, "license": "MIT", "dependencies": { @@ -5085,9 +6621,9 @@ } }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.30.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.30.1.tgz", - "integrity": "sha512-pSWY+EVt3rJ9fQ3IqlrEUtXh3cGqGtPDH1FQlNZehO2yYxCHEX1SPsz1M//NXwYfbTlcKr9WObLnJX9FsS9K1Q==", + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.59.0.tgz", + "integrity": "sha512-upnNBkA6ZH2VKGcBj9Fyl9IGNPULcjXRlg0LLeaioQWueH30p6IXtJEbKAgvyv+mJaMxSm1l6xwDXYjpEMiLMg==", "cpu": [ "arm" ], @@ -5099,9 +6635,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.30.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.30.1.tgz", - "integrity": "sha512-/NA2qXxE3D/BRjOJM8wQblmArQq1YoBVJjrjoTSBS09jgUisq7bqxNHJ8kjCHeV21W/9WDGwJEWSN0KQ2mtD/w==", + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.59.0.tgz", + "integrity": "sha512-hZ+Zxj3SySm4A/DylsDKZAeVg0mvi++0PYVceVyX7hemkw7OreKdCvW2oQ3T1FMZvCaQXqOTHb8qmBShoqk69Q==", "cpu": [ "arm64" ], @@ -5113,9 +6649,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.30.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.30.1.tgz", - "integrity": "sha512-r7FQIXD7gB0WJ5mokTUgUWPl0eYIH0wnxqeSAhuIwvnnpjdVB8cRRClyKLQr7lgzjctkbp5KmswWszlwYln03Q==", + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.59.0.tgz", + "integrity": "sha512-W2Psnbh1J8ZJw0xKAd8zdNgF9HRLkdWwwdWqubSVk0pUuQkoHnv7rx4GiF9rT4t5DIZGAsConRE3AxCdJ4m8rg==", "cpu": [ "arm64" ], @@ -5127,9 +6663,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.30.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.30.1.tgz", - "integrity": "sha512-x78BavIwSH6sqfP2xeI1hd1GpHL8J4W2BXcVM/5KYKoAD3nNsfitQhvWSw+TFtQTLZ9OmlF+FEInEHyubut2OA==", + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.59.0.tgz", + "integrity": "sha512-ZW2KkwlS4lwTv7ZVsYDiARfFCnSGhzYPdiOU4IM2fDbL+QGlyAbjgSFuqNRbSthybLbIJ915UtZBtmuLrQAT/w==", "cpu": [ "x64" ], @@ -5141,9 +6677,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.30.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.30.1.tgz", - "integrity": "sha512-HYTlUAjbO1z8ywxsDFWADfTRfTIIy/oUlfIDmlHYmjUP2QRDTzBuWXc9O4CXM+bo9qfiCclmHk1x4ogBjOUpUQ==", + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.59.0.tgz", + "integrity": "sha512-EsKaJ5ytAu9jI3lonzn3BgG8iRBjV4LxZexygcQbpiU0wU0ATxhNVEpXKfUa0pS05gTcSDMKpn3Sx+QB9RlTTA==", "cpu": [ "arm64" ], @@ -5155,9 +6691,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.30.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.30.1.tgz", - "integrity": "sha512-1MEdGqogQLccphhX5myCJqeGNYTNcmTyaic9S7CG3JhwuIByJ7J05vGbZxsizQthP1xpVx7kd3o31eOogfEirw==", + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.59.0.tgz", + "integrity": "sha512-d3DuZi2KzTMjImrxoHIAODUZYoUUMsuUiY4SRRcJy6NJoZ6iIqWnJu9IScV9jXysyGMVuW+KNzZvBLOcpdl3Vg==", "cpu": [ "x64" ], @@ -5169,13 +6705,16 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.30.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.30.1.tgz", - "integrity": "sha512-PaMRNBSqCx7K3Wc9QZkFx5+CX27WFpAMxJNiYGAXfmMIKC7jstlr32UhTgK6T07OtqR+wYlWm9IxzennjnvdJg==", + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.59.0.tgz", + "integrity": "sha512-t4ONHboXi/3E0rT6OZl1pKbl2Vgxf9vJfWgmUoCEVQVxhW6Cw/c8I6hbbu7DAvgp82RKiH7TpLwxnJeKv2pbsw==", "cpu": [ "arm" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -5183,13 +6722,16 @@ ] }, "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.30.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.30.1.tgz", - "integrity": "sha512-B8Rcyj9AV7ZlEFqvB5BubG5iO6ANDsRKlhIxySXcF1axXYUyqwBok+XZPgIYGBgs7LDXfWfifxhw0Ik57T0Yug==", + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.59.0.tgz", + "integrity": "sha512-CikFT7aYPA2ufMD086cVORBYGHffBo4K8MQ4uPS/ZnY54GKj36i196u8U+aDVT2LX4eSMbyHtyOh7D7Zvk2VvA==", "cpu": [ "arm" ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -5197,13 +6739,16 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.30.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.30.1.tgz", - "integrity": "sha512-hqVyueGxAj3cBKrAI4aFHLV+h0Lv5VgWZs9CUGqr1z0fZtlADVV1YPOij6AhcK5An33EXaxnDLmJdQikcn5NEw==", + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.59.0.tgz", + "integrity": "sha512-jYgUGk5aLd1nUb1CtQ8E+t5JhLc9x5WdBKew9ZgAXg7DBk0ZHErLHdXM24rfX+bKrFe+Xp5YuJo54I5HFjGDAA==", "cpu": [ "arm64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -5211,83 +6756,152 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.30.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.30.1.tgz", - "integrity": "sha512-i4Ab2vnvS1AE1PyOIGp2kXni69gU2DAUVt6FSXeIqUCPIR3ZlheMW3oP2JkukDfu3PsexYRbOiJrY+yVNSk9oA==", + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.59.0.tgz", + "integrity": "sha512-peZRVEdnFWZ5Bh2KeumKG9ty7aCXzzEsHShOZEFiCQlDEepP1dpUl/SrUNXNg13UmZl+gzVDPsiCwnV1uI0RUA==", "cpu": [ "arm64" ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ "linux" ] }, - "node_modules/@rollup/rollup-linux-loongarch64-gnu": { - "version": "4.30.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.30.1.tgz", - "integrity": "sha512-fARcF5g296snX0oLGkVxPmysetwUk2zmHcca+e9ObOovBR++9ZPOhqFUM61UUZ2EYpXVPN1redgqVoBB34nTpQ==", + "node_modules/@rollup/rollup-linux-loong64-gnu": { + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.59.0.tgz", + "integrity": "sha512-gbUSW/97f7+r4gHy3Jlup8zDG190AuodsWnNiXErp9mT90iCy9NKKU0Xwx5k8VlRAIV2uU9CsMnEFg/xXaOfXg==", "cpu": [ "loong64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ "linux" ] }, - "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.30.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.30.1.tgz", - "integrity": "sha512-GLrZraoO3wVT4uFXh67ElpwQY0DIygxdv0BNW9Hkm3X34wu+BkqrDrkcsIapAY+N2ATEbvak0XQ9gxZtCIA5Rw==", + "node_modules/@rollup/rollup-linux-loong64-musl": { + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.59.0.tgz", + "integrity": "sha512-yTRONe79E+o0FWFijasoTjtzG9EBedFXJMl888NBEDCDV9I2wGbFFfJQQe63OijbFCUZqxpHz1GzpbtSFikJ4Q==", "cpu": [ - "ppc64" + "loong64" ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ "linux" ] }, - "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.30.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.30.1.tgz", - "integrity": "sha512-0WKLaAUUHKBtll0wvOmh6yh3S0wSU9+yas923JIChfxOaaBarmb/lBKPF0w/+jTVozFnOXJeRGZ8NvOxvk/jcw==", + "node_modules/@rollup/rollup-linux-ppc64-gnu": { + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.59.0.tgz", + "integrity": "sha512-sw1o3tfyk12k3OEpRddF68a1unZ5VCN7zoTNtSn2KndUE+ea3m3ROOKRCZxEpmT9nsGnogpFP9x6mnLTCaoLkA==", "cpu": [ - "riscv64" + "ppc64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ "linux" ] }, - "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.30.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.30.1.tgz", - "integrity": "sha512-GWFs97Ruxo5Bt+cvVTQkOJ6TIx0xJDD/bMAOXWJg8TCSTEK8RnFeOeiFTxKniTc4vMIaWvCplMAFBt9miGxgkA==", + "node_modules/@rollup/rollup-linux-ppc64-musl": { + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.59.0.tgz", + "integrity": "sha512-+2kLtQ4xT3AiIxkzFVFXfsmlZiG5FXYW7ZyIIvGA7Bdeuh9Z0aN4hVyXS/G1E9bTP/vqszNIN/pUKCk/BTHsKA==", "cpu": [ - "s390x" + "ppc64" ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ "linux" ] }, - "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.30.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.30.1.tgz", - "integrity": "sha512-UtgGb7QGgXDIO+tqqJ5oZRGHsDLO8SlpE4MhqpY9Llpzi5rJMvrK6ZGhsRCST2abZdBqIBeXW6WPD5fGK5SDwg==", + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.59.0.tgz", + "integrity": "sha512-NDYMpsXYJJaj+I7UdwIuHHNxXZ/b/N2hR15NyH3m2qAtb/hHPA4g4SuuvrdxetTdndfj9b1WOmy73kcPRoERUg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-musl": { + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.59.0.tgz", + "integrity": "sha512-nLckB8WOqHIf1bhymk+oHxvM9D3tyPndZH8i8+35p/1YiVoVswPid2yLzgX7ZJP0KQvnkhM4H6QZ5m0LzbyIAg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.59.0.tgz", + "integrity": "sha512-oF87Ie3uAIvORFBpwnCvUzdeYUqi2wY6jRFWJAy1qus/udHFYIkplYRW+wo+GRUP4sKzYdmE1Y3+rY5Gc4ZO+w==", + "cpu": [ + "s390x" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.59.0.tgz", + "integrity": "sha512-3AHmtQq/ppNuUspKAlvA8HtLybkDflkMuLK4DPo77DfthRb71V84/c4MlWJXixZz4uruIH4uaa07IqoAkG64fg==", "cpu": [ "x64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -5295,23 +6909,54 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.30.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.30.1.tgz", - "integrity": "sha512-V9U8Ey2UqmQsBT+xTOeMzPzwDzyXmnAoO4edZhL7INkwQcaW1Ckv3WJX3qrrp/VHaDkEWIBWhRwP47r8cdrOow==", + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.59.0.tgz", + "integrity": "sha512-2UdiwS/9cTAx7qIUZB/fWtToJwvt0Vbo0zmnYt7ED35KPg13Q0ym1g442THLC7VyI6JfYTP4PiSOWyoMdV2/xg==", "cpu": [ "x64" ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ "linux" ] }, + "node_modules/@rollup/rollup-openbsd-x64": { + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.59.0.tgz", + "integrity": "sha512-M3bLRAVk6GOwFlPTIxVBSYKUaqfLrn8l0psKinkCFxl4lQvOSz8ZrKDz2gxcBwHFpci0B6rttydI4IpS4IS/jQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ] + }, + "node_modules/@rollup/rollup-openharmony-arm64": { + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.59.0.tgz", + "integrity": "sha512-tt9KBJqaqp5i5HUZzoafHZX8b5Q2Fe7UjYERADll83O4fGqJ49O1FsL6LpdzVFQcpwvnyd0i+K/VSwu/o/nWlA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ] + }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.30.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.30.1.tgz", - "integrity": "sha512-WabtHWiPaFF47W3PkHnjbmWawnX/aE57K47ZDT1BXTS5GgrBUEpvOzq0FI0V/UYzQJgdb8XlhVNH8/fwV8xDjw==", + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.59.0.tgz", + "integrity": "sha512-V5B6mG7OrGTwnxaNUzZTDTjDS7F75PO1ae6MJYdiMu60sq0CqN5CVeVsbhPxalupvTX8gXVSU9gq+Rx1/hvu6A==", "cpu": [ "arm64" ], @@ -5323,9 +6968,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.30.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.30.1.tgz", - "integrity": "sha512-pxHAU+Zv39hLUTdQQHUVHf4P+0C47y/ZloorHpzs2SXMRqeAWmGghzAhfOlzFHHwjvgokdFAhC4V+6kC1lRRfw==", + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.59.0.tgz", + "integrity": "sha512-UKFMHPuM9R0iBegwzKF4y0C4J9u8C6MEJgFuXTBerMk7EJ92GFVFYBfOZaSGLu6COf7FxpQNqhNS4c4icUPqxA==", "cpu": [ "ia32" ], @@ -5336,10 +6981,24 @@ "win32" ] }, + "node_modules/@rollup/rollup-win32-x64-gnu": { + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.59.0.tgz", + "integrity": "sha512-laBkYlSS1n2L8fSo1thDNGrCTQMmxjYY5G0WFWjFFYZkKPjsMBsgJfGf4TLxXrF6RyhI60L8TMOjBMvXiTcxeA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.30.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.30.1.tgz", - "integrity": "sha512-D6qjsXGcvhTjv0kI4fU8tUuBDF/Ueee4SVX79VfNDXZa64TfCW1Slkb6Z7O1p7vflqZjcmOVdZlqf8gvJxc6og==", + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.59.0.tgz", + "integrity": "sha512-2HRCml6OztYXyJXAvdDXPKcawukWY2GpR5/nxKp4iBgiO3wcoEGkAaqctIbZcNB6KlUQBIqt8VYkNSj2397EfA==", "cpu": [ "x64" ], @@ -5351,13 +7010,13 @@ ] }, "node_modules/@rollup/wasm-node": { - "version": "4.32.0", - "resolved": "https://registry.npmjs.org/@rollup/wasm-node/-/wasm-node-4.32.0.tgz", - "integrity": "sha512-Dsr5270xEi7yFW3MjnLp+mBO+EW0qbdp+J+EPm+eCpA0nfYnWv/xExf85uTCBu18VVvGg0RTUqrUlwA/FUe2yQ==", + "version": "4.64.0", + "resolved": "https://registry.npmjs.org/@rollup/wasm-node/-/wasm-node-4.64.0.tgz", + "integrity": "sha512-Z/de+MVpPvzOf55PE1oihpipLVt1VFP/OmtZvKQtsWaxatzqpQ2CfvFgVkQ/QaZ5TAMO+Taed2gpbBfzmM+wFQ==", "dev": true, "license": "MIT", "dependencies": { - "@types/estree": "1.0.6" + "@types/estree": "1.0.9" }, "bin": { "rollup": "dist/bin/rollup" @@ -5367,42 +7026,50 @@ "npm": ">=8.0.0" }, "optionalDependencies": { + "@napi-rs/lzma-linux-x64-gnu": "1.5.1", "fsevents": "~2.3.2" } }, + "node_modules/@rollup/wasm-node/node_modules/@types/estree": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.9.tgz", + "integrity": "sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==", + "dev": true, + "license": "MIT" + }, "node_modules/@schematics/angular": { - "version": "19.1.4", - "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-19.1.4.tgz", - "integrity": "sha512-HFf83SoXbj1K4jkYSSfCg/oXkmSGBx0zG1Lh+dE5GZFdTQmykrBY519aSdrqLVyZzKYjTGfDfSewUeO4a0GE2A==", + "version": "20.3.37", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-20.3.37.tgz", + "integrity": "sha512-NF5uNKge+1CuvSbn2cig3AXPsWLSBazh4N0PGUSFy+9QYdlpP00CUFimI2iV2DoFJWA5+z7hQlOMZ9sa7XJmmg==", "dev": true, "license": "MIT", "dependencies": { - "@angular-devkit/core": "19.1.4", - "@angular-devkit/schematics": "19.1.4", + "@angular-devkit/core": "20.3.37", + "@angular-devkit/schematics": "20.3.37", "jsonc-parser": "3.3.1" }, "engines": { - "node": "^18.19.1 || ^20.11.1 || >=22.0.0", + "node": "^20.19.0 || ^22.12.0 || >=24.0.0", "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", "yarn": ">= 1.13.0" } }, "node_modules/@schematics/angular/node_modules/@angular-devkit/core": { - "version": "19.1.4", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-19.1.4.tgz", - "integrity": "sha512-IDvSSiQgaixH2RtZtIpq1+XaHeuzMiTWfDyNF9DuYcU+S8CdG1SWrc8d59tmOrM/q+IRGyFgbBhTU1un52hNHw==", + "version": "20.3.37", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-20.3.37.tgz", + "integrity": "sha512-Mkh0QLXGdzPEqimmhhXn6nS2hoDQhWc7qrQrkvKVLaU9mh0ltd2U/3yOIIeZsRqgKRjbNW+VFlyC0z2unuiXxA==", "dev": true, "license": "MIT", "dependencies": { - "ajv": "8.17.1", + "ajv": "8.18.0", "ajv-formats": "3.0.1", "jsonc-parser": "3.3.1", - "picomatch": "4.0.2", - "rxjs": "7.8.1", - "source-map": "0.7.4" + "picomatch": "4.0.4", + "rxjs": "7.8.2", + "source-map": "0.7.6" }, "engines": { - "node": "^18.19.1 || ^20.11.1 || >=22.0.0", + "node": "^20.19.0 || ^22.12.0 || >=24.0.0", "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", "yarn": ">= 1.13.0" }, @@ -5416,28 +7083,28 @@ } }, "node_modules/@schematics/angular/node_modules/@angular-devkit/schematics": { - "version": "19.1.4", - "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-19.1.4.tgz", - "integrity": "sha512-EKXBkx6EDcvyO+U68w/eXicRaF92zSSzYNvR3tMZszEKYE6xBr3kZxY99PP54HXQHR4zYwLvFJVp+T6bnvte2w==", + "version": "20.3.37", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-20.3.37.tgz", + "integrity": "sha512-cut471ALIuZR+WyoQLFfypZDNTxwG35O7fEj6wTh65EliNISTkmZaqUOgqNjTT6xJ/YaDwZ9+CuSfTdyO0hMCg==", "dev": true, "license": "MIT", "dependencies": { - "@angular-devkit/core": "19.1.4", + "@angular-devkit/core": "20.3.37", "jsonc-parser": "3.3.1", "magic-string": "0.30.17", - "ora": "5.4.1", - "rxjs": "7.8.1" + "ora": "8.2.0", + "rxjs": "7.8.2" }, "engines": { - "node": "^18.19.1 || ^20.11.1 || >=22.0.0", + "node": "^20.19.0 || ^22.12.0 || >=24.0.0", "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", "yarn": ">= 1.13.0" } }, "node_modules/@schematics/angular/node_modules/ajv": { - "version": "8.17.1", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", - "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.18.0.tgz", + "integrity": "sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==", "dev": true, "license": "MIT", "dependencies": { @@ -5469,126 +7136,120 @@ } } }, - "node_modules/@schematics/angular/node_modules/chokidar": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", - "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", + "node_modules/@schematics/angular/node_modules/ansi-regex": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.4.0.tgz", + "integrity": "sha512-KzTVk2tCWAHtYrvvvaP8bJKJq2pVinhLcGEQdtLIYPbmNGNyYe8QwNaTUYQp2J7/vIsUKt5QCqAfUkYyG9DkOw==", "dev": true, "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "readdirp": "^4.0.1" - }, "engines": { - "node": ">= 14.16.0" + "node": ">=12" }, "funding": { - "url": "https://paulmillr.com/funding/" + "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, - "node_modules/@schematics/angular/node_modules/readdirp": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.1.tgz", - "integrity": "sha512-h80JrZu/MHUZCyHu5ciuoI0+WxsCxzxJTILn6Fs8rxSnFPh+UVHYfeIxK1nVGugMqkfC4vJcBOYbkfkwYK0+gw==", + "node_modules/@schematics/angular/node_modules/chalk": { + "version": "5.6.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.6.2.tgz", + "integrity": "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==", "dev": true, "license": "MIT", - "optional": true, - "peer": true, "engines": { - "node": ">= 14.18.0" + "node": "^12.17.0 || ^14.13 || >=16.0.0" }, "funding": { - "type": "individual", - "url": "https://paulmillr.com/funding/" + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/@sigstore/bundle": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@sigstore/bundle/-/bundle-3.0.0.tgz", - "integrity": "sha512-XDUYX56iMPAn/cdgh/DTJxz5RWmqKV4pwvUAEKEWJl+HzKdCd/24wUa9JYNMlDSCb7SUHAdtksxYX779Nne/Zg==", + "node_modules/@schematics/angular/node_modules/cli-cursor": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-5.0.0.tgz", + "integrity": "sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==", "dev": true, - "license": "Apache-2.0", + "license": "MIT", "dependencies": { - "@sigstore/protobuf-specs": "^0.3.2" + "restore-cursor": "^5.0.0" }, "engines": { - "node": "^18.17.0 || >=20.5.0" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@sigstore/core": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@sigstore/core/-/core-2.0.0.tgz", - "integrity": "sha512-nYxaSb/MtlSI+JWcwTHQxyNmWeWrUXJJ/G4liLrGG7+tS4vAz6LF3xRXqLH6wPIVUoZQel2Fs4ddLx4NCpiIYg==", + "node_modules/@schematics/angular/node_modules/emoji-regex": { + "version": "10.6.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.6.0.tgz", + "integrity": "sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==", "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^18.17.0 || >=20.5.0" - } + "license": "MIT" }, - "node_modules/@sigstore/protobuf-specs": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@sigstore/protobuf-specs/-/protobuf-specs-0.3.3.tgz", - "integrity": "sha512-RpacQhBlwpBWd7KEJsRKcBQalbV28fvkxwTOJIqhIuDysMMaJW47V4OqW30iJB9uRpqOSxxEAQFdr8tTattReQ==", + "node_modules/@schematics/angular/node_modules/is-interactive": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-2.0.0.tgz", + "integrity": "sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==", "dev": true, - "license": "Apache-2.0", + "license": "MIT", "engines": { - "node": "^18.17.0 || >=20.5.0" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@sigstore/sign": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@sigstore/sign/-/sign-3.0.0.tgz", - "integrity": "sha512-UjhDMQOkyDoktpXoc5YPJpJK6IooF2gayAr5LvXI4EL7O0vd58okgfRcxuaH+YTdhvb5aa1Q9f+WJ0c2sVuYIw==", + "node_modules/@schematics/angular/node_modules/is-unicode-supported": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-2.1.0.tgz", + "integrity": "sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==", "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@sigstore/bundle": "^3.0.0", - "@sigstore/core": "^2.0.0", - "@sigstore/protobuf-specs": "^0.3.2", - "make-fetch-happen": "^14.0.1", - "proc-log": "^5.0.0", - "promise-retry": "^2.0.1" - }, + "license": "MIT", "engines": { - "node": "^18.17.0 || >=20.5.0" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@sigstore/tuf": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@sigstore/tuf/-/tuf-3.0.0.tgz", - "integrity": "sha512-9Xxy/8U5OFJu7s+OsHzI96IX/OzjF/zj0BSSaWhgJgTqtlBhQIV2xdrQI5qxLD7+CWWDepadnXAxzaZ3u9cvRw==", + "node_modules/@schematics/angular/node_modules/log-symbols": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-6.0.0.tgz", + "integrity": "sha512-i24m8rpwhmPIS4zscNzK6MSEhk0DUWa/8iYQWxhffV8jkI4Phvs3F+quL5xvS0gdQR0FyTCMMH33Y78dDTzzIw==", "dev": true, - "license": "Apache-2.0", + "license": "MIT", "dependencies": { - "@sigstore/protobuf-specs": "^0.3.2", - "tuf-js": "^3.0.1" + "chalk": "^5.3.0", + "is-unicode-supported": "^1.3.0" }, "engines": { - "node": "^18.17.0 || >=20.5.0" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@sigstore/verify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@sigstore/verify/-/verify-2.0.0.tgz", - "integrity": "sha512-Ggtq2GsJuxFNUvQzLoXqRwS4ceRfLAJnrIHUDrzAD0GgnOhwujJkKkxM/s5Bako07c3WtAs/sZo5PJq7VHjeDg==", + "node_modules/@schematics/angular/node_modules/log-symbols/node_modules/is-unicode-supported": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz", + "integrity": "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==", "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@sigstore/bundle": "^3.0.0", - "@sigstore/core": "^2.0.0", - "@sigstore/protobuf-specs": "^0.3.2" - }, + "license": "MIT", "engines": { - "node": "^18.17.0 || >=20.5.0" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@sindresorhus/merge-streams": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-2.3.0.tgz", - "integrity": "sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==", + "node_modules/@schematics/angular/node_modules/onetime": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-7.0.0.tgz", + "integrity": "sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==", "dev": true, "license": "MIT", + "dependencies": { + "mimic-function": "^5.0.0" + }, "engines": { "node": ">=18" }, @@ -5596,99 +7257,310 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@socket.io/component-emitter": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.2.tgz", - "integrity": "sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==", - "dev": true - }, - "node_modules/@tufjs/canonical-json": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@tufjs/canonical-json/-/canonical-json-2.0.0.tgz", - "integrity": "sha512-yVtV8zsdo8qFHe+/3kw81dSLyF7D576A5cCFCi4X7B39tWT7SekaEFUnvnWJHz+9qO7qJTah1JbrDjWKqFtdWA==", + "node_modules/@schematics/angular/node_modules/ora": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/ora/-/ora-8.2.0.tgz", + "integrity": "sha512-weP+BZ8MVNnlCm8c0Qdc1WSWq4Qn7I+9CJGm7Qali6g44e/PUzbjNqJX5NJ9ljlNMosfJvg1fKEGILklK9cwnw==", "dev": true, "license": "MIT", + "dependencies": { + "chalk": "^5.3.0", + "cli-cursor": "^5.0.0", + "cli-spinners": "^2.9.2", + "is-interactive": "^2.0.0", + "is-unicode-supported": "^2.0.0", + "log-symbols": "^6.0.0", + "stdin-discarder": "^0.2.2", + "string-width": "^7.2.0", + "strip-ansi": "^7.1.0" + }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@tufjs/models": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@tufjs/models/-/models-3.0.1.tgz", - "integrity": "sha512-UUYHISyhCU3ZgN8yaear3cGATHb3SMuKHsQ/nVbHXcmnBf+LzQ/cQfhNG+rfaSHgqGKNEm2cOCLVLELStUQ1JA==", + "node_modules/@schematics/angular/node_modules/restore-cursor": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-5.1.0.tgz", + "integrity": "sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==", "dev": true, "license": "MIT", "dependencies": { - "@tufjs/canonical-json": "2.0.0", - "minimatch": "^9.0.5" + "onetime": "^7.0.0", + "signal-exit": "^4.1.0" }, "engines": { - "node": "^18.17.0 || >=20.5.0" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@tufjs/models/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "node_modules/@schematics/angular/node_modules/rxjs": { + "version": "7.8.2", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.2.tgz", + "integrity": "sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==", "dev": true, - "license": "MIT", + "license": "Apache-2.0", "dependencies": { - "balanced-match": "^1.0.0" + "tslib": "^2.1.0" } }, - "node_modules/@tufjs/models/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "node_modules/@schematics/angular/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", "dev": true, "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": ">=14" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@types/body-parser": { - "version": "1.19.5", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz", - "integrity": "sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==", + "node_modules/@schematics/angular/node_modules/source-map": { + "version": "0.7.6", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.6.tgz", + "integrity": "sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==", "dev": true, - "license": "MIT", - "dependencies": { - "@types/connect": "*", - "@types/node": "*" + "license": "BSD-3-Clause", + "engines": { + "node": ">= 12" } }, - "node_modules/@types/bonjour": { - "version": "3.5.13", - "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.13.tgz", - "integrity": "sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==", + "node_modules/@schematics/angular/node_modules/string-width": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", + "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", "dev": true, "license": "MIT", "dependencies": { - "@types/node": "*" + "emoji-regex": "^10.3.0", + "get-east-asian-width": "^1.0.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@types/connect": { - "version": "3.4.38", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", - "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", + "node_modules/@schematics/angular/node_modules/strip-ansi": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz", + "integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==", "dev": true, "license": "MIT", "dependencies": { - "@types/node": "*" + "ansi-regex": "^6.2.2" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, - "node_modules/@types/connect-history-api-fallback": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.4.tgz", - "integrity": "sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==", + "node_modules/@sigstore/bundle": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@sigstore/bundle/-/bundle-4.0.0.tgz", + "integrity": "sha512-NwCl5Y0V6Di0NexvkTqdoVfmjTaQwoLM236r89KEojGmq/jMls8S+zb7yOwAPdXvbwfKDlP+lmXgAL4vKSQT+A==", "dev": true, - "license": "MIT", + "license": "Apache-2.0", + "dependencies": { + "@sigstore/protobuf-specs": "^0.5.0" + }, + "engines": { + "node": "^20.17.0 || >=22.9.0" + } + }, + "node_modules/@sigstore/core": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/@sigstore/core/-/core-3.2.1.tgz", + "integrity": "sha512-qRsxPnCrbC/puegGxKuynfnxgLiHqWStrSjxkoB4YKqq3Z3s4cyZyj42ZdWFAEblNP65C+rBH8EuREHIXoi83g==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^20.17.0 || >=22.9.0" + } + }, + "node_modules/@sigstore/protobuf-specs": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/@sigstore/protobuf-specs/-/protobuf-specs-0.5.2.tgz", + "integrity": "sha512-SQqvFMt4V78fdjcDdYX6HbiVSOR4QK3ZgwCa2KOsopAgPIHy1rU5UDUmzLl02r5oyyaYcYHR1hpwDRk/yUe+Mw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/@sigstore/sign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/@sigstore/sign/-/sign-4.1.1.tgz", + "integrity": "sha512-Hf4xglukg0XXQ2RiD5vSoLjdPe8OBUPA8XeVjUObheuDcWdYWrnH/BNmxZCzkAy68MzmNCxXLeurJvs6hcP2OQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@gar/promise-retry": "^1.0.2", + "@sigstore/bundle": "^4.0.0", + "@sigstore/core": "^3.2.0", + "@sigstore/protobuf-specs": "^0.5.0", + "make-fetch-happen": "^15.0.4", + "proc-log": "^6.1.0" + }, + "engines": { + "node": "^20.17.0 || >=22.9.0" + } + }, + "node_modules/@sigstore/sign/node_modules/proc-log": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-6.1.0.tgz", + "integrity": "sha512-iG+GYldRf2BQ0UDUAd6JQ/RwzaQy6mXmsk/IzlYyal4A4SNFw54MeH4/tLkF4I5WoWG9SQwuqWzS99jaFQHBuQ==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^20.17.0 || >=22.9.0" + } + }, + "node_modules/@sigstore/tuf": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@sigstore/tuf/-/tuf-4.0.2.tgz", + "integrity": "sha512-TCAzTy0xzdP79EnxSjq9KQ3eaR7+FmudLC6eRKknVKZbV7ZNlGLClAAQb/HMNJ5n2OBNk2GT1tEmU0xuPr+SLQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@sigstore/protobuf-specs": "^0.5.0", + "tuf-js": "^4.1.0" + }, + "engines": { + "node": "^20.17.0 || >=22.9.0" + } + }, + "node_modules/@sigstore/verify": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@sigstore/verify/-/verify-3.1.1.tgz", + "integrity": "sha512-qv7+G3J2cc6wwFj3yKvXOamzqhMwSk1ogPGmhpS8iXllcPrJaIIBA+4HbttlHVu1pqWTdmaCH/WE7UOC51kdoA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@sigstore/bundle": "^4.0.0", + "@sigstore/core": "^3.2.1", + "@sigstore/protobuf-specs": "^0.5.0" + }, + "engines": { + "node": "^20.17.0 || >=22.9.0" + } + }, + "node_modules/@socket.io/component-emitter": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.2.tgz", + "integrity": "sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==", + "dev": true + }, + "node_modules/@tufjs/canonical-json": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tufjs/canonical-json/-/canonical-json-2.0.0.tgz", + "integrity": "sha512-yVtV8zsdo8qFHe+/3kw81dSLyF7D576A5cCFCi4X7B39tWT7SekaEFUnvnWJHz+9qO7qJTah1JbrDjWKqFtdWA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@tufjs/models": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@tufjs/models/-/models-4.1.0.tgz", + "integrity": "sha512-Y8cK9aggNRsqJVaKUlEYs4s7CvQ1b1ta2DVPyAimb0I2qhzjNk+A+mxvll/klL0RlfuIUei8BF7YWiua4kQqww==", + "dev": true, + "license": "MIT", + "dependencies": { + "@tufjs/canonical-json": "2.0.0", + "minimatch": "^10.1.1" + }, + "engines": { + "node": "^20.17.0 || >=22.9.0" + } + }, + "node_modules/@tufjs/models/node_modules/balanced-match": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", + "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "18 || 20 || >=22" + } + }, + "node_modules/@tufjs/models/node_modules/brace-expansion": { + "version": "5.0.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.12.tgz", + "integrity": "sha512-YovQ3rzhaLMIrDjNDMkNS01tea93qhEhG5xy8f6+R0l+dw3Ki+5sCoIoI942iuLZTHWogWktgwVDhU09iNEimQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^4.0.2" + }, + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/@tufjs/models/node_modules/minimatch": { + "version": "10.2.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.6.tgz", + "integrity": "sha512-vpLQEs+VLCr1nU0BXS07maYoFwlDAH0gngQuuttxIwutDFEMHq2blX+8vpgxDdK3J1PwjCJiep77OitTZ4Ll1A==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "brace-expansion": "^5.0.8" + }, + "engines": { + "node": "18 || 20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@types/body-parser": { + "version": "1.19.6", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.6.tgz", + "integrity": "sha512-HLFeCYgz89uk22N5Qg3dvGvsv46B8GLvKKo1zKG4NybA8U2DiEO3w9lqGg29t/tfLRJpJ6iQxnVw4OnB7MoM9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "node_modules/@types/bonjour": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.13.tgz", + "integrity": "sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/connect": { + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", + "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/connect-history-api-fallback": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.4.tgz", + "integrity": "sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==", + "dev": true, + "license": "MIT", "dependencies": { "@types/express-serve-static-core": "*", "@types/node": "*" @@ -5746,42 +7618,29 @@ } }, "node_modules/@types/estree": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", - "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", "dev": true, "license": "MIT" }, "node_modules/@types/express": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz", - "integrity": "sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==", + "version": "4.17.25", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.25.tgz", + "integrity": "sha512-dVd04UKsfpINUnK0yBoYHDF3xu7xVH4BuDotC/xGuycx4CgbP48X/KF/586bcObxT0HENHXEU8Nqtu6NR+eKhw==", "dev": true, "license": "MIT", "dependencies": { "@types/body-parser": "*", "@types/express-serve-static-core": "^4.17.33", "@types/qs": "*", - "@types/serve-static": "*" + "@types/serve-static": "^1" } }, "node_modules/@types/express-serve-static-core": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-5.0.5.tgz", - "integrity": "sha512-GLZPrd9ckqEBFMcVM/qRFAP0Hg3qiVEojgEFsx/N/zKXsBzbGF6z5FBDpZ0+Xhp1xr+qRZYjfGr1cWHB9oFHSA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*", - "@types/send": "*" - } - }, - "node_modules/@types/express/node_modules/@types/express-serve-static-core": { - "version": "4.19.6", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.6.tgz", - "integrity": "sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A==", + "version": "4.19.9", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.9.tgz", + "integrity": "sha512-QP2ESEe/ImWY0HDwNAnK9PvEffUyhLTnWkk7KXzHfyeWAnlrDe1fN77bXl6ia8KT3wPlmA7t9/VPRpnf4Ex9sg==", "dev": true, "license": "MIT", "dependencies": { @@ -5792,16 +7651,16 @@ } }, "node_modules/@types/http-errors": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz", - "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.5.tgz", + "integrity": "sha512-r8Tayk8HJnX0FztbZN7oVqGccWgw98T/0neJphO91KkmOzug1KkofZURD4UaD5uH8AqcFLfdPErnBod0u71/qg==", "dev": true, "license": "MIT" }, "node_modules/@types/http-proxy": { - "version": "1.17.15", - "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.15.tgz", - "integrity": "sha512-25g5atgiVNTIv0LBDTg1H74Hvayx0ajtJPLLcYE3whFv75J0pWNtOBzaXJQgDTmrX1bx5U9YC2w/n65BN1HwRQ==", + "version": "1.17.17", + "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.17.tgz", + "integrity": "sha512-ED6LB+Z1AVylNTu7hdzuBqOgMnvG/ld6wGCG8wFnAzKX5uyW2K3WD52v0gnLCTK/VLpXtKckgWuyScYK6cSPaw==", "dev": true, "license": "MIT", "dependencies": { @@ -5834,29 +7693,19 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "22.5.4", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.5.4.tgz", - "integrity": "sha512-FDuKUJQm/ju9fT/SeX/6+gBzoPzlVCzfzmGkwKvRHQVxi4BntVbyIwf6a4Xn62mrvndLiml6z/UBXIdEVjQLXg==", + "version": "26.6.4", + "resolved": "https://registry.npmjs.org/@types/node/-/node-26.6.4.tgz", + "integrity": "sha512-ldVPDCzj7fsaGZrLB0NuHuTvJcsNasysBAqMolr/cgxrLd1xbqxIr3XJiPnHHJUCxj5sNF1vnRj9aWnrVh5Jcg==", "dev": true, "license": "MIT", "dependencies": { - "undici-types": "~6.19.2" - } - }, - "node_modules/@types/node-forge": { - "version": "1.3.11", - "resolved": "https://registry.npmjs.org/@types/node-forge/-/node-forge-1.3.11.tgz", - "integrity": "sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*" + "undici-types": "~8.9.0" } }, "node_modules/@types/qs": { - "version": "6.9.18", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.18.tgz", - "integrity": "sha512-kK7dgTYDyGqS+e2Q4aK9X3D7q234CIZ1Bv0q/7Z5IwRDoADNU81xXJK/YVyLbLTZCoIwUoDoffFeF+p/eIklAA==", + "version": "6.15.1", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.15.1.tgz", + "integrity": "sha512-GZHUBZR9hckSUhrxmp1nG6NwdpM9fCunJwyThLW1X3AyHgd9IlHb6VANpQQqDr2o/qQp6McZ3y/IA2rVzKzSbw==", "dev": true, "license": "MIT" }, @@ -5875,13 +7724,12 @@ "license": "MIT" }, "node_modules/@types/send": { - "version": "0.17.4", - "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz", - "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@types/send/-/send-1.2.1.tgz", + "integrity": "sha512-arsCikDvlU99zl1g69TcAB3mzZPpxgw0UQnaHeC1Nwb015xp8bknZv5rIfri9xTOcMuaVgvabfIRA7PSZVuZIQ==", "dev": true, "license": "MIT", "dependencies": { - "@types/mime": "^1", "@types/node": "*" } }, @@ -5896,15 +7744,26 @@ } }, "node_modules/@types/serve-static": { - "version": "1.15.7", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.7.tgz", - "integrity": "sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==", + "version": "1.15.10", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.10.tgz", + "integrity": "sha512-tRs1dB+g8Itk72rlSI2ZrW6vZg0YrLI81iQSTkMmOqnqCaNr/8Ek4VwWcN5vZgCYWbg/JJSGBlUaYGAOP73qBw==", "dev": true, "license": "MIT", "dependencies": { "@types/http-errors": "*", "@types/node": "*", - "@types/send": "*" + "@types/send": "<1" + } + }, + "node_modules/@types/serve-static/node_modules/@types/send": { + "version": "0.17.6", + "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.6.tgz", + "integrity": "sha512-Uqt8rPBE8SY0RK8JB1EzVOIZ32uqy8HwdxCnoCOsYrvnswqmFZ/k+9Ikidlk/ImhsdvBsloHbAlewb2IEBV/Og==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/mime": "^1", + "@types/node": "*" } }, "node_modules/@types/sockjs": { @@ -5918,9 +7777,9 @@ } }, "node_modules/@types/ws": { - "version": "8.5.14", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.14.tgz", - "integrity": "sha512-bd/YFLW+URhBzMXurx7lWByOu+xzU9+kb3RboOteXYDfW+tr+JZa99OyNmPINEGB/ahzKrEuc8rcv4gnpJmxTw==", + "version": "8.18.2", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.18.2.tgz", + "integrity": "sha512-67MQl+fpWKVTT1NYdnmo3U4sc/xPo/zQBncVnI74qmQa0z/b+1g6iYqNmGCPbxO+zz2aklb08a0oHfegiVd0/w==", "dev": true, "license": "MIT", "dependencies": { @@ -5928,16 +7787,16 @@ } }, "node_modules/@vitejs/plugin-basic-ssl": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-basic-ssl/-/plugin-basic-ssl-1.2.0.tgz", - "integrity": "sha512-mkQnxTkcldAzIsomk1UuLfAu9n+kpQ3JbHcpCp7d2Oo6ITtji8pHS3QToOWjhPFvNQSnhlkAjmGbhv2QvwO/7Q==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-basic-ssl/-/plugin-basic-ssl-2.1.0.tgz", + "integrity": "sha512-dOxxrhgyDIEUADhb/8OlV9JIqYLgos03YorAueTIeOUskLJSEsfwCByjbu98ctXitUN3znXKp0bYD/WHSudCeA==", "dev": true, "license": "MIT", "engines": { - "node": ">=14.21.3" + "node": "^18.0.0 || ^20.0.0 || >=22.0.0" }, "peerDependencies": { - "vite": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0" + "vite": "^6.0.0 || ^7.0.0" } }, "node_modules/@webassemblyjs/ast": { @@ -6122,13 +7981,13 @@ "dev": true }, "node_modules/abbrev": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-3.0.0.tgz", - "integrity": "sha512-+/kfrslGQ7TNV2ecmQwMJj/B65g5KVq1/L3SGVZ3tCYGqlzFuFCGBZJtMP99wH3NpEUyAjn0zPdPUg0D+DwrOA==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-4.0.0.tgz", + "integrity": "sha512-a1wflyaL0tHtJSmLSOVybYhy22vRih4eduhhrkcjgrWGnRfrZtovJ2FRjxuTtkkj47O/baf0R86QU5OuYpz8fA==", "dev": true, "license": "ISC", "engines": { - "node": "^18.17.0 || >=20.5.0" + "node": "^20.17.0 || >=22.9.0" } }, "node_modules/accepts": { @@ -6145,9 +8004,9 @@ } }, "node_modules/acorn": { - "version": "8.14.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", - "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.18.0.tgz", + "integrity": "sha512-lGq+9yr1/GuAWaVYIHRjvvySG5/4VfKIvC8EWxStPdcDh/Ka7FG3twP6v4d5BkravUilhIAsG4Qj83t02LWUPQ==", "dev": true, "license": "MIT", "bin": { @@ -6157,6 +8016,19 @@ "node": ">=0.4.0" } }, + "node_modules/acorn-import-phases": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/acorn-import-phases/-/acorn-import-phases-1.0.4.tgz", + "integrity": "sha512-wKmbr/DDiIXzEOiWrTTUcDm24kQ2vGfZQvM2fwg2vXqR5uW6aapr7ObPtj1th32b9u90/Pf4AItvdTh42fBmVQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.13.0" + }, + "peerDependencies": { + "acorn": "^8.14.0" + } + }, "node_modules/adjust-sourcemap-loader": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-4.0.0.tgz", @@ -6185,9 +8057,9 @@ } }, "node_modules/agent-base": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.3.tgz", - "integrity": "sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==", + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz", + "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==", "dev": true, "license": "MIT", "engines": { @@ -6199,6 +8071,7 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", "dev": true, + "peer": true, "dependencies": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", @@ -6215,6 +8088,7 @@ "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", "dev": true, + "peer": true, "dependencies": { "ajv": "^8.0.0" }, @@ -6232,6 +8106,7 @@ "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", "dev": true, + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.3" }, @@ -6239,6 +8114,32 @@ "ajv": "^8.8.2" } }, + "node_modules/algoliasearch": { + "version": "5.35.0", + "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-5.35.0.tgz", + "integrity": "sha512-Y+moNhsqgLmvJdgTsO4GZNgsaDWv8AOGAaPeIeHKlDn/XunoAqYbA+XNpBd1dW8GOXAUDyxC9Rxc7AV4kpFcIg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@algolia/abtesting": "1.1.0", + "@algolia/client-abtesting": "5.35.0", + "@algolia/client-analytics": "5.35.0", + "@algolia/client-common": "5.35.0", + "@algolia/client-insights": "5.35.0", + "@algolia/client-personalization": "5.35.0", + "@algolia/client-query-suggestions": "5.35.0", + "@algolia/client-search": "5.35.0", + "@algolia/ingestion": "1.35.0", + "@algolia/monitoring": "1.35.0", + "@algolia/recommend": "5.35.0", + "@algolia/requester-browser-xhr": "5.35.0", + "@algolia/requester-fetch": "5.35.0", + "@algolia/requester-node-http": "5.35.0" + }, + "engines": { + "node": ">= 14.0.0" + } + }, "node_modules/angular-cli-ghpages": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/angular-cli-ghpages/-/angular-cli-ghpages-1.0.7.tgz", @@ -6312,16 +8213,16 @@ } }, "node_modules/ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-7.3.0.tgz", + "integrity": "sha512-BvU8nYgGQBxcmMuEeUEmNTvrMVjJNSH7RgW24vXexN4Ven6qCvy4TntnvlnwnMLTVlcRQQdbRY8NKnaIoeWDNg==", "dev": true, "license": "MIT", "dependencies": { - "type-fest": "^0.21.3" + "environment": "^1.0.0" }, "engines": { - "node": ">=8" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -6452,6 +8353,21 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/asn1js": { + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/asn1js/-/asn1js-3.0.10.tgz", + "integrity": "sha512-S2s3aOytiKdFRdulw2qPE51MzjzVOisppcVv7jVFR+Kw0kxwvFrDcYA0h7Ndqbmj0HkMIXYWaoj7fli8kgx1eg==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "pvtsutils": "^1.3.6", + "pvutils": "^1.1.5", + "tslib": "^2.8.1" + }, + "engines": { + "node": ">=12.0.0" + } + }, "node_modules/async": { "version": "2.6.4", "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", @@ -6471,9 +8387,9 @@ } }, "node_modules/autoprefixer": { - "version": "10.4.20", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.20.tgz", - "integrity": "sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==", + "version": "10.4.21", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.21.tgz", + "integrity": "sha512-O+A6LWV5LDHSJD3LjHYoNi4VLsj/Whi7k6zG12xTYaU4cQ8oxQGckXNX8cRHK5yOZ/ppVHe0ZBXGzSV9jXdVbQ==", "dev": true, "funding": [ { @@ -6491,11 +8407,11 @@ ], "license": "MIT", "dependencies": { - "browserslist": "^4.23.3", - "caniuse-lite": "^1.0.30001646", + "browserslist": "^4.24.4", + "caniuse-lite": "^1.0.30001702", "fraction.js": "^4.3.7", "normalize-range": "^0.1.2", - "picocolors": "^1.0.1", + "picocolors": "^1.1.1", "postcss-value-parser": "^4.2.0" }, "bin": { @@ -6524,73 +8440,137 @@ } }, "node_modules/babel-loader": { - "version": "9.2.1", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-9.2.1.tgz", - "integrity": "sha512-fqe8naHt46e0yIdkjUZYqddSXfej3AHajX+CSO5X7oy0EmPc6o5Xh+RClNoHjnieWz9AW4kZxW9yyFMhVB1QLA==", + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-10.0.0.tgz", + "integrity": "sha512-z8jt+EdS61AMw22nSfoNJAZ0vrtmhPRVi6ghL3rCeRZI8cdNYFiV5xeV3HbE7rlZZNmGH8BVccwWt8/ED0QOHA==", "dev": true, "license": "MIT", "dependencies": { - "find-cache-dir": "^4.0.0", - "schema-utils": "^4.0.0" + "find-up": "^5.0.0" }, "engines": { - "node": ">= 14.15.0" + "node": "^18.20.0 || ^20.10.0 || >=22.0.0" }, "peerDependencies": { "@babel/core": "^7.12.0", - "webpack": ">=5" + "webpack": ">=5.61.0" } }, - "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.4.12", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.12.tgz", - "integrity": "sha512-CPWT6BwvhrTO2d8QVorhTCQw9Y43zOu7G9HigcfxvepOU6b8o3tcWad6oVgZIsZCTt42FFv97aA7ZJsbM4+8og==", + "node_modules/babel-loader/node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.22.6", - "@babel/helper-define-polyfill-provider": "^0.6.3", - "semver": "^6.3.1" + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "node_modules/babel-loader/node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" + "license": "MIT", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.10.6", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.6.tgz", - "integrity": "sha512-b37+KR2i/khY5sKmWNVQAnitvquQbNdWy6lJdsr0kmquCKEEUgMKK4SboVM3HtfnZilfjr4MMQ7vY58FVWDtIA==", + "node_modules/babel-loader/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.6.2", - "core-js-compat": "^3.38.0" + "yocto-queue": "^0.1.0" }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.3.tgz", - "integrity": "sha512-LiWSbl4CRSIa5x/JAU6jZiG9eit9w6mz+yVMFwDE83LAWvt0AfGBoZ7HS/mkhrKuh2ZlzfVZYKoLjXdqw6Yt7Q==", + "node_modules/babel-loader/node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.6.3" + "p-limit": "^3.0.2" }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.4.17", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.17.tgz", + "integrity": "sha512-aTyf30K/rqAsNwN76zYrdtx8obu0E4KoUME29B1xj+B3WxgvWkp943vYQ+z8Mv3lw9xHXMHpvSPOBxzAkIa94w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.28.6", + "@babel/helper-define-polyfill-provider": "^0.6.8", + "semver": "^6.3.1" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.13.0.tgz", + "integrity": "sha512-U+GNwMdSFgzVmfhNm8GJUX88AadB3uo9KpJqS3FaqNIPKgySuvMb+bHPsOmmuWyIcuqZj/pzt1RUIUZns4y2+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.5", + "core-js-compat": "^3.43.0" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.6.8", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.8.tgz", + "integrity": "sha512-M762rNHfSF1EV3SLtnCJXFoQbbIIz0OyRwnCmV0KPC7qosSfCO0QLTSuJX3ayAebubhE6oYBAYPrBA5ljowaZg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.8" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, "node_modules/balanced-match": { @@ -6617,7 +8597,8 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "peer": true }, "node_modules/base64id": { "version": "2.0.0", @@ -6628,6 +8609,19 @@ "node": "^4.5.0 || >= 5.9" } }, + "node_modules/baseline-browser-mapping": { + "version": "2.11.27", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.11.27.tgz", + "integrity": "sha512-ElY12DaROGuan+lMmZ8Cvo/ZUbXPe7Enc/9VU/b1T3Kp4dwytRcNdR8DoSJN5SNJT/CuvcCA0DHDVmMOCePdRQ==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "baseline-browser-mapping": "dist/cli.cjs" + }, + "engines": { + "node": ">=6.0.0" + } + }, "node_modules/batch": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", @@ -6636,17 +8630,17 @@ "license": "MIT" }, "node_modules/beasties": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/beasties/-/beasties-0.2.0.tgz", - "integrity": "sha512-Ljqskqx/tbZagIglYoJIMzH5zgssyp+in9+9sAyh15N22AornBeIDnb8EZ6Rk+6ShfMxd92uO3gfpT0NtZbpow==", + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/beasties/-/beasties-0.3.5.tgz", + "integrity": "sha512-NaWu+f4YrJxEttJSm16AzMIFtVldCvaJ68b1L098KpqXmxt9xOLtKoLkKxb8ekhOrLqEJAbvT6n6SEvB/sac7A==", "dev": true, "license": "Apache-2.0", "dependencies": { - "css-select": "^5.1.0", - "css-what": "^6.1.0", + "css-select": "^6.0.0", + "css-what": "^7.0.0", "dom-serializer": "^2.0.0", "domhandler": "^5.0.3", - "htmlparser2": "^9.1.0", + "htmlparser2": "^10.0.0", "picocolors": "^1.1.1", "postcss": "^8.4.49", "postcss-media-query-parser": "^0.2.3" @@ -6681,6 +8675,7 @@ "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", "dev": true, + "peer": true, "dependencies": { "buffer": "^5.5.0", "inherits": "^2.0.4", @@ -6688,24 +8683,24 @@ } }, "node_modules/body-parser": { - "version": "1.20.3", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz", - "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==", + "version": "1.20.8", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.8.tgz", + "integrity": "sha512-JNcyFQ64OiijEkPzUBTCe+hyPXUD/3LEldGQ6iF5LR1w00mx9o7xtDWHXBY2iItjdCFGoilOLNQbH943ut7pHA==", "dev": true, "license": "MIT", "dependencies": { - "bytes": "3.1.2", + "bytes": "~3.1.2", "content-type": "~1.0.5", "debug": "2.6.9", "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.13.0", - "raw-body": "2.5.2", + "destroy": "~1.2.0", + "http-errors": "~2.0.1", + "iconv-lite": "~0.4.24", + "on-finished": "~2.4.1", + "qs": "~6.16.0", + "raw-body": "~2.5.3", "type-is": "~1.6.18", - "unpipe": "1.0.0" + "unpipe": "~1.0.0" }, "engines": { "node": ">= 0.8", @@ -6728,9 +8723,9 @@ "dev": true }, "node_modules/bonjour-service": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.3.0.tgz", - "integrity": "sha512-3YuAUiSkWykd+2Azjgyxei8OWf8thdn8AITIog2M4UICzoqfjlqr64WIjEXZllf/W6vK1goqleSR6brGomxQqA==", + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.4.4.tgz", + "integrity": "sha512-jCZcVv7eoc4QesRscwEZtSROBen+6LpKAmBIsQYQrsAeVHLyMXWX/t6eIV5KiRZYNUBl8eVqImEEMQ8L5+c/Kw==", "dev": true, "license": "MIT", "dependencies": { @@ -6769,9 +8764,9 @@ } }, "node_modules/browserslist": { - "version": "4.24.4", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.4.tgz", - "integrity": "sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==", + "version": "4.29.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.29.3.tgz", + "integrity": "sha512-1R4kiYKXGViqEN0CnoDrXc1StD9niAwu+j2dukWzrD4bJgsD4lDmEp0CRbc6E/vYJIfTHwPmwyaKtVSudICdPA==", "dev": true, "funding": [ { @@ -6789,10 +8784,11 @@ ], "license": "MIT", "dependencies": { - "caniuse-lite": "^1.0.30001688", - "electron-to-chromium": "^1.5.73", - "node-releases": "^2.0.19", - "update-browserslist-db": "^1.1.1" + "baseline-browser-mapping": "^2.11.26", + "caniuse-lite": "^1.0.30001813", + "electron-to-chromium": "^1.5.439", + "node-releases": "^2.0.57", + "update-browserslist-db": "^1.3.3" }, "bin": { "browserslist": "cli.js" @@ -6820,6 +8816,7 @@ "url": "https://feross.org/support" } ], + "peer": true, "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.1.13" @@ -6832,9 +8829,9 @@ "dev": true }, "node_modules/bundle-name": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-4.1.0.tgz", - "integrity": "sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-4.1.1.tgz", + "integrity": "sha512-DdH81/zPLVS11EUgWq3tEu/xn+EzljlMYooDNdzWEnFha3R3NBMpMV1UqYIpjYHV/SgpFKMIX1Oh7o06SjM/oA==", "dev": true, "license": "MIT", "dependencies": { @@ -6856,149 +8853,147 @@ "node": ">= 0.8" } }, + "node_modules/bytestreamjs": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/bytestreamjs/-/bytestreamjs-2.0.1.tgz", + "integrity": "sha512-U1Z/ob71V/bXfVABvNr/Kumf5VyeQRBEm6Txb0PQ6S7V5GpBM3w4Cbqz/xPDicR5tN0uvDifng8C+5qECeGwyQ==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=6.0.0" + } + }, "node_modules/cacache": { - "version": "19.0.1", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-19.0.1.tgz", - "integrity": "sha512-hdsUxulXCi5STId78vRVYEtDAjq99ICAUktLTeTYsLoTE6Z8dS0c8pWNCxwdrk9YfJeobDZc2Y186hD/5ZQgFQ==", + "version": "20.0.4", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-20.0.4.tgz", + "integrity": "sha512-M3Lab8NPYlZU2exsL3bMVvMrMqgwCnMWfdZbK28bn3pK6APT/Te/I8hjRPNu1uwORY9a1eEQoifXbKPQMfMTOA==", "dev": true, "license": "ISC", "dependencies": { - "@npmcli/fs": "^4.0.0", + "@npmcli/fs": "^5.0.0", "fs-minipass": "^3.0.0", - "glob": "^10.2.2", - "lru-cache": "^10.0.1", + "glob": "^13.0.0", + "lru-cache": "^11.1.0", "minipass": "^7.0.3", "minipass-collect": "^2.0.1", "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.4", "p-map": "^7.0.2", - "ssri": "^12.0.0", - "tar": "^7.4.3", - "unique-filename": "^4.0.0" + "ssri": "^13.0.0" }, "engines": { - "node": "^18.17.0 || >=20.5.0" + "node": "^20.17.0 || >=22.9.0" } }, - "node_modules/cacache/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "node_modules/cacache/node_modules/balanced-match": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", + "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", "dev": true, "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" + "engines": { + "node": "18 || 20 || >=22" } }, - "node_modules/cacache/node_modules/chownr": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-3.0.0.tgz", - "integrity": "sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==", + "node_modules/cacache/node_modules/brace-expansion": { + "version": "5.0.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.12.tgz", + "integrity": "sha512-YovQ3rzhaLMIrDjNDMkNS01tea93qhEhG5xy8f6+R0l+dw3Ki+5sCoIoI942iuLZTHWogWktgwVDhU09iNEimQ==", "dev": true, - "license": "BlueOak-1.0.0", + "license": "MIT", + "dependencies": { + "balanced-match": "^4.0.2" + }, "engines": { - "node": ">=18" + "node": "20 || >=22" } }, "node_modules/cacache/node_modules/glob": { - "version": "10.4.5", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", - "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "version": "13.0.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-13.0.6.tgz", + "integrity": "sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw==", "dev": true, - "license": "ISC", + "license": "BlueOak-1.0.0", "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^1.11.1" + "minimatch": "^10.2.2", + "minipass": "^7.1.3", + "path-scurry": "^2.0.2" }, - "bin": { - "glob": "dist/esm/bin.mjs" + "engines": { + "node": "18 || 20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/cacache/node_modules/lru-cache": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "version": "11.5.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.5.3.tgz", + "integrity": "sha512-U4N8FgzmWxc8k1VH8Kr6lQg18U7Fjvby6wXHVRX/ZZ7IwWbRMgrRbP0Wrb5q5NVinryp4SQampHKdvtecItxUg==", "dev": true, - "license": "ISC" + "license": "BlueOak-1.0.0", + "engines": { + "node": "20 || >=22" + } }, "node_modules/cacache/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "version": "10.2.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.6.tgz", + "integrity": "sha512-vpLQEs+VLCr1nU0BXS07maYoFwlDAH0gngQuuttxIwutDFEMHq2blX+8vpgxDdK3J1PwjCJiep77OitTZ4Ll1A==", "dev": true, - "license": "ISC", + "license": "BlueOak-1.0.0", "dependencies": { - "brace-expansion": "^2.0.1" + "brace-expansion": "^5.0.8" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": "18 || 20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/cacache/node_modules/mkdirp": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-3.0.1.tgz", - "integrity": "sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==", + "node_modules/call-bind": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", "dev": true, - "license": "MIT", - "bin": { - "mkdirp": "dist/cjs/src/bin.js" + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" }, "engines": { - "node": ">=10" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/cacache/node_modules/tar": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/tar/-/tar-7.4.3.tgz", - "integrity": "sha512-5S7Va8hKfV7W5U6g3aYxXmlPoZVAwUMy9AOKyF2fVuZa2UD3qZjg578OrLRt8PcNN1PleVaL/5/yYATNL0ICUw==", + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", "dev": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "@isaacs/fs-minipass": "^4.0.0", - "chownr": "^3.0.0", - "minipass": "^7.1.2", - "minizlib": "^3.0.1", - "mkdirp": "^3.0.1", - "yallist": "^5.0.0" + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" }, "engines": { - "node": ">=18" - } - }, - "node_modules/cacache/node_modules/yallist": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-5.0.0.tgz", - "integrity": "sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==", - "dev": true, - "license": "BlueOak-1.0.0", - "engines": { - "node": ">=18" + "node": ">= 0.4" } }, - "node_modules/call-bind": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", - "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "node_modules/call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", "dev": true, + "license": "MIT", "dependencies": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "set-function-length": "^1.2.1" + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" }, "engines": { "node": ">= 0.4" @@ -7017,9 +9012,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001695", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001695.tgz", - "integrity": "sha512-vHyLade6wTgI2u1ec3WQBxv+2BrTERV28UXQu9LO6lZ9pYeMk34vjXFLOxo1A4UBA8XTL4njRQZdno/yYaSmWw==", + "version": "1.0.30001814", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001814.tgz", + "integrity": "sha512-/Uaf1lAzr59XcMpW0o96WoEfr+VXK2OX4U9AgFoiSHsVJ4HppnIFUjtYzsyDH2+tgANaQb2/oxYGwCPapN1FpA==", "dev": true, "funding": [ { @@ -7052,9 +9047,9 @@ } }, "node_modules/chardet": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-2.2.0.tgz", + "integrity": "sha512-rddelWYNPRrXq6PtNEN2S3f6t9ILzvqaN5pVgi4kqt9jHQaXIial9PznB5iSPVlQSLNaaH22ItWz3EJtQ10+OA==", "dev": true, "license": "MIT" }, @@ -7083,13 +9078,13 @@ } }, "node_modules/chownr": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-3.0.0.tgz", + "integrity": "sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==", "dev": true, - "license": "ISC", + "license": "BlueOak-1.0.0", "engines": { - "node": ">=10" + "node": ">=18" } }, "node_modules/chrome-trace-event": { @@ -7106,6 +9101,7 @@ "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", "dev": true, + "peer": true, "dependencies": { "restore-cursor": "^3.1.0" }, @@ -7143,9 +9139,9 @@ } }, "node_modules/cli-truncate/node_modules/ansi-regex": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", - "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.4.0.tgz", + "integrity": "sha512-KzTVk2tCWAHtYrvvvaP8bJKJq2pVinhLcGEQdtLIYPbmNGNyYe8QwNaTUYQp2J7/vIsUKt5QCqAfUkYyG9DkOw==", "dev": true, "license": "MIT", "engines": { @@ -7156,9 +9152,9 @@ } }, "node_modules/cli-truncate/node_modules/emoji-regex": { - "version": "10.4.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.4.0.tgz", - "integrity": "sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==", + "version": "10.6.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.6.0.tgz", + "integrity": "sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==", "dev": true, "license": "MIT" }, @@ -7181,13 +9177,13 @@ } }, "node_modules/cli-truncate/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz", + "integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==", "dev": true, "license": "MIT", "dependencies": { - "ansi-regex": "^6.0.1" + "ansi-regex": "^6.2.2" }, "engines": { "node": ">=12" @@ -7207,64 +9203,100 @@ } }, "node_modules/cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-9.0.1.tgz", + "integrity": "sha512-k7ndgKhwoQveBL+/1tqGJYNz097I7WOvwbmmU2AR5+magtbjPWQTS1C5vzGkBC8Ym8UWRzfKUzUUqFLypY4Q+w==", "dev": true, + "license": "ISC", "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" + "string-width": "^7.2.0", + "strip-ansi": "^7.1.0", + "wrap-ansi": "^9.0.0" }, + "engines": { + "node": ">=20" + } + }, + "node_modules/cliui/node_modules/ansi-regex": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.4.0.tgz", + "integrity": "sha512-KzTVk2tCWAHtYrvvvaP8bJKJq2pVinhLcGEQdtLIYPbmNGNyYe8QwNaTUYQp2J7/vIsUKt5QCqAfUkYyG9DkOw==", + "dev": true, + "license": "MIT", "engines": { "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, "node_modules/cliui/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", + "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, + "license": "MIT", "engines": { - "node": ">=8" + "node": ">=12" }, "funding": { "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/cliui/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/cliui/node_modules/emoji-regex": { + "version": "10.6.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.6.0.tgz", + "integrity": "sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==", + "dev": true, + "license": "MIT" + }, + "node_modules/cliui/node_modules/string-width": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", + "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", "dev": true, + "license": "MIT", "dependencies": { - "color-name": "~1.1.4" + "emoji-regex": "^10.3.0", + "get-east-asian-width": "^1.0.0", + "strip-ansi": "^7.1.0" }, "engines": { - "node": ">=7.0.0" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/cliui/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true + "node_modules/cliui/node_modules/strip-ansi": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz", + "integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.2.2" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } }, "node_modules/cliui/node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.2.tgz", + "integrity": "sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww==", "dev": true, + "license": "MIT", "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" + "ansi-styles": "^6.2.1", + "string-width": "^7.0.0", + "strip-ansi": "^7.1.0" }, "engines": { - "node": ">=10" + "node": ">=18" }, "funding": { "url": "https://github.com/chalk/wrap-ansi?sponsor=1" @@ -7275,6 +9307,7 @@ "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", "dev": true, + "peer": true, "engines": { "node": ">=0.8" } @@ -7349,22 +9382,27 @@ } }, "node_modules/compression": { - "version": "1.7.5", - "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.5.tgz", - "integrity": "sha512-bQJ0YRck5ak3LgtnpKkiabX5pNF7tMUh1BSy2ZBOTh0Dim0BUu6aPPwByIns6/A5Prh8PufSPerMDUklpzes2Q==", + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.8.2.tgz", + "integrity": "sha512-o8vI5RE5A6EVVOd9o41jKp41aJom+QTEO/Bx8MYNjexMo/Bv2WOjUfZr+aL0WnYSgymUy6zeguqLTsIhV0gMvQ==", "dev": true, "license": "MIT", "dependencies": { "bytes": "3.1.2", "compressible": "~2.0.18", "debug": "2.6.9", + "destroy": "1.2.0", "negotiator": "~0.6.4", - "on-headers": "~1.0.2", + "on-headers": "~1.1.0", "safe-buffer": "5.2.1", "vary": "~1.1.2" }, "engines": { "node": ">= 0.8.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" } }, "node_modules/compression/node_modules/debug": { @@ -7441,16 +9479,17 @@ "dev": true }, "node_modules/content-disposition": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-1.1.0.tgz", + "integrity": "sha512-5jRCH9Z/+DRP7rkvY83B+yGIGX96OYdJmzngqnw2SBSxqCFPd0w2km3s5iawpGX8krnwSGmF0FW5Nhr0Hfai3g==", "dev": true, "license": "MIT", - "dependencies": { - "safe-buffer": "5.2.1" - }, "engines": { - "node": ">= 0.6" + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" } }, "node_modules/content-type": { @@ -7478,40 +9517,46 @@ } }, "node_modules/cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.2.2.tgz", + "integrity": "sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg==", "dev": true, - "license": "MIT" + "license": "MIT", + "engines": { + "node": ">=6.6.0" + } }, "node_modules/copy-anything": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-2.0.6.tgz", - "integrity": "sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==", + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-3.0.5.tgz", + "integrity": "sha512-yCEafptTtb4bk7GLEQoM8KVJpxAfdBJYaXyzQEgQQQgYrZiDp8SJmGKlYza6CYjEDNstAdNdKA3UuoULlEbS6w==", "dev": true, + "license": "MIT", "dependencies": { - "is-what": "^3.14.1" + "is-what": "^4.1.8" + }, + "engines": { + "node": ">=12.13" }, "funding": { "url": "https://github.com/sponsors/mesqueeb" } }, "node_modules/copy-webpack-plugin": { - "version": "12.0.2", - "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-12.0.2.tgz", - "integrity": "sha512-SNwdBeHyII+rWvee/bTnAYyO8vfVdcSTud4EIb6jcZ8inLeWucJE0DnxXQBjlQ5zlteuuvooGQy3LIyGxhvlOA==", + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-14.0.0.tgz", + "integrity": "sha512-3JLW90aBGeaTLpM7mYQKpnVdgsUZRExY55giiZgLuX/xTQRUs1dOCwbBnWnvY6Q6rfZoXMNwzOQJCSZPppfqXA==", "dev": true, "license": "MIT", "dependencies": { - "fast-glob": "^3.3.2", "glob-parent": "^6.0.1", - "globby": "^14.0.0", "normalize-path": "^3.0.0", "schema-utils": "^4.2.0", - "serialize-javascript": "^6.0.2" + "serialize-javascript": "^7.0.3", + "tinyglobby": "^0.2.12" }, "engines": { - "node": ">= 18.12.0" + "node": ">= 20.9.0" }, "funding": { "type": "opencollective", @@ -7535,13 +9580,16 @@ } }, "node_modules/core-js-compat": { - "version": "3.40.0", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.40.0.tgz", - "integrity": "sha512-0XEDpr5y5mijvw8Lbc6E5AkjrHfp7eEoPlu36SWeAbcL8fn1G1ANe8DBlo2XoNN89oVpxWwOjYIPVzR4ZvsKCQ==", + "version": "3.50.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.50.0.tgz", + "integrity": "sha512-XGpFGbMLHwSt74YLTKho7Ib242qi6O8MSX+sRokV4oz7iKXvQWGYZthjIhjRGMxjzVkAubBO512dKGYcefmX3Q==", "dev": true, "license": "MIT", "dependencies": { - "browserslist": "^4.24.3" + "browserslist": "^4.28.7" + }, + "engines": { + "node": ">=6.4.0" }, "funding": { "type": "opencollective", @@ -7688,26 +9736,26 @@ } }, "node_modules/css-select": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", - "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-6.0.0.tgz", + "integrity": "sha512-rZZVSLle8v0+EY8QAkDWrKhpgt6SA5OtHsgBnsj6ZaLb5dmDVOWUDtQitd9ydxxvEjhewNudS6eTVU7uOyzvXw==", "dev": true, "license": "BSD-2-Clause", "dependencies": { "boolbase": "^1.0.0", - "css-what": "^6.1.0", - "domhandler": "^5.0.2", - "domutils": "^3.0.1", - "nth-check": "^2.0.1" + "css-what": "^7.0.0", + "domhandler": "^5.0.3", + "domutils": "^3.2.2", + "nth-check": "^2.1.1" }, "funding": { "url": "https://github.com/sponsors/fb55" } }, "node_modules/css-what": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", - "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-7.0.0.tgz", + "integrity": "sha512-wD5oz5xibMOPHzy13CyGmogB3phdvcDaB5t0W/Nr5Z2O/agcB8YwOz6e2Lsp10pNDzBoDO9nVa3RGs/2BttpHQ==", "dev": true, "license": "BSD-2-Clause", "engines": { @@ -7844,9 +9892,9 @@ } }, "node_modules/default-browser": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-5.2.1.tgz", - "integrity": "sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==", + "version": "5.5.1", + "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-5.5.1.tgz", + "integrity": "sha512-m1pAzaJgZ/gssEqlOhJkPJp8Xly7QyW6xcrkUa2KKcDeDSEMP7X8xipU3snUcfisTQx0w1AGae+9UtJSfVnXGw==", "dev": true, "license": "MIT", "dependencies": { @@ -7861,9 +9909,9 @@ } }, "node_modules/default-browser-id": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-5.0.0.tgz", - "integrity": "sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-5.0.1.tgz", + "integrity": "sha512-x1VCxdX4t+8wVfd1so/9w+vQ4vx7lKd2Qp5tDRutErwmR85OgmfX7RlLRMWafRMY7hbEiXIbudNrjOAPa/hL8Q==", "dev": true, "license": "MIT", "engines": { @@ -7878,6 +9926,7 @@ "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", "dev": true, + "peer": true, "dependencies": { "clone": "^1.0.2" }, @@ -7962,9 +10011,9 @@ } }, "node_modules/detect-libc": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz", - "integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", + "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", "dev": true, "license": "Apache-2.0", "optional": true, @@ -8069,12 +10118,20 @@ "url": "https://github.com/fb55/domutils?sponsor=1" } }, - "node_modules/eastasianwidth": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", "dev": true, - "license": "MIT" + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } }, "node_modules/ee-first": { "version": "1.1.1", @@ -8083,9 +10140,9 @@ "dev": true }, "node_modules/electron-to-chromium": { - "version": "1.5.87", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.87.tgz", - "integrity": "sha512-mPFwmEWmRivw2F8x3w3l2m6htAUN97Gy0kwpO++2m9iT1Gt8RCFVUfv9U/sIbHJ6rY4P6/ooqFL/eL7ock+pPg==", + "version": "1.5.444", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.444.tgz", + "integrity": "sha512-5ss/uJfoDYDHT0lfJzT6FbcskIzROIOPf0BbbFkGcvDzoJU7i//9GDrwwIHQVmIsrAGiF3ihpADBRIsrEFt1rQ==", "dev": true, "license": "ISC" }, @@ -8119,31 +10176,6 @@ "node": ">= 0.8" } }, - "node_modules/encoding": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", - "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "iconv-lite": "^0.6.2" - } - }, - "node_modules/encoding/node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/engine.io": { "version": "6.5.4", "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.5.4.tgz", @@ -8175,14 +10207,14 @@ } }, "node_modules/enhanced-resolve": { - "version": "5.17.1", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz", - "integrity": "sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==", + "version": "5.26.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.26.0.tgz", + "integrity": "sha512-9vhedylFonb2YGogzUKX6+Ja72gOJbN1QHAqdrvqLwhdl/QWbKopzoUC9EbQNVsAns/bx/4uyqalrQAoy1IByw==", "dev": true, "license": "MIT", "dependencies": { "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" + "tapable": "^2.3.3" }, "engines": { "node": ">=10.13.0" @@ -8228,18 +10260,12 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/err-code": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", - "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", - "dev": true, - "license": "MIT" - }, "node_modules/errno": { "version": "0.1.8", "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", "dev": true, + "license": "MIT", "optional": true, "dependencies": { "prr": "~1.0.1" @@ -8318,13 +10344,11 @@ } }, "node_modules/es-define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", - "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", "dev": true, - "dependencies": { - "get-intrinsic": "^1.2.4" - }, + "license": "MIT", "engines": { "node": ">= 0.4" } @@ -8339,16 +10363,18 @@ } }, "node_modules/es-module-lexer": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.2.tgz", - "integrity": "sha512-l60ETUTmLqbVbVHv1J4/qj+M8nq7AwMzEcg3kmJDt9dCNrTk+yHcYFf/Kw75pMDwd9mPcIGCG5LcS20SxYRzFA==", - "dev": true + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-2.3.2.tgz", + "integrity": "sha512-poHGpORABojJJucnV9KbOavETW8lBVnphkW77ER5/BQ5Fz7oXSoCNek7IH3vR5nRjdsEz926ibFYX8KtLQmdyw==", + "dev": true, + "license": "MIT" }, "node_modules/es-object-atoms": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", - "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.2.tgz", + "integrity": "sha512-HWcBoN6NileqtSydK2FqHbS/LoDd2pqrnQHLyJzBj4kOp/ky2MWMN694xOfkK8/SnUsW2DH7EfyVlydKCsm1Zw==", "dev": true, + "license": "MIT", "dependencies": { "es-errors": "^1.3.0" }, @@ -8388,9 +10414,9 @@ } }, "node_modules/esbuild": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.24.2.tgz", - "integrity": "sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.28.1.tgz", + "integrity": "sha512-HrJrvZv5ayxBzPfwphOoNzkzOIIlifzk0KJrGK2c8R4+LKpMtpYLQeUdjnwjWv/LZlkH2laZk+4w78pi99D4Vw==", "dev": true, "hasInstallScript": true, "license": "MIT", @@ -8401,37 +10427,38 @@ "node": ">=18" }, "optionalDependencies": { - "@esbuild/aix-ppc64": "0.24.2", - "@esbuild/android-arm": "0.24.2", - "@esbuild/android-arm64": "0.24.2", - "@esbuild/android-x64": "0.24.2", - "@esbuild/darwin-arm64": "0.24.2", - "@esbuild/darwin-x64": "0.24.2", - "@esbuild/freebsd-arm64": "0.24.2", - "@esbuild/freebsd-x64": "0.24.2", - "@esbuild/linux-arm": "0.24.2", - "@esbuild/linux-arm64": "0.24.2", - "@esbuild/linux-ia32": "0.24.2", - "@esbuild/linux-loong64": "0.24.2", - "@esbuild/linux-mips64el": "0.24.2", - "@esbuild/linux-ppc64": "0.24.2", - "@esbuild/linux-riscv64": "0.24.2", - "@esbuild/linux-s390x": "0.24.2", - "@esbuild/linux-x64": "0.24.2", - "@esbuild/netbsd-arm64": "0.24.2", - "@esbuild/netbsd-x64": "0.24.2", - "@esbuild/openbsd-arm64": "0.24.2", - "@esbuild/openbsd-x64": "0.24.2", - "@esbuild/sunos-x64": "0.24.2", - "@esbuild/win32-arm64": "0.24.2", - "@esbuild/win32-ia32": "0.24.2", - "@esbuild/win32-x64": "0.24.2" + "@esbuild/aix-ppc64": "0.28.1", + "@esbuild/android-arm": "0.28.1", + "@esbuild/android-arm64": "0.28.1", + "@esbuild/android-x64": "0.28.1", + "@esbuild/darwin-arm64": "0.28.1", + "@esbuild/darwin-x64": "0.28.1", + "@esbuild/freebsd-arm64": "0.28.1", + "@esbuild/freebsd-x64": "0.28.1", + "@esbuild/linux-arm": "0.28.1", + "@esbuild/linux-arm64": "0.28.1", + "@esbuild/linux-ia32": "0.28.1", + "@esbuild/linux-loong64": "0.28.1", + "@esbuild/linux-mips64el": "0.28.1", + "@esbuild/linux-ppc64": "0.28.1", + "@esbuild/linux-riscv64": "0.28.1", + "@esbuild/linux-s390x": "0.28.1", + "@esbuild/linux-x64": "0.28.1", + "@esbuild/netbsd-arm64": "0.28.1", + "@esbuild/netbsd-x64": "0.28.1", + "@esbuild/openbsd-arm64": "0.28.1", + "@esbuild/openbsd-x64": "0.28.1", + "@esbuild/openharmony-arm64": "0.28.1", + "@esbuild/sunos-x64": "0.28.1", + "@esbuild/win32-arm64": "0.28.1", + "@esbuild/win32-ia32": "0.28.1", + "@esbuild/win32-x64": "0.28.1" } }, "node_modules/esbuild-wasm": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/esbuild-wasm/-/esbuild-wasm-0.24.2.tgz", - "integrity": "sha512-03/7Z1gD+ohDnScFztvI4XddTAbKVmMEzCvvkBpQdWKEXJ+73dTyeNrmdxP1Q0zpDMFjzUJwtK4rLjqwiHbzkw==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/esbuild-wasm/-/esbuild-wasm-0.28.1.tgz", + "integrity": "sha512-p/GD4E8oYRjg3kjdKrnMb0s4PzXgJF42e0MF4H0+ACyK/kIlFRp3e0fzOleIG+wBBm6MM3XQrbpe7soEA+vJIA==", "dev": true, "license": "MIT", "bin": { @@ -8551,54 +10578,172 @@ "node": ">=0.8.x" } }, - "node_modules/exponential-backoff": { + "node_modules/eventsource": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-3.0.7.tgz", + "integrity": "sha512-CRT1WTyuQoD771GW56XEZFQ/ZoSfWid1alKGDYMmkt2yl8UXrVR4pspqWNEcqKvVIzg6PAltWjxcSSPrboA4iA==", + "dev": true, + "license": "MIT", + "dependencies": { + "eventsource-parser": "^3.0.1" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/eventsource-parser": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.1.tgz", - "integrity": "sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==", + "resolved": "https://registry.npmjs.org/eventsource-parser/-/eventsource-parser-3.1.1.tgz", + "integrity": "sha512-EKN1vKAMcZ8MlYMpaNuxN6R9yakzH6uajHcHVTqWJzvu5pWw9DyhbP35HH8MVBQ+dZjAfDxk+A8NiR9KWaXiyQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/exponential-backoff": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.3.tgz", + "integrity": "sha512-ZgEeZXj30q+I0EN+CbSSpIyPaJ5HVQD18Z1m+u1FXbAeT94mr1zw50q4q6jiiC447Nl/YTcIYSAftiGqetwXCA==", "dev": true, "license": "Apache-2.0" }, "node_modules/express": { - "version": "4.21.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.21.2.tgz", - "integrity": "sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==", + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/express/-/express-5.2.1.tgz", + "integrity": "sha512-hIS4idWWai69NezIdRt2xFVofaF4j+6INOpJlVOLDO8zXGpUVEVzIYk12UUi2JzjEzWL3IOAxcTubgz9Po0yXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "accepts": "^2.0.0", + "body-parser": "^2.2.1", + "content-disposition": "^1.0.0", + "content-type": "^1.0.5", + "cookie": "^0.7.1", + "cookie-signature": "^1.2.1", + "debug": "^4.4.0", + "depd": "^2.0.0", + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "etag": "^1.8.1", + "finalhandler": "^2.1.0", + "fresh": "^2.0.0", + "http-errors": "^2.0.0", + "merge-descriptors": "^2.0.0", + "mime-types": "^3.0.0", + "on-finished": "^2.4.1", + "once": "^1.4.0", + "parseurl": "^1.3.3", + "proxy-addr": "^2.0.7", + "qs": "^6.14.0", + "range-parser": "^1.2.1", + "router": "^2.2.0", + "send": "^1.1.0", + "serve-static": "^2.2.0", + "statuses": "^2.0.1", + "type-is": "^2.0.1", + "vary": "^1.1.2" + }, + "engines": { + "node": ">= 18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/express-rate-limit": { + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/express-rate-limit/-/express-rate-limit-8.7.0.tgz", + "integrity": "sha512-hOwV7WOxXfjRpAM1DSJWZDXx3GhplwD8IfwuwvogD8i1Qnkgosw/H45s4ZnFAUHDAhPjlY9hLBvJhKmGMyY26g==", "dev": true, "license": "MIT", "dependencies": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.20.3", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.7.1", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "2.0.0", - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "1.3.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "merge-descriptors": "1.0.3", - "methods": "~1.1.2", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.12", - "proxy-addr": "~2.0.7", - "qs": "6.13.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.19.0", - "serve-static": "1.16.2", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" + "debug": "^4.4.3", + "ip-address": "^10.2.0" }, "engines": { - "node": ">= 0.10.0" + "node": ">= 16" + }, + "funding": { + "url": "https://github.com/sponsors/express-rate-limit" + }, + "peerDependencies": { + "express": ">= 4.11" + } + }, + "node_modules/express-rate-limit/node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/express-rate-limit/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/express/node_modules/accepts": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-2.0.0.tgz", + "integrity": "sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng==", + "dev": true, + "license": "MIT", + "dependencies": { + "mime-types": "^3.0.0", + "negotiator": "^1.0.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/express/node_modules/body-parser": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-2.3.0.tgz", + "integrity": "sha512-2cGmJupaNgg+QUwVLAucDuWuoMZ6EX9iHDRswZ5lsNYEmwPaRknMPCLZz07yTzVq/83p4o/wzbDZbBrTvGGTIw==", + "dev": true, + "license": "MIT", + "dependencies": { + "bytes": "^3.1.2", + "content-type": "^2.0.0", + "debug": "^4.4.3", + "http-errors": "^2.0.1", + "iconv-lite": "^0.7.2", + "on-finished": "^2.4.1", + "qs": "^6.15.2", + "raw-body": "^3.0.2", + "type-is": "^2.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/express/node_modules/body-parser/node_modules/content-type": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-2.1.0.tgz", + "integrity": "sha512-mj7UPXE0jaqaOsukNZRUEfEi2AcL7C/vwmwcHV0O97eO1E1pxBZuyjlZrx5seTaNBg1U6+o35wpa35Qfcc+7ag==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" }, "funding": { "type": "opencollective", @@ -8606,9 +10751,9 @@ } }, "node_modules/express/node_modules/cookie": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz", - "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==", + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", + "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", "dev": true, "license": "MIT", "engines": { @@ -8616,13 +10761,21 @@ } }, "node_modules/express/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", "dev": true, "license": "MIT", "dependencies": { - "ms": "2.0.0" + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, "node_modules/express/node_modules/encodeurl": { @@ -8636,97 +10789,217 @@ } }, "node_modules/express/node_modules/finalhandler": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz", - "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-2.1.1.tgz", + "integrity": "sha512-S8KoZgRZN+a5rNwqTxlZZePjT/4cnm0ROV70LedRHZ0p8u9fRID0hJUZQpkKLzro8LfmC8sx23bY6tVNxv8pQA==", "dev": true, "license": "MIT", "dependencies": { - "debug": "2.6.9", - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "statuses": "2.0.1", - "unpipe": "~1.0.0" + "debug": "^4.4.0", + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "on-finished": "^2.4.1", + "parseurl": "^1.3.3", + "statuses": "^2.0.1" }, "engines": { - "node": ">= 0.8" + "node": ">= 18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" } }, - "node_modules/express/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "node_modules/express/node_modules/iconv-lite": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.3.tgz", + "integrity": "sha512-IKXpvIzjnC9XTAUbVBcMfGS0EPaIXtW6v+zr+RRp+hqULEpo0owZax6wyRwPOJbWbzjYspQwusTsfVr0ifh4uQ==", "dev": true, - "license": "MIT" + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } }, - "node_modules/express/node_modules/statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "node_modules/express/node_modules/media-typer": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-1.1.1.tgz", + "integrity": "sha512-yz3xRaG20c6/BOzvYoDaGtPmGscs7YivItZEEqe6GbwNfHuxu9YNmvnEkMzKldAGY4/80pRcQRZSEnhquk9XuQ==", "dev": true, "license": "MIT", "engines": { "node": ">= 0.8" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" } }, - "node_modules/extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "dev": true - }, - "node_modules/external-editor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", - "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "node_modules/express/node_modules/mime-db": { + "version": "1.54.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", + "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", "dev": true, "license": "MIT", - "dependencies": { - "chardet": "^0.7.0", - "iconv-lite": "^0.4.24", - "tmp": "^0.0.33" - }, "engines": { - "node": ">=4" + "node": ">= 0.6" } }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "node_modules/fast-glob": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", - "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", + "node_modules/express/node_modules/mime-types": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.2.tgz", + "integrity": "sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==", "dev": true, "license": "MIT", "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.8" + "mime-db": "^1.54.0" }, "engines": { - "node": ">=8.6.0" + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" } }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true + "node_modules/express/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" }, - "node_modules/fast-uri": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.6.tgz", - "integrity": "sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==", + "node_modules/express/node_modules/negotiator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-1.1.0.tgz", + "integrity": "sha512-NMPBRMJgiQHjbd8phG3Vebdx4kZ1H121rbl5IkMqeOsahptB9BKo/d7oJ3zTXqTgagn2bWlNSXkh0QUGM31RYg==", "dev": true, - "funding": [ + "license": "MIT", + "dependencies": { + "content-type": "^2.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/express/node_modules/negotiator/node_modules/content-type": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-2.1.0.tgz", + "integrity": "sha512-mj7UPXE0jaqaOsukNZRUEfEi2AcL7C/vwmwcHV0O97eO1E1pxBZuyjlZrx5seTaNBg1U6+o35wpa35Qfcc+7ag==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/express/node_modules/raw-body": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-3.0.2.tgz", + "integrity": "sha512-K5zQjDllxWkf7Z5xJdV0/B0WTNqx6vxG70zJE4N0kBs4LovmEYWJzQGxC9bS9RAKu3bgM40lrd5zoLJ12MQ5BA==", + "dev": true, + "license": "MIT", + "dependencies": { + "bytes": "~3.1.2", + "http-errors": "~2.0.1", + "iconv-lite": "~0.7.0", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/express/node_modules/statuses": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz", + "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/express/node_modules/type-is": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-2.1.0.tgz", + "integrity": "sha512-faYHw0anBbc/kWF3zFTEnxSFOAGUX9GFbOBthvDdLsIlEoWOFOtS0zgCiQYwIskL9iGXZL3kAXD8OoZ4GmMATA==", + "dev": true, + "license": "MIT", + "dependencies": { + "content-type": "^2.0.0", + "media-typer": "^1.1.0", + "mime-types": "^3.0.0" + }, + "engines": { + "node": ">= 18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/express/node_modules/type-is/node_modules/content-type": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-2.1.0.tgz", + "integrity": "sha512-mj7UPXE0jaqaOsukNZRUEfEi2AcL7C/vwmwcHV0O97eO1E1pxBZuyjlZrx5seTaNBg1U6+o35wpa35Qfcc+7ag==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.8" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-uri": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.8.tgz", + "integrity": "sha512-GZMtZUTNRpOVIECoXwLNZS5xUGE+mVNbTB8h/7Rwh2TFWcBQiPzTgyZi05BF9UMZKkLJv8XBRJTlU7zg8+ZfMg==", + "dev": true, + "funding": [ { "type": "github", "url": "https://github.com/sponsors/fastify" @@ -8739,9 +11012,9 @@ "license": "BSD-3-Clause" }, "node_modules/fastq": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", - "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "version": "1.20.3", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.20.3.tgz", + "integrity": "sha512-XKv5nnLs6nLF71NgiKJLIZFLkPyIEuOselLG7ujZnGrRfQK8HpvY+WqKhAJUAdLomwVHErVS4LfxFlPq0/FTAw==", "dev": true, "license": "ISC", "dependencies": { @@ -8761,6 +11034,24 @@ "node": ">=0.8.0" } }, + "node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, "node_modules/filename-reserved-regex": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz", @@ -8845,18 +11136,18 @@ "node": ">= 0.8" } }, - "node_modules/find-cache-dir": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-4.0.0.tgz", - "integrity": "sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg==", + "node_modules/find-cache-directory": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/find-cache-directory/-/find-cache-directory-6.0.0.tgz", + "integrity": "sha512-CvFd5ivA6HcSHbD+59P7CyzINHXzwhuQK8RY7CxJZtgDSAtRlHiCaQpZQ2lMR/WRyUIEmzUvL6G2AGurMfegZA==", "dev": true, "license": "MIT", "dependencies": { "common-path-prefix": "^3.0.0", - "pkg-dir": "^7.0.0" + "pkg-dir": "^8.0.0" }, "engines": { - "node": ">=14.16" + "node": ">=20" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -8875,6 +11166,19 @@ "node": ">=8" } }, + "node_modules/find-up-simple": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/find-up-simple/-/find-up-simple-1.0.1.tgz", + "integrity": "sha512-afd4O7zpqHeRyg4PfDQsXmlDe2PfdHtJt6Akt8jOWaApLOZk5JXs6VMR29lz03pRe9mpykrRCYIYxaJYcfpncQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/flat": { "version": "5.0.2", "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", @@ -8920,36 +11224,6 @@ "is-callable": "^1.1.3" } }, - "node_modules/foreground-child": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", - "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", - "dev": true, - "license": "ISC", - "dependencies": { - "cross-spawn": "^7.0.0", - "signal-exit": "^4.0.1" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/foreground-child/node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/forwarded": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", @@ -8975,13 +11249,13 @@ } }, "node_modules/fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-2.0.0.tgz", + "integrity": "sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==", "dev": true, "license": "MIT", "engines": { - "node": ">= 0.6" + "node": ">= 0.8" } }, "node_modules/fs-extra": { @@ -9086,9 +11360,9 @@ } }, "node_modules/get-east-asian-width": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.3.0.tgz", - "integrity": "sha512-vpeMIQKxczTD/0s2CdEWHcb0eeJe6TFjxb+J5xgX7hScxqrGuyjmv4c1D4A/gelKfyox0gJJwIHF+fLjeaM8kQ==", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.7.0.tgz", + "integrity": "sha512-XjH1AECxf0giL2V1aU8vKyRR2ppRUb5c0EvT7zuJTokQ74bNo52zOtghqdWIqrhUD79fo3x0WfKZdOqxF6LG1Q==", "dev": true, "license": "MIT", "engines": { @@ -9099,16 +11373,22 @@ } }, "node_modules/get-intrinsic": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", - "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", "dev": true, + "license": "MIT", "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", "function-bind": "^1.1.2", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0" + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" }, "engines": { "node": ">= 0.4" @@ -9117,6 +11397,20 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/get-symbol-description": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", @@ -9266,21 +11560,29 @@ "node": ">= 6" } }, + "node_modules/glob-to-regex.js": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/glob-to-regex.js/-/glob-to-regex.js-1.3.1.tgz", + "integrity": "sha512-zhWhMRsgnOym+1txhUmYJGD6eUsbUdrZv55gCYKuJX8t2p3+M8My23PD09bEIsreGUs5pnSa/idmcfp2/IlqGg==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, "node_modules/glob-to-regexp": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", - "dev": true - }, - "node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } + "license": "BSD-2-Clause" }, "node_modules/globalthis": { "version": "1.0.4", @@ -9298,34 +11600,14 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/globby": { - "version": "14.0.2", - "resolved": "https://registry.npmjs.org/globby/-/globby-14.0.2.tgz", - "integrity": "sha512-s3Fq41ZVh7vbbe2PN3nrW7yC7U7MFVc5c98/iTl9c2GawNMKx/J648KQRW6WKkuU8GIbbh2IXfIRQjOZnXcTnw==", + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", "dev": true, "license": "MIT", - "dependencies": { - "@sindresorhus/merge-streams": "^2.1.0", - "fast-glob": "^3.3.2", - "ignore": "^5.2.4", - "path-type": "^5.0.0", - "slash": "^5.1.0", - "unicorn-magic": "^0.1.0" - }, "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/gopd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.1.3" + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -9387,10 +11669,11 @@ } }, "node_modules/has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -9425,25 +11708,38 @@ "node": ">= 0.4" } }, + "node_modules/hono": { + "version": "4.13.12", + "resolved": "https://registry.npmjs.org/hono/-/hono-4.13.12.tgz", + "integrity": "sha512-6E2QDAc9Ick9Sq77ZrGS/dk2WUYni91aufTw6LJKpV7w8kW5/GxVUc650FOADOmlwg3K+f7Pun6XlV+pYmW6gw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=16.9.0" + } + }, "node_modules/hosted-git-info": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-8.0.2.tgz", - "integrity": "sha512-sYKnA7eGln5ov8T8gnYlkSOxFJvywzEx9BueN6xo/GKO8PGiI6uK6xx+DIGe45T3bdVjLAQDQW1aicT8z8JwQg==", + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-9.0.3.tgz", + "integrity": "sha512-Hc+ghLoSt6QaYZUv0WBiIvmMDZuZZ7oaDvdH8MbfOO4lOsxdXLEvuC6ePoGs9H1X9oCLyq6+NVN0MKqD+ydxyg==", "dev": true, "license": "ISC", "dependencies": { - "lru-cache": "^10.0.1" + "lru-cache": "^11.1.0" }, "engines": { - "node": "^18.17.0 || >=20.5.0" + "node": "^20.17.0 || >=22.9.0" } }, "node_modules/hosted-git-info/node_modules/lru-cache": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "version": "11.5.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.5.3.tgz", + "integrity": "sha512-U4N8FgzmWxc8k1VH8Kr6lQg18U7Fjvby6wXHVRX/ZZ7IwWbRMgrRbP0Wrb5q5NVinryp4SQampHKdvtecItxUg==", "dev": true, - "license": "ISC" + "license": "BlueOak-1.0.0", + "engines": { + "node": "20 || >=22" + } }, "node_modules/hpack.js": { "version": "2.1.6", @@ -9498,9 +11794,9 @@ "dev": true }, "node_modules/htmlparser2": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-9.1.0.tgz", - "integrity": "sha512-5zfg6mHUoaer/97TxnGpxmbR7zJtPwIYFMZ/H5ucTlPZhKvtum05yiPK3Mgai3a0DyVxv7qYqoweaEd2nrYQzQ==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-10.1.0.tgz", + "integrity": "sha512-VTZkM9GWRAtEpveh7MSF6SjjrpNVNNVJfFup7xTY3UpFtm67foy9HDVXneLtFVt4pMz5kZtgNcvCniNFb1hlEQ==", "dev": true, "funding": [ "https://github.com/fb55/htmlparser2?sponsor=1", @@ -9513,14 +11809,27 @@ "dependencies": { "domelementtype": "^2.3.0", "domhandler": "^5.0.3", - "domutils": "^3.1.0", - "entities": "^4.5.0" + "domutils": "^3.2.2", + "entities": "^7.0.1" + } + }, + "node_modules/htmlparser2/node_modules/entities": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-7.0.1.tgz", + "integrity": "sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" } }, "node_modules/http-cache-semantics": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", - "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.2.0.tgz", + "integrity": "sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ==", "dev": true, "license": "BSD-2-Clause" }, @@ -9532,34 +11841,40 @@ "license": "MIT" }, "node_modules/http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz", + "integrity": "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==", "dev": true, + "license": "MIT", "dependencies": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" + "depd": "~2.0.0", + "inherits": "~2.0.4", + "setprototypeof": "~1.2.0", + "statuses": "~2.0.2", + "toidentifier": "~1.0.1" }, "engines": { "node": ">= 0.8" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" } }, "node_modules/http-errors/node_modules/statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz", + "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8" } }, "node_modules/http-parser-js": { - "version": "0.5.9", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.9.tgz", - "integrity": "sha512-n1XsPy3rXVxlqxVioEWdC+0+M+SQw0DpJynwtOPo1X+ZlvdzTLtDBIJJlDQTnwZIFJrZSzSGmIOUdP8tu+SgLw==", + "version": "0.5.10", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.10.tgz", + "integrity": "sha512-Pysuw9XpUq5dVc/2SMHpuTY01RFl8fttgcyunjL7eEMhGM3cI4eOmiCycJDVCo/7O7ClfQD3SaI6ftDzqOXYMA==", "dev": true, "license": "MIT" }, @@ -9592,9 +11907,9 @@ } }, "node_modules/http-proxy-middleware": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-3.0.3.tgz", - "integrity": "sha512-usY0HG5nyDUwtqpiZdETNbmKtw3QQ1jwYFZ9wi5iHzX2BcILwQKtYDJPo7XHTsu5Z0B2Hj3W9NNnbd+AjFWjqg==", + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-3.0.7.tgz", + "integrity": "sha512-iwbQltVlx8bCrqePUM8C+hllHvdawVhQJaLrj1X7qllkvFQdXFsr16pW/mo9+JDVjN+QO2XUx9jd8SmoFkE5qw==", "dev": true, "license": "MIT", "dependencies": { @@ -9606,13 +11921,13 @@ "micromatch": "^4.0.8" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": "^14.18.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/http-proxy-middleware/node_modules/debug": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", - "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", "dev": true, "license": "MIT", "dependencies": { @@ -9628,9 +11943,9 @@ } }, "node_modules/http-proxy-middleware/node_modules/is-plain-object": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", - "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.1.0.tgz", + "integrity": "sha512-bUi/yjmtKYcRVUtWRGr0UA6xEFh2I6zWUwMrUXB3s7bmYCaZ8a+0ZsTRkrawh/mzlSD1Y0Ph8bp/U+TvBpWDNw==", "dev": true, "license": "MIT", "engines": { @@ -9711,74 +12026,65 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "peer": true }, - "node_modules/ignore": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", - "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, - "node_modules/ignore-walk": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-7.0.0.tgz", - "integrity": "sha512-T4gbf83A4NH95zvhVYZc+qWocBBGlpzUXLPGurJggw/WIOwicfXJChLDP/iBZnN5WqROSu5Bm3hhle4z8a8YGQ==", + "node_modules/ignore-walk": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-8.0.0.tgz", + "integrity": "sha512-FCeMZT4NiRQGh+YkeKMtWrOmBgWjHjMJ26WQWrRQyoyzqevdaGSakUaJW5xQYmjLlUVk2qUnCjYVBax9EKKg8A==", "dev": true, "license": "ISC", "dependencies": { - "minimatch": "^9.0.0" + "minimatch": "^10.0.3" }, "engines": { - "node": "^18.17.0 || >=20.5.0" + "node": "^20.17.0 || >=22.9.0" + } + }, + "node_modules/ignore-walk/node_modules/balanced-match": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", + "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "18 || 20 || >=22" } }, "node_modules/ignore-walk/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "version": "5.0.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.12.tgz", + "integrity": "sha512-YovQ3rzhaLMIrDjNDMkNS01tea93qhEhG5xy8f6+R0l+dw3Ki+5sCoIoI942iuLZTHWogWktgwVDhU09iNEimQ==", "dev": true, "license": "MIT", "dependencies": { - "balanced-match": "^1.0.0" + "balanced-match": "^4.0.2" + }, + "engines": { + "node": "20 || >=22" } }, "node_modules/ignore-walk/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "version": "10.2.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.6.tgz", + "integrity": "sha512-vpLQEs+VLCr1nU0BXS07maYoFwlDAH0gngQuuttxIwutDFEMHq2blX+8vpgxDdK3J1PwjCJiep77OitTZ4Ll1A==", "dev": true, - "license": "ISC", + "license": "BlueOak-1.0.0", "dependencies": { - "brace-expansion": "^2.0.1" + "brace-expansion": "^5.0.8" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": "18 || 20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/image-size": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", - "integrity": "sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==", - "dev": true, - "optional": true, - "bin": { - "image-size": "bin/image-size.js" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/immutable": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-5.0.3.tgz", - "integrity": "sha512-P8IdPQHq3lA1xVeBRi5VPqUm5HDgKnx0Ru51wZz5mjxHr5n3RWhjIpOFU7ybkUxfB+5IToy+OLaHYDBIWsv+uw==", + "version": "5.1.9", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-5.1.9.tgz", + "integrity": "sha512-m8nVez3rwrgmWxtLMt1ZYXB2Lv7OKYn/disyxAlSDYAlKSlFoPPfIAmAM/M5xqL4m4C/wAPw7S2/CNaUii1Hxg==", "dev": true, "license": "MIT" }, @@ -9807,16 +12113,6 @@ "node": ">=4" } }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8.19" - } - }, "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -9844,9 +12140,9 @@ } }, "node_modules/injection-js": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/injection-js/-/injection-js-2.4.0.tgz", - "integrity": "sha512-6jiJt0tCAo9zjHbcwLiPL+IuNe9SQ6a9g0PEzafThW3fOQi0mrmiJGBJvDD6tmhPh8cQHIQtCOrJuBfQME4kPA==", + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/injection-js/-/injection-js-2.6.1.tgz", + "integrity": "sha512-dbR5bdhi7TWDoCye9cByZqeg/gAfamm8Vu3G1KZOTYkOif8WkuM8CD0oeDPtZYMzT5YH76JAFB7bkmyY9OJi2A==", "dev": true, "license": "MIT", "dependencies": { @@ -9868,27 +12164,23 @@ } }, "node_modules/ip-address": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-9.0.5.tgz", - "integrity": "sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==", + "version": "10.7.3", + "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.7.3.tgz", + "integrity": "sha512-A1kdq/tSb5QjvKvAMgIoEvDBIgL7qaqVP/jkvSwYYRZ9iEzvPpopxp2wQfu3SuZRHtpHNxMn8Fs0bS+gf5Xmwg==", "dev": true, "license": "MIT", - "dependencies": { - "jsbn": "1.1.0", - "sprintf-js": "^1.1.3" - }, "engines": { "node": ">= 12" } }, "node_modules/ipaddr.js": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.2.0.tgz", - "integrity": "sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA==", + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", "dev": true, "license": "MIT", "engines": { - "node": ">= 10" + "node": ">= 0.10" } }, "node_modules/is-array-buffer": { @@ -10081,6 +12373,7 @@ "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", "dev": true, + "peer": true, "engines": { "node": ">=8" } @@ -10098,9 +12391,9 @@ } }, "node_modules/is-network-error": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-network-error/-/is-network-error-1.1.0.tgz", - "integrity": "sha512-tUdRRAnhT+OtCZR/LxZelH/C7QtjtFrTu5tXCA8pl55eTUElUHT+GPYV8MBMBvea/j+NxQqVt3LbWMRir7Gx9g==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/is-network-error/-/is-network-error-1.3.2.tgz", + "integrity": "sha512-PhBY86zaxNZUuWP6h13Vu5oFe0XY6/UlKzQnYFELzGVHygP3MxmvTfYSG7GN3aIab/iWudSMgjSnG9Dq+nHrgA==", "dev": true, "license": "MIT", "engines": { @@ -10161,6 +12454,13 @@ "node": ">=0.10.0" } }, + "node_modules/is-promise": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz", + "integrity": "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==", + "dev": true, + "license": "MIT" + }, "node_modules/is-regex": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", @@ -10242,6 +12542,7 @@ "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", "dev": true, + "peer": true, "engines": { "node": ">=10" }, @@ -10262,15 +12563,22 @@ } }, "node_modules/is-what": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/is-what/-/is-what-3.14.1.tgz", - "integrity": "sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==", - "dev": true + "version": "4.1.16", + "resolved": "https://registry.npmjs.org/is-what/-/is-what-4.1.16.tgz", + "integrity": "sha512-ZhMwEosbFJkA0YhFnNDgTM4ZxDRsS6HqTo7qsZM08fehyRYIYa0yHu5R6mgo1n/8MgaPBXiPimPD77baVFYg+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.13" + }, + "funding": { + "url": "https://github.com/sponsors/mesqueeb" + } }, "node_modules/is-wsl": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-3.1.0.tgz", - "integrity": "sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-3.1.1.tgz", + "integrity": "sha512-e6rvdUCiQCAuumZslxRJWR/Doq4VpPR82kqclvcS0efgt430SlGIk05vdCN58+VrzgtIcfNODjozVielycD4Sw==", "dev": true, "license": "MIT", "dependencies": { @@ -10423,22 +12731,6 @@ "node": ">=8" } }, - "node_modules/jackspeak": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", - "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "@isaacs/cliui": "^8.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - }, - "optionalDependencies": { - "@pkgjs/parseargs": "^0.11.0" - } - }, "node_modules/jasmine-core": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-4.6.0.tgz", @@ -10450,6 +12742,7 @@ "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", "dev": true, + "license": "MIT", "dependencies": { "@types/node": "*", "merge-stream": "^2.0.0", @@ -10464,6 +12757,7 @@ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -10473,6 +12767,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -10492,6 +12787,16 @@ "jiti": "bin/jiti.js" } }, + "node_modules/jose": { + "version": "6.2.12", + "resolved": "https://registry.npmjs.org/jose/-/jose-6.2.12.tgz", + "integrity": "sha512-9NiFmJEex0sy2Dk58j2UGBSHgUs2ypF9eZSu4L6vjOX3Dp96Sw1F3uL+H+D1sx02jZZdzUT0HgvCy59CuvXcWw==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/panva" + } + }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -10499,13 +12804,6 @@ "dev": true, "license": "MIT" }, - "node_modules/jsbn": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz", - "integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==", - "dev": true, - "license": "MIT" - }, "node_modules/jsesc": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", @@ -10526,13 +12824,13 @@ "dev": true }, "node_modules/json-parse-even-better-errors": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-4.0.0.tgz", - "integrity": "sha512-lR4MXjGNgkJc7tkQ97kb2nuEMnNCyU//XYVH0MKTGcXEiSudQ5MKGKen3C5QubYy0vmq+JGitUg92uuywGEwIA==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-5.0.0.tgz", + "integrity": "sha512-ZF1nxZ28VhQouRWhUcVlUIN3qwSgPuswK05s/HIaoetAoE/9tngVmCHjSxmSQPav1nd+lPtTL0YZ/2AFdR/iYQ==", "dev": true, "license": "MIT", "engines": { - "node": "^18.17.0 || >=20.5.0" + "node": "^20.17.0 || >=22.9.0" } }, "node_modules/json-schema-traverse": { @@ -10541,6 +12839,13 @@ "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", "dev": true }, + "node_modules/json-schema-typed": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/json-schema-typed/-/json-schema-typed-8.0.2.tgz", + "integrity": "sha512-fQhoXdcvc3V28x7C7BMs4P5+kNlgUURe2jmUT1T//oBRMDrqy1QPelJimwZGo7Hg9VPV3EQV5Bnq4hbFy2vetA==", + "dev": true, + "license": "BSD-2-Clause" + }, "node_modules/json5": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", @@ -10795,14 +13100,14 @@ } }, "node_modules/launch-editor": { - "version": "2.9.1", - "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.9.1.tgz", - "integrity": "sha512-Gcnl4Bd+hRO9P9icCP/RVVT2o8SFlPXofuCxvA2SaZuH45whSvf5p8x5oih5ftLiVhEI4sp5xDY+R+b3zJBh5w==", + "version": "2.14.1", + "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.14.1.tgz", + "integrity": "sha512-QWBrQsMpH7gPr965dsKD/3cKWiNoTjpATQf++Xq63N6sKRGMwlVXz41O1IZTMfZQgBctD/K5Zt06+/I6pP6+HA==", "dev": true, "license": "MIT", "dependencies": { - "picocolors": "^1.0.0", - "shell-quote": "^1.8.1" + "picocolors": "^1.1.1", + "shell-quote": "^1.8.4" } }, "node_modules/layout-base": { @@ -10811,36 +13116,35 @@ "integrity": "sha512-dp3s92+uNI1hWIpPGH3jK2kxE2lMjdXdr+DH8ynZHpd6PUlH6x6cbuXnoMmiNumznqaNO31xu9e79F0uuZ0JFg==" }, "node_modules/less": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/less/-/less-4.2.1.tgz", - "integrity": "sha512-CasaJidTIhWmjcqv0Uj5vccMI7pJgfD9lMkKtlnTHAdJdYK/7l8pM9tumLyJ0zhbD4KJLo/YvTj+xznQd5NBhg==", + "version": "4.9.0", + "resolved": "https://registry.npmjs.org/less/-/less-4.9.0.tgz", + "integrity": "sha512-umRhrCH7fCi8Uj2RcwKjJdvUORTjeWqkdKx0LbcZvjIwsAVsnIAGcxHaqowPeBFBjQuWOeC/bve0AlpFzF/+SQ==", "dev": true, "license": "Apache-2.0", "dependencies": { - "copy-anything": "^2.0.1", - "parse-node-version": "^1.0.1", - "tslib": "^2.3.0" + "copy-anything": "^3.0.5", + "parse-node-version": "^1.0.1" }, "bin": { "lessc": "bin/lessc" }, "engines": { - "node": ">=6" + "node": ">=18" }, "optionalDependencies": { "errno": "^0.1.1", "graceful-fs": "^4.1.2", - "image-size": "~0.5.0", - "make-dir": "^2.1.0", + "make-dir": "^5.1.0", "mime": "^1.4.1", "needle": "^3.1.0", + "probe-image-size": "^7.2.3", "source-map": "~0.6.0" } }, "node_modules/less-loader": { - "version": "12.2.0", - "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-12.2.0.tgz", - "integrity": "sha512-MYUxjSQSBUQmowc0l5nPieOYwMzGPUaTzB6inNW/bdPEG9zOL3eAAD1Qw5ZxSPk7we5dMojHwNODYMV1hq4EVg==", + "version": "12.3.0", + "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-12.3.0.tgz", + "integrity": "sha512-0M6+uYulvYIWs52y0LqN4+QM9TqWAohYSNTo4htE8Z7Cn3G/qQMEmktfHmyJT23k+20kU9zHH2wrfFXkxNLtVw==", "dev": true, "license": "MIT", "engines": { @@ -10865,17 +13169,17 @@ } }, "node_modules/less/node_modules/make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-5.1.0.tgz", + "integrity": "sha512-IfpFq6UM39dUNiphpA6uDezNx/AvWyhwfICWPR3t1VspkgkMZrL+Rk1RbN1bx+aeNYwOrqGJgEgV3yotk+ZUVw==", "dev": true, + "license": "MIT", "optional": true, - "dependencies": { - "pify": "^4.0.1", - "semver": "^5.6.0" - }, "engines": { - "node": ">=6" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/less/node_modules/mime": { @@ -10883,6 +13187,7 @@ "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", "dev": true, + "license": "MIT", "optional": true, "bin": { "mime": "cli.js" @@ -10891,21 +13196,12 @@ "node": ">=4" } }, - "node_modules/less/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "dev": true, - "optional": true, - "bin": { - "semver": "bin/semver" - } - }, "node_modules/less/node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, + "license": "BSD-3-Clause", "optional": true, "engines": { "node": ">=0.10.0" @@ -10935,9 +13231,9 @@ "dev": true }, "node_modules/listr2": { - "version": "8.2.5", - "resolved": "https://registry.npmjs.org/listr2/-/listr2-8.2.5.tgz", - "integrity": "sha512-iyAZCeyD+c1gPyE9qpFu8af0Y+MRtmKOncdGoA2S5EY8iFq99dmmvkNnHiWo+pj0s7yH7l3KPIgee77tKpXPWQ==", + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-9.0.1.tgz", + "integrity": "sha512-SL0JY3DaxylDuo/MecFeiC+7pedM0zia33zl0vcjgwcq1q1FWWF1To9EIauPbl8GbMCU0R2e0uJ8bZunhYKD2g==", "dev": true, "license": "MIT", "dependencies": { @@ -10949,13 +13245,13 @@ "wrap-ansi": "^9.0.0" }, "engines": { - "node": ">=18.0.0" + "node": ">=20.0.0" } }, "node_modules/listr2/node_modules/ansi-regex": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", - "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.4.0.tgz", + "integrity": "sha512-KzTVk2tCWAHtYrvvvaP8bJKJq2pVinhLcGEQdtLIYPbmNGNyYe8QwNaTUYQp2J7/vIsUKt5QCqAfUkYyG9DkOw==", "dev": true, "license": "MIT", "engines": { @@ -10966,9 +13262,9 @@ } }, "node_modules/listr2/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", + "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", "dev": true, "license": "MIT", "engines": { @@ -10979,16 +13275,16 @@ } }, "node_modules/listr2/node_modules/emoji-regex": { - "version": "10.4.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.4.0.tgz", - "integrity": "sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==", + "version": "10.6.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.6.0.tgz", + "integrity": "sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==", "dev": true, "license": "MIT" }, "node_modules/listr2/node_modules/eventemitter3": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", - "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==", + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.4.tgz", + "integrity": "sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw==", "dev": true, "license": "MIT" }, @@ -11011,13 +13307,13 @@ } }, "node_modules/listr2/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz", + "integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==", "dev": true, "license": "MIT", "dependencies": { - "ansi-regex": "^6.0.1" + "ansi-regex": "^6.2.2" }, "engines": { "node": ">=12" @@ -11027,9 +13323,9 @@ } }, "node_modules/listr2/node_modules/wrap-ansi": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.0.tgz", - "integrity": "sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==", + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.2.tgz", + "integrity": "sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww==", "dev": true, "license": "MIT", "dependencies": { @@ -11045,9 +13341,9 @@ } }, "node_modules/lmdb": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/lmdb/-/lmdb-3.2.2.tgz", - "integrity": "sha512-LriG93la4PbmPMwI7Hbv8W+0ncLK7549w4sbZSi4QGDjnnxnmNMgxUkaQTEMzH8TpwsfFvgEjpLX7V8B/I9e3g==", + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/lmdb/-/lmdb-3.4.2.tgz", + "integrity": "sha512-nwVGUfTBUwJKXd6lRV8pFNfnrCC1+l49ESJRM19t/tFb/97QfJEixe5DYRvug5JO7DSFKoKaVy7oGMt5rVqZvg==", "dev": true, "hasInstallScript": true, "license": "MIT", @@ -11063,12 +13359,13 @@ "download-lmdb-prebuilds": "bin/download-prebuilds.js" }, "optionalDependencies": { - "@lmdb/lmdb-darwin-arm64": "3.2.2", - "@lmdb/lmdb-darwin-x64": "3.2.2", - "@lmdb/lmdb-linux-arm": "3.2.2", - "@lmdb/lmdb-linux-arm64": "3.2.2", - "@lmdb/lmdb-linux-x64": "3.2.2", - "@lmdb/lmdb-win32-x64": "3.2.2" + "@lmdb/lmdb-darwin-arm64": "3.4.2", + "@lmdb/lmdb-darwin-x64": "3.4.2", + "@lmdb/lmdb-linux-arm": "3.4.2", + "@lmdb/lmdb-linux-arm64": "3.4.2", + "@lmdb/lmdb-linux-x64": "3.4.2", + "@lmdb/lmdb-win32-arm64": "3.4.2", + "@lmdb/lmdb-win32-x64": "3.4.2" } }, "node_modules/load-json-file": { @@ -11109,12 +13406,17 @@ } }, "node_modules/loader-runner": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", - "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.2.tgz", + "integrity": "sha512-DFEqQ3ihfS9blba08cLfYf1NRAIEm+dDjic073DRDc3/JspI/8wYmtDsHwd3+4hwvdxSK7PGaElfTmm0awWJ4w==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.11.5" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" } }, "node_modules/loader-utils": { @@ -11152,11 +13454,20 @@ "dev": true, "license": "MIT" }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true, + "license": "MIT", + "optional": true + }, "node_modules/log-symbols": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", "dev": true, + "peer": true, "dependencies": { "chalk": "^4.1.0", "is-unicode-supported": "^0.1.0" @@ -11173,6 +13484,7 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "peer": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -11188,6 +13500,7 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "peer": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -11204,6 +13517,7 @@ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, + "peer": true, "dependencies": { "color-name": "~1.1.4" }, @@ -11215,13 +13529,15 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true + "dev": true, + "peer": true }, "node_modules/log-symbols/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, + "peer": true, "engines": { "node": ">=8" } @@ -11231,6 +13547,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, + "peer": true, "dependencies": { "has-flag": "^4.0.0" }, @@ -11258,26 +13575,10 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/log-update/node_modules/ansi-escapes": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-7.0.0.tgz", - "integrity": "sha512-GdYO7a61mR0fOlAsvC9/rIHf7L96sBc6dEWzeOu+KAea5bZyQRPIpojrVoI4AXGJS/ycu/fBTdLrUkA4ODrvjw==", - "dev": true, - "license": "MIT", - "dependencies": { - "environment": "^1.0.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/log-update/node_modules/ansi-regex": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", - "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.4.0.tgz", + "integrity": "sha512-KzTVk2tCWAHtYrvvvaP8bJKJq2pVinhLcGEQdtLIYPbmNGNyYe8QwNaTUYQp2J7/vIsUKt5QCqAfUkYyG9DkOw==", "dev": true, "license": "MIT", "engines": { @@ -11288,9 +13589,9 @@ } }, "node_modules/log-update/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", + "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", "dev": true, "license": "MIT", "engines": { @@ -11317,20 +13618,20 @@ } }, "node_modules/log-update/node_modules/emoji-regex": { - "version": "10.4.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.4.0.tgz", - "integrity": "sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==", + "version": "10.6.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.6.0.tgz", + "integrity": "sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==", "dev": true, "license": "MIT" }, "node_modules/log-update/node_modules/is-fullwidth-code-point": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-5.0.0.tgz", - "integrity": "sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-5.1.0.tgz", + "integrity": "sha512-5XHYaSyiqADb4RnZ1Bdad6cPp8Toise4TzEjcOYDHZkTCbKgiUl7WTUCpNWHuxmDt91wnsZBc9xinNzopv3JMQ==", "dev": true, "license": "MIT", "dependencies": { - "get-east-asian-width": "^1.0.0" + "get-east-asian-width": "^1.3.1" }, "engines": { "node": ">=18" @@ -11386,9 +13687,9 @@ } }, "node_modules/log-update/node_modules/slice-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-7.1.0.tgz", - "integrity": "sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-7.1.2.tgz", + "integrity": "sha512-iOBWFgUX7caIZiuutICxVgX1SdxwAVFFKwt1EvMYYec/NWO5meOJ6K5uQxhrYBdQJne4KxiqZc+KptFOWFSI9w==", "dev": true, "license": "MIT", "dependencies": { @@ -11421,13 +13722,13 @@ } }, "node_modules/log-update/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz", + "integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==", "dev": true, "license": "MIT", "dependencies": { - "ansi-regex": "^6.0.1" + "ansi-regex": "^6.2.2" }, "engines": { "node": ">=12" @@ -11437,9 +13738,9 @@ } }, "node_modules/log-update/node_modules/wrap-ansi": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.0.tgz", - "integrity": "sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==", + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.2.tgz", + "integrity": "sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww==", "dev": true, "license": "MIT", "dependencies": { @@ -11506,36 +13807,78 @@ } }, "node_modules/make-fetch-happen": { - "version": "14.0.3", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-14.0.3.tgz", - "integrity": "sha512-QMjGbFTP0blj97EeidG5hk/QhKQ3T4ICckQGLgz38QF7Vgbk6e6FTARN8KhKxyBbWn8R0HU+bnw8aSoFPD4qtQ==", + "version": "15.0.6", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-15.0.6.tgz", + "integrity": "sha512-Je0fLJ0F5atA7F+eIlLzk+Wkcl57JDf4kf+EW8xiP5E31xOQxkIxTbgf1Oi1Lw9tRI9UEMRdI5Vz2xTzoNU1Jw==", "dev": true, "license": "ISC", "dependencies": { - "@npmcli/agent": "^3.0.0", - "cacache": "^19.0.1", + "@gar/promise-retry": "^1.0.0", + "@npmcli/agent": "^4.0.0", + "@npmcli/redact": "^4.0.0", + "cacache": "^20.0.1", "http-cache-semantics": "^4.1.1", "minipass": "^7.0.2", - "minipass-fetch": "^4.0.0", + "minipass-fetch": "^5.0.0", "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.4", "negotiator": "^1.0.0", - "proc-log": "^5.0.0", - "promise-retry": "^2.0.1", - "ssri": "^12.0.0" + "proc-log": "^6.0.0", + "ssri": "^13.0.0" }, "engines": { - "node": "^18.17.0 || >=20.5.0" + "node": "^20.17.0 || >=22.9.0" + } + }, + "node_modules/make-fetch-happen/node_modules/content-type": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-2.1.0.tgz", + "integrity": "sha512-mj7UPXE0jaqaOsukNZRUEfEi2AcL7C/vwmwcHV0O97eO1E1pxBZuyjlZrx5seTaNBg1U6+o35wpa35Qfcc+7ag==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" } }, "node_modules/make-fetch-happen/node_modules/negotiator": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-1.0.0.tgz", - "integrity": "sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-1.1.0.tgz", + "integrity": "sha512-NMPBRMJgiQHjbd8phG3Vebdx4kZ1H121rbl5IkMqeOsahptB9BKo/d7oJ3zTXqTgagn2bWlNSXkh0QUGM31RYg==", "dev": true, "license": "MIT", + "dependencies": { + "content-type": "^2.1.0" + }, "engines": { - "node": ">= 0.6" + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/make-fetch-happen/node_modules/proc-log": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-6.1.0.tgz", + "integrity": "sha512-iG+GYldRf2BQ0UDUAd6JQ/RwzaQy6mXmsk/IzlYyal4A4SNFw54MeH4/tLkF4I5WoWG9SQwuqWzS99jaFQHBuQ==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^20.17.0 || >=22.9.0" + } + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" } }, "node_modules/media-typer": { @@ -11548,20 +13891,27 @@ } }, "node_modules/memfs": { - "version": "4.17.0", - "resolved": "https://registry.npmjs.org/memfs/-/memfs-4.17.0.tgz", - "integrity": "sha512-4eirfZ7thblFmqFjywlTmuWVSvccHAJbn1r8qQLzmTO11qcqpohOjmY2mFce6x7x7WtskzRqApPD0hv+Oa74jg==", + "version": "4.80.0", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-4.80.0.tgz", + "integrity": "sha512-N70W2isi44XdGn7uPo9NJ4zRukcdkwSFHlnYx42SWOH/+hzqNc8P7+tVoA2up4z7faHvNi1RSNCFjxoYQ71VPQ==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@jsonjoy.com/json-pack": "^1.0.3", - "@jsonjoy.com/util": "^1.3.0", - "tree-dump": "^1.0.1", + "@jsonjoy.com/fs-core": "4.80.0", + "@jsonjoy.com/fs-fsa": "4.80.0", + "@jsonjoy.com/fs-node": "4.80.0", + "@jsonjoy.com/fs-node-builtins": "4.80.0", + "@jsonjoy.com/fs-node-to-fsa": "4.80.0", + "@jsonjoy.com/fs-node-utils": "4.80.0", + "@jsonjoy.com/fs-print": "4.80.0", + "@jsonjoy.com/fs-snapshot": "4.80.0", + "@jsonjoy.com/json-pack": "^1.11.0", + "@jsonjoy.com/util": "^1.9.0", + "glob-to-regex.js": "^1.3.1", + "thingies": "^2.5.0", + "tree-dump": "^1.0.3", "tslib": "^2.0.0" }, - "engines": { - "node": ">= 4.0.0" - }, "funding": { "type": "github", "url": "https://github.com/sponsors/streamich" @@ -11577,11 +13927,14 @@ } }, "node_modules/merge-descriptors": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", - "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-2.0.0.tgz", + "integrity": "sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g==", "dev": true, "license": "MIT", + "engines": { + "node": ">=18" + }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } @@ -11590,7 +13943,8 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/merge2": { "version": "1.4.1", @@ -11627,9 +13981,9 @@ } }, "node_modules/micromatch/node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz", + "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==", "dev": true, "license": "MIT", "engines": { @@ -11677,6 +14031,7 @@ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", "dev": true, + "peer": true, "engines": { "node": ">=6" } @@ -11695,9 +14050,9 @@ } }, "node_modules/mini-css-extract-plugin": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.9.2.tgz", - "integrity": "sha512-GJuACcS//jtq4kCtd5ii/M0SZf7OZRH+BxdqXZHaJfb8TJiVl+NgQRPwiYt2EuqeSkNydn/7vP+bcE27C5mb9w==", + "version": "2.9.4", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.9.4.tgz", + "integrity": "sha512-ZWYT7ln73Hptxqxk2DxPU9MmapXRhxkJD6tkSR04dnQxm8BGu2hzgKLugK5yySD97u/8yy7Ma7E76k9ZdvtjkQ==", "dev": true, "license": "MIT", "dependencies": { @@ -11744,11 +14099,11 @@ } }, "node_modules/minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.3.tgz", + "integrity": "sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==", "dev": true, - "license": "ISC", + "license": "BlueOak-1.0.0", "engines": { "node": ">=16 || 14 >=14.17" } @@ -11767,29 +14122,47 @@ } }, "node_modules/minipass-fetch": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-4.0.0.tgz", - "integrity": "sha512-2v6aXUXwLP1Epd/gc32HAMIWoczx+fZwEPRHm/VwtrJzRGwR1qGZXEYV3Zp8ZjjbwaZhMrM6uHV4KVkk+XCc2w==", + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-5.0.2.tgz", + "integrity": "sha512-2d0q2a8eCi2IRg/IGubCNRJoYbA1+YPXAzQVRFmB45gdGZafyivnZ5YSEfo3JikbjGxOdntGFvBQGqaSMXlAFQ==", "dev": true, "license": "MIT", "dependencies": { "minipass": "^7.0.3", - "minipass-sized": "^1.0.3", + "minipass-sized": "^2.0.0", "minizlib": "^3.0.1" }, "engines": { - "node": "^18.17.0 || >=20.5.0" + "node": "^20.17.0 || >=22.9.0" }, "optionalDependencies": { - "encoding": "^0.1.13" + "iconv-lite": "^0.7.2" + } + }, + "node_modules/minipass-fetch/node_modules/iconv-lite": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.3.tgz", + "integrity": "sha512-IKXpvIzjnC9XTAUbVBcMfGS0EPaIXtW6v+zr+RRp+hqULEpo0owZax6wyRwPOJbWbzjYspQwusTsfVr0ifh4uQ==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" } }, "node_modules/minipass-flush": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", - "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.7.tgz", + "integrity": "sha512-TbqTz9cUwWyHS2Dy89P3ocAGUGxKjjLuR9z8w4WUTGAVgEj17/4nhgo2Du56i0Fm3Pm30g4iA8Lcqctc76jCzA==", "dev": true, - "license": "ISC", + "license": "BlueOak-1.0.0", "dependencies": { "minipass": "^3.0.0" }, @@ -11851,115 +14224,31 @@ "license": "ISC" }, "node_modules/minipass-sized": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", - "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-2.0.0.tgz", + "integrity": "sha512-zSsHhto5BcUVM2m1LurnXY6M//cGhVaegT71OfOXoprxT6o780GZd792ea6FfrQkuU4usHZIUczAQMRUE2plzA==", "dev": true, "license": "ISC", "dependencies": { - "minipass": "^3.0.0" + "minipass": "^7.1.2" }, "engines": { "node": ">=8" } }, - "node_modules/minipass-sized/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dev": true, - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass-sized/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true, - "license": "ISC" - }, - "node_modules/minizlib": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-3.0.1.tgz", - "integrity": "sha512-umcy022ILvb5/3Djuu8LWeqUa8D68JaBzlttKeMWen48SjabqS3iY5w/vzeMzMUNhLDifyhbOwKDSznB1vvrwg==", + "node_modules/minizlib": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-3.1.0.tgz", + "integrity": "sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw==", "dev": true, "license": "MIT", "dependencies": { - "minipass": "^7.0.4", - "rimraf": "^5.0.5" + "minipass": "^7.1.2" }, "engines": { "node": ">= 18" } }, - "node_modules/minizlib/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/minizlib/node_modules/glob": { - "version": "10.4.5", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", - "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", - "dev": true, - "license": "ISC", - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^1.11.1" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/minizlib/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/minizlib/node_modules/rimraf": { - "version": "5.0.10", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.10.tgz", - "integrity": "sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "glob": "^10.3.7" - }, - "bin": { - "rimraf": "dist/esm/bin.mjs" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/mkdirp": { "version": "0.5.6", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", @@ -11973,9 +14262,9 @@ } }, "node_modules/mrmime": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.0.tgz", - "integrity": "sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.1.tgz", + "integrity": "sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==", "dev": true, "license": "MIT", "engines": { @@ -11989,9 +14278,9 @@ "dev": true }, "node_modules/msgpackr": { - "version": "1.11.2", - "resolved": "https://registry.npmjs.org/msgpackr/-/msgpackr-1.11.2.tgz", - "integrity": "sha512-F9UngXRlPyWCDEASDpTf6c9uNhGPTqnTeLVt7bN+bU1eajoR/8V9ys2BRaV5C/e5ihE6sJ9uPIKaYt6bFuO32g==", + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/msgpackr/-/msgpackr-1.12.1.tgz", + "integrity": "sha512-4EUH9tQHnMmEgzW/MdAP0KIfa1T9AF+htl0ffe2n5vb2EKn9y2co8ccpgWko6S52Jy1PQZKwRnx5/KkYjtd9MQ==", "dev": true, "license": "MIT", "optional": true, @@ -12000,9 +14289,9 @@ } }, "node_modules/msgpackr-extract": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/msgpackr-extract/-/msgpackr-extract-3.0.3.tgz", - "integrity": "sha512-P0efT1C9jIdVRefqjzOQ9Xml57zpOXnIuS+csaB4MdZbTdmGDLo8XhzBG1N7aO11gKDDkJvBLULeFTo46wwreA==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/msgpackr-extract/-/msgpackr-extract-3.0.4.tgz", + "integrity": "sha512-4kmO/MdyUIkLIvTPr8VHLil4AtoKIoniWPIEk5+CDy0xnWC84azhSFmuJ7PxZdsYtiP5kEeQsORAVIeMgxT+Hw==", "dev": true, "hasInstallScript": true, "license": "MIT", @@ -12014,12 +14303,12 @@ "download-msgpackr-prebuilds": "bin/download-prebuilds.js" }, "optionalDependencies": { - "@msgpackr-extract/msgpackr-extract-darwin-arm64": "3.0.3", - "@msgpackr-extract/msgpackr-extract-darwin-x64": "3.0.3", - "@msgpackr-extract/msgpackr-extract-linux-arm": "3.0.3", - "@msgpackr-extract/msgpackr-extract-linux-arm64": "3.0.3", - "@msgpackr-extract/msgpackr-extract-linux-x64": "3.0.3", - "@msgpackr-extract/msgpackr-extract-win32-x64": "3.0.3" + "@msgpackr-extract/msgpackr-extract-darwin-arm64": "3.0.4", + "@msgpackr-extract/msgpackr-extract-darwin-x64": "3.0.4", + "@msgpackr-extract/msgpackr-extract-linux-arm": "3.0.4", + "@msgpackr-extract/msgpackr-extract-linux-arm64": "3.0.4", + "@msgpackr-extract/msgpackr-extract-linux-x64": "3.0.4", + "@msgpackr-extract/msgpackr-extract-win32-x64": "3.0.4" } }, "node_modules/multicast-dns": { @@ -12047,9 +14336,9 @@ } }, "node_modules/nanoid": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", - "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "version": "3.3.19", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.19.tgz", + "integrity": "sha512-Y2tUNy4ouw6tq5oDSKeQYGOyhkUBhNOcGV/02KC+6kd9eDGqdZd++mjMiIDilrBYvjEnCYvVtsuHCuP+okSfug==", "dev": true, "funding": [ { @@ -12057,6 +14346,7 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "bin": { "nanoid": "bin/nanoid.cjs" }, @@ -12072,10 +14362,11 @@ "optional": true }, "node_modules/needle": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/needle/-/needle-3.3.1.tgz", - "integrity": "sha512-6k0YULvhpw+RoLNiQCRKOl09Rv1dPLr8hHnVjHqdolKwDrdNyk+Hmrthi4lIGPPz3r39dLx0hsF5s40sZ3Us4Q==", + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/needle/-/needle-3.5.0.tgz", + "integrity": "sha512-jaQyPKKk2YokHrEg+vFDYxXIHTCBgiZwSHOoVx/8V3GIBS8/VN6NdVRmg8q1ERtPkMvmOvebsgga4sAj5hls/w==", "dev": true, + "license": "MIT", "optional": true, "dependencies": { "iconv-lite": "^0.6.3", @@ -12093,6 +14384,7 @@ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", "dev": true, + "license": "MIT", "optional": true, "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" @@ -12117,58 +14409,501 @@ "dev": true }, "node_modules/ng-packagr": { - "version": "19.1.1", - "resolved": "https://registry.npmjs.org/ng-packagr/-/ng-packagr-19.1.1.tgz", - "integrity": "sha512-KToU6/nkzD/XDhWJL0Na5ita0d/W6HiohMbDIWv36xQTV26CfICZ3xAPGE4vTbnQS77wCSR+8+jbiBtkw6J1pA==", + "version": "20.3.2", + "resolved": "https://registry.npmjs.org/ng-packagr/-/ng-packagr-20.3.2.tgz", + "integrity": "sha512-yW5ME0hqTz38r/th/7zVwX5oSIw1FviSA2PUlGZdVjghDme/KX6iiwmOBmlt9E9whNmwijEC6Gn3KKbrsBx8ig==", "dev": true, "license": "MIT", "dependencies": { + "@ampproject/remapping": "^2.3.0", "@rollup/plugin-json": "^6.1.0", "@rollup/wasm-node": "^4.24.0", "ajv": "^8.17.1", "ansi-colors": "^4.1.3", "browserslist": "^4.22.1", "chokidar": "^4.0.1", - "commander": "^13.0.0", - "convert-source-map": "^2.0.0", + "commander": "^14.0.0", "dependency-graph": "^1.0.0", - "esbuild": "^0.24.0", - "fast-glob": "^3.3.2", - "find-cache-dir": "^3.3.2", + "esbuild": "^0.25.0", + "find-cache-directory": "^6.0.0", "injection-js": "^2.4.0", "jsonc-parser": "^3.3.1", "less": "^4.2.0", - "ora": "^5.1.0", - "piscina": "^4.7.0", + "ora": "^8.2.0", + "piscina": "^5.0.0", "postcss": "^8.4.47", + "rollup-plugin-dts": "^6.2.0", "rxjs": "^7.8.1", - "sass": "^1.81.0" + "sass": "^1.81.0", + "tinyglobby": "^0.2.12" }, "bin": { - "ng-packagr": "cli/main.js" + "ng-packagr": "src/cli/main.js" }, "engines": { - "node": "^18.19.1 || >=20.11.1" - }, - "optionalDependencies": { - "rollup": "^4.24.0" - }, - "peerDependencies": { - "@angular/compiler-cli": "^19.0.0 || ^19.1.0-next.0 || ^19.2.0-next.0", - "tailwindcss": "^2.0.0 || ^3.0.0", - "tslib": "^2.3.0", - "typescript": ">=5.5 <5.8" - }, - "peerDependenciesMeta": { - "tailwindcss": { - "optional": true - } + "node": "^20.19.0 || ^22.12.0 || >=24.0.0" + }, + "optionalDependencies": { + "rollup": "^4.24.0" + }, + "peerDependencies": { + "@angular/compiler-cli": "^20.0.0", + "tailwindcss": "^2.0.0 || ^3.0.0 || ^4.0.0", + "tslib": "^2.3.0", + "typescript": ">=5.8 <6.0" + }, + "peerDependenciesMeta": { + "tailwindcss": { + "optional": true + } + } + }, + "node_modules/ng-packagr/node_modules/@esbuild/aix-ppc64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.12.tgz", + "integrity": "sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/ng-packagr/node_modules/@esbuild/android-arm": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.12.tgz", + "integrity": "sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/ng-packagr/node_modules/@esbuild/android-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.12.tgz", + "integrity": "sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/ng-packagr/node_modules/@esbuild/android-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.12.tgz", + "integrity": "sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/ng-packagr/node_modules/@esbuild/darwin-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.12.tgz", + "integrity": "sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/ng-packagr/node_modules/@esbuild/darwin-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.12.tgz", + "integrity": "sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/ng-packagr/node_modules/@esbuild/freebsd-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.12.tgz", + "integrity": "sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/ng-packagr/node_modules/@esbuild/freebsd-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.12.tgz", + "integrity": "sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/ng-packagr/node_modules/@esbuild/linux-arm": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.12.tgz", + "integrity": "sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/ng-packagr/node_modules/@esbuild/linux-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.12.tgz", + "integrity": "sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/ng-packagr/node_modules/@esbuild/linux-ia32": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.12.tgz", + "integrity": "sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/ng-packagr/node_modules/@esbuild/linux-loong64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.12.tgz", + "integrity": "sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/ng-packagr/node_modules/@esbuild/linux-mips64el": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.12.tgz", + "integrity": "sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/ng-packagr/node_modules/@esbuild/linux-ppc64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.12.tgz", + "integrity": "sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/ng-packagr/node_modules/@esbuild/linux-riscv64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.12.tgz", + "integrity": "sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/ng-packagr/node_modules/@esbuild/linux-s390x": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.12.tgz", + "integrity": "sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/ng-packagr/node_modules/@esbuild/linux-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.12.tgz", + "integrity": "sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/ng-packagr/node_modules/@esbuild/netbsd-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.12.tgz", + "integrity": "sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/ng-packagr/node_modules/@esbuild/netbsd-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.12.tgz", + "integrity": "sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/ng-packagr/node_modules/@esbuild/openbsd-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.12.tgz", + "integrity": "sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/ng-packagr/node_modules/@esbuild/openbsd-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.12.tgz", + "integrity": "sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/ng-packagr/node_modules/@esbuild/openharmony-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.12.tgz", + "integrity": "sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/ng-packagr/node_modules/@esbuild/sunos-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.12.tgz", + "integrity": "sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/ng-packagr/node_modules/@esbuild/win32-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.12.tgz", + "integrity": "sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/ng-packagr/node_modules/@esbuild/win32-ia32": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.12.tgz", + "integrity": "sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/ng-packagr/node_modules/@esbuild/win32-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.12.tgz", + "integrity": "sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" } }, "node_modules/ng-packagr/node_modules/ajv": { - "version": "8.17.1", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", - "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "version": "8.20.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.20.0.tgz", + "integrity": "sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA==", "dev": true, "license": "MIT", "dependencies": { @@ -12182,6 +14917,32 @@ "url": "https://github.com/sponsors/epoberezkin" } }, + "node_modules/ng-packagr/node_modules/ansi-regex": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.4.0.tgz", + "integrity": "sha512-KzTVk2tCWAHtYrvvvaP8bJKJq2pVinhLcGEQdtLIYPbmNGNyYe8QwNaTUYQp2J7/vIsUKt5QCqAfUkYyG9DkOw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/ng-packagr/node_modules/chalk": { + "version": "5.6.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.6.2.tgz", + "integrity": "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, "node_modules/ng-packagr/node_modules/chokidar": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", @@ -12198,74 +14959,181 @@ "url": "https://paulmillr.com/funding/" } }, - "node_modules/ng-packagr/node_modules/commander": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-13.1.0.tgz", - "integrity": "sha512-/rFeCpNJQbhSZjGVwO9RFV3xPqbnERS8MmIQzCtD/zl6gpJuV/bMLuN92oG3F7d8oDEHHRrujSXNUr8fpjntKw==", + "node_modules/ng-packagr/node_modules/cli-cursor": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-5.0.0.tgz", + "integrity": "sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==", "dev": true, "license": "MIT", + "dependencies": { + "restore-cursor": "^5.0.0" + }, "engines": { "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/ng-packagr/node_modules/convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "node_modules/ng-packagr/node_modules/commander": { + "version": "14.0.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-14.0.3.tgz", + "integrity": "sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=20" + } + }, + "node_modules/ng-packagr/node_modules/emoji-regex": { + "version": "10.6.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.6.0.tgz", + "integrity": "sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==", "dev": true, "license": "MIT" }, - "node_modules/ng-packagr/node_modules/find-cache-dir": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", - "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "node_modules/ng-packagr/node_modules/esbuild": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.12.tgz", + "integrity": "sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.25.12", + "@esbuild/android-arm": "0.25.12", + "@esbuild/android-arm64": "0.25.12", + "@esbuild/android-x64": "0.25.12", + "@esbuild/darwin-arm64": "0.25.12", + "@esbuild/darwin-x64": "0.25.12", + "@esbuild/freebsd-arm64": "0.25.12", + "@esbuild/freebsd-x64": "0.25.12", + "@esbuild/linux-arm": "0.25.12", + "@esbuild/linux-arm64": "0.25.12", + "@esbuild/linux-ia32": "0.25.12", + "@esbuild/linux-loong64": "0.25.12", + "@esbuild/linux-mips64el": "0.25.12", + "@esbuild/linux-ppc64": "0.25.12", + "@esbuild/linux-riscv64": "0.25.12", + "@esbuild/linux-s390x": "0.25.12", + "@esbuild/linux-x64": "0.25.12", + "@esbuild/netbsd-arm64": "0.25.12", + "@esbuild/netbsd-x64": "0.25.12", + "@esbuild/openbsd-arm64": "0.25.12", + "@esbuild/openbsd-x64": "0.25.12", + "@esbuild/openharmony-arm64": "0.25.12", + "@esbuild/sunos-x64": "0.25.12", + "@esbuild/win32-arm64": "0.25.12", + "@esbuild/win32-ia32": "0.25.12", + "@esbuild/win32-x64": "0.25.12" + } + }, + "node_modules/ng-packagr/node_modules/is-interactive": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-2.0.0.tgz", + "integrity": "sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ng-packagr/node_modules/is-unicode-supported": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-2.1.0.tgz", + "integrity": "sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ng-packagr/node_modules/log-symbols": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-6.0.0.tgz", + "integrity": "sha512-i24m8rpwhmPIS4zscNzK6MSEhk0DUWa/8iYQWxhffV8jkI4Phvs3F+quL5xvS0gdQR0FyTCMMH33Y78dDTzzIw==", "dev": true, "license": "MIT", "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" + "chalk": "^5.3.0", + "is-unicode-supported": "^1.3.0" }, "engines": { - "node": ">=8" + "node": ">=18" }, "funding": { - "url": "https://github.com/avajs/find-cache-dir?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/ng-packagr/node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "node_modules/ng-packagr/node_modules/log-symbols/node_modules/is-unicode-supported": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz", + "integrity": "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ng-packagr/node_modules/onetime": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-7.0.0.tgz", + "integrity": "sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==", "dev": true, "license": "MIT", "dependencies": { - "semver": "^6.0.0" + "mimic-function": "^5.0.0" }, "engines": { - "node": ">=8" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/ng-packagr/node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "node_modules/ng-packagr/node_modules/ora": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/ora/-/ora-8.2.0.tgz", + "integrity": "sha512-weP+BZ8MVNnlCm8c0Qdc1WSWq4Qn7I+9CJGm7Qali6g44e/PUzbjNqJX5NJ9ljlNMosfJvg1fKEGILklK9cwnw==", "dev": true, "license": "MIT", "dependencies": { - "find-up": "^4.0.0" + "chalk": "^5.3.0", + "cli-cursor": "^5.0.0", + "cli-spinners": "^2.9.2", + "is-interactive": "^2.0.0", + "is-unicode-supported": "^2.0.0", + "log-symbols": "^6.0.0", + "stdin-discarder": "^0.2.2", + "string-width": "^7.2.0", + "strip-ansi": "^7.1.0" }, "engines": { - "node": ">=8" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/ng-packagr/node_modules/readdirp": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.1.tgz", - "integrity": "sha512-h80JrZu/MHUZCyHu5ciuoI0+WxsCxzxJTILn6Fs8rxSnFPh+UVHYfeIxK1nVGugMqkfC4vJcBOYbkfkwYK0+gw==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", + "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", "dev": true, "license": "MIT", "engines": { @@ -12276,14 +15144,68 @@ "url": "https://paulmillr.com/funding/" } }, - "node_modules/ng-packagr/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "node_modules/ng-packagr/node_modules/restore-cursor": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-5.1.0.tgz", + "integrity": "sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==", + "dev": true, + "license": "MIT", + "dependencies": { + "onetime": "^7.0.0", + "signal-exit": "^4.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ng-packagr/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", "dev": true, "license": "ISC", - "bin": { - "semver": "bin/semver.js" + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/ng-packagr/node_modules/string-width": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", + "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^10.3.0", + "get-east-asian-width": "^1.0.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ng-packagr/node_modules/strip-ansi": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz", + "integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.2.2" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, "node_modules/nice-try": { @@ -12307,39 +15229,29 @@ "license": "MIT", "optional": true }, - "node_modules/node-forge": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", - "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", - "dev": true, - "license": "(BSD-3-Clause OR GPL-2.0)", - "engines": { - "node": ">= 6.13.0" - } - }, "node_modules/node-gyp": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-11.0.0.tgz", - "integrity": "sha512-zQS+9MTTeCMgY0F3cWPyJyRFAkVltQ1uXm+xXu/ES6KFgC6Czo1Seb9vQW2wNxSX2OrDTiqL0ojtkFxBQ0ypIw==", + "version": "12.4.0", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-12.4.0.tgz", + "integrity": "sha512-OMcPNvqTCFUnNaBlmdgq+lfNqY7gTiSmNRDjY3uAXRyudeKZEZxu3CLtjMQrx4zZxCX2b/mpNqTtwuCJgXhHkw==", "dev": true, "license": "MIT", "dependencies": { "env-paths": "^2.2.0", "exponential-backoff": "^3.1.1", - "glob": "^10.3.10", "graceful-fs": "^4.2.6", - "make-fetch-happen": "^14.0.3", - "nopt": "^8.0.0", - "proc-log": "^5.0.0", + "nopt": "^9.0.0", + "proc-log": "^6.0.0", "semver": "^7.3.5", - "tar": "^7.4.3", - "which": "^5.0.0" + "tar": "^7.5.4", + "tinyglobby": "^0.2.12", + "undici": "^6.25.0", + "which": "^6.0.0" }, "bin": { "node-gyp": "bin/node-gyp.js" }, "engines": { - "node": "^18.17.0 || >=20.5.0" + "node": "^20.17.0 || >=22.9.0" } }, "node_modules/node-gyp-build-optional-packages": { @@ -12358,154 +15270,66 @@ "node-gyp-build-optional-packages-test": "build-test.js" } }, - "node_modules/node-gyp/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/node-gyp/node_modules/chownr": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-3.0.0.tgz", - "integrity": "sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==", - "dev": true, - "license": "BlueOak-1.0.0", - "engines": { - "node": ">=18" - } - }, - "node_modules/node-gyp/node_modules/glob": { - "version": "10.4.5", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", - "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", - "dev": true, - "license": "ISC", - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^1.11.1" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/node-gyp/node_modules/isexe": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", - "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=16" - } - }, - "node_modules/node-gyp/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/node-gyp/node_modules/mkdirp": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-3.0.1.tgz", - "integrity": "sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-4.0.0.tgz", + "integrity": "sha512-FFUtZMpoZ8RqHS3XeXEmHWLA4thH+ZxCv2lOiPIn1Xc7CxrqhWzNSDzD+/chS/zbYezmiwWLdQC09JdQKmthOw==", "dev": true, - "license": "MIT", - "bin": { - "mkdirp": "dist/cjs/src/bin.js" - }, + "license": "BlueOak-1.0.0", "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": ">=20" } }, - "node_modules/node-gyp/node_modules/tar": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/tar/-/tar-7.4.3.tgz", - "integrity": "sha512-5S7Va8hKfV7W5U6g3aYxXmlPoZVAwUMy9AOKyF2fVuZa2UD3qZjg578OrLRt8PcNN1PleVaL/5/yYATNL0ICUw==", + "node_modules/node-gyp/node_modules/proc-log": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-6.1.0.tgz", + "integrity": "sha512-iG+GYldRf2BQ0UDUAd6JQ/RwzaQy6mXmsk/IzlYyal4A4SNFw54MeH4/tLkF4I5WoWG9SQwuqWzS99jaFQHBuQ==", "dev": true, "license": "ISC", - "dependencies": { - "@isaacs/fs-minipass": "^4.0.0", - "chownr": "^3.0.0", - "minipass": "^7.1.2", - "minizlib": "^3.0.1", - "mkdirp": "^3.0.1", - "yallist": "^5.0.0" - }, "engines": { - "node": ">=18" + "node": "^20.17.0 || >=22.9.0" } }, "node_modules/node-gyp/node_modules/which": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/which/-/which-5.0.0.tgz", - "integrity": "sha512-JEdGzHwwkrbWoGOlIHqQ5gtprKGOenpDHpxE9zVR1bWbOtYRyPPHMe9FaP6x61CmNaTThSkb0DAJte5jD+DmzQ==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/which/-/which-6.0.1.tgz", + "integrity": "sha512-oGLe46MIrCRqX7ytPUf66EAYvdeMIZYn3WaocqqKZAxrBpkqHfL/qvTyJ/bTk5+AqHCjXmrv3CEWgy368zhRUg==", "dev": true, "license": "ISC", "dependencies": { - "isexe": "^3.1.1" + "isexe": "^4.0.0" }, "bin": { "node-which": "bin/which.js" }, "engines": { - "node": "^18.17.0 || >=20.5.0" + "node": "^20.17.0 || >=22.9.0" } }, - "node_modules/node-gyp/node_modules/yallist": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-5.0.0.tgz", - "integrity": "sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==", + "node_modules/node-releases": { + "version": "2.0.57", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.57.tgz", + "integrity": "sha512-kQK9LGGFiHtrWiNhZtA7Qbw17AQz+dmsEKODRIVTXA9+e5MS/2gZEBhYJt13GrAz5/IOZKddH/0Z3TP/Zgo+yw==", "dev": true, - "license": "BlueOak-1.0.0", + "license": "MIT", "engines": { "node": ">=18" } }, - "node_modules/node-releases": { - "version": "2.0.19", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", - "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", - "dev": true, - "license": "MIT" - }, "node_modules/nopt": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-8.1.0.tgz", - "integrity": "sha512-ieGu42u/Qsa4TFktmaKEwM6MQH0pOWnaB3htzh0JRtx84+Mebc0cbZYN5bC+6WTZ4+77xrL9Pn5m7CV6VIkV7A==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-9.0.0.tgz", + "integrity": "sha512-Zhq3a+yFKrYwSBluL4H9XP3m3y5uvQkB/09CwDruCiRmR/UJYnn9W4R48ry0uGC70aeTPKLynBtscP9efFFcPw==", "dev": true, "license": "ISC", "dependencies": { - "abbrev": "^3.0.0" + "abbrev": "^4.0.0" }, "bin": { "nopt": "bin/nopt.js" }, "engines": { - "node": "^18.17.0 || >=20.5.0" + "node": "^20.17.0 || >=22.9.0" } }, "node_modules/normalize-path": { @@ -12528,104 +15352,125 @@ } }, "node_modules/npm-bundled": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-4.0.0.tgz", - "integrity": "sha512-IxaQZDMsqfQ2Lz37VvyyEtKLe8FsRZuysmedy/N06TU1RyVppYKXrO4xIhR0F+7ubIBox6Q7nir6fQI3ej39iA==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-5.0.0.tgz", + "integrity": "sha512-JLSpbzh6UUXIEoqPsYBvVNVmyrjVZ1fzEFbqxKkTJQkWBO3xFzFT+KDnSKQWwOQNbuWRwt5LSD6HOTLGIWzfrw==", "dev": true, "license": "ISC", "dependencies": { - "npm-normalize-package-bin": "^4.0.0" + "npm-normalize-package-bin": "^5.0.0" }, "engines": { - "node": "^18.17.0 || >=20.5.0" + "node": "^20.17.0 || >=22.9.0" } }, "node_modules/npm-install-checks": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-7.1.1.tgz", - "integrity": "sha512-u6DCwbow5ynAX5BdiHQ9qvexme4U3qHW3MWe5NqH+NeBm0LbiH6zvGjNNew1fY+AZZUtVHbOPF3j7mJxbUzpXg==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-8.0.0.tgz", + "integrity": "sha512-ScAUdMpyzkbpxoNekQ3tNRdFI8SJ86wgKZSQZdUxT+bj0wVFpsEMWnkXP0twVe1gJyNF5apBWDJhhIbgrIViRA==", "dev": true, "license": "BSD-2-Clause", "dependencies": { "semver": "^7.1.1" }, "engines": { - "node": "^18.17.0 || >=20.5.0" + "node": "^20.17.0 || >=22.9.0" } }, "node_modules/npm-normalize-package-bin": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-4.0.0.tgz", - "integrity": "sha512-TZKxPvItzai9kN9H/TkmCtx/ZN/hvr3vUycjlfmH0ootY9yFBzNOpiXAdIn1Iteqsvk4lQn6B5PTrt+n6h8k/w==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-5.0.0.tgz", + "integrity": "sha512-CJi3OS4JLsNMmr2u07OJlhcrPxCeOeP/4xq67aWNai6TNWWbTrlNDgl8NcFKVlcBKp18GPj+EzbNIgrBfZhsag==", "dev": true, "license": "ISC", "engines": { - "node": "^18.17.0 || >=20.5.0" + "node": "^20.17.0 || >=22.9.0" } }, "node_modules/npm-package-arg": { - "version": "12.0.1", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-12.0.1.tgz", - "integrity": "sha512-aDxjFfPV3Liw0WOBWlyZLMBqtbgbg03rmGvHDJa2Ttv7tIz+1oB5qWec4psCDFZcZi9b5XdGkPdQiJxOPzvQRQ==", + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-13.0.0.tgz", + "integrity": "sha512-+t2etZAGcB7TbbLHfDwooV9ppB2LhhcT6A+L9cahsf9mEUAoQ6CktLEVvEnpD0N5CkX7zJqnPGaFtoQDy9EkHQ==", "dev": true, "license": "ISC", "dependencies": { - "hosted-git-info": "^8.0.0", + "hosted-git-info": "^9.0.0", "proc-log": "^5.0.0", "semver": "^7.3.5", "validate-npm-package-name": "^6.0.0" }, "engines": { - "node": "^18.17.0 || >=20.5.0" + "node": "^20.17.0 || >=22.9.0" } }, "node_modules/npm-packlist": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-9.0.0.tgz", - "integrity": "sha512-8qSayfmHJQTx3nJWYbbUmflpyarbLMBc6LCAjYsiGtXxDB68HaZpb8re6zeaLGxZzDuMdhsg70jryJe+RrItVQ==", + "version": "10.0.4", + "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-10.0.4.tgz", + "integrity": "sha512-uMW73iajD8hiH4ZBxEV3HC+eTnppIqwakjOYuvgddnalIw2lJguKviK1pcUJDlIWm1wSJkchpDZDSVVsZEYRng==", "dev": true, "license": "ISC", "dependencies": { - "ignore-walk": "^7.0.0" + "ignore-walk": "^8.0.0", + "proc-log": "^6.0.0" }, "engines": { - "node": "^18.17.0 || >=20.5.0" + "node": "^20.17.0 || >=22.9.0" + } + }, + "node_modules/npm-packlist/node_modules/proc-log": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-6.1.0.tgz", + "integrity": "sha512-iG+GYldRf2BQ0UDUAd6JQ/RwzaQy6mXmsk/IzlYyal4A4SNFw54MeH4/tLkF4I5WoWG9SQwuqWzS99jaFQHBuQ==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^20.17.0 || >=22.9.0" } }, "node_modules/npm-pick-manifest": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-10.0.0.tgz", - "integrity": "sha512-r4fFa4FqYY8xaM7fHecQ9Z2nE9hgNfJR+EmoKv0+chvzWkBcORX3r0FpTByP+CbOVJDladMXnPQGVN8PBLGuTQ==", + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-11.0.3.tgz", + "integrity": "sha512-buzyCfeoGY/PxKqmBqn1IUJrZnUi1VVJTdSSRPGI60tJdUhUoSQFhs0zycJokDdOznQentgrpf8LayEHyyYlqQ==", "dev": true, "license": "ISC", "dependencies": { - "npm-install-checks": "^7.1.0", - "npm-normalize-package-bin": "^4.0.0", - "npm-package-arg": "^12.0.0", + "npm-install-checks": "^8.0.0", + "npm-normalize-package-bin": "^5.0.0", + "npm-package-arg": "^13.0.0", "semver": "^7.3.5" }, "engines": { - "node": "^18.17.0 || >=20.5.0" + "node": "^20.17.0 || >=22.9.0" } }, "node_modules/npm-registry-fetch": { - "version": "18.0.2", - "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-18.0.2.tgz", - "integrity": "sha512-LeVMZBBVy+oQb5R6FDV9OlJCcWDU+al10oKpe+nsvcHnG24Z3uM3SvJYKfGJlfGjVU8v9liejCrUR/M5HO5NEQ==", + "version": "19.1.1", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-19.1.1.tgz", + "integrity": "sha512-TakBap6OM1w0H73VZVDf44iFXsOS3h+L4wVMXmbWOQroZgFhMch0juN6XSzBNlD965yIKvWg2dfu7NSiaYLxtw==", "dev": true, "license": "ISC", "dependencies": { - "@npmcli/redact": "^3.0.0", + "@npmcli/redact": "^4.0.0", "jsonparse": "^1.3.1", - "make-fetch-happen": "^14.0.0", + "make-fetch-happen": "^15.0.0", "minipass": "^7.0.2", - "minipass-fetch": "^4.0.0", + "minipass-fetch": "^5.0.0", "minizlib": "^3.0.1", - "npm-package-arg": "^12.0.0", - "proc-log": "^5.0.0" + "npm-package-arg": "^13.0.0", + "proc-log": "^6.0.0" }, "engines": { - "node": "^18.17.0 || >=20.5.0" + "node": "^20.17.0 || >=22.9.0" + } + }, + "node_modules/npm-registry-fetch/node_modules/proc-log": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-6.1.0.tgz", + "integrity": "sha512-iG+GYldRf2BQ0UDUAd6JQ/RwzaQy6mXmsk/IzlYyal4A4SNFw54MeH4/tLkF4I5WoWG9SQwuqWzS99jaFQHBuQ==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^20.17.0 || >=22.9.0" } }, "node_modules/npm-run-all": { @@ -12731,10 +15576,14 @@ } }, "node_modules/object-inspect": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", - "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -12786,9 +15635,9 @@ } }, "node_modules/on-headers": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", - "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.1.0.tgz", + "integrity": "sha512-737ZY3yNnXy37FHkQxPzt4UZ2UWPWiCZWLvFZ4fu5cueciegX0zGPnrlY6bwRg4FdQOe9YU8MkmJwGhoMybl8A==", "dev": true, "license": "MIT", "engines": { @@ -12809,6 +15658,7 @@ "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", "dev": true, + "peer": true, "dependencies": { "mimic-fn": "^2.1.0" }, @@ -12820,16 +15670,16 @@ } }, "node_modules/open": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/open/-/open-10.1.0.tgz", - "integrity": "sha512-mnkeQ1qP5Ue2wd+aivTD3NHd/lZ96Lu0jgf0pwktLPtx6cTZiH7tyeGRRHs0zX0rbrahXPnXlUnbeXyaBBuIaw==", + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/open/-/open-10.2.0.tgz", + "integrity": "sha512-YgBpdJHPyQ2UE5x+hlSXcnejzAvD0b22U2OuAP+8OnlJT+PjWPxtgmGqKKc+RgTM63U9gN0YzrYc71R2WT/hTA==", "dev": true, "license": "MIT", "dependencies": { "default-browser": "^5.2.1", "define-lazy-prop": "^3.0.0", "is-inside-container": "^1.0.0", - "is-wsl": "^3.1.0" + "wsl-utils": "^0.1.0" }, "engines": { "node": ">=18" @@ -12843,6 +15693,7 @@ "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", "dev": true, + "peer": true, "dependencies": { "bl": "^4.1.0", "chalk": "^4.1.0", @@ -12866,6 +15717,7 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "peer": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -12881,6 +15733,7 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "peer": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -12897,6 +15750,7 @@ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, + "peer": true, "dependencies": { "color-name": "~1.1.4" }, @@ -12908,13 +15762,15 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true + "dev": true, + "peer": true }, "node_modules/ora/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, + "peer": true, "engines": { "node": ">=8" } @@ -12924,6 +15780,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, + "peer": true, "dependencies": { "has-flag": "^4.0.0" }, @@ -12932,23 +15789,13 @@ } }, "node_modules/ordered-binary": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/ordered-binary/-/ordered-binary-1.5.3.tgz", - "integrity": "sha512-oGFr3T+pYdTGJ+YFEILMpS3es+GiIbs9h/XQrclBXUtd44ey7XwfsMzM31f64I1SQOawDoDr/D823kNCADI8TA==", + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/ordered-binary/-/ordered-binary-1.6.2.tgz", + "integrity": "sha512-BY+qgDArmYpvvmij141xbkB4Cw8RFLBQM5Zj4MODFb1SyXBRE/xO4Xj/QWbR7aUEBxbkjuNdsFVCL2TmbYrlNg==", "dev": true, "license": "MIT", "optional": true }, - "node_modules/os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/p-limit": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", @@ -12977,9 +15824,9 @@ } }, "node_modules/p-map": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-7.0.3.tgz", - "integrity": "sha512-VkndIv2fIB99swvQoA65bm+fsmt6UNdGeIB0oxBs+WhAhdh08QA04JXpI7rbB9r08/nkbysKoya9rtDERYOYMA==", + "version": "7.0.8", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-7.0.8.tgz", + "integrity": "sha512-MitaVsCuCFIvOLLPIU7NnfrZvS9H9h7kwMUkDo+T2pEISaJD48IV9S8iIdXB7PsvvdxyYcsSTTrr90XKsbulNw==", "dev": true, "license": "MIT", "engines": { @@ -13007,16 +15854,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/p-retry/node_modules/retry": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", - "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, "node_modules/p-try": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", @@ -13026,43 +15863,46 @@ "node": ">=6" } }, - "node_modules/package-json-from-dist": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", - "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", - "dev": true, - "license": "BlueOak-1.0.0" - }, "node_modules/pacote": { - "version": "20.0.0", - "resolved": "https://registry.npmjs.org/pacote/-/pacote-20.0.0.tgz", - "integrity": "sha512-pRjC5UFwZCgx9kUFDVM9YEahv4guZ1nSLqwmWiLUnDbGsjs+U5w7z6Uc8HNR1a6x8qnu5y9xtGE6D1uAuYz+0A==", + "version": "21.5.1", + "resolved": "https://registry.npmjs.org/pacote/-/pacote-21.5.1.tgz", + "integrity": "sha512-KvcJ9iy3crysCsgqc4+PknH/w6jkrp8JN36mpZBPwNaDRwTfMZD37YzRazNstiZUOhuF5pno9f78n9mEJBavwg==", "dev": true, "license": "ISC", "dependencies": { - "@npmcli/git": "^6.0.0", - "@npmcli/installed-package-contents": "^3.0.0", - "@npmcli/package-json": "^6.0.0", - "@npmcli/promise-spawn": "^8.0.0", - "@npmcli/run-script": "^9.0.0", - "cacache": "^19.0.0", + "@gar/promise-retry": "^1.0.0", + "@npmcli/git": "^7.0.0", + "@npmcli/installed-package-contents": "^4.0.0", + "@npmcli/package-json": "^7.0.0", + "@npmcli/promise-spawn": "^9.0.0", + "@npmcli/run-script": "^10.0.0", + "cacache": "^20.0.0", "fs-minipass": "^3.0.0", "minipass": "^7.0.2", - "npm-package-arg": "^12.0.0", - "npm-packlist": "^9.0.0", - "npm-pick-manifest": "^10.0.0", - "npm-registry-fetch": "^18.0.0", - "proc-log": "^5.0.0", - "promise-retry": "^2.0.1", - "sigstore": "^3.0.0", - "ssri": "^12.0.0", - "tar": "^6.1.11" + "npm-package-arg": "^13.0.0", + "npm-packlist": "^10.0.1", + "npm-pick-manifest": "^11.0.1", + "npm-registry-fetch": "^19.0.0", + "proc-log": "^6.0.0", + "sigstore": "^4.0.0", + "ssri": "^13.0.0", + "tar": "^7.4.3" }, "bin": { "pacote": "bin/index.js" }, "engines": { - "node": "^18.17.0 || >=20.5.0" + "node": "^20.17.0 || >=22.9.0" + } + }, + "node_modules/pacote/node_modules/proc-log": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-6.1.0.tgz", + "integrity": "sha512-iG+GYldRf2BQ0UDUAd6JQ/RwzaQy6mXmsk/IzlYyal4A4SNFw54MeH4/tLkF4I5WoWG9SQwuqWzS99jaFQHBuQ==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^20.17.0 || >=22.9.0" } }, "node_modules/parent-module": { @@ -13106,6 +15946,7 @@ "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.10" } @@ -13114,7 +15955,7 @@ "version": "7.1.2", "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", - "devOptional": true, + "optional": true, "dependencies": { "entities": "^4.4.0" }, @@ -13123,28 +15964,93 @@ } }, "node_modules/parse5-html-rewriting-stream": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/parse5-html-rewriting-stream/-/parse5-html-rewriting-stream-7.0.0.tgz", - "integrity": "sha512-mazCyGWkmCRWDI15Zp+UiCqMp/0dgEmkZRvhlsqqKYr4SsVm/TvnSpD9fCvqCA2zoWJcfRym846ejWBBHRiYEg==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/parse5-html-rewriting-stream/-/parse5-html-rewriting-stream-8.0.0.tgz", + "integrity": "sha512-wzh11mj8KKkno1pZEu+l2EVeWsuKDfR5KNWZOTsslfUX8lPDZx77m9T0kIoAVkFtD1nx6YF8oh4BnPHvxMtNMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "entities": "^6.0.0", + "parse5": "^8.0.0", + "parse5-sax-parser": "^8.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parse5-html-rewriting-stream/node_modules/entities": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz", + "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/parse5-html-rewriting-stream/node_modules/parse5": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-8.0.1.tgz", + "integrity": "sha512-z1e/HMG90obSGeidlli3hj7cbocou0/wa5HacvI3ASx34PecNjNQeaHNo5WIZpWofN9kgkqV1q5YvXe3F0FoPw==", "dev": true, "license": "MIT", "dependencies": { - "entities": "^4.3.0", - "parse5": "^7.0.0", - "parse5-sax-parser": "^7.0.0" + "entities": "^8.0.0" }, "funding": { "url": "https://github.com/inikulin/parse5?sponsor=1" } }, + "node_modules/parse5-html-rewriting-stream/node_modules/parse5/node_modules/entities": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-8.1.0.tgz", + "integrity": "sha512-kxL7msIffSuh9aaFAMD7rxAIuTRMAHMeBtgHW2yUdWw732ZNh4MehkF2gdjvtdmikkaIP9bFDDJOPlsvm7avrA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=20.19.0" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, "node_modules/parse5-sax-parser": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/parse5-sax-parser/-/parse5-sax-parser-7.0.0.tgz", - "integrity": "sha512-5A+v2SNsq8T6/mG3ahcz8ZtQ0OUFTatxPbeidoMB7tkJSGDY3tdfl4MHovtLQHkEn5CGxijNWRQHhRQ6IRpXKg==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/parse5-sax-parser/-/parse5-sax-parser-8.0.0.tgz", + "integrity": "sha512-/dQ8UzHZwnrzs3EvDj6IkKrD/jIZyTlB+8XrHJvcjNgRdmWruNdN9i9RK/JtxakmlUdPwKubKPTCqvbTgzGhrw==", + "dev": true, + "license": "MIT", + "dependencies": { + "parse5": "^8.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parse5-sax-parser/node_modules/entities": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-8.1.0.tgz", + "integrity": "sha512-kxL7msIffSuh9aaFAMD7rxAIuTRMAHMeBtgHW2yUdWw732ZNh4MehkF2gdjvtdmikkaIP9bFDDJOPlsvm7avrA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=20.19.0" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/parse5-sax-parser/node_modules/parse5": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-8.0.1.tgz", + "integrity": "sha512-z1e/HMG90obSGeidlli3hj7cbocou0/wa5HacvI3ASx34PecNjNQeaHNo5WIZpWofN9kgkqV1q5YvXe3F0FoPw==", "dev": true, "license": "MIT", "dependencies": { - "parse5": "^7.0.0" + "entities": "^8.0.0" }, "funding": { "url": "https://github.com/inikulin/parse5?sponsor=1" @@ -13194,47 +16100,41 @@ "dev": true }, "node_modules/path-scurry": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", - "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.2.tgz", + "integrity": "sha512-3O/iVVsJAPsOnpwWIeD+d6z/7PmqApyQePUtCndjatj/9I5LylHvt5qluFaBT3I5h3r1ejfR056c+FCv+NnNXg==", "dev": true, "license": "BlueOak-1.0.0", "dependencies": { - "lru-cache": "^10.2.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + "lru-cache": "^11.0.0", + "minipass": "^7.1.2" }, "engines": { - "node": ">=16 || 14 >=14.18" + "node": "18 || 20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/path-scurry/node_modules/lru-cache": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "version": "11.5.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.5.3.tgz", + "integrity": "sha512-U4N8FgzmWxc8k1VH8Kr6lQg18U7Fjvby6wXHVRX/ZZ7IwWbRMgrRbP0Wrb5q5NVinryp4SQampHKdvtecItxUg==", "dev": true, - "license": "ISC" + "license": "BlueOak-1.0.0", + "engines": { + "node": "20 || >=22" + } }, "node_modules/path-to-regexp": { - "version": "0.1.12", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.12.tgz", - "integrity": "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/path-type": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-5.0.0.tgz", - "integrity": "sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==", + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-8.4.2.tgz", + "integrity": "sha512-qRcuIdP69NPm4qbACK+aDogI5CBDMi1jKe0ry5rSQJz8JVLsC7jV8XpiJjGRLLol3N+R5ihGYcrPLTno6pAdBA==", "dev": true, "license": "MIT", - "engines": { - "node": ">=12" - }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "type": "opencollective", + "url": "https://opencollective.com/express" } }, "node_modules/picocolors": { @@ -13245,9 +16145,9 @@ "license": "ISC" }, "node_modules/picomatch": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", - "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", + "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", "dev": true, "license": "MIT", "engines": { @@ -13269,16 +16169,6 @@ "node": ">=0.10" } }, - "node_modules/pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true, - "optional": true, - "engines": { - "node": ">=6" - } - }, "node_modules/pinkie": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", @@ -13301,104 +16191,63 @@ } }, "node_modules/piscina": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/piscina/-/piscina-4.8.0.tgz", - "integrity": "sha512-EZJb+ZxDrQf3dihsUL7p42pjNyrNIFJCrRHPMgxu/svsj+P3xS3fuEWp7k2+rfsavfl1N0G29b1HGs7J0m8rZA==", - "dev": true, - "license": "MIT", - "optionalDependencies": { - "@napi-rs/nice": "^1.0.1" - } - }, - "node_modules/pkg-dir": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-7.0.0.tgz", - "integrity": "sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==", - "dev": true, - "license": "MIT", - "dependencies": { - "find-up": "^6.3.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pkg-dir/node_modules/find-up": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz", - "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/piscina/-/piscina-5.2.0.tgz", + "integrity": "sha512-DszUCKeVN/5G5QKo6jAVHL8fmKnkJvQ0ACiVgY7YGCq3TUB2oznAOayvZPIAdEThvhczkXR+qm3IHsNXpFCYfA==", "dev": true, "license": "MIT", - "dependencies": { - "locate-path": "^7.1.0", - "path-exists": "^5.0.0" - }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=20.x" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "optionalDependencies": { + "@napi-rs/nice": "^1.0.4" } }, - "node_modules/pkg-dir/node_modules/locate-path": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", - "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", + "node_modules/pkce-challenge": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/pkce-challenge/-/pkce-challenge-5.0.1.tgz", + "integrity": "sha512-wQ0b/W4Fr01qtpHlqSqspcj3EhBvimsdh0KlHhH8HRZnMsEa0ea2fTULOXOS9ccQr3om+GcGRk4e+isrZWV8qQ==", "dev": true, "license": "MIT", - "dependencies": { - "p-locate": "^6.0.0" - }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=16.20.0" } }, - "node_modules/pkg-dir/node_modules/p-limit": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", - "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", + "node_modules/pkg-dir": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-8.0.0.tgz", + "integrity": "sha512-4peoBq4Wks0riS0z8741NVv+/8IiTvqnZAr8QGgtdifrtpdXbNw/FxRS1l6NFqm4EMzuS0EDqNNx4XGaz8cuyQ==", "dev": true, "license": "MIT", "dependencies": { - "yocto-queue": "^1.0.0" + "find-up-simple": "^1.0.0" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/pkg-dir/node_modules/p-locate": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", - "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", + "node_modules/pkijs": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/pkijs/-/pkijs-3.4.1.tgz", + "integrity": "sha512-Oo/NZcSWccq8KyoG7gLE9fnltgHns+pNCjCAp/WmjsUySi+sX7y4z4Xqu4fVb42CDHzRPl33fjzT15V1wvcyhA==", "dev": true, - "license": "MIT", + "license": "BSD-3-Clause", + "workspaces": [ + "website" + ], "dependencies": { - "p-limit": "^4.0.0" + "@noble/hashes": "1.8.0", + "asn1js": "^3.0.6", + "bytestreamjs": "^2.0.1", + "pvtsutils": "^1.3.6", + "pvutils": "^1.1.3", + "tslib": "^2.8.1" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pkg-dir/node_modules/path-exists": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", - "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=16.0.0" } }, "node_modules/possible-typed-array-names": { @@ -13411,9 +16260,9 @@ } }, "node_modules/postcss": { - "version": "8.4.49", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.49.tgz", - "integrity": "sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==", + "version": "8.5.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.23.tgz", + "integrity": "sha512-g50586zr4bZmwFiTlflMu8E0bDTb5I5gertgwAKmsdUlTQIhZtunzUlD1WSzwcVWPoAVpsrA6vlfCD7oXvRwgg==", "dev": true, "funding": [ { @@ -13431,7 +16280,7 @@ ], "license": "MIT", "dependencies": { - "nanoid": "^3.3.7", + "nanoid": "^3.3.16", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" }, @@ -13551,16 +16400,69 @@ "util-deprecate": "^1.0.2" }, "engines": { - "node": ">=4" + "node": ">=4" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/probe-image-size": { + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/probe-image-size/-/probe-image-size-7.4.0.tgz", + "integrity": "sha512-cdEprVtZxV+awMde9X+4jILBFYh4CARxVrQaMl4wY4YcPWbul9jntXrIW95NInBDyJwcVUP3U0T6yukN8rMBaQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/puzrin" + }, + { + "type": "github", + "url": "https://github.com/sponsors/nodeca" + } + ], + "license": "MIT", + "optional": true, + "dependencies": { + "lodash.merge": "^4.6.2", + "needle": "^2.5.2", + "stream-parser": "~0.3.1" + } + }, + "node_modules/probe-image-size/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/probe-image-size/node_modules/needle": { + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/needle/-/needle-2.9.1.tgz", + "integrity": "sha512-6R9fqJ5Zcmf+uYaFgdIHmLwNldn5HbK8L5ybn7Uz+ylX/rnOsSp1AHcvQSrCaFN+qNM1wpymHqD7mVasEOlHGQ==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "debug": "^3.2.6", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" + }, + "bin": { + "needle": "bin/needle" + }, + "engines": { + "node": ">= 4.4.x" } }, - "node_modules/postcss-value-parser": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", - "dev": true, - "license": "MIT" - }, "node_modules/proc-log": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-5.0.0.tgz", @@ -13578,31 +16480,10 @@ "dev": true, "license": "MIT" }, - "node_modules/promise-inflight": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==", - "dev": true, - "license": "ISC" - }, - "node_modules/promise-retry": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", - "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", - "dev": true, - "license": "MIT", - "dependencies": { - "err-code": "^2.0.2", - "retry": "^0.12.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/proxy-addr": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.8.tgz", + "integrity": "sha512-5nnx0yGyVUcY6t9RnWcARWtwT9F1D8O9rt08htPvnd49W1IgZtmLkhu9WfMzQj1cFxjHIO6connUNVW5k7AVyQ==", "dev": true, "license": "MIT", "dependencies": { @@ -13611,16 +16492,10 @@ }, "engines": { "node": ">= 0.10" - } - }, - "node_modules/proxy-addr/node_modules/ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" } }, "node_modules/prr": { @@ -13628,6 +16503,7 @@ "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", "dev": true, + "license": "MIT", "optional": true }, "node_modules/punycode": { @@ -13635,10 +16511,31 @@ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", "dev": true, + "peer": true, "engines": { "node": ">=6" } }, + "node_modules/pvtsutils": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/pvtsutils/-/pvtsutils-1.3.6.tgz", + "integrity": "sha512-PLgQXQ6H2FWCaeRak8vvk1GW462lMxB5s3Jm673N82zI4vqtVUPuZdffdZbPDFRoU8kAhItWFtPCWiPpp4/EDg==", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^2.8.1" + } + }, + "node_modules/pvutils": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pvutils/-/pvutils-1.2.0.tgz", + "integrity": "sha512-BbubeCEyTuQjVMakvJQ/Sxbc93F2pwmbsxONT/ZRrwU7Ua38d8unYTwXpTVLAKJ4BDuH9IGztCjQcd/N/39Dvg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=16.0.0" + } + }, "node_modules/qjobs": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/qjobs/-/qjobs-1.2.0.tgz", @@ -13649,13 +16546,14 @@ } }, "node_modules/qs": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", - "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", + "version": "6.16.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.16.0.tgz", + "integrity": "sha512-h6fhOIaRrID2CbEY2fqs+7t+UXZo+MLAnU5gRIq85uFtdiUPCdsApMlHhXogKVM4HM2DVbIjGNTTYH2OcmP1vA==", "dev": true, "license": "BSD-3-Clause", "dependencies": { - "side-channel": "^1.0.6" + "es-define-property": "^1.0.1", + "side-channel": "^1.1.1" }, "engines": { "node": ">=0.6" @@ -13685,15 +16583,6 @@ ], "license": "MIT" }, - "node_modules/randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dev": true, - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, "node_modules/range-parser": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", @@ -13704,15 +16593,16 @@ } }, "node_modules/raw-body": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", - "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.3.tgz", + "integrity": "sha512-s4VSOf6yN0rvbRZGxs8Om5CWj6seneMwK3oDb4lWDH0UPhWcxwOWw5+qk24bxq87szX1ydrwylIOp2uG1ojUpA==", "dev": true, + "license": "MIT", "dependencies": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" + "bytes": "~3.1.2", + "http-errors": "~2.0.1", + "iconv-lite": "~0.4.24", + "unpipe": "~1.0.0" }, "engines": { "node": ">= 0.8" @@ -13833,9 +16723,9 @@ "license": "MIT" }, "node_modules/regenerate-unicode-properties": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.0.tgz", - "integrity": "sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA==", + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.3.0.tgz", + "integrity": "sha512-9ns8odR8e9q3otKeHj3DE80jZYKg6zVeZKE+zQmRKXFoVUcuiTGeO6iusDhPRoIQQPVPRvH+SfBhrTud4eczuw==", "dev": true, "license": "MIT", "dependencies": { @@ -13845,23 +16735,6 @@ "node": ">=4" } }, - "node_modules/regenerator-runtime": { - "version": "0.14.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", - "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", - "dev": true, - "license": "MIT" - }, - "node_modules/regenerator-transform": { - "version": "0.15.2", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", - "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.8.4" - } - }, "node_modules/regex-parser": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.3.0.tgz", @@ -13887,18 +16760,18 @@ } }, "node_modules/regexpu-core": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.2.0.tgz", - "integrity": "sha512-H66BPQMrv+V16t8xtmq+UC0CBpiTBA60V8ibS1QVReIp8T1z8hwFxqcGzm9K6lgsN7sB5edVH8a+ze6Fqm4weA==", + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.5.2.tgz", + "integrity": "sha512-zkmVH92DlzjSFc4xKGZp/2BXIFrDIdBQBC8gUXKCsMgKYb1bkCkxfSuoW1werDjaTEMTbULkHtKFHe1L+Abnaw==", "dev": true, "license": "MIT", "dependencies": { "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.2.0", + "regenerate-unicode-properties": "^10.3.0", "regjsgen": "^0.8.0", - "regjsparser": "^0.12.0", + "regjsparser": "^0.13.0", "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.1.0" + "unicode-match-property-value-ecmascript": "^2.2.1" }, "engines": { "node": ">=4" @@ -13912,31 +16785,18 @@ "license": "MIT" }, "node_modules/regjsparser": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.12.0.tgz", - "integrity": "sha512-cnE+y8bz4NhMjISKbgeVJtqNbtf5QpjZP+Bslo+UqkIt9QPnX9q095eiRRASJG1/tz6dlNr6Z5NsBiWYokp6EQ==", + "version": "0.13.3", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.13.3.tgz", + "integrity": "sha512-ycwFAS14Jw4mppvmK4GR/J6u3WpWpjkEApehuHtLc/8VpPNpDMbQ4WjqwplXifGeyKOzHSFLmSPqzksDQE2Sfg==", "dev": true, "license": "BSD-2-Clause", "dependencies": { - "jsesc": "~3.0.2" + "jsesc": "~3.1.0" }, "bin": { "regjsparser": "bin/parser" } }, - "node_modules/regjsparser/node_modules/jsesc": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", - "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", - "dev": true, - "license": "MIT", - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", @@ -14026,6 +16886,7 @@ "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", "dev": true, + "peer": true, "dependencies": { "onetime": "^5.1.0", "signal-exit": "^3.0.2" @@ -14035,9 +16896,9 @@ } }, "node_modules/retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", + "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", "dev": true, "license": "MIT", "engines": { @@ -14045,9 +16906,9 @@ } }, "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", "dev": true, "license": "MIT", "engines": { @@ -14078,13 +16939,13 @@ } }, "node_modules/rollup": { - "version": "4.30.1", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.30.1.tgz", - "integrity": "sha512-mlJ4glW020fPuLi7DkM/lN97mYEZGWeqBnrljzN0gs7GLctqX3lNWxKQ7Gl712UAX+6fog/L3jh4gb7R6aVi3w==", + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.59.0.tgz", + "integrity": "sha512-2oMpl67a3zCH9H79LeMcbDhXW/UmWG/y2zuqnF2jQq5uq9TbM9TVyXvA4+t+ne2IIkBdrLpAaRQAvo7YI/Yyeg==", "dev": true, "license": "MIT", "dependencies": { - "@types/estree": "1.0.6" + "@types/estree": "1.0.8" }, "bin": { "rollup": "dist/bin/rollup" @@ -14094,32 +16955,163 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.30.1", - "@rollup/rollup-android-arm64": "4.30.1", - "@rollup/rollup-darwin-arm64": "4.30.1", - "@rollup/rollup-darwin-x64": "4.30.1", - "@rollup/rollup-freebsd-arm64": "4.30.1", - "@rollup/rollup-freebsd-x64": "4.30.1", - "@rollup/rollup-linux-arm-gnueabihf": "4.30.1", - "@rollup/rollup-linux-arm-musleabihf": "4.30.1", - "@rollup/rollup-linux-arm64-gnu": "4.30.1", - "@rollup/rollup-linux-arm64-musl": "4.30.1", - "@rollup/rollup-linux-loongarch64-gnu": "4.30.1", - "@rollup/rollup-linux-powerpc64le-gnu": "4.30.1", - "@rollup/rollup-linux-riscv64-gnu": "4.30.1", - "@rollup/rollup-linux-s390x-gnu": "4.30.1", - "@rollup/rollup-linux-x64-gnu": "4.30.1", - "@rollup/rollup-linux-x64-musl": "4.30.1", - "@rollup/rollup-win32-arm64-msvc": "4.30.1", - "@rollup/rollup-win32-ia32-msvc": "4.30.1", - "@rollup/rollup-win32-x64-msvc": "4.30.1", + "@rollup/rollup-android-arm-eabi": "4.59.0", + "@rollup/rollup-android-arm64": "4.59.0", + "@rollup/rollup-darwin-arm64": "4.59.0", + "@rollup/rollup-darwin-x64": "4.59.0", + "@rollup/rollup-freebsd-arm64": "4.59.0", + "@rollup/rollup-freebsd-x64": "4.59.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.59.0", + "@rollup/rollup-linux-arm-musleabihf": "4.59.0", + "@rollup/rollup-linux-arm64-gnu": "4.59.0", + "@rollup/rollup-linux-arm64-musl": "4.59.0", + "@rollup/rollup-linux-loong64-gnu": "4.59.0", + "@rollup/rollup-linux-loong64-musl": "4.59.0", + "@rollup/rollup-linux-ppc64-gnu": "4.59.0", + "@rollup/rollup-linux-ppc64-musl": "4.59.0", + "@rollup/rollup-linux-riscv64-gnu": "4.59.0", + "@rollup/rollup-linux-riscv64-musl": "4.59.0", + "@rollup/rollup-linux-s390x-gnu": "4.59.0", + "@rollup/rollup-linux-x64-gnu": "4.59.0", + "@rollup/rollup-linux-x64-musl": "4.59.0", + "@rollup/rollup-openbsd-x64": "4.59.0", + "@rollup/rollup-openharmony-arm64": "4.59.0", + "@rollup/rollup-win32-arm64-msvc": "4.59.0", + "@rollup/rollup-win32-ia32-msvc": "4.59.0", + "@rollup/rollup-win32-x64-gnu": "4.59.0", + "@rollup/rollup-win32-x64-msvc": "4.59.0", "fsevents": "~2.3.2" } }, + "node_modules/rollup-plugin-dts": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/rollup-plugin-dts/-/rollup-plugin-dts-6.5.1.tgz", + "integrity": "sha512-jODTXp3H7MK/Ur/ErtsrQ0G1GvaCmc3du+y5pNrdBMf6d7HlL2Nd/N6TkEr+f75CkUj01zEoEd7y2elH0eHi1Q==", + "dev": true, + "license": "LGPL-3.0-only", + "dependencies": { + "@jridgewell/remapping": "^2.3.5", + "@jridgewell/sourcemap-codec": "^1.5.5", + "convert-source-map": "^2.0.0", + "magic-string": "^0.30.21" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/Swatinem" + }, + "optionalDependencies": { + "@babel/code-frame": "^8.0.0" + }, + "peerDependencies": { + "@typescript/typescript6": "^6", + "rollup": "^3 || ^4", + "typescript": "^4.5 || ^5 || ^6 || ^7" + }, + "peerDependenciesMeta": { + "@typescript/typescript6": { + "optional": true + } + } + }, + "node_modules/rollup-plugin-dts/node_modules/@babel/code-frame": { + "version": "8.0.6", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-8.0.6.tgz", + "integrity": "sha512-uMHhvmDmwFiLuiozaoRYTZHqMFuu3fem/X9JY78lohAuLoh8LSGGC8JqUzo2cVuBsBxkjMZNk56CE7ock8Xxkw==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@babel/helper-validator-identifier": "^8.0.6", + "js-tokens": "^10.0.0" + }, + "engines": { + "node": "^22.18.0 || >=24.11.0" + } + }, + "node_modules/rollup-plugin-dts/node_modules/@babel/helper-validator-identifier": { + "version": "8.0.6", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-8.0.6.tgz", + "integrity": "sha512-HYx0YmuchRxRSpnjvcNffnPS8DCauKNmnumIuHG3jnQAVewRA7kfJGwF13ayEpSZs7s4R/oBH4eppuXcAQd5JQ==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": "^22.18.0 || >=24.11.0" + } + }, + "node_modules/rollup-plugin-dts/node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true, + "license": "MIT" + }, + "node_modules/rollup-plugin-dts/node_modules/js-tokens": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-10.0.0.tgz", + "integrity": "sha512-lM/UBzQmfJRo9ABXbPWemivdCW8V2G8FHaHdypQaIy523snUjog0W71ayWXTjiR+ixeMyVHN2XcpnTd/liPg/Q==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/rollup-plugin-dts/node_modules/magic-string": { + "version": "0.30.21", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", + "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.5" + } + }, + "node_modules/router": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/router/-/router-2.2.0.tgz", + "integrity": "sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.4.0", + "depd": "^2.0.0", + "is-promise": "^4.0.0", + "parseurl": "^1.3.3", + "path-to-regexp": "^8.0.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/router/node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/router/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, "node_modules/run-applescript": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-7.0.0.tgz", - "integrity": "sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-7.1.0.tgz", + "integrity": "sha512-DPe5pVFaAsinSaV6QjQ6gdiedWDcRCbUuiQfQa2wmWV7+xC9bGulGI8+TdRmoFkAPaBXk8CrAbnlY2ISniJ47Q==", "dev": true, "license": "MIT", "engines": { @@ -14229,9 +17221,9 @@ "dev": true }, "node_modules/sass": { - "version": "1.83.1", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.83.1.tgz", - "integrity": "sha512-EVJbDaEs4Rr3F0glJzFSOvtg2/oy2V/YrGFPqPY24UqcLDWcI9ZY5sN+qyO3c/QCZwzgfirvhXvINiJCE/OLcA==", + "version": "1.90.0", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.90.0.tgz", + "integrity": "sha512-9GUyuksjw70uNpb1MTYWsH9MQHOHY6kwfnkafC24+7aOMZn9+rVMBxRbLvw756mrBFbIsFg6Xw9IkR2Fnn3k+Q==", "dev": true, "license": "MIT", "dependencies": { @@ -14250,9 +17242,9 @@ } }, "node_modules/sass-loader": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-16.0.4.tgz", - "integrity": "sha512-LavLbgbBGUt3wCiYzhuLLu65+fWXaXLmq7YxivLhEqmiupCFZ5sKUAipK3do6V80YSU0jvSxNhEdT13IXNr3rg==", + "version": "16.0.5", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-16.0.5.tgz", + "integrity": "sha512-oL+CMBXrj6BZ/zOq4os+UECPL+bWqt6OAC6DWS8Ln8GZRcMDjlJ4JC3FBDuHJdYaFWIdKNIBYmtZtK2MaMkNIw==", "dev": true, "license": "MIT", "dependencies": { @@ -14307,9 +17299,9 @@ } }, "node_modules/sass/node_modules/readdirp": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.1.tgz", - "integrity": "sha512-h80JrZu/MHUZCyHu5ciuoI0+WxsCxzxJTILn6Fs8rxSnFPh+UVHYfeIxK1nVGugMqkfC4vJcBOYbkfkwYK0+gw==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", + "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", "dev": true, "license": "MIT", "engines": { @@ -14321,31 +17313,71 @@ } }, "node_modules/sax": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.3.0.tgz", - "integrity": "sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==", + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.6.1.tgz", + "integrity": "sha512-42tBVwLWnaQvW5zc4HbZrTuWccECCZfBi92FDuwtqxasH+JbPB3/FOKb1m222K42R4WxuxzzMsTswfzgtSu64Q==", "dev": true, - "optional": true + "license": "BlueOak-1.0.0", + "optional": true, + "engines": { + "node": ">=11.0.0" + } }, "node_modules/schema-utils": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", - "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.5.0.tgz", + "integrity": "sha512-zJlMCZ0cAR5p/Y4oVpRoqioDMJcGxaXRrQ/4rP4WyR84vc5z/DolXdbvXeDpTwbtocDFr2rhPqHPErDCUtz2kA==", "dev": true, + "license": "MIT", "dependencies": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.9.0", - "ajv-formats": "^2.1.1", + "@types/json-schema": "^7.0.15", + "ajv": "^8.20.0", + "ajv-formats": "^3.0.1", "ajv-keywords": "^5.1.0" }, "engines": { - "node": ">= 12.13.0" + "node": ">= 10.13.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/webpack" } }, + "node_modules/schema-utils/node_modules/ajv": { + "version": "8.20.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.20.0.tgz", + "integrity": "sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/schema-utils/node_modules/ajv-formats": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-3.0.1.tgz", + "integrity": "sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, "node_modules/select-hose": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", @@ -14354,17 +17386,17 @@ "license": "MIT" }, "node_modules/selfsigned": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.4.1.tgz", - "integrity": "sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-5.5.0.tgz", + "integrity": "sha512-ftnu3TW4+3eBfLRFnDEkzGxSF/10BJBkaLJuBHZX0kiPS7bRdlpZGu6YGt4KngMkdTwJE6MbjavFpqHvqVt+Ew==", "dev": true, "license": "MIT", "dependencies": { - "@types/node-forge": "^1.3.0", - "node-forge": "^1" + "@peculiar/x509": "^1.14.2", + "pkijs": "^3.3.3" }, "engines": { - "node": ">=10" + "node": ">=18" } }, "node_modules/semver": { @@ -14381,58 +17413,85 @@ } }, "node_modules/send": { - "version": "0.19.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", - "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/send/-/send-1.2.1.tgz", + "integrity": "sha512-1gnZf7DFcoIcajTjTwjwuDjzuz4PPcY2StKPlsGAQ1+YH20IRVrBaXSWmdjowTJ6u8Rc01PoYOGHXfP1mYcZNQ==", "dev": true, "license": "MIT", "dependencies": { - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "2.4.1", - "range-parser": "~1.2.1", - "statuses": "2.0.1" + "debug": "^4.4.3", + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "etag": "^1.8.1", + "fresh": "^2.0.0", + "http-errors": "^2.0.1", + "mime-types": "^3.0.2", + "ms": "^2.1.3", + "on-finished": "^2.4.1", + "range-parser": "^1.2.1", + "statuses": "^2.0.2" }, "engines": { - "node": ">= 0.8.0" + "node": ">= 18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" } }, "node_modules/send/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", "dev": true, "license": "MIT", "dependencies": { - "ms": "2.0.0" + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, - "node_modules/send/node_modules/debug/node_modules/ms": { + "node_modules/send/node_modules/encodeurl": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", "dev": true, - "license": "MIT" + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/send/node_modules/mime-db": { + "version": "1.54.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", + "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } }, - "node_modules/send/node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "node_modules/send/node_modules/mime-types": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.2.tgz", + "integrity": "sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==", "dev": true, "license": "MIT", - "bin": { - "mime": "cli.js" + "dependencies": { + "mime-db": "^1.54.0" }, "engines": { - "node": ">=4" + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" } }, "node_modules/send/node_modules/ms": { @@ -14443,9 +17502,9 @@ "license": "MIT" }, "node_modules/send/node_modules/statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz", + "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==", "dev": true, "license": "MIT", "engines": { @@ -14453,31 +17512,36 @@ } }, "node_modules/serialize-javascript": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", - "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-7.1.2.tgz", + "integrity": "sha512-GL2BWwVa6JydKO6l/ljVgjAZF4QJ3S7dWDWi53s5GZT8PJzD2fNxi67HANQGKAqPrwEpL5ba7gUBGi0Ls/sEoQ==", "dev": true, - "dependencies": { - "randombytes": "^2.1.0" + "license": "BSD-3-Clause", + "engines": { + "node": ">=20.0.0" } }, "node_modules/serve-index": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", - "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==", + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.2.tgz", + "integrity": "sha512-KDj11HScOaLmrPxl70KYNW1PksP4Nb/CLL2yvC+Qd2kHMPEEpfc4Re2e4FOay+bC/+XQl/7zAcWON3JVo5v3KQ==", "dev": true, "license": "MIT", "dependencies": { - "accepts": "~1.3.4", + "accepts": "~1.3.8", "batch": "0.6.1", "debug": "2.6.9", "escape-html": "~1.0.3", - "http-errors": "~1.6.2", - "mime-types": "~2.1.17", - "parseurl": "~1.3.2" + "http-errors": "~1.8.0", + "mime-types": "~2.1.35", + "parseurl": "~1.3.3" }, "engines": { "node": ">= 0.8.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" } }, "node_modules/serve-index/node_modules/debug": { @@ -14501,28 +17565,22 @@ } }, "node_modules/serve-index/node_modules/http-errors": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", - "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", + "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", "dev": true, "license": "MIT", "dependencies": { "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.0", - "statuses": ">= 1.4.0 < 2" + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.1" }, "engines": { "node": ">= 0.6" } }, - "node_modules/serve-index/node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", - "dev": true, - "license": "ISC" - }, "node_modules/serve-index/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -14530,27 +17588,24 @@ "dev": true, "license": "MIT" }, - "node_modules/serve-index/node_modules/setprototypeof": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", - "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", - "dev": true, - "license": "ISC" - }, "node_modules/serve-static": { - "version": "1.16.2", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz", - "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-2.2.1.tgz", + "integrity": "sha512-xRXBn0pPqQTVQiC8wyQrKs2MOlX24zQ0POGaj0kultvoOCstBQM5yvOhAVSUwOMjQtTvsPWoNCHfPGwaaQJhTw==", "dev": true, "license": "MIT", "dependencies": { - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.19.0" + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "parseurl": "^1.3.3", + "send": "^1.2.0" }, "engines": { - "node": ">= 0.8.0" + "node": ">= 18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" } }, "node_modules/serve-static/node_modules/encodeurl": { @@ -14638,24 +17693,30 @@ } }, "node_modules/shell-quote": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", - "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.12.0.tgz", + "integrity": "sha512-PcByqNyT/38F2kDNi006HAMRJaULuBzq/FOsw3qdZvX/GA9W/jamDaRskgHjubHiftXK5sIFxLNkvrXUwcof6Q==", "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/side-channel": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", - "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.1.tgz", + "integrity": "sha512-6x6dK6zJdpTzF4sQeNYxwtvBzf6Eg4GtlesS94HOvTudUeyK2WXAaIfmDgsyslYrRBeFIlsi54AYsFGUuhmvrQ==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4", - "object-inspect": "^1.13.1" + "object-inspect": "^1.13.4", + "side-channel-list": "^1.0.1", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -14664,41 +17725,85 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true + "node_modules/side-channel-list": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.1.tgz", + "integrity": "sha512-mjn/0bi/oUURjc5Xl7IaWi/OJJJumuoJFQJfDDyO46+hBWsfaVM65TBHq2eoZBhzl9EchxOijpkbRC8SVBQU0w==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "node_modules/sigstore": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/sigstore/-/sigstore-3.0.0.tgz", - "integrity": "sha512-PHMifhh3EN4loMcHCz6l3v/luzgT3za+9f8subGgeMNjbJjzH4Ij/YoX3Gvu+kaouJRIlVdTHHCREADYf+ZteA==", + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", "dev": true, - "license": "Apache-2.0", + "license": "MIT", "dependencies": { - "@sigstore/bundle": "^3.0.0", - "@sigstore/core": "^2.0.0", - "@sigstore/protobuf-specs": "^0.3.2", - "@sigstore/sign": "^3.0.0", - "@sigstore/tuf": "^3.0.0", - "@sigstore/verify": "^2.0.0" + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" }, "engines": { - "node": "^18.17.0 || >=20.5.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/slash": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz", - "integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==", + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", "dev": true, "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" + }, "engines": { - "node": ">=14.16" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true, + "peer": true + }, + "node_modules/sigstore": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/sigstore/-/sigstore-4.1.1.tgz", + "integrity": "sha512-endqECJkfhozrXMK5ngu/UAA0xVcVEFdnHJCElGaExypjW+HK5i6zu3NteLoaX/iFbRUbC3+DjttQs0GARr+5w==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@sigstore/bundle": "^4.0.0", + "@sigstore/core": "^3.2.1", + "@sigstore/protobuf-specs": "^0.5.0", + "@sigstore/sign": "^4.1.1", + "@sigstore/tuf": "^4.0.2", + "@sigstore/verify": "^3.1.1" + }, + "engines": { + "node": "^20.17.0 || >=22.9.0" } }, "node_modules/slice-ansi": { @@ -14719,9 +17824,9 @@ } }, "node_modules/slice-ansi/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", + "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", "dev": true, "license": "MIT", "engines": { @@ -14809,13 +17914,13 @@ } }, "node_modules/socks": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.3.tgz", - "integrity": "sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==", + "version": "2.8.10", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.10.tgz", + "integrity": "sha512-e0VyvkVTwVYViNovRkZ9aodhxVlyoMn7eJhVUPxZ+eK9P/7CBkxvvsBOHqFPEH416726W8tLXXXjKwqgTErrCQ==", "dev": true, "license": "MIT", "dependencies": { - "ip-address": "^9.0.5", + "ip-address": "^10.1.1", "smart-buffer": "^4.2.0" }, "engines": { @@ -14843,6 +17948,7 @@ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", "dev": true, + "peer": true, "engines": { "node": ">= 8" } @@ -14972,24 +18078,17 @@ "wbuf": "^1.7.3" } }, - "node_modules/sprintf-js": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", - "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", - "dev": true, - "license": "BSD-3-Clause" - }, "node_modules/ssri": { - "version": "12.0.0", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-12.0.0.tgz", - "integrity": "sha512-S7iGNosepx9RadX82oimUkvr0Ct7IjJbEbs4mJcTxst8um95J3sDYU1RBEOvdu6oL1Wek2ODI5i4MAw+dZ6cAQ==", + "version": "13.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-13.0.1.tgz", + "integrity": "sha512-QUiRf1+u9wPTL/76GTYlKttDEBWV1ga9ZXW8BG6kfdeyyM8LGPix9gROyg9V2+P0xNyF3X2Go526xKFdMZrHSQ==", "dev": true, "license": "ISC", "dependencies": { "minipass": "^7.0.3" }, "engines": { - "node": "^18.17.0 || >=20.5.0" + "node": "^20.17.0 || >=22.9.0" } }, "node_modules/statuses": { @@ -15001,6 +18100,49 @@ "node": ">= 0.6" } }, + "node_modules/stdin-discarder": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/stdin-discarder/-/stdin-discarder-0.2.2.tgz", + "integrity": "sha512-UhDfHmA92YAlNnCfhmq0VeNL5bDbiZGg7sZ2IvPsXubGkiNa9EC+tUTsjBRsYUAz87btI6/1wf4XoVvQ3uRnmQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/stream-parser": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/stream-parser/-/stream-parser-0.3.1.tgz", + "integrity": "sha512-bJ/HgKq41nlKvlhccD5kaCr/P+Hu0wPNKPJOH7en+YrJu/9EgqUF+88w5Jb6KNcjOFMhfX4B2asfeAtIGuHObQ==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "debug": "2" + } + }, + "node_modules/stream-parser/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/stream-parser/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true, + "license": "MIT", + "optional": true + }, "node_modules/streamroller": { "version": "3.1.5", "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-3.1.5.tgz", @@ -15038,22 +18180,6 @@ "node": ">=8" } }, - "node_modules/string-width-cjs": { - "name": "string-width", - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/string.prototype.padend": { "version": "3.1.6", "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.6.tgz", @@ -15133,20 +18259,6 @@ "node": ">=8" } }, - "node_modules/strip-ansi-cjs": { - "name": "strip-ansi", - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/strip-bom": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", @@ -15192,134 +18304,56 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/symbol-observable": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-4.0.0.tgz", - "integrity": "sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ==", - "dev": true, - "engines": { - "node": ">=0.10" - } - }, "node_modules/tapable": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", - "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/tar": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz", - "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==", - "dev": true, - "license": "ISC", - "dependencies": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^5.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/tar/node_modules/fs-minipass": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", - "dev": true, - "license": "ISC", - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/tar/node_modules/fs-minipass/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dev": true, - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/tar/node_modules/minipass": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", - "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=8" - } - }, - "node_modules/tar/node_modules/minizlib": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", - "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.3.tgz", + "integrity": "sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A==", "dev": true, "license": "MIT", - "dependencies": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" - }, "engines": { - "node": ">= 8" - } - }, - "node_modules/tar/node_modules/minizlib/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dev": true, - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" + "node": ">=6" }, - "engines": { - "node": ">=8" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" } }, - "node_modules/tar/node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "node_modules/tar": { + "version": "7.5.22", + "resolved": "https://registry.npmjs.org/tar/-/tar-7.5.22.tgz", + "integrity": "sha512-MFO/QzvtAOmJbkhOaCTvbGcFN9L9b+JunIsDwaKljSOdcLMea3NJ1k9Usz/rjdfSXTq4dfzfeS7W4p4YOAAHeA==", "dev": true, - "license": "MIT", - "bin": { - "mkdirp": "bin/cmd.js" + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/fs-minipass": "^4.0.0", + "chownr": "^3.0.0", + "minipass": "^7.1.2", + "minizlib": "^3.1.0", + "yallist": "^5.0.0" }, "engines": { - "node": ">=10" + "node": ">=18" } }, "node_modules/tar/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-5.0.0.tgz", + "integrity": "sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==", "dev": true, - "license": "ISC" + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=18" + } }, "node_modules/terser": { - "version": "5.37.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.37.0.tgz", - "integrity": "sha512-B8wRRkmre4ERucLM/uXx4MOV5cbnOlVAqUst+1+iLKPI0dOgFO28f84ptoQt9HEI537PMzfYa/d+GEPKTRXmYA==", + "version": "5.43.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.43.1.tgz", + "integrity": "sha512-+6erLbBm0+LROX2sPXlUYx/ux5PyE9K/a92Wrt6oA+WDAoFTdpHE5tCYCI5PNzq2y8df4rA+QgHLJuR4jNymsg==", "dev": true, "license": "BSD-2-Clause", "dependencies": { "@jridgewell/source-map": "^0.3.3", - "acorn": "^8.8.2", + "acorn": "^8.14.0", "commander": "^2.20.0", "source-map-support": "~0.5.20" }, @@ -15331,16 +18365,16 @@ } }, "node_modules/terser-webpack-plugin": { - "version": "5.3.10", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz", - "integrity": "sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.6.1.tgz", + "integrity": "sha512-201R5j+sJpK8nFWwKVyNfZot8FaJbLZDq5evriVzbV1wDtSXDjRUDRfJzHpAaxFDMEhsZL1QkeqM61wgsS3KaQ==", "dev": true, + "license": "MIT", "dependencies": { - "@jridgewell/trace-mapping": "^0.3.20", + "@jridgewell/trace-mapping": "^0.3.25", "jest-worker": "^27.4.5", - "schema-utils": "^3.1.1", - "serialize-javascript": "^6.0.1", - "terser": "^5.26.0" + "schema-utils": "^4.3.0", + "terser": "^5.31.1" }, "engines": { "node": ">= 10.13.0" @@ -15353,75 +18387,57 @@ "webpack": "^5.1.0" }, "peerDependenciesMeta": { + "@minify-html/node": { + "optional": true + }, "@swc/core": { "optional": true }, + "@swc/css": { + "optional": true + }, + "@swc/html": { + "optional": true + }, + "clean-css": { + "optional": true + }, + "cssnano": { + "optional": true + }, + "csso": { + "optional": true + }, "esbuild": { "optional": true }, + "html-minifier-terser": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "postcss": { + "optional": true + }, "uglify-js": { "optional": true } } }, - "node_modules/terser-webpack-plugin/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/terser-webpack-plugin/node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true, - "peerDependencies": { - "ajv": "^6.9.1" - } - }, - "node_modules/terser-webpack-plugin/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "node_modules/terser-webpack-plugin/node_modules/schema-utils": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", - "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, "node_modules/thingies": { - "version": "1.21.0", - "resolved": "https://registry.npmjs.org/thingies/-/thingies-1.21.0.tgz", - "integrity": "sha512-hsqsJsFMsV+aD4s3CWKk85ep/3I9XzYV/IXaSouJMYIoDlgyi11cBhsqYe9/geRfB0YIikBQg6raRaM+nIMP9g==", + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/thingies/-/thingies-2.6.1.tgz", + "integrity": "sha512-cV/CMGTK3M4MlnJ/0At6ismOw/A0EEniDNScajjz/Br3c1sqE72YD01rGpPTKwd27wAxI5Pr+6+0w8yofzFRYw==", "dev": true, - "license": "Unlicense", + "license": "MIT", "engines": { "node": ">=10.18" }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, "peerDependencies": { "tslib": "^2" } @@ -15433,17 +18449,21 @@ "dev": true, "license": "MIT" }, - "node_modules/tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "node_modules/tinyglobby": { + "version": "0.2.14", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.14.tgz", + "integrity": "sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==", "dev": true, "license": "MIT", "dependencies": { - "os-tmpdir": "~1.0.2" + "fdir": "^6.4.4", + "picomatch": "^4.0.2" }, "engines": { - "node": ">=0.6.0" + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" } }, "node_modules/to-regex-range": { @@ -15469,9 +18489,9 @@ } }, "node_modules/tree-dump": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/tree-dump/-/tree-dump-1.0.2.tgz", - "integrity": "sha512-dpev9ABuLWdEubk+cIaI9cHwRNNDjkBBLXTwI4UCUFdQ5xXKqNXoK4FEciw/vxf+NQ7Cb7sGUyeUtORvHIdRXQ==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/tree-dump/-/tree-dump-1.1.0.tgz", + "integrity": "sha512-rMuvhU4MCDbcbnleZTFezWsaZXRFemSqAM+7jPnzUl1fo9w3YEKOxAeui0fz3OI4EU4hf23iyA7uQRVko+UaBA==", "dev": true, "license": "Apache-2.0", "engines": { @@ -15512,25 +18532,45 @@ "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", "license": "0BSD" }, + "node_modules/tsyringe": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/tsyringe/-/tsyringe-4.10.0.tgz", + "integrity": "sha512-axr3IdNuVIxnaK5XGEUFTu3YmAQ6lllgrvqfEoR16g/HGnYY/6We4oWENtAnzK6/LpJ2ur9PAb80RBt7/U4ugw==", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^1.9.3" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/tsyringe/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true, + "license": "0BSD" + }, "node_modules/tuf-js": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/tuf-js/-/tuf-js-3.0.1.tgz", - "integrity": "sha512-+68OP1ZzSF84rTckf3FA95vJ1Zlx/uaXyiiKyPd1pA4rZNkpEvDAKmsu1xUSmbF/chCRYgZ6UZkDwC7PmzmAyA==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/tuf-js/-/tuf-js-4.1.0.tgz", + "integrity": "sha512-50QV99kCKH5P/Vs4E2Gzp7BopNV+KzTXqWeaxrfu5IQJBOULRsTIS9seSsOVT8ZnGXzCyx55nYWAi4qJzpZKEQ==", "dev": true, "license": "MIT", "dependencies": { - "@tufjs/models": "3.0.1", - "debug": "^4.3.6", - "make-fetch-happen": "^14.0.1" + "@tufjs/models": "4.1.0", + "debug": "^4.4.3", + "make-fetch-happen": "^15.0.1" }, "engines": { - "node": "^18.17.0 || >=20.5.0" + "node": "^20.17.0 || >=22.9.0" } }, "node_modules/tuf-js/node_modules/debug": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", - "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", "dev": true, "license": "MIT", "dependencies": { @@ -15552,19 +18592,6 @@ "dev": true, "license": "MIT" }, - "node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/type-is": { "version": "1.6.18", "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", @@ -15658,9 +18685,9 @@ "dev": true }, "node_modules/typescript": { - "version": "5.7.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.3.tgz", - "integrity": "sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==", + "version": "5.9.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", + "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", "dev": true, "license": "Apache-2.0", "bin": { @@ -15709,10 +18736,20 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/undici": { + "version": "6.29.0", + "resolved": "https://registry.npmjs.org/undici/-/undici-6.29.0.tgz", + "integrity": "sha512-R+RODBqp6i2pPflGdq+xIOUkl+RNfGgHwoinecKu/JCuf2uO06cOKoDbI2P7Dn6KcswdKwrczbU6IYJ6K8X+wg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18.17" + } + }, "node_modules/undici-types": { - "version": "6.19.8", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", - "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", + "version": "8.9.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-8.9.0.tgz", + "integrity": "sha512-KTDyRTYX8sWmKXAikPHHSyc63CRPETMctyjKFupcC6OBLXT3xsN0e9aF7m+mIXutFWpUXuedtowG7iLOzp0kQg==", "dev": true, "license": "MIT" }, @@ -15741,9 +18778,9 @@ } }, "node_modules/unicode-match-property-value-ecmascript": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.0.tgz", - "integrity": "sha512-4IehN3V/+kkr5YeSSDDQG8QLqO26XpL2XP3GQtqwlT/QYSECAwFztxVHjlbh0+gjJ3XmNLS0zDsbgs9jWKExLg==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.1.tgz", + "integrity": "sha512-JQ84qTuMg4nVkx8ga4A16a1epI9H6uTXAknqxkGF/aFfRLw1xC/Bp24HNLaZhHSkWd3+84t8iXnp1J0kYcZHhg==", "dev": true, "license": "MIT", "engines": { @@ -15751,54 +18788,15 @@ } }, "node_modules/unicode-property-aliases-ecmascript": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", - "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.2.0.tgz", + "integrity": "sha512-hpbDzxUY9BFwX+UeBnxv3Sh1q7HFxj48DTmXchNgRa46lO8uj3/1iEn3MiNUYTg1g9ctIqXCCERn8gYZhHC5lQ==", "dev": true, "license": "MIT", "engines": { "node": ">=4" } }, - "node_modules/unicorn-magic": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.1.0.tgz", - "integrity": "sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/unique-filename": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-4.0.0.tgz", - "integrity": "sha512-XSnEewXmQ+veP7xX2dS5Q4yZAvO40cBN2MWkJ7D/6sW4Dg6wYBNwM1Vrnz1FhH5AdeLIlUXRI9e28z1YZi71NQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "unique-slug": "^5.0.0" - }, - "engines": { - "node": "^18.17.0 || >=20.5.0" - } - }, - "node_modules/unique-slug": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-5.0.0.tgz", - "integrity": "sha512-9OdaqO5kwqR+1kVgHAhsp5vPNU0hnxRa26rBFNfNgM7M6pNtgzeBn3s/xbyCQL3dcjzOatcef6UUHpB/6MaETg==", - "dev": true, - "license": "ISC", - "dependencies": { - "imurmurhash": "^0.1.4" - }, - "engines": { - "node": "^18.17.0 || >=20.5.0" - } - }, "node_modules/universalify": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", @@ -15818,9 +18816,9 @@ } }, "node_modules/update-browserslist-db": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.2.tgz", - "integrity": "sha512-PPypAm5qvlD7XMZC3BujecnaOxwhrtoFR+Dqkk5Aa/6DssiH0ibKoketaj9w8LP7Bont1rYeoV5plxD7RTEPRg==", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.3.3.tgz", + "integrity": "sha512-pJ2sYawQS0R/WI928Gj5GlPhTGzbMelq0+4INtSYNDV9ErKJcX6xjGWkoG/VnB3dpUm00zALaqkrUD77pO5TDQ==", "dev": true, "funding": [ { @@ -15853,6 +18851,7 @@ "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "dev": true, + "peer": true, "dependencies": { "punycode": "^2.1.0" } @@ -15876,6 +18875,7 @@ "version": "8.3.2", "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "deprecated": "uuid@10 and below is no longer supported. For ESM codebases, update to uuid@latest. For CommonJS codebases, use uuid@11 (but be aware this version will likely be deprecated in 2028).", "dev": true, "license": "MIT", "bin": { @@ -15893,9 +18893,9 @@ } }, "node_modules/validate-npm-package-name": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-6.0.0.tgz", - "integrity": "sha512-d7KLgL1LD3U3fgnvWEY1cQXoO/q6EQ1BSz48Sa149V/5zVTAbgmZIpyI8TRi6U9/JNyeYLlTKsEMPtLC27RFUg==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-6.0.2.tgz", + "integrity": "sha512-IUoow1YUtvoBBC06dXs8bR8B9vuA3aJfmQNKMoaPG/OFsPmoQvw8xh+6Ye25Gx9DQhoEom3Pcu9MKHerm/NpUQ==", "dev": true, "license": "ISC", "engines": { @@ -15921,22 +18921,24 @@ } }, "node_modules/vite": { - "version": "6.0.11", - "resolved": "https://registry.npmjs.org/vite/-/vite-6.0.11.tgz", - "integrity": "sha512-4VL9mQPKoHy4+FE0NnRE/kbY51TOfaknxAjt3fJbGJxhIpBZiqVzlZDEesWWsuREXHwNdAoOFZ9MkPEVXczHwg==", + "version": "7.3.6", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.3.6.tgz", + "integrity": "sha512-4XP60spRGjSZFf1qYH+dJIkK2znL3zQfl9KkOV9MkkRR/3Dls0dxaBsQPTloEc5BLXWPL9vsOxopxyKoMmDueg==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { - "esbuild": "^0.24.2", - "postcss": "^8.4.49", - "rollup": "^4.23.0" + "esbuild": "^0.27.0 || ^0.28.0", + "fdir": "^6.5.0", + "picomatch": "^4.0.3", + "postcss": "^8.5.6", + "rollup": "^4.43.0", + "tinyglobby": "^0.2.15" }, "bin": { "vite": "bin/vite.js" }, "engines": { - "node": "^18.0.0 || ^20.0.0 || >=22.0.0" + "node": "^20.19.0 || >=22.12.0" }, "funding": { "url": "https://github.com/vitejs/vite?sponsor=1" @@ -15945,14 +18947,14 @@ "fsevents": "~2.3.3" }, "peerDependencies": { - "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", + "@types/node": "^20.19.0 || >=22.12.0", "jiti": ">=1.21.0", - "less": "*", + "less": "^4.0.0", "lightningcss": "^1.21.0", - "sass": "*", - "sass-embedded": "*", - "stylus": "*", - "sugarss": "*", + "sass": "^1.70.0", + "sass-embedded": "^1.70.0", + "stylus": ">=0.54.8", + "sugarss": "^5.0.0", "terser": "^5.16.0", "tsx": "^4.8.1", "yaml": "^2.4.2" @@ -15993,6 +18995,23 @@ } } }, + "node_modules/vite/node_modules/tinyglobby": { + "version": "0.2.17", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.17.tgz", + "integrity": "sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fdir": "^6.5.0", + "picomatch": "^4.0.4" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, "node_modules/void-elements": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz", @@ -16003,9 +19022,9 @@ } }, "node_modules/watchpack": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.2.tgz", - "integrity": "sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==", + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.4.tgz", + "integrity": "sha512-c5EGNOiyxxV5qmTtAB7rbiXxi1ooX1pQKMLX/MIabJjRA0SJBQOjKF+KSVfHkr9U1cADPon0mRiVe/riyaiDUA==", "dev": true, "license": "MIT", "dependencies": { @@ -16031,6 +19050,7 @@ "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", "dev": true, + "peer": true, "dependencies": { "defaults": "^1.0.3" } @@ -16044,35 +19064,37 @@ "optional": true }, "node_modules/webpack": { - "version": "5.97.1", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.97.1.tgz", - "integrity": "sha512-EksG6gFY3L1eFMROS/7Wzgrii5mBAFe4rIr3r2BTfo7bcc+DWwFZ4OJ/miOuHJO/A85HwyI4eQ0F6IKXesO7Fg==", + "version": "5.105.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.105.0.tgz", + "integrity": "sha512-gX/dMkRQc7QOMzgTe6KsYFM7DxeIONQSui1s0n/0xht36HvrgbxtM1xBlgx596NbpHuQU8P7QpKwrZYwUX48nw==", "dev": true, "license": "MIT", "dependencies": { "@types/eslint-scope": "^3.7.7", - "@types/estree": "^1.0.6", + "@types/estree": "^1.0.8", + "@types/json-schema": "^7.0.15", "@webassemblyjs/ast": "^1.14.1", "@webassemblyjs/wasm-edit": "^1.14.1", "@webassemblyjs/wasm-parser": "^1.14.1", - "acorn": "^8.14.0", - "browserslist": "^4.24.0", + "acorn": "^8.15.0", + "acorn-import-phases": "^1.0.3", + "browserslist": "^4.28.1", "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.17.1", - "es-module-lexer": "^1.2.1", + "enhanced-resolve": "^5.19.0", + "es-module-lexer": "^2.0.0", "eslint-scope": "5.1.1", "events": "^3.2.0", "glob-to-regexp": "^0.4.1", "graceful-fs": "^4.2.11", "json-parse-even-better-errors": "^2.3.1", - "loader-runner": "^4.2.0", + "loader-runner": "^4.3.1", "mime-types": "^2.1.27", "neo-async": "^2.6.2", - "schema-utils": "^3.2.0", - "tapable": "^2.1.1", - "terser-webpack-plugin": "^5.3.10", - "watchpack": "^2.4.1", - "webpack-sources": "^3.2.3" + "schema-utils": "^4.3.3", + "tapable": "^2.3.0", + "terser-webpack-plugin": "^5.3.16", + "watchpack": "^2.5.1", + "webpack-sources": "^3.3.3" }, "bin": { "webpack": "bin/webpack.js" @@ -16121,15 +19143,16 @@ } }, "node_modules/webpack-dev-server": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-5.2.0.tgz", - "integrity": "sha512-90SqqYXA2SK36KcT6o1bvwvZfJFcmoamqeJY7+boioffX9g9C0wjjJRGUrQIuh43pb0ttX7+ssavmj/WN2RHtA==", + "version": "5.2.6", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-5.2.6.tgz", + "integrity": "sha512-HNLRmamRvVavZQ+avceZifmv8hmdUjg43t6MI4SqJDwFdW7RPQwH5vzGhDRZSX59SgfbeHhLnq3g+uooWo7pVw==", "dev": true, "license": "MIT", "dependencies": { "@types/bonjour": "^3.5.13", "@types/connect-history-api-fallback": "^1.5.4", - "@types/express": "^4.17.21", + "@types/express": "^4.17.25", + "@types/express-serve-static-core": "^4.17.21", "@types/serve-index": "^1.9.4", "@types/serve-static": "^1.15.5", "@types/sockjs": "^0.3.36", @@ -16138,17 +19161,17 @@ "bonjour-service": "^1.2.1", "chokidar": "^3.6.0", "colorette": "^2.0.10", - "compression": "^1.7.4", + "compression": "^1.8.1", "connect-history-api-fallback": "^2.0.0", - "express": "^4.21.2", + "express": "^4.22.1", "graceful-fs": "^4.2.6", - "http-proxy-middleware": "^2.0.7", + "http-proxy-middleware": "^2.0.9", "ipaddr.js": "^2.1.0", - "launch-editor": "^2.6.1", + "launch-editor": "^2.14.1", "open": "^10.0.3", "p-retry": "^6.2.0", "schema-utils": "^4.2.0", - "selfsigned": "^2.4.1", + "selfsigned": "^5.5.0", "serve-index": "^1.9.1", "sockjs": "^0.3.24", "spdy": "^4.0.2", @@ -16168,19 +19191,145 @@ "peerDependencies": { "webpack": "^5.0.0" }, - "peerDependenciesMeta": { - "webpack": { - "optional": true - }, - "webpack-cli": { - "optional": true - } + "peerDependenciesMeta": { + "webpack": { + "optional": true + }, + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-dev-server/node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/webpack-dev-server/node_modules/cookie": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", + "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/webpack-dev-server/node_modules/cookie-signature": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.7.tgz", + "integrity": "sha512-NXdYc3dLr47pBkpUCHtKSwIOQXLVn8dZEuywboCOJY/osA0wFSLlSawr3KN8qXJEyX66FcONTH8EIlVuK0yyFA==", + "dev": true, + "license": "MIT" + }, + "node_modules/webpack-dev-server/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/webpack-dev-server/node_modules/encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/webpack-dev-server/node_modules/express": { + "version": "4.22.3", + "resolved": "https://registry.npmjs.org/express/-/express-4.22.3.tgz", + "integrity": "sha512-Bdcs4+3qlpVlx2NRn6fgX2Ue2/gGRaPeawebgclM0ERSCqDpA+owF1fdPwjJUTAJWMTuAaxjDf+hzb0/4eKvvw==", + "dev": true, + "license": "MIT", + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "~1.20.5", + "content-disposition": "~0.5.4", + "content-type": "~1.0.4", + "cookie": "~0.7.1", + "cookie-signature": "~1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "~1.3.1", + "fresh": "~0.5.2", + "http-errors": "~2.0.0", + "merge-descriptors": "1.0.3", + "methods": "~1.1.2", + "on-finished": "~2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "~0.1.13", + "proxy-addr": "~2.0.7", + "qs": "~6.16.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "~0.19.0", + "serve-static": "~1.16.2", + "setprototypeof": "1.2.0", + "statuses": "~2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/webpack-dev-server/node_modules/finalhandler": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.2.tgz", + "integrity": "sha512-aA4RyPcd3badbdABGDuTXCMTtOneUCAYH/gxoYRTZlIJdF0YPWuGqiAsIrhNnnqdXGswYk6dGujem4w80UJFhg==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "on-finished": "~2.4.1", + "parseurl": "~1.3.3", + "statuses": "~2.0.2", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/webpack-dev-server/node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" } }, "node_modules/webpack-dev-server/node_modules/http-proxy-middleware": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.7.tgz", - "integrity": "sha512-fgVY8AV7qU7z/MmXJ/rxwbrtQH4jBQ9m7kp3llF0liB7glmFeVZFBepQb32T3y8n8k2+AEYuMPCpinYW+/CuRA==", + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.10.tgz", + "integrity": "sha512-RKzRWNPxUZqbuk3BC5mGVJbBnWgr+diEnjJexIOytFbBzDy88Fbh/YvBr3DsNrl1jYAfjWfpATEv0NO35FDuPQ==", "dev": true, "license": "MIT", "dependencies": { @@ -16202,10 +19351,115 @@ } } }, + "node_modules/webpack-dev-server/node_modules/ipaddr.js": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.5.0.tgz", + "integrity": "sha512-aq+t5NAc+cS6rZQQVWC2x98CPqGtKKTMDd4Gaodv0wShnItdKg/51djkGJ1hqH+Oy0ivDftCbSLCQob8zso01w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, + "node_modules/webpack-dev-server/node_modules/merge-descriptors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", + "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/webpack-dev-server/node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true, + "license": "MIT", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/webpack-dev-server/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true, + "license": "MIT" + }, + "node_modules/webpack-dev-server/node_modules/path-to-regexp": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.13.tgz", + "integrity": "sha512-A/AGNMFN3c8bOlvV9RreMdrv7jsmF9XIfDeCd87+I8RNg6s78BhJxMu69NEMHBSJFxKidViTEdruRwEk/WIKqA==", + "dev": true, + "license": "MIT" + }, + "node_modules/webpack-dev-server/node_modules/send": { + "version": "0.19.2", + "resolved": "https://registry.npmjs.org/send/-/send-0.19.2.tgz", + "integrity": "sha512-VMbMxbDeehAxpOtWJXlcUS5E8iXh6QmN+BkRX1GARS3wRaXEEgzCcB10gTQazO42tpNIya8xIyNx8fll1OFPrg==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "~0.5.2", + "http-errors": "~2.0.1", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "~2.4.1", + "range-parser": "~1.2.1", + "statuses": "~2.0.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/webpack-dev-server/node_modules/send/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/webpack-dev-server/node_modules/serve-static": { + "version": "1.16.3", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.3.tgz", + "integrity": "sha512-x0RTqQel6g5SY7Lg6ZreMmsOzncHFU7nhnRWkKgWuMTu5NN0DR5oruckMqRvacAN9d5w6ARnRBXl9xhDCgfMeA==", + "dev": true, + "license": "MIT", + "dependencies": { + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "~0.19.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/webpack-dev-server/node_modules/statuses": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz", + "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, "node_modules/webpack-dev-server/node_modules/ws": { - "version": "8.18.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", - "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", + "version": "8.22.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.22.0.tgz", + "integrity": "sha512-Ydggc987+RO0AnWtZ/7Wq9FtNvcrL1b/RO0ud9mWjUPgDrsAAwQSF51sm2hm1XofbU/4jkpGEsLFsZZxU+1DOg==", "dev": true, "license": "MIT", "engines": { @@ -16240,10 +19494,11 @@ } }, "node_modules/webpack-sources": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", - "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.6.0.tgz", + "integrity": "sha512-EIMmPVvNI0CYXyRPp34F2Qk7W37/BZVZIofS6LAUnrNjCVahS+hO4mxwFJDjQjODTGZDtVzLYoN2+1dYkhk9qA==", "dev": true, + "license": "MIT", "engines": { "node": ">=10.13.0" } @@ -16269,65 +19524,29 @@ } } }, - "node_modules/webpack/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/webpack/node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true, - "peerDependencies": { - "ajv": "^6.9.1" - } - }, "node_modules/webpack/node_modules/json-parse-even-better-errors": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", "dev": true }, - "node_modules/webpack/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "node_modules/webpack/node_modules/schema-utils": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", - "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "node_modules/webpack/node_modules/watchpack": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.5.2.tgz", + "integrity": "sha512-6i/00NBjP4yGPs+caKSyRfpTF/8Torsu0MOW3mMzIbhgISFder8i7xbqgHlLMwJrdiN8ndBV3UA1/AfzPSr+jg==", "dev": true, + "license": "MIT", "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" + "graceful-fs": "^4.1.2" }, "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" + "node": ">=10.13.0" } }, "node_modules/websocket-driver": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", - "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.5.tgz", + "integrity": "sha512-ZL2+3c7kMBdIRCMz6l8jQMHyGVxj+UL+xVk74Ombiciboca8rHa15L86B19E5oh1pL9Ii/uj54gtsIrZGMo6zA==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -16418,61 +19637,6 @@ "node": ">=8" } }, - "node_modules/wrap-ansi-cjs": { - "name": "wrap-ansi", - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, - "license": "MIT" - }, "node_modules/wrap-ansi/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -16536,6 +19700,22 @@ } } }, + "node_modules/wsl-utils": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/wsl-utils/-/wsl-utils-0.1.0.tgz", + "integrity": "sha512-h3Fbisa2nKGPxCpm89Hk33lBLsnaGBvctQopaBSOW/uIs6FTe1ATyAnKFJrzVs9vpGdsTe73WF3V4lIsk4Gacw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-wsl": "^3.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/y18n": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", @@ -16553,49 +19733,104 @@ "license": "ISC" }, "node_modules/yargs": { - "version": "17.7.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", - "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "version": "18.0.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-18.0.0.tgz", + "integrity": "sha512-4UEqdc2RYGHZc7Doyqkrqiln3p9X2DZVxaGbwhn2pi7MrRagKaOcIKe8L3OxYcbhXLgLFUS3zAYuQjKBQgmuNg==", "dev": true, + "license": "MIT", "dependencies": { - "cliui": "^8.0.1", + "cliui": "^9.0.1", "escalade": "^3.1.1", "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", + "string-width": "^7.2.0", "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" + "yargs-parser": "^22.0.0" }, "engines": { - "node": ">=12" + "node": "^20.19.0 || ^22.12.0 || >=23" } }, "node_modules/yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "version": "22.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-22.0.0.tgz", + "integrity": "sha512-rwu/ClNdSMpkSrUb+d6BRsSkLUq1fmfsY6TOpYzTwvwkg1/NRG85KBy3kq++A8LKQwX6lsu+aWad+2khvuXrqw==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^20.19.0 || ^22.12.0 || >=23" + } + }, + "node_modules/yargs/node_modules/ansi-regex": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.4.0.tgz", + "integrity": "sha512-KzTVk2tCWAHtYrvvvaP8bJKJq2pVinhLcGEQdtLIYPbmNGNyYe8QwNaTUYQp2J7/vIsUKt5QCqAfUkYyG9DkOw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/yargs/node_modules/emoji-regex": { + "version": "10.6.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.6.0.tgz", + "integrity": "sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==", + "dev": true, + "license": "MIT" + }, + "node_modules/yargs/node_modules/string-width": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", + "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^10.3.0", + "get-east-asian-width": "^1.0.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/yargs/node_modules/strip-ansi": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz", + "integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==", "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.2.2" + }, "engines": { "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, "node_modules/yocto-queue": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.1.1.tgz", - "integrity": "sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g==", + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", "dev": true, "license": "MIT", "engines": { - "node": ">=12.20" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/yoctocolors-cjs": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yoctocolors-cjs/-/yoctocolors-cjs-2.1.2.tgz", - "integrity": "sha512-cYVsTjKl8b+FrnidjibDWskAv7UKOfcwaVZdp/it9n1s9fU3IkgDbhdIRKCW4JDsAlECJY0ytoVPT3sK6kideA==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/yoctocolors-cjs/-/yoctocolors-cjs-2.1.3.tgz", + "integrity": "sha512-U/PBtDf35ff0D8X8D0jfdzHYEPFxAI7jJlxZXwCSez5M3190m+QobIfh+sWDWSHMCWWJN2AWamkegn6vr6YBTw==", "dev": true, "license": "MIT", "engines": { @@ -16605,6 +19840,26 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/zod": { + "version": "4.1.13", + "resolved": "https://registry.npmjs.org/zod/-/zod-4.1.13.tgz", + "integrity": "sha512-AvvthqfqrAhNH9dnfmrfKzX5upOdjUVJYFqNSlkmGf64gRaTzlPwz99IHYnVs28qYAybvAlBV+H7pn0saFY4Ig==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } + }, + "node_modules/zod-to-json-schema": { + "version": "3.25.2", + "resolved": "https://registry.npmjs.org/zod-to-json-schema/-/zod-to-json-schema-3.25.2.tgz", + "integrity": "sha512-O/PgfnpT1xKSDeQYSCfRI5Gy3hPf91mKVDuYLUHZJMiDFptvP41MSnWofm8dnCm0256ZNfZIM7DSzuSMAFnjHA==", + "dev": true, + "license": "ISC", + "peerDependencies": { + "zod": "^3.25.28 || ^4" + } + }, "node_modules/zone.js": { "version": "0.15.0", "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.15.0.tgz", diff --git a/package.json b/package.json index 392064d..1c6d85a 100644 --- a/package.json +++ b/package.json @@ -13,16 +13,16 @@ }, "private": false, "dependencies": { - "@angular/animations": "^19.1.3", + "@angular/animations": "^20.3.33", "@angular/cdk": "^19.1.1", - "@angular/common": "^19.1.3", - "@angular/compiler": "^19.1.3", - "@angular/core": "^19.1.3", - "@angular/forms": "^19.1.3", + "@angular/common": "^20.3.33", + "@angular/compiler": "^20.3.33", + "@angular/core": "^20.3.33", + "@angular/forms": "^20.3.33", "@angular/material": "^19.1.1", - "@angular/platform-browser": "19.1.3", - "@angular/platform-browser-dynamic": "^19.1.3", - "@angular/router": "^19.1.3", + "@angular/platform-browser": "20.3.33", + "@angular/platform-browser-dynamic": "^20.3.33", + "@angular/router": "^20.3.33", "@ngneat/until-destroy": "^10.0.0", "cytoscape": "^3.29.2", "cytoscape-fcose": "^2.2.0", @@ -33,9 +33,9 @@ "zone.js": "~0.15.0" }, "devDependencies": { - "@angular-devkit/build-angular": "^19.1.4", - "@angular/cli": "^19.1.4", - "@angular/compiler-cli": "^19.1.3", + "@angular-devkit/build-angular": "^20.3.37", + "@angular/cli": "^20.3.37", + "@angular/compiler-cli": "^20.3.33", "@types/cytoscape": "^3.21.0", "@types/cytoscape-fcose": "^2.2.4", "@types/jasmine": "~4.3.0", @@ -47,8 +47,8 @@ "karma-coverage": "~2.2.0", "karma-jasmine": "~5.1.0", "karma-jasmine-html-reporter": "~2.1.0", - "ng-packagr": "^19.1.1", + "ng-packagr": "^20.3.2", "npm-run-all": "^4.1.1", - "typescript": "~5.7.3" + "typescript": "~5.9.3" } } diff --git a/tsconfig.json b/tsconfig.json index fe76815..d9e3fd3 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -24,7 +24,7 @@ "sourceMap": true, "declaration": false, "experimentalDecorators": true, - "moduleResolution": "node", + "moduleResolution": "bundler", "importHelpers": true, "target": "ES2022", "module": "ES2022", From 461dee1a746b35b223aef62b5d88ad88104436bf Mon Sep 17 00:00:00 2001 From: Adam Wright Date: Sat, 3 Oct 2026 00:46:36 +0000 Subject: [PATCH 35/49] Update Angular Material and CDK to 20 (ng update) Co-Authored-By: Claude Opus 5.5 --- package-lock.json | 89 ++++++++++++----------------------------------- package.json | 4 +-- 2 files changed, 25 insertions(+), 68 deletions(-) diff --git a/package-lock.json b/package-lock.json index bcaed85..3fa0425 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,12 +9,12 @@ "version": "0.0.19", "dependencies": { "@angular/animations": "^20.3.33", - "@angular/cdk": "^19.1.1", + "@angular/cdk": "^20.2.14", "@angular/common": "^20.3.33", "@angular/compiler": "^20.3.33", "@angular/core": "^20.3.33", "@angular/forms": "^20.3.33", - "@angular/material": "^19.1.1", + "@angular/material": "^20.2.14", "@angular/platform-browser": "20.3.33", "@angular/platform-browser-dynamic": "^20.3.33", "@angular/router": "^20.3.33", @@ -1241,19 +1241,17 @@ } }, "node_modules/@angular/cdk": { - "version": "19.1.1", - "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-19.1.1.tgz", - "integrity": "sha512-MmfNB9iANuDN1TS+HL8uKqA3/7pdVeCRN+HdAcfqFrcqZmSUUSlYWy8PXqymmyeXxoSwt9p4I/6R0By03VoCMw==", + "version": "20.2.14", + "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-20.2.14.tgz", + "integrity": "sha512-7bZxc01URbiPiIBWThQ69XwOxVduqEKN4PhpbF2AAyfMc/W8Hcr4VoIJOwL0O1Nkq5beS8pCAqoOeIgFyXd/kg==", "license": "MIT", "dependencies": { + "parse5": "^8.0.0", "tslib": "^2.3.0" }, - "optionalDependencies": { - "parse5": "^7.1.2" - }, "peerDependencies": { - "@angular/common": "^19.0.0 || ^20.0.0", - "@angular/core": "^19.0.0 || ^20.0.0", + "@angular/common": "^20.0.0 || ^21.0.0", + "@angular/core": "^20.0.0 || ^21.0.0", "rxjs": "^6.5.3 || ^7.4.0" } }, @@ -1767,20 +1765,19 @@ } }, "node_modules/@angular/material": { - "version": "19.1.1", - "resolved": "https://registry.npmjs.org/@angular/material/-/material-19.1.1.tgz", - "integrity": "sha512-x/EwyBx3yCIYyu/hve19eecmufJzwltRWOO/3Y74jY4jSNNFrR9046t0ptw4fyEXjN8UQZI6Fp/melcZxl3IiA==", + "version": "20.2.14", + "resolved": "https://registry.npmjs.org/@angular/material/-/material-20.2.14.tgz", + "integrity": "sha512-IbAgV6XLsvmHiJzxycVhcNC1PA4M30qi+ERCOir6cT333Bxm8vDV32gsOjfL52uzG5YRARroPC+8s1XqR2oxeA==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" }, "peerDependencies": { - "@angular/animations": "^19.0.0 || ^20.0.0", - "@angular/cdk": "19.1.1", - "@angular/common": "^19.0.0 || ^20.0.0", - "@angular/core": "^19.0.0 || ^20.0.0", - "@angular/forms": "^19.0.0 || ^20.0.0", - "@angular/platform-browser": "^19.0.0 || ^20.0.0", + "@angular/cdk": "20.2.14", + "@angular/common": "^20.0.0 || ^21.0.0", + "@angular/core": "^20.0.0 || ^21.0.0", + "@angular/forms": "^20.0.0 || ^21.0.0", + "@angular/platform-browser": "^20.0.0 || ^21.0.0", "rxjs": "^6.5.3 || ^7.4.0" } }, @@ -10230,7 +10227,7 @@ "version": "4.5.0", "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", - "devOptional": true, + "dev": true, "engines": { "node": ">=0.12" }, @@ -15952,12 +15949,12 @@ } }, "node_modules/parse5": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", - "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", - "optional": true, + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-8.0.1.tgz", + "integrity": "sha512-z1e/HMG90obSGeidlli3hj7cbocou0/wa5HacvI3ASx34PecNjNQeaHNo5WIZpWofN9kgkqV1q5YvXe3F0FoPw==", + "license": "MIT", "dependencies": { - "entities": "^4.4.0" + "entities": "^8.0.0" }, "funding": { "url": "https://github.com/inikulin/parse5?sponsor=1" @@ -15991,32 +15988,6 @@ "url": "https://github.com/fb55/entities?sponsor=1" } }, - "node_modules/parse5-html-rewriting-stream/node_modules/parse5": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-8.0.1.tgz", - "integrity": "sha512-z1e/HMG90obSGeidlli3hj7cbocou0/wa5HacvI3ASx34PecNjNQeaHNo5WIZpWofN9kgkqV1q5YvXe3F0FoPw==", - "dev": true, - "license": "MIT", - "dependencies": { - "entities": "^8.0.0" - }, - "funding": { - "url": "https://github.com/inikulin/parse5?sponsor=1" - } - }, - "node_modules/parse5-html-rewriting-stream/node_modules/parse5/node_modules/entities": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-8.1.0.tgz", - "integrity": "sha512-kxL7msIffSuh9aaFAMD7rxAIuTRMAHMeBtgHW2yUdWw732ZNh4MehkF2gdjvtdmikkaIP9bFDDJOPlsvm7avrA==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=20.19.0" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, "node_modules/parse5-sax-parser": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/parse5-sax-parser/-/parse5-sax-parser-8.0.0.tgz", @@ -16030,11 +16001,10 @@ "url": "https://github.com/inikulin/parse5?sponsor=1" } }, - "node_modules/parse5-sax-parser/node_modules/entities": { + "node_modules/parse5/node_modules/entities": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/entities/-/entities-8.1.0.tgz", "integrity": "sha512-kxL7msIffSuh9aaFAMD7rxAIuTRMAHMeBtgHW2yUdWw732ZNh4MehkF2gdjvtdmikkaIP9bFDDJOPlsvm7avrA==", - "dev": true, "license": "BSD-2-Clause", "engines": { "node": ">=20.19.0" @@ -16043,19 +16013,6 @@ "url": "https://github.com/fb55/entities?sponsor=1" } }, - "node_modules/parse5-sax-parser/node_modules/parse5": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-8.0.1.tgz", - "integrity": "sha512-z1e/HMG90obSGeidlli3hj7cbocou0/wa5HacvI3ASx34PecNjNQeaHNo5WIZpWofN9kgkqV1q5YvXe3F0FoPw==", - "dev": true, - "license": "MIT", - "dependencies": { - "entities": "^8.0.0" - }, - "funding": { - "url": "https://github.com/inikulin/parse5?sponsor=1" - } - }, "node_modules/parseurl": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", diff --git a/package.json b/package.json index 1c6d85a..a6b0a4d 100644 --- a/package.json +++ b/package.json @@ -14,12 +14,12 @@ "private": false, "dependencies": { "@angular/animations": "^20.3.33", - "@angular/cdk": "^19.1.1", + "@angular/cdk": "^20.2.14", "@angular/common": "^20.3.33", "@angular/compiler": "^20.3.33", "@angular/core": "^20.3.33", "@angular/forms": "^20.3.33", - "@angular/material": "^19.1.1", + "@angular/material": "^20.2.14", "@angular/platform-browser": "20.3.33", "@angular/platform-browser-dynamic": "^20.3.33", "@angular/router": "^20.3.33", From 90efee51c0258195e436de4831889124f68f3095 Mon Sep 17 00:00:00 2001 From: Adam Wright Date: Sat, 3 Oct 2026 00:48:04 +0000 Subject: [PATCH 36/49] Update Angular core and CLI to 21 (ng update) Co-Authored-By: Claude Opus 5.5 --- package-lock.json | 3391 +++++++++++++++++++++------------------------ package.json | 24 +- src/main.ts | 3 +- tsconfig.json | 6 +- 4 files changed, 1561 insertions(+), 1863 deletions(-) diff --git a/package-lock.json b/package-lock.json index 3fa0425..8a23277 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,16 +8,16 @@ "name": "ngx-reactome-base", "version": "0.0.19", "dependencies": { - "@angular/animations": "^20.3.33", + "@angular/animations": "^21.2.25", "@angular/cdk": "^20.2.14", - "@angular/common": "^20.3.33", - "@angular/compiler": "^20.3.33", - "@angular/core": "^20.3.33", - "@angular/forms": "^20.3.33", + "@angular/common": "^21.2.25", + "@angular/compiler": "^21.2.25", + "@angular/core": "^21.2.25", + "@angular/forms": "^21.2.25", "@angular/material": "^20.2.14", - "@angular/platform-browser": "20.3.33", - "@angular/platform-browser-dynamic": "^20.3.33", - "@angular/router": "^20.3.33", + "@angular/platform-browser": "21.2.25", + "@angular/platform-browser-dynamic": "^21.2.25", + "@angular/router": "^21.2.25", "@ngneat/until-destroy": "^10.0.0", "cytoscape": "^3.29.2", "cytoscape-fcose": "^2.2.0", @@ -28,9 +28,9 @@ "zone.js": "~0.15.0" }, "devDependencies": { - "@angular-devkit/build-angular": "^20.3.37", - "@angular/cli": "^20.3.37", - "@angular/compiler-cli": "^20.3.33", + "@angular-devkit/build-angular": "^21.2.24", + "@angular/cli": "^21.2.24", + "@angular/compiler-cli": "^21.2.25", "@types/cytoscape": "^3.21.0", "@types/cytoscape-fcose": "^2.2.4", "@types/jasmine": "~4.3.0", @@ -42,63 +42,63 @@ "karma-coverage": "~2.2.0", "karma-jasmine": "~5.1.0", "karma-jasmine-html-reporter": "~2.1.0", - "ng-packagr": "^20.3.2", + "ng-packagr": "^21.2.7", "npm-run-all": "^4.1.1", "typescript": "~5.9.3" } }, "node_modules/@algolia/abtesting": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@algolia/abtesting/-/abtesting-1.1.0.tgz", - "integrity": "sha512-sEyWjw28a/9iluA37KLGu8vjxEIlb60uxznfTUmXImy7H5NvbpSO6yYgmgH5KiD7j+zTUUihiST0jEP12IoXow==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@algolia/abtesting/-/abtesting-1.14.1.tgz", + "integrity": "sha512-Dkj0BgPiLAaim9sbQ97UKDFHJE/880wgStAM18U++NaJ/2Cws34J5731ovJifr6E3Pv4T2CqvMXf8qLCC417Ew==", "dev": true, "license": "MIT", "dependencies": { - "@algolia/client-common": "5.35.0", - "@algolia/requester-browser-xhr": "5.35.0", - "@algolia/requester-fetch": "5.35.0", - "@algolia/requester-node-http": "5.35.0" + "@algolia/client-common": "5.48.1", + "@algolia/requester-browser-xhr": "5.48.1", + "@algolia/requester-fetch": "5.48.1", + "@algolia/requester-node-http": "5.48.1" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/client-abtesting": { - "version": "5.35.0", - "resolved": "https://registry.npmjs.org/@algolia/client-abtesting/-/client-abtesting-5.35.0.tgz", - "integrity": "sha512-uUdHxbfHdoppDVflCHMxRlj49/IllPwwQ2cQ8DLC4LXr3kY96AHBpW0dMyi6ygkn2MtFCc6BxXCzr668ZRhLBQ==", + "version": "5.48.1", + "resolved": "https://registry.npmjs.org/@algolia/client-abtesting/-/client-abtesting-5.48.1.tgz", + "integrity": "sha512-LV5qCJdj+/m9I+Aj91o+glYszrzd7CX6NgKaYdTOj4+tUYfbS62pwYgUfZprYNayhkQpVFcrW8x8ZlIHpS23Vw==", "dev": true, "license": "MIT", "dependencies": { - "@algolia/client-common": "5.35.0", - "@algolia/requester-browser-xhr": "5.35.0", - "@algolia/requester-fetch": "5.35.0", - "@algolia/requester-node-http": "5.35.0" + "@algolia/client-common": "5.48.1", + "@algolia/requester-browser-xhr": "5.48.1", + "@algolia/requester-fetch": "5.48.1", + "@algolia/requester-node-http": "5.48.1" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/client-analytics": { - "version": "5.35.0", - "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-5.35.0.tgz", - "integrity": "sha512-SunAgwa9CamLcRCPnPHx1V2uxdQwJGqb1crYrRWktWUdld0+B2KyakNEeVn5lln4VyeNtW17Ia7V7qBWyM/Skw==", + "version": "5.48.1", + "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-5.48.1.tgz", + "integrity": "sha512-/AVoMqHhPm14CcHq7mwB+bUJbfCv+jrxlNvRjXAuO+TQa+V37N8k1b0ijaRBPdmSjULMd8KtJbQyUyabXOu6Kg==", "dev": true, "license": "MIT", "dependencies": { - "@algolia/client-common": "5.35.0", - "@algolia/requester-browser-xhr": "5.35.0", - "@algolia/requester-fetch": "5.35.0", - "@algolia/requester-node-http": "5.35.0" + "@algolia/client-common": "5.48.1", + "@algolia/requester-browser-xhr": "5.48.1", + "@algolia/requester-fetch": "5.48.1", + "@algolia/requester-node-http": "5.48.1" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/client-common": { - "version": "5.35.0", - "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-5.35.0.tgz", - "integrity": "sha512-ipE0IuvHu/bg7TjT2s+187kz/E3h5ssfTtjpg1LbWMgxlgiaZIgTTbyynM7NfpSJSKsgQvCQxWjGUO51WSCu7w==", + "version": "5.48.1", + "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-5.48.1.tgz", + "integrity": "sha512-VXO+qu2Ep6ota28ktvBm3sG53wUHS2n7bgLWmce5jTskdlCD0/JrV4tnBm1l7qpla1CeoQb8D7ShFhad+UoSOw==", "dev": true, "license": "MIT", "engines": { @@ -106,151 +106,151 @@ } }, "node_modules/@algolia/client-insights": { - "version": "5.35.0", - "resolved": "https://registry.npmjs.org/@algolia/client-insights/-/client-insights-5.35.0.tgz", - "integrity": "sha512-UNbCXcBpqtzUucxExwTSfAe8gknAJ485NfPN6o1ziHm6nnxx97piIbcBQ3edw823Tej2Wxu1C0xBY06KgeZ7gA==", + "version": "5.48.1", + "resolved": "https://registry.npmjs.org/@algolia/client-insights/-/client-insights-5.48.1.tgz", + "integrity": "sha512-zl+Qyb0nLg+Y5YvKp1Ij+u9OaPaKg2/EPzTwKNiVyOHnQJlFxmXyUZL1EInczAZsEY8hVpPCLtNfhMhfxluXKQ==", "dev": true, "license": "MIT", "dependencies": { - "@algolia/client-common": "5.35.0", - "@algolia/requester-browser-xhr": "5.35.0", - "@algolia/requester-fetch": "5.35.0", - "@algolia/requester-node-http": "5.35.0" + "@algolia/client-common": "5.48.1", + "@algolia/requester-browser-xhr": "5.48.1", + "@algolia/requester-fetch": "5.48.1", + "@algolia/requester-node-http": "5.48.1" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/client-personalization": { - "version": "5.35.0", - "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-5.35.0.tgz", - "integrity": "sha512-/KWjttZ6UCStt4QnWoDAJ12cKlQ+fkpMtyPmBgSS2WThJQdSV/4UWcqCUqGH7YLbwlj3JjNirCu3Y7uRTClxvA==", + "version": "5.48.1", + "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-5.48.1.tgz", + "integrity": "sha512-r89Qf9Oo9mKWQXumRu/1LtvVJAmEDpn8mHZMc485pRfQUMAwSSrsnaw1tQ3sszqzEgAr1c7rw6fjBI+zrAXTOw==", "dev": true, "license": "MIT", "dependencies": { - "@algolia/client-common": "5.35.0", - "@algolia/requester-browser-xhr": "5.35.0", - "@algolia/requester-fetch": "5.35.0", - "@algolia/requester-node-http": "5.35.0" + "@algolia/client-common": "5.48.1", + "@algolia/requester-browser-xhr": "5.48.1", + "@algolia/requester-fetch": "5.48.1", + "@algolia/requester-node-http": "5.48.1" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/client-query-suggestions": { - "version": "5.35.0", - "resolved": "https://registry.npmjs.org/@algolia/client-query-suggestions/-/client-query-suggestions-5.35.0.tgz", - "integrity": "sha512-8oCuJCFf/71IYyvQQC+iu4kgViTODbXDk3m7yMctEncRSRV+u2RtDVlpGGfPlJQOrAY7OONwJlSHkmbbm2Kp/w==", + "version": "5.48.1", + "resolved": "https://registry.npmjs.org/@algolia/client-query-suggestions/-/client-query-suggestions-5.48.1.tgz", + "integrity": "sha512-TPKNPKfghKG/bMSc7mQYD9HxHRUkBZA4q1PEmHgICaSeHQscGqL4wBrKkhfPlDV1uYBKW02pbFMUhsOt7p4ZpA==", "dev": true, "license": "MIT", "dependencies": { - "@algolia/client-common": "5.35.0", - "@algolia/requester-browser-xhr": "5.35.0", - "@algolia/requester-fetch": "5.35.0", - "@algolia/requester-node-http": "5.35.0" + "@algolia/client-common": "5.48.1", + "@algolia/requester-browser-xhr": "5.48.1", + "@algolia/requester-fetch": "5.48.1", + "@algolia/requester-node-http": "5.48.1" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/client-search": { - "version": "5.35.0", - "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-5.35.0.tgz", - "integrity": "sha512-FfmdHTrXhIduWyyuko1YTcGLuicVbhUyRjO3HbXE4aP655yKZgdTIfMhZ/V5VY9bHuxv/fGEh3Od1Lvv2ODNTg==", + "version": "5.48.1", + "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-5.48.1.tgz", + "integrity": "sha512-4Fu7dnzQyQmMFknYwTiN/HxPbH4DyxvQ1m+IxpPp5oslOgz8m6PG5qhiGbqJzH4HiT1I58ecDiCAC716UyVA8Q==", "dev": true, "license": "MIT", "dependencies": { - "@algolia/client-common": "5.35.0", - "@algolia/requester-browser-xhr": "5.35.0", - "@algolia/requester-fetch": "5.35.0", - "@algolia/requester-node-http": "5.35.0" + "@algolia/client-common": "5.48.1", + "@algolia/requester-browser-xhr": "5.48.1", + "@algolia/requester-fetch": "5.48.1", + "@algolia/requester-node-http": "5.48.1" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/ingestion": { - "version": "1.35.0", - "resolved": "https://registry.npmjs.org/@algolia/ingestion/-/ingestion-1.35.0.tgz", - "integrity": "sha512-gPzACem9IL1Co8mM1LKMhzn1aSJmp+Vp434An4C0OBY4uEJRcqsLN3uLBlY+bYvFg8C8ImwM9YRiKczJXRk0XA==", + "version": "1.48.1", + "resolved": "https://registry.npmjs.org/@algolia/ingestion/-/ingestion-1.48.1.tgz", + "integrity": "sha512-/RFq3TqtXDUUawwic/A9xylA2P3LDMO8dNhphHAUOU51b1ZLHrmZ6YYJm3df1APz7xLY1aht6okCQf+/vmrV9w==", "dev": true, "license": "MIT", "dependencies": { - "@algolia/client-common": "5.35.0", - "@algolia/requester-browser-xhr": "5.35.0", - "@algolia/requester-fetch": "5.35.0", - "@algolia/requester-node-http": "5.35.0" + "@algolia/client-common": "5.48.1", + "@algolia/requester-browser-xhr": "5.48.1", + "@algolia/requester-fetch": "5.48.1", + "@algolia/requester-node-http": "5.48.1" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/monitoring": { - "version": "1.35.0", - "resolved": "https://registry.npmjs.org/@algolia/monitoring/-/monitoring-1.35.0.tgz", - "integrity": "sha512-w9MGFLB6ashI8BGcQoVt7iLgDIJNCn4OIu0Q0giE3M2ItNrssvb8C0xuwJQyTy1OFZnemG0EB1OvXhIHOvQwWw==", + "version": "1.48.1", + "resolved": "https://registry.npmjs.org/@algolia/monitoring/-/monitoring-1.48.1.tgz", + "integrity": "sha512-Of0jTeAZRyRhC7XzDSjJef0aBkgRcvRAaw0ooYRlOw57APii7lZdq+layuNdeL72BRq1snaJhoMMwkmLIpJScw==", "dev": true, "license": "MIT", "dependencies": { - "@algolia/client-common": "5.35.0", - "@algolia/requester-browser-xhr": "5.35.0", - "@algolia/requester-fetch": "5.35.0", - "@algolia/requester-node-http": "5.35.0" + "@algolia/client-common": "5.48.1", + "@algolia/requester-browser-xhr": "5.48.1", + "@algolia/requester-fetch": "5.48.1", + "@algolia/requester-node-http": "5.48.1" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/recommend": { - "version": "5.35.0", - "resolved": "https://registry.npmjs.org/@algolia/recommend/-/recommend-5.35.0.tgz", - "integrity": "sha512-AhrVgaaXAb8Ue0u2nuRWwugt0dL5UmRgS9LXe0Hhz493a8KFeZVUE56RGIV3hAa6tHzmAV7eIoqcWTQvxzlJeQ==", + "version": "5.48.1", + "resolved": "https://registry.npmjs.org/@algolia/recommend/-/recommend-5.48.1.tgz", + "integrity": "sha512-bE7JcpFXzxF5zHwj/vkl2eiCBvyR1zQ7aoUdO+GDXxGp0DGw7nI0p8Xj6u8VmRQ+RDuPcICFQcCwRIJT5tDJFw==", "dev": true, "license": "MIT", "dependencies": { - "@algolia/client-common": "5.35.0", - "@algolia/requester-browser-xhr": "5.35.0", - "@algolia/requester-fetch": "5.35.0", - "@algolia/requester-node-http": "5.35.0" + "@algolia/client-common": "5.48.1", + "@algolia/requester-browser-xhr": "5.48.1", + "@algolia/requester-fetch": "5.48.1", + "@algolia/requester-node-http": "5.48.1" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/requester-browser-xhr": { - "version": "5.35.0", - "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-5.35.0.tgz", - "integrity": "sha512-diY415KLJZ6x1Kbwl9u96Jsz0OstE3asjXtJ9pmk1d+5gPuQ5jQyEsgC+WmEXzlec3iuVszm8AzNYYaqw6B+Zw==", + "version": "5.48.1", + "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-5.48.1.tgz", + "integrity": "sha512-MK3wZ2koLDnvH/AmqIF1EKbJlhRS5j74OZGkLpxI4rYvNi9Jn/C7vb5DytBnQ4KUWts7QsmbdwHkxY5txQHXVw==", "dev": true, "license": "MIT", "dependencies": { - "@algolia/client-common": "5.35.0" + "@algolia/client-common": "5.48.1" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/requester-fetch": { - "version": "5.35.0", - "resolved": "https://registry.npmjs.org/@algolia/requester-fetch/-/requester-fetch-5.35.0.tgz", - "integrity": "sha512-uydqnSmpAjrgo8bqhE9N1wgcB98psTRRQXcjc4izwMB7yRl9C8uuAQ/5YqRj04U0mMQ+fdu2fcNF6m9+Z1BzDQ==", + "version": "5.48.1", + "resolved": "https://registry.npmjs.org/@algolia/requester-fetch/-/requester-fetch-5.48.1.tgz", + "integrity": "sha512-2oDT43Y5HWRSIQMPQI4tA/W+TN/N2tjggZCUsqQV440kxzzoPGsvv9QP1GhQ4CoDa+yn6ygUsGp6Dr+a9sPPSg==", "dev": true, "license": "MIT", "dependencies": { - "@algolia/client-common": "5.35.0" + "@algolia/client-common": "5.48.1" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/requester-node-http": { - "version": "5.35.0", - "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-5.35.0.tgz", - "integrity": "sha512-RgLX78ojYOrThJHrIiPzT4HW3yfQa0D7K+MQ81rhxqaNyNBu4F1r+72LNHYH/Z+y9I1Mrjrd/c/Ue5zfDgAEjQ==", + "version": "5.48.1", + "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-5.48.1.tgz", + "integrity": "sha512-xcaCqbhupVWhuBP1nwbk1XNvwrGljozutEiLx06mvqDf3o8cHyEgQSHS4fKJM+UAggaWVnnFW+Nne5aQ8SUJXg==", "dev": true, "license": "MIT", "dependencies": { - "@algolia/client-common": "5.35.0" + "@algolia/client-common": "5.48.1" }, "engines": { "node": ">= 14.0.0" @@ -261,6 +261,7 @@ "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", "dev": true, + "license": "Apache-2.0", "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.24" @@ -320,63 +321,63 @@ "peer": true }, "node_modules/@angular-devkit/build-angular": { - "version": "20.3.37", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-20.3.37.tgz", - "integrity": "sha512-piXV1WYz/HPn5KTtPv51CspZPkX5Yys01M+8zrcfH+ZD98jLOqtlb9msJ36h8ovvEyIeZnCnuhmsOKfgwOggoQ==", + "version": "21.2.24", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-21.2.24.tgz", + "integrity": "sha512-qJ7ZrKsa08rXkYp5eeVQtepdl+t81Tfl47USit1Uk3VmwOPYoiH/6O0AIemgX2nlqN6FfKk0nVANJZBLcje0Dg==", "dev": true, "license": "MIT", "dependencies": { "@ampproject/remapping": "2.3.0", - "@angular-devkit/architect": "0.2003.37", - "@angular-devkit/build-webpack": "0.2003.37", - "@angular-devkit/core": "20.3.37", - "@angular/build": "20.3.37", + "@angular-devkit/architect": "0.2102.24", + "@angular-devkit/build-webpack": "0.2102.24", + "@angular-devkit/core": "21.2.24", + "@angular/build": "21.2.24", "@babel/core": "7.29.7", - "@babel/generator": "7.28.3", + "@babel/generator": "7.29.1", "@babel/helper-annotate-as-pure": "7.27.3", "@babel/helper-split-export-declaration": "7.24.7", - "@babel/plugin-transform-async-generator-functions": "7.28.0", - "@babel/plugin-transform-async-to-generator": "7.27.1", - "@babel/plugin-transform-runtime": "7.28.3", - "@babel/preset-env": "7.28.3", - "@babel/runtime": "7.28.3", + "@babel/plugin-transform-async-generator-functions": "7.29.0", + "@babel/plugin-transform-async-to-generator": "7.28.6", + "@babel/plugin-transform-runtime": "7.29.0", + "@babel/preset-env": "7.29.2", + "@babel/runtime": "7.29.2", "@discoveryjs/json-ext": "0.6.3", - "@ngtools/webpack": "20.3.37", + "@ngtools/webpack": "21.2.24", "ansi-colors": "4.1.3", - "autoprefixer": "10.4.21", + "autoprefixer": "10.4.27", "babel-loader": "10.0.0", - "browserslist": "^4.21.5", + "browserslist": "^4.26.0", "copy-webpack-plugin": "14.0.0", - "css-loader": "7.1.2", + "css-loader": "7.1.3", "esbuild-wasm": "0.28.1", - "fast-glob": "3.3.3", "http-proxy-middleware": "3.0.7", "istanbul-lib-instrument": "6.0.3", "jsonc-parser": "3.3.1", "karma-source-map-support": "1.4.0", "less": "4.9.0", - "less-loader": "12.3.0", + "less-loader": "12.3.1", "license-webpack-plugin": "4.0.2", "loader-utils": "3.3.1", - "mini-css-extract-plugin": "2.9.4", - "open": "10.2.0", - "ora": "8.2.0", + "mini-css-extract-plugin": "2.10.0", + "open": "11.0.0", + "ora": "9.3.0", "picomatch": "4.0.4", "piscina": "5.2.0", "postcss": "8.5.23", - "postcss-loader": "8.1.1", + "postcss-loader": "8.2.0", "resolve-url-loader": "5.0.0", "rxjs": "7.8.2", - "sass": "1.90.0", - "sass-loader": "16.0.5", - "semver": "7.7.2", + "sass": "1.97.3", + "sass-loader": "16.0.7", + "semver": "7.7.4", "source-map-loader": "5.0.0", "source-map-support": "0.5.21", - "terser": "5.43.1", + "terser": "5.46.0", + "tinyglobby": "0.2.15", "tree-kill": "1.2.2", "tslib": "2.8.1", - "webpack": "5.105.0", - "webpack-dev-middleware": "7.4.2", + "webpack": "5.105.2", + "webpack-dev-middleware": "7.4.5", "webpack-dev-server": "5.2.6", "webpack-merge": "6.0.1", "webpack-subresource-integrity": "5.1.0" @@ -390,22 +391,22 @@ "esbuild": "0.28.1" }, "peerDependencies": { - "@angular/compiler-cli": "^20.0.0", - "@angular/core": "^20.0.0", - "@angular/localize": "^20.0.0", - "@angular/platform-browser": "^20.0.0", - "@angular/platform-server": "^20.0.0", - "@angular/service-worker": "^20.0.0", - "@angular/ssr": "^20.3.37", + "@angular/compiler-cli": "^21.0.0", + "@angular/core": "^21.0.0", + "@angular/localize": "^21.0.0", + "@angular/platform-browser": "^21.0.0", + "@angular/platform-server": "^21.0.0", + "@angular/service-worker": "^21.0.0", + "@angular/ssr": "^21.2.24", "@web/test-runner": "^0.20.0", "browser-sync": "^3.0.2", - "jest": "^29.5.0 || ^30.2.0", - "jest-environment-jsdom": "^29.5.0 || ^30.2.0", + "jest": "^30.2.0", + "jest-environment-jsdom": "^30.2.0", "karma": "^6.3.0", - "ng-packagr": "^20.0.0", + "ng-packagr": "^21.0.0", "protractor": "^7.0.0", "tailwindcss": "^2.0.0 || ^3.0.0 || ^4.0.0", - "typescript": ">=5.8 <6.0" + "typescript": ">=5.9 <6.0" }, "peerDependenciesMeta": { "@angular/core": { @@ -453,15 +454,18 @@ } }, "node_modules/@angular-devkit/build-angular/node_modules/@angular-devkit/architect": { - "version": "0.2003.37", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.2003.37.tgz", - "integrity": "sha512-QJPV1khLavmdFNzn/2bhWCbbw3IRX/SCNtUAPh0Fr+ZninYNWC8xMSGGNivyYUQfLOZ1jP/1zgPaLCc8nJfQGg==", + "version": "0.2102.24", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.2102.24.tgz", + "integrity": "sha512-U/d5l/1rfrNSlbGjMTunyzwxh+2vJce3y0r0tIx/NOFZbnYhq+gx+e33mR6oxI4yk/1Jks67ltvstrJuBbVbYg==", "dev": true, "license": "MIT", "dependencies": { - "@angular-devkit/core": "20.3.37", + "@angular-devkit/core": "21.2.24", "rxjs": "7.8.2" }, + "bin": { + "architect": "bin/cli.js" + }, "engines": { "node": "^20.19.0 || ^22.12.0 || >=24.0.0", "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", @@ -469,9 +473,9 @@ } }, "node_modules/@angular-devkit/build-angular/node_modules/@angular-devkit/core": { - "version": "20.3.37", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-20.3.37.tgz", - "integrity": "sha512-Mkh0QLXGdzPEqimmhhXn6nS2hoDQhWc7qrQrkvKVLaU9mh0ltd2U/3yOIIeZsRqgKRjbNW+VFlyC0z2unuiXxA==", + "version": "21.2.24", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-21.2.24.tgz", + "integrity": "sha512-QLYLd6OcfQS5qWTlzG1/d8lFTcJDFcsY6sOaGVtrruYiDxrbeM2iJttoIoKzvbNPROFyo3fANVQJOVhytpXWPg==", "dev": true, "license": "MIT", "dependencies": { @@ -488,7 +492,7 @@ "yarn": ">= 1.13.0" }, "peerDependencies": { - "chokidar": "^4.0.0" + "chokidar": "^5.0.0" }, "peerDependenciesMeta": { "chokidar": { @@ -573,12 +577,18 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@angular-devkit/build-angular/node_modules/emoji-regex": { - "version": "10.6.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.6.0.tgz", - "integrity": "sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==", + "node_modules/@angular-devkit/build-angular/node_modules/cli-spinners": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-3.4.0.tgz", + "integrity": "sha512-bXfOC4QcT1tKXGorxL3wbJm6XJPDqEnij2gQ2m7ESQuE+/z9YFIWnl/5RpTiKWbMq3EVKR4fRLJGn6DVfu0mpw==", "dev": true, - "license": "MIT" + "license": "MIT", + "engines": { + "node": ">=18.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, "node_modules/@angular-devkit/build-angular/node_modules/is-interactive": { "version": "2.0.0", @@ -624,14 +634,14 @@ } }, "node_modules/@angular-devkit/build-angular/node_modules/log-symbols": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-6.0.0.tgz", - "integrity": "sha512-i24m8rpwhmPIS4zscNzK6MSEhk0DUWa/8iYQWxhffV8jkI4Phvs3F+quL5xvS0gdQR0FyTCMMH33Y78dDTzzIw==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-7.0.1.tgz", + "integrity": "sha512-ja1E3yCr9i/0hmBVaM0bfwDjnGy8I/s6PP4DFp+yP+a+mrHO4Rm7DtmnqROTUkHIkqffC84YY7AeqX6oFk0WFg==", "dev": true, "license": "MIT", "dependencies": { - "chalk": "^5.3.0", - "is-unicode-supported": "^1.3.0" + "is-unicode-supported": "^2.0.0", + "yoctocolors": "^2.1.1" }, "engines": { "node": ">=18" @@ -640,19 +650,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@angular-devkit/build-angular/node_modules/log-symbols/node_modules/is-unicode-supported": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz", - "integrity": "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/@angular-devkit/build-angular/node_modules/onetime": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/onetime/-/onetime-7.0.0.tgz", @@ -670,24 +667,23 @@ } }, "node_modules/@angular-devkit/build-angular/node_modules/ora": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/ora/-/ora-8.2.0.tgz", - "integrity": "sha512-weP+BZ8MVNnlCm8c0Qdc1WSWq4Qn7I+9CJGm7Qali6g44e/PUzbjNqJX5NJ9ljlNMosfJvg1fKEGILklK9cwnw==", + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/ora/-/ora-9.3.0.tgz", + "integrity": "sha512-lBX72MWFduWEf7v7uWf5DHp9Jn5BI8bNPGuFgtXMmr2uDz2Gz2749y3am3agSDdkhHPHYmmxEGSKH85ZLGzgXw==", "dev": true, "license": "MIT", "dependencies": { - "chalk": "^5.3.0", + "chalk": "^5.6.2", "cli-cursor": "^5.0.0", - "cli-spinners": "^2.9.2", + "cli-spinners": "^3.2.0", "is-interactive": "^2.0.0", - "is-unicode-supported": "^2.0.0", - "log-symbols": "^6.0.0", - "stdin-discarder": "^0.2.2", - "string-width": "^7.2.0", - "strip-ansi": "^7.1.0" + "is-unicode-supported": "^2.1.0", + "log-symbols": "^7.0.1", + "stdin-discarder": "^0.3.1", + "string-width": "^8.1.0" }, "engines": { - "node": ">=18" + "node": ">=20" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -721,9 +717,9 @@ } }, "node_modules/@angular-devkit/build-angular/node_modules/semver": { - "version": "7.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", - "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", + "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", "dev": true, "license": "ISC", "bin": { @@ -757,18 +753,17 @@ } }, "node_modules/@angular-devkit/build-angular/node_modules/string-width": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", - "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-8.3.0.tgz", + "integrity": "sha512-ZbmZM0JCihQN91dWnxoipT2KOEyHqEyfRXUyjuRhW8b/xnqPDoq4gWEVApTVa9db2wN8mmoikgFBbjh71+cGeQ==", "dev": true, "license": "MIT", "dependencies": { - "emoji-regex": "^10.3.0", - "get-east-asian-width": "^1.0.0", - "strip-ansi": "^7.1.0" + "get-east-asian-width": "^1.5.0", + "strip-ansi": "^7.1.2" }, "engines": { - "node": ">=18" + "node": ">=20" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -791,13 +786,13 @@ } }, "node_modules/@angular-devkit/build-webpack": { - "version": "0.2003.37", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.2003.37.tgz", - "integrity": "sha512-drnrIuM+ya/uBbiy7JV5p/I/vXTD6BpGm+XiMA0GpnjIuAcnonABJdvUSickrlZjb73swD9vadPJvtmBygjVtw==", + "version": "0.2102.24", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.2102.24.tgz", + "integrity": "sha512-nXW4KRUM62J4+Y8Khb2PNEwK/b2hQ/2gwcOaeAKm+V/qQ/B2w/l8PjpJP21yLdd3jRZDFTvI6ASiq+P7b9QIkQ==", "dev": true, "license": "MIT", "dependencies": { - "@angular-devkit/architect": "0.2003.37", + "@angular-devkit/architect": "0.2102.24", "rxjs": "7.8.2" }, "engines": { @@ -811,15 +806,18 @@ } }, "node_modules/@angular-devkit/build-webpack/node_modules/@angular-devkit/architect": { - "version": "0.2003.37", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.2003.37.tgz", - "integrity": "sha512-QJPV1khLavmdFNzn/2bhWCbbw3IRX/SCNtUAPh0Fr+ZninYNWC8xMSGGNivyYUQfLOZ1jP/1zgPaLCc8nJfQGg==", + "version": "0.2102.24", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.2102.24.tgz", + "integrity": "sha512-U/d5l/1rfrNSlbGjMTunyzwxh+2vJce3y0r0tIx/NOFZbnYhq+gx+e33mR6oxI4yk/1Jks67ltvstrJuBbVbYg==", "dev": true, "license": "MIT", "dependencies": { - "@angular-devkit/core": "20.3.37", + "@angular-devkit/core": "21.2.24", "rxjs": "7.8.2" }, + "bin": { + "architect": "bin/cli.js" + }, "engines": { "node": "^20.19.0 || ^22.12.0 || >=24.0.0", "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", @@ -827,9 +825,9 @@ } }, "node_modules/@angular-devkit/build-webpack/node_modules/@angular-devkit/core": { - "version": "20.3.37", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-20.3.37.tgz", - "integrity": "sha512-Mkh0QLXGdzPEqimmhhXn6nS2hoDQhWc7qrQrkvKVLaU9mh0ltd2U/3yOIIeZsRqgKRjbNW+VFlyC0z2unuiXxA==", + "version": "21.2.24", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-21.2.24.tgz", + "integrity": "sha512-QLYLd6OcfQS5qWTlzG1/d8lFTcJDFcsY6sOaGVtrruYiDxrbeM2iJttoIoKzvbNPROFyo3fANVQJOVhytpXWPg==", "dev": true, "license": "MIT", "dependencies": { @@ -846,7 +844,7 @@ "yarn": ">= 1.13.0" }, "peerDependencies": { - "chokidar": "^4.0.0" + "chokidar": "^5.0.0" }, "peerDependenciesMeta": { "chokidar": { @@ -997,9 +995,9 @@ } }, "node_modules/@angular/animations": { - "version": "20.3.33", - "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-20.3.33.tgz", - "integrity": "sha512-z9gPYm1byXYE0tMGzjjDXE4OprxvjUhV4jOXVfLLlU0Sk5ChM3GwR0m2Vh+hDWDrJ2f7nfKKTeoGlLriP7NPZA==", + "version": "21.2.25", + "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-21.2.25.tgz", + "integrity": "sha512-75Ok3XvrFoP1lAATNqDQFN24RnGmkiOkzcMZ2B0JjYciHqDqp9Sb7v53suwtivW0UXfse4O5FjqMu4wQwzbFng==", "deprecated": "@angular/animations is deprecated. Use `animate.enter` and `animate.leave` instead. For more information see: https://v22.angular.dev/guide/animations.", "license": "MIT", "dependencies": { @@ -1009,42 +1007,43 @@ "node": "^20.19.0 || ^22.12.0 || >=24.0.0" }, "peerDependencies": { - "@angular/core": "20.3.33" + "@angular/core": "21.2.25" } }, "node_modules/@angular/build": { - "version": "20.3.37", - "resolved": "https://registry.npmjs.org/@angular/build/-/build-20.3.37.tgz", - "integrity": "sha512-r4Wdu+O/Dy0WswW/GuNwvLj3ZPbqJgLRonQLN7MJpYr3CeogB83iTsipvWFC1zZbcY8YwOMfJ8zCErYdbhqGvQ==", + "version": "21.2.24", + "resolved": "https://registry.npmjs.org/@angular/build/-/build-21.2.24.tgz", + "integrity": "sha512-NurM2W7Q/lCGonkYgSNNxGrh9AYH3LksekYRVxl0KxVKa8Z5x6oMYlLfyI4Lv9Q4C1/x1SXv3xNxgYu/nIW4vA==", "dev": true, "license": "MIT", "dependencies": { "@ampproject/remapping": "2.3.0", - "@angular-devkit/architect": "0.2003.37", + "@angular-devkit/architect": "0.2102.24", "@babel/core": "7.29.7", "@babel/helper-annotate-as-pure": "7.27.3", "@babel/helper-split-export-declaration": "7.24.7", - "@inquirer/confirm": "5.1.14", - "@vitejs/plugin-basic-ssl": "2.1.0", - "beasties": "0.3.5", - "browserslist": "^4.23.0", + "@inquirer/confirm": "5.1.21", + "@vitejs/plugin-basic-ssl": "2.1.4", + "beasties": "0.4.1", + "browserslist": "^4.26.0", "esbuild": "0.28.1", "https-proxy-agent": "7.0.6", "istanbul-lib-instrument": "6.0.3", "jsonc-parser": "3.3.1", - "listr2": "9.0.1", - "magic-string": "0.30.17", + "listr2": "9.0.5", + "magic-string": "0.30.21", "mrmime": "2.0.1", "parse5-html-rewriting-stream": "8.0.0", "picomatch": "4.0.4", "piscina": "5.2.0", - "rollup": "4.59.0", - "sass": "1.90.0", - "semver": "7.7.2", + "rolldown": "1.0.0-rc.4", + "sass": "1.97.3", + "semver": "7.7.4", "source-map-support": "0.5.21", - "tinyglobby": "0.2.14", + "tinyglobby": "0.2.15", + "undici": "7.29.1", "vite": "7.3.6", - "watchpack": "2.4.4" + "watchpack": "2.5.1" }, "engines": { "node": "^20.19.0 || ^22.12.0 || >=24.0.0", @@ -1052,25 +1051,25 @@ "yarn": ">= 1.13.0" }, "optionalDependencies": { - "lmdb": "3.4.2" + "lmdb": "3.5.1" }, "peerDependencies": { - "@angular/compiler": "^20.0.0", - "@angular/compiler-cli": "^20.0.0", - "@angular/core": "^20.0.0", - "@angular/localize": "^20.0.0", - "@angular/platform-browser": "^20.0.0", - "@angular/platform-server": "^20.0.0", - "@angular/service-worker": "^20.0.0", - "@angular/ssr": "^20.3.37", + "@angular/compiler": "^21.0.0", + "@angular/compiler-cli": "^21.0.0", + "@angular/core": "^21.0.0", + "@angular/localize": "^21.0.0", + "@angular/platform-browser": "^21.0.0", + "@angular/platform-server": "^21.0.0", + "@angular/service-worker": "^21.0.0", + "@angular/ssr": "^21.2.24", "karma": "^6.4.0", "less": "^4.2.0", - "ng-packagr": "^20.0.0", + "ng-packagr": "^21.0.0", "postcss": "^8.4.0", "tailwindcss": "^2.0.0 || ^3.0.0 || ^4.0.0", "tslib": "^2.3.0", - "typescript": ">=5.8 <6.0", - "vitest": "^3.1.1" + "typescript": ">=5.9 <6.0", + "vitest": "^4.0.8" }, "peerDependenciesMeta": { "@angular/core": { @@ -1112,15 +1111,18 @@ } }, "node_modules/@angular/build/node_modules/@angular-devkit/architect": { - "version": "0.2003.37", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.2003.37.tgz", - "integrity": "sha512-QJPV1khLavmdFNzn/2bhWCbbw3IRX/SCNtUAPh0Fr+ZninYNWC8xMSGGNivyYUQfLOZ1jP/1zgPaLCc8nJfQGg==", + "version": "0.2102.24", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.2102.24.tgz", + "integrity": "sha512-U/d5l/1rfrNSlbGjMTunyzwxh+2vJce3y0r0tIx/NOFZbnYhq+gx+e33mR6oxI4yk/1Jks67ltvstrJuBbVbYg==", "dev": true, "license": "MIT", "dependencies": { - "@angular-devkit/core": "20.3.37", + "@angular-devkit/core": "21.2.24", "rxjs": "7.8.2" }, + "bin": { + "architect": "bin/cli.js" + }, "engines": { "node": "^20.19.0 || ^22.12.0 || >=24.0.0", "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", @@ -1128,9 +1130,9 @@ } }, "node_modules/@angular/build/node_modules/@angular-devkit/core": { - "version": "20.3.37", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-20.3.37.tgz", - "integrity": "sha512-Mkh0QLXGdzPEqimmhhXn6nS2hoDQhWc7qrQrkvKVLaU9mh0ltd2U/3yOIIeZsRqgKRjbNW+VFlyC0z2unuiXxA==", + "version": "21.2.24", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-21.2.24.tgz", + "integrity": "sha512-QLYLd6OcfQS5qWTlzG1/d8lFTcJDFcsY6sOaGVtrruYiDxrbeM2iJttoIoKzvbNPROFyo3fANVQJOVhytpXWPg==", "dev": true, "license": "MIT", "dependencies": { @@ -1147,7 +1149,7 @@ "yarn": ">= 1.13.0" }, "peerDependencies": { - "chokidar": "^4.0.0" + "chokidar": "^5.0.0" }, "peerDependenciesMeta": { "chokidar": { @@ -1218,9 +1220,9 @@ } }, "node_modules/@angular/build/node_modules/semver": { - "version": "7.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", - "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", + "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", "dev": true, "license": "ISC", "bin": { @@ -1240,6 +1242,16 @@ "node": ">= 12" } }, + "node_modules/@angular/build/node_modules/undici": { + "version": "7.29.1", + "resolved": "https://registry.npmjs.org/undici/-/undici-7.29.1.tgz", + "integrity": "sha512-RYONW2MeafgYlkVOKYKkA/Ag7BmXqgIWCa8t1m0JcxrQg9pI9lEqRhAOruOBCbAohOa/gkCF+iPi9hrgvTzu6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=20.18.1" + } + }, "node_modules/@angular/cdk": { "version": "20.2.14", "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-20.2.14.tgz", @@ -1256,30 +1268,30 @@ } }, "node_modules/@angular/cli": { - "version": "20.3.37", - "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-20.3.37.tgz", - "integrity": "sha512-MM+8IVZVNix1xZQF4PArQWwpOFrf3CmSNZKcqxLdtyiYQDcfgcpYic4BeMHQ/pv/y9qgKGbO0pU0Y8eEkaszlg==", + "version": "21.2.24", + "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-21.2.24.tgz", + "integrity": "sha512-lx8baI3gssBv+xuwEf5wvAoBi7XSIB1RRuAmSnuAO2E4CAlJmU4eiVhKxd/haXvONH6peYxFGH2N6mSrkkHfIQ==", "dev": true, "license": "MIT", "dependencies": { - "@angular-devkit/architect": "0.2003.37", - "@angular-devkit/core": "20.3.37", - "@angular-devkit/schematics": "20.3.37", - "@inquirer/prompts": "7.8.2", - "@listr2/prompt-adapter-inquirer": "3.0.1", + "@angular-devkit/architect": "0.2102.24", + "@angular-devkit/core": "21.2.24", + "@angular-devkit/schematics": "21.2.24", + "@inquirer/prompts": "7.10.1", + "@listr2/prompt-adapter-inquirer": "3.0.5", "@modelcontextprotocol/sdk": "1.30.0", - "@schematics/angular": "20.3.37", + "@schematics/angular": "21.2.24", "@yarnpkg/lockfile": "1.1.0", - "algoliasearch": "5.35.0", - "ini": "5.0.0", + "algoliasearch": "5.48.1", + "ini": "6.0.0", "jsonc-parser": "3.3.1", - "listr2": "9.0.1", - "npm-package-arg": "13.0.0", + "listr2": "9.0.5", + "npm-package-arg": "13.0.2", "pacote": "21.5.1", - "resolve": "1.22.10", - "semver": "7.7.2", + "parse5-html-rewriting-stream": "8.0.0", + "semver": "7.7.4", "yargs": "18.0.0", - "zod": "4.1.13" + "zod": "4.3.6" }, "bin": { "ng": "bin/ng.js" @@ -1291,15 +1303,18 @@ } }, "node_modules/@angular/cli/node_modules/@angular-devkit/architect": { - "version": "0.2003.37", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.2003.37.tgz", - "integrity": "sha512-QJPV1khLavmdFNzn/2bhWCbbw3IRX/SCNtUAPh0Fr+ZninYNWC8xMSGGNivyYUQfLOZ1jP/1zgPaLCc8nJfQGg==", + "version": "0.2102.24", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.2102.24.tgz", + "integrity": "sha512-U/d5l/1rfrNSlbGjMTunyzwxh+2vJce3y0r0tIx/NOFZbnYhq+gx+e33mR6oxI4yk/1Jks67ltvstrJuBbVbYg==", "dev": true, "license": "MIT", "dependencies": { - "@angular-devkit/core": "20.3.37", + "@angular-devkit/core": "21.2.24", "rxjs": "7.8.2" }, + "bin": { + "architect": "bin/cli.js" + }, "engines": { "node": "^20.19.0 || ^22.12.0 || >=24.0.0", "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", @@ -1307,9 +1322,9 @@ } }, "node_modules/@angular/cli/node_modules/@angular-devkit/core": { - "version": "20.3.37", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-20.3.37.tgz", - "integrity": "sha512-Mkh0QLXGdzPEqimmhhXn6nS2hoDQhWc7qrQrkvKVLaU9mh0ltd2U/3yOIIeZsRqgKRjbNW+VFlyC0z2unuiXxA==", + "version": "21.2.24", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-21.2.24.tgz", + "integrity": "sha512-QLYLd6OcfQS5qWTlzG1/d8lFTcJDFcsY6sOaGVtrruYiDxrbeM2iJttoIoKzvbNPROFyo3fANVQJOVhytpXWPg==", "dev": true, "license": "MIT", "dependencies": { @@ -1326,7 +1341,7 @@ "yarn": ">= 1.13.0" }, "peerDependencies": { - "chokidar": "^4.0.0" + "chokidar": "^5.0.0" }, "peerDependenciesMeta": { "chokidar": { @@ -1335,16 +1350,16 @@ } }, "node_modules/@angular/cli/node_modules/@angular-devkit/schematics": { - "version": "20.3.37", - "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-20.3.37.tgz", - "integrity": "sha512-cut471ALIuZR+WyoQLFfypZDNTxwG35O7fEj6wTh65EliNISTkmZaqUOgqNjTT6xJ/YaDwZ9+CuSfTdyO0hMCg==", + "version": "21.2.24", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-21.2.24.tgz", + "integrity": "sha512-mLOme2vfbLrHFmMyM6ybPuGCnCvPiemXWdHnptY2Q7Hzum72DabfgtTNsrMcI2F5zrQV2DDQunNjC5cXqtq4/w==", "dev": true, "license": "MIT", "dependencies": { - "@angular-devkit/core": "20.3.37", + "@angular-devkit/core": "21.2.24", "jsonc-parser": "3.3.1", - "magic-string": "0.30.17", - "ora": "8.2.0", + "magic-string": "0.30.21", + "ora": "9.3.0", "rxjs": "7.8.2" }, "engines": { @@ -1430,12 +1445,18 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@angular/cli/node_modules/emoji-regex": { - "version": "10.6.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.6.0.tgz", - "integrity": "sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==", + "node_modules/@angular/cli/node_modules/cli-spinners": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-3.4.0.tgz", + "integrity": "sha512-bXfOC4QcT1tKXGorxL3wbJm6XJPDqEnij2gQ2m7ESQuE+/z9YFIWnl/5RpTiKWbMq3EVKR4fRLJGn6DVfu0mpw==", "dev": true, - "license": "MIT" + "license": "MIT", + "engines": { + "node": ">=18.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, "node_modules/@angular/cli/node_modules/is-interactive": { "version": "2.0.0", @@ -1464,14 +1485,14 @@ } }, "node_modules/@angular/cli/node_modules/log-symbols": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-6.0.0.tgz", - "integrity": "sha512-i24m8rpwhmPIS4zscNzK6MSEhk0DUWa/8iYQWxhffV8jkI4Phvs3F+quL5xvS0gdQR0FyTCMMH33Y78dDTzzIw==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-7.0.1.tgz", + "integrity": "sha512-ja1E3yCr9i/0hmBVaM0bfwDjnGy8I/s6PP4DFp+yP+a+mrHO4Rm7DtmnqROTUkHIkqffC84YY7AeqX6oFk0WFg==", "dev": true, "license": "MIT", "dependencies": { - "chalk": "^5.3.0", - "is-unicode-supported": "^1.3.0" + "is-unicode-supported": "^2.0.0", + "yoctocolors": "^2.1.1" }, "engines": { "node": ">=18" @@ -1480,19 +1501,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@angular/cli/node_modules/log-symbols/node_modules/is-unicode-supported": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz", - "integrity": "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/@angular/cli/node_modules/onetime": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/onetime/-/onetime-7.0.0.tgz", @@ -1510,24 +1518,23 @@ } }, "node_modules/@angular/cli/node_modules/ora": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/ora/-/ora-8.2.0.tgz", - "integrity": "sha512-weP+BZ8MVNnlCm8c0Qdc1WSWq4Qn7I+9CJGm7Qali6g44e/PUzbjNqJX5NJ9ljlNMosfJvg1fKEGILklK9cwnw==", + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/ora/-/ora-9.3.0.tgz", + "integrity": "sha512-lBX72MWFduWEf7v7uWf5DHp9Jn5BI8bNPGuFgtXMmr2uDz2Gz2749y3am3agSDdkhHPHYmmxEGSKH85ZLGzgXw==", "dev": true, "license": "MIT", "dependencies": { - "chalk": "^5.3.0", + "chalk": "^5.6.2", "cli-cursor": "^5.0.0", - "cli-spinners": "^2.9.2", + "cli-spinners": "^3.2.0", "is-interactive": "^2.0.0", - "is-unicode-supported": "^2.0.0", - "log-symbols": "^6.0.0", - "stdin-discarder": "^0.2.2", - "string-width": "^7.2.0", - "strip-ansi": "^7.1.0" + "is-unicode-supported": "^2.1.0", + "log-symbols": "^7.0.1", + "stdin-discarder": "^0.3.1", + "string-width": "^8.1.0" }, "engines": { - "node": ">=18" + "node": ">=20" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -1561,9 +1568,9 @@ } }, "node_modules/@angular/cli/node_modules/semver": { - "version": "7.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", - "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", + "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", "dev": true, "license": "ISC", "bin": { @@ -1597,18 +1604,17 @@ } }, "node_modules/@angular/cli/node_modules/string-width": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", - "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-8.3.0.tgz", + "integrity": "sha512-ZbmZM0JCihQN91dWnxoipT2KOEyHqEyfRXUyjuRhW8b/xnqPDoq4gWEVApTVa9db2wN8mmoikgFBbjh71+cGeQ==", "dev": true, "license": "MIT", "dependencies": { - "emoji-regex": "^10.3.0", - "get-east-asian-width": "^1.0.0", - "strip-ansi": "^7.1.0" + "get-east-asian-width": "^1.5.0", + "strip-ansi": "^7.1.2" }, "engines": { - "node": ">=18" + "node": ">=20" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -1631,9 +1637,9 @@ } }, "node_modules/@angular/common": { - "version": "20.3.33", - "resolved": "https://registry.npmjs.org/@angular/common/-/common-20.3.33.tgz", - "integrity": "sha512-PMfSF2j/C3gGHPp6O6c/BL+32msNzhmkzavrxtmBSxIGAOB5Q4KNktnIuolVrvVvu/0UrZj1/zwT91r/GKRaeA==", + "version": "21.2.25", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-21.2.25.tgz", + "integrity": "sha512-1oxSrFqMyJF6xYXBDrciZSe3A67E5feYQXhmxH3d0hLe0wWM/pFZTvCvSnA65wHj8NTonuI7/HMBPwRKddHoGw==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -1642,14 +1648,14 @@ "node": "^20.19.0 || ^22.12.0 || >=24.0.0" }, "peerDependencies": { - "@angular/core": "20.3.33", + "@angular/core": "21.2.25", "rxjs": "^6.5.3 || ^7.4.0" } }, "node_modules/@angular/compiler": { - "version": "20.3.33", - "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-20.3.33.tgz", - "integrity": "sha512-tqKZaapDV05r2SXA6bOzTSpiNhSoqZR9Usuacs5myMpbpt4gwNMAZkgaIoIcPutnhbd3qT+Og54VCVvCOXF8pg==", + "version": "21.2.25", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-21.2.25.tgz", + "integrity": "sha512-jR/TiwrHeLEOPT3fVp9q14UkCsBNni8xUIfof8F7JZW4Ze7/LpTLI2OWxajckWmR0+kCKam5RhWeFd5m/F553Q==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -1659,15 +1665,15 @@ } }, "node_modules/@angular/compiler-cli": { - "version": "20.3.33", - "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-20.3.33.tgz", - "integrity": "sha512-NKE4N4ssXysHLJQ7xVqvAv/yf3JfJxaFz5H+Ue+EnYToAmTxXe7uyt2MPRIydef/H63n7O9uphVp5P5GkRxVuA==", + "version": "21.2.25", + "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-21.2.25.tgz", + "integrity": "sha512-5qMekFc1QNJ7zxTqekOTRnY9WgYSo5nfqED14sou15uScepL+yDM07UrvVsR94CGc78/nhevYWLXbb4iPPZ00Q==", "dev": true, "license": "MIT", "dependencies": { "@babel/core": "7.29.7", "@jridgewell/sourcemap-codec": "^1.4.14", - "chokidar": "^4.0.0", + "chokidar": "^5.0.0", "convert-source-map": "^1.5.1", "reflect-metadata": "^0.2.0", "semver": "^7.0.0", @@ -1682,8 +1688,8 @@ "node": "^20.19.0 || ^22.12.0 || >=24.0.0" }, "peerDependencies": { - "@angular/compiler": "20.3.33", - "typescript": ">=5.8 <6.0" + "@angular/compiler": "21.2.25", + "typescript": ">=5.9 <6.1" }, "peerDependenciesMeta": { "typescript": { @@ -1692,29 +1698,29 @@ } }, "node_modules/@angular/compiler-cli/node_modules/chokidar": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", - "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-5.0.0.tgz", + "integrity": "sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw==", "dev": true, "license": "MIT", "dependencies": { - "readdirp": "^4.0.1" + "readdirp": "^5.0.0" }, "engines": { - "node": ">= 14.16.0" + "node": ">= 20.19.0" }, "funding": { "url": "https://paulmillr.com/funding/" } }, "node_modules/@angular/compiler-cli/node_modules/readdirp": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", - "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-5.1.1.tgz", + "integrity": "sha512-Kko+Y5XQ6fM+Ce3dq3m9YGxnacYZYl9cA1wZjaF3Vbry2L3i1qVg8+CAgNPsXRArPMUMCaOR7oa9Nqntc43JKA==", "dev": true, "license": "MIT", "engines": { - "node": ">= 14.18.0" + "node": ">= 20.19.0" }, "funding": { "type": "individual", @@ -1722,9 +1728,9 @@ } }, "node_modules/@angular/core": { - "version": "20.3.33", - "resolved": "https://registry.npmjs.org/@angular/core/-/core-20.3.33.tgz", - "integrity": "sha512-Ld/AhODjPf8c14xUOWUnJygaZb2TsRy99ZhwFkEsRJOzqauzEFovb8Hb2MEaB1e4RolADN+HWxPvE4n+u3HFmA==", + "version": "21.2.25", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-21.2.25.tgz", + "integrity": "sha512-cku7EX0igTPnuqEWZ1NiQY4Pn1g2xBljQSk1+bXRKnudJiZCK8e1u2v0byNzWuKwmdz7kKXjz71o224HrtccVA==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -1733,9 +1739,9 @@ "node": "^20.19.0 || ^22.12.0 || >=24.0.0" }, "peerDependencies": { - "@angular/compiler": "20.3.33", + "@angular/compiler": "21.2.25", "rxjs": "^6.5.3 || ^7.4.0", - "zone.js": "~0.15.0" + "zone.js": "~0.15.0 || ~0.16.0" }, "peerDependenciesMeta": { "@angular/compiler": { @@ -1747,20 +1753,21 @@ } }, "node_modules/@angular/forms": { - "version": "20.3.33", - "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-20.3.33.tgz", - "integrity": "sha512-UmwKS9toyYhgq8LEbvFxNBfD9dUXr+B6Y5OTwBGwIRy8RhUrOiLwrXTRr+2y/yREGgDtGAWl8zQRVMVk2BNybw==", + "version": "21.2.25", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-21.2.25.tgz", + "integrity": "sha512-EQADo64/BaCKO1uGcQyHcYW1y2JwQMOfWQUteBsqFODMwoRQK96VH5Lf/8vUwvV7gvFrlA4FhVXjsv2KVdfPuw==", "license": "MIT", "dependencies": { + "@standard-schema/spec": "^1.0.0", "tslib": "^2.3.0" }, "engines": { "node": "^20.19.0 || ^22.12.0 || >=24.0.0" }, "peerDependencies": { - "@angular/common": "20.3.33", - "@angular/core": "20.3.33", - "@angular/platform-browser": "20.3.33", + "@angular/common": "21.2.25", + "@angular/core": "21.2.25", + "@angular/platform-browser": "21.2.25", "rxjs": "^6.5.3 || ^7.4.0" } }, @@ -1782,9 +1789,9 @@ } }, "node_modules/@angular/platform-browser": { - "version": "20.3.33", - "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-20.3.33.tgz", - "integrity": "sha512-od2uw6ee68r5TczjoYDsJuIDWoH4op3/req3sdeFtVHWdQgzf/AhM0B5ZBVRya8THon/b/SDHdhxOrUTgcszTA==", + "version": "21.2.25", + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-21.2.25.tgz", + "integrity": "sha512-hQgeKZiKt42P+jcf9j7o3c1GSOwOXrAYX2hXCs4A0+/AQ1neAQ20bjjUAgz1fGC4P3bNdurw1ZLLhMA+ZBKPtg==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -1793,9 +1800,9 @@ "node": "^20.19.0 || ^22.12.0 || >=24.0.0" }, "peerDependencies": { - "@angular/animations": "20.3.33", - "@angular/common": "20.3.33", - "@angular/core": "20.3.33" + "@angular/animations": "21.2.25", + "@angular/common": "21.2.25", + "@angular/core": "21.2.25" }, "peerDependenciesMeta": { "@angular/animations": { @@ -1804,9 +1811,9 @@ } }, "node_modules/@angular/platform-browser-dynamic": { - "version": "20.3.33", - "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-20.3.33.tgz", - "integrity": "sha512-IwElnTCUW1ZZRr/pw6IRb9dRyNF8KBOh9QoGcmTk6uRAWynenYAe5yICFvgOKozqOHBarFNv8h4jXXJ/W8TcfA==", + "version": "21.2.25", + "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-21.2.25.tgz", + "integrity": "sha512-ZtMCtLGXaEg+2LoXafnlPOZ2axwlwvy7rxQU8lSgruG9pBib6rL74h1OLUiBWwErkcyEZPx2rnSC6Pt03S9sQA==", "deprecated": "@angular/platform-browser-dynamic is deprecated. Use `@angular/platform-browser` instead.", "license": "MIT", "dependencies": { @@ -1816,16 +1823,16 @@ "node": "^20.19.0 || ^22.12.0 || >=24.0.0" }, "peerDependencies": { - "@angular/common": "20.3.33", - "@angular/compiler": "20.3.33", - "@angular/core": "20.3.33", - "@angular/platform-browser": "20.3.33" + "@angular/common": "21.2.25", + "@angular/compiler": "21.2.25", + "@angular/core": "21.2.25", + "@angular/platform-browser": "21.2.25" } }, "node_modules/@angular/router": { - "version": "20.3.33", - "resolved": "https://registry.npmjs.org/@angular/router/-/router-20.3.33.tgz", - "integrity": "sha512-M55ibvrJSWGP7sGf+uZFvC66cxRkFlS4TjtI4Owus4gDCqW69/jhUo8pNGXf0T3QpO3iorbHScZfGwVmLATLLA==", + "version": "21.2.25", + "resolved": "https://registry.npmjs.org/@angular/router/-/router-21.2.25.tgz", + "integrity": "sha512-85ZwJCBEpaXBmezusZLlgW2JzEEByzerlWT34I6IK/ZN4AKG8m2B/vlbTkKmHuzCOGWx1L7xFtPg/URkGGKwSA==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -1834,9 +1841,9 @@ "node": "^20.19.0 || ^22.12.0 || >=24.0.0" }, "peerDependencies": { - "@angular/common": "20.3.33", - "@angular/core": "20.3.33", - "@angular/platform-browser": "20.3.33", + "@angular/common": "21.2.25", + "@angular/core": "21.2.25", + "@angular/platform-browser": "21.2.25", "rxjs": "^6.5.3 || ^7.4.0" } }, @@ -1929,14 +1936,14 @@ } }, "node_modules/@babel/generator": { - "version": "7.28.3", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.3.tgz", - "integrity": "sha512-3lSpxGgvnmZznmBkCRnVREPUFJv2wrv9iAoFDvADJc0ypmdOxdUtcLeBgBJ6zE0PMeTKnxeQzyk0xTBq4Ep7zw==", + "version": "7.29.1", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.1.tgz", + "integrity": "sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/parser": "^7.28.3", - "@babel/types": "^7.28.2", + "@babel/parser": "^7.29.0", + "@babel/types": "^7.29.0", "@jridgewell/gen-mapping": "^0.3.12", "@jridgewell/trace-mapping": "^0.3.28", "jsesc": "^3.0.2" @@ -2113,28 +2120,6 @@ "dev": true, "license": "MIT" }, - "node_modules/@babel/helper-define-polyfill-provider/node_modules/resolve": { - "version": "1.22.12", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.12.tgz", - "integrity": "sha512-TyeJ1zif53BPfHootBGwPRYT1RUt6oGWsaQr8UyZW/eAm9bKoijtvruSDEmZHm92CwS9nj7/fWttqPCgzep8CA==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "is-core-module": "^2.16.1", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/@babel/helper-globals": { "version": "7.29.7", "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.29.7.tgz", @@ -2528,15 +2513,15 @@ } }, "node_modules/@babel/plugin-transform-async-generator-functions": { - "version": "7.28.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.28.0.tgz", - "integrity": "sha512-BEOdvX4+M765icNPZeidyADIvQ1m1gmunXufXxvRESy/jNNyfovIqUyE7MVgGBjWktCoJlzvFA1To2O4ymIO3Q==", + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.29.0.tgz", + "integrity": "sha512-va0VdWro4zlBr2JsXC+ofCPB2iG12wPtVGTWFx2WLDOM3nYQZZIGP82qku2eW/JR83sD+k2k+CsNtyEbUqhU6w==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-plugin-utils": "^7.28.6", "@babel/helper-remap-async-to-generator": "^7.27.1", - "@babel/traverse": "^7.28.0" + "@babel/traverse": "^7.29.0" }, "engines": { "node": ">=6.9.0" @@ -2546,14 +2531,14 @@ } }, "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.27.1.tgz", - "integrity": "sha512-NREkZsZVJS4xmTr8qzE5y8AfIPqsdQfRuUiLRTEzb7Qii8iFWCyDKaUV2c0rCuh4ljDZ98ALHP/PetiBV2nddA==", + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.28.6.tgz", + "integrity": "sha512-ilTRcmbuXjsMmcZ3HASTe4caH5Tpo93PkTxF9oG2VZsSWsahydmcEHhix9Ik122RcTnZnUzPbmux4wh1swfv7g==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-module-imports": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-module-imports": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6", "@babel/helper-remap-async-to-generator": "^7.27.1" }, "engines": { @@ -3246,14 +3231,14 @@ } }, "node_modules/@babel/plugin-transform-runtime": { - "version": "7.28.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.28.3.tgz", - "integrity": "sha512-Y6ab1kGqZ0u42Zv/4a7l0l72n9DKP/MKoKWaUSBylrhNZO2prYuqFOLbn5aW5SIFXwSH93yfjbgllL8lxuGKLg==", + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.29.0.tgz", + "integrity": "sha512-jlaRT5dJtMaMCV6fAuLbsQMSwz/QkvaHOHOSXRitGGwSpR1blCY4KUKoyP2tYO8vJcqYe8cEj96cqSztv3uF9w==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-module-imports": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-module-imports": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6", "babel-plugin-polyfill-corejs2": "^0.4.14", "babel-plugin-polyfill-corejs3": "^0.13.0", "babel-plugin-polyfill-regenerator": "^0.6.5", @@ -3425,81 +3410,81 @@ } }, "node_modules/@babel/preset-env": { - "version": "7.28.3", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.28.3.tgz", - "integrity": "sha512-ROiDcM+GbYVPYBOeCR6uBXKkQpBExLl8k9HO1ygXEyds39j+vCCsjmj7S8GOniZQlEs81QlkdJZe76IpLSiqpg==", + "version": "7.29.2", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.29.2.tgz", + "integrity": "sha512-DYD23veRYGvBFhcTY1iUvJnDNpuqNd/BzBwCvzOTKUnJjKg5kpUBh3/u9585Agdkgj+QuygG7jLfOPWMa2KVNw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.28.0", - "@babel/helper-compilation-targets": "^7.27.2", - "@babel/helper-plugin-utils": "^7.27.1", + "@babel/compat-data": "^7.29.0", + "@babel/helper-compilation-targets": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6", "@babel/helper-validator-option": "^7.27.1", - "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.27.1", + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.28.5", "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.27.1", "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.27.1", "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.27.1", - "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.28.3", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.28.6", "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", - "@babel/plugin-syntax-import-assertions": "^7.27.1", - "@babel/plugin-syntax-import-attributes": "^7.27.1", + "@babel/plugin-syntax-import-assertions": "^7.28.6", + "@babel/plugin-syntax-import-attributes": "^7.28.6", "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", "@babel/plugin-transform-arrow-functions": "^7.27.1", - "@babel/plugin-transform-async-generator-functions": "^7.28.0", - "@babel/plugin-transform-async-to-generator": "^7.27.1", + "@babel/plugin-transform-async-generator-functions": "^7.29.0", + "@babel/plugin-transform-async-to-generator": "^7.28.6", "@babel/plugin-transform-block-scoped-functions": "^7.27.1", - "@babel/plugin-transform-block-scoping": "^7.28.0", - "@babel/plugin-transform-class-properties": "^7.27.1", - "@babel/plugin-transform-class-static-block": "^7.28.3", - "@babel/plugin-transform-classes": "^7.28.3", - "@babel/plugin-transform-computed-properties": "^7.27.1", - "@babel/plugin-transform-destructuring": "^7.28.0", - "@babel/plugin-transform-dotall-regex": "^7.27.1", + "@babel/plugin-transform-block-scoping": "^7.28.6", + "@babel/plugin-transform-class-properties": "^7.28.6", + "@babel/plugin-transform-class-static-block": "^7.28.6", + "@babel/plugin-transform-classes": "^7.28.6", + "@babel/plugin-transform-computed-properties": "^7.28.6", + "@babel/plugin-transform-destructuring": "^7.28.5", + "@babel/plugin-transform-dotall-regex": "^7.28.6", "@babel/plugin-transform-duplicate-keys": "^7.27.1", - "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.27.1", + "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.29.0", "@babel/plugin-transform-dynamic-import": "^7.27.1", - "@babel/plugin-transform-explicit-resource-management": "^7.28.0", - "@babel/plugin-transform-exponentiation-operator": "^7.27.1", + "@babel/plugin-transform-explicit-resource-management": "^7.28.6", + "@babel/plugin-transform-exponentiation-operator": "^7.28.6", "@babel/plugin-transform-export-namespace-from": "^7.27.1", "@babel/plugin-transform-for-of": "^7.27.1", "@babel/plugin-transform-function-name": "^7.27.1", - "@babel/plugin-transform-json-strings": "^7.27.1", + "@babel/plugin-transform-json-strings": "^7.28.6", "@babel/plugin-transform-literals": "^7.27.1", - "@babel/plugin-transform-logical-assignment-operators": "^7.27.1", + "@babel/plugin-transform-logical-assignment-operators": "^7.28.6", "@babel/plugin-transform-member-expression-literals": "^7.27.1", "@babel/plugin-transform-modules-amd": "^7.27.1", - "@babel/plugin-transform-modules-commonjs": "^7.27.1", - "@babel/plugin-transform-modules-systemjs": "^7.27.1", + "@babel/plugin-transform-modules-commonjs": "^7.28.6", + "@babel/plugin-transform-modules-systemjs": "^7.29.0", "@babel/plugin-transform-modules-umd": "^7.27.1", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.27.1", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.29.0", "@babel/plugin-transform-new-target": "^7.27.1", - "@babel/plugin-transform-nullish-coalescing-operator": "^7.27.1", - "@babel/plugin-transform-numeric-separator": "^7.27.1", - "@babel/plugin-transform-object-rest-spread": "^7.28.0", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.28.6", + "@babel/plugin-transform-numeric-separator": "^7.28.6", + "@babel/plugin-transform-object-rest-spread": "^7.28.6", "@babel/plugin-transform-object-super": "^7.27.1", - "@babel/plugin-transform-optional-catch-binding": "^7.27.1", - "@babel/plugin-transform-optional-chaining": "^7.27.1", + "@babel/plugin-transform-optional-catch-binding": "^7.28.6", + "@babel/plugin-transform-optional-chaining": "^7.28.6", "@babel/plugin-transform-parameters": "^7.27.7", - "@babel/plugin-transform-private-methods": "^7.27.1", - "@babel/plugin-transform-private-property-in-object": "^7.27.1", + "@babel/plugin-transform-private-methods": "^7.28.6", + "@babel/plugin-transform-private-property-in-object": "^7.28.6", "@babel/plugin-transform-property-literals": "^7.27.1", - "@babel/plugin-transform-regenerator": "^7.28.3", - "@babel/plugin-transform-regexp-modifiers": "^7.27.1", + "@babel/plugin-transform-regenerator": "^7.29.0", + "@babel/plugin-transform-regexp-modifiers": "^7.28.6", "@babel/plugin-transform-reserved-words": "^7.27.1", "@babel/plugin-transform-shorthand-properties": "^7.27.1", - "@babel/plugin-transform-spread": "^7.27.1", + "@babel/plugin-transform-spread": "^7.28.6", "@babel/plugin-transform-sticky-regex": "^7.27.1", "@babel/plugin-transform-template-literals": "^7.27.1", "@babel/plugin-transform-typeof-symbol": "^7.27.1", "@babel/plugin-transform-unicode-escapes": "^7.27.1", - "@babel/plugin-transform-unicode-property-regex": "^7.27.1", + "@babel/plugin-transform-unicode-property-regex": "^7.28.6", "@babel/plugin-transform-unicode-regex": "^7.27.1", - "@babel/plugin-transform-unicode-sets-regex": "^7.27.1", + "@babel/plugin-transform-unicode-sets-regex": "^7.28.6", "@babel/preset-modules": "0.1.6-no-external-plugins", - "babel-plugin-polyfill-corejs2": "^0.4.14", - "babel-plugin-polyfill-corejs3": "^0.13.0", - "babel-plugin-polyfill-regenerator": "^0.6.5", - "core-js-compat": "^3.43.0", + "babel-plugin-polyfill-corejs2": "^0.4.15", + "babel-plugin-polyfill-corejs3": "^0.14.0", + "babel-plugin-polyfill-regenerator": "^0.6.6", + "core-js-compat": "^3.48.0", "semver": "^6.3.1" }, "engines": { @@ -3509,6 +3494,20 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/preset-env/node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.14.2.tgz", + "integrity": "sha512-coWpDLJ410R781Npmn/SIBZEsAetR4xVi0SxLMXPaMO4lSf1MwnkGYMtkFxew0Dn8B3/CpbpYxN0JCgg8mn67g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.8", + "core-js-compat": "^3.48.0" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, "node_modules/@babel/preset-env/node_modules/semver": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", @@ -3535,9 +3534,9 @@ } }, "node_modules/@babel/runtime": { - "version": "7.28.3", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.3.tgz", - "integrity": "sha512-9uIQ10o0WGdpP6GDhXcdOJPJuDgFtIDtN/9+ArJQ2NAfAmiuhTQdzkaTGR33v43GYS2UrSA0eX2pPPHoFVvpxA==", + "version": "7.29.2", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.29.2.tgz", + "integrity": "sha512-JiDShH45zKHWyGe4ZNVRrCjBz8Nh9TMmZG1kh4QTK8hCBTWBi8Da+i7s1fJw7/lYpM4ccepSNfqzZ/QvABBi5g==", "dev": true, "license": "MIT", "engines": { @@ -3628,6 +3627,43 @@ "node": ">=14.17.0" } }, + "node_modules/@emnapi/core": { + "version": "1.11.3", + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.11.3.tgz", + "integrity": "sha512-zLpS5asjEb7lq8jYLq37N6XKaE41DIexlY1rF/z4/tIl3wo13Sqm28fRyfIsKZD+NZ8mM5RoKkpW/rBcuoSZSg==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "@emnapi/wasi-threads": "1.2.3", + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/runtime": { + "version": "1.11.3", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.11.3.tgz", + "integrity": "sha512-Xz4Tpyki7XyrpbUK1jR1AhdAdaXyhhY4lZ3neLodmhpuWfy2PAQN5B46sAiU4liOXGLkHypn/qU+jvfWSCYYLA==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/wasi-threads": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.3.tgz", + "integrity": "sha512-ELEBe8PsLvvJ6QMr0zLt8ffvOHW/dc1m3CEzNMg7aJUv3bMaoDtw2TXyDAwkYBuroxxuHEwhRTLJSe5sya547g==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, "node_modules/@esbuild/aix-ppc64": { "version": "0.28.1", "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.28.1.tgz", @@ -4080,6 +4116,14 @@ "node": "^20.17.0 || >=22.9.0" } }, + "node_modules/@harperfast/extended-iterable": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@harperfast/extended-iterable/-/extended-iterable-1.0.3.tgz", + "integrity": "sha512-sSAYhQca3rDWtQUHSAPeO7axFIUJOI6hn1gjRC5APVE1a90tuyT8f5WIgRsFhhWA7htNkju2veB9eWL6YHi/Lw==", + "dev": true, + "license": "Apache-2.0", + "optional": true + }, "node_modules/@hono/node-server": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/@hono/node-server/-/node-server-2.1.3.tgz", @@ -4129,14 +4173,14 @@ } }, "node_modules/@inquirer/confirm": { - "version": "5.1.14", - "resolved": "https://registry.npmjs.org/@inquirer/confirm/-/confirm-5.1.14.tgz", - "integrity": "sha512-5yR4IBfe0kXe59r1YCTG8WXkUbl7Z35HK87Sw+WUyGD8wNUx7JvY7laahzeytyE1oLn74bQnL7hstctQxisQ8Q==", + "version": "5.1.21", + "resolved": "https://registry.npmjs.org/@inquirer/confirm/-/confirm-5.1.21.tgz", + "integrity": "sha512-KR8edRkIsUayMXV+o3Gv+q4jlhENF9nMYUZs9PA2HzrXeHI8M5uDag70U7RJn9yyiMZSbtF5/UexBtAVtZGSbQ==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/core": "^10.1.15", - "@inquirer/type": "^3.0.8" + "@inquirer/core": "^10.3.2", + "@inquirer/type": "^3.0.10" }, "engines": { "node": ">=18" @@ -4354,22 +4398,22 @@ } }, "node_modules/@inquirer/prompts": { - "version": "7.8.2", - "resolved": "https://registry.npmjs.org/@inquirer/prompts/-/prompts-7.8.2.tgz", - "integrity": "sha512-nqhDw2ZcAUrKNPwhjinJny903bRhI0rQhiDz1LksjeRxqa36i3l75+4iXbOy0rlDpLJGxqtgoPavQjmmyS5UJw==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@inquirer/prompts/-/prompts-7.10.1.tgz", + "integrity": "sha512-Dx/y9bCQcXLI5ooQ5KyvA4FTgeo2jYj/7plWfV5Ak5wDPKQZgudKez2ixyfz7tKXzcJciTxqLeK7R9HItwiByg==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/checkbox": "^4.2.1", - "@inquirer/confirm": "^5.1.14", - "@inquirer/editor": "^4.2.17", - "@inquirer/expand": "^4.0.17", - "@inquirer/input": "^4.2.1", - "@inquirer/number": "^3.0.17", - "@inquirer/password": "^4.0.17", - "@inquirer/rawlist": "^4.1.5", - "@inquirer/search": "^3.1.0", - "@inquirer/select": "^4.3.1" + "@inquirer/checkbox": "^4.3.2", + "@inquirer/confirm": "^5.1.21", + "@inquirer/editor": "^4.2.23", + "@inquirer/expand": "^4.0.23", + "@inquirer/input": "^4.3.1", + "@inquirer/number": "^3.0.23", + "@inquirer/password": "^4.0.23", + "@inquirer/rawlist": "^4.1.11", + "@inquirer/search": "^3.2.2", + "@inquirer/select": "^4.4.2" }, "engines": { "node": ">=18" @@ -4993,26 +5037,26 @@ "license": "MIT" }, "node_modules/@listr2/prompt-adapter-inquirer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@listr2/prompt-adapter-inquirer/-/prompt-adapter-inquirer-3.0.1.tgz", - "integrity": "sha512-3XFmGwm3u6ioREG+ynAQB7FoxfajgQnMhIu8wC5eo/Lsih4aKDg0VuIMGaOsYn7hJSJagSeaD4K8yfpkEoDEmA==", + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@listr2/prompt-adapter-inquirer/-/prompt-adapter-inquirer-3.0.5.tgz", + "integrity": "sha512-WELs+hj6xcilkloBXYf9XXK8tYEnKsgLj01Xl5ONUJpKjmT5hGVUzNUS5tooUxs7pGMrw+jFD/41WpqW4V3LDA==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/type": "^3.0.7" + "@inquirer/type": "^3.0.8" }, "engines": { "node": ">=20.0.0" }, "peerDependencies": { "@inquirer/prompts": ">= 3 < 8", - "listr2": "9.0.1" + "listr2": "9.0.5" } }, "node_modules/@lmdb/lmdb-darwin-arm64": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/@lmdb/lmdb-darwin-arm64/-/lmdb-darwin-arm64-3.4.2.tgz", - "integrity": "sha512-NK80WwDoODyPaSazKbzd3NEJ3ygePrkERilZshxBViBARNz21rmediktGHExoj9n5t9+ChlgLlxecdFKLCuCKg==", + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-darwin-arm64/-/lmdb-darwin-arm64-3.5.1.tgz", + "integrity": "sha512-tpfN4kKrrMpQ+If1l8bhmoNkECJi0iOu6AEdrTJvWVC+32sLxTARX5Rsu579mPImRP9YFWfWgeRQ5oav7zApQQ==", "cpu": [ "arm64" ], @@ -5024,9 +5068,9 @@ ] }, "node_modules/@lmdb/lmdb-darwin-x64": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/@lmdb/lmdb-darwin-x64/-/lmdb-darwin-x64-3.4.2.tgz", - "integrity": "sha512-zevaowQNmrp3U7Fz1s9pls5aIgpKRsKb3dZWDINtLiozh3jZI9fBrI19lYYBxqdyiIyNdlyiidPnwPShj4aK+w==", + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-darwin-x64/-/lmdb-darwin-x64-3.5.1.tgz", + "integrity": "sha512-+a2tTfc3rmWhLAolFUWRgJtpSuu+Fw/yjn4rF406NMxhfjbMuiOUTDRvRlMFV+DzyjkwnokisskHbCWkS3Ly5w==", "cpu": [ "x64" ], @@ -5038,9 +5082,9 @@ ] }, "node_modules/@lmdb/lmdb-linux-arm": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-arm/-/lmdb-linux-arm-3.4.2.tgz", - "integrity": "sha512-OmHCULY17rkx/RoCoXlzU7LyR8xqrksgdYWwtYa14l/sseezZ8seKWXcogHcjulBddER5NnEFV4L/Jtr2nyxeg==", + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-arm/-/lmdb-linux-arm-3.5.1.tgz", + "integrity": "sha512-0EgcE6reYr8InjD7V37EgXcYrloqpxVPINy3ig1MwDSbl6LF/vXTYRH9OE1Ti1D8YZnB35ZH9aTcdfSb5lql2A==", "cpu": [ "arm" ], @@ -5052,9 +5096,9 @@ ] }, "node_modules/@lmdb/lmdb-linux-arm64": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-arm64/-/lmdb-linux-arm64-3.4.2.tgz", - "integrity": "sha512-ZBEfbNZdkneebvZs98Lq30jMY8V9IJzckVeigGivV7nTHJc+89Ctomp1kAIWKlwIG0ovCDrFI448GzFPORANYg==", + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-arm64/-/lmdb-linux-arm64-3.5.1.tgz", + "integrity": "sha512-aoERa5B6ywXdyFeYGQ1gbQpkMkDbEo45qVoXE5QpIRavqjnyPwjOulMkmkypkmsbJ5z4Wi0TBztON8agCTG0Vg==", "cpu": [ "arm64" ], @@ -5066,9 +5110,9 @@ ] }, "node_modules/@lmdb/lmdb-linux-x64": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-x64/-/lmdb-linux-x64-3.4.2.tgz", - "integrity": "sha512-vL9nM17C77lohPYE4YaAQvfZCSVJSryE4fXdi8M7uWPBnU+9DJabgKVAeyDb84ZM2vcFseoBE4/AagVtJeRE7g==", + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-x64/-/lmdb-linux-x64-3.5.1.tgz", + "integrity": "sha512-SqNDY1+vpji7bh0sFH5wlWyFTOzjbDOl0/kB5RLLYDAFyd/uw3n7wyrmas3rYPpAW7z18lMOi1yKlTPv967E3g==", "cpu": [ "x64" ], @@ -5080,9 +5124,9 @@ ] }, "node_modules/@lmdb/lmdb-win32-arm64": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/@lmdb/lmdb-win32-arm64/-/lmdb-win32-arm64-3.4.2.tgz", - "integrity": "sha512-SXWjdBfNDze4ZPeLtYIzsIeDJDJ/SdsA0pEXcUBayUIMO0FQBHfVZZyHXQjjHr4cvOAzANBgIiqaXRwfMhzmLw==", + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-win32-arm64/-/lmdb-win32-arm64-3.5.1.tgz", + "integrity": "sha512-50v0O1Lt37cwrmR9vWZK5hRW0Aw+KEmxJJ75fge/zIYdvNKB/0bSMSVR5Uc2OV9JhosIUyklOmrEvavwNJ8D6w==", "cpu": [ "arm64" ], @@ -5094,9 +5138,9 @@ ] }, "node_modules/@lmdb/lmdb-win32-x64": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/@lmdb/lmdb-win32-x64/-/lmdb-win32-x64-3.4.2.tgz", - "integrity": "sha512-IY+r3bxKW6Q6sIPiMC0L533DEfRJSXibjSI3Ft/w9Q8KQBNqEIvUFXt+09wV8S5BRk0a8uSF19YWxuRwEfI90g==", + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-win32-x64/-/lmdb-win32-x64-3.5.1.tgz", + "integrity": "sha512-qwosvPyl+zpUlp3gRb7UcJ3H8S28XHCzkv0Y0EgQToXjQP91ZD67EHSCDmaLjtKhe+GVIW5om1KUpzVLA0l6pg==", "cpu": [ "x64" ], @@ -5664,6 +5708,28 @@ "node": ">= 10" } }, + "node_modules/@napi-rs/wasm-runtime": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.2.4.tgz", + "integrity": "sha512-AJxoUD2/15ESHbvpcyjU274nsAPLuOtPHCk0vKJM5pj//Fg/B1FXNWjPnXTT9PymCYYiHo4zPj0ZomXBKhoy7g==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@tybys/wasm-util": "^0.10.3" + }, + "engines": { + "node": "^20.19.0 || ^22.13.0 || >=23.5.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Brooooooklyn" + }, + "peerDependencies": { + "@emnapi/core": "^1.7.1 || ^2.0.0-alpha.4", + "@emnapi/runtime": "^1.7.1 || ^2.0.0-alpha.4" + } + }, "node_modules/@ngneat/until-destroy": { "version": "10.0.0", "resolved": "https://registry.npmjs.org/@ngneat/until-destroy/-/until-destroy-10.0.0.tgz", @@ -5677,9 +5743,9 @@ } }, "node_modules/@ngtools/webpack": { - "version": "20.3.37", - "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-20.3.37.tgz", - "integrity": "sha512-7OQurKdQCifpU1VTd0JhIN3ItqEO0WqQiIHSen0+irU1akC9WK+CTa1Lm77w1Q/SGuqsoL30hzR/yfEIQEf55A==", + "version": "21.2.24", + "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-21.2.24.tgz", + "integrity": "sha512-9l6pXbXUGQscJgSL1rc960tmw2c0QkNABhWyDysaKTAX3Lu/7cjEckIxZNlGsdoK/TwetC23R2CRZdbMqvGszw==", "dev": true, "license": "MIT", "engines": { @@ -5688,8 +5754,8 @@ "yarn": ">= 1.13.0" }, "peerDependencies": { - "@angular/compiler-cli": "^20.0.0", - "typescript": ">=5.8 <6.0", + "@angular/compiler-cli": "^21.0.0", + "typescript": ">=5.9 <6.0", "webpack": "^5.54.0" } }, @@ -5706,44 +5772,6 @@ "url": "https://paulmillr.com/funding/" } }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, "node_modules/@npmcli/agent": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/@npmcli/agent/-/agent-4.0.2.tgz", @@ -5804,16 +5832,6 @@ "node": "^20.17.0 || >=22.9.0" } }, - "node_modules/@npmcli/git/node_modules/ini": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/ini/-/ini-6.0.0.tgz", - "integrity": "sha512-IBTdIkzZNOpqm7q3dRqJvMaldXjDHWkEDfrwGEQTs5eaQMWV+djAhR+wahyNNMAa+qpbDUhBMVt4ZKNwpPm7xQ==", - "dev": true, - "license": "ISC", - "engines": { - "node": "^20.17.0 || >=22.9.0" - } - }, "node_modules/@npmcli/git/node_modules/isexe": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-4.0.0.tgz", @@ -5834,16 +5852,6 @@ "node": "20 || >=22" } }, - "node_modules/@npmcli/git/node_modules/proc-log": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-6.1.0.tgz", - "integrity": "sha512-iG+GYldRf2BQ0UDUAd6JQ/RwzaQy6mXmsk/IzlYyal4A4SNFw54MeH4/tLkF4I5WoWG9SQwuqWzS99jaFQHBuQ==", - "dev": true, - "license": "ISC", - "engines": { - "node": "^20.17.0 || >=22.9.0" - } - }, "node_modules/@npmcli/git/node_modules/which": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/which/-/which-6.0.1.tgz", @@ -5963,16 +5971,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@npmcli/package-json/node_modules/proc-log": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-6.1.0.tgz", - "integrity": "sha512-iG+GYldRf2BQ0UDUAd6JQ/RwzaQy6mXmsk/IzlYyal4A4SNFw54MeH4/tLkF4I5WoWG9SQwuqWzS99jaFQHBuQ==", - "dev": true, - "license": "ISC", - "engines": { - "node": "^20.17.0 || >=22.9.0" - } - }, "node_modules/@npmcli/package-json/node_modules/spdx-expression-parse": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-4.0.0.tgz", @@ -6050,14 +6048,14 @@ "node": "^20.17.0 || >=22.9.0" } }, - "node_modules/@npmcli/run-script/node_modules/proc-log": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-6.1.0.tgz", - "integrity": "sha512-iG+GYldRf2BQ0UDUAd6JQ/RwzaQy6mXmsk/IzlYyal4A4SNFw54MeH4/tLkF4I5WoWG9SQwuqWzS99jaFQHBuQ==", + "node_modules/@oxc-project/types": { + "version": "0.113.0", + "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.113.0.tgz", + "integrity": "sha512-Tp3XmgxwNQ9pEN9vxgJBAqdRamHibi76iowQ38O2I4PMpcvNRQNVsU2n1x1nv9yh0XoTrGFzf7cZSGxmixxrhA==", "dev": true, - "license": "ISC", - "engines": { - "node": "^20.17.0 || >=22.9.0" + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/Boshen" } }, "node_modules/@parcel/watcher": { @@ -6573,12 +6571,252 @@ "node": ">=20.0.0" } }, - "node_modules/@rollup/plugin-json": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@rollup/plugin-json/-/plugin-json-6.1.0.tgz", - "integrity": "sha512-EGI2te5ENk1coGeADSIwZ7G2Q8CJS2sF120T7jLw4xFw9n7wIOXHo+kIYRAoVpJAN+kmqZSoO3Fp4JtoNF4ReA==", - "dev": true, - "license": "MIT", + "node_modules/@rolldown/binding-android-arm64": { + "version": "1.0.0-rc.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.0.0-rc.4.tgz", + "integrity": "sha512-vRq9f4NzvbdZavhQbjkJBx7rRebDKYR9zHfO/Wg486+I7bSecdUapzCm5cyXoK+LHokTxgSq7A5baAXUZkIz0w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-darwin-arm64": { + "version": "1.0.0-rc.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.0.0-rc.4.tgz", + "integrity": "sha512-kFgEvkWLqt3YCgKB5re9RlIrx9bRsvyVUnaTakEpOPuLGzLpLapYxE9BufJNvPg8GjT6mB1alN4yN1NjzoeM8Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-darwin-x64": { + "version": "1.0.0-rc.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.0.0-rc.4.tgz", + "integrity": "sha512-JXmaOJGsL/+rsmMfutcDjxWM2fTaVgCHGoXS7nE8Z3c9NAYjGqHvXrAhMUZvMpHS/k7Mg+X7n/MVKb7NYWKKww==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-freebsd-x64": { + "version": "1.0.0-rc.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.0.0-rc.4.tgz", + "integrity": "sha512-ep3Catd6sPnHTM0P4hNEvIv5arnDvk01PfyJIJ+J3wVCG1eEaPo09tvFqdtcaTrkwQy0VWR24uz+cb4IsK53Qw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-arm-gnueabihf": { + "version": "1.0.0-rc.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.0.0-rc.4.tgz", + "integrity": "sha512-LwA5ayKIpnsgXJEwWc3h8wPiS33NMIHd9BhsV92T8VetVAbGe2qXlJwNVDGHN5cOQ22R9uYvbrQir2AB+ntT2w==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-arm64-gnu": { + "version": "1.0.0-rc.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.0.0-rc.4.tgz", + "integrity": "sha512-AC1WsGdlV1MtGay/OQ4J9T7GRadVnpYRzTcygV1hKnypbYN20Yh4t6O1Sa2qRBMqv1etulUknqXjc3CTIsBu6A==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-arm64-musl": { + "version": "1.0.0-rc.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.0.0-rc.4.tgz", + "integrity": "sha512-lU+6rgXXViO61B4EudxtVMXSOfiZONR29Sys5VGSetUY7X8mg9FCKIIjcPPj8xNDeYzKl+H8F/qSKOBVFJChCQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-x64-gnu": { + "version": "1.0.0-rc.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.0.0-rc.4.tgz", + "integrity": "sha512-DZaN1f0PGp/bSvKhtw50pPsnln4T13ycDq1FrDWRiHmWt1JeW+UtYg9touPFf8yt993p8tS2QjybpzKNTxYEwg==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-x64-musl": { + "version": "1.0.0-rc.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.0.0-rc.4.tgz", + "integrity": "sha512-RnGxwZLN7fhMMAItnD6dZ7lvy+TI7ba+2V54UF4dhaWa/p8I/ys1E73KO6HmPmgz92ZkfD8TXS1IMV8+uhbR9g==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-openharmony-arm64": { + "version": "1.0.0-rc.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.0.0-rc.4.tgz", + "integrity": "sha512-6lcI79+X8klGiGd8yHuTgQRjuuJYNggmEml+RsyN596P23l/zf9FVmJ7K0KVKkFAeYEdg0iMUKyIxiV5vebDNQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-wasm32-wasi": { + "version": "1.0.0-rc.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.0.0-rc.4.tgz", + "integrity": "sha512-wz7ohsKCAIWy91blZ/1FlpPdqrsm1xpcEOQVveWoL6+aSPKL4VUcoYmmzuLTssyZxRpEwzuIxL/GDsvpjaBtOw==", + "cpu": [ + "wasm32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@napi-rs/wasm-runtime": "^1.1.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@rolldown/binding-win32-arm64-msvc": { + "version": "1.0.0-rc.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.0.0-rc.4.tgz", + "integrity": "sha512-cfiMrfuWCIgsFmcVG0IPuO6qTRHvF7NuG3wngX1RZzc6dU8FuBFb+J3MIR5WrdTNozlumfgL4cvz+R4ozBCvsQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-win32-x64-msvc": { + "version": "1.0.0-rc.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.0.0-rc.4.tgz", + "integrity": "sha512-p6UeR9y7ht82AH57qwGuFYn69S6CZ7LLKdCKy/8T3zS9VTrJei2/CGsTUV45Da4Z9Rbhc7G4gyWQ/Ioamqn09g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/pluginutils": { + "version": "1.0.0-rc.4", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-rc.4.tgz", + "integrity": "sha512-1BrrmTu0TWfOP1riA8uakjFc9bpIUGzVKETsOtzY39pPga8zELGDl8eu1Dx7/gjM5CAz14UknsUMpBO8L+YntQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@rollup/plugin-json": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-json/-/plugin-json-6.1.0.tgz", + "integrity": "sha512-EGI2te5ENk1coGeADSIwZ7G2Q8CJS2sF120T7jLw4xFw9n7wIOXHo+kIYRAoVpJAN+kmqZSoO3Fp4JtoNF4ReA==", + "dev": true, + "license": "MIT", "dependencies": { "@rollup/pluginutils": "^5.1.0" }, @@ -6618,9 +6856,9 @@ } }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.59.0.tgz", - "integrity": "sha512-upnNBkA6ZH2VKGcBj9Fyl9IGNPULcjXRlg0LLeaioQWueH30p6IXtJEbKAgvyv+mJaMxSm1l6xwDXYjpEMiLMg==", + "version": "4.64.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.64.0.tgz", + "integrity": "sha512-FLLpX941CD/7aBvX3GqLGBM9OvY5PGXTryPJkG5r5/OuBpZpV5k45Uo3RxAvqd35tsyc3hH1bhtz921IKzoIzg==", "cpu": [ "arm" ], @@ -6632,9 +6870,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.59.0.tgz", - "integrity": "sha512-hZ+Zxj3SySm4A/DylsDKZAeVg0mvi++0PYVceVyX7hemkw7OreKdCvW2oQ3T1FMZvCaQXqOTHb8qmBShoqk69Q==", + "version": "4.64.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.64.0.tgz", + "integrity": "sha512-iI32XM/jnDYJsvx5ai/za/7gWO9XoSeFFtU06/ZCaRgyilfJOjaopD3nOpk2WrTCGOyeDt4hleUiGOAnd5tHNg==", "cpu": [ "arm64" ], @@ -6646,9 +6884,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.59.0.tgz", - "integrity": "sha512-W2Psnbh1J8ZJw0xKAd8zdNgF9HRLkdWwwdWqubSVk0pUuQkoHnv7rx4GiF9rT4t5DIZGAsConRE3AxCdJ4m8rg==", + "version": "4.64.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.64.0.tgz", + "integrity": "sha512-dRBZlbt2sEtF8Mn4MODThze9fIPdDoOhVSlXMAKy5dQbOYK9pOOoPY4Fat3OTtr0+8zbJo5TTZwlsfxY/kDNJg==", "cpu": [ "arm64" ], @@ -6660,9 +6898,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.59.0.tgz", - "integrity": "sha512-ZW2KkwlS4lwTv7ZVsYDiARfFCnSGhzYPdiOU4IM2fDbL+QGlyAbjgSFuqNRbSthybLbIJ915UtZBtmuLrQAT/w==", + "version": "4.64.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.64.0.tgz", + "integrity": "sha512-Y3whrJOMucfkhgNkvcM93M6j8C53iEAMmPMYD99C6G1kUy4ELigLWk9ar2/4aCBSRgsql0zdlOemLgW2m5GZgQ==", "cpu": [ "x64" ], @@ -6674,9 +6912,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.59.0.tgz", - "integrity": "sha512-EsKaJ5ytAu9jI3lonzn3BgG8iRBjV4LxZexygcQbpiU0wU0ATxhNVEpXKfUa0pS05gTcSDMKpn3Sx+QB9RlTTA==", + "version": "4.64.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.64.0.tgz", + "integrity": "sha512-S6S1GEzPjFF6IONYJX3AKt/799+8RgBgCcwRnUo+Ep1IvBxUbw5M51iU0TDdK2NWWVnSvCQ8yi6Em0fGASMOng==", "cpu": [ "arm64" ], @@ -6688,9 +6926,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.59.0.tgz", - "integrity": "sha512-d3DuZi2KzTMjImrxoHIAODUZYoUUMsuUiY4SRRcJy6NJoZ6iIqWnJu9IScV9jXysyGMVuW+KNzZvBLOcpdl3Vg==", + "version": "4.64.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.64.0.tgz", + "integrity": "sha512-Ed1DPoFENkXj4IGzSB12SesV40iP6LxCCrbTIkSGIQBpOOxpBM+0kj62lmaeIHfMWTDoddqTOtqc7s8LYfn+Pw==", "cpu": [ "x64" ], @@ -6702,9 +6940,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.59.0.tgz", - "integrity": "sha512-t4ONHboXi/3E0rT6OZl1pKbl2Vgxf9vJfWgmUoCEVQVxhW6Cw/c8I6hbbu7DAvgp82RKiH7TpLwxnJeKv2pbsw==", + "version": "4.64.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.64.0.tgz", + "integrity": "sha512-J/6xhutJPtFyIkmHdf4olOdHHKH5kOJNumojdWn+Elv5ICEYTVOa362Vw27TxsK0BLzb1le3EDlO3UbvFK1lnQ==", "cpu": [ "arm" ], @@ -6719,9 +6957,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.59.0.tgz", - "integrity": "sha512-CikFT7aYPA2ufMD086cVORBYGHffBo4K8MQ4uPS/ZnY54GKj36i196u8U+aDVT2LX4eSMbyHtyOh7D7Zvk2VvA==", + "version": "4.64.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.64.0.tgz", + "integrity": "sha512-G4L/Nnx59d2LvDoV/P4S5lZ7oVLT6hodOHMacqjiq2LL2gts86KbkEBTYL53+fBt0odhf7XPIbIATGoYiJctxg==", "cpu": [ "arm" ], @@ -6736,9 +6974,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.59.0.tgz", - "integrity": "sha512-jYgUGk5aLd1nUb1CtQ8E+t5JhLc9x5WdBKew9ZgAXg7DBk0ZHErLHdXM24rfX+bKrFe+Xp5YuJo54I5HFjGDAA==", + "version": "4.64.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.64.0.tgz", + "integrity": "sha512-zF16pvJDEUksGYRbfnXne7pdklAyj2XDmJeYKgP93oq0cUyX9Y8O7lUo1R+IY1GagP/YBvCEDCe7eEcAKpw//g==", "cpu": [ "arm64" ], @@ -6753,9 +6991,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.59.0.tgz", - "integrity": "sha512-peZRVEdnFWZ5Bh2KeumKG9ty7aCXzzEsHShOZEFiCQlDEepP1dpUl/SrUNXNg13UmZl+gzVDPsiCwnV1uI0RUA==", + "version": "4.64.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.64.0.tgz", + "integrity": "sha512-nIggWn8n+w12+R5lsV+PYYoUY8vuObxPAQqJI7WES+9v0qspYuAHoZMfYM0yLxlipasT5BY9ht5W8t5c/rSCkg==", "cpu": [ "arm64" ], @@ -6770,9 +7008,9 @@ ] }, "node_modules/@rollup/rollup-linux-loong64-gnu": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.59.0.tgz", - "integrity": "sha512-gbUSW/97f7+r4gHy3Jlup8zDG190AuodsWnNiXErp9mT90iCy9NKKU0Xwx5k8VlRAIV2uU9CsMnEFg/xXaOfXg==", + "version": "4.64.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.64.0.tgz", + "integrity": "sha512-WLOTiHPzszP0dxIMsHpFeDSOSB5I49Mj8K4+yKE3H1X/D0JRG5XZ5jrctJLMjnUc/LUzaKiwq6EHWNJ8pup8PA==", "cpu": [ "loong64" ], @@ -6787,9 +7025,9 @@ ] }, "node_modules/@rollup/rollup-linux-loong64-musl": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.59.0.tgz", - "integrity": "sha512-yTRONe79E+o0FWFijasoTjtzG9EBedFXJMl888NBEDCDV9I2wGbFFfJQQe63OijbFCUZqxpHz1GzpbtSFikJ4Q==", + "version": "4.64.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.64.0.tgz", + "integrity": "sha512-35RK9aRhh7g7Pmeu5gQ01aCvrhXzj9LoBE6xtUcEH1ns+nyTaSzxSpADmBQINu4QiTDGvmQYwo1j5hlg1rRXFw==", "cpu": [ "loong64" ], @@ -6804,9 +7042,9 @@ ] }, "node_modules/@rollup/rollup-linux-ppc64-gnu": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.59.0.tgz", - "integrity": "sha512-sw1o3tfyk12k3OEpRddF68a1unZ5VCN7zoTNtSn2KndUE+ea3m3ROOKRCZxEpmT9nsGnogpFP9x6mnLTCaoLkA==", + "version": "4.64.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.64.0.tgz", + "integrity": "sha512-RqTfnpoTjuWfPAmqK5p2edt2AMCDJWm6oTn7sKfmyx+6tRga0ip05SJ977o6udTcIiDeF/CJMUfkaN4gtWt6Aw==", "cpu": [ "ppc64" ], @@ -6821,9 +7059,9 @@ ] }, "node_modules/@rollup/rollup-linux-ppc64-musl": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.59.0.tgz", - "integrity": "sha512-+2kLtQ4xT3AiIxkzFVFXfsmlZiG5FXYW7ZyIIvGA7Bdeuh9Z0aN4hVyXS/G1E9bTP/vqszNIN/pUKCk/BTHsKA==", + "version": "4.64.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.64.0.tgz", + "integrity": "sha512-RQjZPigjxFvFZDijG6rjlSXxhRaTf9zLYVpGK+lVcga64oMqP1GbgVqCb46eHTTceSIgp89Ja0y5aPe3GFBYHg==", "cpu": [ "ppc64" ], @@ -6838,9 +7076,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.59.0.tgz", - "integrity": "sha512-NDYMpsXYJJaj+I7UdwIuHHNxXZ/b/N2hR15NyH3m2qAtb/hHPA4g4SuuvrdxetTdndfj9b1WOmy73kcPRoERUg==", + "version": "4.64.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.64.0.tgz", + "integrity": "sha512-tjL58mgQcTRnDRpeky+Sth1MKQeYi2Ct6r3Luq9E5aTSjnM/i/JbozqZkKqp9thM5+oDSZxo+05f9kdQedfTGA==", "cpu": [ "riscv64" ], @@ -6855,9 +7093,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-musl": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.59.0.tgz", - "integrity": "sha512-nLckB8WOqHIf1bhymk+oHxvM9D3tyPndZH8i8+35p/1YiVoVswPid2yLzgX7ZJP0KQvnkhM4H6QZ5m0LzbyIAg==", + "version": "4.64.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.64.0.tgz", + "integrity": "sha512-ictoRyVaoZ8C67myHef+8hhCa6IplXJJ/xUCkVCxziV4zxMZh+jvhkhGsPBLqj1S72fnqD0QH5zL4lcaa4X7DQ==", "cpu": [ "riscv64" ], @@ -6872,9 +7110,9 @@ ] }, "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.59.0.tgz", - "integrity": "sha512-oF87Ie3uAIvORFBpwnCvUzdeYUqi2wY6jRFWJAy1qus/udHFYIkplYRW+wo+GRUP4sKzYdmE1Y3+rY5Gc4ZO+w==", + "version": "4.64.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.64.0.tgz", + "integrity": "sha512-8aVvZ2hfr9RLFzBQkQNmYeHLDja8fLeQAmLt757zdKN/B+8L809KlLJKctQjS22wZotptV8G6o7fVPuAs8S1tQ==", "cpu": [ "s390x" ], @@ -6889,9 +7127,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.59.0.tgz", - "integrity": "sha512-3AHmtQq/ppNuUspKAlvA8HtLybkDflkMuLK4DPo77DfthRb71V84/c4MlWJXixZz4uruIH4uaa07IqoAkG64fg==", + "version": "4.64.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.64.0.tgz", + "integrity": "sha512-2dEF8GAcDKwshUfydD+GhosppNyBzhVUHkdFF3CXd3FpOkzj/RZzF5aoEtzklujklT5qFVRU2GK/cFeLaTNKVg==", "cpu": [ "x64" ], @@ -6906,9 +7144,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.59.0.tgz", - "integrity": "sha512-2UdiwS/9cTAx7qIUZB/fWtToJwvt0Vbo0zmnYt7ED35KPg13Q0ym1g442THLC7VyI6JfYTP4PiSOWyoMdV2/xg==", + "version": "4.64.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.64.0.tgz", + "integrity": "sha512-3XHTvoo2hKkh0MiOfS7SkhHjMaaWF7P4F3drocZZaho/Z8w7h/jpnuBHm91BOQLfvrKHs1yR+zir4E8RI3XzTQ==", "cpu": [ "x64" ], @@ -6923,9 +7161,9 @@ ] }, "node_modules/@rollup/rollup-openbsd-x64": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.59.0.tgz", - "integrity": "sha512-M3bLRAVk6GOwFlPTIxVBSYKUaqfLrn8l0psKinkCFxl4lQvOSz8ZrKDz2gxcBwHFpci0B6rttydI4IpS4IS/jQ==", + "version": "4.64.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.64.0.tgz", + "integrity": "sha512-HKtkzodL4a3KFWDXDoO61cRynAWTR3LnAE0oGtfG9lcNFpNuVYUFOByxDgNqEvic9rvaQbAj+SFwTEWDptRaIw==", "cpu": [ "x64" ], @@ -6937,9 +7175,9 @@ ] }, "node_modules/@rollup/rollup-openharmony-arm64": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.59.0.tgz", - "integrity": "sha512-tt9KBJqaqp5i5HUZzoafHZX8b5Q2Fe7UjYERADll83O4fGqJ49O1FsL6LpdzVFQcpwvnyd0i+K/VSwu/o/nWlA==", + "version": "4.64.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.64.0.tgz", + "integrity": "sha512-JBsxqiY16uyyCujtoC3s7zL+SrYyNElptD7K4V+KUoJ2V8/XG3hPWpheK+SuPwNh1cikJvIZmIdsrYXvD6PLJw==", "cpu": [ "arm64" ], @@ -6951,9 +7189,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.59.0.tgz", - "integrity": "sha512-V5B6mG7OrGTwnxaNUzZTDTjDS7F75PO1ae6MJYdiMu60sq0CqN5CVeVsbhPxalupvTX8gXVSU9gq+Rx1/hvu6A==", + "version": "4.64.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.64.0.tgz", + "integrity": "sha512-S5Qrijh37qhnUYQ0ay8WN3LuWeKjow7wTUyCOPMZtnXiBXYXdsZETI6ZLfYnQAKovltckPLBFdNeD61P2rJc7g==", "cpu": [ "arm64" ], @@ -6965,9 +7203,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.59.0.tgz", - "integrity": "sha512-UKFMHPuM9R0iBegwzKF4y0C4J9u8C6MEJgFuXTBerMk7EJ92GFVFYBfOZaSGLu6COf7FxpQNqhNS4c4icUPqxA==", + "version": "4.64.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.64.0.tgz", + "integrity": "sha512-zbZ6iMmLFEsCtTdc2/y1F/cDFVNNCPF7Ae8PCT/wdPE//hGwYp6r+MyCLMFX+kOeIe09Pz6ASfnnfpSTN1FJQQ==", "cpu": [ "ia32" ], @@ -6979,9 +7217,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-gnu": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.59.0.tgz", - "integrity": "sha512-laBkYlSS1n2L8fSo1thDNGrCTQMmxjYY5G0WFWjFFYZkKPjsMBsgJfGf4TLxXrF6RyhI60L8TMOjBMvXiTcxeA==", + "version": "4.64.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.64.0.tgz", + "integrity": "sha512-L6Hw69oNpuYaOr1zCG30v0/DqKYCSRwodPGwIcVZ/6f8SOzq9rxtL/xNVI5MO4wjli+Ko0ErK9uHJL3mNPt8wQ==", "cpu": [ "x64" ], @@ -6993,9 +7231,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.59.0.tgz", - "integrity": "sha512-2HRCml6OztYXyJXAvdDXPKcawukWY2GpR5/nxKp4iBgiO3wcoEGkAaqctIbZcNB6KlUQBIqt8VYkNSj2397EfA==", + "version": "4.64.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.64.0.tgz", + "integrity": "sha512-nl+CTWIgOGszQmUz/kanfgrfFZ4qiwxKIfT/ryl3N3Ewk5tqizmYtNXiqb7Bu/fDtNgu1kyxdFiAUJNur3iysg==", "cpu": [ "x64" ], @@ -7027,22 +7265,15 @@ "fsevents": "~2.3.2" } }, - "node_modules/@rollup/wasm-node/node_modules/@types/estree": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.9.tgz", - "integrity": "sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==", - "dev": true, - "license": "MIT" - }, "node_modules/@schematics/angular": { - "version": "20.3.37", - "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-20.3.37.tgz", - "integrity": "sha512-NF5uNKge+1CuvSbn2cig3AXPsWLSBazh4N0PGUSFy+9QYdlpP00CUFimI2iV2DoFJWA5+z7hQlOMZ9sa7XJmmg==", + "version": "21.2.24", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-21.2.24.tgz", + "integrity": "sha512-eGBr4Yhg/A8Lt8QGtWxmXAyKboX8QBwbDG1hSyApQfHAh9iNFbV7mgWSmk0qPWvRJM38s0t3EEkEg79QZ98dWQ==", "dev": true, "license": "MIT", "dependencies": { - "@angular-devkit/core": "20.3.37", - "@angular-devkit/schematics": "20.3.37", + "@angular-devkit/core": "21.2.24", + "@angular-devkit/schematics": "21.2.24", "jsonc-parser": "3.3.1" }, "engines": { @@ -7052,9 +7283,9 @@ } }, "node_modules/@schematics/angular/node_modules/@angular-devkit/core": { - "version": "20.3.37", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-20.3.37.tgz", - "integrity": "sha512-Mkh0QLXGdzPEqimmhhXn6nS2hoDQhWc7qrQrkvKVLaU9mh0ltd2U/3yOIIeZsRqgKRjbNW+VFlyC0z2unuiXxA==", + "version": "21.2.24", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-21.2.24.tgz", + "integrity": "sha512-QLYLd6OcfQS5qWTlzG1/d8lFTcJDFcsY6sOaGVtrruYiDxrbeM2iJttoIoKzvbNPROFyo3fANVQJOVhytpXWPg==", "dev": true, "license": "MIT", "dependencies": { @@ -7071,7 +7302,7 @@ "yarn": ">= 1.13.0" }, "peerDependencies": { - "chokidar": "^4.0.0" + "chokidar": "^5.0.0" }, "peerDependenciesMeta": { "chokidar": { @@ -7080,16 +7311,16 @@ } }, "node_modules/@schematics/angular/node_modules/@angular-devkit/schematics": { - "version": "20.3.37", - "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-20.3.37.tgz", - "integrity": "sha512-cut471ALIuZR+WyoQLFfypZDNTxwG35O7fEj6wTh65EliNISTkmZaqUOgqNjTT6xJ/YaDwZ9+CuSfTdyO0hMCg==", + "version": "21.2.24", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-21.2.24.tgz", + "integrity": "sha512-mLOme2vfbLrHFmMyM6ybPuGCnCvPiemXWdHnptY2Q7Hzum72DabfgtTNsrMcI2F5zrQV2DDQunNjC5cXqtq4/w==", "dev": true, "license": "MIT", "dependencies": { - "@angular-devkit/core": "20.3.37", + "@angular-devkit/core": "21.2.24", "jsonc-parser": "3.3.1", - "magic-string": "0.30.17", - "ora": "8.2.0", + "magic-string": "0.30.21", + "ora": "9.3.0", "rxjs": "7.8.2" }, "engines": { @@ -7175,12 +7406,18 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@schematics/angular/node_modules/emoji-regex": { - "version": "10.6.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.6.0.tgz", - "integrity": "sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==", + "node_modules/@schematics/angular/node_modules/cli-spinners": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-3.4.0.tgz", + "integrity": "sha512-bXfOC4QcT1tKXGorxL3wbJm6XJPDqEnij2gQ2m7ESQuE+/z9YFIWnl/5RpTiKWbMq3EVKR4fRLJGn6DVfu0mpw==", "dev": true, - "license": "MIT" + "license": "MIT", + "engines": { + "node": ">=18.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, "node_modules/@schematics/angular/node_modules/is-interactive": { "version": "2.0.0", @@ -7209,14 +7446,14 @@ } }, "node_modules/@schematics/angular/node_modules/log-symbols": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-6.0.0.tgz", - "integrity": "sha512-i24m8rpwhmPIS4zscNzK6MSEhk0DUWa/8iYQWxhffV8jkI4Phvs3F+quL5xvS0gdQR0FyTCMMH33Y78dDTzzIw==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-7.0.1.tgz", + "integrity": "sha512-ja1E3yCr9i/0hmBVaM0bfwDjnGy8I/s6PP4DFp+yP+a+mrHO4Rm7DtmnqROTUkHIkqffC84YY7AeqX6oFk0WFg==", "dev": true, "license": "MIT", "dependencies": { - "chalk": "^5.3.0", - "is-unicode-supported": "^1.3.0" + "is-unicode-supported": "^2.0.0", + "yoctocolors": "^2.1.1" }, "engines": { "node": ">=18" @@ -7225,19 +7462,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@schematics/angular/node_modules/log-symbols/node_modules/is-unicode-supported": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz", - "integrity": "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/@schematics/angular/node_modules/onetime": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/onetime/-/onetime-7.0.0.tgz", @@ -7255,24 +7479,23 @@ } }, "node_modules/@schematics/angular/node_modules/ora": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/ora/-/ora-8.2.0.tgz", - "integrity": "sha512-weP+BZ8MVNnlCm8c0Qdc1WSWq4Qn7I+9CJGm7Qali6g44e/PUzbjNqJX5NJ9ljlNMosfJvg1fKEGILklK9cwnw==", + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/ora/-/ora-9.3.0.tgz", + "integrity": "sha512-lBX72MWFduWEf7v7uWf5DHp9Jn5BI8bNPGuFgtXMmr2uDz2Gz2749y3am3agSDdkhHPHYmmxEGSKH85ZLGzgXw==", "dev": true, "license": "MIT", "dependencies": { - "chalk": "^5.3.0", + "chalk": "^5.6.2", "cli-cursor": "^5.0.0", - "cli-spinners": "^2.9.2", + "cli-spinners": "^3.2.0", "is-interactive": "^2.0.0", - "is-unicode-supported": "^2.0.0", - "log-symbols": "^6.0.0", - "stdin-discarder": "^0.2.2", - "string-width": "^7.2.0", - "strip-ansi": "^7.1.0" + "is-unicode-supported": "^2.1.0", + "log-symbols": "^7.0.1", + "stdin-discarder": "^0.3.1", + "string-width": "^8.1.0" }, "engines": { - "node": ">=18" + "node": ">=20" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -7329,18 +7552,17 @@ } }, "node_modules/@schematics/angular/node_modules/string-width": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", - "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-8.3.0.tgz", + "integrity": "sha512-ZbmZM0JCihQN91dWnxoipT2KOEyHqEyfRXUyjuRhW8b/xnqPDoq4gWEVApTVa9db2wN8mmoikgFBbjh71+cGeQ==", "dev": true, "license": "MIT", "dependencies": { - "emoji-regex": "^10.3.0", - "get-east-asian-width": "^1.0.0", - "strip-ansi": "^7.1.0" + "get-east-asian-width": "^1.5.0", + "strip-ansi": "^7.1.2" }, "engines": { - "node": ">=18" + "node": ">=20" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -7413,16 +7635,6 @@ "node": "^20.17.0 || >=22.9.0" } }, - "node_modules/@sigstore/sign/node_modules/proc-log": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-6.1.0.tgz", - "integrity": "sha512-iG+GYldRf2BQ0UDUAd6JQ/RwzaQy6mXmsk/IzlYyal4A4SNFw54MeH4/tLkF4I5WoWG9SQwuqWzS99jaFQHBuQ==", - "dev": true, - "license": "ISC", - "engines": { - "node": "^20.17.0 || >=22.9.0" - } - }, "node_modules/@sigstore/tuf": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/@sigstore/tuf/-/tuf-4.0.2.tgz", @@ -7458,6 +7670,12 @@ "integrity": "sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==", "dev": true }, + "node_modules/@standard-schema/spec": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@standard-schema/spec/-/spec-1.1.0.tgz", + "integrity": "sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==", + "license": "MIT" + }, "node_modules/@tufjs/canonical-json": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/@tufjs/canonical-json/-/canonical-json-2.0.0.tgz", @@ -7521,6 +7739,17 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/@tybys/wasm-util": { + "version": "0.10.4", + "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.4.tgz", + "integrity": "sha512-W3c4gRigFS0T/Ma4qIYF3GDAc5AQdHb1yL5znJT1Zv1YaD9Kitx656wBjvr19qbiosmZT8lWDM5BEMynUqX65A==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, "node_modules/@types/body-parser": { "version": "1.19.6", "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.6.tgz", @@ -7615,9 +7844,9 @@ } }, "node_modules/@types/estree": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", - "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.9.tgz", + "integrity": "sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==", "dev": true, "license": "MIT" }, @@ -7784,9 +8013,9 @@ } }, "node_modules/@vitejs/plugin-basic-ssl": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-basic-ssl/-/plugin-basic-ssl-2.1.0.tgz", - "integrity": "sha512-dOxxrhgyDIEUADhb/8OlV9JIqYLgos03YorAueTIeOUskLJSEsfwCByjbu98ctXitUN3znXKp0bYD/WHSudCeA==", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-basic-ssl/-/plugin-basic-ssl-2.1.4.tgz", + "integrity": "sha512-HXciTXN/sDBYWgeAD4V4s0DN0g72x5mlxQhHxtYu3Tt8BLa6MzcJZUyDVFCdtjNs3bfENVHVzOsmooTVuNgAAw==", "dev": true, "license": "MIT", "engines": { @@ -8112,26 +8341,26 @@ } }, "node_modules/algoliasearch": { - "version": "5.35.0", - "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-5.35.0.tgz", - "integrity": "sha512-Y+moNhsqgLmvJdgTsO4GZNgsaDWv8AOGAaPeIeHKlDn/XunoAqYbA+XNpBd1dW8GOXAUDyxC9Rxc7AV4kpFcIg==", + "version": "5.48.1", + "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-5.48.1.tgz", + "integrity": "sha512-Rf7xmeuIo7nb6S4mp4abW2faW8DauZyE2faBIKFaUfP3wnpOvNSbiI5AwVhqBNj0jPgBWEvhyCu0sLjN2q77Rg==", "dev": true, "license": "MIT", "dependencies": { - "@algolia/abtesting": "1.1.0", - "@algolia/client-abtesting": "5.35.0", - "@algolia/client-analytics": "5.35.0", - "@algolia/client-common": "5.35.0", - "@algolia/client-insights": "5.35.0", - "@algolia/client-personalization": "5.35.0", - "@algolia/client-query-suggestions": "5.35.0", - "@algolia/client-search": "5.35.0", - "@algolia/ingestion": "1.35.0", - "@algolia/monitoring": "1.35.0", - "@algolia/recommend": "5.35.0", - "@algolia/requester-browser-xhr": "5.35.0", - "@algolia/requester-fetch": "5.35.0", - "@algolia/requester-node-http": "5.35.0" + "@algolia/abtesting": "1.14.1", + "@algolia/client-abtesting": "5.48.1", + "@algolia/client-analytics": "5.48.1", + "@algolia/client-common": "5.48.1", + "@algolia/client-insights": "5.48.1", + "@algolia/client-personalization": "5.48.1", + "@algolia/client-query-suggestions": "5.48.1", + "@algolia/client-search": "5.48.1", + "@algolia/ingestion": "1.48.1", + "@algolia/monitoring": "1.48.1", + "@algolia/recommend": "5.48.1", + "@algolia/requester-browser-xhr": "5.48.1", + "@algolia/requester-fetch": "5.48.1", + "@algolia/requester-node-http": "5.48.1" }, "engines": { "node": ">= 14.0.0" @@ -8284,6 +8513,13 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "license": "Python-2.0" + }, "node_modules/array-buffer-byte-length": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", @@ -8384,9 +8620,9 @@ } }, "node_modules/autoprefixer": { - "version": "10.4.21", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.21.tgz", - "integrity": "sha512-O+A6LWV5LDHSJD3LjHYoNi4VLsj/Whi7k6zG12xTYaU4cQ8oxQGckXNX8cRHK5yOZ/ppVHe0ZBXGzSV9jXdVbQ==", + "version": "10.4.27", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.27.tgz", + "integrity": "sha512-NP9APE+tO+LuJGn7/9+cohklunJsXWiaWEfV3si4Gi/XHDwVNgkwr1J3RQYFIvPy76GmJ9/bW8vyoU1LcxwKHA==", "dev": true, "funding": [ { @@ -8404,10 +8640,9 @@ ], "license": "MIT", "dependencies": { - "browserslist": "^4.24.4", - "caniuse-lite": "^1.0.30001702", - "fraction.js": "^4.3.7", - "normalize-range": "^0.1.2", + "browserslist": "^4.28.1", + "caniuse-lite": "^1.0.30001774", + "fraction.js": "^5.3.4", "picocolors": "^1.1.1", "postcss-value-parser": "^4.2.0" }, @@ -8627,9 +8862,9 @@ "license": "MIT" }, "node_modules/beasties": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/beasties/-/beasties-0.3.5.tgz", - "integrity": "sha512-NaWu+f4YrJxEttJSm16AzMIFtVldCvaJ68b1L098KpqXmxt9xOLtKoLkKxb8ekhOrLqEJAbvT6n6SEvB/sac7A==", + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/beasties/-/beasties-0.4.1.tgz", + "integrity": "sha512-2Imdcw3LznDuxAbJM26RHniOLAzE6WgrK8OuvVXCQtNBS8rsnD9zsSEa3fHl4hHpUY7BYTlrpvtPVbvu9G6neg==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -8640,10 +8875,11 @@ "htmlparser2": "^10.0.0", "picocolors": "^1.1.1", "postcss": "^8.4.49", - "postcss-media-query-parser": "^0.2.3" + "postcss-media-query-parser": "^0.2.3", + "postcss-safe-parser": "^7.0.1" }, "engines": { - "node": ">=14.0.0" + "node": ">=18.0.0" } }, "node_modules/big.js": { @@ -9004,6 +9240,7 @@ "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } @@ -9111,6 +9348,7 @@ "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz", "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", "dev": true, + "peer": true, "engines": { "node": ">=6" }, @@ -9119,17 +9357,17 @@ } }, "node_modules/cli-truncate": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-4.0.0.tgz", - "integrity": "sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-5.2.0.tgz", + "integrity": "sha512-xRwvIOMGrfOAnM1JYtqQImuaNtDEv9v6oIYAs4LIHwTiKee8uwvIi363igssOC0O5U04i4AlENs79LQLu9tEMw==", "dev": true, "license": "MIT", "dependencies": { - "slice-ansi": "^5.0.0", - "string-width": "^7.0.0" + "slice-ansi": "^8.0.0", + "string-width": "^8.2.0" }, "engines": { - "node": ">=18" + "node": ">=20" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -9148,26 +9386,18 @@ "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, - "node_modules/cli-truncate/node_modules/emoji-regex": { - "version": "10.6.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.6.0.tgz", - "integrity": "sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==", - "dev": true, - "license": "MIT" - }, "node_modules/cli-truncate/node_modules/string-width": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", - "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-8.3.0.tgz", + "integrity": "sha512-ZbmZM0JCihQN91dWnxoipT2KOEyHqEyfRXUyjuRhW8b/xnqPDoq4gWEVApTVa9db2wN8mmoikgFBbjh71+cGeQ==", "dev": true, "license": "MIT", "dependencies": { - "emoji-regex": "^10.3.0", - "get-east-asian-width": "^1.0.0", - "strip-ansi": "^7.1.0" + "get-east-asian-width": "^1.5.0", + "strip-ansi": "^7.1.2" }, "engines": { - "node": ">=18" + "node": ">=20" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -9622,10 +9852,11 @@ } }, "node_modules/cosmiconfig": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz", - "integrity": "sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==", + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.2.tgz", + "integrity": "sha512-gtTZxTDau1wL7Y7zifc2dd8jHSK/k6BTx/2Xp/BpdlAdnlYWFVt7qhJqgwi7637yRwRQ3qL4ZidbB4I8tA5VOg==", "dev": true, + "license": "MIT", "dependencies": { "env-paths": "^2.2.1", "import-fresh": "^3.3.0", @@ -9647,24 +9878,6 @@ } } }, - "node_modules/cosmiconfig/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "node_modules/cosmiconfig/node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, "node_modules/cross-spawn": { "version": "7.0.6", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", @@ -9697,20 +9910,20 @@ } }, "node_modules/css-loader": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-7.1.2.tgz", - "integrity": "sha512-6WvYYn7l/XEGN8Xu2vWFt9nVzrCn39vKyTEFf/ExEyoksJjjSZV/0/35XPlMbpnr6VGhZIUg5yJrL8tGfes/FA==", + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-7.1.3.tgz", + "integrity": "sha512-frbERmjT0UC5lMheWpJmMilnt9GEhbZJN/heUb7/zaJYeIzj5St9HvDcfshzzOqbsS+rYpMk++2SD3vGETDSyA==", "dev": true, "license": "MIT", "dependencies": { "icss-utils": "^5.1.0", - "postcss": "^8.4.33", + "postcss": "^8.4.40", "postcss-modules-extract-imports": "^3.1.0", "postcss-modules-local-by-default": "^4.0.5", "postcss-modules-scope": "^3.2.0", "postcss-modules-values": "^4.0.0", "postcss-value-parser": "^4.2.0", - "semver": "^7.5.4" + "semver": "^7.6.3" }, "engines": { "node": ">= 18.12.0" @@ -10228,6 +10441,7 @@ "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=0.12" }, @@ -10974,23 +11188,6 @@ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", "dev": true }, - "node_modules/fast-glob": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", - "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.8" - }, - "engines": { - "node": ">=8.6.0" - } - }, "node_modules/fast-uri": { "version": "3.1.8", "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.8.tgz", @@ -11008,16 +11205,6 @@ ], "license": "BSD-3-Clause" }, - "node_modules/fastq": { - "version": "1.20.3", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.20.3.tgz", - "integrity": "sha512-XKv5nnLs6nLF71NgiKJLIZFLkPyIEuOselLG7ujZnGrRfQK8HpvY+WqKhAJUAdLomwVHErVS4LfxFlPq0/FTAw==", - "dev": true, - "license": "ISC", - "dependencies": { - "reusify": "^1.0.4" - } - }, "node_modules/faye-websocket": { "version": "0.11.4", "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", @@ -11232,16 +11419,16 @@ } }, "node_modules/fraction.js": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", - "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", + "version": "5.3.4", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-5.3.4.tgz", + "integrity": "sha512-1X1NTtiJphryn/uLQz3whtY6jK3fTqoE3ohKs0tT+Ujr1W59oopxmoEh7Lu5p6vBaPbgoM0bzveAW4Qi5RyWDQ==", "dev": true, "license": "MIT", "engines": { "node": "*" }, "funding": { - "type": "patreon", + "type": "github", "url": "https://github.com/sponsors/rawify" } }, @@ -12086,10 +12273,11 @@ "license": "MIT" }, "node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", "dev": true, + "license": "MIT", "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" @@ -12101,15 +12289,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/import-fresh/node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true, - "engines": { - "node": ">=4" - } - }, "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -12127,13 +12306,13 @@ "dev": true }, "node_modules/ini": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ini/-/ini-5.0.0.tgz", - "integrity": "sha512-+N0ngpO3e7cRUWOJAS7qw0IZIVc6XPrW4MlFBdD066F2L4k1L6ker3hLqSq7iXxU5tgS4WGkIUElWn5vogAEnw==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-6.0.0.tgz", + "integrity": "sha512-IBTdIkzZNOpqm7q3dRqJvMaldXjDHWkEDfrwGEQTs5eaQMWV+djAhR+wahyNNMAa+qpbDUhBMVt4ZKNwpPm7xQ==", "dev": true, "license": "ISC", "engines": { - "node": "^18.17.0 || >=20.5.0" + "node": "^20.17.0 || >=22.9.0" } }, "node_modules/injection-js": { @@ -12346,6 +12525,19 @@ "node": ">=0.10.0" } }, + "node_modules/is-in-ssh": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-in-ssh/-/is-in-ssh-1.0.0.tgz", + "integrity": "sha512-jYa6Q9rH90kR1vKB6NM7qqd1mge3Fx4Dhw5TVlK1MUBqhEOuCagrEHMevNuCcbECmXZ0ThXkRm+Ymr51HwEPAw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/is-inside-container": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz", @@ -12776,12 +12968,13 @@ } }, "node_modules/jiti": { - "version": "1.21.0", - "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.0.tgz", - "integrity": "sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==", + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.7.0.tgz", + "integrity": "sha512-AC/7JofJvZGrrneWNaEnJeOLUx+JlGt7tNa0wZiRPT4MY1wmfKjt2+6O2p2uz2+skll8OZZmJMNqeke7kKbNgQ==", "dev": true, + "license": "MIT", "bin": { - "jiti": "bin/jiti.js" + "jiti": "lib/jiti-cli.mjs" } }, "node_modules/jose": { @@ -12801,6 +12994,29 @@ "dev": true, "license": "MIT" }, + "node_modules/js-yaml": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.3.2.tgz", + "integrity": "sha512-SFNOvSJ+Dgf/9An904Yx+CgSlIPCkIpao4qo51lpee25TIRejdH3rhR4EZMGoNx3/TP3O+wzWuiTFl4sqbltzA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/puzrin" + }, + { + "type": "github", + "url": "https://github.com/sponsors/nodeca" + } + ], + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, "node_modules/jsesc": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", @@ -13139,9 +13355,9 @@ } }, "node_modules/less-loader": { - "version": "12.3.0", - "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-12.3.0.tgz", - "integrity": "sha512-0M6+uYulvYIWs52y0LqN4+QM9TqWAohYSNTo4htE8Z7Cn3G/qQMEmktfHmyJT23k+20kU9zHH2wrfFXkxNLtVw==", + "version": "12.3.1", + "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-12.3.1.tgz", + "integrity": "sha512-JZZmG7gMzoDP3VGeEG8Sh6FW5wygB5jYL7Wp29FFihuRTsIBacqO3LbRPr2yStYD11riVf13selLm/CPFRDBRQ==", "dev": true, "license": "MIT", "engines": { @@ -13152,7 +13368,7 @@ "url": "https://opencollective.com/webpack" }, "peerDependencies": { - "@rspack/core": "0.x || 1.x", + "@rspack/core": "0.x || ^1.0.0 || ^2.0.0-0", "less": "^3.5.0 || ^4.0.0", "webpack": "^5.0.0" }, @@ -13225,16 +13441,17 @@ "version": "1.2.4", "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/listr2": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/listr2/-/listr2-9.0.1.tgz", - "integrity": "sha512-SL0JY3DaxylDuo/MecFeiC+7pedM0zia33zl0vcjgwcq1q1FWWF1To9EIauPbl8GbMCU0R2e0uJ8bZunhYKD2g==", + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-9.0.5.tgz", + "integrity": "sha512-ME4Fb83LgEgwNw96RKNvKV4VTLuXfoKudAmm2lP8Kk87KaMK0/Xrx/aAkMWmT8mDb+3MlFDspfbCs7adjRxA2g==", "dev": true, "license": "MIT", "dependencies": { - "cli-truncate": "^4.0.0", + "cli-truncate": "^5.0.0", "colorette": "^2.0.20", "eventemitter3": "^5.0.1", "log-update": "^6.1.0", @@ -13338,14 +13555,15 @@ } }, "node_modules/lmdb": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/lmdb/-/lmdb-3.4.2.tgz", - "integrity": "sha512-nwVGUfTBUwJKXd6lRV8pFNfnrCC1+l49ESJRM19t/tFb/97QfJEixe5DYRvug5JO7DSFKoKaVy7oGMt5rVqZvg==", + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/lmdb/-/lmdb-3.5.1.tgz", + "integrity": "sha512-NYHA0MRPjvNX+vSw8Xxg6FLKxzAG+e7Pt8RqAQA/EehzHVXq9SxDqJIN3JL1hK0dweb884y8kIh6rkWvPyg9Wg==", "dev": true, "hasInstallScript": true, "license": "MIT", "optional": true, "dependencies": { + "@harperfast/extended-iterable": "^1.0.3", "msgpackr": "^1.11.2", "node-addon-api": "^6.1.0", "node-gyp-build-optional-packages": "5.2.2", @@ -13356,13 +13574,13 @@ "download-lmdb-prebuilds": "bin/download-prebuilds.js" }, "optionalDependencies": { - "@lmdb/lmdb-darwin-arm64": "3.4.2", - "@lmdb/lmdb-darwin-x64": "3.4.2", - "@lmdb/lmdb-linux-arm": "3.4.2", - "@lmdb/lmdb-linux-arm64": "3.4.2", - "@lmdb/lmdb-linux-x64": "3.4.2", - "@lmdb/lmdb-win32-arm64": "3.4.2", - "@lmdb/lmdb-win32-x64": "3.4.2" + "@lmdb/lmdb-darwin-arm64": "3.5.1", + "@lmdb/lmdb-darwin-x64": "3.5.1", + "@lmdb/lmdb-linux-arm": "3.5.1", + "@lmdb/lmdb-linux-arm64": "3.5.1", + "@lmdb/lmdb-linux-x64": "3.5.1", + "@lmdb/lmdb-win32-arm64": "3.5.1", + "@lmdb/lmdb-win32-x64": "3.5.1" } }, "node_modules/load-json-file": { @@ -13779,13 +13997,13 @@ } }, "node_modules/magic-string": { - "version": "0.30.17", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz", - "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==", + "version": "0.30.21", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", + "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", "dev": true, "license": "MIT", "dependencies": { - "@jridgewell/sourcemap-codec": "^1.5.0" + "@jridgewell/sourcemap-codec": "^1.5.5" } }, "node_modules/make-dir": { @@ -13858,16 +14076,6 @@ "url": "https://opencollective.com/express" } }, - "node_modules/make-fetch-happen/node_modules/proc-log": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-6.1.0.tgz", - "integrity": "sha512-iG+GYldRf2BQ0UDUAd6JQ/RwzaQy6mXmsk/IzlYyal4A4SNFw54MeH4/tLkF4I5WoWG9SQwuqWzS99jaFQHBuQ==", - "dev": true, - "license": "ISC", - "engines": { - "node": "^20.17.0 || >=22.9.0" - } - }, "node_modules/math-intrinsics": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", @@ -13943,16 +14151,6 @@ "dev": true, "license": "MIT" }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, "node_modules/methods": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", @@ -14047,9 +14245,9 @@ } }, "node_modules/mini-css-extract-plugin": { - "version": "2.9.4", - "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.9.4.tgz", - "integrity": "sha512-ZWYT7ln73Hptxqxk2DxPU9MmapXRhxkJD6tkSR04dnQxm8BGu2hzgKLugK5yySD97u/8yy7Ma7E76k9ZdvtjkQ==", + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.10.0.tgz", + "integrity": "sha512-540P2c5dYnJlyJxTaSloliZexv8rji6rY8FhQN+WF/82iHQfA23j/xtJx97L+mXOML27EqksSek/g4eK7jaL3g==", "dev": true, "license": "MIT", "dependencies": { @@ -14326,575 +14524,133 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-2.0.0.tgz", "integrity": "sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA==", - "dev": true, - "license": "ISC", - "engines": { - "node": "^18.17.0 || >=20.5.0" - } - }, - "node_modules/nanoid": { - "version": "3.3.19", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.19.tgz", - "integrity": "sha512-Y2tUNy4ouw6tq5oDSKeQYGOyhkUBhNOcGV/02KC+6kd9eDGqdZd++mjMiIDilrBYvjEnCYvVtsuHCuP+okSfug==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/nblas": { - "version": "2.1.13", - "resolved": "https://registry.npmjs.org/nblas/-/nblas-2.1.13.tgz", - "integrity": "sha512-LsnxQIUhMToa3+J/B5t799pXYKKskmfyMwmpDf6BS/MY46tzViZd/Bixc4fl5CEizbWJ/huaj4k0Vojv112MEQ==", - "hasInstallScript": true, - "optional": true - }, - "node_modules/needle": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/needle/-/needle-3.5.0.tgz", - "integrity": "sha512-jaQyPKKk2YokHrEg+vFDYxXIHTCBgiZwSHOoVx/8V3GIBS8/VN6NdVRmg8q1ERtPkMvmOvebsgga4sAj5hls/w==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "iconv-lite": "^0.6.3", - "sax": "^1.2.4" - }, - "bin": { - "needle": "bin/needle" - }, - "engines": { - "node": ">= 4.4.x" - } - }, - "node_modules/needle/node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "dev": true - }, - "node_modules/ng-packagr": { - "version": "20.3.2", - "resolved": "https://registry.npmjs.org/ng-packagr/-/ng-packagr-20.3.2.tgz", - "integrity": "sha512-yW5ME0hqTz38r/th/7zVwX5oSIw1FviSA2PUlGZdVjghDme/KX6iiwmOBmlt9E9whNmwijEC6Gn3KKbrsBx8ig==", - "dev": true, - "license": "MIT", - "dependencies": { - "@ampproject/remapping": "^2.3.0", - "@rollup/plugin-json": "^6.1.0", - "@rollup/wasm-node": "^4.24.0", - "ajv": "^8.17.1", - "ansi-colors": "^4.1.3", - "browserslist": "^4.22.1", - "chokidar": "^4.0.1", - "commander": "^14.0.0", - "dependency-graph": "^1.0.0", - "esbuild": "^0.25.0", - "find-cache-directory": "^6.0.0", - "injection-js": "^2.4.0", - "jsonc-parser": "^3.3.1", - "less": "^4.2.0", - "ora": "^8.2.0", - "piscina": "^5.0.0", - "postcss": "^8.4.47", - "rollup-plugin-dts": "^6.2.0", - "rxjs": "^7.8.1", - "sass": "^1.81.0", - "tinyglobby": "^0.2.12" - }, - "bin": { - "ng-packagr": "src/cli/main.js" - }, - "engines": { - "node": "^20.19.0 || ^22.12.0 || >=24.0.0" - }, - "optionalDependencies": { - "rollup": "^4.24.0" - }, - "peerDependencies": { - "@angular/compiler-cli": "^20.0.0", - "tailwindcss": "^2.0.0 || ^3.0.0 || ^4.0.0", - "tslib": "^2.3.0", - "typescript": ">=5.8 <6.0" - }, - "peerDependenciesMeta": { - "tailwindcss": { - "optional": true - } - } - }, - "node_modules/ng-packagr/node_modules/@esbuild/aix-ppc64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.12.tgz", - "integrity": "sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "aix" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/ng-packagr/node_modules/@esbuild/android-arm": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.12.tgz", - "integrity": "sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/ng-packagr/node_modules/@esbuild/android-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.12.tgz", - "integrity": "sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/ng-packagr/node_modules/@esbuild/android-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.12.tgz", - "integrity": "sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/ng-packagr/node_modules/@esbuild/darwin-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.12.tgz", - "integrity": "sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/ng-packagr/node_modules/@esbuild/darwin-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.12.tgz", - "integrity": "sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/ng-packagr/node_modules/@esbuild/freebsd-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.12.tgz", - "integrity": "sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/ng-packagr/node_modules/@esbuild/freebsd-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.12.tgz", - "integrity": "sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/ng-packagr/node_modules/@esbuild/linux-arm": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.12.tgz", - "integrity": "sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/ng-packagr/node_modules/@esbuild/linux-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.12.tgz", - "integrity": "sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/ng-packagr/node_modules/@esbuild/linux-ia32": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.12.tgz", - "integrity": "sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/ng-packagr/node_modules/@esbuild/linux-loong64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.12.tgz", - "integrity": "sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng==", - "cpu": [ - "loong64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/ng-packagr/node_modules/@esbuild/linux-mips64el": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.12.tgz", - "integrity": "sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw==", - "cpu": [ - "mips64el" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/ng-packagr/node_modules/@esbuild/linux-ppc64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.12.tgz", - "integrity": "sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/ng-packagr/node_modules/@esbuild/linux-riscv64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.12.tgz", - "integrity": "sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w==", - "cpu": [ - "riscv64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/ng-packagr/node_modules/@esbuild/linux-s390x": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.12.tgz", - "integrity": "sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg==", - "cpu": [ - "s390x" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/ng-packagr/node_modules/@esbuild/linux-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.12.tgz", - "integrity": "sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/ng-packagr/node_modules/@esbuild/netbsd-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.12.tgz", - "integrity": "sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/ng-packagr/node_modules/@esbuild/netbsd-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.12.tgz", - "integrity": "sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/ng-packagr/node_modules/@esbuild/openbsd-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.12.tgz", - "integrity": "sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/ng-packagr/node_modules/@esbuild/openbsd-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.12.tgz", - "integrity": "sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ], + "dev": true, + "license": "ISC", "engines": { - "node": ">=18" + "node": "^18.17.0 || >=20.5.0" } }, - "node_modules/ng-packagr/node_modules/@esbuild/openharmony-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.12.tgz", - "integrity": "sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg==", - "cpu": [ - "arm64" - ], + "node_modules/nanoid": { + "version": "3.3.19", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.19.tgz", + "integrity": "sha512-Y2tUNy4ouw6tq5oDSKeQYGOyhkUBhNOcGV/02KC+6kd9eDGqdZd++mjMiIDilrBYvjEnCYvVtsuHCuP+okSfug==", "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openharmony" + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, "engines": { - "node": ">=18" + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, - "node_modules/ng-packagr/node_modules/@esbuild/sunos-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.12.tgz", - "integrity": "sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w==", - "cpu": [ - "x64" - ], + "node_modules/nblas": { + "version": "2.1.13", + "resolved": "https://registry.npmjs.org/nblas/-/nblas-2.1.13.tgz", + "integrity": "sha512-LsnxQIUhMToa3+J/B5t799pXYKKskmfyMwmpDf6BS/MY46tzViZd/Bixc4fl5CEizbWJ/huaj4k0Vojv112MEQ==", + "hasInstallScript": true, + "optional": true + }, + "node_modules/needle": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/needle/-/needle-3.5.0.tgz", + "integrity": "sha512-jaQyPKKk2YokHrEg+vFDYxXIHTCBgiZwSHOoVx/8V3GIBS8/VN6NdVRmg8q1ERtPkMvmOvebsgga4sAj5hls/w==", "dev": true, "license": "MIT", "optional": true, - "os": [ - "sunos" - ], + "dependencies": { + "iconv-lite": "^0.6.3", + "sax": "^1.2.4" + }, + "bin": { + "needle": "bin/needle" + }, "engines": { - "node": ">=18" + "node": ">= 4.4.x" } }, - "node_modules/ng-packagr/node_modules/@esbuild/win32-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.12.tgz", - "integrity": "sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg==", - "cpu": [ - "arm64" - ], + "node_modules/needle/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", "dev": true, "license": "MIT", "optional": true, - "os": [ - "win32" - ], + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, "engines": { - "node": ">=18" + "node": ">=0.10.0" } }, - "node_modules/ng-packagr/node_modules/@esbuild/win32-ia32": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.12.tgz", - "integrity": "sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==", - "cpu": [ - "ia32" - ], + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], "engines": { - "node": ">=18" + "node": ">= 0.6" } }, - "node_modules/ng-packagr/node_modules/@esbuild/win32-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.12.tgz", - "integrity": "sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==", - "cpu": [ - "x64" - ], + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true + }, + "node_modules/ng-packagr": { + "version": "21.2.7", + "resolved": "https://registry.npmjs.org/ng-packagr/-/ng-packagr-21.2.7.tgz", + "integrity": "sha512-G1LWptU48IbGQcAqW77JfPpGwga5dI+XUOsyBDD1zPuA1QeLqnQTPqV4tSkbL8WZJwwmqgttRrL89DD35p8vuQ==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "win32" - ], + "dependencies": { + "@ampproject/remapping": "^2.3.0", + "@rollup/plugin-json": "^6.1.0", + "@rollup/wasm-node": "^4.24.0", + "ajv": "^8.17.1", + "ansi-colors": "^4.1.3", + "browserslist": "^4.26.0", + "chokidar": "^5.0.0", + "commander": "^14.0.0", + "dependency-graph": "^1.0.0", + "esbuild": "^0.28.1", + "find-cache-directory": "^6.0.0", + "injection-js": "^2.4.0", + "jsonc-parser": "^3.3.1", + "less": "^4.2.0", + "ora": "^9.0.0", + "piscina": "^5.0.0", + "postcss": "^8.4.47", + "rollup-plugin-dts": "~6.4.1", + "rxjs": "^7.8.1", + "sass": "^1.81.0", + "tinyglobby": "^0.2.12" + }, + "bin": { + "ng-packagr": "src/cli/main.js" + }, "engines": { - "node": ">=18" + "node": "^20.19.0 || ^22.12.0 || >=24.0.0" + }, + "optionalDependencies": { + "rollup": "^4.24.0" + }, + "peerDependencies": { + "@angular/compiler-cli": "^21.0.0 || ^21.2.0-next", + "tailwindcss": "^2.0.0 || ^3.0.0 || ^4.0.0", + "tslib": "^2.3.0", + "typescript": ">=5.9 <6.0" + }, + "peerDependenciesMeta": { + "tailwindcss": { + "optional": true + } } }, "node_modules/ng-packagr/node_modules/ajv": { @@ -14941,16 +14697,16 @@ } }, "node_modules/ng-packagr/node_modules/chokidar": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", - "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-5.0.0.tgz", + "integrity": "sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw==", "dev": true, "license": "MIT", "dependencies": { - "readdirp": "^4.0.1" + "readdirp": "^5.0.0" }, "engines": { - "node": ">= 14.16.0" + "node": ">= 20.19.0" }, "funding": { "url": "https://paulmillr.com/funding/" @@ -14972,63 +14728,27 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/ng-packagr/node_modules/commander": { - "version": "14.0.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-14.0.3.tgz", - "integrity": "sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw==", + "node_modules/ng-packagr/node_modules/cli-spinners": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-3.4.0.tgz", + "integrity": "sha512-bXfOC4QcT1tKXGorxL3wbJm6XJPDqEnij2gQ2m7ESQuE+/z9YFIWnl/5RpTiKWbMq3EVKR4fRLJGn6DVfu0mpw==", "dev": true, "license": "MIT", "engines": { - "node": ">=20" + "node": ">=18.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/ng-packagr/node_modules/emoji-regex": { - "version": "10.6.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.6.0.tgz", - "integrity": "sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==", - "dev": true, - "license": "MIT" - }, - "node_modules/ng-packagr/node_modules/esbuild": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.12.tgz", - "integrity": "sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==", + "node_modules/ng-packagr/node_modules/commander": { + "version": "14.0.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-14.0.3.tgz", + "integrity": "sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw==", "dev": true, - "hasInstallScript": true, "license": "MIT", - "bin": { - "esbuild": "bin/esbuild" - }, "engines": { - "node": ">=18" - }, - "optionalDependencies": { - "@esbuild/aix-ppc64": "0.25.12", - "@esbuild/android-arm": "0.25.12", - "@esbuild/android-arm64": "0.25.12", - "@esbuild/android-x64": "0.25.12", - "@esbuild/darwin-arm64": "0.25.12", - "@esbuild/darwin-x64": "0.25.12", - "@esbuild/freebsd-arm64": "0.25.12", - "@esbuild/freebsd-x64": "0.25.12", - "@esbuild/linux-arm": "0.25.12", - "@esbuild/linux-arm64": "0.25.12", - "@esbuild/linux-ia32": "0.25.12", - "@esbuild/linux-loong64": "0.25.12", - "@esbuild/linux-mips64el": "0.25.12", - "@esbuild/linux-ppc64": "0.25.12", - "@esbuild/linux-riscv64": "0.25.12", - "@esbuild/linux-s390x": "0.25.12", - "@esbuild/linux-x64": "0.25.12", - "@esbuild/netbsd-arm64": "0.25.12", - "@esbuild/netbsd-x64": "0.25.12", - "@esbuild/openbsd-arm64": "0.25.12", - "@esbuild/openbsd-x64": "0.25.12", - "@esbuild/openharmony-arm64": "0.25.12", - "@esbuild/sunos-x64": "0.25.12", - "@esbuild/win32-arm64": "0.25.12", - "@esbuild/win32-ia32": "0.25.12", - "@esbuild/win32-x64": "0.25.12" + "node": ">=20" } }, "node_modules/ng-packagr/node_modules/is-interactive": { @@ -15058,14 +14778,14 @@ } }, "node_modules/ng-packagr/node_modules/log-symbols": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-6.0.0.tgz", - "integrity": "sha512-i24m8rpwhmPIS4zscNzK6MSEhk0DUWa/8iYQWxhffV8jkI4Phvs3F+quL5xvS0gdQR0FyTCMMH33Y78dDTzzIw==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-7.0.1.tgz", + "integrity": "sha512-ja1E3yCr9i/0hmBVaM0bfwDjnGy8I/s6PP4DFp+yP+a+mrHO4Rm7DtmnqROTUkHIkqffC84YY7AeqX6oFk0WFg==", "dev": true, "license": "MIT", "dependencies": { - "chalk": "^5.3.0", - "is-unicode-supported": "^1.3.0" + "is-unicode-supported": "^2.0.0", + "yoctocolors": "^2.1.1" }, "engines": { "node": ">=18" @@ -15074,19 +14794,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/ng-packagr/node_modules/log-symbols/node_modules/is-unicode-supported": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz", - "integrity": "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/ng-packagr/node_modules/onetime": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/onetime/-/onetime-7.0.0.tgz", @@ -15104,37 +14811,36 @@ } }, "node_modules/ng-packagr/node_modules/ora": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/ora/-/ora-8.2.0.tgz", - "integrity": "sha512-weP+BZ8MVNnlCm8c0Qdc1WSWq4Qn7I+9CJGm7Qali6g44e/PUzbjNqJX5NJ9ljlNMosfJvg1fKEGILklK9cwnw==", + "version": "9.4.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-9.4.1.tgz", + "integrity": "sha512-6VlU9MLXbjVQD04AZCMX28hVtA5bUoadvUqO76MUCVA0ilwJbMiHsITRPfyVm6p/BC0Av/BXMujx39WCe1LEqw==", "dev": true, "license": "MIT", "dependencies": { - "chalk": "^5.3.0", + "chalk": "^5.6.2", "cli-cursor": "^5.0.0", - "cli-spinners": "^2.9.2", + "cli-spinners": "^3.2.0", "is-interactive": "^2.0.0", - "is-unicode-supported": "^2.0.0", - "log-symbols": "^6.0.0", - "stdin-discarder": "^0.2.2", - "string-width": "^7.2.0", - "strip-ansi": "^7.1.0" + "is-unicode-supported": "^2.1.0", + "log-symbols": "^7.0.1", + "stdin-discarder": "^0.3.2", + "string-width": "^8.1.0" }, "engines": { - "node": ">=18" + "node": ">=20" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/ng-packagr/node_modules/readdirp": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", - "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-5.1.1.tgz", + "integrity": "sha512-Kko+Y5XQ6fM+Ce3dq3m9YGxnacYZYl9cA1wZjaF3Vbry2L3i1qVg8+CAgNPsXRArPMUMCaOR7oa9Nqntc43JKA==", "dev": true, "license": "MIT", "engines": { - "node": ">= 14.18.0" + "node": ">= 20.19.0" }, "funding": { "type": "individual", @@ -15172,18 +14878,17 @@ } }, "node_modules/ng-packagr/node_modules/string-width": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", - "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-8.3.0.tgz", + "integrity": "sha512-ZbmZM0JCihQN91dWnxoipT2KOEyHqEyfRXUyjuRhW8b/xnqPDoq4gWEVApTVa9db2wN8mmoikgFBbjh71+cGeQ==", "dev": true, "license": "MIT", "dependencies": { - "emoji-regex": "^10.3.0", - "get-east-asian-width": "^1.0.0", - "strip-ansi": "^7.1.0" + "get-east-asian-width": "^1.5.0", + "strip-ansi": "^7.1.2" }, "engines": { - "node": ">=18" + "node": ">=20" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -15277,16 +14982,6 @@ "node": ">=20" } }, - "node_modules/node-gyp/node_modules/proc-log": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-6.1.0.tgz", - "integrity": "sha512-iG+GYldRf2BQ0UDUAd6JQ/RwzaQy6mXmsk/IzlYyal4A4SNFw54MeH4/tLkF4I5WoWG9SQwuqWzS99jaFQHBuQ==", - "dev": true, - "license": "ISC", - "engines": { - "node": "^20.17.0 || >=22.9.0" - } - }, "node_modules/node-gyp/node_modules/which": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/which/-/which-6.0.1.tgz", @@ -15338,16 +15033,6 @@ "node": ">=0.10.0" } }, - "node_modules/normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/npm-bundled": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-5.0.0.tgz", @@ -15385,16 +15070,16 @@ } }, "node_modules/npm-package-arg": { - "version": "13.0.0", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-13.0.0.tgz", - "integrity": "sha512-+t2etZAGcB7TbbLHfDwooV9ppB2LhhcT6A+L9cahsf9mEUAoQ6CktLEVvEnpD0N5CkX7zJqnPGaFtoQDy9EkHQ==", + "version": "13.0.2", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-13.0.2.tgz", + "integrity": "sha512-IciCE3SY3uE84Ld8WZU23gAPPV9rIYod4F+rc+vJ7h7cwAJt9Vk6TVsK60ry7Uj3SRS3bqRRIGuTp9YVlk6WNA==", "dev": true, "license": "ISC", "dependencies": { "hosted-git-info": "^9.0.0", - "proc-log": "^5.0.0", + "proc-log": "^6.0.0", "semver": "^7.3.5", - "validate-npm-package-name": "^6.0.0" + "validate-npm-package-name": "^7.0.0" }, "engines": { "node": "^20.17.0 || >=22.9.0" @@ -15414,16 +15099,6 @@ "node": "^20.17.0 || >=22.9.0" } }, - "node_modules/npm-packlist/node_modules/proc-log": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-6.1.0.tgz", - "integrity": "sha512-iG+GYldRf2BQ0UDUAd6JQ/RwzaQy6mXmsk/IzlYyal4A4SNFw54MeH4/tLkF4I5WoWG9SQwuqWzS99jaFQHBuQ==", - "dev": true, - "license": "ISC", - "engines": { - "node": "^20.17.0 || >=22.9.0" - } - }, "node_modules/npm-pick-manifest": { "version": "11.0.3", "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-11.0.3.tgz", @@ -15460,16 +15135,6 @@ "node": "^20.17.0 || >=22.9.0" } }, - "node_modules/npm-registry-fetch/node_modules/proc-log": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-6.1.0.tgz", - "integrity": "sha512-iG+GYldRf2BQ0UDUAd6JQ/RwzaQy6mXmsk/IzlYyal4A4SNFw54MeH4/tLkF4I5WoWG9SQwuqWzS99jaFQHBuQ==", - "dev": true, - "license": "ISC", - "engines": { - "node": "^20.17.0 || >=22.9.0" - } - }, "node_modules/npm-run-all": { "version": "4.1.5", "resolved": "https://registry.npmjs.org/npm-run-all/-/npm-run-all-4.1.5.tgz", @@ -15667,19 +15332,21 @@ } }, "node_modules/open": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/open/-/open-10.2.0.tgz", - "integrity": "sha512-YgBpdJHPyQ2UE5x+hlSXcnejzAvD0b22U2OuAP+8OnlJT+PjWPxtgmGqKKc+RgTM63U9gN0YzrYc71R2WT/hTA==", + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/open/-/open-11.0.0.tgz", + "integrity": "sha512-smsWv2LzFjP03xmvFoJ331ss6h+jixfA4UUV/Bsiyuu4YJPfN+FIQGOIiv4w9/+MoHkfkJ22UIaQWRVFRfH6Vw==", "dev": true, "license": "MIT", "dependencies": { - "default-browser": "^5.2.1", + "default-browser": "^5.4.0", "define-lazy-prop": "^3.0.0", + "is-in-ssh": "^1.0.0", "is-inside-container": "^1.0.0", - "wsl-utils": "^0.1.0" + "powershell-utils": "^0.1.0", + "wsl-utils": "^0.3.0" }, "engines": { - "node": ">=18" + "node": ">=20" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -15892,21 +15559,12 @@ "node": "^20.17.0 || >=22.9.0" } }, - "node_modules/pacote/node_modules/proc-log": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-6.1.0.tgz", - "integrity": "sha512-iG+GYldRf2BQ0UDUAd6JQ/RwzaQy6mXmsk/IzlYyal4A4SNFw54MeH4/tLkF4I5WoWG9SQwuqWzS99jaFQHBuQ==", - "dev": true, - "license": "ISC", - "engines": { - "node": "^20.17.0 || >=22.9.0" - } - }, "node_modules/parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", "dev": true, + "license": "MIT", "dependencies": { "callsites": "^3.0.0" }, @@ -15919,6 +15577,7 @@ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/code-frame": "^7.0.0", "error-ex": "^1.3.1", @@ -15936,7 +15595,8 @@ "version": "2.3.1", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/parse-node-version": { "version": "1.0.1", @@ -16246,14 +15906,15 @@ } }, "node_modules/postcss-loader": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-8.1.1.tgz", - "integrity": "sha512-0IeqyAsG6tYiDRCYKQJLAmgQr47DX6N7sFSWvQxt6AcupX8DIdmykuk/o/tx0Lze3ErGHJEp5OSRxrelC6+NdQ==", + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-8.2.0.tgz", + "integrity": "sha512-tHX+RkpsXVcc7st4dSdDGliI+r4aAQDuv+v3vFYHixb6YgjreG5AG4SEB0kDK8u2s6htqEEpKlkhSBUTvWKYnA==", "dev": true, + "license": "MIT", "dependencies": { "cosmiconfig": "^9.0.0", - "jiti": "^1.20.0", - "semver": "^7.5.4" + "jiti": "^2.5.1", + "semver": "^7.6.2" }, "engines": { "node": ">= 18.12.0" @@ -16297,14 +15958,14 @@ } }, "node_modules/postcss-modules-local-by-default": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.5.tgz", - "integrity": "sha512-6MieY7sIfTK0hYfafw1OMEG+2bg8Q1ocHCpoWLqOKj3JXlKu4G7btkmM/B7lFubYkYWmRSPLZi5chid63ZaZYw==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.2.0.tgz", + "integrity": "sha512-5kcJm/zk+GJDSfw+V/42fJ5fhjL5YbFDl8nVdXkJPLLW+Vf9mTD5Xe0wqIaDnLuL2U6cDNpTr+UQ+v2HWIBhzw==", "dev": true, "license": "MIT", "dependencies": { "icss-utils": "^5.0.0", - "postcss-selector-parser": "^6.0.2", + "postcss-selector-parser": "^7.0.0", "postcss-value-parser": "^4.1.0" }, "engines": { @@ -16315,13 +15976,13 @@ } }, "node_modules/postcss-modules-scope": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.2.0.tgz", - "integrity": "sha512-oq+g1ssrsZOsx9M96c5w8laRmvEu9C3adDSjI8oTcbfkrTE8hx/zfyobUoWIxaKPO8bt6S62kxpw5GqypEw1QQ==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.2.1.tgz", + "integrity": "sha512-m9jZstCVaqGjTAuny8MdgE88scJnCiQSlSrOWcTQgM2t32UBe+MUmFSO5t7VMSfAf/FJKImAxBav8ooCHJXCJA==", "dev": true, "license": "ISC", "dependencies": { - "postcss-selector-parser": "^6.0.4" + "postcss-selector-parser": "^7.0.0" }, "engines": { "node": "^10 || ^12 || >= 14" @@ -16346,10 +16007,37 @@ "postcss": "^8.1.0" } }, + "node_modules/postcss-safe-parser": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-7.1.0.tgz", + "integrity": "sha512-1WzZxRLaAFwEh6Do+zyGpjWV3nGJNxxhuh7Ubu/q1ICImMgZJnLwhoaEpRbG4pJppp2Y1ncL9ffA2f+LhrefQg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss-safe-parser" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "engines": { + "node": ">=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, "node_modules/postcss-selector-parser": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", - "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.6.tgz", + "integrity": "sha512-7qASPzhKF2l2KLboRZux8CCTRMdGiV08vWmyKzPz22qZ7ZjQBOeY7rNzNoCLSUiftJ7HUq0GERHmxw/t0dCdMw==", "dev": true, "license": "MIT", "dependencies": { @@ -16367,6 +16055,19 @@ "dev": true, "license": "MIT" }, + "node_modules/powershell-utils": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/powershell-utils/-/powershell-utils-0.1.0.tgz", + "integrity": "sha512-dM0jVuXJPsDN6DvRpea484tCUaMiXWjuCn++HGTqUWzGDjv5tZkEZldAJ/UMlqRYGFrD/etByo4/xOuC/snX2A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/probe-image-size": { "version": "7.4.0", "resolved": "https://registry.npmjs.org/probe-image-size/-/probe-image-size-7.4.0.tgz", @@ -16421,13 +16122,13 @@ } }, "node_modules/proc-log": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-5.0.0.tgz", - "integrity": "sha512-Azwzvl90HaF0aCz1JrDdXQykFakSSNPaPoiZ9fm5qJIMHioDZEi7OAdRwSm6rSoPtY3Qutnm3L7ogmg3dc+wbQ==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-6.1.0.tgz", + "integrity": "sha512-iG+GYldRf2BQ0UDUAd6JQ/RwzaQy6mXmsk/IzlYyal4A4SNFw54MeH4/tLkF4I5WoWG9SQwuqWzS99jaFQHBuQ==", "dev": true, "license": "ISC", "engines": { - "node": "^18.17.0 || >=20.5.0" + "node": "^20.17.0 || >=22.9.0" } }, "node_modules/process-nextick-args": { @@ -16519,27 +16220,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, "node_modules/range-parser": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", @@ -16779,13 +16459,14 @@ "dev": true }, "node_modules/resolve": { - "version": "1.22.10", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", - "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", + "version": "1.22.12", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.12.tgz", + "integrity": "sha512-TyeJ1zif53BPfHootBGwPRYT1RUt6oGWsaQr8UyZW/eAm9bKoijtvruSDEmZHm92CwS9nj7/fWttqPCgzep8CA==", "dev": true, "license": "MIT", "dependencies": { - "is-core-module": "^2.16.0", + "es-errors": "^1.3.0", + "is-core-module": "^2.16.1", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, @@ -16799,6 +16480,16 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, "node_modules/resolve-url-loader": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-5.0.0.tgz", @@ -16862,17 +16553,6 @@ "node": ">= 4" } }, - "node_modules/reusify": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", - "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", - "dev": true, - "license": "MIT", - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, "node_modules/rfdc": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.4.1.tgz", @@ -16895,14 +16575,46 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/rolldown": { + "version": "1.0.0-rc.4", + "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.0.0-rc.4.tgz", + "integrity": "sha512-V2tPDUrY3WSevrvU2E41ijZlpF+5PbZu4giH+VpNraaadsJGHa4fR6IFwsocVwEXDoAdIv5qgPPxgrvKAOIPtA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@oxc-project/types": "=0.113.0", + "@rolldown/pluginutils": "1.0.0-rc.4" + }, + "bin": { + "rolldown": "bin/cli.mjs" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "optionalDependencies": { + "@rolldown/binding-android-arm64": "1.0.0-rc.4", + "@rolldown/binding-darwin-arm64": "1.0.0-rc.4", + "@rolldown/binding-darwin-x64": "1.0.0-rc.4", + "@rolldown/binding-freebsd-x64": "1.0.0-rc.4", + "@rolldown/binding-linux-arm-gnueabihf": "1.0.0-rc.4", + "@rolldown/binding-linux-arm64-gnu": "1.0.0-rc.4", + "@rolldown/binding-linux-arm64-musl": "1.0.0-rc.4", + "@rolldown/binding-linux-x64-gnu": "1.0.0-rc.4", + "@rolldown/binding-linux-x64-musl": "1.0.0-rc.4", + "@rolldown/binding-openharmony-arm64": "1.0.0-rc.4", + "@rolldown/binding-wasm32-wasi": "1.0.0-rc.4", + "@rolldown/binding-win32-arm64-msvc": "1.0.0-rc.4", + "@rolldown/binding-win32-x64-msvc": "1.0.0-rc.4" + } + }, "node_modules/rollup": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.59.0.tgz", - "integrity": "sha512-2oMpl67a3zCH9H79LeMcbDhXW/UmWG/y2zuqnF2jQq5uq9TbM9TVyXvA4+t+ne2IIkBdrLpAaRQAvo7YI/Yyeg==", + "version": "4.64.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.64.0.tgz", + "integrity": "sha512-gjA/kFeDfffII8COoPsvLPvE16hWDTEc1+0QKQNKUkuV8iJjqsC4xXs8/FzuL0v9EV39kuxTbAgcFoTRyy2TGQ==", "dev": true, "license": "MIT", "dependencies": { - "@types/estree": "1.0.8" + "@types/estree": "1.0.9" }, "bin": { "rollup": "dist/bin/rollup" @@ -16912,38 +16624,39 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.59.0", - "@rollup/rollup-android-arm64": "4.59.0", - "@rollup/rollup-darwin-arm64": "4.59.0", - "@rollup/rollup-darwin-x64": "4.59.0", - "@rollup/rollup-freebsd-arm64": "4.59.0", - "@rollup/rollup-freebsd-x64": "4.59.0", - "@rollup/rollup-linux-arm-gnueabihf": "4.59.0", - "@rollup/rollup-linux-arm-musleabihf": "4.59.0", - "@rollup/rollup-linux-arm64-gnu": "4.59.0", - "@rollup/rollup-linux-arm64-musl": "4.59.0", - "@rollup/rollup-linux-loong64-gnu": "4.59.0", - "@rollup/rollup-linux-loong64-musl": "4.59.0", - "@rollup/rollup-linux-ppc64-gnu": "4.59.0", - "@rollup/rollup-linux-ppc64-musl": "4.59.0", - "@rollup/rollup-linux-riscv64-gnu": "4.59.0", - "@rollup/rollup-linux-riscv64-musl": "4.59.0", - "@rollup/rollup-linux-s390x-gnu": "4.59.0", - "@rollup/rollup-linux-x64-gnu": "4.59.0", - "@rollup/rollup-linux-x64-musl": "4.59.0", - "@rollup/rollup-openbsd-x64": "4.59.0", - "@rollup/rollup-openharmony-arm64": "4.59.0", - "@rollup/rollup-win32-arm64-msvc": "4.59.0", - "@rollup/rollup-win32-ia32-msvc": "4.59.0", - "@rollup/rollup-win32-x64-gnu": "4.59.0", - "@rollup/rollup-win32-x64-msvc": "4.59.0", + "@napi-rs/lzma-linux-x64-gnu": "1.5.1", + "@rollup/rollup-android-arm-eabi": "4.64.0", + "@rollup/rollup-android-arm64": "4.64.0", + "@rollup/rollup-darwin-arm64": "4.64.0", + "@rollup/rollup-darwin-x64": "4.64.0", + "@rollup/rollup-freebsd-arm64": "4.64.0", + "@rollup/rollup-freebsd-x64": "4.64.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.64.0", + "@rollup/rollup-linux-arm-musleabihf": "4.64.0", + "@rollup/rollup-linux-arm64-gnu": "4.64.0", + "@rollup/rollup-linux-arm64-musl": "4.64.0", + "@rollup/rollup-linux-loong64-gnu": "4.64.0", + "@rollup/rollup-linux-loong64-musl": "4.64.0", + "@rollup/rollup-linux-ppc64-gnu": "4.64.0", + "@rollup/rollup-linux-ppc64-musl": "4.64.0", + "@rollup/rollup-linux-riscv64-gnu": "4.64.0", + "@rollup/rollup-linux-riscv64-musl": "4.64.0", + "@rollup/rollup-linux-s390x-gnu": "4.64.0", + "@rollup/rollup-linux-x64-gnu": "4.64.0", + "@rollup/rollup-linux-x64-musl": "4.64.0", + "@rollup/rollup-openbsd-x64": "4.64.0", + "@rollup/rollup-openharmony-arm64": "4.64.0", + "@rollup/rollup-win32-arm64-msvc": "4.64.0", + "@rollup/rollup-win32-ia32-msvc": "4.64.0", + "@rollup/rollup-win32-x64-gnu": "4.64.0", + "@rollup/rollup-win32-x64-msvc": "4.64.0", "fsevents": "~2.3.2" } }, "node_modules/rollup-plugin-dts": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/rollup-plugin-dts/-/rollup-plugin-dts-6.5.1.tgz", - "integrity": "sha512-jODTXp3H7MK/Ur/ErtsrQ0G1GvaCmc3du+y5pNrdBMf6d7HlL2Nd/N6TkEr+f75CkUj01zEoEd7y2elH0eHi1Q==", + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/rollup-plugin-dts/-/rollup-plugin-dts-6.4.1.tgz", + "integrity": "sha512-l//F3Zf7ID5GoOfLfD8kroBjQKEKpy1qfhtAdnpibFZMffPaylrg1CoDC2vGkPeTeyxUe4bVFCln2EFuL7IGGg==", "dev": true, "license": "LGPL-3.0-only", "dependencies": { @@ -16959,43 +16672,11 @@ "url": "https://github.com/sponsors/Swatinem" }, "optionalDependencies": { - "@babel/code-frame": "^8.0.0" + "@babel/code-frame": "^7.29.0" }, "peerDependencies": { - "@typescript/typescript6": "^6", - "rollup": "^3 || ^4", - "typescript": "^4.5 || ^5 || ^6 || ^7" - }, - "peerDependenciesMeta": { - "@typescript/typescript6": { - "optional": true - } - } - }, - "node_modules/rollup-plugin-dts/node_modules/@babel/code-frame": { - "version": "8.0.6", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-8.0.6.tgz", - "integrity": "sha512-uMHhvmDmwFiLuiozaoRYTZHqMFuu3fem/X9JY78lohAuLoh8LSGGC8JqUzo2cVuBsBxkjMZNk56CE7ock8Xxkw==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "@babel/helper-validator-identifier": "^8.0.6", - "js-tokens": "^10.0.0" - }, - "engines": { - "node": "^22.18.0 || >=24.11.0" - } - }, - "node_modules/rollup-plugin-dts/node_modules/@babel/helper-validator-identifier": { - "version": "8.0.6", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-8.0.6.tgz", - "integrity": "sha512-HYx0YmuchRxRSpnjvcNffnPS8DCauKNmnumIuHG3jnQAVewRA7kfJGwF13ayEpSZs7s4R/oBH4eppuXcAQd5JQ==", - "dev": true, - "license": "MIT", - "optional": true, - "engines": { - "node": "^22.18.0 || >=24.11.0" + "rollup": "^3.29.4 || ^4", + "typescript": "^4.5 || ^5.0 || ^6.0" } }, "node_modules/rollup-plugin-dts/node_modules/convert-source-map": { @@ -17005,24 +16686,6 @@ "dev": true, "license": "MIT" }, - "node_modules/rollup-plugin-dts/node_modules/js-tokens": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-10.0.0.tgz", - "integrity": "sha512-lM/UBzQmfJRo9ABXbPWemivdCW8V2G8FHaHdypQaIy523snUjog0W71ayWXTjiR+ixeMyVHN2XcpnTd/liPg/Q==", - "dev": true, - "license": "MIT", - "optional": true - }, - "node_modules/rollup-plugin-dts/node_modules/magic-string": { - "version": "0.30.21", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", - "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.5.5" - } - }, "node_modules/router": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/router/-/router-2.2.0.tgz", @@ -17078,30 +16741,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, "node_modules/rxjs": { "version": "7.8.1", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", @@ -17178,9 +16817,9 @@ "dev": true }, "node_modules/sass": { - "version": "1.90.0", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.90.0.tgz", - "integrity": "sha512-9GUyuksjw70uNpb1MTYWsH9MQHOHY6kwfnkafC24+7aOMZn9+rVMBxRbLvw756mrBFbIsFg6Xw9IkR2Fnn3k+Q==", + "version": "1.97.3", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.97.3.tgz", + "integrity": "sha512-fDz1zJpd5GycprAbu4Q2PV/RprsRtKC/0z82z0JLgdytmcq0+ujJbJ/09bPGDxCLkKY3Np5cRAOcWiVkLXJURg==", "dev": true, "license": "MIT", "dependencies": { @@ -17199,9 +16838,9 @@ } }, "node_modules/sass-loader": { - "version": "16.0.5", - "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-16.0.5.tgz", - "integrity": "sha512-oL+CMBXrj6BZ/zOq4os+UECPL+bWqt6OAC6DWS8Ln8GZRcMDjlJ4JC3FBDuHJdYaFWIdKNIBYmtZtK2MaMkNIw==", + "version": "16.0.7", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-16.0.7.tgz", + "integrity": "sha512-w6q+fRHourZ+e+xA1kcsF27iGM6jdB8teexYCfdUw0sYgcDNeZESnDNT9sUmmPm3ooziwUJXGwZJSTF3kOdBfA==", "dev": true, "license": "MIT", "dependencies": { @@ -17215,7 +16854,7 @@ "url": "https://opencollective.com/webpack" }, "peerDependencies": { - "@rspack/core": "0.x || 1.x", + "@rspack/core": "0.x || ^1.0.0 || ^2.0.0-0", "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0", "sass": "^1.3.0", "sass-embedded": "*", @@ -17764,17 +17403,17 @@ } }, "node_modules/slice-ansi": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz", - "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-8.0.0.tgz", + "integrity": "sha512-stxByr12oeeOyY2BlviTNQlYV5xOj47GirPr4yA1hE9JCtxfQN0+tVbkxwCtYDQWhEKWFHsEK48ORg5jrouCAg==", "dev": true, "license": "MIT", "dependencies": { - "ansi-styles": "^6.0.0", - "is-fullwidth-code-point": "^4.0.0" + "ansi-styles": "^6.2.3", + "is-fullwidth-code-point": "^5.1.0" }, "engines": { - "node": ">=12" + "node": ">=20" }, "funding": { "url": "https://github.com/chalk/slice-ansi?sponsor=1" @@ -17794,13 +17433,16 @@ } }, "node_modules/slice-ansi/node_modules/is-fullwidth-code-point": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz", - "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-5.1.0.tgz", + "integrity": "sha512-5XHYaSyiqADb4RnZ1Bdad6cPp8Toise4TzEjcOYDHZkTCbKgiUl7WTUCpNWHuxmDt91wnsZBc9xinNzopv3JMQ==", "dev": true, "license": "MIT", + "dependencies": { + "get-east-asian-width": "^1.3.1" + }, "engines": { - "node": ">=12" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -18058,9 +17700,9 @@ } }, "node_modules/stdin-discarder": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/stdin-discarder/-/stdin-discarder-0.2.2.tgz", - "integrity": "sha512-UhDfHmA92YAlNnCfhmq0VeNL5bDbiZGg7sZ2IvPsXubGkiNa9EC+tUTsjBRsYUAz87btI6/1wf4XoVvQ3uRnmQ==", + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/stdin-discarder/-/stdin-discarder-0.3.2.tgz", + "integrity": "sha512-eCPu1qRxPVkl5605OTWF8Wz40b4Mf45NY5LQmVPQ599knfs5QhASUm9GbJ5BDMDOXgrnh0wyEdvzmL//YMlw0A==", "dev": true, "license": "MIT", "engines": { @@ -18303,14 +17945,14 @@ } }, "node_modules/terser": { - "version": "5.43.1", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.43.1.tgz", - "integrity": "sha512-+6erLbBm0+LROX2sPXlUYx/ux5PyE9K/a92Wrt6oA+WDAoFTdpHE5tCYCI5PNzq2y8df4rA+QgHLJuR4jNymsg==", + "version": "5.46.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.46.0.tgz", + "integrity": "sha512-jTwoImyr/QbOWFFso3YoU3ik0jBBDJ6JTOQiy/J2YxVJdZCc+5u7skhNwiOR3FQIygFqVUPHl7qbbxtjW2K3Qg==", "dev": true, "license": "BSD-2-Clause", "dependencies": { "@jridgewell/source-map": "^0.3.3", - "acorn": "^8.14.0", + "acorn": "^8.15.0", "commander": "^2.20.0", "source-map-support": "~0.5.20" }, @@ -18407,14 +18049,14 @@ "license": "MIT" }, "node_modules/tinyglobby": { - "version": "0.2.14", - "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.14.tgz", - "integrity": "sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==", + "version": "0.2.15", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", + "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", "dev": true, "license": "MIT", "dependencies": { - "fdir": "^6.4.4", - "picomatch": "^4.0.2" + "fdir": "^6.5.0", + "picomatch": "^4.0.3" }, "engines": { "node": ">=12.0.0" @@ -18850,13 +18492,13 @@ } }, "node_modules/validate-npm-package-name": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-6.0.2.tgz", - "integrity": "sha512-IUoow1YUtvoBBC06dXs8bR8B9vuA3aJfmQNKMoaPG/OFsPmoQvw8xh+6Ye25Gx9DQhoEom3Pcu9MKHerm/NpUQ==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-7.0.2.tgz", + "integrity": "sha512-hVDIBwsRruT73PbK7uP5ebUt+ezEtCmzZz3F59BSr2F6OVFnJ/6h8liuvdLrQ88Xmnk6/+xGGuq+pG9WwTuy3A==", "dev": true, "license": "ISC", "engines": { - "node": "^18.17.0 || >=20.5.0" + "node": "^20.17.0 || >=22.9.0" } }, "node_modules/vary": { @@ -18952,23 +18594,6 @@ } } }, - "node_modules/vite/node_modules/tinyglobby": { - "version": "0.2.17", - "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.17.tgz", - "integrity": "sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==", - "dev": true, - "license": "MIT", - "dependencies": { - "fdir": "^6.5.0", - "picomatch": "^4.0.4" - }, - "engines": { - "node": ">=12.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/SuperchupuDev" - } - }, "node_modules/void-elements": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz", @@ -18979,9 +18604,9 @@ } }, "node_modules/watchpack": { - "version": "2.4.4", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.4.tgz", - "integrity": "sha512-c5EGNOiyxxV5qmTtAB7rbiXxi1ooX1pQKMLX/MIabJjRA0SJBQOjKF+KSVfHkr9U1cADPon0mRiVe/riyaiDUA==", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.5.1.tgz", + "integrity": "sha512-Zn5uXdcFNIA1+1Ei5McRd+iRzfhENPCe7LeABkJtNulSxjma+l7ltNx55BWZkRlwRnpOgHqxnjyaDgJnNXnqzg==", "dev": true, "license": "MIT", "dependencies": { @@ -19021,9 +18646,9 @@ "optional": true }, "node_modules/webpack": { - "version": "5.105.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.105.0.tgz", - "integrity": "sha512-gX/dMkRQc7QOMzgTe6KsYFM7DxeIONQSui1s0n/0xht36HvrgbxtM1xBlgx596NbpHuQU8P7QpKwrZYwUX48nw==", + "version": "5.105.2", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.105.2.tgz", + "integrity": "sha512-dRXm0a2qcHPUBEzVk8uph0xWSjV/xZxenQQbLwnwP7caQCYpqG1qddwlyEkIDkYn0K8tvmcrZ+bOrzoQ3HxCDw==", "dev": true, "license": "MIT", "dependencies": { @@ -19070,15 +18695,15 @@ } }, "node_modules/webpack-dev-middleware": { - "version": "7.4.2", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-7.4.2.tgz", - "integrity": "sha512-xOO8n6eggxnwYpy1NlzUKpvrjfJTvae5/D6WOK0S2LSo7vjmo5gCM1DbLUmFqrMTJP+W/0YZNctm7jasWvLuBA==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-7.4.5.tgz", + "integrity": "sha512-uxQ6YqGdE4hgDKNf7hUiPXOdtkXvBJXrfEGYSx7P7LC8hnUYGK70X6xQXUvXeNyBDDcsiQXpG2m3G9vxowaEuA==", "dev": true, "license": "MIT", "dependencies": { "colorette": "^2.0.10", - "memfs": "^4.6.0", - "mime-types": "^2.1.31", + "memfs": "^4.43.1", + "mime-types": "^3.0.1", "on-finished": "^2.4.1", "range-parser": "^1.2.1", "schema-utils": "^4.0.0" @@ -19099,6 +18724,33 @@ } } }, + "node_modules/webpack-dev-middleware/node_modules/mime-db": { + "version": "1.54.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", + "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/webpack-dev-middleware/node_modules/mime-types": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.2.tgz", + "integrity": "sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "mime-db": "^1.54.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, "node_modules/webpack-dev-server": { "version": "5.2.6", "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-5.2.6.tgz", @@ -19348,6 +19000,25 @@ "dev": true, "license": "MIT" }, + "node_modules/webpack-dev-server/node_modules/open": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/open/-/open-10.2.0.tgz", + "integrity": "sha512-YgBpdJHPyQ2UE5x+hlSXcnejzAvD0b22U2OuAP+8OnlJT+PjWPxtgmGqKKc+RgTM63U9gN0YzrYc71R2WT/hTA==", + "dev": true, + "license": "MIT", + "dependencies": { + "default-browser": "^5.2.1", + "define-lazy-prop": "^3.0.0", + "is-inside-container": "^1.0.0", + "wsl-utils": "^0.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/webpack-dev-server/node_modules/path-to-regexp": { "version": "0.1.13", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.13.tgz", @@ -19435,6 +19106,22 @@ } } }, + "node_modules/webpack-dev-server/node_modules/wsl-utils": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/wsl-utils/-/wsl-utils-0.1.0.tgz", + "integrity": "sha512-h3Fbisa2nKGPxCpm89Hk33lBLsnaGBvctQopaBSOW/uIs6FTe1ATyAnKFJrzVs9vpGdsTe73WF3V4lIsk4Gacw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-wsl": "^3.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/webpack-merge": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-6.0.1.tgz", @@ -19658,16 +19345,17 @@ } }, "node_modules/wsl-utils": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/wsl-utils/-/wsl-utils-0.1.0.tgz", - "integrity": "sha512-h3Fbisa2nKGPxCpm89Hk33lBLsnaGBvctQopaBSOW/uIs6FTe1ATyAnKFJrzVs9vpGdsTe73WF3V4lIsk4Gacw==", + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/wsl-utils/-/wsl-utils-0.3.1.tgz", + "integrity": "sha512-g/eziiSUNBSsdDJtCLB8bdYEUMj4jR7AGeUo96p/3dTafgjHhpF4RiCFPiRILwjQoDXx5MqkBr4fwWtR3Ky4Wg==", "dev": true, "license": "MIT", "dependencies": { - "is-wsl": "^3.1.0" + "is-wsl": "^3.1.0", + "powershell-utils": "^0.1.0" }, "engines": { - "node": ">=18" + "node": ">=20" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -19784,6 +19472,19 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/yoctocolors": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/yoctocolors/-/yoctocolors-2.2.0.tgz", + "integrity": "sha512-xYqdZFUK/VYazNl/oCDYN+3WloWQwMfZxBoiNt6qNyk+xfOdi598muWE42rNZFp1kNOiqW936q5RhUdnpqElSg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/yoctocolors-cjs": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/yoctocolors-cjs/-/yoctocolors-cjs-2.1.3.tgz", @@ -19798,9 +19499,9 @@ } }, "node_modules/zod": { - "version": "4.1.13", - "resolved": "https://registry.npmjs.org/zod/-/zod-4.1.13.tgz", - "integrity": "sha512-AvvthqfqrAhNH9dnfmrfKzX5upOdjUVJYFqNSlkmGf64gRaTzlPwz99IHYnVs28qYAybvAlBV+H7pn0saFY4Ig==", + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/zod/-/zod-4.3.6.tgz", + "integrity": "sha512-rftlrkhHZOcjDwkGlnUtZZkvaPHCsDATp4pGpuOOMDaTdDDXF91wuVDJoWoPsKX/3YPQ5fHuF3STjcYyKr+Qhg==", "dev": true, "license": "MIT", "funding": { diff --git a/package.json b/package.json index a6b0a4d..4e4b62c 100644 --- a/package.json +++ b/package.json @@ -13,16 +13,16 @@ }, "private": false, "dependencies": { - "@angular/animations": "^20.3.33", + "@angular/animations": "^21.2.25", "@angular/cdk": "^20.2.14", - "@angular/common": "^20.3.33", - "@angular/compiler": "^20.3.33", - "@angular/core": "^20.3.33", - "@angular/forms": "^20.3.33", + "@angular/common": "^21.2.25", + "@angular/compiler": "^21.2.25", + "@angular/core": "^21.2.25", + "@angular/forms": "^21.2.25", "@angular/material": "^20.2.14", - "@angular/platform-browser": "20.3.33", - "@angular/platform-browser-dynamic": "^20.3.33", - "@angular/router": "^20.3.33", + "@angular/platform-browser": "21.2.25", + "@angular/platform-browser-dynamic": "^21.2.25", + "@angular/router": "^21.2.25", "@ngneat/until-destroy": "^10.0.0", "cytoscape": "^3.29.2", "cytoscape-fcose": "^2.2.0", @@ -33,9 +33,9 @@ "zone.js": "~0.15.0" }, "devDependencies": { - "@angular-devkit/build-angular": "^20.3.37", - "@angular/cli": "^20.3.37", - "@angular/compiler-cli": "^20.3.33", + "@angular-devkit/build-angular": "^21.2.24", + "@angular/cli": "^21.2.24", + "@angular/compiler-cli": "^21.2.25", "@types/cytoscape": "^3.21.0", "@types/cytoscape-fcose": "^2.2.4", "@types/jasmine": "~4.3.0", @@ -47,7 +47,7 @@ "karma-coverage": "~2.2.0", "karma-jasmine": "~5.1.0", "karma-jasmine-html-reporter": "~2.1.0", - "ng-packagr": "^20.3.2", + "ng-packagr": "^21.2.7", "npm-run-all": "^4.1.1", "typescript": "~5.9.3" } diff --git a/src/main.ts b/src/main.ts index 35b00f3..36000de 100644 --- a/src/main.ts +++ b/src/main.ts @@ -1,6 +1,7 @@ +import { provideZoneChangeDetection } from "@angular/core"; import { bootstrapApplication } from '@angular/platform-browser'; import { appConfig } from './app/app.config'; import { AppComponent } from './app/app.component'; -bootstrapApplication(AppComponent, appConfig) +bootstrapApplication(AppComponent, {...appConfig, providers: [provideZoneChangeDetection(), ...appConfig.providers]}) .catch((err) => console.error(err)); diff --git a/tsconfig.json b/tsconfig.json index d9e3fd3..5034413 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -28,11 +28,7 @@ "importHelpers": true, "target": "ES2022", "module": "ES2022", - "useDefineForClassFields": false, - "lib": [ - "ES2022", - "dom" - ] + "useDefineForClassFields": false }, "angularCompilerOptions": { "enableI18nLegacyMessageIdFormat": false, From cb2da4e8c7d3b1621e044ba0c9ab47928391e498 Mon Sep 17 00:00:00 2001 From: Adam Wright Date: Sat, 3 Oct 2026 00:48:42 +0000 Subject: [PATCH 37/49] Update Angular Material and CDK to 21 (ng update) Co-Authored-By: Claude Opus 5.5 --- package-lock.json | 31 ++++++++++++++++--------------- package.json | 4 ++-- 2 files changed, 18 insertions(+), 17 deletions(-) diff --git a/package-lock.json b/package-lock.json index 8a23277..f785072 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,12 +9,12 @@ "version": "0.0.19", "dependencies": { "@angular/animations": "^21.2.25", - "@angular/cdk": "^20.2.14", + "@angular/cdk": "^21.2.14", "@angular/common": "^21.2.25", "@angular/compiler": "^21.2.25", "@angular/core": "^21.2.25", "@angular/forms": "^21.2.25", - "@angular/material": "^20.2.14", + "@angular/material": "^21.2.14", "@angular/platform-browser": "21.2.25", "@angular/platform-browser-dynamic": "^21.2.25", "@angular/router": "^21.2.25", @@ -1253,17 +1253,18 @@ } }, "node_modules/@angular/cdk": { - "version": "20.2.14", - "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-20.2.14.tgz", - "integrity": "sha512-7bZxc01URbiPiIBWThQ69XwOxVduqEKN4PhpbF2AAyfMc/W8Hcr4VoIJOwL0O1Nkq5beS8pCAqoOeIgFyXd/kg==", + "version": "21.2.14", + "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-21.2.14.tgz", + "integrity": "sha512-806REq/CLf37nEhmmd8Q+ILN8z/RVG2vk2n8YZ/4TdHpcBCi5ux4AxLbpMmduLwGPOzPagJ6ggRzE5fnX0rmcQ==", "license": "MIT", "dependencies": { "parse5": "^8.0.0", "tslib": "^2.3.0" }, "peerDependencies": { - "@angular/common": "^20.0.0 || ^21.0.0", - "@angular/core": "^20.0.0 || ^21.0.0", + "@angular/common": "^21.0.0 || ^22.0.0", + "@angular/core": "^21.0.0 || ^22.0.0", + "@angular/platform-browser": "^21.0.0 || ^22.0.0", "rxjs": "^6.5.3 || ^7.4.0" } }, @@ -1772,19 +1773,19 @@ } }, "node_modules/@angular/material": { - "version": "20.2.14", - "resolved": "https://registry.npmjs.org/@angular/material/-/material-20.2.14.tgz", - "integrity": "sha512-IbAgV6XLsvmHiJzxycVhcNC1PA4M30qi+ERCOir6cT333Bxm8vDV32gsOjfL52uzG5YRARroPC+8s1XqR2oxeA==", + "version": "21.2.14", + "resolved": "https://registry.npmjs.org/@angular/material/-/material-21.2.14.tgz", + "integrity": "sha512-fMQca8VRtei93JRRG9qQ+u08DCb0nga59Esoakq5yx3+A1NfdpFeUS1tBns56U04o8KAaIAwZK3NBqXz8ZKNqg==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" }, "peerDependencies": { - "@angular/cdk": "20.2.14", - "@angular/common": "^20.0.0 || ^21.0.0", - "@angular/core": "^20.0.0 || ^21.0.0", - "@angular/forms": "^20.0.0 || ^21.0.0", - "@angular/platform-browser": "^20.0.0 || ^21.0.0", + "@angular/cdk": "21.2.14", + "@angular/common": "^21.0.0 || ^22.0.0", + "@angular/core": "^21.0.0 || ^22.0.0", + "@angular/forms": "^21.0.0 || ^22.0.0", + "@angular/platform-browser": "^21.0.0 || ^22.0.0", "rxjs": "^6.5.3 || ^7.4.0" } }, diff --git a/package.json b/package.json index 4e4b62c..649895e 100644 --- a/package.json +++ b/package.json @@ -14,12 +14,12 @@ "private": false, "dependencies": { "@angular/animations": "^21.2.25", - "@angular/cdk": "^20.2.14", + "@angular/cdk": "^21.2.14", "@angular/common": "^21.2.25", "@angular/compiler": "^21.2.25", "@angular/core": "^21.2.25", "@angular/forms": "^21.2.25", - "@angular/material": "^20.2.14", + "@angular/material": "^21.2.14", "@angular/platform-browser": "21.2.25", "@angular/platform-browser-dynamic": "^21.2.25", "@angular/router": "^21.2.25", From 548d4703bedc689d6a526913eabe5ef3abc47563 Mon Sep 17 00:00:00 2001 From: Adam Wright Date: Sat, 3 Oct 2026 00:57:46 +0000 Subject: [PATCH 38/49] Bring in WebsiteAngular's versions of the two style libraries reactome/WebsiteAngular took ngx-reactome-cytoscape-style (as reactome-cytoscape-style) in February and ngx-reactome-style in August, and developed both there since -- 22 files and some 4000 lines in the cytoscape style alone. This makes this repository their home again: their sources as they are in WebsiteAngular, under the names published here, at 0.1.0 for the change. The cytoscape style no longer needs Angular; it needs chroma-js, and cytoscape 3.30 or later, which carries its own types (so @types/cytoscape goes). The old types/cytoscape/index.d.ts was entirely commented out. Co-Authored-By: Claude Opus 5.5 --- package-lock.json | 49 +- package.json | 8 +- .../ngx-reactome-cytoscape-style/README.md | 137 +- .../ng-package.json | 4 +- .../ngx-reactome-cytoscape-style/package.json | 37 +- .../{ => src}/assets/Rx.svg | 0 .../src/assets/index.scss | 49 + .../src/assets/loader.gif | Bin 0 -> 1010978 bytes .../src/lib/color.ts | 147 -- .../src/lib/drawer/image-builder.ts | 454 ++++-- .../src/lib/drawer/shape/cell-shape.ts | 70 +- .../src/lib/drawer/shape/complex-shape.ts | 82 +- .../drawer/shape/disease-interactor-shape.ts | 46 +- .../drawer/shape/entity-sets-shape.spec.ts | 69 + .../src/lib/drawer/shape/entity-sets-shape.ts | 161 +- .../src/lib/drawer/shape/gee-shape.ts | 102 +- .../src/lib/drawer/shape/gene-shape.ts | 122 +- .../drawer/shape/interacting-pathway-shape.ts | 55 +- .../src/lib/drawer/shape/molecule-shape.ts | 104 +- .../src/lib/drawer/shape/protein-shape.ts | 66 +- .../src/lib/drawer/shape/rna-shape.ts | 81 +- .../src/lib/drawer/shape/sub-pathway-shape.ts | 67 +- .../src/lib/drawer/types.ts | 34 +- .../src/lib/interactivity.ts | 789 ++++++---- .../src/lib/model/reactome-event.model.ts | 16 +- .../src/lib/properties-utils.ts | 43 +- .../src/lib/properties.ts | 366 +++-- .../src/lib/style.ts | 1360 +++++++++-------- .../src/lib/types.ts | 12 +- .../src/public-api.ts | 13 +- .../tsconfig.lib.json | 14 +- .../types/cytoscape/index.d.ts | 37 - projects/ngx-reactome-style/README.md | 3 +- projects/ngx-reactome-style/package.json | 10 +- .../ngx-reactome-style/src/assets/_index.scss | 56 +- .../src/assets/_theme-colors.scss | 106 +- .../src/assets/_variables.scss | 20 +- .../lib/ngx-reactome-style.component.spec.ts | 23 - .../src/lib/ngx-reactome-style.component.ts | 15 - .../lib/ngx-reactome-style.service.spec.ts | 16 - .../src/lib/ngx-reactome-style.service.ts | 9 - projects/ngx-reactome-style/src/public-api.ts | 5 +- 42 files changed, 2728 insertions(+), 2129 deletions(-) rename projects/ngx-reactome-cytoscape-style/{ => src}/assets/Rx.svg (100%) create mode 100644 projects/ngx-reactome-cytoscape-style/src/assets/index.scss create mode 100644 projects/ngx-reactome-cytoscape-style/src/assets/loader.gif delete mode 100644 projects/ngx-reactome-cytoscape-style/src/lib/color.ts create mode 100644 projects/ngx-reactome-cytoscape-style/src/lib/drawer/shape/entity-sets-shape.spec.ts delete mode 100644 projects/ngx-reactome-cytoscape-style/types/cytoscape/index.d.ts delete mode 100644 projects/ngx-reactome-style/src/lib/ngx-reactome-style.component.spec.ts delete mode 100644 projects/ngx-reactome-style/src/lib/ngx-reactome-style.component.ts delete mode 100644 projects/ngx-reactome-style/src/lib/ngx-reactome-style.service.spec.ts delete mode 100644 projects/ngx-reactome-style/src/lib/ngx-reactome-style.service.ts diff --git a/package-lock.json b/package-lock.json index f785072..c3f9bef 100644 --- a/package-lock.json +++ b/package-lock.json @@ -19,9 +19,11 @@ "@angular/platform-browser-dynamic": "^21.2.25", "@angular/router": "^21.2.25", "@ngneat/until-destroy": "^10.0.0", - "cytoscape": "^3.29.2", + "chroma-js": "^3.2.0", + "cytoscape": "^3.34.3", "cytoscape-fcose": "^2.2.0", - "cytoscape-layers": "^2.4.4", + "cytoscape-layers": "^3.1.0", + "lodash": "^4.18.1", "rxjs": "~7.8.0", "tslib": "^2.3.0", "vectorious": "^6.1.12", @@ -31,7 +33,7 @@ "@angular-devkit/build-angular": "^21.2.24", "@angular/cli": "^21.2.24", "@angular/compiler-cli": "^21.2.25", - "@types/cytoscape": "^3.21.0", + "@types/chroma-js": "^3.1.2", "@types/cytoscape-fcose": "^2.2.4", "@types/jasmine": "~4.3.0", "@types/lodash": "^4.14.202", @@ -7772,6 +7774,13 @@ "@types/node": "*" } }, + "node_modules/@types/chroma-js": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@types/chroma-js/-/chroma-js-3.1.2.tgz", + "integrity": "sha512-YBTQqArPN8A0niHXCwrO1z5x++a+6l0mLBykncUpr23oIPW7L4h39s6gokdK/bDrPmSh8+TjMmrhBPnyiaWPmQ==", + "dev": true, + "license": "MIT" + }, "node_modules/@types/connect": { "version": "3.4.38", "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", @@ -7811,7 +7820,8 @@ "node_modules/@types/cytoscape": { "version": "3.21.0", "resolved": "https://registry.npmjs.org/@types/cytoscape/-/cytoscape-3.21.0.tgz", - "integrity": "sha512-RN5SPiyVDpUP+LoOlxxlOYAMzkE7iuv3gA1jt3Hx2qTwArpZVPPdO+SI0hUj49OAn4QABR7JK9Gi0hibzGE0Aw==" + "integrity": "sha512-RN5SPiyVDpUP+LoOlxxlOYAMzkE7iuv3gA1jt3Hx2qTwArpZVPPdO+SI0hUj49OAn4QABR7JK9Gi0hibzGE0Aw==", + "dev": true }, "node_modules/@types/cytoscape-fcose": { "version": "2.2.4", @@ -9322,6 +9332,12 @@ "node": ">=18" } }, + "node_modules/chroma-js": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/chroma-js/-/chroma-js-3.2.0.tgz", + "integrity": "sha512-os/OippSlX1RlWWr+QDPcGUZs0uoqr32urfxESG9U93lhUfbnlyckte84Q8P1UQY/qth983AS1JONKmLS4T0nw==", + "license": "(BSD-3-Clause AND Apache-2.0)" + }, "node_modules/chrome-trace-event": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", @@ -9996,9 +10012,10 @@ "dev": true }, "node_modules/cytoscape": { - "version": "3.29.2", - "resolved": "https://registry.npmjs.org/cytoscape/-/cytoscape-3.29.2.tgz", - "integrity": "sha512-2G1ycU28Nh7OHT9rkXRLpCDP30MKH1dXJORZuBhtEhEW7pKwgPi77ImqlCWinouyE1PNepIOGZBOrE84DG7LyQ==", + "version": "3.34.3", + "resolved": "https://registry.npmjs.org/cytoscape/-/cytoscape-3.34.3.tgz", + "integrity": "sha512-yfYGhRcGAntq6YBD583j4n0Eg3jIxvWmZtz/5uz9UYkeIStSlMxuUja+ec5j3iBD8nv1rwaOAYMW09tBdkSeaQ==", + "license": "MIT", "engines": { "node": ">=0.10" } @@ -10015,12 +10032,10 @@ } }, "node_modules/cytoscape-layers": { - "version": "2.4.4", - "resolved": "https://registry.npmjs.org/cytoscape-layers/-/cytoscape-layers-2.4.4.tgz", - "integrity": "sha512-mkq8K+8F0H29q0IhjQu1V/jbEnSi5noDrYZjIqt5u0Y7W70qyRwuDyRpZAXaV4KjhizkSOg35ncLzJG+wGfWxQ==", - "dependencies": { - "@types/cytoscape": "^3.19.16" - }, + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cytoscape-layers/-/cytoscape-layers-3.1.0.tgz", + "integrity": "sha512-HhldyRPURRn4axeDsCiKdKqiZN8bcoWjclLXl3kWekDd7Wy4QHo5cntm4W4kxL/R0u8AA9VAfmNB1P7nJ9scew==", + "license": "MIT", "peerDependencies": { "cytoscape": "^3.23.0" } @@ -13658,10 +13673,10 @@ } }, "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.18.1.tgz", + "integrity": "sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==", + "license": "MIT" }, "node_modules/lodash.debounce": { "version": "4.0.8", diff --git a/package.json b/package.json index 649895e..f298e6c 100644 --- a/package.json +++ b/package.json @@ -24,9 +24,11 @@ "@angular/platform-browser-dynamic": "^21.2.25", "@angular/router": "^21.2.25", "@ngneat/until-destroy": "^10.0.0", - "cytoscape": "^3.29.2", + "chroma-js": "^3.2.0", + "cytoscape": "^3.34.3", "cytoscape-fcose": "^2.2.0", - "cytoscape-layers": "^2.4.4", + "cytoscape-layers": "^3.1.0", + "lodash": "^4.18.1", "rxjs": "~7.8.0", "tslib": "^2.3.0", "vectorious": "^6.1.12", @@ -36,7 +38,7 @@ "@angular-devkit/build-angular": "^21.2.24", "@angular/cli": "^21.2.24", "@angular/compiler-cli": "^21.2.25", - "@types/cytoscape": "^3.21.0", + "@types/chroma-js": "^3.1.2", "@types/cytoscape-fcose": "^2.2.4", "@types/jasmine": "~4.3.0", "@types/lodash": "^4.14.202", diff --git a/projects/ngx-reactome-cytoscape-style/README.md b/projects/ngx-reactome-cytoscape-style/README.md index 60929ec..d55295d 100644 --- a/projects/ngx-reactome-cytoscape-style/README.md +++ b/projects/ngx-reactome-cytoscape-style/README.md @@ -28,13 +28,13 @@ const element: cytoscape.ElementDefinition = { id: 'ID', // string, unique among all elements height: 100, // number, for nodes width: 100, // number, for nodes - displayName: "NODE LABEL", // string, for nodes + displayName: 'NODE LABEL', // string, for nodes stoichiometry: 1, // number, for edges - parent: 'COMPARTMENT ID' // string, for nodes | If present, will place the node withing the identified compartment + parent: 'COMPARTMENT ID', // string, for nodes | If present, will place the node withing the identified compartment }, - position: {x: 0, y: 0}, // for nodes, if required to be placed manually - classes: ['Type', 'Family Type'] // Values found in tables bellow -} + position: { x: 0, y: 0 }, // for nodes, if required to be placed manually + classes: ['Type', 'Family Type'], // Values found in tables bellow +}; ``` To do so, whee defining your nodes and edges, apply to them the classes that you will find in the table bellow @@ -42,13 +42,13 @@ To do so, whee defining your nodes and edges, apply to them the classes that you #### 1. Nodes The first thing to notice is that the output network needs to be [bipartite](https://en.wikipedia.org/wiki/Bipartite_graph). -Indeed, both `reaction` and `PhysicalEntity` (interacting molecules) are represented by nodes. +Indeed, both `reaction` and `PhysicalEntity` (interacting molecules) are represented by nodes. In principle, you should always have a `reaction` between every 2 `PhysicalEnity` nodes. ##### 1.a PhysicalEntity | Type | Classes | Note | -|---------------------|---------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| ------------------- | ------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Protein | `['Protein', 'PhysicalEntity']` | | | GenomeEncodedEntity | `['GenomeEncodedEntity', 'PhysicalEntity']` | This corresponds to abstract concepts and/or to any macromolecule that is encoded by DNA, but not fitting to any other categories available | | RNA | `['RNA', 'PhysicalEntity']` | | @@ -61,9 +61,9 @@ In principle, you should always have a `reaction` between every 2 `PhysicalEnity ##### 1.b reaction | Type | Classes | Note | -|--------------|--------------------------------|-------------------------------------------------------------------------------| +| ------------ | ------------------------------ | ----------------------------------------------------------------------------- | | association | `['association', 'reaction']` | 2 `PhysicalEntity` or more binding together | -| dissociation | `['dissociation', 'reaction']` | 1 `Complex` separating in its components | +| dissociation | `['dissociation', 'reaction']` | 1 `Complex` separating in its components | | transition | `['transition', 'reaction']` | A transition from a compartment to another, or any other non-chemical process | | uncertain | `['uncertain', 'reaction']` | A reaction which have not been resolved clearly yet | | omitted | `['omitted', 'reaction']` | A complex process involving many reactions summarized in a single one | @@ -73,7 +73,7 @@ In principle, you should always have a `reaction` between every 2 `PhysicalEnity Compartments are a special case of nodes since they are not interacting. | Type | Classes | Note | -|-------------|-------------------|------| +| ----------- | ----------------- | ---- | | Compartment | `['Compartment']` | | ##### 1.c Modifications @@ -81,7 +81,7 @@ Compartments are a special case of nodes since they are not interacting. Modifications are a special case of nodes since they are associated to an Entity. | Type | Classes | Note | -|--------------|--------------------|-------------------------------------------------------------------------------| +| ------------ | ------------------ | ----------------------------------------------------------------------------- | | Modification | `['Modification']` | Requires explicit position, width, height and parent `nodeId` within its data | #### 2. Edges @@ -90,16 +90,16 @@ They are 2 big types of edges: those going from the `PhysicalEntity` to the `rea ['production', 'catalysis', 'positive-regulation', 'negative-regulation', 'set-to-member'] -| Direction | Type | Classes | Note | -|----------------------------------|---------------------|---------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------| -| `PhysicalEntity` --> `reaction` | consumption | `['consumption', 'incoming']` | Is used for reaction's **inputs** | -| | catalysis | `['catalysis', 'incoming']` | Is used for reaction's **catalyzers** | -| | positive-regulation | `['positive-regulation', 'incoming']` | Is used for reaction's **positive regulators** | -| | negative-regulation | `['negative-regulation', 'incoming']` | Is used for reaction's **negative regulators** | -| | | | | -| `reaction` --> `PhysicalEntity` | production | `['production', 'outgoing']` | Is used for reactions' **outputs** | -| | | | | -| `EntitySet` --> `PhysicalEntity` | set-to-member | `['set-to-member']` | Is used to link `EntitySet` to one of its member also visible in the network. Only time when there is a direct link between 2 `PhysicalEntity` | +| Direction | Type | Classes | Note | +| -------------------------------- | ------------------- | ------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | +| `PhysicalEntity` --> `reaction` | consumption | `['consumption', 'incoming']` | Is used for reaction's **inputs** | +| | catalysis | `['catalysis', 'incoming']` | Is used for reaction's **catalyzers** | +| | positive-regulation | `['positive-regulation', 'incoming']` | Is used for reaction's **positive regulators** | +| | negative-regulation | `['negative-regulation', 'incoming']` | Is used for reaction's **negative regulators** | +| | | | | +| `reaction` --> `PhysicalEntity` | production | `['production', 'outgoing']` | Is used for reactions' **outputs** | +| | | | | +| `EntitySet` --> `PhysicalEntity` | set-to-member | `['set-to-member']` | Is used to link `EntitySet` to one of its member also visible in the network. Only time when there is a direct link between 2 `PhysicalEntity` | ### Properties @@ -107,51 +107,51 @@ Reactome Cytoscape Style defines several properties that allow you to customize Here is a table summarizing how to access and customize all those properties. -| Group | Key | Type | CSS property | Default | Description | -|---------------------|------------------|----------------------|-------------------------|-----------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------| -| global | thickness | number | *Not available* | 4 | Thickness of all the lines in the network | -| | surface | color | `--surface` | `#F6FEFF` ![#F6FEFF](https://placehold.co/65x20/F6FEFF/F6FEFF) | Background color of neutral elements | -| | onSurface | color | `--on-surface` | `#001F24` ![#001F24](https://placehold.co/65x20/001F24/001F24) | Stroke color of elements place on surface, as well as all lines | -| | primary | color | `--primary` | `#006782` ![#006782](https://placehold.co/65x20/006782/006782) | Main color, used for the outline of Genome Encoded Entities by default | -| | onPrimary | color | `--on-primary` | `#FFFFFF` ![#FFFFFF](https://placehold.co/65x20/FFFFFF/FFFFFF) | Color of text placed on top of primary elements | -| | positive | color | `--positive` | `#0C9509` ![#0C9509](https://placehold.co/65x20/0C9509/0C9509) | Color of positive element, like positive regulation | -| | negative | color | `--negative` | `#BA1A1A` ![#BA1A1A](https://placehold.co/65x20/BA1A1A/BA1A1A) | Color of negative elements, like negative regulation | -| | selectNode | color | `--select-node` | `#6EB3E4` ![#6EB3E4](https://placehold.co/65x20/6EB3E4/6EB3E4) | Color of selection on nodes | -| | selectEdge | color | `--select-edge` | `#0561A6` ![#0561A6](https://placehold.co/65x20/0561A6/0561A6) | Color of selection on edges | -| | hoverNode | color | `--hover-node` | `#78E076` ![#78E076](https://placehold.co/65x20/78E076/78E076) | Color of hover on nodes | -| | hoverEdge | color | `--hover-edge` | `#04B601` ![#04B601](https://placehold.co/65x20/04B601/04B601) | Color of hover on edges | -| | | | | | | -| compartment | fill | color | `--compartment` | `#E5834A` ![#E5834A](https://placehold.co/65x20/E5834A/E5834A) | Background and stroke color of compartments. The background opacity is modulated by its own property | -| | opacity | number | *Not available* | 0.12 | Opacity of the background of compartments | -| | | | | | | -| sub-pathway | opacity | `[number, number][]` | *Not available* | [[0.2, 0.4], [0.4, 0]] | Opacity key points for sub-pathways. First value is the zoom level, Second value is the associated opacity | -| | labelOpacity | `[number, number][]` | *Not available* | [[0.2, 1], [0.4, 0]] | Opacity key points for sub-pathways labels. First value is the zoom level, Second value is the associated opacity | -| | | | | | | -| protein | fill | color | `--primary-contrast-1` | `#001F29` ![#001F29](https://placehold.co/65x20/001F29/001F29) | Background color of proteins. The `--primary-contrast-1` corresponds to the shade of primary with the strongest contrast against `--surface` | -| | | | | | | -| genomeEncodedEntity | fill | color | `--primary-contrast-1` | `#001F29` ![#001F29](https://placehold.co/65x20/001F29/001F29) | By default, use the same value as the one used by protein | -| | stroke | color | `--primary` | `#006782` ![#006782](https://placehold.co/65x20/006782/006782) | By default, use the `global.primary` color | -| | | | | | | -| rna | fill | color | `--primary-contrast-2` | `#003545` ![#003545](https://placehold.co/65x20/003545/003545) | The `--primary-contrast-2` corresponds to the shade of primary with the middle contrast against `--surface` | -| | | | | | | -| gene | decorationHeight | number | *Not available* | 20 | Height of the top expression arrow decoration. Should leave enough place to fit arrowHeadSize plus a comfortable margin. | -| | arrowHeadSize | number | *Not available* | 10 | Height of equilateral triangle used as the arrow head of the decoration | -| | borderRadius | number | *Not available* | 8 | Corner radius of the background | -| | arrowRadius | number | *Not available* | 8 | Radius of turn in the decoration arrow. Should be < `gene.decorationHeight` | -| | fill | color | `--primary-contrast-3` | `#004D62` ![#004D62](https://placehold.co/65x20/004D62/004D62) | The `--primary-contrast-3` corresponds to the shade of primary with the weakest contrast against `--surface` | -| | | | | | | -| molecule | fill | color | `--surface` | `#F6FEFF` ![#F6FEFF](https://placehold.co/65x20/F6FEFF/F6FEFF) | By default, use the `global.surface` value | -| | stroke | color | `--on-surface` | `#001F24` ![#001F24](https://placehold.co/65x20/001F24/001F24) | By default, use the `global.onSurface` value | -| | | | | | | -| complex | cut | number | *Not available* | | | -| | fill | color | `--tertiary-contrast-1` | `#00315C` ![#00315C](https://placehold.co/65x20/00315C/00315C) | The `--tertiary-contrast-1` corresponds to the shade of tertiary with the strongest contrast against `--surface` | -| | stroke | color | `--on-tertiary` | `#FFFFFF` ![#FFFFFF](https://placehold.co/65x20/FFFFFF/FFFFFF) | Font and inner border color. Usually close to `global.surface` | -| | | | | | | -| entitySet | radius | number | *Not available* | 10 | Radius of the different swirls of the curly braces bordering the node | -| | fill | color | `--tertiary-contrast-2` | `#1660A5` ![#1660A5](https://placehold.co/65x20/1660A5/1660A5) | The `--tertiary-contrast-2` corresponds to the shade of tertiary with the weakest contrast against `--surface` | -| | stroke | color | `--on-tertiary` | `#FFFFFF` ![#FFFFFF](https://placehold.co/65x20/FFFFFF/FFFFFF) | | - -[//]: # (`#RGB` ![#RGB](https://placehold.co/65x20/RGB/RGB)) +| Group | Key | Type | CSS property | Default | Description | +| ------------------- | ---------------- | -------------------- | ----------------------- | -------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- | +| global | thickness | number | _Not available_ | 4 | Thickness of all the lines in the network | +| | surface | color | `--surface` | `#F6FEFF` ![#F6FEFF](https://placehold.co/65x20/F6FEFF/F6FEFF) | Background color of neutral elements | +| | onSurface | color | `--on-surface` | `#001F24` ![#001F24](https://placehold.co/65x20/001F24/001F24) | Stroke color of elements place on surface, as well as all lines | +| | primary | color | `--primary` | `#006782` ![#006782](https://placehold.co/65x20/006782/006782) | Main color, used for the outline of Genome Encoded Entities by default | +| | onPrimary | color | `--on-primary` | `#FFFFFF` ![#FFFFFF](https://placehold.co/65x20/FFFFFF/FFFFFF) | Color of text placed on top of primary elements | +| | positive | color | `--positive` | `#0C9509` ![#0C9509](https://placehold.co/65x20/0C9509/0C9509) | Color of positive element, like positive regulation | +| | negative | color | `--negative` | `#BA1A1A` ![#BA1A1A](https://placehold.co/65x20/BA1A1A/BA1A1A) | Color of negative elements, like negative regulation | +| | selectNode | color | `--select-node` | `#6EB3E4` ![#6EB3E4](https://placehold.co/65x20/6EB3E4/6EB3E4) | Color of selection on nodes | +| | selectEdge | color | `--select-edge` | `#0561A6` ![#0561A6](https://placehold.co/65x20/0561A6/0561A6) | Color of selection on edges | +| | hoverNode | color | `--hover-node` | `#78E076` ![#78E076](https://placehold.co/65x20/78E076/78E076) | Color of hover on nodes | +| | hoverEdge | color | `--hover-edge` | `#04B601` ![#04B601](https://placehold.co/65x20/04B601/04B601) | Color of hover on edges | +| | | | | | | +| compartment | fill | color | `--compartment` | `#E5834A` ![#E5834A](https://placehold.co/65x20/E5834A/E5834A) | Background and stroke color of compartments. The background opacity is modulated by its own property | +| | opacity | number | _Not available_ | 0.12 | Opacity of the background of compartments | +| | | | | | | +| sub-pathway | opacity | `[number, number][]` | _Not available_ | [[0.2, 0.4], [0.4, 0]] | Opacity key points for sub-pathways. First value is the zoom level, Second value is the associated opacity | +| | labelOpacity | `[number, number][]` | _Not available_ | [[0.2, 1], [0.4, 0]] | Opacity key points for sub-pathways labels. First value is the zoom level, Second value is the associated opacity | +| | | | | | | +| protein | fill | color | `--primary-contrast-1` | `#001F29` ![#001F29](https://placehold.co/65x20/001F29/001F29) | Background color of proteins. The `--primary-contrast-1` corresponds to the shade of primary with the strongest contrast against `--surface` | +| | | | | | | +| genomeEncodedEntity | fill | color | `--primary-contrast-1` | `#001F29` ![#001F29](https://placehold.co/65x20/001F29/001F29) | By default, use the same value as the one used by protein | +| | stroke | color | `--primary` | `#006782` ![#006782](https://placehold.co/65x20/006782/006782) | By default, use the `global.primary` color | +| | | | | | | +| rna | fill | color | `--primary-contrast-2` | `#003545` ![#003545](https://placehold.co/65x20/003545/003545) | The `--primary-contrast-2` corresponds to the shade of primary with the middle contrast against `--surface` | +| | | | | | | +| gene | decorationHeight | number | _Not available_ | 20 | Height of the top expression arrow decoration. Should leave enough place to fit arrowHeadSize plus a comfortable margin. | +| | arrowHeadSize | number | _Not available_ | 10 | Height of equilateral triangle used as the arrow head of the decoration | +| | borderRadius | number | _Not available_ | 8 | Corner radius of the background | +| | arrowRadius | number | _Not available_ | 8 | Radius of turn in the decoration arrow. Should be < `gene.decorationHeight` | +| | fill | color | `--primary-contrast-3` | `#004D62` ![#004D62](https://placehold.co/65x20/004D62/004D62) | The `--primary-contrast-3` corresponds to the shade of primary with the weakest contrast against `--surface` | +| | | | | | | +| molecule | fill | color | `--surface` | `#F6FEFF` ![#F6FEFF](https://placehold.co/65x20/F6FEFF/F6FEFF) | By default, use the `global.surface` value | +| | stroke | color | `--on-surface` | `#001F24` ![#001F24](https://placehold.co/65x20/001F24/001F24) | By default, use the `global.onSurface` value | +| | | | | | | +| complex | cut | number | _Not available_ | | | +| | fill | color | `--tertiary-contrast-1` | `#00315C` ![#00315C](https://placehold.co/65x20/00315C/00315C) | The `--tertiary-contrast-1` corresponds to the shade of tertiary with the strongest contrast against `--surface` | +| | stroke | color | `--on-tertiary` | `#FFFFFF` ![#FFFFFF](https://placehold.co/65x20/FFFFFF/FFFFFF) | Font and inner border color. Usually close to `global.surface` | +| | | | | | | +| entitySet | radius | number | _Not available_ | 10 | Radius of the different swirls of the curly braces bordering the node | +| | fill | color | `--tertiary-contrast-2` | `#1660A5` ![#1660A5](https://placehold.co/65x20/1660A5/1660A5) | The `--tertiary-contrast-2` corresponds to the shade of tertiary with the weakest contrast against `--surface` | +| | stroke | color | `--on-tertiary` | `#FFFFFF` ![#FFFFFF](https://placehold.co/65x20/FFFFFF/FFFFFF) | | + +[//]: # '`#RGB` ![#RGB](https://placehold.co/65x20/RGB/RGB)' > All of the JavaScript defined properties accept either a direct value or a function that gives that value @@ -205,7 +205,7 @@ const cy = cytoscape({ }) function updateCssProperty(property: string, newValue: string) { - // Updating Reactome.Style.css is updating the CSS variable on the container element + // Updating Reactome.Style.css is updating the CSS variable on the container element // in order to mimic a css variable change Reactome.Style.css.setProperty('--property', newValue); // Needed to apply the changes @@ -220,6 +220,7 @@ This library was generated with [Angular CLI](https://github.com/angular/angular ### Code scaffolding Run `ng generate component component-name --project reactome-cytoscape-style` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module --project reactome-cytoscape-style`. + > Note: Don't forget to add `--project reactome-cytoscape-style` or else it will be added to the default project in your `angular.json` file. ### Build @@ -237,3 +238,5 @@ Run `ng test reactome-cytoscape-style` to execute the unit tests via [Karma](htt ### Further help To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page. + +//TODO complete documentation with all the new elements diff --git a/projects/ngx-reactome-cytoscape-style/ng-package.json b/projects/ngx-reactome-cytoscape-style/ng-package.json index 8b36f2e..c308543 100644 --- a/projects/ngx-reactome-cytoscape-style/ng-package.json +++ b/projects/ngx-reactome-cytoscape-style/ng-package.json @@ -6,9 +6,9 @@ }, "assets": [ { + "input": "src/assets/", "glob": "**/*", - "input": "/src/assets/", - "output": "/" + "output": "/assets/" } ] } diff --git a/projects/ngx-reactome-cytoscape-style/package.json b/projects/ngx-reactome-cytoscape-style/package.json index bbc82d9..45687df 100644 --- a/projects/ngx-reactome-cytoscape-style/package.json +++ b/projects/ngx-reactome-cytoscape-style/package.json @@ -1,34 +1,25 @@ { "name": "ngx-reactome-cytoscape-style", - "version": "0.0.20", + "version": "0.1.0", + "type": "module", "peerDependencies": { - "cytoscape": "^3.27.0", - "cytoscape-fcose": "^2.2.0", - "cytoscape-layers": "^2.4.4", + "cytoscape": "^3.30.0", "lodash.memoize": "^4.1.2", - "@angular/common": "^17.2.4", - "@angular/core": "^17.2.4" + "chroma-js": "^3.1.2" }, "dependencies": { "tslib": "^2.3.0" }, "devDependencies": { - "@angular-devkit/build-angular": "^18.2.9", - "@angular/cli": "^18.2.9", - "@angular/compiler-cli": "^18.2.8", - "@types/cytoscape": "^3.21.0", - "@types/cytoscape-fcose": "^2.2.4", - "@types/jasmine": "~4.3.0", - "@types/lodash": "^4.14.202", - "angular-cli-ghpages": "^1.0.6", - "jasmine-core": "~4.6.0", - "karma": "~6.4.0", - "karma-chrome-launcher": "~3.2.0", - "karma-coverage": "~2.2.0", - "karma-jasmine": "~5.1.0", - "karma-jasmine-html-reporter": "~2.1.0", - "ng-packagr": "^18.2.1", - "npm-run-all": "^4.1.1", - "typescript": "~5.4.5" + "@types/chroma-js": "^3.1.1" + }, + "sideEffects": false, + "exports": { + ".": { + "types": "./index.d.ts", + "esm2022": "./esm2022/reactome-cytoscape-style.mjs", + "esm": "./esm2022/reactome-cytoscape-style.mjs", + "default": "./fesm2022/reactome-cytoscape-style.mjs" + } } } diff --git a/projects/ngx-reactome-cytoscape-style/assets/Rx.svg b/projects/ngx-reactome-cytoscape-style/src/assets/Rx.svg similarity index 100% rename from projects/ngx-reactome-cytoscape-style/assets/Rx.svg rename to projects/ngx-reactome-cytoscape-style/src/assets/Rx.svg diff --git a/projects/ngx-reactome-cytoscape-style/src/assets/index.scss b/projects/ngx-reactome-cytoscape-style/src/assets/index.scss new file mode 100644 index 0000000..0416126 --- /dev/null +++ b/projects/ngx-reactome-cytoscape-style/src/assets/index.scss @@ -0,0 +1,49 @@ +@mixin configure-diagrams { + .loading { + background: url(loader.gif) no-repeat center / contain; + video { + visibility: hidden; + } + } + video.loader { + width: 100%; + height: 100%; + position: fixed; + } + + .molecule-structure { + svg { + height: 100%; + width: 100%; + + path { + stroke-miterlimit: 2 !important; + } + } + } + + .video { + filter: brightness(1.2); + } + + // On Firefox, the transparency doesn't work so we embed the video in the node + @supports (-moz-appearance: none) { + video { + transform: scale(0.4); + border-radius: 999px; + background: black; + } + } + + .dark { + .loading { + //background: url(loader.gif) no-repeat center / contain; + } + .video { + filter: brightness(1); + } + .molecule { + filter: invert(1) hue-rotate(180deg); + } + } +} diff --git a/projects/ngx-reactome-cytoscape-style/src/assets/loader.gif b/projects/ngx-reactome-cytoscape-style/src/assets/loader.gif new file mode 100644 index 0000000000000000000000000000000000000000..886ec57440c0267f54c773bef041f07ab19b6c78 GIT binary patch literal 1010978 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%0Ad`WWBR$Le8PNj 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

;4gGFO4qrlE?z`;fZS2 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%0A4VFt=KR{M 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

V^4i0MT+oEjHg6 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 JnoBfU2g8~ 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�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¬6?0kD9K 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 XGA-A#E#ERO=dv#EGB2x85C8x>?Pfn- literal 0 HcmV?d00001 diff --git a/projects/ngx-reactome-cytoscape-style/src/lib/color.ts b/projects/ngx-reactome-cytoscape-style/src/lib/color.ts deleted file mode 100644 index 719aa9d..0000000 --- a/projects/ngx-reactome-cytoscape-style/src/lib/color.ts +++ /dev/null @@ -1,147 +0,0 @@ -export class HSL { - constructor(public hue: number, public saturation: number, public luminance: number) { - } - - toString(): string { - return `hsl(${this.h},${this.s},${this.l})` - } - - invertL(): this { - this.l = 100 - this.l; - return this; - } - - invertS(): this { - this.s = 100 - this.s; - return this; - } - - invertH(): this { - this.h = (360 - this.h) % 360; - return this; - } - - get h() { - return this.hue; - } - - set h(value: number) { - this.hue = value; - } - - get s() { - return this.saturation; - } - - set s(value: number) { - this.saturation = value; - } - - get l() { - return this.luminance; - } - - set l(value: number) { - this.luminance = value; - } - - static fromHex(hex: string): HSL { - // Convert hex to RGB first - let rS: string, gS: string, bS: string; - let r = 0, g = 0, b = 0; - if (hex.length == 4) { - rS = "0x" + hex[1] + hex[1]; - gS = "0x" + hex[2] + hex[2]; - bS = "0x" + hex[3] + hex[3]; - } else if (hex.length == 7) { - rS = "0x" + hex[1] + hex[2]; - gS = "0x" + hex[3] + hex[4]; - bS = "0x" + hex[5] + hex[6]; - } else throw new Error('Hexadecimal not properly formatted') - // Then to HSL - r = Number.parseInt(rS, 16) / 255; - g = Number.parseInt(gS, 16) / 255; - b = Number.parseInt(bS, 16) / 255; - - let cmin = Math.min(r, g, b), - cmax = Math.max(r, g, b), - delta = cmax - cmin, - h = 0, - s = 0, - l = 0; - - if (delta == 0) - h = 0; - else if (cmax == r) - h = ((g - b) / delta) % 6; - else if (cmax == g) - h = (b - r) / delta + 2; - else - h = (r - g) / delta + 4; - - h = Math.round(h * 60); - - if (h < 0) - h += 360; - - l = (cmax + cmin) / 2; - s = delta == 0 ? 0 : delta / (1 - Math.abs(2 * l - 1)); - s = +(s * 100).toFixed(1); - l = +(l * 100).toFixed(1); - - return new HSL(h, s, l); - } - - toHex(): string { - const h = this.h; - const s = this.s /= 100; - const l = this.l /= 100; - - let c = (1 - Math.abs(2 * l - 1)) * s, - x = c * (1 - Math.abs((h / 60) % 2 - 1)), - m = l - c / 2, - r = 0, - g = 0, - b = 0; - - if (0 <= h && h < 60) { - r = c; - g = x; - b = 0; - } else if (60 <= h && h < 120) { - r = x; - g = c; - b = 0; - } else if (120 <= h && h < 180) { - r = 0; - g = c; - b = x; - } else if (180 <= h && h < 240) { - r = 0; - g = x; - b = c; - } else if (240 <= h && h < 300) { - r = x; - g = 0; - b = c; - } else if (300 <= h && h < 360) { - r = c; - g = 0; - b = x; - } - // Having obtained RGB, convert channels to hex - let rS = Math.round((r + m) * 255).toString(16); - let gS = Math.round((g + m) * 255).toString(16); - let bS = Math.round((b + m) * 255).toString(16); - - // Prepend 0s, if necessary - if (rS.length == 1) - rS = "0" + rS; - if (gS.length == 1) - gS = "0" + gS; - if (bS.length == 1) - bS = "0" + bS; - - return "#" + rS + gS + bS; - } -} diff --git a/projects/ngx-reactome-cytoscape-style/src/lib/drawer/image-builder.ts b/projects/ngx-reactome-cytoscape-style/src/lib/drawer/image-builder.ts index b12b0c3..06feaa1 100644 --- a/projects/ngx-reactome-cytoscape-style/src/lib/drawer/image-builder.ts +++ b/projects/ngx-reactome-cytoscape-style/src/lib/drawer/image-builder.ts @@ -1,197 +1,337 @@ -import cytoscape from "cytoscape"; -import {gene} from "./shape/gene-shape"; -import {isNumber, memoize} from "lodash"; -import {molecule} from "./shape/molecule-shape"; -import {protein} from "./shape/protein-shape"; -import {rna} from "./shape/rna-shape"; -import {genomeEncodedEntity} from "./shape/gee-shape"; -import {complex} from "./shape/complex-shape"; -import {entitySet} from "./shape/entity-sets-shape"; -import {cell} from "./shape/cell-shape"; -import {interactingPathway} from "./shape/interacting-pathway-shape"; -import {diseaseInteractor} from "./shape/disease-interactor-shape"; - -import {subPathway} from "./shape/sub-pathway-shape"; -import {extract} from "../properties-utils"; -import {Node} from "../types"; -import {Aggregated, DrawerParameters, DrawerProvider, Image, Memo} from "./types"; -import {Properties} from "../properties"; - - -export const imageBuilder = (properties: Properties) => memoize((node: cytoscape.NodeSingular): Aggregated => { - let layers: Image[] = []; - const clazz = node.classes().find(clazz => classToDrawers.has(clazz as Node)) as Node - if (!clazz) return aggregate(layers, defaultBg); - - const provider = classToDrawers.get(clazz)!; - const drawerParams: DrawerParameters = { - width: node.data("width"), - height: node.data("height"), - drug: node.hasClass('drug'), - disease: node.hasClass('disease'), - interactor: node.hasClass('Interactor'), - crossed: node.hasClass('crossed'), - lossOfFunction: node.hasClass('loss-of-function') - }; - - const drawer = provider(properties, drawerParams); - - if (node.hasClass('flag') && drawer.flag) layers.push(drawer.flag); - - if (drawer.background) layers.push(drawer.background); - - if (node.selected() && drawer.select) layers.push(drawer.select); - - if (node.hasClass('hover') && drawer.hover) layers.push(drawer.hover); - - if (drawer.decorators) layers.push(...drawer.decorators); - - if (drawerParams.drug) { - layers.push(RX(properties, drawerParams, clazz)); - } - - if (node.classes().includes('Pathway')) { - layers.push(Pathway(properties, drawerParams)) - } +import cytoscape from 'cytoscape'; +import { gene } from './shape/gene-shape'; +import { isArray, isNumber, memoize } from 'lodash'; +import { molecule } from './shape/molecule-shape'; +import { protein } from './shape/protein-shape'; +import { rna } from './shape/rna-shape'; +import { genomeEncodedEntity } from './shape/gee-shape'; +import { complex } from './shape/complex-shape'; +import { entitySet } from './shape/entity-sets-shape'; +import { cell } from './shape/cell-shape'; +import { interactingPathway } from './shape/interacting-pathway-shape'; +import { diseaseInteractor } from './shape/disease-interactor-shape'; + +import { subPathway } from './shape/sub-pathway-shape'; +import { extract } from '../properties-utils'; +import { Node } from '../types'; +import { Aggregated, DrawerParameters, DrawerProvider, Image, Memo } from './types'; +import { Properties } from '../properties'; +import { Style } from '../style'; +import chroma from 'chroma-js'; + +export const imageBuilder = (properties: Properties, style: Style) => + memoize( + (node: cytoscape.NodeSingular): Aggregated => { + let layers: Image[] = []; + const clazz = node.classes().find((clazz) => classToDrawers.has(clazz as Node)) as Node; + if (!clazz) return aggregate(layers, defaultBg); + + const provider = classToDrawers.get(clazz)!; + const exps = node.data('exp'); + const drawerParams: DrawerParameters = { + id: node.id(), + width: node.data('width'), + height: node.data('height'), + drug: node.hasClass('drug'), + disease: node.hasClass('disease'), + interactor: node.hasClass('Interactor'), + crossed: node.hasClass('crossed'), + lossOfFunction: node.hasClass('loss-of-function'), + }; + + const drawer = provider(properties, drawerParams); + + if (node.hasClass('Polymer')) { + [drawer.background, ...(drawer.decorators || [])] + .filter((layer) => !!layer) + .map((originalLayer) => { + const polymerLayer = { ...originalLayer }; + polymerLayer['background-position-x'] = + ((polymerLayer['background-position-x'] || 0) as number) + + extract(properties.polymer.distance); + polymerLayer['background-position-y'] = + ((polymerLayer['background-position-y'] || 0) as number) + + extract(properties.polymer.distance); + polymerLayer['bounds-expansion'] = + ((polymerLayer['bounds-expansion'] || 0) as number) + + extract(properties.polymer.distance) * 2; + polymerLayer['background-image'] = + `` + + polymerLayer['background-image'] + + ''; + layers.push(polymerLayer); + return originalLayer as Image; + }) + .forEach((layer) => { + layers.push(layer); + }); + } + + if (node.hasClass('flag') && drawer.flag) layers.push(drawer.flag); + + if (drawer.background && !drawer.background.optional) layers.push(drawer.background); + + if (exps && drawer.analysis) layers.push(drawer.analysis); + + if (node.selected() && drawer.select) layers.push(drawer.select); + + if (node.hasClass('hover') && drawer.hover) layers.push(drawer.hover); + + if (drawer.decorators) layers.push(...drawer.decorators); + + if (drawerParams.drug) { + layers.push(RX(properties, drawerParams, clazz)); + } + + if (node.hasClass('Pathway')) { + layers.push(Pathway(properties, drawerParams)); + } + + if (drawerParams.crossed) layers.push(CROSS(properties, drawerParams)); + + const gradient = expToGradient(node.id(), exps, properties, style.currentPalette); + + // Convert raw HTML to string encoded images + layers = layers + .map((l) => { + if (l.requireGradient && gradient) + l['background-image'] = addGradient(l['background-image'] as string, gradient); + return l; + }) + .map((l) => ({ + ...l, + 'background-image': svgStr( + l['background-image'] as string, + isNumber(l['background-width']) ? l['background-width'] : drawerParams.width, + isNumber(l['background-height']) ? l['background-height'] : drawerParams.height + ), + })); + + const aggregated = aggregate(layers, defaultBg); + aggregated['bounds-expansion'] = [ + Math.max(...(aggregated['bounds-expansion'] as number[]), 0), + ]; + + // console.timeEnd(`build-image-${node.id()}`) + return aggregated; + }, + (node) => `${node.id()}-${node.classes().toString()}-s:${node.selected()}` + ); - if (drawerParams.crossed) layers.push(CROSS(properties, drawerParams)) +const defaultBg: Image = { + 'background-image': '', + 'background-position-x': 0, + 'background-position-y': 0, + 'background-offset-x': 0, + 'background-offset-y': 0, + 'background-width': '100%', + 'background-height': '100%', + 'background-fit': 'none', + 'background-clip': 'none', + 'background-image-opacity': 1, + 'background-image-containment': 'over', + 'background-image-smoothing': 'yes', + 'background-height-relative-to': 'inner', + 'background-width-relative-to': 'inner', + 'background-repeat': 'no-repeat', + 'background-image-crossorigin': 'anonymous', + 'bounds-expansion': 0, +}; + +function addGradient(svgText: string, gradient: string, _single: boolean = false): string { + // if (single) { + // const s = `${svgText}`; + // console.log(s) + // return s; + // } + // else + // return gradient + svgText.replaceAll('class="gradient"', 'fill="url(#gradient)"'); + return `${gradient}${svgText}`; +} - // Convert raw HTML to string encoded images - layers = layers.map(l => ({ - ...l, - "background-image": svgStr(l["background-image"] as string, - isNumber(l["background-width"]) ? l["background-width"] : drawerParams.width, - isNumber(l["background-height"]) ? l["background-height"] : drawerParams.height +function _expToGradient( + _id: string, + exps: (number | [number, number] | undefined)[], + _properties: Properties, + palette: chroma.Scale +): string | undefined { + if (!exps) return; + // console.time('exp-to-gradient') + const stops: { + start: number; + stop: number; + color: string; + exp: number | undefined; + width: number; + }[] = []; + const size = exps.reduce((l: number, e) => (e !== undefined && isArray(e) ? l + e[1] : l + 1), 0); + const delta = 1 / size; + exps.forEach((exp, _i) => { + const p = stops.length - 1; + const realExp = isArray(exp) ? exp[0]! : exp; + if (stops.length !== 0 && stops[p].exp === realExp) { + stops[p].stop += delta; + stops[p].width += delta; + } else { + if (isArray(exp)) { + stops.push({ + start: stops[p]?.stop || 0, + stop: (stops[p]?.stop || 0) + delta * exp[1], + width: delta * exp[1], + color: palette(realExp).hex(), + exp: realExp, + }); + // console.log(stops, exps) + } else { + stops.push({ + start: stops[p]?.stop || 0, + stop: (stops[p]?.stop || 0) + delta, + color: palette(realExp).hex(), + width: delta, + exp: realExp, + }); + } + } + }); + // if (stops.length === 1) { + // console.log(stops) + // return stops[0].color; + // } + + const pattern = + '' + + stops + .map( + (stop, _i) => + `` ) - }) - ); + .join('') + + ''; + + // const gradient = '' + + // stops + // .map(stop => ``) + // .join('') + + // '' + // console.timeEnd('exp-to-gradient') + + // console.log(exps) + return pattern; +} - const aggregated = aggregate(layers, defaultBg); - aggregated['bounds-expansion'] = [Math.max(...aggregated['bounds-expansion'] as number[], 0)] - return aggregated; -}, node => `${node.id()}-${node.classes().toString()}-s:${node.selected()}`) +const expToGradient = memoize(_expToGradient, (id) => id); -const defaultBg: Image = { - "background-image": "", - "background-position-x": "0", - "background-position-y": "0", - "background-offset-x": "0", - "background-offset-y": "0", - "background-width": "100%", - "background-height": "100%", - "background-fit": "none", - "background-clip": "none", - "background-image-opacity": 1, - "background-image-containment": "over", - "background-image-smoothing": "yes", - "background-height-relative-to": "inner", - "background-width-relative-to": "inner", - "background-repeat": "no-repeat", - "background-image-crossorigin": "anonymous", - "bounds-expansion": 0 -} +export const resetGradients = () => expToGradient.cache.clear!(); function svg(svgStr: string, width = 100, height = 100) { - const parser = new DOMParser(); // const cleanedStr = svgStr.replaceAll(/ {2,}|\n/g, " "); // TODO examine performance impact - let svgText = - `${svgStr}`; - return parser.parseFromString(svgText, 'text/xml').documentElement; + const s = `${svgStr}`; + // console.log(s) + return s; } function svgStr(svgText: string, viewPortWidth: number, viewPortHeight: number) { - return 'data:image/svg+xml;utf8,' + encodeURIComponent(svg(svgText, viewPortWidth, viewPortHeight).outerHTML); + // return svg(svgText, viewPortWidth, viewPortHeight); + return ( + 'data:image/svg+xml;utf8,' + encodeURIComponent(svg(svgText, viewPortWidth, viewPortHeight)) + ); } - -const dim = (properties: Properties, { - width, - height, - drug, - disease, - crossed, - interactor, - lossOfFunction -}: DrawerParameters) => `${width}x${height}-${drug}${disease}${crossed}${interactor}${lossOfFunction}`; +const dim = (_properties: Properties, { id }: DrawerParameters) => id; const classToDrawers = new Map>([ - ["Protein", memoize(protein, dim)], - ["GenomeEncodedEntity", memoize(genomeEncodedEntity, dim)], - ["RNA", memoize(rna, dim)], - ["Gene", memoize(gene, dim)], - ["Molecule", memoize(molecule, dim)], - ["Complex", memoize(complex, dim)], - ["EntitySet", memoize(entitySet, dim)], - ["Cell", memoize(cell, dim)], - ["Interacting", memoize(interactingPathway, dim)], - ["SUB", memoize(subPathway, dim)], - ["DiseaseInteractor", memoize(diseaseInteractor, dim)] + ['Protein', memoize(protein, dim)], + ['GenomeEncodedEntity', memoize(genomeEncodedEntity, dim)], + ['RNA', memoize(rna, dim)], + ['Gene', memoize(gene, dim)], + ['Molecule', memoize(molecule, dim)], + ['Complex', memoize(complex, dim)], + ['EntitySet', memoize(entitySet, dim)], + ['Cell', memoize(cell, dim)], + ['Interacting', memoize(interactingPathway, dim)], + ['SUB', memoize(subPathway, dim)], + ['Interactor', memoize(diseaseInteractor, dim)], ]); export function clearDrawersCache() { - for (let value of classToDrawers.values()) { - value.cache.clear!() + for (const value of classToDrawers.values()) { + value.cache.clear!(); } OMMITED_ICON.cache.clear!(); } -function aggregate(toAggregate: T[], defaultValue: T): Aggregated { +function aggregate( + toAggregate: T[], + defaultValue: T +): Aggregated { const aggregate: Aggregated = {} as Aggregated; - //@ts-ignore + //@ts-expect-error const keys = new Set(Object.keys(defaultValue)); - keys.forEach(key => aggregate[key] = toAggregate.map(t => t[key] || defaultValue[key])); + keys.forEach((key) => (aggregate[key] = toAggregate.map((t) => t[key] ?? defaultValue[key]))); return aggregate; } -const RX = (properties: Properties, {height}: DrawerParameters, clazz: Node): Image => { +const RX = (properties: Properties, { height }: DrawerParameters, clazz: Node): Image => { const t = extract(properties.global.thickness); - const color = clazz !== 'Molecule' ? - extract(properties.global.onPrimary) : - extract(properties.molecule.drug); + const color = + clazz !== 'Molecule' ? extract(properties.global.onPrimary) : extract(properties.molecule.drug); const x = (clazz !== 'EntitySet' ? 0 : extract(properties.entitySet.radius)) + 3 * t; return { - "background-image": ` - + 'background-image': ` + `, - "background-position-x": x, - "background-position-y": (height / 2 - 11) + 'px', - "background-width": 22, - "background-height": 24, + 'background-position-x': x, + 'background-position-y': height / 2 - 11, + 'background-width': 22, + 'background-height': 24, }; +}; -} - -const Pathway = (properties: Properties, {height, disease}: DrawerParameters): Image => { +const Pathway = (properties: Properties, { height, disease }: DrawerParameters): Image => { const t = extract(properties.global.thickness); - const color = !disease ? - extract(properties.global.onPrimary) : - extract(properties.global.negativeContrast); + const color = !disease + ? extract(properties.global.onPrimary) + : extract(properties.global.negativeContrast); - let x = 5 * t; + const x = 5 * t; return { - "background-image": ` + 'background-image': ` `, - "background-position-x": x, - "background-position-y": (height / 2 - 18) + 'px', - "background-width": 36, - "background-height": 36, + 'background-position-x': x, + 'background-position-y': height / 2 - 18, + 'background-width': 36, + 'background-height': 36, }; - -} - -export const CROSS = memoize((properties: Properties, {width, height}: DrawerParameters): Image => { - const s = extract(properties.global.negative); - const t = extract(properties.global.thickness); - return { - "background-image": ``, - "background-image-opacity": 1 - }; -}, (p, {width, height}) => `${width}x${height}`) - -export const OMMITED_ICON = memoize((properties: Properties) => { - const s = extract(properties.global.onSurface); - return svgStr(``, 10, 10) -}, (p) => '') - +}; + +export const CROSS = memoize( + (properties: Properties, { width, height }: DrawerParameters): Image => { + const s = extract(properties.global.negative); + const t = extract(properties.global.thickness); + return { + 'background-image': ``, + 'background-image-opacity': 1, + }; + }, + (_p, { width, height }) => `${width}x${height}` +); + +export const OMMITED_ICON = memoize( + (properties: Properties) => { + const s = extract(properties.global.onSurface); + return svgStr( + ``, + 10, + 10 + ); + }, + (_p) => '' +); diff --git a/projects/ngx-reactome-cytoscape-style/src/lib/drawer/shape/cell-shape.ts b/projects/ngx-reactome-cytoscape-style/src/lib/drawer/shape/cell-shape.ts index daaeaff..1fb5843 100644 --- a/projects/ngx-reactome-cytoscape-style/src/lib/drawer/shape/cell-shape.ts +++ b/projects/ngx-reactome-cytoscape-style/src/lib/drawer/shape/cell-shape.ts @@ -1,29 +1,30 @@ -import {extract} from "../../properties-utils"; -import {DrawerProvider} from "../types"; +import { extract } from '../../properties-utils'; +import { DrawerProvider } from '../types'; -export const cell: DrawerProvider = (properties, {width, height}) => { +export const cell: DrawerProvider = (properties, { width, height }) => { const select = extract(properties.global.selectNode); const hover = extract(properties.global.hoverNode); const flag = extract(properties.global.flag); const thick = extract(properties.global.thickness); const cellThick = extract(properties.cell.thickness); - const stroke = extract(properties.cell.stroke) + const stroke = extract(properties.cell.stroke); const fill = extract(properties.cell.fill); const ht = thick / 2; const halfHeight = height / 2; const oR = halfHeight + thick; const iR = halfHeight - thick; - const oRx = Math.min(oR, width / 2) + const oRx = Math.min(oR, width / 2); return { background: { - "background-image": ` - - -` + 'background-image': ` + + + `, + requireGradient: true, }, hover: { - "background-image": ` + 'background-image': ` `, - "background-position-y": -thick, - "bounds-expansion": thick, - "background-clip": "none", - "background-image-containment": "over", - "background-height": oR, + 'background-position-y': -thick, + 'bounds-expansion': thick, + 'background-clip': 'none', + 'background-image-containment': 'over', + 'background-height': oR, }, select: { - "background-image": ` + 'background-image': ` `, - "background-position-y": halfHeight, - "bounds-expansion": thick, - "background-clip": "none", - "background-image-containment": "over", - "background-height": oR, + 'background-position-y': halfHeight, + 'bounds-expansion': thick, + 'background-clip': 'none', + 'background-image-containment': 'over', + 'background-height': oR, }, flag: { - "background-image": ` + 'background-image': ` `, - "background-position-x": -2 * thick, - "background-position-y": -thick, - "bounds-expansion": 2 * thick, - "background-clip": "none", - "background-image-containment": "over", - "background-width": width + 4 * thick, - "background-height": height + 2 * thick, - } - } -} - - + 'background-position-x': -2 * thick, + 'background-position-y': -thick, + 'bounds-expansion': 2 * thick, + 'background-clip': 'none', + 'background-image-containment': 'over', + 'background-width': width + 4 * thick, + 'background-height': height + 2 * thick, + }, + // analysis: { + // 'background-image': `${gradient}` + // } + }; +}; diff --git a/projects/ngx-reactome-cytoscape-style/src/lib/drawer/shape/complex-shape.ts b/projects/ngx-reactome-cytoscape-style/src/lib/drawer/shape/complex-shape.ts index fe9760c..b9b911e 100644 --- a/projects/ngx-reactome-cytoscape-style/src/lib/drawer/shape/complex-shape.ts +++ b/projects/ngx-reactome-cytoscape-style/src/lib/drawer/shape/complex-shape.ts @@ -1,19 +1,25 @@ -import {extract} from "../../properties-utils"; -import {DrawerProvider} from "../types"; +import { extract } from '../../properties-utils'; +import { DrawerProvider } from '../types'; - -export const complex: DrawerProvider = (properties, {width, height, drug, disease, interactor, lossOfFunction}) => { +export const complex: DrawerProvider = ( + properties, + { width, height, drug, disease, interactor, lossOfFunction } +) => { const select = extract(properties.global.selectNode); const hover = extract(properties.global.hoverNode); const flag = extract(properties.global.flag); const t = extract(properties.global.thickness); const cut = extract(properties.complex.cut); - const fill = !drug ? - interactor ? extract(properties.interactor.fill) : extract(properties.complex.fill) : - extract(properties.complex.drug); + const fill = !drug + ? interactor + ? extract(properties.interactor.fill) + : extract(properties.complex.fill) + : extract(properties.complex.drug); - const stroke = !disease ? extract(properties.complex.stroke) : extract(properties.global.negativeContrast); + const stroke = !disease + ? extract(properties.complex.stroke) + : extract(properties.global.negativeContrast); const cut2 = cut * 2; const t2 = t * 2; @@ -38,14 +44,14 @@ export const complex: DrawerProvider = (properties, {width, height, drug, diseas `; return { background: { - "background-image": ` + 'background-image': ` ${defs} -` +`, }, hover: { - "background-image": ` - `, - "background-position-y": -t, - "background-height": stateHeight, - "background-clip": "none", - "bounds-expansion": t + 'background-position-y': -t, + 'background-height': stateHeight, + 'background-clip': 'none', + 'bounds-expansion': t, }, select: { - "background-image": ` - `, - "background-position-y": height / 2, - "background-height": stateHeight, - "background-clip": "none", - "bounds-expansion": t + 'background-position-y': height / 2, + 'background-height': stateHeight, + 'background-clip': 'none', + 'bounds-expansion': t, }, flag: { - "background-image": ` + 'background-image': ` `, - "background-position-x": -2 * t, - "background-position-y": -t, - "bounds-expansion": 2 * t, - "background-clip": "none", - "background-image-containment": "over", - "background-width": width + 4 * t, - "background-height": height + 2 * t, + 'background-position-x': -2 * t, + 'background-position-y': -t, + 'bounds-expansion': 2 * t, + 'background-clip': 'none', + 'background-image-containment': 'over', + 'background-width': width + 4 * t, + 'background-height': height + 2 * t, }, decorators: [ { - "background-image": ` + 'background-image': ` ${defs} - - ` - } - ] - } -} - + + `, + requireGradient: true, + }, + ], + }; +}; diff --git a/projects/ngx-reactome-cytoscape-style/src/lib/drawer/shape/disease-interactor-shape.ts b/projects/ngx-reactome-cytoscape-style/src/lib/drawer/shape/disease-interactor-shape.ts index d21b676..56f7572 100644 --- a/projects/ngx-reactome-cytoscape-style/src/lib/drawer/shape/disease-interactor-shape.ts +++ b/projects/ngx-reactome-cytoscape-style/src/lib/drawer/shape/disease-interactor-shape.ts @@ -1,14 +1,13 @@ -import {extract} from "../../properties-utils"; -import {DrawerProvider} from "../types"; - -export const diseaseInteractor: DrawerProvider = (properties, {width, height, drug, disease, interactor}) => { +import { extract } from '../../properties-utils'; +import { DrawerProvider } from '../types'; +export const diseaseInteractor: DrawerProvider = (properties, { width, height }) => { const hover = extract(properties.global.hoverNode); const select = extract(properties.global.selectNode); const fill = extract(properties.global.negative); const t = extract(properties.global.thickness); const decorationWidth = extract(properties.interactor.decorationWidth); - const t4 = t * 4 + const t4 = t * 4; const t2 = t * 2; const h = height / 2 + t2; const midH = height / 2; @@ -16,7 +15,7 @@ export const diseaseInteractor: DrawerProvider = (properties, {width, height, dr return { decorators: [ { - "background-image": ` + 'background-image': ` `, - } + }, ], hover: { - "background-image": ` + 'background-image': ` `, - "background-position-y": -t2, - "background-height": h, - "background-clip": "none", - "bounds-expansion": t2, - "background-image-containment": "over", + 'background-position-y': -t2, + 'background-height': h, + 'background-clip': 'none', + 'bounds-expansion': t2, + 'background-image-containment': 'over', }, select: { - "background-image": ` + 'background-image': ` `, - "background-position-y": midH, - "background-height": h, - "background-clip": "none", - "bounds-expansion": t2, - "background-image-containment": "over", - } - - } -} - - + 'background-position-y': midH, + 'background-height': h, + 'background-clip': 'none', + 'bounds-expansion': t2, + 'background-image-containment': 'over', + }, + }; +}; diff --git a/projects/ngx-reactome-cytoscape-style/src/lib/drawer/shape/entity-sets-shape.spec.ts b/projects/ngx-reactome-cytoscape-style/src/lib/drawer/shape/entity-sets-shape.spec.ts new file mode 100644 index 0000000..4975675 --- /dev/null +++ b/projects/ngx-reactome-cytoscape-style/src/lib/drawer/shape/entity-sets-shape.spec.ts @@ -0,0 +1,69 @@ +import { describe, expect, it } from 'vitest'; +import { entitySet } from './entity-sets-shape'; + +// The drawer reads each property through extract(), which takes plain values +// as well as providers, so plain values are enough here. +const properties = { + global: { + selectNode: '#0af', + hoverNode: '#fa0', + flag: '#f0f', + thickness: 2, + negativeContrast: '#000', + }, + entitySet: { radius: 4, fill: '#ccc', stroke: '#333', drug: '#c0c' }, + interactor: { fill: '#eee' }, +} as never; + +const decorator = (lossOfFunction: boolean): string => { + const drawn = entitySet(properties, { width: 120, height: 40, lossOfFunction } as never); + const svg = String(drawn.decorators?.[0]?.['background-image'] ?? ''); + // The braces are drawn from the #curly path; an empty string would make the + // "no dashes" case pass for the wrong reason. + expect(svg).toContain('href="#curly"'); + return svg; +}; + +const dashedPath = (svg: string) => /]*stroke-dasharray[^>]*\/>/.exec(svg)?.[0] ?? ''; + +describe('an entity set', () => { + it('is drawn with no dashes ordinarily', () => { + expect(decorator(false)).not.toContain('stroke-dasharray'); + }); + + // It computed the dashes and never drew them, so all 268 loss-of-function + // sets in release 97 looked like any other set (#334). + it('dashes the stretch between its braces when it is a loss of function', () => { + const svg = decorator(true); + const dashLength = Number(/stroke-dasharray="([\d.]+)"/.exec(svg)?.[1]); + expect(dashLength, 'a dashed path').toBeGreaterThan(0); + + // Between the braces: from bracesOffset to width - bracesOffset, where the + // drawer widens the set by 2r first. r = 4, t = 2: bracesOffset = 2r + 2t. + const width = 120 + 2 * 4; + const bracesOffset = 2 * 4 + 2 * 2; + const path = dashedPath(svg); + // Top and bottom edges of #curly: y = t and y = height - t. + expect(path).toContain(`M ${bracesOffset} 2 H ${width - bracesOffset}`); + expect(path).toContain(`M ${bracesOffset} ${40 - 2} H ${width - bracesOffset}`); + // Clipped like the braces' stroke, and not under the mask that hides this + // stretch -- masked, the dashes would not be drawn at all. + expect(path).toContain('clip-path="url(#inside)"'); + expect(path).not.toContain('mask='); + + // A whole number of dashes as long as the gaps, starting and ending on a + // dash: the stretch is an odd number of dash lengths. + const stretch = width - 2 * bracesOffset; + const segments = stretch / dashLength; + expect(Math.abs(segments - Math.round(segments))).toBeLessThan(1e-9); + expect(Math.round(segments) % 2).toBe(1); + }); + + it('still dashes a narrow set, rather than drawing a solid line', () => { + const drawn = entitySet(properties, { width: 30, height: 40, lossOfFunction: true } as never); + const svg = String(drawn.decorators?.[0]?.['background-image'] ?? ''); + const dashLength = Number(/stroke-dasharray="([\d.]+)"/.exec(svg)?.[1]); + const stretch = 30 + 2 * 4 - 2 * (2 * 4 + 2 * 2); + expect(Math.round(stretch / dashLength)).toBeGreaterThanOrEqual(3); + }); +}); diff --git a/projects/ngx-reactome-cytoscape-style/src/lib/drawer/shape/entity-sets-shape.ts b/projects/ngx-reactome-cytoscape-style/src/lib/drawer/shape/entity-sets-shape.ts index df19297..63230e9 100644 --- a/projects/ngx-reactome-cytoscape-style/src/lib/drawer/shape/entity-sets-shape.ts +++ b/projects/ngx-reactome-cytoscape-style/src/lib/drawer/shape/entity-sets-shape.ts @@ -1,8 +1,10 @@ -import {extract} from "../../properties-utils"; -import {DrawerProvider} from "../types"; +import { extract } from '../../properties-utils'; +import { DrawerProvider } from '../types'; - -export const entitySet: DrawerProvider = (properties, {width, height, drug, disease, lossOfFunction, interactor}) => { +export const entitySet: DrawerProvider = ( + properties, + { width, height, drug, disease, interactor, lossOfFunction } +) => { const select = extract(properties.global.selectNode); const hover = extract(properties.global.hoverNode); const flag = extract(properties.global.flag); @@ -11,21 +13,19 @@ export const entitySet: DrawerProvider = (properties, {width, height, drug, dise let r = extract(properties.entitySet.radius); if (2 * r > height / 2 - t) { - - r = height / 4 - (t / 2); + r = height / 4 - t / 2; } width += 2 * r; - const fill = - !interactor ? - !drug ? - extract(properties.entitySet.fill) : - extract(properties.entitySet.drug) - : extract(properties.interactor.fill); - const stroke = !disease ? - extract(properties.entitySet.stroke) : - extract(properties.global.negativeContrast); + const fill = !interactor + ? !drug + ? extract(properties.entitySet.fill) + : extract(properties.entitySet.drug) + : extract(properties.interactor.fill); + const stroke = !disease + ? extract(properties.entitySet.stroke) + : extract(properties.global.negativeContrast); const r2 = r * 2; const t2 = t * 2; @@ -33,15 +33,19 @@ export const entitySet: DrawerProvider = (properties, {width, height, drug, dise const stateHeight = height / 2 + t; const bracesOffset = r2 + t2; - let realDashLength = width; - - if (lossOfFunction) { - const hidingLength = width - 2 * bracesOffset; - const idealDashLength = t2; - const dashNumber = Math.round((hidingLength / idealDashLength + 1) / 2); - realDashLength = hidingLength / (2 * dashNumber - 1); - } - + // A set is drawn as its braces: the stretch of outline between them is + // masked out. A loss-of-function set dashes that stretch, top and bottom, + // as complexes, genes and proteins dash their outlines. The dashes are + // fitted to it -- a whole number of them, as long as the gaps, starting + // and ending on a dash -- so neither end stops on a stub. + const hidingLength = width - 2 * bracesOffset; + // At least two, so a narrow set still reads as dashed rather than closed. + const dashNumber = Math.max(2, Math.round((hidingLength / t2 + 1) / 2)); + const dashLength = hidingLength / (2 * dashNumber - 1); + const lossOfFunctionDashes = + lossOfFunction && hidingLength > 0 + ? `` + : ''; const defs = ` `; - - const t1_5 = t * 1.5; return { background: { - "background-image": ` + 'background-image': ` ${defs} `, - "background-position-x": -r, - "background-width": width + 2 * r, - "background-clip": "none", - "bounds-expansion": 2 * t + 'background-position-x': -r, + 'background-width': width + 2 * r, + 'background-clip': 'none', + 'bounds-expansion': 2 * t, }, hover: { - "background-image": ` + 'background-image': ` `, - "background-position-x": -r, - "background-width": width + 2 * r, + 'background-position-x': -r, + 'background-width': width + 2 * r, - "background-clip": "none", - "bounds-expansion": 2 * t, + 'background-clip': 'none', + 'bounds-expansion': 2 * t, - "background-position-y": -t, - "background-height": stateHeight + 'background-position-y': -t, + 'background-height': stateHeight, }, select: { - "background-image": ` + 'background-image': ` `, - "background-position-x": -r, - "background-width": width + 2 * r, + 'background-position-x': -r, + 'background-width': width + 2 * r, - "background-clip": "none", - "bounds-expansion": 2 * t, + 'background-clip': 'none', + 'bounds-expansion': 2 * t, - "background-position-y": height / 2, - "background-height": stateHeight + 'background-position-y': height / 2, + 'background-height': stateHeight, }, flag: { - "background-image": ` + 'background-image': ` `, - "background-position-x": -2 * t, - "background-position-y": -t, - "bounds-expansion": 2 * t, - "background-clip": "none", - "background-image-containment": "over", - "background-width": width, - "background-height": height + 2 * t, + 'background-position-x': -2 * t, + 'background-position-y': -t, + 'bounds-expansion': 2 * t, + 'background-clip': 'none', + 'background-image-containment': 'over', + 'background-width': width, + 'background-height': height + 2 * t, }, decorators: [ { - "background-image": ` + 'background-image': ` ${defs} - - - - `, - "background-position-x": -r, - "bounds-expansion": r, - "background-clip": "none", - "background-width": width + 2 * r, + + + + + + ${lossOfFunctionDashes} +`, + 'background-position-x': -r, + 'bounds-expansion': r, + 'background-clip': 'none', + 'background-width': width + 2 * r, }, - - ] - } -} - -// -// -// + ], + analysis: { + 'background-image': ``, + 'background-position-x': -r, + 'background-width': width + 2 * r, + 'background-clip': 'none', + 'bounds-expansion': 2 * t, + requireGradient: true, + }, + // analysis: { + // 'background-image': `${defs}${gradient} + // + // + // + // + // + // `, + // "background-position-x": -r, + // "bounds-expansion": r, + // "background-clip": "none", + // "background-width": width + 2 * r, + // } + }; +}; diff --git a/projects/ngx-reactome-cytoscape-style/src/lib/drawer/shape/gee-shape.ts b/projects/ngx-reactome-cytoscape-style/src/lib/drawer/shape/gee-shape.ts index 8d81bd4..51e874c 100644 --- a/projects/ngx-reactome-cytoscape-style/src/lib/drawer/shape/gee-shape.ts +++ b/projects/ngx-reactome-cytoscape-style/src/lib/drawer/shape/gee-shape.ts @@ -1,26 +1,30 @@ -import {extract} from "../../properties-utils"; -import {DrawerProvider} from "../types"; +import { extract } from '../../properties-utils'; +import { DrawerProvider } from '../types'; -export const genomeEncodedEntity: DrawerProvider = (properties, { - width, - height, - drug, - disease, - interactor, - lossOfFunction -}) => { - const fill = !drug ? - extract(properties.complex.fill) : - extract(properties.genomeEncodedEntity.drug); +export const genomeEncodedEntity: DrawerProvider = ( + properties, + { width, height, drug, disease, interactor, lossOfFunction } +) => { + const fill = !drug + ? extract(properties.complex.fill) + : extract(properties.genomeEncodedEntity.drug); const select = extract(properties.global.selectNode); const hover = extract(properties.global.hoverNode); const flag = extract(properties.global.flag); const t = extract(properties.global.thickness); const t_2 = t / 2; const bottomR = extract(properties.genomeEncodedEntity.bottomRadius); - const stroke = !interactor ? !disease ? null : extract(properties.global.negativeContrast) : extract(properties.interactor.fill); + const stroke = !interactor + ? !disease + ? null + : extract(properties.global.negativeContrast) + : extract(properties.interactor.fill); - const topR = Math.min(extract(properties.genomeEncodedEntity.topRadius), height - bottomR, width / 2 - t); + const topR = Math.min( + extract(properties.genomeEncodedEntity.topRadius), + height - bottomR, + width / 2 - t + ); const v = height - bottomR - topR; const topOR = topR + t; @@ -29,11 +33,10 @@ export const genomeEncodedEntity: DrawerProvider = (properties, { const bottomOR = bottomR + t; const bottomIR = bottomR - t; - return { background: { - "background-image": ` - `, - "bounds-expansion": t / 2, - "background-clip": "none", - "background-image-containment": "over", - "background-position-x": -t_2, - "background-position-y": -t_2, - "background-width": width + t, - "background-height": height + t, + 'bounds-expansion': t / 2, + 'background-clip': 'none', + 'background-image-containment': 'over', + 'background-position-x': -t_2, + 'background-position-y': -t_2, + 'background-width': width + t, + 'background-height': height + t, + requireGradient: true, }, hover: { - "background-image": ` + 'background-image': ` `, - "background-position-y": -t, - "bounds-expansion": t, - "background-clip": "none", - "background-image-containment": "over", - "background-height": topOR, + 'background-position-y': -t, + 'bounds-expansion': t, + 'background-clip': 'none', + 'background-image-containment': 'over', + 'background-height': topOR, }, select: { - "background-image": ` + 'background-image': ` `, - "background-position-y": height - bottomR, - "bounds-expansion": t, - "background-clip": "none", - "background-image-containment": "over", - "background-height": bottomOR, + 'background-position-y': height - bottomR, + 'bounds-expansion': t, + 'background-clip': 'none', + 'background-image-containment': 'over', + 'background-height': bottomOR, }, flag: { - "background-image": ` + 'background-image': ` `, - "background-position-x": -2 * t, - "background-position-y": -t, - "bounds-expansion": 2 * t, - "background-clip": "none", - "background-image-containment": "over", - "background-width": width + 4 * t, - "background-height": height + 2 * t, - } - } -} - - + 'background-position-x': -2 * t, + 'background-position-y': -t, + 'bounds-expansion': 2 * t, + 'background-clip': 'none', + 'background-image-containment': 'over', + 'background-width': width + 4 * t, + 'background-height': height + 2 * t, + }, + }; +}; diff --git a/projects/ngx-reactome-cytoscape-style/src/lib/drawer/shape/gene-shape.ts b/projects/ngx-reactome-cytoscape-style/src/lib/drawer/shape/gene-shape.ts index 2bdfafe..c899c37 100644 --- a/projects/ngx-reactome-cytoscape-style/src/lib/drawer/shape/gene-shape.ts +++ b/projects/ngx-reactome-cytoscape-style/src/lib/drawer/shape/gene-shape.ts @@ -1,19 +1,25 @@ -import {extract} from "../../properties-utils"; -import {DrawerProvider} from "../types"; +import { extract } from '../../properties-utils'; +import { DrawerProvider } from '../types'; - -export const gene: DrawerProvider = (properties, {width, height, drug, interactor, disease, lossOfFunction}) => { +export const gene: DrawerProvider = ( + properties, + { width, height, interactor, disease, lossOfFunction } +) => { const t = extract(properties.global.thickness); const dHeight = extract(properties.gene.decorationHeight); const dWidth = extract(properties.gene.decorationExtraWidth); const headSize = extract(properties.gene.arrowHeadSize); const radius = extract(properties.gene.arrowRadius); const fill = extract(properties.gene.fill); - const stroke = interactor ? extract(properties.interactor.fill) : disease ? extract(properties.global.negativeContrast) : null; + const stroke = interactor + ? extract(properties.interactor.fill) + : disease + ? extract(properties.global.negativeContrast) + : null; const select = extract(properties.global.selectNode); const hover = extract(properties.global.hoverNode); const flag = extract(properties.global.flag); - const hh = Math.sqrt(Math.pow(headSize, 2) * 3 / 4) + const hh = Math.sqrt((Math.pow(headSize, 2) * 3) / 4); const halfWidth = width / 2; @@ -24,8 +30,8 @@ export const gene: DrawerProvider = (properties, {width, height, drug, interacto const t2 = t * 2; return { background: { - "background-image": ` - `, - "bounds-expansion": t_2, - "background-clip": "none", - "background-image-containment": "over", - "background-position-x": -t / 2, - "background-position-y": -t / 2, - "background-width": width + t, - "background-height": height + t, - + 'bounds-expansion': t_2, + 'background-clip': 'none', + 'background-image-containment': 'over', + 'background-position-x': -t / 2, + 'background-position-y': -t / 2, + 'background-width': width + t, + 'background-height': height + t, + requireGradient: true, }, decorators: [ { - "background-image": ` + 'background-image': ` `, - "background-position-y": -t / 2, - "bounds-expansion": dHeight, - "background-height": dHeight + 1.5 * t, - "background-width": width + dWidth, - "background-clip": "none", - "background-image-containment": "over", - } + 'background-position-y': -t / 2, + 'bounds-expansion': dHeight, + 'background-height': dHeight + 1.5 * t, + 'background-width': width + dWidth, + 'background-clip': 'none', + 'background-image-containment': 'over', + }, ], hover: { - "background-image": ``, - "background-position-y": dHeight - t, - "bounds-expansion": t, - "background-clip": "none", - "background-image-containment": "over", - "background-height": 2 * t, + 'background-image': ``, + 'background-position-y': dHeight - t, + 'bounds-expansion': t, + 'background-clip': 'none', + 'background-image-containment': 'over', + 'background-height': 2 * t, }, select: { - "background-image": ` + 'background-image': ` `, - "background-position-y": height - r, - "bounds-expansion": t, - "background-clip": "none", - "background-image-containment": "over", - "background-height": oR, + 'background-position-y': height - r, + 'bounds-expansion': t, + 'background-clip': 'none', + 'background-image-containment': 'over', + 'background-height': oR, }, flag: { - "background-image": ` + 'background-image': ` `, - "background-position-x": -2 * t, - "background-position-y": dHeight - t, - "bounds-expansion": 2 * t, - "background-clip": "none", - "background-image-containment": "over", - "background-width": width + 4 * t, - "background-height": height + 2 * t - dHeight, - } - } -} - - + 'background-position-x': -2 * t, + 'background-position-y': dHeight - t, + 'bounds-expansion': 2 * t, + 'background-clip': 'none', + 'background-image-containment': 'over', + 'background-width': width + 4 * t, + 'background-height': height + 2 * t - dHeight, + }, + // analysis: { + // "background-image": `${gradient} + // `, + // "bounds-expansion": t_2, + // "background-clip": "none", + // "background-image-containment": "over", + // "background-position-x": -t / 2, + // "background-position-y": -t / 2, + // "background-width": width + t, + // "background-height": height + t, + // } + }; +}; diff --git a/projects/ngx-reactome-cytoscape-style/src/lib/drawer/shape/interacting-pathway-shape.ts b/projects/ngx-reactome-cytoscape-style/src/lib/drawer/shape/interacting-pathway-shape.ts index 14f5b6a..f22a03a 100644 --- a/projects/ngx-reactome-cytoscape-style/src/lib/drawer/shape/interacting-pathway-shape.ts +++ b/projects/ngx-reactome-cytoscape-style/src/lib/drawer/shape/interacting-pathway-shape.ts @@ -1,46 +1,41 @@ -import {DrawerProvider} from "../types"; -import {extract} from "../../properties-utils"; +import { DrawerProvider } from '../types'; +import { extract } from '../../properties-utils'; - -export const interactingPathway: DrawerProvider = (properties, {width, height, drug}) => { +export const interactingPathway: DrawerProvider = (properties, { width, height }) => { const select = extract(properties.global.selectNode); const hover = extract(properties.global.hoverNode); const flag = extract(properties.global.flag); const thick = extract(properties.global.thickness); - - const stroke = !drug ? - extract(properties.pathway.stroke) : - extract(properties.global.negativeContrast); - const fill = extract(properties.pathway.fill); - - - let realWidth = width; + const realWidth = width; const t = 3 * thick; return { hover: { - "background-image": ``, - "background-width": width, - "background-height": t, + 'background-image': ``, + 'background-width': width, + 'background-height': t, }, select: { - "background-image": ``, - "background-position-y": height - t, - "background-width": width, - "background-height": t, + 'background-image': ``, + 'background-position-y': height - t, + 'background-width': width, + 'background-height': t, }, flag: { - "background-image": ` + 'background-image': ` - + `, - "background-width": realWidth + 4 * t, - "background-position-x": - t, - "background-height": height, - "bounds-expansion": 2 * t, - "background-clip": "none", - "background-image-containment": "over", + 'background-width': realWidth + 4 * t, + 'background-position-x': -t, + 'background-height': height, + 'bounds-expansion': 2 * t, + 'background-clip': 'none', + 'background-image-containment': 'over', }, - } -} - + analysis: { + 'background-image': ``, + requireGradient: true, + }, + }; +}; diff --git a/projects/ngx-reactome-cytoscape-style/src/lib/drawer/shape/molecule-shape.ts b/projects/ngx-reactome-cytoscape-style/src/lib/drawer/shape/molecule-shape.ts index 2f90fd6..5d81a4a 100644 --- a/projects/ngx-reactome-cytoscape-style/src/lib/drawer/shape/molecule-shape.ts +++ b/projects/ngx-reactome-cytoscape-style/src/lib/drawer/shape/molecule-shape.ts @@ -1,78 +1,84 @@ -import {extract} from "../../properties-utils"; -import {DrawerProvider} from "../types"; +import { extract } from '../../properties-utils'; +import { DrawerProvider } from '../types'; -export const molecule: DrawerProvider = (properties, {width, height, drug, interactor}) => { +export const molecule: DrawerProvider = (properties, { width, height, drug, interactor }) => { const select = extract(properties.global.selectNode); const hover = extract(properties.global.hoverNode); const flag = extract(properties.global.flag); - const thick = extract(properties.global.thickness); - const stroke = !interactor ? ( - !drug ? - extract(properties.molecule.stroke) : - extract(properties.molecule.drug) - ) : extract(properties.interactor.fill); + const t = extract(properties.global.thickness); + const stroke = !interactor + ? !drug + ? extract(properties.molecule.stroke) + : extract(properties.molecule.drug) + : extract(properties.interactor.fill); const fill = extract(properties.molecule.fill); - - const ht = thick / 2; const halfHeight = height / 2; - const oR = halfHeight + thick; - const iR = halfHeight - thick; - const oRx = Math.min(oR, width / 2) + const oR = halfHeight + t; + const iR = halfHeight - t; + const oRx = Math.min(oR, width / 2); return { + background: { + 'background-image': ``, + 'background-width': width + t, + 'background-height': height + t, + optional: true, + }, hover: { - "background-image": ` + 'background-image': ` `, - "background-position-y": -thick, - "background-position-x": -thick / 2, - "bounds-expansion": thick, - "background-clip": "none", - "background-image-containment": "over", - "background-height": oR, - "background-width": width + thick, + 'background-position-y': -t, + 'background-position-x': -t / 2, + 'bounds-expansion': t, + 'background-clip': 'none', + 'background-image-containment': 'over', + 'background-height': oR, + 'background-width': width + t, }, select: { - "background-image": ` + 'background-image': ` `, - "background-position-y": halfHeight, - "background-position-x": -thick / 2, - "bounds-expansion": thick, - "background-clip": "none", - "background-image-containment": "over", - "background-height": oR, - "background-width": width + thick, + 'background-position-y': halfHeight, + 'background-position-x': -t / 2, + 'bounds-expansion': t, + 'background-clip': 'none', + 'background-image-containment': 'over', + 'background-height': oR, + 'background-width': width + t, }, flag: { - "background-image": ` - - + 'background-image': ` + + `, - "background-position-x": -2 * thick, - "background-position-y": -thick, - "bounds-expansion": 2 * thick, - "background-clip": "none", - "background-image-containment": "over", - "background-width": width + 4 * thick, - "background-height": height + 2 * thick, - } - } -} - - + 'background-position-x': -2 * t, + 'background-position-y': -t, + 'bounds-expansion': 2 * t, + 'background-clip': 'none', + 'background-image-containment': 'over', + 'background-width': width + 4 * t, + 'background-height': height + 2 * t, + }, + analysis: { + 'background-image': ``, + requireGradient: true, + }, + }; +}; diff --git a/projects/ngx-reactome-cytoscape-style/src/lib/drawer/shape/protein-shape.ts b/projects/ngx-reactome-cytoscape-style/src/lib/drawer/shape/protein-shape.ts index 2ef3905..621ed30 100644 --- a/projects/ngx-reactome-cytoscape-style/src/lib/drawer/shape/protein-shape.ts +++ b/projects/ngx-reactome-cytoscape-style/src/lib/drawer/shape/protein-shape.ts @@ -1,7 +1,7 @@ -import {extract} from "../../properties-utils"; -import {DrawerProvider} from "../types"; +import { extract } from '../../properties-utils'; +import { DrawerProvider } from '../types'; -export const protein: DrawerProvider = (properties, {width, height, drug}) => { +export const protein: DrawerProvider = (properties, { width, height }) => { const fill = extract(properties.protein.fill); const select = extract(properties.global.selectNode); const hover = extract(properties.global.hoverNode); @@ -13,8 +13,12 @@ export const protein: DrawerProvider = (properties, {width, height, drug}) => { const iR = radius - thick; return { + background: { + optional: true, + 'background-image': ``, + }, hover: { - "background-image": ` + 'background-image': ` `, - "background-position-y": -thick, - "bounds-expansion": thick, - "background-clip": "none", - "background-image-containment": "over", - "background-height": oR, + 'background-position-y': -thick, + 'bounds-expansion': thick, + 'background-clip': 'none', + 'background-image-containment': 'over', + 'background-height': oR, }, select: { - "background-image": ` + 'background-image': ` `, - "background-position-y": height - radius, - "bounds-expansion": thick, - "background-clip": "none", - "background-image-containment": "over", - "background-height": oR, + 'background-position-y': height - radius, + 'bounds-expansion': thick, + 'background-clip': 'none', + 'background-image-containment': 'over', + 'background-height': oR, }, flag: { - "background-image": ` - - + 'background-image': ` + + `, - "background-position-x": -2 * thick, - "background-position-y": -thick, - "bounds-expansion": 2 * thick, - "background-clip": "none", - "background-image-containment": "over", - "background-width": width + 4 * thick, - "background-height": height + 2 * thick, - } - } -} - - + 'background-position-x': -2 * thick, + 'background-position-y': -thick, + 'bounds-expansion': 2 * thick, + 'background-clip': 'none', + 'background-image-containment': 'over', + 'background-width': width + 4 * thick, + 'background-height': height + 2 * thick, + }, + analysis: { + 'background-image': ``, + requireGradient: true, + }, + }; +}; diff --git a/projects/ngx-reactome-cytoscape-style/src/lib/drawer/shape/rna-shape.ts b/projects/ngx-reactome-cytoscape-style/src/lib/drawer/shape/rna-shape.ts index 0c1851f..251011d 100644 --- a/projects/ngx-reactome-cytoscape-style/src/lib/drawer/shape/rna-shape.ts +++ b/projects/ngx-reactome-cytoscape-style/src/lib/drawer/shape/rna-shape.ts @@ -1,30 +1,39 @@ -import {extract} from "../../properties-utils"; -import {DrawerProvider} from "../types"; +import { extract } from '../../properties-utils'; +import { DrawerProvider } from '../types'; - -export const rna: DrawerProvider = (properties, {width, height}) => { +export const rna: DrawerProvider = (properties, { width, height }) => { const thick = extract(properties.global.thickness); const select = extract(properties.global.selectNode); const hover = extract(properties.global.hoverNode); const flag = extract(properties.global.flag); const fill = extract(properties.rna.fill); - const halfWidth = width / 2; - const r = extract(properties.rna.radius); const oR = r + thick; const iR = r - thick; return { + background: { + 'background-image': ` + `, + optional: true, + }, hover: { - "background-image": ``, - "background-position-y": -thick, - "bounds-expansion": thick, - "background-clip": "none", - "background-image-containment": "over", - "background-height": 2 * thick, + 'background-image': ``, + 'background-position-y': -thick, + 'bounds-expansion': thick, + 'background-clip': 'none', + 'background-image-containment': 'over', + 'background-height': 2 * thick, }, select: { - "background-image": ` + 'background-image': ` `, - "background-position-y": height - r, - "bounds-expansion": thick, - "background-clip": "none", - "background-image-containment": "over", - "background-height": oR, + 'background-position-y': height - r, + 'bounds-expansion': thick, + 'background-clip': 'none', + 'background-image-containment': 'over', + 'background-height': oR, }, flag: { - "background-image": ` + 'background-image': ` `, - "background-position-x": -2 * thick, - "background-position-y": -thick, - "bounds-expansion": 2 * thick, - "background-clip": "none", - "background-image-containment": "over", - "background-width": width + 4 * thick, - "background-height": height + 2 * thick, - } - } -} - - + 'background-position-x': -2 * thick, + 'background-position-y': -thick, + 'bounds-expansion': 2 * thick, + 'background-clip': 'none', + 'background-image-containment': 'over', + 'background-width': width + 4 * thick, + 'background-height': height + 2 * thick, + }, + analysis: { + 'background-image': ` + `, + requireGradient: true, + }, + }; +}; diff --git a/projects/ngx-reactome-cytoscape-style/src/lib/drawer/shape/sub-pathway-shape.ts b/projects/ngx-reactome-cytoscape-style/src/lib/drawer/shape/sub-pathway-shape.ts index 6dcc72e..9167756 100644 --- a/projects/ngx-reactome-cytoscape-style/src/lib/drawer/shape/sub-pathway-shape.ts +++ b/projects/ngx-reactome-cytoscape-style/src/lib/drawer/shape/sub-pathway-shape.ts @@ -1,27 +1,24 @@ -import {extract} from "../../properties-utils"; -import {DrawerProvider} from "../types"; +import { extract } from '../../properties-utils'; +import { DrawerProvider } from '../types'; -export const subPathway: DrawerProvider = (properties, {width, height, disease}) => { +export const subPathway: DrawerProvider = (properties, { width, height, disease }) => { const select = extract(properties.global.selectNode); const hover = extract(properties.global.hoverNode); const flag = extract(properties.global.flag); const thick = extract(properties.global.thickness) * 3; - const stroke = !disease ? - extract(properties.pathway.stroke) : - extract(properties.global.negativeContrast); + const stroke = !disease + ? extract(properties.pathway.stroke) + : extract(properties.global.negativeContrast); const fill = extract(properties.pathway.fill); - const ht = thick / 2; const halfHeight = height / 2; + const ht = thick / 2; const oR = halfHeight; const iR = halfHeight - thick; - const oRx = Math.min(oR, width / 2) + const oRx = Math.min(oR, width / 2); return { - background: { - "background-image": `` - }, hover: { - "background-image": ` + 'background-image': ` `, - "background-clip": "none", - "background-image-containment": "over", - "background-height": oR, + 'background-clip': 'none', + 'background-image-containment': 'over', + 'background-height': oR, }, select: { - "background-image": ` + 'background-image': ` `, - "background-position-y": halfHeight, - "background-clip": "none", - "background-image-containment": "over", - "background-height": oR, + 'background-position-y': halfHeight, + 'background-clip': 'none', + 'background-image-containment': 'over', + 'background-height': oR, }, flag: { - "background-image": ` - -`, - "background-position-x": -thick, - "bounds-expansion": 2 * thick, - "background-clip": "none", - "background-image-containment": "over", - "background-width": width + 2* thick, - } - } -} - - + 'background-image': ` + + + `, + 'background-position-x': -thick, + 'bounds-expansion': 2 * thick, + 'background-clip': 'none', + 'background-image-containment': 'over', + 'background-width': width + 2 * thick, + 'background-height': height, + }, + analysis: { + 'background-image': ``, + requireGradient: true, + }, + }; +}; diff --git a/projects/ngx-reactome-cytoscape-style/src/lib/drawer/types.ts b/projects/ngx-reactome-cytoscape-style/src/lib/drawer/types.ts index 45c9d3b..ab5c241 100644 --- a/projects/ngx-reactome-cytoscape-style/src/lib/drawer/types.ts +++ b/projects/ngx-reactome-cytoscape-style/src/lib/drawer/types.ts @@ -1,11 +1,13 @@ import BackgroundImage = cytoscape.Css.BackgroundImage; import PropertyValueNode = cytoscape.Css.PropertyValueNode; -import _ from "lodash"; -import {Properties} from "../properties"; +import _ from 'lodash'; +import { Properties } from '../properties'; -export type Image = { - [k in keyof BackgroundImage]: BackgroundImage[k] extends PropertyValueNode ? X : never -} +type BaseImage = { + [k in keyof BackgroundImage]: BackgroundImage[k] extends PropertyValueNode ? X : never; +}; + +export type Image = BaseImage & { requireGradient?: boolean; optional?: boolean }; export interface Drawer { background?: Image; @@ -13,23 +15,25 @@ export interface Drawer { hover?: Image; flag?: Image; decorators?: Image[]; + analysis?: Image; } export interface DrawerParameters { - width: number, - height: number, - drug?: boolean, - disease?: boolean, - crossed?: boolean, - interactor?: boolean, - lossOfFunction?: boolean, + id: number | string; + width: number; + height: number; + drug?: boolean; + disease?: boolean; + crossed?: boolean; + interactor?: boolean; + lossOfFunction?: boolean; } export interface DrawerProvider { - (properties: Properties, params: DrawerParameters): Drawer + (properties: Properties, params: DrawerParameters): Drawer; } export type Memo = T & _.MemoizedFunction; export type Aggregated = { - [k in keyof T]-?: T[k][] -} + [k in keyof T]-?: T[k][]; +}; diff --git a/projects/ngx-reactome-cytoscape-style/src/lib/interactivity.ts b/projects/ngx-reactome-cytoscape-style/src/lib/interactivity.ts index 57b7813..12f8a8a 100644 --- a/projects/ngx-reactome-cytoscape-style/src/lib/interactivity.ts +++ b/projects/ngx-reactome-cytoscape-style/src/lib/interactivity.ts @@ -1,211 +1,302 @@ -import cytoscape from "cytoscape"; -import {extract} from "./properties-utils"; -import {Properties} from "./properties"; -import {ReactomeEvent, ReactomeEventTypes} from "./model/reactome-event.model"; -import Layers, {IHTMLLayer, layers, LayersPlugin} from 'cytoscape-layers'; -import * as _ from "lodash"; - - -cytoscape.use(Layers) -type RenderableHTMLElement = HTMLElement & { render: _.DebouncedFunc<() => void> }; +import cytoscape from 'cytoscape'; +import { extract } from './properties-utils'; +import { Properties } from './properties'; +import { ReactomeEvent, ReactomeEventTypes } from './model/reactome-event.model'; +import Layers, { IHTMLLayer, layers, LayersPlugin } from 'cytoscape-layers'; +import * as _ from 'lodash'; +import { isPromise } from 'rxjs/internal/util/isPromise'; + +cytoscape.use(Layers); +type RenderableHTMLElement = HTMLElement & { + render: _.DebouncedFunc<() => void>; +}; + +/** + * Below this zoom the interactor count badge is not drawn at all. + * + * Measured rather than chosen: the badge is 30 model units wide, so 0.6 puts it + * at 18 screen pixels. Below that its two digits are a smudge -- 6 pixels at the + * 0.203 that R-HSA-1368108 opens at. + */ +export const INTERACTOR_BADGE_MIN_ZOOM = 0.6; export class Interactivity { - isMobile = 'ontouchstart' in document || navigator.maxTouchPoints > 0; - constructor(private cy: cytoscape.Core, private properties: Properties) { - console.log('is mobile', this.isMobile) - // @ts-ignore + constructor( + private cy: cytoscape.Core, + private properties: Properties + ) { + // console.log('is mobile', this.isMobile) cy.elements().ungrabify().panify(); this.initHover(cy); this.initSelect(cy); this.initClick(cy); + this.initZoom(cy); this.initStructureVideo(cy); this.initStructureMolecule(cy); - this.initZoom(cy); } expandReaction(reactionNode: cytoscape.NodeCollection) { return reactionNode.connectedEdges().add(reactionNode); } - applyToReaction = (action: (col: cytoscape.Collection) => void, stateKey: keyof State) => (reactionNode: cytoscape.NodeCollection) => { - if (state[stateKey]) return; - state[stateKey] = true; - action(this.expandReaction(reactionNode)); - state[stateKey] = false; - }; + applyToReaction = + (action: (col: cytoscape.Collection) => void, stateKey: keyof State) => + (reactionNode: cytoscape.NodeCollection) => { + if (state[stateKey]) return; + state[stateKey] = true; + action(this.expandReaction(reactionNode)); + state[stateKey] = false; + }; initHover(cy: cytoscape.Core, mapper = (x: X) => x) { - const hoverReaction = this.applyToReaction(col => col.addClass('hover'), 'hovering') - const deHoverReaction = this.applyToReaction(col => col.removeClass('hover'), 'deHovering') - + const hoverReaction = this.applyToReaction((col) => col.addClass('hover'), 'hovering'); + const deHoverReaction = this.applyToReaction((col) => col.removeClass('hover'), 'deHovering'); const container = cy.container()!; - cy - .on('mouseover', 'node.PhysicalEntity', e => container.dispatchEvent(new ReactomeEvent(ReactomeEventTypes.hover, { - element: e.target, - type: "PhysicalEntity", - reactomeId: e.target.data('reactomeId'), - cy - }))) - .on('mouseover', 'node.Pathway', e => container.dispatchEvent(new ReactomeEvent(ReactomeEventTypes.hover, { - element: e.target, - type: "Pathway", - reactomeId: e.target.data('reactomeId'), - cy - }))) - .on('mouseover', 'node.reaction', e => container.dispatchEvent(new ReactomeEvent(ReactomeEventTypes.hover, { - element: e.target, - type: "reaction", - reactomeId: e.target.data('reactomeId'), - cy - }))) - .on('mouseover', 'edge.reaction', e => container.dispatchEvent(new ReactomeEvent(ReactomeEventTypes.hover, { - element: e.target.connectedNodes('.reaction'), - type: "reaction", - reactomeId: e.target.data('reactomeId'), - cy - }))) - - .on('mouseout', 'node.PhysicalEntity', e => container.dispatchEvent(new ReactomeEvent(ReactomeEventTypes.leave, { - element: e.target, - type: "PhysicalEntity", - reactomeId: e.target.data('reactomeId'), - cy - }))) - .on('mouseout', 'node.Pathway', e => container.dispatchEvent(new ReactomeEvent(ReactomeEventTypes.leave, { - element: e.target, - type: "Pathway", - reactomeId: e.target.data('reactomeId'), - cy - }))) - .on('mouseout', 'node.reaction', e => container.dispatchEvent(new ReactomeEvent(ReactomeEventTypes.leave, { - element: e.target, - type: "reaction", - reactomeId: e.target.data('reactomeId'), - cy - }))) - .on('mouseout', 'edge.reaction', e => container.dispatchEvent(new ReactomeEvent(ReactomeEventTypes.leave, { - element: e.target.connectedNodes('.reaction'), - type: "reaction", - reactomeId: e.target.data('reactomeId'), - cy - }))) - - .on('mouseover', 'node', e => mapper(e.target).addClass('hover')) - .on('mouseout', 'node', e => mapper(e.target).removeClass('hover')) - - .on('mouseover', 'node.reaction', e => hoverReaction(mapper(e.target))) - .on('mouseout', 'node.reaction', e => deHoverReaction(mapper(e.target))) - - .on('mouseover', 'edge', e => { + cy.on('mouseover', 'node.PhysicalEntity', (e) => + container.dispatchEvent( + new ReactomeEvent(ReactomeEventTypes.hover, { + element: e.target, + type: 'PhysicalEntity', + reactomeId: e.target.data('reactomeId'), + cy, + }) + ) + ) + .on('mouseover', 'node.Pathway', (e) => + container.dispatchEvent( + new ReactomeEvent(ReactomeEventTypes.hover, { + element: e.target, + type: 'Pathway', + reactomeId: e.target.data('reactomeId'), + cy, + }) + ) + ) + .on('mouseover', 'node.reaction', (e) => + container.dispatchEvent( + new ReactomeEvent(ReactomeEventTypes.hover, { + element: e.target, + type: 'reaction', + reactomeId: e.target.data('reactomeId'), + cy, + }) + ) + ) + .on('mouseover', 'edge.reaction', (e) => + container.dispatchEvent( + new ReactomeEvent(ReactomeEventTypes.hover, { + element: e.target.connectedNodes('.reaction'), + type: 'reaction', + reactomeId: e.target.data('reactomeId'), + cy, + }) + ) + ) + + .on('mouseout', 'node.PhysicalEntity', (e) => + container.dispatchEvent( + new ReactomeEvent(ReactomeEventTypes.leave, { + element: e.target, + type: 'PhysicalEntity', + reactomeId: e.target.data('reactomeId'), + cy, + }) + ) + ) + .on('mouseout', 'node.Pathway', (e) => + container.dispatchEvent( + new ReactomeEvent(ReactomeEventTypes.leave, { + element: e.target, + type: 'Pathway', + reactomeId: e.target.data('reactomeId'), + cy, + }) + ) + ) + .on('mouseout', 'node.reaction', (e) => + container.dispatchEvent( + new ReactomeEvent(ReactomeEventTypes.leave, { + element: e.target, + type: 'reaction', + reactomeId: e.target.data('reactomeId'), + cy, + }) + ) + ) + .on('mouseout', 'edge.reaction', (e) => + container.dispatchEvent( + new ReactomeEvent(ReactomeEventTypes.leave, { + element: e.target.connectedNodes('.reaction'), + type: 'reaction', + reactomeId: e.target.data('reactomeId'), + cy, + }) + ) + ) + + .on('mouseover', 'node', (e) => mapper(e.target).addClass('hover')) + .on('mouseout', 'node', (e) => mapper(e.target).removeClass('hover')) + + .on('mouseover', 'node.reaction', (e) => hoverReaction(mapper(e.target))) + .on('mouseout', 'node.reaction', (e) => deHoverReaction(mapper(e.target))) + + .on('mouseover', 'edge', (e) => { const mapped = mapper(e.target); - if (mapped !== e.target) console.log(mapped, mapped.connectedNodes('.reaction')) + // if (mapped !== e.target) console.log(mapped, mapped.connectedNodes('.reaction')) - hoverReaction(mapped.connectedNodes('.reaction')) + hoverReaction(mapped.connectedNodes('.reaction')); }) - .on('mouseout', 'edge', e => deHoverReaction(mapper(e.target).connectedNodes('.reaction'))) - - .on('mouseover', 'node.Modification', e => mapper(cy.nodes(`#${e.target.data('nodeId')}`)).addClass('hover')) - .on('mouseout', 'node.Modification', e => mapper(cy.nodes(`#${e.target.data('nodeId')}`)).removeClass('hover')) - - .on('mouseover', 'edge.Interactor', e => mapper(cy.edges(`#${e.target.data('id')}`)).addClass('hover')) - .on('mouseout', 'edge.Interactor', e => mapper(cy.edges(`#${e.target.data('id')}`)).removeClass('hover')) + .on('mouseout', 'edge', (e) => deHoverReaction(mapper(e.target).connectedNodes('.reaction'))) + + .on('mouseover', 'node.Modification', (e) => + mapper(cy.nodes(`#${e.target.data('nodeId')}`)).addClass('hover') + ) + .on('mouseout', 'node.Modification', (e) => + mapper(cy.nodes(`#${e.target.data('nodeId')}`)).removeClass('hover') + ) + + .on('mouseover', 'edge.Interactor', (e) => + mapper(cy.edges(`#${e.target.data('id')}`)).addClass('hover') + ) + .on('mouseout', 'edge.Interactor', (e) => + mapper(cy.edges(`#${e.target.data('id')}`)).removeClass('hover') + ); } initSelect(cy: cytoscape.Core, mapper = (x: X) => x) { - const selectReaction = this.applyToReaction(col => col.select(), 'selecting') + const selectReaction = this.applyToReaction((col) => col.select(), 'selecting'); const container = cy.container()!; - cy - .on('select', 'node.PhysicalEntity', e => container.dispatchEvent(new ReactomeEvent(ReactomeEventTypes.select, { - element: e.target, - type: "PhysicalEntity", - reactomeId: e.target.data('reactomeId'), - cy - }))) - .on('select', 'node.Pathway', e => container.dispatchEvent(new ReactomeEvent(ReactomeEventTypes.select, { - element: e.target, - type: "Pathway", - reactomeId: e.target.data('reactomeId'), - cy - }))) - .on('select', 'node.reaction', e => container.dispatchEvent(new ReactomeEvent(ReactomeEventTypes.select, { - element: e.target, - type: "reaction", - reactomeId: e.target.data('reactomeId'), - cy - }))) - .on('select', 'edge.reaction', e => container.dispatchEvent(new ReactomeEvent(ReactomeEventTypes.select, { - element: e.target.connectedNodes('.reaction'), - type: "reaction", - reactomeId: e.target.data('reactomeId'), - cy - }))) - - .on('unselect', 'node.PhysicalEntity', e => container.dispatchEvent(new ReactomeEvent(ReactomeEventTypes.unselect, { - element: e.target, - type: "PhysicalEntity", - reactomeId: e.target.data('reactomeId'), - cy - }))) - .on('unselect', 'node.Pathway', e => container.dispatchEvent(new ReactomeEvent(ReactomeEventTypes.unselect, { - element: e.target, - type: "Pathway", - reactomeId: e.target.data('reactomeId'), - cy - }))) - .on('unselect', 'node.reaction', e => container.dispatchEvent(new ReactomeEvent(ReactomeEventTypes.unselect, { - element: e.target, - type: "reaction", - reactomeId: e.target.data('reactomeId'), - cy - }))) - .on('unselect', 'edge.reaction', e => container.dispatchEvent(new ReactomeEvent(ReactomeEventTypes.unselect, { - element: e.target.connectedNodes('.reaction'), - type: "reaction", - reactomeId: e.target.data('reactomeId'), - cy - }))) - - .on('select', 'edge', e => selectReaction(mapper(e.target).connectedNodes('.reaction'))) - .on('unselect', 'edge', () => selectReaction( - mapper(cy.edges(':selected').connectedNodes('.reaction') - .add(cy.nodes('.reaction:selected'))) - )) // Avoid single element selection when double-clicking - - .on('select', 'node.reaction', event => selectReaction(mapper(event.target))) - .on('select', 'node.Modification', e => mapper(cy.nodes(`#${e.target.data('nodeId')}`)).select()) - + cy.on('select', 'node.PhysicalEntity', (e) => + container.dispatchEvent( + new ReactomeEvent(ReactomeEventTypes.select, { + element: e.target, + type: 'PhysicalEntity', + reactomeId: e.target.data('reactomeId'), + cy, + }) + ) + ) + .on('select', 'node.Pathway', (e) => + container.dispatchEvent( + new ReactomeEvent(ReactomeEventTypes.select, { + element: e.target, + type: 'Pathway', + reactomeId: e.target.data('reactomeId'), + cy, + }) + ) + ) + .on('select', 'node.reaction', (e) => + container.dispatchEvent( + new ReactomeEvent(ReactomeEventTypes.select, { + element: e.target, + type: 'reaction', + reactomeId: e.target.data('reactomeId'), + cy, + }) + ) + ) + .on('select', 'edge.reaction', (e) => + container.dispatchEvent( + new ReactomeEvent(ReactomeEventTypes.select, { + element: e.target.connectedNodes('.reaction'), + type: 'reaction', + reactomeId: e.target.data('reactomeId'), + cy, + }) + ) + ) + + .on('unselect', 'node.PhysicalEntity', (e) => + container.dispatchEvent( + new ReactomeEvent(ReactomeEventTypes.unselect, { + element: e.target, + type: 'PhysicalEntity', + reactomeId: e.target.data('reactomeId'), + cy, + }) + ) + ) + .on('unselect', 'node.Pathway', (e) => + container.dispatchEvent( + new ReactomeEvent(ReactomeEventTypes.unselect, { + element: e.target, + type: 'Pathway', + reactomeId: e.target.data('reactomeId'), + cy, + }) + ) + ) + .on('unselect', 'node.reaction', (e) => + container.dispatchEvent( + new ReactomeEvent(ReactomeEventTypes.unselect, { + element: e.target, + type: 'reaction', + reactomeId: e.target.data('reactomeId'), + cy, + }) + ) + ) + .on('unselect', 'edge.reaction', (e) => + container.dispatchEvent( + new ReactomeEvent(ReactomeEventTypes.unselect, { + element: e.target.connectedNodes('.reaction'), + type: 'reaction', + reactomeId: e.target.data('reactomeId'), + cy, + }) + ) + ) + + .on('select', 'edge', (e) => selectReaction(mapper(e.target).connectedNodes('.reaction'))) + .on('unselect', 'edge', () => + selectReaction( + mapper( + cy.edges(':selected').connectedNodes('.reaction').add(cy.nodes('.reaction:selected')) + ) + ) + ) // Avoid single element selection when double-clicking + + .on('select', 'node.reaction', (event) => selectReaction(mapper(event.target))) + .on('select', 'node.Modification', (e) => + mapper(cy.nodes(`#${e.target.data('nodeId')}`)).select() + ); } initClick(cy: cytoscape.Core) { const container = cy.container()!; - cy - .on('tap', 'node.InteractorOccurrences', e => { - const openClass = 'opened'; - let eventType = !e.target.hasClass(openClass) ? ReactomeEventTypes.open : ReactomeEventTypes.close; - e.target.toggleClass(openClass); - container.dispatchEvent(new ReactomeEvent(eventType, { + cy.on('tap', 'node.InteractorOccurrences', (e) => { + const openClass = 'opened'; + const eventType = !e.target.hasClass(openClass) + ? ReactomeEventTypes.open + : ReactomeEventTypes.close; + e.target.toggleClass(openClass); + container.dispatchEvent( + new ReactomeEvent(eventType, { element: e.target, - type: "Interactor", + type: 'Interactor', reactomeId: e.target.data('reactomeId'), - cy - })) - }) + cy, + }) + ); + }) - .on('tap', '.Interactor', e => { + .on('tap', '.Interactor', (e) => { const prop = e.target.isNode() ? 'accURL' : 'evidenceURLs'; const url = e.target.data(prop); if (url) window.open(url); }) - .on('tap', '.DiseaseInteractor', e => { + .on('tap', '.DiseaseInteractor', (e) => { const prop = e.target.isNode() ? 'accURL' : 'evidenceURLs'; const url = e.target.data(prop); if (url) window.open(url); }) + .on('tap', '.Compartment', () => cy.elements().unselect()); // .on('tap', e => { // const openClass = 'opened'; @@ -222,7 +313,6 @@ export class Interactivity { private videoLayer?: IHTMLLayer; - initStructureVideo(cy: cytoscape.Core) { const layersPlugin: LayersPlugin = layers(cy); this.videoLayer = layersPlugin.append('html'); @@ -230,94 +320,167 @@ export class Interactivity { layersPlugin.renderPerNode( this.videoLayer!, (elem: HTMLElement) => { - (elem as RenderableHTMLElement).render() + (elem as RenderableHTMLElement).render(); }, { init: (elem: RenderableHTMLElement, node: cytoscape.NodeSingular) => { - const name = node.data('displayName'); - elem.innerHTML = node.data('html') || ''; - elem.style.display = "flex"; + elem.style.display = 'flex'; const video = elem.children[0] as HTMLVideoElement; elem.render = _.throttle(() => { - if (isElementInViewport(elem)) { - // console.log('rendering', name) - if (this.videoLayer?.node.style.opacity !== '0' && video.readyState === video.HAVE_NOTHING && video.networkState === video.NETWORK_IDLE) { - video.classList.add('loading'); - video.oncanplay = e => video.classList.remove('loading') - let errors = 0; - const sources = video.querySelectorAll('source')!; - sources.forEach(source => source.addEventListener('error', (e) => { - errors ++; - if (errors === sources.length) this.removeProteinVideo(video, node) - })); - - video.load(); - } - elem.style.visibility = node.visible() ? 'visible' : 'hidden'; + if (isElementInViewport(elem)) { + // console.log('rendering', name) + if ( + this.videoLayer?.node.style.opacity !== '0' && + video.readyState === video.HAVE_NOTHING && + video.networkState === video.NETWORK_IDLE + ) { + // video.classList.add('loading'); + this.addLoading(elem); + video.oncanplay = (_e) => this.removeLoading(elem); + let errors = 0; + const sources = video.querySelectorAll('source')!; + sources.forEach((source) => + source.addEventListener('error', (_e) => { + errors++; + if (errors === sources.length) this.removeStructureContainer(elem, node); + }) + ); + + video.load(); } - - }, 500 - ); + elem.style.visibility = node.visible() ? 'visible' : 'hidden'; + } + }, 500); }, transform: `translate(-70%, -50%)`, position: 'center', uniqueElements: false, checkBounds: false, // Need false otherwise destroy nodes when out of view selector: '.Protein', - updateOn: "render", // Need render to call display whenever we move + updateOn: 'render', // Need render to call display whenever we move queryEachTime: false, } ); - this.videoLayer?.node.classList.add('video') - const handler = (action: (video: HTMLVideoElement) => void) => async (event: cytoscape.EventObject) => { - const videoId = event.target.id(); - const videoElement = this.videoLayer?.node.querySelector(`#video-${videoId}`) as HTMLVideoElement; - if (videoElement && videoElement.readyState >= videoElement.HAVE_ENOUGH_DATA) { - action(videoElement) - } - }; + this.videoLayer?.node.classList.add('video'); + // Not async: nothing in here awaits, and returning a promise handed every + // cytoscape listener built from this factory a value it ignores. + const handler = + (action: (video: HTMLVideoElement) => void) => (event: cytoscape.EventObject) => { + const videoId = event.target.id(); + const videoElement = this.videoLayer?.node.querySelector( + `#video-${videoId}` + ) as HTMLVideoElement; + if (videoElement && videoElement.readyState >= videoElement.HAVE_ENOUGH_DATA) { + action(videoElement); + } + }; if (this.isMobile) { this.cy - .on('select', 'node.Protein', handler(v => v.play())) - .on('unselect', 'node.Protein', handler(v => v.pause())) + .on( + 'select', + 'node.Protein', + handler((v) => { + // play() rejects when the browser blocks autoplay, which is normal + // and not worth reporting; the icon stays on its first frame. + void v.play().catch(() => undefined); + }) + ) + .on( + 'unselect', + 'node.Protein', + handler((v) => v.pause()) + ); } this.cy - .on('mouseover', 'node.Protein', handler(v => v.play())) - .on('mouseout', 'node.Protein', handler(v => v.pause())); + .on( + 'mouseover', + 'node.Protein', + handler((v) => { + // play() rejects when the browser blocks autoplay, which is normal + // and not worth reporting; the icon stays on its first frame. + void v.play().catch(() => undefined); + }) + ) + .on( + 'mouseout', + 'node.Protein', + handler((v) => v.pause()) + ); } - removeProteinVideo(video: HTMLVideoElement, node: cytoscape.NodeSingular) { - video.classList.remove('loading') - let baseFontSize = extract(this.properties.font.size); - node.style({ - 'font-size': baseFontSize, - 'text-margin-x': 0, - 'text-max-width': "100%", - }) - this.proteins = this.proteins.not(node); - }; + addLoading(container: HTMLElement) { + // const template = document.createElement('template'); + // template.innerHTML = `` + // container.appendChild(template.content.firstChild as HTMLVideoElement); + container.classList.add('loading'); + } + + removeLoading(container: HTMLElement) { + // container.querySelector('.loader')?.remove(); + container.classList.remove('loading'); + } + + removeStructureContainer(loadingContainer: HTMLElement, node: cytoscape.NodeSingular) { + // console.log('Remove diagram structure container because not found', loadingContainer, node) + loadingContainer.classList.remove('loading'); + this.removeLoading(loadingContainer); + node.removeStyle(); + this.structureContainers = this.structureContainers.not(node); + } private moleculeLayer?: IHTMLLayer; initStructureMolecule(cy: cytoscape.Core) { - // @ts-ignore + // @ts-expect-error const layers: LayersPlugin = cy.layers(); this.moleculeLayer = layers.append('html'); - this.moleculeLayer.node.classList.add('molecule') + this.moleculeLayer.node.classList.add('molecule'); layers.renderPerNode( this.moleculeLayer, - (elem: HTMLElement, node: cytoscape.NodeSingular) => { - elem.style.visibility = node.visible() ? 'visible' : 'hidden'; - }, + (_elem: HTMLElement, _node: cytoscape.NodeSingular) => {}, { init: (elem: HTMLElement, node: cytoscape.NodeSingular) => { - elem.innerHTML = node.data('html') || ''; - elem.style.display = "flex" + elem.classList.add('molecule-structure'); + // elem.classList.add('loading') + this.addLoading(elem); + const w = node.data('width') - 4; // retrieve border width + const h = node.data('height') - 4; // retrieve border width + const cos45 = 0.7071067811865476; + const margin = (1 - cos45) * (Math.min(h, w) / 2); // Margin to cut the rounded corner exactly at 45deg + elem.style.width = w / 2 - margin + 'px'; + elem.style.height = h - 2 * margin + 'px'; + elem.style.display = 'flex'; + + const structure = node.data('chebiStructure') as string; + const initStructure = (svgData: string) => { + if (svgData === undefined) return this.removeStructureContainer(elem, node); + elem.innerHTML = svgData; + const svg = elem.querySelector('svg'); + if (!svg) return this.removeStructureContainer(elem, node); + // Avoid molecule bonds to scale with size + // svg.querySelectorAll('path').forEach(p => p.setAttribute("vector-effect", `non-scaling-stroke`)); + // Remove white background + svg.querySelector('rect:first-of-type')?.remove(); + // Readjust svg content to fit in the container + const bbox = svg.getBBox(); + svg.setAttribute( + 'viewBox', + `${bbox.x - 1} ${bbox.y - 1} ${bbox.width + 2} ${bbox.height + 2}` + ); + elem.classList.remove('loading'); + this.removeLoading(elem); + }; + + if (isPromise(structure)) { + structure.then(initStructure); + } else { + initStructure(structure); + } }, transform: `translate(-100%, -50%)`, position: 'center', @@ -330,7 +493,7 @@ export class Interactivity { } onZoom: { - [name: string]: (e?: cytoscape.EventObjectCore) => void + [name: string]: (e?: cytoscape.EventObjectCore) => void; shadow: (e?: cytoscape.EventObjectCore) => void; protein: (e?: cytoscape.EventObjectCore) => void; } = { @@ -339,18 +502,17 @@ export class Interactivity { }; triggerZoom() { - Object.values(this.onZoom).forEach(onZoom => onZoom()) + Object.values(this.onZoom).forEach((onZoom) => onZoom()); } - proteins!: cytoscape.NodeCollection; + structureContainers!: cytoscape.NodeCollection; updateProteins() { - this.proteins = this.cy.nodes('.Protein') - .or('.Molecule'); + this.structureContainers = this.cy.nodes('.Protein').or('.Molecule'); } initZoom(cy: cytoscape.Core) { - const shadows = cy.edges('[?pathway]'); + const allShadows = cy.edges('[?pathway]'); const shadowLabels = cy.nodes('.Shadow'); const trivial = cy.elements('.trivial'); this.updateProteins(); @@ -358,44 +520,153 @@ export class Interactivity { cy.minZoom(Math.min(cy.zoom(), extract(this.properties.shadow.labelOpacity)[0][0] / 100)); cy.maxZoom(15); - let baseFontSize = extract(this.properties.font.size); - const structureOpacityArray = extract(this.properties.structure.opacity) + const baseFontSize = extract(this.properties.font.size); + const structureOpacityArray = extract(this.properties.structure.opacity); const zoomStart = structureOpacityArray[0][0]; - const zoomEnd = structureOpacityArray[structureOpacityArray.length - 1][0] - + const zoomEnd = structureOpacityArray[structureOpacityArray.length - 1][0]; this.onZoom.shadow = () => { + // Not the lines of a flagged reaction: they carry a sub-pathway band too, + // and writing it inline here wiped the flag's halo off them on the next + // restyle (#311). As with trivial molecules below, the class is the + // authority. + const shadows = allShadows.not('.flag'); const zoomLevel = cy.zoom(); const z = zoomLevel * 100; - const shadowLabelOpacity = this.interpolate(z, extract(this.properties.shadow.labelOpacity).map(v => this.p(...v))) / 100; - const trivialOpacity = this.interpolate(z, extract(this.properties.trivial.opacity).map(v => this.p(...v))) / 100; - const shadowOpacity = this.interpolate(z, extract(this.properties.shadow.opacity).map(v => this.p(...v))) / 100; + const shadowLabelOpacity = + this.interpolate( + z, + extract(this.properties.shadow.labelOpacity).map((v) => this.p(...v)) + ) / 100; + const trivialOpacity = + this.interpolate( + z, + extract(this.properties.trivial.opacity).map((v) => this.p(...v)) + ) / 100; + let shadowOpacity = + this.interpolate( + z, + extract(this.properties.shadow.opacity).map((v) => this.p(...v)) + ) / 100; + + // A dirty fix for removing shadowEdges color when no shadow color is defined, color black is assigned to the edges after removing shadow class + if (shadows.style('underlay-color') === 'rgb(0,0,0)') { + shadowOpacity = 0; + } + shadows.style({ - 'underlay-opacity': shadowOpacity + 'underlay-opacity': shadowOpacity, }); + // Something pointed at in the hierarchy: the other sub-pathways' bands + // fade and its own is drawn strongly. Here rather than in the stylesheet, + // because this handler writes the bands inline and inline always wins. + shadows.filter('.hierarchy-dim').style({ 'underlay-opacity': shadowOpacity * 0.15 }); + // Only a band that is showing is strengthened: with bands off (flagging + // removes them) the underlay falls back to black, and boosting it drew a + // black halo round the hovered sub-pathway. + if (shadowOpacity > 0) { + shadows + .filter('.hierarchy-hover.shadow') + .style({ 'underlay-opacity': Math.max(shadowOpacity, 0.6) }); + } shadowLabels.style({ - 'text-opacity': shadowLabelOpacity + 'text-opacity': shadowLabelOpacity, }); - trivial.style({ - 'opacity': trivialOpacity, - 'underlay-opacity': Math.min(shadowOpacity, trivialOpacity) + // The other sub-pathways' names fade with their bands. + shadowLabels.filter('.hierarchy-dim').style({ 'text-opacity': shadowLabelOpacity * 0.2 }); + // Not the ones flagging has pinned visible. + // + // This writes an inline opacity, and in cytoscape an inline style beats + // any stylesheet rule -- so it silently overrode the `.trivial + // .always-visible` rule that flagging relies on. Detaching this handler + // from the zoom event was not enough to stop it: `triggerZoom()` calls it + // directly, and that runs on every restyle (a theme change, an analysis + // loading) and whenever an interactor is opened. Curators saw H2O and H+ + // vanish as they zoomed out with something flagged, and saw chemical + // structures drawn with no molecule underneath -- the same fault, since + // the structures are drawn by a different handler that was still running. + // + // The class is the authority. Anything wearing it is left alone. + const shown = trivial.filter((element) => !element.hasClass('always-visible')); + shown.style({ + opacity: trivialOpacity, + 'underlay-opacity': Math.min(shadowOpacity, trivialOpacity), }); - } + // Faded with the rest while something else is pointed at in the hierarchy. + const faded = Math.min(trivialOpacity, 0.2); + shown.filter('.hierarchy-dim').style({ + opacity: faded, + 'underlay-opacity': Math.min(shadowOpacity, faded), + }); + + // The interactor count badge is not worth drawing when it cannot be read. + // + // It is 30 model units across, so at the zoom a pathway opens at -- 0.203 + // for R-HSA-1368108 -- it is **6 pixels**, holding a two-digit number. Two + // readers in a row failed to find it while looking straight at it. + // + // The old browser does not draw it either: RendererManager.setFactor swaps + // renderer tiers at 0.5, and ProteinRenderer000 makes no call to + // drawSummaryItems while ProteinRenderer050 makes two. This threshold is + // close to theirs but chosen here rather than copied, because a cytoscape + // zoom and a GWT factor are not the same quantity: 0.6 puts the badge at 18 + // screen pixels, which is where its digits stop being a smudge. + cy.elements('.InteractorOccurrences').style( + 'display', + zoomLevel < INTERACTOR_BADGE_MIN_ZOOM ? 'none' : 'element' + ); + }; + const updateDecorationPosition = (node: cytoscape.NodeSingular) => { + if (!this.structureContainers.has(node)) return; + node.removeStyle('background-position-x'); + node.removeStyle('background-position-y'); + node.removeStyle('background-width'); + node.removeStyle('background-height'); + const i = (node.numericStyle('background-image') as string[]).findIndex((svg) => + svg.includes('RX') + ); + + const xs = [...(node.numericStyle('background-position-x') as number[])]; + const ys = [...(node.numericStyle('background-position-y') as number[])]; + const widths = [...(node.numericStyle('background-width') as number[])]; + const heights = [...(node.numericStyle('background-height') as number[])]; + + const x = xs[i]; + xs[i] = x + this.margin * 2 * node.data('width'); + // margin : 0 -> 0.25 + const scale = 1 - this.margin * 2; // 1 -> 0.5 + widths[i] = widths[i] * scale; + heights[i] = heights[i] * scale; + ys[i] = ys[i] + heights[i] * this.margin * 2; + node.style('background-position-x', xs); + node.style('background-position-y', ys); + node.style('background-width', widths); + node.style('background-height', heights); + }; this.onZoom.protein = () => { const zoomLevel = cy.zoom(); const z = zoomLevel * 100; - const videoOpacity = this.interpolate(z, extract(this.properties.structure.opacity).map(v => this.p(...v))) / 100; + const videoOpacity = + this.interpolate( + z, + extract(this.properties.structure.opacity).map((v) => this.p(...v)) + ) / 100; - const maxWidth = this.interpolate(z, [this.p(zoomStart, 100), this.p(zoomEnd, 50)]); + const maxWidth = this.interpolate(z, [this.p(zoomStart, 100), this.p(zoomEnd, 50)]); //might need to be commented out (Jhaque) this.margin = this.interpolate(z, [this.p(zoomStart, 0), this.p(zoomEnd, 0.25)]); - const fontSize = this.interpolate(z, [this.p(zoomStart, baseFontSize), this.p(zoomEnd, baseFontSize / 2)]); - this.proteins.style( - { - 'font-size': fontSize, - 'text-margin-x': (n: cytoscape.NodeSingular) => this.margin * n.data("width"), - 'text-max-width': maxWidth + "%", - }) + const fontSize = this.interpolate(z, [ + this.p(zoomStart, baseFontSize), + this.p(zoomEnd, baseFontSize / 2), + ]); + this.structureContainers.style({ + 'font-size': fontSize, + 'text-margin-x': (n: cytoscape.NodeSingular) => + this.margin * n.data('width') + (n.hasClass('drug') ? 10 : 0), + 'text-max-width': maxWidth + '%', //Might need to be deleted (Jhaque) + }); + + this.structureContainers.nodes('.drug').forEach(updateDecorationPosition); if (this.videoLayer) this.videoLayer.node.style.opacity = videoOpacity + ''; if (this.moleculeLayer) this.moleculeLayer.node.style.opacity = videoOpacity + ''; @@ -403,24 +674,29 @@ export class Interactivity { cy.on('zoom', this.onZoom.shadow); cy.on('zoom', this.onZoom.protein); + const handler = (e: cytoscape.EventObject) => updateDecorationPosition(e.target); + cy.on('mouseover', '.drug', handler) + .on('mouseout', '.drug', handler) + .on('deselect', '.drug', handler) + .on('select', '.drug', handler); - this.triggerZoom() + this.triggerZoom(); } margin = 0; p(x: number, y: number): P { - return new P(x, y) + return new P(x, y); } interpolate(x: number, points: P[]): number { if (x < points.at(0)!.x) return points.at(0)!.y; if (x > points.at(-1)!.x) return points.at(-1)!.y; for (let i = 0; i + 1 < points.length; i++) { - let y = this.lerp(x, points[i], points[i + 1]) + const y = this.lerp(x, points[i], points[i + 1]); if (y) return y; } - console.assert(false, "Should not arrive here") + console.assert(false, 'Should not arrive here'); return 0; } @@ -437,14 +713,14 @@ export class Interactivity { } interface State { - [k: string]: boolean + [k: string]: boolean; } const state: State = { selecting: false, hovering: false, - deHovering: false -} + deHovering: false, +}; class P extends Array { constructor(x: number, y: number) { @@ -452,17 +728,16 @@ class P extends Array { } get x() { - return this[0] + return this[0]; } get y() { - return this[1] + return this[1]; } } - function isElementInViewport(el: HTMLElement) { - let rect = el.getBoundingClientRect(); + const rect = el.getBoundingClientRect(); return ( rect.top >= 0 && rect.left >= 0 && @@ -470,5 +745,3 @@ function isElementInViewport(el: HTMLElement) { rect.right <= (window.innerWidth || document.documentElement.clientWidth) ); } - - diff --git a/projects/ngx-reactome-cytoscape-style/src/lib/model/reactome-event.model.ts b/projects/ngx-reactome-cytoscape-style/src/lib/model/reactome-event.model.ts index a0975d3..d4a3bf4 100644 --- a/projects/ngx-reactome-cytoscape-style/src/lib/model/reactome-event.model.ts +++ b/projects/ngx-reactome-cytoscape-style/src/lib/model/reactome-event.model.ts @@ -1,9 +1,10 @@ -import cytoscape from "cytoscape"; +import cytoscape from 'cytoscape'; + export interface ReactomeEventTarget { - reactomeId: string, - type: 'PhysicalEntity' | 'Pathway' | 'reaction' | 'Interactor', - element: cytoscape.NodeSingular, - cy: cytoscape.Core + reactomeId: string; + type: 'PhysicalEntity' | 'Pathway' | 'reaction' | 'Interactor' | 'Any'; + element: cytoscape.NodeSingular; + cy: cytoscape.Core; } export enum ReactomeEventTypes { @@ -14,12 +15,11 @@ export enum ReactomeEventTypes { unselect = 'reactome::unselect', open = 'reactome::open', - close = 'reactome::close' + close = 'reactome::close', } export class ReactomeEvent extends CustomEvent { constructor(type: ReactomeEventTypes, target: ReactomeEventTarget) { - super(type, {detail: target}); + super(type, { detail: target }); } - } diff --git a/projects/ngx-reactome-cytoscape-style/src/lib/properties-utils.ts b/projects/ngx-reactome-cytoscape-style/src/lib/properties-utils.ts index fece617..e94a889 100644 --- a/projects/ngx-reactome-cytoscape-style/src/lib/properties-utils.ts +++ b/projects/ngx-reactome-cytoscape-style/src/lib/properties-utils.ts @@ -1,4 +1,4 @@ -import {Properties} from "./properties"; +import { Properties } from './properties'; export type Provider = () => T; @@ -24,20 +24,26 @@ export function extract(property: Property): T { } export type PropertiesType = { - [k: string]: Property -} + [k: string]: Property; +}; export type Defaultable = T & { - setDefault(key: KA, defaultValue: VA): Defaultable; + setDefault( + key: KA, + defaultValue: VA + ): Defaultable; } & { [P in K]-?: T[P]; -} - +}; export function defaultable(object: T): Defaultable { - const defaultable = (object) as Defaultable; + const defaultable = object as Defaultable; - defaultable.setDefault = function (this: Defaultable, key: KA, defaultValue: VA): Defaultable { + defaultable.setDefault = function ( + this: Defaultable, + key: KA, + defaultValue: VA + ): Defaultable { if (!object[key]) object[key] = defaultValue; return defaultable as Defaultable; }; @@ -45,7 +51,20 @@ export function defaultable(object: T): Defaultable { return defaultable; } -export const propertyExtractor = (properties: Properties) => (group: G, key: K) => properties[group][key] -export const propertyMapper = (properties: Properties) => ? X : never, M extends (t: T) => any>(group: G, key: K, mapper: M) => mapper(extract(properties[group][key])) - - +export const propertyExtractor = + (properties: Properties) => + (group: G, key: K) => + properties[group][key]; +export const propertyMapper = + (properties: Properties) => + < + G extends keyof Properties, + K extends keyof Properties[G], + T extends (Properties[G][K] extends Property ? X : never), + M extends (t: T) => any, + >( + group: G, + key: K, + mapper: M + ) => + mapper(extract(properties[group][key])); diff --git a/projects/ngx-reactome-cytoscape-style/src/lib/properties.ts b/projects/ngx-reactome-cytoscape-style/src/lib/properties.ts index 35a886c..874fad2 100644 --- a/projects/ngx-reactome-cytoscape-style/src/lib/properties.ts +++ b/projects/ngx-reactome-cytoscape-style/src/lib/properties.ts @@ -1,98 +1,120 @@ -import {defaultable, extract, PropertiesType, Property} from "./properties-utils"; +import { defaultable, extract, PropertiesType, Property } from './properties-utils'; export interface Properties extends PropertiesType { global: { - thickness: Property - surface: Property - onSurface: Property - primary: Property - onPrimary: Property - positive: Property - negative: Property - negativeContrast: Property - selectNode: Property - selectEdge: Property - hoverNode: Property - hoverEdge: Property - flag: Property - }, + thickness: Property; + surface: Property; + onSurface: Property; + primary: Property; + onPrimary: Property; + primaryContainer: Property; + onPrimaryContainer: Property; + positive: Property; + negative: Property; + negativeContrast: Property; + selectNode: Property; + selectEdge: Property; + hoverNode: Property; + hoverEdge: Property; + flag: Property; + }; compartment: { - fill: Property - opacity: Property - } + fill: Property; + opacity: Property; + }; shadow: { - luminosity: Property - opacity: Property<[number, number][]> - labelOpacity: Property<[number, number][]> - } + luminosity: Property; + opacity: Property<[number, number][]>; + labelOpacity: Property<[number, number][]>; + padding: Property; + fontSize: Property; + fontPadding: Property; + }; protein: { - fill: Property - drug: Property - radius: Property - } + fill: Property; + drug: Property; + radius: Property; + }; genomeEncodedEntity: { - fill: Property - drug: Property - bottomRadius: Property - topRadius: Property - } + fill: Property; + drug: Property; + bottomRadius: Property; + topRadius: Property; + }; rna: { - fill: Property - drug: Property - radius: Property - } + fill: Property; + drug: Property; + radius: Property; + }; gene: { - fill: Property - decorationHeight: Property - decorationExtraWidth: Property - arrowHeadSize: Property - borderRadius: Property - arrowRadius: Property - } + fill: Property; + decorationHeight: Property; + decorationExtraWidth: Property; + arrowHeadSize: Property; + borderRadius: Property; + arrowRadius: Property; + }; molecule: { - fill: Property - stroke: Property - drug: Property - } + fill: Property; + stroke: Property; + drug: Property; + }; entitySet: { - fill: Property - stroke: Property - drug: Property - radius: Property - } + fill: Property; + stroke: Property; + drug: Property; + radius: Property; + }; complex: { - fill: Property - stroke: Property - drug: Property - cut: Property - } + fill: Property; + stroke: Property; + drug: Property; + cut: Property; + }; + polymer: { + distance: Property; + filter: Property; + }; cell: { - thickness: Property - fill: Property - stroke: Property - } + thickness: Property; + fill: Property; + stroke: Property; + }; //interacting pathway and sub pathway pathway: { - fill: Property - stroke: Property - } + fill: Property; + stroke: Property; + }; modification: { - fill: Property - } + fill: Property; + }; interactor: { - fill: Property - stroke: Property - decorationWidth: Property - } + fill: Property; + stroke: Property; + decorationWidth: Property; + }; trivial: { - opacity: Property<[number, number][]> - } + opacity: Property<[number, number][]>; + }; structure: { - opacity: Property<[number, number][]> - } + opacity: Property<[number, number][]>; + }; font: { - size: Property - } + size: Property; + }; + analysis: { + min: Property; + max: Property; + unidirectionalPalette: Property<[number, string][] | string>; + bidirectionalPalette: Property<[number, string][] | string>; + notFound: Property; + }; + features: { + edit: Property; + compare: Property; + interactors: Property; + analysis: Property; + }; } export function setDefaults(properties: UserProperties = {}, css: CSSStyleDeclaration): Properties { @@ -102,6 +124,11 @@ export function setDefaults(properties: UserProperties = {}, css: CSSStyleDeclar .setDefault('onSurface', () => css.getPropertyValue('--on-surface') || '#001F24') .setDefault('primary', () => css.getPropertyValue('--primary') || '#006782') .setDefault('onPrimary', () => css.getPropertyValue('--on-primary') || '#FFFFFF') + .setDefault('primaryContainer', () => css.getPropertyValue('--primary-container') || '#baeaff') + .setDefault( + 'onPrimaryContainer', + () => css.getPropertyValue('--on-primary-container') || '#001f29' + ) .setDefault('positive', () => css.getPropertyValue('--positive') || '#0C9509') .setDefault('negative', () => css.getPropertyValue('--negative') || '#BA1A1A') .setDefault('negativeContrast', () => css.getPropertyValue('--negative-contrast') || '#ea7d7d') @@ -109,97 +136,182 @@ export function setDefaults(properties: UserProperties = {}, css: CSSStyleDeclar .setDefault('selectEdge', () => css.getPropertyValue('--select-edge') || '#0561A6') .setDefault('hoverNode', () => css.getPropertyValue('--hover-node') || '#78E076') .setDefault('hoverEdge', () => css.getPropertyValue('--hover-edge') || '#04B601') - .setDefault('flag', () => css.getPropertyValue('--flag') || '#DE75B4') + .setDefault('flag', () => css.getPropertyValue('--flag') || '#DE75B4'); const compartment: Properties['compartment'] = defaultable(properties.compartment || {}) - .setDefault('opacity', () => Number.parseFloat(css.getPropertyValue('--opacity')) || 0.06) - .setDefault('fill', () => css.getPropertyValue('--compartment') || '#E5834A') + .setDefault( + 'opacity', + () => Number.parseFloat(css.getPropertyValue('--compartment-opacity')) || 0.06 + ) + .setDefault('fill', () => css.getPropertyValue('--compartment') || '#E5834A'); const shadow: Properties['shadow'] = defaultable(properties.shadow || {}) - .setDefault('luminosity', () => Number.parseFloat(css.getPropertyValue('--shadow-luminosity')) || 40) + .setDefault( + 'luminosity', + () => Number.parseFloat(css.getPropertyValue('--shadow-luminosity')) || 40 + ) + .setDefault('padding', () => Number.parseFloat(css.getPropertyValue('--shadow-padding')) || 20) + .setDefault( + 'fontSize', + () => Number.parseFloat(css.getPropertyValue('--shadow-font-size')) || 80 + ) + .setDefault( + 'fontPadding', + () => Number.parseFloat(css.getPropertyValue('--shadow-font-padding')) || 15 + ) .setDefault('opacity', () => { const p = css.getPropertyValue('--shadow-opacity'); - return p ? JSON.parse(p) : [[20, 20], [40, 0]]; + return p + ? JSON.parse(p) + : [ + [20, 20], + [40, 0], + ]; }) .setDefault('labelOpacity', () => { const p = css.getPropertyValue('--shadow-label-opacity'); - return p ? JSON.parse(p) : [[20, 100], [40, 0]]; - }) + return p + ? JSON.parse(p) + : [ + [20, 100], + [40, 0], + ]; + }); const protein: Properties['protein'] = defaultable(properties.protein || {}) .setDefault('fill', () => css.getPropertyValue('--primary-contrast-1') || '#001F29') .setDefault('drug', () => css.getPropertyValue('--drug-contrast-1') || '#3E001D') - .setDefault('radius', 8) + .setDefault('radius', 8); - - const genomeEncodedEntity: Properties['genomeEncodedEntity'] = defaultable(properties.genomeEncodedEntity || {}) + const genomeEncodedEntity: Properties['genomeEncodedEntity'] = defaultable( + properties.genomeEncodedEntity || {} + ) .setDefault('fill', () => css.getPropertyValue('--primary-contrast-4') || '#006782') .setDefault('drug', () => css.getPropertyValue('--drug-contrast-4') || '#BB557A') .setDefault('bottomRadius', 6) - .setDefault('topRadius', 40) + .setDefault('topRadius', 40); const rna: Properties['rna'] = defaultable(properties.rna || {}) .setDefault('fill', () => css.getPropertyValue('--primary-contrast-2') || '#003545') .setDefault('drug', () => css.getPropertyValue('--drug-contrast-2') || '#610B33') - .setDefault('radius', 8) + .setDefault('radius', 8); const gene: Properties['gene'] = defaultable(properties.gene || {}) .setDefault('decorationHeight', 20) .setDefault('decorationExtraWidth', 17) - .setDefault("arrowHeadSize", 10) - .setDefault("borderRadius", 8) - .setDefault("arrowRadius", 8) - .setDefault("fill", () => css.getPropertyValue('--primary-contrast-3') || '#004D62') + .setDefault('arrowHeadSize', 10) + .setDefault('borderRadius', 8) + .setDefault('arrowRadius', 8) + .setDefault('fill', () => css.getPropertyValue('--primary-contrast-3') || '#004D62'); const molecule: Properties['molecule'] = defaultable(properties.molecule || {}) - .setDefault("fill", () => extract(global.surface)) - .setDefault("stroke", () => extract(global.onSurface)) - .setDefault('drug', () => css.getPropertyValue('--drug-contrast-3') || '#9C3D61') + .setDefault('fill', () => extract(global.surface)) + .setDefault('stroke', () => extract(global.onSurface)) + .setDefault('drug', () => css.getPropertyValue('--drug-contrast-3') || '#9C3D61'); const complex: Properties['complex'] = defaultable(properties.complex || {}) - .setDefault("cut", 8) - .setDefault("fill", () => css.getPropertyValue('--tertiary-contrast-1') || '#00315C') - .setDefault("stroke", () => css.getPropertyValue('--on-tertiary') || '#FFFFFF') - .setDefault('drug', () => css.getPropertyValue('--drug-contrast-3') || '#7E2549') + .setDefault('cut', 8) + .setDefault('fill', () => css.getPropertyValue('--tertiary-contrast-1') || '#00315C') + .setDefault('stroke', () => css.getPropertyValue('--on-tertiary') || '#FFFFFF') + .setDefault('drug', () => css.getPropertyValue('--drug-contrast-3') || '#7E2549'); const entitySet: Properties['entitySet'] = defaultable(properties.entitySet || {}) - .setDefault("radius", 8) - .setDefault("fill", () => css.getPropertyValue('--tertiary-contrast-3') || '#1660A5') - .setDefault("stroke", () => css.getPropertyValue('--on-tertiary') || '#FFFFFF') - .setDefault('drug', () => css.getPropertyValue('--drug-contrast-4') || '#BB557A') + .setDefault('radius', 8) + .setDefault('fill', () => css.getPropertyValue('--tertiary-contrast-3') || '#1660A5') + .setDefault('stroke', () => css.getPropertyValue('--on-tertiary') || '#FFFFFF') + .setDefault('drug', () => css.getPropertyValue('--drug-contrast-4') || '#BB557A'); + + const polymer: Properties['polymer'] = defaultable(properties.polymer || {}) + .setDefault('distance', () => 3 * extract(global.thickness)) + .setDefault('filter', () => css.getPropertyValue('--polymer-filter') || 'invert(0.2)'); const cell: Properties['cell'] = defaultable(properties.cell || {}) - .setDefault('thickness', () => Number.parseFloat(css.getPropertyValue('--cell-thickness')) || 16) - .setDefault("fill", () => css.getPropertyValue('--tertiary-contrast-2') || '#004882') - .setDefault("stroke", () => css.getPropertyValue('--on-tertiary') || '#FFFFFF') + .setDefault( + 'thickness', + () => Number.parseFloat(css.getPropertyValue('--cell-thickness')) || 16 + ) + .setDefault('fill', () => css.getPropertyValue('--tertiary-contrast-2') || '#004882') + .setDefault('stroke', () => css.getPropertyValue('--on-tertiary') || '#FFFFFF'); const pathway: Properties['pathway'] = defaultable(properties.pathway || {}) - .setDefault("fill", () => css.getPropertyValue('--primary-contrast-4') || '#006782') - .setDefault("stroke", () => extract(global.onPrimary)) + .setDefault('fill', () => css.getPropertyValue('--primary-contrast-4') || '#006782') + .setDefault('stroke', () => extract(global.onPrimary)); - const modification: Properties['modification'] = defaultable(properties.modification || {}) - .setDefault("fill", () => css.getPropertyValue('--primary-contrast-2') || '#003545') + const modification: Properties['modification'] = defaultable( + properties.modification || {} + ).setDefault('fill', () => css.getPropertyValue('--primary-contrast-2') || '#003545'); const interactor: Properties['interactor'] = defaultable(properties.interactor || {}) - .setDefault("fill", () => css.getPropertyValue('--interactor-fill') || '#68297C') - .setDefault("stroke", () => css.getPropertyValue('--interactor-stroke') || '#9f5cb5') - .setDefault('decorationWidth', () => Number.parseFloat(css.getPropertyValue('--decorationWidth')) || 20) + .setDefault('fill', () => css.getPropertyValue('--interactor-fill') || '#68297C') + .setDefault('stroke', () => css.getPropertyValue('--interactor-stroke') || '#9f5cb5') + .setDefault( + 'decorationWidth', + () => Number.parseFloat(css.getPropertyValue('--decorationWidth')) || 20 + ); - const trivial: Properties['trivial'] = defaultable(properties.trivial || {}) - .setDefault('opacity', () => { + const trivial: Properties['trivial'] = defaultable(properties.trivial || {}).setDefault( + 'opacity', + () => { const p = css.getPropertyValue('--trivial-opacity'); - return p ? JSON.parse(p) : [[40, 0], [60, 100]]; - }) + return p + ? JSON.parse(p) + : [ + [40, 0], + [60, 100], + ]; + } + ); - const structure: Properties['structure'] = defaultable(properties.structure || {}) - .setDefault('opacity', () => { + const structure: Properties['structure'] = defaultable(properties.structure || {}).setDefault( + 'opacity', + () => { const p = css.getPropertyValue('--structure-opacity'); - return p ? JSON.parse(p) : [[130, 0], [150, 100]]; + return p + ? JSON.parse(p) + : [ + [130, 0], + [150, 100], + ]; + } + ); + + const font: Properties['font'] = defaultable(properties.font || {}).setDefault('size', 12); + + const analysis: Properties['analysis'] = defaultable(properties.analysis || {}) + .setDefault('min', Number.parseFloat(css.getPropertyValue('--analysis-min')) || 0) + .setDefault('max', Number.parseFloat(css.getPropertyValue('--analysis-max')) || 1) + .setDefault( + 'notFound', + () => css.getPropertyValue('--analysis-not-found') || extract(global.onSurface) + ) + .setDefault('unidirectionalPalette', () => { + const p = css.getPropertyValue('--analysis-uni-palette'); + console.error(p, typeof p); + return p + ? JSON.parse(p) + : [ + [0.0, '#FFFFE0'], + [1.0, '#00429D'], + ]; }) + .setDefault('bidirectionalPalette', () => { + const p = css.getPropertyValue('--analysis-bi-palette'); + console.error(p, typeof p); - const font: Properties['font'] = defaultable(properties.font || {}) - .setDefault('size', 12) + return p + ? JSON.parse(p) + : [ + [0.0, '#93003A'], + [0.5, '#FFFFE0'], + [1.0, '#00429D'], + ]; + }); + const features: Properties['features'] = defaultable(properties.features || {}) + .setDefault('edit', false) + .setDefault('compare', true) + .setDefault('analysis', true) + .setDefault('interactors', true); return { global, @@ -213,16 +325,18 @@ export function setDefaults(properties: UserProperties = {}, css: CSSStyleDeclar complex, entitySet, cell, + polymer, pathway, modification, interactor, trivial, structure, - font - } + font, + analysis, + features, + }; } export type UserProperties = Partial<{ - [k in keyof Properties]: Partial -}> - + [k in keyof Properties]: Partial; +}>; diff --git a/projects/ngx-reactome-cytoscape-style/src/lib/style.ts b/projects/ngx-reactome-cytoscape-style/src/lib/style.ts index d5f0f56..7ecf385 100644 --- a/projects/ngx-reactome-cytoscape-style/src/lib/style.ts +++ b/projects/ngx-reactome-cytoscape-style/src/lib/style.ts @@ -1,16 +1,32 @@ -import cytoscape from "cytoscape"; -import {clearDrawersCache, imageBuilder, OMMITED_ICON} from "./drawer/image-builder"; -import {extract, propertyExtractor, propertyMapper} from "./properties-utils"; +import cytoscape from 'cytoscape'; +import { + clearDrawersCache, + imageBuilder, + OMMITED_ICON, + resetGradients, +} from './drawer/image-builder'; +import { extract, propertyExtractor, propertyMapper } from './properties-utils'; -import {Properties, setDefaults, UserProperties} from "./properties"; -import {Interactivity} from "./interactivity"; -import {HSL} from "./color"; +import { Properties, setDefaults, UserProperties } from './properties'; +import { Interactivity } from './interactivity'; +import chroma, { Scale } from 'chroma-js'; +const INTERACTIVITY_KEY = '_reactomeInteractivity'; + +/** + * The Interactivity bound to this specific graph. Prefer this over + * `cy.data('reactome').interactivity`, which returns whichever graph was bound + * most recently and so may belong to an entirely different cytoscape instance. + */ +export function interactivityOf(cy: cytoscape.Core): Interactivity | undefined { + return cy.scratch(INTERACTIVITY_KEY); +} export class Style { public css: CSSStyleDeclaration; public properties: Properties; - private cy?: cytoscape.Core; + public currentPalette!: Scale; + public cy?: cytoscape.Core; private readonly imageBuilder; private readonly p; private readonly pm; @@ -19,7 +35,7 @@ export class Style { constructor(container: HTMLElement, properties: UserProperties = {}) { this.css = getComputedStyle(container); this.properties = setDefaults(properties, this.css); - this.imageBuilder = imageBuilder(this.properties); + this.imageBuilder = imageBuilder(this.properties, this); this.p = propertyExtractor(this.properties); this.pm = propertyMapper(this.properties); } @@ -28,7 +44,12 @@ export class Style { this.cy = cy; cy.data('reactome', this); this.interactivity = new Interactivity(cy, this.properties); - this.initSubPathwayColors() + // One Style is bound to several graphs -- the diagram, the legend, the + // comparison view -- and this.interactivity only ever holds the most recent + // one. Anything that has to reach the handlers registered on a *particular* + // graph must look them up on that graph, so keep a per-instance reference. + cy.scratch(INTERACTIVITY_KEY, this.interactivity); + this.initSubPathwayColors(); } initSubPathwayColors() { @@ -36,301 +57,335 @@ export class Style { if (!subPathways) return; const dH = 360 / subPathways.length; - const subpathwayIdToColor = new Map(subPathways.map((subPathway, i) => { - const hex = new HSL(dH * i, 100, extract(this.properties.shadow.luminosity)).toHex(); - subPathway.data('color', hex); - return [subPathway.data('reactomeId'), hex] - })) + subPathways.forEach((subPathway, i) => { + const edges = this.cy!.edges(`[pathway=${subPathway.data('reactomeId')}]`); + subPathway.data('edges', edges); - this.cy?.edges('[?pathway]').forEach(edge => { - edge.data('color', subpathwayIdToColor.get(edge.data('pathway')) - ) - }) + const color = chroma.hsl(dH * i, 1, extract(this.properties.shadow.luminosity) / 100); + const hex = color.hex(); + subPathway.data('color', hex); + edges.forEach((edge) => { + edge.data('color', hex); + }); + }); } - - getStyleSheet(): cytoscape.Stylesheet[] { + getStyleSheet(): cytoscape.StylesheetCSS[] { return [ { - selector: "*", - style: { - "font-family": "Roboto", - "font-weight": 600, - "z-index": 1 - } + selector: '*', + css: { + // A stack, not a bare family: an exported SVG carries this string + // to wherever it is opened, and a viewer without Roboto was falling + // all the way back to its default serif, whose metrics are nothing + // like Roboto's -- so labels stopped fitting inside their shapes. + 'font-family': 'Roboto, Helvetica, Arial, sans-serif', + 'font-weight': 600, + 'z-index': 1, + }, }, { selector: 'node.Compartment', - style: { - "shape": "round-rectangle", - "width": 'data(width)', - "height": 'data(height)', + css: { + shape: 'round-rectangle', + width: 'data(width)', + height: 'data(height)', - "border-style": 'double', + 'border-style': 'double', - "z-index": 0, - "z-compound-depth": "bottom", - "overlay-opacity": 0, + 'z-index': 0, + 'z-compound-depth': 'bottom', + 'overlay-opacity': 0, - "color": this.p('compartment', 'fill'), - "border-color": this.p('compartment', 'fill'), - "background-color": this.p('compartment', 'fill'), - "background-opacity": this.p('compartment', 'opacity'), - "border-width": this.pm('global', 'thickness', t => 3 * t) - } + color: this.p('compartment', 'fill'), + 'border-color': this.p('compartment', 'fill'), + 'background-color': this.p('compartment', 'fill'), + 'background-opacity': this.p('compartment', 'opacity'), + 'border-width': this.pm('global', 'thickness', (t) => 3 * t), + }, }, { selector: 'node.Compartment.inner, node.Compartment.outer', - style: { - "border-style": 'solid', - "border-width": this.p('global', 'thickness') - } + css: { + 'border-style': 'solid', + 'border-width': this.p('global', 'thickness'), + }, }, { selector: 'node.Compartment.outer', - style: { - 'label': 'data(displayName)', - "text-opacity": 1, - "text-valign": "bottom", - "text-halign": "right", - // @ts-ignore - "text-margin-x": "data(textX)", - // @ts-ignore - "text-margin-y": "data(textY)", - } + css: { + label: 'data(displayName)', + 'text-opacity': 1, + 'text-valign': 'bottom', + 'text-halign': 'right', + // @ts-expect-error + 'text-margin-x': 'data(textX)', + // @ts-expect-error + 'text-margin-y': 'data(textY)', + }, }, { selector: 'node[?radius]', - style: { - // @ts-ignore - 'corner-radius': 'data(radius)' - } + css: { + 'corner-radius': 'data(radius)', + }, }, { selector: 'node.Shadow', - style: { - 'label': 'data(displayName)', - "font-size": 80, - "background-opacity": 0, - "shape": "rectangle", - "text-valign": "center", - "text-halign": "center", - "text-outline-color": this.p('global', 'surface'), - "text-outline-width": 15, - "text-wrap": 'wrap', - "text-max-width": "data(width)", - } + css: { + label: 'data(displayName)', + 'font-size': this.p('shadow', 'fontSize'), + events: 'no', + 'background-opacity': 0, + shape: 'rectangle', + 'text-valign': 'center', + 'text-halign': 'center', + 'text-outline-color': this.p('global', 'surface'), + 'text-outline-width': this.p('shadow', 'fontPadding'), + 'text-wrap': 'wrap', + 'text-max-width': 'data(width)', + }, }, { selector: 'node.Shadow[?color]', - style: { - "color": 'data(color)', - } + css: { + color: 'data(color)', + }, + }, + { + selector: 'node.PhysicalEntity, node.Pathway, node.Modification, node.Interactor', + css: { + 'font-size': this.p('font', 'size'), + 'text-margin-x': 0, + label: 'data(displayName)', + width: 'data(width)', + height: 'data(height)', + 'background-fit': 'none', + 'text-halign': 'center', + 'text-valign': 'center', + 'text-wrap': 'wrap', + 'text-max-width': (node: cytoscape.NodeSingular) => node.data('width') + 'px', + // @ts-expect-error + 'background-image-smoothing': 'no no no no no no no no', + + // @ts-expect-error + 'background-image': (node) => this.imageBuilder(node)['background-image'], + // @ts-expect-error + 'background-position-y': (node) => this.imageBuilder(node)['background-position-y'] || [], + // @ts-expect-error + 'background-position-x': (node) => this.imageBuilder(node)['background-position-x'] || [], + // @ts-expect-error + 'background-height': (node) => this.imageBuilder(node)['background-height'] || '100%', + // @ts-expect-error + 'background-width': (node) => this.imageBuilder(node)['background-width'] || '100%', + // @ts-expect-error + 'background-clip': (node) => this.imageBuilder(node)['background-clip'] || 'node', + // @ts-expect-error + 'background-image-containment': (node) => + this.imageBuilder(node)['background-image-containment'] || 'inside', + // @ts-expect-error + 'background-image-opacity': (node) => + this.imageBuilder(node)['background-image-opacity'] || 1, + 'bounds-expansion': (node) => this.imageBuilder(node)['bounds-expansion'][0] || 0, + color: this.p('global', 'onPrimary'), + }, }, { selector: 'node.drug', - style: { - "text-max-width": (node: cytoscape.NodeSingular) => (node.width() - 44) + 'px', - "text-margin-x": 4, - "font-style": "italic" - } - }, { - selector: 'node.PhysicalEntity, node.Pathway, node.Modification, node.Protein', - style: { - 'font-size': this.p('font','size'), - 'text-margin-x' : 0, - 'label': 'data(displayName)', - 'width': 'data(width)', - 'height': 'data(height)', - "background-fit": "none", - "text-halign": 'center', - "text-valign": 'center', - "text-wrap": 'wrap', - "text-max-width": (node:cytoscape.NodeSingular) => node.data('width') + 'px', - // @ts-ignore - "background-image-smoothing": "no no no no no no no no", - - // @ts-ignore - "background-image": node => this.imageBuilder(node)["background-image"], - // @ts-ignore - "background-position-y": node => this.imageBuilder(node)["background-position-y"] || 0, - // @ts-ignore - "background-position-x": node => this.imageBuilder(node)["background-position-x"] || 0, - // @ts-ignore - "background-height": node => this.imageBuilder(node)["background-height"] || '100%', - // @ts-ignore - "background-width": node => this.imageBuilder(node)["background-width"] || '100%', - // @ts-ignore - "background-clip": node => this.imageBuilder(node)["background-clip"] || 'node', - // @ts-ignore - "background-image-containment": node => this.imageBuilder(node)["background-image-containment"] || 'inside', - // @ts-ignore - "background-image-opacity": node => this.imageBuilder(node)["background-image-opacity"] || 1, - // @ts-ignore - "bounds-expansion": node => this.imageBuilder(node)["bounds-expansion"][0] || 0, - 'color': this.p('global', 'onPrimary'), - } + css: { + 'text-max-width': (node: cytoscape.NodeSingular) => node.width() - 36 * 2 + 'px', + 'text-margin-x': 4, + 'font-style': 'italic', + }, }, - { selector: 'node.InteractorOccurrences', - style: { - 'label': 'data(displayName)', - 'color': this.p('global', 'surface'), - "shape": "ellipse", - "text-valign": "center", - "text-halign": "center", - "text-wrap": 'wrap', - "background-color": this.p('interactor', 'fill') - } - }, - { - selector: 'node.InteractorOccurrences.Disease', - style: { - "background-color": this.p('global', 'negative') - } + css: { + label: 'data(displayName)', + color: this.p('global', 'surface'), + shape: 'ellipse', + 'text-valign': 'center', + 'text-halign': 'center', + 'text-wrap': 'wrap', + 'background-color': this.p('interactor', 'fill'), + }, + }, + { + selector: 'node.InteractorOccurrences.disease', + css: { + 'background-color': this.p('global', 'negative'), + }, + }, + { + selector: 'node.InteractorOccurrences[?exp]', + css: { + 'background-color': (node) => { + const exp = node.data('exp') as number[]; + // console.log(node.data(), exp) + return exp !== undefined + ? this.currentPalette(exp[0]).hex() + : this.pm('analysis', 'notFound', (c) => c)(); + }, + 'border-width': this.p('global', 'thickness'), + 'border-color': this.p('interactor', 'fill'), + }, }, { selector: 'node.InteractorOccurrences.hover', - style: { - "border-width": this.pm('global', 'thickness', t => t * 1), - "border-color": this.p('global', 'hoverNode'), - } + css: { + 'border-width': this.p('global', 'thickness'), + 'border-color': this.p('global', 'hoverNode'), + }, }, { selector: 'node.InteractorOccurrences.select', - style: { - "border-width": this.pm('global', 'thickness', t => t * 1), - "border-color": this.p('global', 'selectNode'), - } + css: { + 'border-width': this.p('global', 'thickness'), + 'border-color': this.p('global', 'selectNode'), + }, }, { selector: 'node.Interactor', - style: { - "label": "data(displayName)", - "font-family": "Roboto Mono, monospace", + css: { + label: 'data(displayName)', + 'font-family': 'Roboto Mono, monospace', // "border-color": this.p('interactor', 'stroke'), - "border-width": this.p('global', 'thickness'), - "text-wrap": "ellipsis", - "border-color": this.p('interactor', 'fill') - } - }, - { - selector: 'node.DiseaseInteractor', - style: { - "shape": "round-hexagon", - "background-color": this.p('global', 'negative'), - "background-opacity": 0, - "font-family": "Roboto Mono, monospace", - "color": this.p('global', 'onPrimary'), - "text-wrap": "ellipsis", - "text-max-width": (node: cytoscape.NodeSingular) => (node.width() - 40) + 'px', - } + 'border-width': this.p('global', 'thickness'), + 'text-wrap': 'ellipsis', + 'border-color': this.p('interactor', 'fill'), + 'border-position': 'inside', + }, }, { selector: 'node.PhysicalEntity.disease', - style: { - "border-color": this.p('global', 'negativeContrast'), - "color": this.p('global', 'negativeContrast'), - "border-width": this.p('global', 'thickness'), - } - }, { + css: { + 'border-color': this.p('global', 'negativeContrast'), + color: this.p('global', 'negativeContrast'), + 'border-width': this.p('global', 'thickness'), + }, + }, + + { + selector: 'node.Interactor.disease', + css: { + shape: 'round-hexagon', + 'background-color': this.p('global', 'negative'), + 'background-opacity': 0, + 'border-width': 0, + 'font-family': 'Roboto Mono, monospace', + color: this.p('global', 'onPrimary'), + 'text-wrap': 'ellipsis', + 'text-max-width': (node: cytoscape.NodeSingular) => node.width() - 40 + 'px', + }, + }, + { selector: 'node.Protein', - style: { - "shape": "round-rectangle", - "background-color": this.p('protein', 'fill') - } - }, { + css: { + shape: 'round-rectangle', + 'background-color': this.p('protein', 'fill'), + }, + }, + { selector: 'node.Protein.drug', - style: { - "background-color": this.p('protein', 'drug') - } - }, { + css: { + 'background-color': this.p('protein', 'drug'), + }, + }, + { selector: 'node.GenomeEncodedEntity', - style: { - "shape": "round-rectangle", - "background-opacity": 0, - "background-color": this.p('genomeEncodedEntity', 'fill'), - "text-margin-y": this.pm('genomeEncodedEntity', 'topRadius', r => r / 10), - "border-width": 0 // Avoid disease border - } - }, { + css: { + shape: 'round-rectangle', + 'background-opacity': 0, + 'background-color': this.p('genomeEncodedEntity', 'fill'), + 'text-margin-y': this.pm('genomeEncodedEntity', 'topRadius', (r) => r / 10), + 'border-width': 0, // Avoid disease border + }, + }, + { selector: 'node.RNA', - style: { - "shape": "bottom-round-rectangle", - "background-color": this.p('rna', 'fill'), - } - }, { + css: { + shape: 'bottom-round-rectangle', + 'background-color': this.p('rna', 'fill'), + }, + }, + { selector: 'node.RNA.drug', - style: { - "background-color": this.p('rna', 'drug'), - } - }, { + css: { + 'background-color': this.p('rna', 'drug'), + }, + }, + { selector: 'node.Gene', - style: { - "shape": "bottom-round-rectangle", - "background-opacity": 0, - "background-color": this.p('gene', 'fill'), - "bounds-expansion": this.p('gene', 'decorationExtraWidth'), - "text-margin-y": this.pm('gene', 'decorationHeight', h => h / 2), - "border-width": 0 // Avoid disease border - } - }, { + css: { + shape: 'bottom-round-rectangle', + 'background-opacity': 0, + 'background-color': this.p('gene', 'fill'), + 'bounds-expansion': this.p('gene', 'decorationExtraWidth'), + 'text-margin-y': this.pm('gene', 'decorationHeight', (h) => h / 2), + 'border-width': 0, // Avoid disease border + }, + }, + { selector: 'node.Molecule', - style: { - "shape": 'round-rectangle', - "color": this.p("molecule", 'stroke'), - "background-color": this.p("molecule", 'fill'), - "border-color": this.p("molecule", 'stroke'), - "border-width": this.p("global", 'thickness'), - // @ts-ignore - "corner-radius": (node: cytoscape.NodeSingular) => Math.min(node.data('width'), node.data('height')) / 2, - } - }, { + css: { + shape: 'round-rectangle', + color: this.p('molecule', 'stroke'), + 'background-color': this.p('molecule', 'fill'), + 'border-color': this.p('molecule', 'stroke'), + 'border-width': this.p('global', 'thickness'), + // @ts-expect-error + 'corner-radius': (node: cytoscape.NodeSingular) => + Math.min(node.data('width'), node.data('height')) / 2, + }, + }, + { selector: 'node.Molecule.drug', - style: { - "color": this.p("molecule", 'drug'), - "border-color": this.p("molecule", 'drug'), - } - }, { + css: { + color: this.p('molecule', 'drug'), + 'border-color': this.p('molecule', 'drug'), + }, + }, + { selector: 'node.Molecule.Interactor', - style: { - "border-color": this.p("interactor", 'fill'), - } - }, { + css: { + 'border-color': this.p('interactor', 'fill'), + }, + }, + { selector: 'node.EntitySet', - style: { - "background-opacity": 0, - "shape": "round-rectangle", - "border-width": 0, // Avoid disease border - "text-max-width": (node: cytoscape.NodeSingular) => - this.pm('global', 'thickness', t => - this.pm('entitySet', 'radius', r => `${node.width() - 2 * r - 6 * t}px` - ) - ) - } - }, { + css: { + 'background-opacity': 0, + shape: 'round-rectangle', + 'border-width': 0, // Avoid disease border + 'text-max-width': (node: cytoscape.NodeSingular) => + this.pm('global', 'thickness', (t) => + this.pm('entitySet', 'radius', (r) => `${node.width() - 2 * r - 6 * t}px`) + ), + }, + }, + { selector: 'node.EntitySet.drug', - style: { - "text-max-width": (node: cytoscape.NodeSingular) => - this.pm('global', 'thickness', t => - this.pm('entitySet', 'radius', r => `${node.width() - 2 * r - 6 * t - 44}px` - ) - ) - } - }, { + css: { + 'text-max-width': (node: cytoscape.NodeSingular) => + this.pm('global', 'thickness', (t) => + this.pm('entitySet', 'radius', (r) => `${node.width() - 2 * r - 6 * t - 44}px`) + ), + }, + }, + { selector: 'node.Complex', - style: { - "shape": "cut-rectangle", - "text-max-width": (node: cytoscape.NodeSingular) => this.pm('global', 'thickness', t => (node.width() - t * 6) + 'px'), - "background-opacity": 0, - "border-width": 0, // Avoid disease border + css: { + shape: 'cut-rectangle', + 'text-max-width': (node: cytoscape.NodeSingular) => + this.pm('global', 'thickness', (t) => node.width() - t * 6 + 'px'), + 'background-opacity': 0, + 'border-width': 0, // Avoid disease border // "background-color": this.p("complex", 'fill'), // "width": (node: cytoscape.NodeSingular) => this.pm('global', 'thickness', t => node.data('width') - 2 * t) , // "height": (node: cytoscape.NodeSingular) => this.pm('global', 'thickness', t => node.data('height') - 2 * t) , - // // @ts-ignore + // // @ts-expect-error // "corner-radius": this.pm('complex', 'cut', c => c), // "outline-width": this.p('global', 'thickness'), // "outline-color": this.p('complex', 'fill'), @@ -341,498 +396,521 @@ export class Style { // "border-join": 'round', // "border-color": this.p('complex', 'stroke'), // "border-width": this.p('global', 'thickness'), - } - }, { + }, + }, + { selector: 'node.Complex.drug', - style: { - "text-margin-x": 4, - "text-max-width": (node: cytoscape.NodeSingular) => this.pm('global', 'thickness', t => (node.width() - t * 6 - 44) + 'px') - } - }, { + css: { + 'text-margin-x': 4, + 'text-max-width': (node: cytoscape.NodeSingular) => + this.pm('global', 'thickness', (t) => node.width() - t * 6 - 44 + 'px'), + }, + }, + { selector: 'node.Cell', - style: { - "background-opacity": 0, - "shape": "round-rectangle", - // @ts-ignore - "corner-radius": 999999, - "border-width": 0, // Avoid disease border + css: { + 'background-opacity': 0, + shape: 'round-rectangle', + // @ts-expect-error + 'corner-radius': 999999, + 'border-width': 0, // Avoid disease border - "text-max-width": (node: cytoscape.NodeSingular) => - this.pm('global', 'thickness', t => this.pm('cell', 'thickness', ct => (node.width() - t * 2 - ct * 2) + 'px')) - } + 'text-max-width': (node: cytoscape.NodeSingular) => + this.pm('global', 'thickness', (t) => + this.pm('cell', 'thickness', (ct) => node.width() - t * 2 - ct * 2 + 'px') + ), + }, }, { selector: 'node.Pathway', - style: { - "background-color": this.p('pathway', 'fill'), - "text-margin-x": 18, - } + css: { + 'background-color': this.p('pathway', 'fill'), + 'text-margin-x': 18, + 'border-color': this.p('pathway', 'stroke'), + 'border-position': 'inside', + 'border-width': this.pm('global', 'thickness', (t) => 3 * t), + }, }, { selector: 'node.Interacting.Pathway', - style: { - "shape": "rectangle", - "border-color": this.p('pathway', 'stroke'), - "border-width": this.pm('global', 'thickness', t => 3 * t), - // @ts-ignore - "border-position": "inside", - "text-max-width": (node: cytoscape.NodeSingular) => - this.pm('global', 'thickness', t => `${node.width() - (6 * t + 36) * 2}px` - ), - } + css: { + shape: 'rectangle', + 'text-max-width': (node: cytoscape.NodeSingular) => + this.pm('global', 'thickness', (t) => `${node.width() - (6 * t + 36) * 2}px`), + }, }, { selector: 'node.SUB.Pathway', - style: { - "background-opacity": 0, - "shape": 'round-rectangle', - "text-max-width": (node: cytoscape.NodeSingular) => - this.pm('global', 'thickness', t => `${node.width() - (6 * t + 36) * 2}px` - ), - } - }, { + css: { + //@ts-expect-error + 'corner-radius': 99999, + shape: 'round-rectangle', + 'text-max-width': (node: cytoscape.NodeSingular) => + this.pm('global', 'thickness', (t) => `${node.width() - (6 * t + 36) * 2}px`), + }, + }, + { selector: 'node.Pathway.disease', - style: { - "border-color": this.p('global', 'negativeContrast'), - "color": this.p('global', 'negativeContrast'), - } - }, { - selector: 'node.Modification', - style: { - "background-color": this.p('modification', 'fill'), - "shape": 'round-rectangle' - } + css: { + 'border-color': this.p('global', 'negativeContrast'), + color: this.p('global', 'negativeContrast'), + }, }, { - selector: 'node.loss-of-function', - style: { - "border-style": 'dashed', - //@ts-ignore - "border-dash-pattern": this.pm('global', 'thickness', t => [t, t * 2]), - "border-cap": "round" - } + selector: 'node.Modification', + css: { + 'background-color': this.p('modification', 'fill'), + shape: 'round-rectangle', + }, }, - { selector: 'node.reaction', - style: { - "width": this.pm('global', 'thickness', t => t * 6), - "height": this.pm('global', 'thickness', t => t * 6), - "shape": "round-rectangle", - "text-halign": "center", - "text-valign": "center", - "border-width": this.p('global', 'thickness'), - "border-color": this.p('global', 'onSurface'), - "color": this.p('global', 'onSurface'), - "background-color": this.p('global', 'surface'), - } - }, { + css: { + width: this.pm('global', 'thickness', (t) => t * 6), + height: this.pm('global', 'thickness', (t) => t * 6), + shape: 'round-rectangle', + 'text-halign': 'center', + 'text-valign': 'center', + 'border-width': this.p('global', 'thickness'), + 'border-color': this.p('global', 'onSurface'), + color: this.p('global', 'onSurface'), + 'background-color': this.p('global', 'surface'), + }, + }, + { selector: 'node.reaction[?displayName]', - style: { - "label": "data(displayName)", - "font-weight": 400, - "text-valign": "top", - "text-margin-y": -5, - } - }, { + css: { + label: 'data(displayName)', + 'font-weight': 400, + 'text-valign': 'top', + 'text-margin-y': -5, + 'font-size': this.p('font', 'size'), + }, + }, + { selector: 'node.reaction.hover', - style: { - "border-width": this.pm('global', 'thickness', t => t * 1), - "border-color": this.p('global', 'hoverEdge'), - } - }, { + css: { + 'border-width': this.pm('global', 'thickness', (t) => t * 1), + 'border-color': this.p('global', 'hoverEdge'), + }, + }, + { selector: 'node.reaction:selected', - style: { - "border-width": this.pm('global', 'thickness', t => t * 1.5), - "border-color": this.p('global', 'selectEdge'), - } - }, { - selector: 'node.reaction.flag', - style: { - // @ts-ignore - "outline-width": this.pm('global', 'thickness', t => t * 1.5), - "outline-color": this.p('global', 'flag'), - } - }, { - selector: 'node.association', - style: { - "shape": "ellipse", - "background-color": this.p('global', 'onSurface'), - } - }, { - selector: 'node.dissociation', - style: { - "shape": "ellipse", - "border-style": "double", - "border-width": this.pm('global', 'thickness', t => 3 * t) - } - }, { - selector: 'node.uncertain', - style: { - "label": "?", - "text-valign": "center", - "text-margin-y": 0, - "font-weight": 600 - } - }, { - selector: 'node.omitted', - style: { - "background-image": OMMITED_ICON(this.properties), - "background-fit": "cover", - "background-height": "100%", - "background-width": "100%", - } + css: { + 'border-width': this.pm('global', 'thickness', (t) => t * 1.5), + 'border-color': this.p('global', 'selectEdge'), + }, }, { - selector: 'node.InteractorOccurrences', - style: { - 'label': 'data(displayName)', - 'color': this.p('global', 'surface'), - "shape": "ellipse", - "text-valign": "center", - "text-halign": "center", - "text-wrap": 'wrap', - "background-color": this.p('interactor', 'fill') - } + selector: 'node.reaction.flag', + css: { + 'outline-width': this.pm('global', 'thickness', (t) => t * 1.5), + 'outline-color': this.p('global', 'flag'), + }, }, { - selector: 'node.InteractorOccurrences.Disease', - style: { - "background-color": this.p('global', 'negative') - } + selector: 'node.association', + css: { + shape: 'ellipse', + 'background-color': this.p('global', 'onSurface'), + }, }, { - selector: 'node.InteractorOccurrences.hover', - style: { - "border-width": this.pm('global', 'thickness', t => t * 1), - "border-color": this.p('global', 'hoverNode'), - } + selector: 'node.dissociation', + css: { + shape: 'ellipse', + 'border-style': 'double', + 'border-width': this.pm('global', 'thickness', (t) => 3 * t), + }, }, { - selector: 'node.InteractorOccurrences.select', - style: { - "border-width": this.pm('global', 'thickness', t => t * 1), - "border-color": this.p('global', 'selectNode'), - } + selector: 'node.uncertain', + css: { + label: '?', + 'text-valign': 'center', + 'text-margin-y': 0, + 'font-weight': 600, + }, }, { - selector: 'node.Interactor', - style: { - "label": "data(displayName)", - "font-family": "Roboto Mono, monospace", - "border-color": this.p('interactor', 'stroke'), - "text-wrap": "ellipsis", - } - }, - { - selector: 'node.RNA.Interactor, node.Protein.Interactor', - style: { - "border-color": this.p('interactor', 'fill'), - "border-width": this.p('global', 'thickness'), - - } + selector: 'node.omitted', + css: { + 'background-image': OMMITED_ICON(this.properties), + 'background-fit': 'cover', + 'background-height': '100%', + 'background-width': '100%', + }, }, { - selector: 'node.Molecule.Interactor', - style: { - "color": this.p("molecule", 'stroke'), - "background-color": this.p("molecule", 'fill'), - "border-color": this.p("interactor", 'stroke'), - "border-width": this.p("global", 'thickness'), - // @ts-ignore - "corner-radius": (node: cytoscape.NodeSingular) => Math.min(node.data('width'), node.data('height')) / 2, - } + selector: 'node.loss-of-function', + css: { + 'border-style': 'dashed', + 'border-dash-pattern': this.pm('global', 'thickness', (t) => [t, t * 2]), + 'border-cap': 'round', + }, }, + // { - // selector: 'node.Interactor.Disease', - // style: { - // "shape": "round-hexagon", - // "background-color": this.p('global', 'negative'), - // "color": this.p('global', 'onPrimary'), - // "border-width": 0, - // "width": "data(width)", - // "height": "data(height)", - // "text-halign": 'center', - // "text-valign": 'center', - // "text-max-width": (node: cytoscape.NodeSingular) => (node.width() - 40) + 'px', + // selector: 'node.RNA.Interactor, node.Protein.Interactor', + // css: { + // "border-color": this.p('interactor', 'fill'), + // "border-width": this.p('global', 'thickness'), + // + // } + // }, + // { + // selector: 'node.Molecule.Interactor', + // css: { + // "color": this.p("molecule", 'stroke'), + // "background-color": this.p("molecule", 'fill'), + // "border-color": this.p("interactor", 'stroke'), + // "border-width": this.p("global", 'thickness'), + // // @ts-expect-error + // "corner-radius": (node: cytoscape.NodeSingular) => Math.min(node.data('width'), node.data('height')) / 2, // } // }, - { - selector: 'node.DiseaseInteractor', - style: { - "shape": "round-hexagon", - "background-color": this.p('global', 'negative'), - "color": this.p('global', 'onPrimary'), - "border-width": 0, - "width": "data(width)", - "height": "data(height)", - "text-halign": 'center', - "text-valign": 'center', - "text-max-width": (node: cytoscape.NodeSingular) => (node.width() - 60) + 'px', - } - }, - { - selector: 'node.input_output', - style: { - "shape": "ellipse", - "width": this.pm('global', 'thickness', t => t * 4), - "height": this.pm('global', 'thickness', t => t * 4), - } - }, - { selector: 'edge', - style: { - "curve-style": "straight", - "line-cap": "round", - "source-endpoint": "outside-to-node", - "arrow-scale": 1.5, + css: { + 'curve-style': 'straight', + 'line-cap': 'round', + 'source-endpoint': 'outside-to-node', + 'arrow-scale': 1.5, - 'width': this.p('global', 'thickness'), - 'color': this.p('global', 'onSurface'), + width: this.p('global', 'thickness'), + color: this.p('global', 'onSurface'), 'line-color': this.p('global', 'onSurface'), 'target-arrow-color': this.p('global', 'onSurface'), 'mid-source-arrow-color': this.p('global', 'onSurface'), 'mid-target-arrow-color': this.p('global', 'onSurface'), 'source-arrow-color': this.p('global', 'onSurface'), - // @ts-ignore + // @ts-expect-error 'source-arrow-width': '100%', - // @ts-ignore 'target-arrow-width': '100%', - } - }, { + 'font-size': this.p('font', 'size'), + }, + }, + { selector: 'edge.disease', - style: { - "color": this.p('global', 'negative'), - "line-color": this.p('global', 'negative'), - "border-color": this.p('global', 'negative'), + css: { + color: this.p('global', 'negative'), + 'line-color': this.p('global', 'negative'), + 'border-color': this.p('global', 'negative'), 'target-arrow-color': this.p('global', 'negative'), 'source-arrow-color': this.p('global', 'negative'), - } - }, { - selector: "edge.hover", - style: { - "line-color": this.p('global', 'hoverEdge'), - "width": this.pm('global', 'thickness', t => t * 1.5), - "arrow-scale": 1, - "source-arrow-color": this.p('global', 'hoverEdge'), - "target-arrow-color": this.p('global', 'hoverEdge'), - // @ts-ignore + }, + }, + { + selector: 'edge.hover', + css: { + 'line-color': this.p('global', 'hoverEdge'), + width: this.pm('global', 'thickness', (t) => t * 1.5), + 'arrow-scale': 1, + 'source-arrow-color': this.p('global', 'hoverEdge'), + 'target-arrow-color': this.p('global', 'hoverEdge'), + // @ts-expect-error 'source-arrow-width': '50%', - // @ts-ignore 'target-arrow-width': '50%', - "z-index": 2 - } - }, { - selector: "edge:selected", - style: { - "line-color": this.p('global', 'selectEdge'), - "width": this.pm('global', 'thickness', t => t * 2), - "arrow-scale": 1, - "source-arrow-color": this.p('global', 'selectEdge'), - "target-arrow-color": this.p('global', 'selectEdge'), - // @ts-ignore + 'z-index': 2, + }, + }, + { + selector: 'edge:selected', + css: { + 'line-color': this.p('global', 'selectEdge'), + width: this.pm('global', 'thickness', (t) => t * 2), + 'arrow-scale': 1, + 'source-arrow-color': this.p('global', 'selectEdge'), + 'target-arrow-color': this.p('global', 'selectEdge'), + // @ts-expect-error 'source-arrow-width': '50%', - // @ts-ignore 'target-arrow-width': '50%', - "z-index": 3 - } + 'z-index': 3, + }, }, { selector: 'edge.consumption', - style: {"target-endpoint": "inside-to-node", "source-endpoint": "outside-to-node"} - } - , { + css: { + 'target-endpoint': 'inside-to-node', + 'source-endpoint': 'outside-to-node', + }, + }, + { selector: 'edge.production', - style: {'target-arrow-shape': 'triangle'} - }, { + css: { 'target-arrow-shape': 'triangle' }, + }, + { selector: 'edge.catalysis', - style: { + css: { 'target-arrow-shape': 'circle', - "target-arrow-fill": "hollow", - "target-arrow-color": this.p('global', 'positive') - } - }, { + 'target-arrow-fill': 'hollow', + 'target-arrow-color': this.p('global', 'positive'), + }, + }, + { selector: 'edge.positive-regulation', - style: { + css: { 'target-arrow-shape': 'triangle', - "target-arrow-fill": "hollow", - "target-arrow-color": this.p('global', 'positive') - } - }, { + 'target-arrow-fill': 'hollow', + 'target-arrow-color': this.p('global', 'positive'), + }, + }, + { selector: 'edge.negative-regulation', - style: { + css: { 'target-arrow-shape': 'tee', - "line-cap": "butt", - "source-endpoint": "inside-to-node", - "target-arrow-color": this.p('global', 'negative') - } - }, { + 'line-cap': 'butt', + 'source-endpoint': 'inside-to-node', + 'target-arrow-color': this.p('global', 'negative'), + }, + }, + { selector: 'edge.set-to-member', - style: {'target-arrow-shape': 'circle', "line-style": "dashed", "line-dash-pattern": [6, 10], "opacity": 0.5} - }, { + css: { + 'target-arrow-shape': 'circle', + 'line-style': 'dashed', + 'line-dash-pattern': [6, 10], + opacity: 0.5, + }, + }, + { selector: 'edge[stoichiometry > 1]', - style: { - "text-background-color": this.p('global', 'surface'), - "text-background-opacity": 1, - "text-border-width": this.pm('global', 'thickness', t => t / 2), - "text-border-opacity": 1, - "text-border-color": this.p('global', 'onSurface'), - "text-background-shape": 'roundrectangle', - "text-background-padding": this.pm('global', 'thickness', t => t + 'px'), - } - }, { + css: { + 'text-background-color': this.p('global', 'surface'), + 'text-background-opacity': 1, + 'text-border-width': this.pm('global', 'thickness', (t) => t / 2), + 'text-border-opacity': 1, + 'text-border-color': this.p('global', 'onSurface'), + 'text-background-shape': 'roundrectangle', + 'text-background-padding': this.pm('global', 'thickness', (t) => t + 'px'), + }, + }, + { selector: 'edge[stoichiometry > 1].incoming', - style: { - "source-label": "data(stoichiometry)", - "source-text-offset": 30, - } - }, { + css: { + 'source-label': 'data(stoichiometry)', + 'source-text-offset': 30, + }, + }, + { selector: 'edge[stoichiometry > 1].outgoing', - style: { - "target-label": "data(stoichiometry)", - "target-text-offset": 35, - } - }, { - selector: "edge.shadow[?color]", - style: { - // @ts-ignore - "underlay-color": "data(color)", - "underlay-padding": 20, - "underlay-opacity": this.pm('shadow', 'opacity', o => o[0][1] / 100), - } - }, { - selector: "edge.flag", - style: { - // @ts-ignore - "underlay-color": this.p('global', 'flag'), - "underlay-padding": 10, - "underlay-opacity": 1, - } - }, { - selector: "edge[?weights]", - style: { - // @ts-ignore - "curve-style": (ele) => ele.data('curveStyle') || 'round-segments', - "segment-distances": "data(distances)", - "segment-weights": "data(weights)", - "segment-radius": 30, - "radius-type": 'influence-radius', - // @ts-ignore - "edge-distances": "endpoints", - } - }, { - selector: "edge[?sourceEndpoint]", - style: { - // @ts-ignore - "source-endpoint": "data(sourceEndpoint)", - } - }, { - selector: "edge[?targetEndpoint]", - style: { - // @ts-ignore - "target-endpoint": "data(targetEndpoint)", - } - }, { - selector: "edge[?sourceLabel]", - style: { - "source-label": "data(sourceLabel)", - "source-text-margin-y": -12, - "font-weight": 400 - } - }, { - selector: "edge[?label]", - style: { - "label": "data(label)", - "text-margin-y": 12, - "font-weight": 400 - } + css: { + 'target-label': 'data(stoichiometry)', + 'target-text-offset': 35, + }, + }, + { + selector: 'edge.shadow[?color]', + css: { + 'underlay-color': 'data(color)', + 'underlay-padding': this.p('shadow', 'padding'), + 'underlay-opacity': this.pm('shadow', 'opacity', (o) => o[0][1] / 100), + }, + }, + { + selector: 'edge.flag', + css: { + 'underlay-color': this.p('global', 'flag'), + 'underlay-padding': 10, + 'underlay-opacity': 1, + }, + }, + // Pointing at a reaction or sub-pathway in the hierarchy. No highlight + // colour can be told apart from the sub-pathway tints -- they are spread + // around the whole hue wheel, so green, yellow or any other colour is one + // of them in some diagram. So everything else fades instead, and the + // pointed-at element keeps its own colours at full strength, drawn thicker. + // (The sub-pathway bands are written inline by the zoom handler, so their + // part of this is done there -- see Interactivity.initZoom.) + { + selector: '.hierarchy-dim', + css: { + opacity: 0.2, + }, + }, + + { + selector: 'edge.hierarchy-hover', + css: { + width: this.pm('global', 'thickness', (t) => t * 3), + 'z-index': 4, + }, + }, + + { + selector: 'node.reaction.hierarchy-hover', + css: { + 'border-width': this.pm('global', 'thickness', (t) => t * 2), + 'z-index': 4, + }, + }, + { + selector: 'edge[?weights]', + css: { + 'curve-style': 'round-segments', + 'segment-distances': 'data(distances)', + 'segment-weights': 'data(weights)', + 'segment-radius': 30, + 'radius-type': 'influence-radius', + // @ts-expect-error + 'edge-distances': 'endpoints', + }, + }, + { + selector: 'edge[?sourceEndpoint]', + css: { + 'source-endpoint': 'data(sourceEndpoint)', + }, + }, + { + selector: 'edge[?targetEndpoint]', + css: { + 'target-endpoint': 'data(targetEndpoint)', + }, + }, + { + selector: 'edge[?sourceLabel]', + css: { + 'source-label': 'data(sourceLabel)', + 'source-text-margin-y': -14, + 'font-weight': 400, + }, + }, + { + selector: 'edge.left-label', + css: { + 'source-text-margin-x': 5, + }, + }, + { + selector: 'edge.right-label', + css: { + 'source-text-margin-x': -5, + }, + }, + { + selector: 'edge[?label]', + css: { + label: 'data(label)', + 'text-margin-y': 14, + 'font-weight': 400, + }, }, { selector: 'edge.Interactor', - style: { + css: { 'line-color': this.p('interactor', 'stroke'), 'line-style': 'dashed', - 'line-dash-pattern': [1, 8] - } + 'line-dash-pattern': [1, 8], + }, }, { - selector: 'edge.DiseaseInteractor', - style: { + selector: 'edge.Interactor.disease', + css: { 'line-color': this.p('global', 'negativeContrast'), - } + }, + }, + { + selector: 'edge.Interactor.hover', + css: { + 'line-color': this.p('global', 'hoverEdge'), + }, + }, + { + selector: 'edge[?sourceOffset]', + css: { + // @ts-expect-error + 'source-text-offset': 'data(sourceOffset)', + }, + }, + { + selector: '[?labelColor]', + css: { + color: (e: cytoscape.EdgeSingular) => extract(this.p('global', e.data('labelColor'))), + }, }, { - selector: 'edge.Interactor.hover, edge.DiseaseInteractor.hover', - style: { - "line-color": this.p('global', 'hoverEdge') - } + selector: 'node.debug', + css: { + label: 'data(id)', + 'text-outline-width': 4, + 'text-outline-color': 'black', + 'text-outline-opacity': 1, + color: 'white', + }, }, { - selector: "edge[?sourceOffset]", - style: { - // @ts-ignore - "source-text-offset": "data(sourceOffset)", - } + selector: '[?exp]', + css: { + color: this.p('global', 'surface'), + 'text-outline-width': 2, + 'text-outline-color': this.p('global', 'onSurface'), + 'text-outline-opacity': 1, + }, }, { - selector: "[?labelColor]", - style: { - "color": (e: cytoscape.EdgeSingular) => extract(this.p('global', e.data("labelColor"))) - } - }, { - selector: "node.debug", - style: { - label: "data(id)", - "text-outline-width": 4, - "text-outline-color": 'black', - "text-outline-opacity": 1, - color: 'white' - } + selector: '[?exp].Molecule', + css: { + 'background-color': this.p('global', 'onSurface'), + }, }, { - selector: "node.Legend.Label", - style: { - "label": "data(displayName)", - "text-halign": "center", - "text-valign": "center", - "font-size": 24, - "font-weight": 400, - "background-opacity": 0, - "color": this.p('global', 'onSurface') - } - }, - { - selector: "node.Legend.Placeholder", - style: { - "background-opacity": 0, - "border-opacity": 0, + selector: 'node.Legend.Label', + css: { + label: 'data(displayName)', + 'text-halign': 'center', + 'text-valign': 'center', + 'font-size': 24, + 'font-weight': 400, + 'background-opacity': 0, + color: this.p('global', 'onSurface'), + }, + }, + { + selector: 'node.Legend.Placeholder', + css: { + 'background-opacity': 0, + 'border-opacity': 0, width: 20, height: 20, - shape: "rectangle" - } + shape: 'rectangle', + }, }, { - selector: "node.Legend.Placeholder[?displayName]", - style: { - "label": "data(displayName)", - "font-weight": 400, - } + selector: 'node.Legend.Placeholder[?displayName]', + css: { + label: 'data(displayName)', + 'font-size': this.p('font', 'size'), + 'font-weight': 400, + }, }, { selector: '.trivial', - style: { - 'opacity': 0, - } - }, - ] + css: { + opacity: 0, + }, + }, + // Flagging switches trivial molecules from "fade in as you zoom" to + // "always visible", and it does that by detaching the zoom handler. That + // leaves nothing to recompute their opacity, so their visibility cannot + // rest on an inline style -- anything that drops it strands them at the + // rule above, invisible however far the user zooms in, while their + // chemical structures carry on being drawn by a different handler. A + // class survives restyling, and this rule follows .trivial so it wins. + { + selector: '.trivial.always-visible', + css: { + opacity: 1, + }, + }, + ]; } clearCache() { - this.imageBuilder.cache.clear!() + this.imageBuilder.cache.clear!(); clearDrawersCache(); } @@ -840,6 +918,12 @@ export class Style { this.clearCache(); cy.style(this.getStyleSheet()); this.initSubPathwayColors(); - this.interactivity.triggerZoom() + this.interactivity.triggerZoom(); + } + + loadAnalysis(cy: cytoscape.Core, palette: Scale) { + this.currentPalette = palette; + resetGradients(); + this.update(cy); } } diff --git a/projects/ngx-reactome-cytoscape-style/src/lib/types.ts b/projects/ngx-reactome-cytoscape-style/src/lib/types.ts index 5380b7f..f3798be 100644 --- a/projects/ngx-reactome-cytoscape-style/src/lib/types.ts +++ b/projects/ngx-reactome-cytoscape-style/src/lib/types.ts @@ -4,25 +4,19 @@ export type PhysicalEntity = SimpleEntity | ComposedEntity; export type PhysicalEntityDefinition = [PhysicalEntity, 'PhysicalEntity', ...string[]]; export type PathwayEntity = 'Interacting' | 'SUB'; export type PathwayEntityDefinition = [PathwayEntity, 'Pathway', ...string[]]; -export type DiseaseInteractorEntity = 'DiseaseInteractor'; +export type DiseaseInteractorEntity = 'Interactor'; export type Node = PhysicalEntity | PathwayEntity | DiseaseInteractorEntity; -export type NodeDefinition = PathwayEntityDefinition | PhysicalEntityDefinition ; +export type NodeDefinition = PathwayEntityDefinition | PhysicalEntityDefinition; export type CompartmentDefinition = ['Compartment', ...string[]]; export type ModificationDefinition = ['Modification', ...string[]]; - export type Reaction = 'association' | 'dissociation' | 'transition' | 'uncertain' | 'omitted'; export type ReactionDefinition = [Reaction, 'reaction', ...string[]]; - export type IncomingEdge = - 'consumption' - | 'catalysis' - | 'positive-regulation' - | 'negative-regulation' - | 'set-to-member'; + 'consumption' | 'catalysis' | 'positive-regulation' | 'negative-regulation' | 'set-to-member'; export type OutgoingEdge = 'production'; export type EdgeType = IncomingEdge | OutgoingEdge; export type IncomingEdgeDefinition = [IncomingEdge, 'incoming', ...string[]]; diff --git a/projects/ngx-reactome-cytoscape-style/src/public-api.ts b/projects/ngx-reactome-cytoscape-style/src/public-api.ts index 3490c7a..be1ea09 100644 --- a/projects/ngx-reactome-cytoscape-style/src/public-api.ts +++ b/projects/ngx-reactome-cytoscape-style/src/public-api.ts @@ -2,9 +2,10 @@ * Public API Surface of reactome-cytoscape-style */ - export {Style} from './lib/style'; - export {UserProperties} from './lib/properties'; - export {Interactivity} from './lib/interactivity'; - export * as Types from './lib/types'; - export {ReactomeEvent, ReactomeEventTarget, ReactomeEventTypes} from './lib/model/reactome-event.model'; - +export { Style, interactivityOf } from './lib/style'; +export type { UserProperties } from './lib/properties'; +export { Interactivity, INTERACTOR_BADGE_MIN_ZOOM } from './lib/interactivity'; +export * as Types from './lib/types'; +export { ReactomeEvent, ReactomeEventTypes } from './lib/model/reactome-event.model'; +export type { ReactomeEventTarget } from './lib/model/reactome-event.model'; +export { extract, propertyExtractor } from './lib/properties-utils'; diff --git a/projects/ngx-reactome-cytoscape-style/tsconfig.lib.json b/projects/ngx-reactome-cytoscape-style/tsconfig.lib.json index 04fbfad..a908031 100644 --- a/projects/ngx-reactome-cytoscape-style/tsconfig.lib.json +++ b/projects/ngx-reactome-cytoscape-style/tsconfig.lib.json @@ -7,8 +7,16 @@ "declarationMap": true, "inlineSources": true, "types": [], + "typeRoots": ["../../node_modules/@types"], + "module": "ES2022", + "target": "ES2022" }, - "exclude": [ - "**/*.spec.ts" - ] + "exclude": ["**/*.spec.ts"], + "angularCompilerOptions": { + "compilationMode": "partial", + "enableI18nLegacyMessageIdFormat": false, + "strictInjectionParameters": true, + "strictInputAccessModifiers": true, + "strictTemplates": true + } } diff --git a/projects/ngx-reactome-cytoscape-style/types/cytoscape/index.d.ts b/projects/ngx-reactome-cytoscape-style/types/cytoscape/index.d.ts deleted file mode 100644 index b7fc318..0000000 --- a/projects/ngx-reactome-cytoscape-style/types/cytoscape/index.d.ts +++ /dev/null @@ -1,37 +0,0 @@ -// /// -// import {Reactome} from "../../src/lib/reactome-style"; -// import cytoscape from 'cytoscape'; -// import ReactionDefinition = Reactome.ReactionDefinition; -// import PhysicalEntityDefinition = Reactome.PhysicalEntityDefinition; -// import EdgeTypeDefinition = Reactome.EdgeTypeDefinition; -// -// -// declare module 'cytoscape' { -// // import PhysicalEntityDefinition = Reactome.PhysicalEntityDefinition; -// // import ReactionDefinition = Reactome.ReactionDefinition; -// // import EdgeTypeDefinition = Reactome.EdgeTypeDefinition; -// -// -// // export interface ElementDefinition { -// // classes: PhysicalEntityDefinition | ReactionDefinition | EdgeTypeDefinition | string[] | string | undefined; -// // } -// -// export interface NodeDefinition extends cytoscape.ElementDefinition { -// classes: PhysicalEntityDefinition | ReactionDefinition | string[] | string | undefined; -// } -// -// export interface EdgeDefinition extends cytoscape.ElementDefinition { -// classes: EdgeTypeDefinition | string[] | string | undefined; -// } -// -// // export namespace Css { -// // interface BackgroundImage extends cytoscape.Css.BackgroundImage { -// // "background-image"?: PropertyValueNode | PropertyValueNode; -// // "background-"?: PropertyValueNode | PropertyValueNode; -// // } -// // } -// -// } -// -// -// diff --git a/projects/ngx-reactome-style/README.md b/projects/ngx-reactome-style/README.md index 32de926..d86ed9d 100644 --- a/projects/ngx-reactome-style/README.md +++ b/projects/ngx-reactome-style/README.md @@ -5,7 +5,8 @@ This library was generated with [Angular CLI](https://github.com/angular/angular ## Code scaffolding Run `ng generate component component-name --project ngx-reactome-style` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module --project ngx-reactome-style`. -> Note: Don't forget to add `--project ngx-reactome-style` or else it will be added to the default project in your `angular.json` file. + +> Note: Don't forget to add `--project ngx-reactome-style` or else it will be added to the default project in your `angular.json` file. ## Build diff --git a/projects/ngx-reactome-style/package.json b/projects/ngx-reactome-style/package.json index c1ffee0..8cd6830 100644 --- a/projects/ngx-reactome-style/package.json +++ b/projects/ngx-reactome-style/package.json @@ -1,13 +1,9 @@ { "name": "ngx-reactome-style", - "version": "0.0.19", + "version": "0.1.0", + "description": "Shared Reactome Angular Material theme (Sass only).", "peerDependencies": { - "@angular/common": "^19.1.2", - "@angular/core": "^19.1.2", - "@angular/material": "^19.1.2" - }, - "dependencies": { - "tslib": "^2.3.0" + "@angular/material": ">=19.0.0" }, "sideEffects": false } diff --git a/projects/ngx-reactome-style/src/assets/_index.scss b/projects/ngx-reactome-style/src/assets/_index.scss index fd87306..309d262 100644 --- a/projects/ngx-reactome-style/src/assets/_index.scss +++ b/projects/ngx-reactome-style/src/assets/_index.scss @@ -1,39 +1,45 @@ //// Custom Theming for Angular Material //// For more information: https://material.angular.io/guide/theming @use '@angular/material' as mat; -@use "theme-colors" as colors; -@use "variables"; +@use 'theme-colors' as colors; +@use 'variables'; -@mixin theme() { - :root { +// The selectors are parameters for the embeddable diagram, whose theme lives on +// its shadow host (:host, :host(.dark)) rather than on the partner's page. +@mixin theme($root: ':root', $dark: 'body.dark', $vars: 'body') { + #{$root} { color-scheme: light; - @include mat.theme(( - color: ( - primary: colors.$primary-palette, - tertiary: colors.$tertiary-palette, - theme-type: light - ), - typography: Roboto, - density: 0 - )); + @include mat.theme( + ( + color: ( + primary: colors.$primary-palette, + tertiary: colors.$tertiary-palette, + theme-type: light, + ), + typography: Roboto, + density: 0, + ) + ); font: var(--mat-sys-body-large); - }; + } - body.dark { + #{$dark} { color-scheme: dark; - @include mat.theme(( - color: ( - primary: colors.$primary-palette, - tertiary: colors.$tertiary-palette, - theme-type: dark - ), - typography: Roboto, - density: 0 - )); + @include mat.theme( + ( + color: ( + primary: colors.$primary-palette, + tertiary: colors.$tertiary-palette, + theme-type: dark, + ), + typography: Roboto, + density: 0, + ) + ); } .high-contrast { @include colors.high-contrast-overrides('color-scheme'); } - @include variables.variables(); + @include variables.variables($vars); } diff --git a/projects/ngx-reactome-style/src/assets/_theme-colors.scss b/projects/ngx-reactome-style/src/assets/_theme-colors.scss index e81f2a3..ea87526 100644 --- a/projects/ngx-reactome-style/src/assets/_theme-colors.scss +++ b/projects/ngx-reactome-style/src/assets/_theme-colors.scss @@ -129,7 +129,7 @@ $_palettes: ( $_rest: ( secondary: map.get($_palettes, secondary), neutral: map.get($_palettes, neutral), - neutral-variant: map.get($_palettes, neutral-variant), + neutral-variant: map.get($_palettes, neutral-variant), error: map.get($_palettes, error), ); @@ -151,54 +151,56 @@ $tertiary-palette: map.merge(map.get($_palettes, tertiary), $_rest); } @mixin high-contrast-overrides($theme-type) { - @include mat.theme-overrides(( - primary: _high-contrast-value(#00313f, #ddf4ff, $theme-type), - on-primary: _high-contrast-value(#ffffff, #000000, $theme-type), - primary-container: _high-contrast-value(#005065, #4ad1fe, $theme-type), - on-primary-container: _high-contrast-value(#ffffff, #000d13, $theme-type), - inverse-primary: _high-contrast-value(#5bd4ff, #004f64, $theme-type), - primary-fixed: _high-contrast-value(#005065, #baeaff, $theme-type), - primary-fixed-dim: _high-contrast-value(#003848, #5bd4ff, $theme-type), - on-primary-fixed: _high-contrast-value(#ffffff, #000000, $theme-type), - on-primary-fixed-variant: _high-contrast-value(#ffffff, #00141b, $theme-type), - secondary: _high-contrast-value(#00313f, #ddf4ff, $theme-type), - on-secondary: _high-contrast-value(#ffffff, #000000, $theme-type), - secondary-container: _high-contrast-value(#005065, #4ad1fe, $theme-type), - on-secondary-container: _high-contrast-value(#ffffff, #000d13, $theme-type), - secondary-fixed: _high-contrast-value(#005065, #baeaff, $theme-type), - secondary-fixed-dim: _high-contrast-value(#003848, #5bd4ff, $theme-type), - on-secondary-fixed: _high-contrast-value(#ffffff, #000000, $theme-type), - on-secondary-fixed-variant: _high-contrast-value(#ffffff, #00141b, $theme-type), - tertiary: _high-contrast-value(#002d54, #e9f0ff, $theme-type), - on-tertiary: _high-contrast-value(#ffffff, #000000, $theme-type), - tertiary-container: _high-contrast-value(#004a86, #9bc5ff, $theme-type), - on-tertiary-container: _high-contrast-value(#ffffff, #000c1d, $theme-type), - tertiary-fixed: _high-contrast-value(#004a86, #d3e4ff, $theme-type), - tertiary-fixed-dim: _high-contrast-value(#003460, #a3c9ff, $theme-type), - on-tertiary-fixed: _high-contrast-value(#ffffff, #000000, $theme-type), - on-tertiary-fixed-variant: _high-contrast-value(#ffffff, #001227, $theme-type), - background: _high-contrast-value(#effbff, #00161b, $theme-type), - on-background: _high-contrast-value(#001f25, #a6eeff, $theme-type), - surface: _high-contrast-value(#effbff, #00161b, $theme-type), - surface-dim: _high-contrast-value(#4fc8e0, #00161b, $theme-type), - surface-bright: _high-contrast-value(#effbff, #005866, $theme-type), - surface-container-lowest: _high-contrast-value(#ffffff, #000000, $theme-type), - surface-container: _high-contrast-value(#a6eeff, #00363f, $theme-type), - surface-container-high: _high-contrast-value(#70e4fd, #00424d, $theme-type), - surface-container-highest: _high-contrast-value(#60d6ee, #004e5b, $theme-type), - on-surface: _high-contrast-value(#000000, #ffffff, $theme-type), - shadow: _high-contrast-value(#000000, #000000, $theme-type), - scrim: _high-contrast-value(#000000, #000000, $theme-type), - surface-tint: _high-contrast-value(#006781, #5bd4ff, $theme-type), - inverse-surface: _high-contrast-value(#00363f, #a6eeff, $theme-type), - inverse-on-surface: _high-contrast-value(#ffffff, #000000, $theme-type), - outline: _high-contrast-value(#222e33, #e6f2f9, $theme-type), - outline-variant: _high-contrast-value(#3f4b50, #b8c4cb, $theme-type), - error: _high-contrast-value(#600004, #ffece9, $theme-type), - on-error: _high-contrast-value(#ffffff, #000000, $theme-type), - error-container: _high-contrast-value(#98000a, #ffaea4, $theme-type), - on-error-container: _high-contrast-value(#ffffff, #220001, $theme-type), - surface-variant: _high-contrast-value(#d8e4eb, #3d484e, $theme-type), - on-surface-variant: _high-contrast-value(#000000, #ffffff, $theme-type), - )) - } + @include mat.theme-overrides( + ( + primary: _high-contrast-value(#00313f, #ddf4ff, $theme-type), + on-primary: _high-contrast-value(#ffffff, #000000, $theme-type), + primary-container: _high-contrast-value(#005065, #4ad1fe, $theme-type), + on-primary-container: _high-contrast-value(#ffffff, #000d13, $theme-type), + inverse-primary: _high-contrast-value(#5bd4ff, #004f64, $theme-type), + primary-fixed: _high-contrast-value(#005065, #baeaff, $theme-type), + primary-fixed-dim: _high-contrast-value(#003848, #5bd4ff, $theme-type), + on-primary-fixed: _high-contrast-value(#ffffff, #000000, $theme-type), + on-primary-fixed-variant: _high-contrast-value(#ffffff, #00141b, $theme-type), + secondary: _high-contrast-value(#00313f, #ddf4ff, $theme-type), + on-secondary: _high-contrast-value(#ffffff, #000000, $theme-type), + secondary-container: _high-contrast-value(#005065, #4ad1fe, $theme-type), + on-secondary-container: _high-contrast-value(#ffffff, #000d13, $theme-type), + secondary-fixed: _high-contrast-value(#005065, #baeaff, $theme-type), + secondary-fixed-dim: _high-contrast-value(#003848, #5bd4ff, $theme-type), + on-secondary-fixed: _high-contrast-value(#ffffff, #000000, $theme-type), + on-secondary-fixed-variant: _high-contrast-value(#ffffff, #00141b, $theme-type), + tertiary: _high-contrast-value(#002d54, #e9f0ff, $theme-type), + on-tertiary: _high-contrast-value(#ffffff, #000000, $theme-type), + tertiary-container: _high-contrast-value(#004a86, #9bc5ff, $theme-type), + on-tertiary-container: _high-contrast-value(#ffffff, #000c1d, $theme-type), + tertiary-fixed: _high-contrast-value(#004a86, #d3e4ff, $theme-type), + tertiary-fixed-dim: _high-contrast-value(#003460, #a3c9ff, $theme-type), + on-tertiary-fixed: _high-contrast-value(#ffffff, #000000, $theme-type), + on-tertiary-fixed-variant: _high-contrast-value(#ffffff, #001227, $theme-type), + background: _high-contrast-value(#effbff, #00161b, $theme-type), + on-background: _high-contrast-value(#001f25, #a6eeff, $theme-type), + surface: _high-contrast-value(#effbff, #00161b, $theme-type), + surface-dim: _high-contrast-value(#4fc8e0, #00161b, $theme-type), + surface-bright: _high-contrast-value(#effbff, #005866, $theme-type), + surface-container-lowest: _high-contrast-value(#ffffff, #000000, $theme-type), + surface-container: _high-contrast-value(#a6eeff, #00363f, $theme-type), + surface-container-high: _high-contrast-value(#70e4fd, #00424d, $theme-type), + surface-container-highest: _high-contrast-value(#60d6ee, #004e5b, $theme-type), + on-surface: _high-contrast-value(#000000, #ffffff, $theme-type), + shadow: _high-contrast-value(#000000, #000000, $theme-type), + scrim: _high-contrast-value(#000000, #000000, $theme-type), + surface-tint: _high-contrast-value(#006781, #5bd4ff, $theme-type), + inverse-surface: _high-contrast-value(#00363f, #a6eeff, $theme-type), + inverse-on-surface: _high-contrast-value(#ffffff, #000000, $theme-type), + outline: _high-contrast-value(#222e33, #e6f2f9, $theme-type), + outline-variant: _high-contrast-value(#3f4b50, #b8c4cb, $theme-type), + error: _high-contrast-value(#600004, #ffece9, $theme-type), + on-error: _high-contrast-value(#ffffff, #000000, $theme-type), + error-container: _high-contrast-value(#98000a, #ffaea4, $theme-type), + on-error-container: _high-contrast-value(#ffffff, #220001, $theme-type), + surface-variant: _high-contrast-value(#d8e4eb, #3d484e, $theme-type), + on-surface-variant: _high-contrast-value(#000000, #ffffff, $theme-type), + ) + ); +} diff --git a/projects/ngx-reactome-style/src/assets/_variables.scss b/projects/ngx-reactome-style/src/assets/_variables.scss index 3930c13..d7c7934 100644 --- a/projects/ngx-reactome-style/src/assets/_variables.scss +++ b/projects/ngx-reactome-style/src/assets/_variables.scss @@ -1,8 +1,8 @@ -@use "@angular/material" as mat; -@use "sass:map"; +@use '@angular/material' as mat; +@use 'sass:map'; -@mixin variables() { - body { +@mixin variables($selector: 'body') { + #{$selector} { --primary: var(--mat-sys-primary); --on-primary: var(--mat-sys-on-primary); --primary-container: var(--mat-sys-primary-container); @@ -23,6 +23,8 @@ --error-container: var(--mat-sys-error-container); --on-error-container: var(--mat-sys-on-error-container); + --warn: light-dark(#c67c10, #ff9300); + --background: var(--mat-sys-background); --on-background: var(--mat-sys-on-background); --surface: var(--mat-sys-surface); @@ -33,7 +35,6 @@ --outline: var(--mat-sys-outline); --outline-variant: var(--mat-sys-outline-variant); - --surface1: color-mix(in lch, var(--primary) 5%, var(--surface) 95%); --surface2: color-mix(in lch, var(--primary) 8%, var(--surface) 92%); --surface3: color-mix(in lch, var(--primary) 11%, var(--surface) 89%); @@ -42,14 +43,7 @@ --card: var(--mat-sys-neutral10); - --icon-positive: #0C9509; + --icon-positive: #0c9509; --hover: rgba(0, 0, 0, 0.04); } } - - - - - - - diff --git a/projects/ngx-reactome-style/src/lib/ngx-reactome-style.component.spec.ts b/projects/ngx-reactome-style/src/lib/ngx-reactome-style.component.spec.ts deleted file mode 100644 index 52de55a..0000000 --- a/projects/ngx-reactome-style/src/lib/ngx-reactome-style.component.spec.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { ComponentFixture, TestBed } from '@angular/core/testing'; - -import { NgxReactomeStyleComponent } from './ngx-reactome-style.component'; - -describe('NgxReactomeStyleComponent', () => { - let component: NgxReactomeStyleComponent; - let fixture: ComponentFixture; - - beforeEach(async () => { - await TestBed.configureTestingModule({ - imports: [NgxReactomeStyleComponent] - }) - .compileComponents(); - - fixture = TestBed.createComponent(NgxReactomeStyleComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/projects/ngx-reactome-style/src/lib/ngx-reactome-style.component.ts b/projects/ngx-reactome-style/src/lib/ngx-reactome-style.component.ts deleted file mode 100644 index c94f0a5..0000000 --- a/projects/ngx-reactome-style/src/lib/ngx-reactome-style.component.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { Component } from '@angular/core'; - -@Component({ - selector: 'lib-ngx-reactome-style', - imports: [], - template: ` -

- ngx-reactome-style works! -

- `, - styles: `` -}) -export class NgxReactomeStyleComponent { - -} diff --git a/projects/ngx-reactome-style/src/lib/ngx-reactome-style.service.spec.ts b/projects/ngx-reactome-style/src/lib/ngx-reactome-style.service.spec.ts deleted file mode 100644 index 93c2102..0000000 --- a/projects/ngx-reactome-style/src/lib/ngx-reactome-style.service.spec.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { TestBed } from '@angular/core/testing'; - -import { NgxReactomeStyleService } from './ngx-reactome-style.service'; - -describe('NgxReactomeStyleService', () => { - let service: NgxReactomeStyleService; - - beforeEach(() => { - TestBed.configureTestingModule({}); - service = TestBed.inject(NgxReactomeStyleService); - }); - - it('should be created', () => { - expect(service).toBeTruthy(); - }); -}); diff --git a/projects/ngx-reactome-style/src/lib/ngx-reactome-style.service.ts b/projects/ngx-reactome-style/src/lib/ngx-reactome-style.service.ts deleted file mode 100644 index 9630fac..0000000 --- a/projects/ngx-reactome-style/src/lib/ngx-reactome-style.service.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { Injectable } from '@angular/core'; - -@Injectable({ - providedIn: 'root' -}) -export class NgxReactomeStyleService { - - constructor() { } -} diff --git a/projects/ngx-reactome-style/src/public-api.ts b/projects/ngx-reactome-style/src/public-api.ts index b62b9d3..bb8a86c 100644 --- a/projects/ngx-reactome-style/src/public-api.ts +++ b/projects/ngx-reactome-style/src/public-api.ts @@ -1,5 +1,8 @@ /* * Public API Surface of ngx-reactome-style + * + * This library is Sass only -- the theme lives in src/assets and is consumed + * via `@use "ngx-reactome-style"`. There is deliberately no TypeScript surface; + * the published package has always exported an empty object here. */ - export default {}; From 7ac4521a244f62f290b46779e4ca04db191f8f1d Mon Sep 17 00:00:00 2001 From: Adam Wright Date: Sat, 3 Oct 2026 00:57:46 +0000 Subject: [PATCH 39/49] Declare what the cytoscape style really imports, and let ng-packagr write exports Found bringing it in. It worked in WebsiteAngular only because that app installs everything itself; installed from npm it would not have: - it imports lodash in three files but declared lodash.memoize, which it never imports, and imports cytoscape-layers without declaring it; - it imported rxjs's internal util/isPromise, no part of rxjs's API (and rxjs undeclared): a Promise check of its own now; - its package.json carried a hand-written `exports` naming esm2022/reactome-cytoscape-style.mjs, a file no build makes, so two of the published conditions pointed at nothing. ng-packagr writes the right ones; - drawer/types.ts used cytoscape's global namespace without importing it, which only compiled when another file had pulled cytoscape in (it broke the specs' compile): an explicit type import now. cytoscape-layers 3, which it is written against; lodash declared. Co-Authored-By: Claude Opus 5.5 --- .../ngx-reactome-cytoscape-style/package.json | 18 ++++++------------ .../src/lib/drawer/types.ts | 5 +++-- .../src/lib/interactivity.ts | 7 ++++--- 3 files changed, 13 insertions(+), 17 deletions(-) diff --git a/projects/ngx-reactome-cytoscape-style/package.json b/projects/ngx-reactome-cytoscape-style/package.json index 45687df..5aef57c 100644 --- a/projects/ngx-reactome-cytoscape-style/package.json +++ b/projects/ngx-reactome-cytoscape-style/package.json @@ -4,22 +4,16 @@ "type": "module", "peerDependencies": { "cytoscape": "^3.30.0", - "lodash.memoize": "^4.1.2", - "chroma-js": "^3.1.2" + "cytoscape-layers": "^3.0.0", + "chroma-js": "^3.1.2", + "lodash": "^4.17.21" }, "dependencies": { "tslib": "^2.3.0" }, "devDependencies": { - "@types/chroma-js": "^3.1.1" + "@types/chroma-js": "^3.1.1", + "@types/lodash": "^4.17.0" }, - "sideEffects": false, - "exports": { - ".": { - "types": "./index.d.ts", - "esm2022": "./esm2022/reactome-cytoscape-style.mjs", - "esm": "./esm2022/reactome-cytoscape-style.mjs", - "default": "./fesm2022/reactome-cytoscape-style.mjs" - } - } + "sideEffects": false } diff --git a/projects/ngx-reactome-cytoscape-style/src/lib/drawer/types.ts b/projects/ngx-reactome-cytoscape-style/src/lib/drawer/types.ts index ab5c241..dd3b513 100644 --- a/projects/ngx-reactome-cytoscape-style/src/lib/drawer/types.ts +++ b/projects/ngx-reactome-cytoscape-style/src/lib/drawer/types.ts @@ -1,5 +1,6 @@ -import BackgroundImage = cytoscape.Css.BackgroundImage; -import PropertyValueNode = cytoscape.Css.PropertyValueNode; +import type cytoscape from 'cytoscape'; +type BackgroundImage = cytoscape.Css.BackgroundImage; +type PropertyValueNode = cytoscape.Css.PropertyValueNode; import _ from 'lodash'; import { Properties } from '../properties'; diff --git a/projects/ngx-reactome-cytoscape-style/src/lib/interactivity.ts b/projects/ngx-reactome-cytoscape-style/src/lib/interactivity.ts index 12f8a8a..673a34d 100644 --- a/projects/ngx-reactome-cytoscape-style/src/lib/interactivity.ts +++ b/projects/ngx-reactome-cytoscape-style/src/lib/interactivity.ts @@ -4,7 +4,6 @@ import { Properties } from './properties'; import { ReactomeEvent, ReactomeEventTypes } from './model/reactome-event.model'; import Layers, { IHTMLLayer, layers, LayersPlugin } from 'cytoscape-layers'; import * as _ from 'lodash'; -import { isPromise } from 'rxjs/internal/util/isPromise'; cytoscape.use(Layers); type RenderableHTMLElement = HTMLElement & { @@ -456,7 +455,8 @@ export class Interactivity { elem.style.height = h - 2 * margin + 'px'; elem.style.display = 'flex'; - const structure = node.data('chebiStructure') as string; + // The structure's SVG, or its load while it is still on the way. + const structure = node.data('chebiStructure') as string | Promise; const initStructure = (svgData: string) => { if (svgData === undefined) return this.removeStructureContainer(elem, node); elem.innerHTML = svgData; @@ -476,7 +476,8 @@ export class Interactivity { this.removeLoading(elem); }; - if (isPromise(structure)) { + // A thenable, not rxjs's internal isPromise, which is no part of its API. + if (structure instanceof Promise) { structure.then(initStructure); } else { initStructure(structure); From 5059bd9030f7ef4cdaea4e5d46ef0832d1e8e5e9 Mon Sep 17 00:00:00 2001 From: Adam Wright Date: Sat, 3 Oct 2026 00:58:03 +0000 Subject: [PATCH 40/49] Make ngx-reactome-diagram build, against the cytoscape style it now has It did not build on dev: TypeScript 5.6+ rejects conditions that are always true, and these three were real faults -- - `[...map.get(x)!] || [fallback]`: an array is always truthy, so the fallback never applied, and a missing key threw in the spread instead; - `graph.nodes.map(...) || []` (twice): the `|| []` could never apply. Also: - DIAGRAM_CONFIG_TOKEN was declared at the bottom of the file and named in the constructor's @Inject above it: the decorator read it before it existed. It is declared above the service now. - The cytoscape style exports `Types` by name (no default export), so the diagram imports it that way. - vectorious's package `exports` lists its module before its types, so bundler resolution found no declarations: mapped to them in tsconfig. Its five specs are the generated "should create" kind and fail for want of providers (DIAGRAM_CONFIG_TOKEN, ActivatedRoute) and a standalone component declared in a module; they did not run on dev either, since the library did not build. Left for the test-runner change. Co-Authored-By: Claude Opus 5.5 --- .../src/lib/services/diagram.service.ts | 19 +++++++++++-------- tsconfig.json | 5 +++++ 2 files changed, 16 insertions(+), 8 deletions(-) diff --git a/projects/ngx-reactome-diagram/src/lib/services/diagram.service.ts b/projects/ngx-reactome-diagram/src/lib/services/diagram.service.ts index 25464f2..c6c5d6f 100644 --- a/projects/ngx-reactome-diagram/src/lib/services/diagram.service.ts +++ b/projects/ngx-reactome-diagram/src/lib/services/diagram.service.ts @@ -3,21 +3,25 @@ import {forkJoin, map, Observable, of, tap} from "rxjs"; import {HttpClient, HttpHeaders} from "@angular/common/http"; import {Diagram, Edge, Node, NodeConnector, Position, Prop, Rectangle} from "../model/diagram.model"; import {Edge as GraphEdge, Graph, Node as GraphNode} from "../model/graph.model"; -import Reactome, {Style} from "ngx-reactome-cytoscape-style"; +import {Style, Types} from "ngx-reactome-cytoscape-style"; import legend from "../../assets/json/legend.json" import {array} from "vectorious"; import cytoscape from "cytoscape"; import cytoscapeFcose, {FcoseLayoutOptions} from "cytoscape-fcose"; -import NodeDefinition = Reactome.Types.NodeDefinition; -import ReactionDefinition = Reactome.Types.ReactionDefinition; -import EdgeTypeDefinition = Reactome.Types.EdgeTypeDefinition; +type NodeDefinition = Types.NodeDefinition; +type ReactionDefinition = Types.ReactionDefinition; +type EdgeTypeDefinition = Types.EdgeTypeDefinition; cytoscape.use(cytoscapeFcose) type RelativePosition = { distances: number[], weights: number[] }; +// Above the service, which names it in its constructor's @Inject: declared +// after it, the decorator read it before it existed. +export const DIAGRAM_CONFIG_TOKEN = new InjectionToken('DIAGRAM_CONFIG_TOKEN'); + const posToStr = (edge: Edge, pos: Position) => `${edge.id}-${pos.x},${pos.y}` const pointToStr = (point: Position) => `${point.x};${point.y}`; @@ -208,7 +212,7 @@ export class DiagramService { const subpathwayIdToEventIds = new Map(graph.subpathways?.map(subpathway => [subpathway.dbId, subpathway.events])); // create a node id - graph node mapping - const dbIdToGraphNode = new Map(graph.nodes.map(node => ([node.dbId, node]) || [])) + const dbIdToGraphNode = new Map(graph.nodes.map(node => [node.dbId, node])) const mappingList: [number, GraphNode][] = graph.nodes.flatMap(node => { if (node.children && node.children.length === 1) { return node.diagramIds?.map(id => [id, dbIdToGraphNode.get(node.children[0])]).filter(entry => entry[1] !== undefined) as [number, GraphNode][] @@ -218,7 +222,7 @@ export class DiagramService { const idToGraphNodes = new Map([...mappingList]); const idToGraphEdges = new Map(graph.edges.map(edge => [edge.dbId, edge])); - const dbIdToGraphEdge = new Map(graph.edges.map(edge => ([edge.dbId, edge]) || [])) + const dbIdToGraphEdge = new Map(graph.edges.map(edge => [edge.dbId, edge])) const hasFadeOut = data.nodes.some(node => node.isFadeOut); const normalNodes = data.nodes.filter(node => node.isFadeOut); @@ -315,7 +319,7 @@ export class DiagramService { //entity nodes const entityNodes: cytoscape.NodeDefinition[] = data?.nodes.flatMap(item => { - const classes = [...this.nodeTypeMap.get(item.renderableClass)!] || [item.renderableClass.toLowerCase()]; + const classes = [...(this.nodeTypeMap.get(item.renderableClass) || [item.renderableClass.toLowerCase()])]; let replacedBy: string | undefined; let replacement: string | undefined; if (item.isDisease) classes.push('disease'); @@ -807,4 +811,3 @@ function avoidOverlap(definitions: cytoscape.NodeDefinition[]) { } -export const DIAGRAM_CONFIG_TOKEN = new InjectionToken('DIAGRAM_CONFIG_TOKEN'); \ No newline at end of file diff --git a/tsconfig.json b/tsconfig.json index 5034413..1535d90 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -10,6 +10,11 @@ "noFallthroughCasesInSwitch": true, "skipLibCheck": true, "paths": { + // vectorious's "exports" lists its plain module before its types, so + // bundler resolution finds no declarations; point straight at them. + "vectorious": [ + "./node_modules/vectorious/dist/index.d.ts" + ], "ngx-reactome-cytoscape-style": [ "./dist/ngx-reactome-cytoscape-style" ], From c9a921c90d5a4cae1b95e0adb4e90560cc3f1dfc Mon Sep 17 00:00:00 2001 From: Adam Wright Date: Sat, 3 Oct 2026 00:58:03 +0000 Subject: [PATCH 41/49] Stop the demo app asking for a stylesheet that was deleted src/custom-theme.scss was removed in 5bf6c74 but angular.json still listed it, so `ng build` of the demo app failed on dev. Its three specs pass. Co-Authored-By: Claude Opus 5.5 --- angular.json | 1 - 1 file changed, 1 deletion(-) diff --git a/angular.json b/angular.json index 2545222..c95c885 100644 --- a/angular.json +++ b/angular.json @@ -25,7 +25,6 @@ "src/assets" ], "styles": [ - "src/custom-theme.scss", "src/styles.css" ], "scripts": [] From 05a101465dcf425fdd838d23b346751795509b42 Mon Sep 17 00:00:00 2001 From: Adam Wright Date: Sat, 3 Oct 2026 04:23:22 +0000 Subject: [PATCH 42/49] Review fixes: honest diagram peers, keep molecules visible, thenables, docs From an adversarial review of this branch: - ngx-reactome-diagram's package.json still said Angular 17, cytoscape- layers 2 and lodash.memoize, never named the cytoscape style it needs, and left out six packages its bundle imports; at an unchanged 0.0.34 a new tarball also reused the old one's name. It now declares what the build imports, at 0.1.0. Checked: both packed libraries install into an Angular 21 project with no conflict and every peer resolved. - The cytoscape style removed all of a node's inline style when a molecule's structure could not be shown, the zoom's opacity with it: a trivial molecule fell back to opacity 0 until the next zoom, which a diagram that cannot be zoomed never has. Only the four background properties the structure set are removed now. - A structure still loading is recognised as a thenable, not with `instanceof Promise`, which a native promise fails where zone.js has replaced the global. - The diagram set --opacity, which the style renamed --compartment-opacity: its compartments had silently gone lighter. - RNADrug was missing from the diagram's node types: such nodes drew unstyled. - The style's README imported a `Reactome` export that does not exist, from a package name that is not this one, and told readers to set properties on a read-only computed style. Co-Authored-By: Claude Opus 5.5 --- .../ngx-reactome-cytoscape-style/README.md | 34 ++++++++--------- .../src/lib/interactivity.ts | 24 +++++++++--- projects/ngx-reactome-diagram/package.json | 38 +++++++------------ .../src/lib/diagram/diagram.component.scss | 4 +- .../src/lib/services/diagram.service.ts | 1 + 5 files changed, 51 insertions(+), 50 deletions(-) diff --git a/projects/ngx-reactome-cytoscape-style/README.md b/projects/ngx-reactome-cytoscape-style/README.md index d55295d..d98bdd0 100644 --- a/projects/ngx-reactome-cytoscape-style/README.md +++ b/projects/ngx-reactome-cytoscape-style/README.md @@ -5,10 +5,10 @@ To use reactome-cytoscape-style, use the following: ```typescript -import {Reactome} from "reactome-cytoscape-style"; +import { Style, type UserProperties } from "ngx-reactome-cytoscape-style"; const container: HTMLElement = document.querySelector('#cytoscape-container'); -const reactome = new Reactome.Style(container); +const reactome = new Style(container); const cy = cytoscape({ ..., container: container, @@ -157,14 +157,14 @@ Here is a table summarizing how to access and customize all those properties. #### Update by JS properties -In order to customise your style, you can provide to the `Reactome.Style()` constructor a property object, of type `Reactome.UserProperties`, where you can define the properties that you want to customize. The values can either be a direct value, or a function that provide the required value type +In order to customise your style, you can provide to the `Style()` constructor a property object, of type `UserProperties`, where you can define the properties that you want to customize. The values can either be a direct value, or a function that provide the required value type ```typescript -import {Reactome} from "reactome-cytoscape-style"; +import { Style, type UserProperties } from "ngx-reactome-cytoscape-style"; const container: HTMLElement = document.querySelector('#cytoscape-container'); -const properties: Reactome.UserProperties = {}; -const style = new Reactome.Style(container, properties); +const properties: UserProperties = {}; +const style = new Style(container, properties); const cy = cytoscape({ ..., @@ -180,23 +180,23 @@ function updateJsProperty() { } ``` -Updating the `Reactome.UserProperties` you used to initialize the `Reactome.Style`, here `style`, will automatically update the inner state of the style. +Updating the `UserProperties` you used to initialize the `Style`, here `style`, will automatically update the inner state of the style. You simply need to force an update on the style afterwards so that the new values are taken into account #### Update by CSS properties Another way to customise the reactome-cytoscape-style is though the usage of css variables. -We are using the values as they can be found on the cytoscape container you provided to the `Reactome.Style()` constructor. +We are using the values as they can be found on the cytoscape container you provided to the `Style()` constructor. This means that you can define your variables either directly on the container, or within one of its parent in the DOM. That is specifically useful when you have defined a light and a dark theme. However, as it is the case when updating the style though Js properties, you also need to trigger an update on the style after the properties have changed so that the change can be taken into account. ```typescript -import {Reactome} from "reactome-cytoscape-style"; +import { Style, type UserProperties } from "ngx-reactome-cytoscape-style"; const container: HTMLElement = document.querySelector('#cytoscape-container'); -const style = new Reactome.Style(container); +const style = new Style(container); const cy = cytoscape({ ..., @@ -205,9 +205,9 @@ const cy = cytoscape({ }) function updateCssProperty(property: string, newValue: string) { - // Updating Reactome.Style.css is updating the CSS variable on the container element - // in order to mimic a css variable change - Reactome.Style.css.setProperty('--property', newValue); + // The style reads its values from the container's CSS variables, so set the + // variable there. (`style.css` is the container's computed style: read-only.) + container.style.setProperty('--property', newValue); // Needed to apply the changes style.update(cy); } @@ -219,17 +219,17 @@ This library was generated with [Angular CLI](https://github.com/angular/angular ### Code scaffolding -Run `ng generate component component-name --project reactome-cytoscape-style` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module --project reactome-cytoscape-style`. +Run `ng generate component component-name --project ngx-reactome-cytoscape-style` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module --project ngx-reactome-cytoscape-style`. -> Note: Don't forget to add `--project reactome-cytoscape-style` or else it will be added to the default project in your `angular.json` file. +> Note: Don't forget to add `--project ngx-reactome-cytoscape-style` or else it will be added to the default project in your `angular.json` file. ### Build -Run `ng build reactome-cytoscape-style` to build the project. The build artifacts will be stored in the `dist/` directory. +Run `ng build ngx-reactome-cytoscape-style` to build the project. The build artifacts will be stored in the `dist/` directory. ### Publishing -After building your library with `ng build reactome-cytoscape-style`, go to the dist folder `cd dist/reactome-cytoscape-style` and run `npm publish`. +After building your library with `ng build ngx-reactome-cytoscape-style`, go to the dist folder `cd dist/ngx-reactome-cytoscape-style` and run `npm publish`. ### Running unit tests diff --git a/projects/ngx-reactome-cytoscape-style/src/lib/interactivity.ts b/projects/ngx-reactome-cytoscape-style/src/lib/interactivity.ts index 673a34d..691508e 100644 --- a/projects/ngx-reactome-cytoscape-style/src/lib/interactivity.ts +++ b/projects/ngx-reactome-cytoscape-style/src/lib/interactivity.ts @@ -426,7 +426,17 @@ export class Interactivity { // console.log('Remove diagram structure container because not found', loadingContainer, node) loadingContainer.classList.remove('loading'); this.removeLoading(loadingContainer); - node.removeStyle(); + // Only what the structure set. All of the node's inline style went before, + // the zoom's opacity with it, and a trivial molecule then fell back to its + // stylesheet opacity of 0 until the next zoom -- which never came in a + // diagram that cannot be zoomed. + for (const property of [ + 'background-position-x', + 'background-position-y', + 'background-width', + 'background-height', + ]) + node.removeStyle(property); this.structureContainers = this.structureContainers.not(node); } @@ -456,7 +466,7 @@ export class Interactivity { elem.style.display = 'flex'; // The structure's SVG, or its load while it is still on the way. - const structure = node.data('chebiStructure') as string | Promise; + const structure = node.data('chebiStructure') as string | PromiseLike; const initStructure = (svgData: string) => { if (svgData === undefined) return this.removeStructureContainer(elem, node); elem.innerHTML = svgData; @@ -476,11 +486,13 @@ export class Interactivity { this.removeLoading(elem); }; - // A thenable, not rxjs's internal isPromise, which is no part of its API. - if (structure instanceof Promise) { - structure.then(initStructure); + // A thenable -- not `instanceof Promise`, which is false for a native + // promise where zone.js has replaced the global, as in an app that + // uses it -- and not rxjs's internal isPromise, no part of its API. + if (typeof (structure as PromiseLike)?.then === 'function') { + (structure as PromiseLike).then(initStructure); } else { - initStructure(structure); + initStructure(structure as string); } }, transform: `translate(-100%, -50%)`, diff --git a/projects/ngx-reactome-diagram/package.json b/projects/ngx-reactome-diagram/package.json index 45ea003..a9ca289 100644 --- a/projects/ngx-reactome-diagram/package.json +++ b/projects/ngx-reactome-diagram/package.json @@ -1,34 +1,22 @@ { "name": "ngx-reactome-diagram", - "version": "0.0.34", + "version": "0.1.0", "peerDependencies": { - "cytoscape": "^3.27.0", + "@angular/cdk": "^21.0.0", + "@angular/common": "^21.0.0", + "@angular/core": "^21.0.0", + "@angular/forms": "^21.0.0", + "@angular/material": "^21.0.0", + "@angular/router": "^21.0.0", + "@ngneat/until-destroy": "^10.0.0", + "cytoscape": "^3.30.0", "cytoscape-fcose": "^2.2.0", - "cytoscape-layers": "^2.4.4", - "lodash.memoize": "^4.1.2", - "@angular/common": "^17.2.4", - "@angular/core": "^17.2.4" + "lodash": "^4.17.21", + "ngx-reactome-cytoscape-style": "^0.1.0", + "rxjs": "^7.8.0", + "vectorious": "^6.1.12" }, "dependencies": { "tslib": "^2.3.0" - }, - "devDependencies": { - "@angular-devkit/build-angular": "^17.3.6", - "@angular/cli": "^17.3.6", - "@angular/compiler-cli": "^17.3.7", - "@types/cytoscape": "^3.21.0", - "@types/cytoscape-fcose": "^2.2.4", - "@types/jasmine": "~4.3.0", - "@types/lodash": "^4.14.202", - "angular-cli-ghpages": "^1.0.6", - "jasmine-core": "~4.6.0", - "karma": "~6.4.0", - "karma-chrome-launcher": "~3.2.0", - "karma-coverage": "~2.2.0", - "karma-jasmine": "~5.1.0", - "karma-jasmine-html-reporter": "~2.1.0", - "ng-packagr": "^17.3.0", - "npm-run-all": "^4.1.1", - "typescript": "~5.4.5" } } diff --git a/projects/ngx-reactome-diagram/src/lib/diagram/diagram.component.scss b/projects/ngx-reactome-diagram/src/lib/diagram/diagram.component.scss index 6669e50..dfd9767 100644 --- a/projects/ngx-reactome-diagram/src/lib/diagram/diagram.component.scss +++ b/projects/ngx-reactome-diagram/src/lib/diagram/diagram.component.scss @@ -1,7 +1,7 @@ .variables { position: absolute; inset: 0 0 40px 0; - --opacity: 0.08; + --compartment-opacity: 0.08; --structure-opacity: [[130,0], [150,100]]; --shadow-luminosity: 40; @@ -38,7 +38,7 @@ --drug-contrast-4: #BB557A; &.dark { - --opacity: 0.08; + --compartment-opacity: 0.08; --shadow-luminosity: 70; --shadow-opacity: [[20, 40], [40, 0]]; diff --git a/projects/ngx-reactome-diagram/src/lib/services/diagram.service.ts b/projects/ngx-reactome-diagram/src/lib/services/diagram.service.ts index c6c5d6f..b83be51 100644 --- a/projects/ngx-reactome-diagram/src/lib/services/diagram.service.ts +++ b/projects/ngx-reactome-diagram/src/lib/services/diagram.service.ts @@ -93,6 +93,7 @@ export class DiagramService { ['ProteinDrug', ['Protein', 'PhysicalEntity', 'drug']], ['ComplexDrug', ['Complex', 'PhysicalEntity', 'drug']], ['ChemicalDrug', ['Molecule', 'PhysicalEntity', 'drug']], + ['RNADrug', ['RNA', 'PhysicalEntity', 'drug']], ['EntitySetDrug', ['EntitySet', 'PhysicalEntity', 'drug']], ['ProcessNode', ['SUB', 'Pathway']], From d13f0c38d15c1a8e6cc622405431b53d9538951a Mon Sep 17 00:00:00 2001 From: Adam Wright Date: Sat, 3 Oct 2026 04:24:55 +0000 Subject: [PATCH 43/49] Remove a molecule's structure container when its structure fails to load The load was awaited with no rejection handler: a failed load left the container spinning. It is treated as a structure that could not be found. (Flagged by WebsiteAngular's no-floating-promises lint.) Co-Authored-By: Claude Opus 5.5 --- .../ngx-reactome-cytoscape-style/src/lib/interactivity.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/projects/ngx-reactome-cytoscape-style/src/lib/interactivity.ts b/projects/ngx-reactome-cytoscape-style/src/lib/interactivity.ts index 691508e..895b1b9 100644 --- a/projects/ngx-reactome-cytoscape-style/src/lib/interactivity.ts +++ b/projects/ngx-reactome-cytoscape-style/src/lib/interactivity.ts @@ -490,7 +490,10 @@ export class Interactivity { // promise where zone.js has replaced the global, as in an app that // uses it -- and not rxjs's internal isPromise, no part of its API. if (typeof (structure as PromiseLike)?.then === 'function') { - (structure as PromiseLike).then(initStructure); + // A structure that fails to load is one that could not be found. + (structure as PromiseLike).then(initStructure, () => + this.removeStructureContainer(elem, node) + ); } else { initStructure(structure as string); } From 8fc5bb697a96cd15ae7aedd7e8288f5bd104d449 Mon Sep 17 00:00:00 2001 From: Adam Wright Date: Sat, 3 Oct 2026 13:24:41 +0000 Subject: [PATCH 44/49] Bring in the style library's review fixes, and look up handlers per graph The library's source is again identical to WebsiteAngular's, where each fix was made with a test that failed first: caches keyed on what a drawing depends on rather than the node id, settings turned off and CSS zeros kept, palette variables parsed without throwing, the structure layers' opacity, visibility and failed-structure handling, drug unselect, Style.update on the graph given, and exported asset files. The diagram finds the zoom handlers of the graph it is changing with interactivityOf(cy), not through the Style, which holds only the last graph it was bound to. The two new specs are vitest specs, like the one already here; they run once the workspace moves from Karma to vitest. Co-Authored-By: Claude Opus 5.5 --- .../ngx-reactome-cytoscape-style/package.json | 8 + .../src/lib/drawer/image-builder.spec.ts | 133 +++++++++++++++ .../src/lib/drawer/image-builder.ts | 154 ++++++++++++------ .../src/lib/drawer/types.ts | 2 - .../src/lib/interactivity.ts | 29 +++- .../src/lib/properties-utils.ts | 2 +- .../src/lib/properties.spec.ts | 44 +++++ .../src/lib/properties.ts | 151 ++++++++--------- .../src/lib/style.ts | 12 +- .../src/lib/diagram/diagram.component.ts | 14 +- 10 files changed, 401 insertions(+), 148 deletions(-) create mode 100644 projects/ngx-reactome-cytoscape-style/src/lib/drawer/image-builder.spec.ts create mode 100644 projects/ngx-reactome-cytoscape-style/src/lib/properties.spec.ts diff --git a/projects/ngx-reactome-cytoscape-style/package.json b/projects/ngx-reactome-cytoscape-style/package.json index 5aef57c..01fb81a 100644 --- a/projects/ngx-reactome-cytoscape-style/package.json +++ b/projects/ngx-reactome-cytoscape-style/package.json @@ -2,6 +2,14 @@ "name": "ngx-reactome-cytoscape-style", "version": "0.1.0", "type": "module", + "exports": { + "./assets": { + "sass": "./assets/index.scss", + "style": "./assets/index.scss", + "default": "./assets/index.scss" + }, + "./assets/*": "./assets/*" + }, "peerDependencies": { "cytoscape": "^3.30.0", "cytoscape-layers": "^3.0.0", diff --git a/projects/ngx-reactome-cytoscape-style/src/lib/drawer/image-builder.spec.ts b/projects/ngx-reactome-cytoscape-style/src/lib/drawer/image-builder.spec.ts new file mode 100644 index 0000000..f888820 --- /dev/null +++ b/projects/ngx-reactome-cytoscape-style/src/lib/drawer/image-builder.spec.ts @@ -0,0 +1,133 @@ +import { describe, expect, it } from 'vitest'; +import cytoscape from 'cytoscape'; +import chroma from 'chroma-js'; +import { Style } from '../style'; +import { clearDrawersCache, imageBuilder } from './image-builder'; + +/** + * The image builder's caches. + * + * Diagram node ids are small numbers that every diagram reuses, and the caches + * are shared by every Style on the page. A cache keyed on the id alone hands + * one diagram's drawing to another: two embedded diagrams, the compare view, + * a diagram after navigation. + */ + +function aStyle() { + const container = document.createElement('div'); + document.body.appendChild(container); + const style = new Style(container); + // As loadAnalysis sets it, without the rest of what loadAnalysis does. + style.currentPalette = chroma.scale(['#0000ff', '#ff0000']); + return style; +} + +type NodeSpec = { id?: string; width: number; height: number; classes?: string[]; exp?: unknown }; + +function aNode({ id = '1', width, height, classes = [], exp }: NodeSpec) { + const cy = cytoscape({ + headless: true, + elements: [ + { + data: { id, width, height, displayName: 'X', ...(exp ? { exp } : {}) }, + classes: ['Complex', 'PhysicalEntity', ...classes], + }, + ], + }); + return cy.getElementById(id); +} + +const images = (style: Style, node: cytoscape.NodeSingular) => + imageBuilder(style.properties, style)(node)['background-image'] as string[]; + +describe('the image builder', () => { + it("does not hand one diagram's drawing to another node with the same id", () => { + clearDrawersCache(); + const small = aNode({ width: 100, height: 40 }); + const large = aNode({ width: 300, height: 120 }); + images(aStyle(), small); + const afterSmall = images(aStyle(), large); + + clearDrawersCache(); + const alone = images(aStyle(), large); + // Drawn on its own, or after a smaller node with the same id: the same. + expect(afterSmall).toEqual(alone); + }); + + it('does not change a cached drawing when it adds an analysis gradient', () => { + clearDrawersCache(); + const style = aStyle(); + const exp = [0.2, 0.8]; + const plain = images(style, aNode({ id: '2', width: 100, height: 40, exp })); + // The same node hovered: a new combination of classes, so drawn again + // from the same cached drawer. + const hovered = images( + style, + aNode({ id: '2', width: 100, height: 40, exp, classes: ['hover'] }) + ); + const patterns = (layers: string[]) => + layers.map((l) => decodeURIComponent(l).split(' { + clearDrawersCache(); + const palette = chroma.scale(['#0000ff', '#ff0000']); + const colours = (layers: string[]) => + layers.flatMap((l) => + [...decodeURIComponent(l).matchAll(/ m[1]) + ); + const low = colours(images(aStyle(), aNode({ id: '3', width: 100, height: 40, exp: [0.05] }))); + expect(low, 'the gradient is drawn, in its own colour').toEqual([palette(0.05).hex()]); + const high = colours(images(aStyle(), aNode({ id: '3', width: 100, height: 40, exp: [0.95] }))); + expect(high).toEqual([palette(0.95).hex()]); + }); + + it('draws a polymer as its offset copy behind the shape, once', () => { + clearDrawersCache(); + const style = aStyle(); + const plain = images(style, aNode({ id: '4', width: 100, height: 40 })); + const polymer = images(style, aNode({ id: '5', width: 100, height: 40, classes: ['Polymer'] })); + const shadows = polymer.filter((l) => decodeURIComponent(l).includes('style="filter:')); + expect(shadows.length, 'an offset copy').toBeGreaterThan(0); + // The shape's own layers once, behind them its offset copies: not the shape + // drawn twice over. + expect(polymer.length).toBe(plain.length + shadows.length); + }); + + it('paints the whole node when the same value repeats with counts', () => { + clearDrawersCache(); + // [value, count] pairs: 2 of 0.3 then 5 more of 0.3 -- one colour across + // all seven shares of the width. + const layers = images( + aStyle(), + aNode({ + id: '6', + width: 100, + height: 40, + exp: [ + [0.3, 2], + [0.3, 5], + ], + }) + ); + const widths = layers.flatMap((l) => + [ + ...decodeURIComponent(l).matchAll( + / Number(m[1]) + Number(m[2])) + ); + expect(widths.length, 'a gradient is drawn').toBeGreaterThan(0); + // Its right edge at the node's (plus the 0.01 overlap the rects carry). + expect(Math.max(...widths)).toBeCloseTo(1.01, 5); + }); + + it('draws no gradient, rather than NaN, when there is nothing to divide', () => { + clearDrawersCache(); + const layers = images(aStyle(), aNode({ id: '8', width: 100, height: 40, exp: [[0.3, 0]] })); + expect(layers.join('')).not.toContain('NaN'); + }); +}); diff --git a/projects/ngx-reactome-cytoscape-style/src/lib/drawer/image-builder.ts b/projects/ngx-reactome-cytoscape-style/src/lib/drawer/image-builder.ts index 06feaa1..fcf7007 100644 --- a/projects/ngx-reactome-cytoscape-style/src/lib/drawer/image-builder.ts +++ b/projects/ngx-reactome-cytoscape-style/src/lib/drawer/image-builder.ts @@ -14,7 +14,7 @@ import { diseaseInteractor } from './shape/disease-interactor-shape'; import { subPathway } from './shape/sub-pathway-shape'; import { extract } from '../properties-utils'; import { Node } from '../types'; -import { Aggregated, DrawerParameters, DrawerProvider, Image, Memo } from './types'; +import { Aggregated, DrawerParameters, DrawerProvider, Image } from './types'; import { Properties } from '../properties'; import { Style } from '../style'; import chroma from 'chroma-js'; @@ -41,30 +41,31 @@ export const imageBuilder = (properties: Properties, style: Style) => const drawer = provider(properties, drawerParams); + // A polymer is its shape with an offset copy behind it: the copies only. + // The shape's own layers are added below like any other node's -- added + // here as well, they were drawn twice. if (node.hasClass('Polymer')) { - [drawer.background, ...(drawer.decorators || [])] - .filter((layer) => !!layer) - .map((originalLayer) => { - const polymerLayer = { ...originalLayer }; - polymerLayer['background-position-x'] = - ((polymerLayer['background-position-x'] || 0) as number) + - extract(properties.polymer.distance); - polymerLayer['background-position-y'] = - ((polymerLayer['background-position-y'] || 0) as number) + - extract(properties.polymer.distance); - polymerLayer['bounds-expansion'] = - ((polymerLayer['bounds-expansion'] || 0) as number) + - extract(properties.polymer.distance) * 2; - polymerLayer['background-image'] = - `` + - polymerLayer['background-image'] + - ''; - layers.push(polymerLayer); - return originalLayer as Image; - }) - .forEach((layer) => { - layers.push(layer); - }); + const drawn = [ + drawer.background && !drawer.background.optional ? drawer.background : undefined, + ...(drawer.decorators || []), + ].filter((layer) => !!layer); + for (const originalLayer of drawn) { + const polymerLayer = { ...originalLayer }; + polymerLayer['background-position-x'] = + ((polymerLayer['background-position-x'] || 0) as number) + + extract(properties.polymer.distance); + polymerLayer['background-position-y'] = + ((polymerLayer['background-position-y'] || 0) as number) + + extract(properties.polymer.distance); + polymerLayer['bounds-expansion'] = + ((polymerLayer['bounds-expansion'] || 0) as number) + + extract(properties.polymer.distance) * 2; + polymerLayer['background-image'] = + `` + + polymerLayer['background-image'] + + ''; + layers.push(polymerLayer); + } } if (node.hasClass('flag') && drawer.flag) layers.push(drawer.flag); @@ -93,11 +94,13 @@ export const imageBuilder = (properties: Properties, style: Style) => // Convert raw HTML to string encoded images layers = layers - .map((l) => { - if (l.requireGradient && gradient) - l['background-image'] = addGradient(l['background-image'] as string, gradient); - return l; - }) + // On a copy: the layer belongs to a cached drawer, and writing the + // gradient into it added another one on every redraw. + .map((l) => + l.requireGradient && gradient + ? { ...l, 'background-image': addGradient(l['background-image'] as string, gradient) } + : l + ) .map((l) => ({ ...l, 'background-image': svgStr( @@ -165,13 +168,17 @@ function _expToGradient( width: number; }[] = []; const size = exps.reduce((l: number, e) => (e !== undefined && isArray(e) ? l + e[1] : l + 1), 0); + // Nothing to divide the width between: no gradient, not NaN widths. + if (!(size > 0)) return undefined; const delta = 1 / size; exps.forEach((exp, _i) => { const p = stops.length - 1; const realExp = isArray(exp) ? exp[0]! : exp; if (stops.length !== 0 && stops[p].exp === realExp) { - stops[p].stop += delta; - stops[p].width += delta; + // A [value, count] pair is count shares of the width, merged or not. + const share = isArray(exp) ? delta * exp[1] : delta; + stops[p].stop += share; + stops[p].width += share; } else { if (isArray(exp)) { stops.push({ @@ -219,9 +226,30 @@ function _expToGradient( return pattern; } -const expToGradient = memoize(_expToGradient, (id) => id); +/** + * Kept per palette, and keyed on the node's values as well as its id: keyed on + * the id alone it was shared by every diagram on the page, so a node took the + * colours of whichever node with that id was drawn first, and kept them after + * its values changed. + */ +let gradients = new WeakMap>(); +function expToGradient( + id: string, + exps: (number | [number, number] | undefined)[], + properties: Properties, + palette: chroma.Scale +): string | undefined { + if (!exps || !palette) return undefined; + let cache = gradients.get(palette); + if (!cache) gradients.set(palette, (cache = new Map())); + const key = `${id}|${JSON.stringify(exps)}`; + if (!cache.has(key)) cache.set(key, _expToGradient(id, exps, properties, palette)); + return cache.get(key); +} -export const resetGradients = () => expToGradient.cache.clear!(); +export const resetGradients = () => { + gradients = new WeakMap(); +}; function svg(svgStr: string, width = 100, height = 100) { // const cleanedStr = svgStr.replaceAll(/ {2,}|\n/g, " "); // TODO examine performance impact @@ -237,24 +265,56 @@ function svgStr(svgText: string, viewPortWidth: number, viewPortHeight: number) ); } -const dim = (_properties: Properties, { id }: DrawerParameters) => id; -const classToDrawers = new Map>([ - ['Protein', memoize(protein, dim)], - ['GenomeEncodedEntity', memoize(genomeEncodedEntity, dim)], - ['RNA', memoize(rna, dim)], - ['Gene', memoize(gene, dim)], - ['Molecule', memoize(molecule, dim)], - ['Complex', memoize(complex, dim)], - ['EntitySet', memoize(entitySet, dim)], - ['Cell', memoize(cell, dim)], - ['Interacting', memoize(interactingPathway, dim)], - ['SUB', memoize(subPathway, dim)], - ['Interactor', memoize(diseaseInteractor, dim)], +/** + * A drawer's output depends on the style's properties and the node's size and + * flags -- not on its id. Keyed on the id it was shared by every Style, and a + * node got the drawing of whichever node with that id was drawn first: another + * diagram's, or the compare view's, at another size, flags or colours. + */ +type CachedDrawer = DrawerProvider & { cache: { clear(): void } }; +function cached(provider: DrawerProvider): CachedDrawer { + let byProperties = new WeakMap>>(); + const drawer = ((properties: Properties, p: DrawerParameters) => { + let cache = byProperties.get(properties); + if (!cache) + byProperties.set(properties, (cache = new Map>())); + const key = [ + p.width, + p.height, + p.drug, + p.disease, + p.interactor, + p.crossed, + p.lossOfFunction, + ].join('|'); + let drawn = cache.get(key); + if (!drawn) cache.set(key, (drawn = provider(properties, p))); + return drawn; + }) as CachedDrawer; + drawer.cache = { + clear: () => { + byProperties = new WeakMap(); + }, + }; + return drawer; +} +const classToDrawers = new Map([ + ['Protein', cached(protein)], + ['GenomeEncodedEntity', cached(genomeEncodedEntity)], + ['RNA', cached(rna)], + ['Gene', cached(gene)], + ['Molecule', cached(molecule)], + ['Complex', cached(complex)], + ['EntitySet', cached(entitySet)], + ['Cell', cached(cell)], + ['Interacting', cached(interactingPathway)], + ['SUB', cached(subPathway)], + ['Interactor', cached(diseaseInteractor)], ]); export function clearDrawersCache() { for (const value of classToDrawers.values()) { - value.cache.clear!(); + value.cache.clear(); } OMMITED_ICON.cache.clear!(); } diff --git a/projects/ngx-reactome-cytoscape-style/src/lib/drawer/types.ts b/projects/ngx-reactome-cytoscape-style/src/lib/drawer/types.ts index dd3b513..e839230 100644 --- a/projects/ngx-reactome-cytoscape-style/src/lib/drawer/types.ts +++ b/projects/ngx-reactome-cytoscape-style/src/lib/drawer/types.ts @@ -1,7 +1,6 @@ import type cytoscape from 'cytoscape'; type BackgroundImage = cytoscape.Css.BackgroundImage; type PropertyValueNode = cytoscape.Css.PropertyValueNode; -import _ from 'lodash'; import { Properties } from '../properties'; type BaseImage = { @@ -34,7 +33,6 @@ export interface DrawerProvider { (properties: Properties, params: DrawerParameters): Drawer; } -export type Memo = T & _.MemoizedFunction; export type Aggregated = { [k in keyof T]-?: T[k][]; }; diff --git a/projects/ngx-reactome-cytoscape-style/src/lib/interactivity.ts b/projects/ngx-reactome-cytoscape-style/src/lib/interactivity.ts index 895b1b9..3e3e129 100644 --- a/projects/ngx-reactome-cytoscape-style/src/lib/interactivity.ts +++ b/projects/ngx-reactome-cytoscape-style/src/lib/interactivity.ts @@ -31,9 +31,16 @@ export class Interactivity { this.initHover(cy); this.initSelect(cy); this.initClick(cy); - this.initZoom(cy); + // Before the layers: a structure that cannot be found removes its node + // from this collection as the layer is drawn. + this.withoutStructure = cy.collection(); + this.updateProteins(); this.initStructureVideo(cy); this.initStructureMolecule(cy); + // After the layers, so its first run sets their opacity for this zoom. + // It ran first, and the molecule layer stayed at full opacity until the + // reader zoomed. + this.initZoom(cy); } expandReaction(reactionNode: cytoscape.NodeCollection) { @@ -430,13 +437,19 @@ export class Interactivity { // the zoom's opacity with it, and a trivial molecule then fell back to its // stylesheet opacity of 0 until the next zoom -- which never came in a // diagram that cannot be zoomed. + // The zoom moved the label aside to make room for the structure; with no + // structure it goes back to the middle. for (const property of [ 'background-position-x', 'background-position-y', 'background-width', 'background-height', + 'font-size', + 'text-margin-x', + 'text-max-width', ]) node.removeStyle(property); + this.withoutStructure = this.withoutStructure.union(node); this.structureContainers = this.structureContainers.not(node); } @@ -451,7 +464,9 @@ export class Interactivity { layers.renderPerNode( this.moleculeLayer, - (_elem: HTMLElement, _node: cytoscape.NodeSingular) => {}, + (elem: HTMLElement, node: cytoscape.NodeSingular) => { + elem.style.visibility = node.visible() ? 'visible' : 'hidden'; + }, { init: (elem: HTMLElement, node: cytoscape.NodeSingular) => { elem.classList.add('molecule-structure'); @@ -503,6 +518,9 @@ export class Interactivity { uniqueElements: true, checkBounds: false, selector: '.Molecule', + // Not only when a node moves: a node hidden or shown changes no + // position, and its structure has to follow it. + updateOn: 'position style', queryEachTime: false, } ); @@ -522,16 +540,17 @@ export class Interactivity { } structureContainers!: cytoscape.NodeCollection; + /** Nodes whose structure could not be found: never counted back in. */ + private withoutStructure!: cytoscape.NodeCollection; updateProteins() { - this.structureContainers = this.cy.nodes('.Protein').or('.Molecule'); + this.structureContainers = this.cy.nodes('.Protein').or('.Molecule').not(this.withoutStructure); } initZoom(cy: cytoscape.Core) { const allShadows = cy.edges('[?pathway]'); const shadowLabels = cy.nodes('.Shadow'); const trivial = cy.elements('.trivial'); - this.updateProteins(); cy.minZoom(Math.min(cy.zoom(), extract(this.properties.shadow.labelOpacity)[0][0] / 100)); cy.maxZoom(15); @@ -693,7 +712,7 @@ export class Interactivity { const handler = (e: cytoscape.EventObject) => updateDecorationPosition(e.target); cy.on('mouseover', '.drug', handler) .on('mouseout', '.drug', handler) - .on('deselect', '.drug', handler) + .on('unselect', '.drug', handler) .on('select', '.drug', handler); this.triggerZoom(); diff --git a/projects/ngx-reactome-cytoscape-style/src/lib/properties-utils.ts b/projects/ngx-reactome-cytoscape-style/src/lib/properties-utils.ts index e94a889..fc98190 100644 --- a/projects/ngx-reactome-cytoscape-style/src/lib/properties-utils.ts +++ b/projects/ngx-reactome-cytoscape-style/src/lib/properties-utils.ts @@ -44,7 +44,7 @@ export function defaultable(object: T): Defaultable { key: KA, defaultValue: VA ): Defaultable { - if (!object[key]) object[key] = defaultValue; + if (object[key] === undefined || object[key] === null) object[key] = defaultValue; return defaultable as Defaultable; }; diff --git a/projects/ngx-reactome-cytoscape-style/src/lib/properties.spec.ts b/projects/ngx-reactome-cytoscape-style/src/lib/properties.spec.ts new file mode 100644 index 0000000..bc49136 --- /dev/null +++ b/projects/ngx-reactome-cytoscape-style/src/lib/properties.spec.ts @@ -0,0 +1,44 @@ +import { afterEach, describe, expect, it, vi } from 'vitest'; +import { Style } from './style'; +import { extract } from './properties-utils'; +import type { UserProperties } from './properties'; + +/** A Style on a container carrying these CSS variables. */ +function styleWith(vars: Record = {}, user: UserProperties = {}) { + const container = document.createElement('div'); + for (const [name, value] of Object.entries(vars)) container.style.setProperty(name, value); + document.body.appendChild(container); + return new Style(container, user); +} + +describe('the style properties', () => { + afterEach(() => vi.restoreAllMocks()); + + it('keeps a setting turned off', () => { + // Every falsy value was taken for a missing one and replaced by the + // default -- so a feature could not be turned off. + const style = styleWith({}, { features: { compare: false, interactors: false } }); + expect(extract(style.properties.features.compare)).toBe(false); + expect(extract(style.properties.features.interactors)).toBe(false); + }); + + it('takes a CSS value of 0 as 0', () => { + const style = styleWith({ '--compartment-opacity': '0' }); + expect(extract(style.properties.compartment.opacity)).toBe(0); + }); + + it('reads the palettes the site sets, without logging', () => { + const errors = vi.spyOn(console, 'error').mockImplementation(() => undefined); + // As src/styles.scss writes them: single-quoted colours, and a name. + const style = styleWith({ + '--analysis-uni-palette': "[ [0, '#FFFFE0'], [1, '#00429D']]", + '--analysis-bi-palette': "'viridis'", + }); + expect(extract(style.properties.analysis.unidirectionalPalette)).toEqual([ + [0, '#FFFFE0'], + [1, '#00429D'], + ]); + expect(extract(style.properties.analysis.bidirectionalPalette)).toBe('viridis'); + expect(errors).not.toHaveBeenCalled(); + }); +}); diff --git a/projects/ngx-reactome-cytoscape-style/src/lib/properties.ts b/projects/ngx-reactome-cytoscape-style/src/lib/properties.ts index 874fad2..5129384 100644 --- a/projects/ngx-reactome-cytoscape-style/src/lib/properties.ts +++ b/projects/ngx-reactome-cytoscape-style/src/lib/properties.ts @@ -117,6 +117,30 @@ export interface Properties extends PropertiesType { }; } +/** A CSS variable as a number, or the default when it is unset or not a number. 0 is a number. */ +function cssNumber(css: CSSStyleDeclaration, name: string, defaultValue: number): number { + const value = Number.parseFloat(css.getPropertyValue(name)); + return Number.isFinite(value) ? value : defaultValue; +} + +/** + * A CSS variable holding JSON, or the default when it is unset or unreadable. + * Stylesheets quote with single quotes as readily as double, so + * `[[0, '#FFFFE0']]` and `'viridis'` are read as JSON would read them double-quoted. + */ +function cssJson(css: CSSStyleDeclaration, name: string, defaultValue: T): T { + const value = css.getPropertyValue(name).trim(); + if (!value) return defaultValue; + for (const text of [value, value.replace(/'/g, '"')]) { + try { + return JSON.parse(text) as T; + } catch { + // Try the next reading. + } + } + return defaultValue; +} + export function setDefaults(properties: UserProperties = {}, css: CSSStyleDeclaration): Properties { const global: Properties['global'] = defaultable(properties.global || {}) .setDefault('thickness', 4) @@ -139,44 +163,26 @@ export function setDefaults(properties: UserProperties = {}, css: CSSStyleDeclar .setDefault('flag', () => css.getPropertyValue('--flag') || '#DE75B4'); const compartment: Properties['compartment'] = defaultable(properties.compartment || {}) - .setDefault( - 'opacity', - () => Number.parseFloat(css.getPropertyValue('--compartment-opacity')) || 0.06 - ) + .setDefault('opacity', () => cssNumber(css, '--compartment-opacity', 0.06)) .setDefault('fill', () => css.getPropertyValue('--compartment') || '#E5834A'); const shadow: Properties['shadow'] = defaultable(properties.shadow || {}) - .setDefault( - 'luminosity', - () => Number.parseFloat(css.getPropertyValue('--shadow-luminosity')) || 40 - ) - .setDefault('padding', () => Number.parseFloat(css.getPropertyValue('--shadow-padding')) || 20) - .setDefault( - 'fontSize', - () => Number.parseFloat(css.getPropertyValue('--shadow-font-size')) || 80 - ) - .setDefault( - 'fontPadding', - () => Number.parseFloat(css.getPropertyValue('--shadow-font-padding')) || 15 + .setDefault('luminosity', () => cssNumber(css, '--shadow-luminosity', 40)) + .setDefault('padding', () => cssNumber(css, '--shadow-padding', 20)) + .setDefault('fontSize', () => cssNumber(css, '--shadow-font-size', 80)) + .setDefault('fontPadding', () => cssNumber(css, '--shadow-font-padding', 15)) + .setDefault('opacity', () => + cssJson(css, '--shadow-opacity', [ + [20, 20], + [40, 0], + ]) ) - .setDefault('opacity', () => { - const p = css.getPropertyValue('--shadow-opacity'); - return p - ? JSON.parse(p) - : [ - [20, 20], - [40, 0], - ]; - }) - .setDefault('labelOpacity', () => { - const p = css.getPropertyValue('--shadow-label-opacity'); - return p - ? JSON.parse(p) - : [ - [20, 100], - [40, 0], - ]; - }); + .setDefault('labelOpacity', () => + cssJson(css, '--shadow-label-opacity', [ + [20, 100], + [40, 0], + ]) + ); const protein: Properties['protein'] = defaultable(properties.protein || {}) .setDefault('fill', () => css.getPropertyValue('--primary-contrast-1') || '#001F29') @@ -226,10 +232,7 @@ export function setDefaults(properties: UserProperties = {}, css: CSSStyleDeclar .setDefault('filter', () => css.getPropertyValue('--polymer-filter') || 'invert(0.2)'); const cell: Properties['cell'] = defaultable(properties.cell || {}) - .setDefault( - 'thickness', - () => Number.parseFloat(css.getPropertyValue('--cell-thickness')) || 16 - ) + .setDefault('thickness', () => cssNumber(css, '--cell-thickness', 16)) .setDefault('fill', () => css.getPropertyValue('--tertiary-contrast-2') || '#004882') .setDefault('stroke', () => css.getPropertyValue('--on-tertiary') || '#FFFFFF'); @@ -244,68 +247,48 @@ export function setDefaults(properties: UserProperties = {}, css: CSSStyleDeclar const interactor: Properties['interactor'] = defaultable(properties.interactor || {}) .setDefault('fill', () => css.getPropertyValue('--interactor-fill') || '#68297C') .setDefault('stroke', () => css.getPropertyValue('--interactor-stroke') || '#9f5cb5') - .setDefault( - 'decorationWidth', - () => Number.parseFloat(css.getPropertyValue('--decorationWidth')) || 20 - ); + .setDefault('decorationWidth', () => cssNumber(css, '--decorationWidth', 20)); const trivial: Properties['trivial'] = defaultable(properties.trivial || {}).setDefault( 'opacity', - () => { - const p = css.getPropertyValue('--trivial-opacity'); - return p - ? JSON.parse(p) - : [ - [40, 0], - [60, 100], - ]; - } + () => + cssJson(css, '--trivial-opacity', [ + [40, 0], + [60, 100], + ]) ); const structure: Properties['structure'] = defaultable(properties.structure || {}).setDefault( 'opacity', - () => { - const p = css.getPropertyValue('--structure-opacity'); - return p - ? JSON.parse(p) - : [ - [130, 0], - [150, 100], - ]; - } + () => + cssJson(css, '--structure-opacity', [ + [130, 0], + [150, 100], + ]) ); const font: Properties['font'] = defaultable(properties.font || {}).setDefault('size', 12); const analysis: Properties['analysis'] = defaultable(properties.analysis || {}) - .setDefault('min', Number.parseFloat(css.getPropertyValue('--analysis-min')) || 0) - .setDefault('max', Number.parseFloat(css.getPropertyValue('--analysis-max')) || 1) + .setDefault('min', cssNumber(css, '--analysis-min', 0)) + .setDefault('max', cssNumber(css, '--analysis-max', 1)) .setDefault( 'notFound', () => css.getPropertyValue('--analysis-not-found') || extract(global.onSurface) ) - .setDefault('unidirectionalPalette', () => { - const p = css.getPropertyValue('--analysis-uni-palette'); - console.error(p, typeof p); - return p - ? JSON.parse(p) - : [ - [0.0, '#FFFFE0'], - [1.0, '#00429D'], - ]; - }) - .setDefault('bidirectionalPalette', () => { - const p = css.getPropertyValue('--analysis-bi-palette'); - console.error(p, typeof p); - - return p - ? JSON.parse(p) - : [ - [0.0, '#93003A'], - [0.5, '#FFFFE0'], - [1.0, '#00429D'], - ]; - }); + .setDefault('unidirectionalPalette', () => + cssJson(css, '--analysis-uni-palette', [ + [0.0, '#FFFFE0'], + [1.0, '#00429D'], + ]) + ) + .setDefault('bidirectionalPalette', () => + cssJson(css, '--analysis-bi-palette', [ + [0.0, '#93003A'], + [0.5, '#FFFFE0'], + [1.0, '#00429D'], + ]) + ); const features: Properties['features'] = defaultable(properties.features || {}) .setDefault('edit', false) diff --git a/projects/ngx-reactome-cytoscape-style/src/lib/style.ts b/projects/ngx-reactome-cytoscape-style/src/lib/style.ts index 7ecf385..dc77409 100644 --- a/projects/ngx-reactome-cytoscape-style/src/lib/style.ts +++ b/projects/ngx-reactome-cytoscape-style/src/lib/style.ts @@ -52,13 +52,13 @@ export class Style { this.initSubPathwayColors(); } - initSubPathwayColors() { - const subPathways = this.cy?.nodes('.Shadow'); + initSubPathwayColors(cy = this.cy) { + const subPathways = cy?.nodes('.Shadow'); if (!subPathways) return; const dH = 360 / subPathways.length; subPathways.forEach((subPathway, i) => { - const edges = this.cy!.edges(`[pathway=${subPathway.data('reactomeId')}]`); + const edges = cy!.edges(`[pathway=${subPathway.data('reactomeId')}]`); subPathway.data('edges', edges); const color = chroma.hsl(dH * i, 1, extract(this.properties.shadow.luminosity) / 100); @@ -917,8 +917,10 @@ export class Style { update(cy: cytoscape.Core) { this.clearCache(); cy.style(this.getStyleSheet()); - this.initSubPathwayColors(); - this.interactivity.triggerZoom(); + // The graph asked for: one Style is bound to several, and this.cy and + // this.interactivity are only the last of them. + this.initSubPathwayColors(cy); + interactivityOf(cy)?.triggerZoom(); } loadAnalysis(cy: cytoscape.Core, palette: Scale) { diff --git a/projects/ngx-reactome-diagram/src/lib/diagram/diagram.component.ts b/projects/ngx-reactome-diagram/src/lib/diagram/diagram.component.ts index ae54ec7..bfeaeab 100644 --- a/projects/ngx-reactome-diagram/src/lib/diagram/diagram.component.ts +++ b/projects/ngx-reactome-diagram/src/lib/diagram/diagram.component.ts @@ -11,7 +11,7 @@ import { import { DiagramService } from "../services/diagram.service"; import cytoscape from "cytoscape"; // @ts-ignore -import { ReactomeEvent, ReactomeEventTypes, Style } from "ngx-reactome-cytoscape-style"; +import { interactivityOf, ReactomeEvent, ReactomeEventTypes, Style } from "ngx-reactome-cytoscape-style"; import { DarkService } from "../services/dark.service"; import { delay, distinctUntilChanged, filter, Observable, share, Subject, tap } from "rxjs"; import { FormControl } from "@angular/forms"; @@ -360,12 +360,18 @@ export class DiagramComponent implements AfterViewInit, OnChanges { shadowNodes.style({opacity: 1}) trivials.style({opacity: 1}) shadowEdges.addClass('shadow') - cy.on('zoom', cy.data('reactome').interactivity.onZoom.shadow) - cy.data('reactome').interactivity.onZoom.shadow() + // The handlers bound to this graph: cy.data('reactome').interactivity is + // whichever graph its Style was bound to last. + const onZoomShadow = interactivityOf(cy)?.onZoom.shadow; + if (onZoomShadow) { + cy.on('zoom', onZoomShadow) + onZoomShadow() + } } else { shadowNodes.style({opacity: 0}) shadowEdges.removeClass('shadow') - cy.off('zoom', cy.data('reactome').interactivity.onZoom.shadow) + const onZoomShadow = interactivityOf(cy)?.onZoom.shadow; + if (onZoomShadow) cy.off('zoom', onZoomShadow) trivials.style({opacity: 1}) cy.edges().style({'underlay-opacity': 0}) } From ad1d9b72863852b32c49d2b57117df5222fe7386 Mon Sep 17 00:00:00 2001 From: Adam Wright Date: Sat, 3 Oct 2026 15:07:44 +0000 Subject: [PATCH 45/49] Test with Vitest through Angular's unit-test builder, and make the specs real Karma could not run the style library's specs, which are written for Vitest, and the diagram's were generated boilerplate that failed: two declared standalone components, one fetched a list of diagrams and asserted nothing. Builders move from @angular-devkit/build-angular to @angular/build (429 packages fewer), tests to @angular/build:unit-test on jsdom. A typeRoots left inside angularCompilerOptions, which the compiler merges into the TypeScript options, hid vitest's types; it is gone. The diagram's specs now test behaviour, and found three faults, each shown failing first: - reading the state from the address told no subscriber, and told them when nothing had changed: the change check was inverted; - ids in the address stayed strings: the number test matched the letter d; - a configuration without diagramUrl replaced the default with undefined. DiagramIteratorComponent is removed: unexported, unused, declared in no module, and its template had never compiled. ngx-reactome-style is Sass only, so it has no test target. `npm run build` builds in dependency order; `npm test` runs every project. Co-Authored-By: Claude Opus 5.5 --- README.md | 8 +- angular.json | 54 +- package-lock.json | 23204 ++++++---------- package.json | 20 +- .../ngx-reactome-cytoscape-style/README.md | 2 +- .../tsconfig.spec.json | 2 +- projects/ngx-reactome-diagram/README.md | 2 +- .../diagram-iterator.component.html | 13 - .../diagram-iterator.component.scss | 0 .../diagram-iterator.component.spec.ts | 21 - .../diagram-iterator.component.ts | 47 - .../src/lib/diagram/diagram.component.spec.ts | 32 +- .../services/diagram-state.service.spec.ts | 28 +- .../src/lib/services/diagram-state.service.ts | 7 +- .../src/lib/services/diagram.service.spec.ts | 56 +- .../src/lib/services/diagram.service.ts | 4 +- .../ngx-reactome-diagram/tsconfig.spec.json | 2 +- projects/ngx-reactome-style/README.md | 2 +- .../ngx-reactome-style/tsconfig.spec.json | 14 - tsconfig.json | 6 +- tsconfig.spec.json | 2 +- 21 files changed, 8571 insertions(+), 14955 deletions(-) delete mode 100644 projects/ngx-reactome-diagram/src/lib/diagram-iterator/diagram-iterator.component.html delete mode 100644 projects/ngx-reactome-diagram/src/lib/diagram-iterator/diagram-iterator.component.scss delete mode 100644 projects/ngx-reactome-diagram/src/lib/diagram-iterator/diagram-iterator.component.spec.ts delete mode 100644 projects/ngx-reactome-diagram/src/lib/diagram-iterator/diagram-iterator.component.ts delete mode 100644 projects/ngx-reactome-style/tsconfig.spec.json diff --git a/README.md b/README.md index 094dd0d..c7c2198 100644 --- a/README.md +++ b/README.md @@ -12,15 +12,11 @@ Run `ng generate component component-name` to generate a new component. You can ## Build -Run `ng build` to build the project. The build artifacts will be stored in the `dist/` directory. +Run `npm run build` to build the libraries and the demo app, in the order they depend on each other (`npm run build:libs` for the libraries alone). The build artifacts are stored in `dist/`. ## Running unit tests -Run `ng test` to execute the unit tests via [Karma](https://karma-runner.github.io). - -## Running end-to-end tests - -Run `ng e2e` to execute the end-to-end tests via a platform of your choice. To use this command, you need to first add a package that implements end-to-end testing capabilities. +Run `npm test` to run every project's unit tests with [Vitest](https://vitest.dev) through Angular's unit-test builder, or `ng test ` for one. The diagram's tests use the built style library, so run `npm run build:libs` first. ## Further help diff --git a/angular.json b/angular.json index c95c885..23e4e63 100644 --- a/angular.json +++ b/angular.json @@ -11,7 +11,7 @@ "prefix": "app", "architect": { "build": { - "builder": "@angular-devkit/build-angular:application", + "builder": "@angular/build:application", "options": { "outputPath": "dist/ngx-reactome-base", "index": "src/index.html", @@ -54,7 +54,7 @@ "defaultConfiguration": "production" }, "serve": { - "builder": "@angular-devkit/build-angular:dev-server", + "builder": "@angular/build:dev-server", "configurations": { "production": { "buildTarget": "ngx-reactome-base:build:production" @@ -66,27 +66,15 @@ "defaultConfiguration": "development" }, "extract-i18n": { - "builder": "@angular-devkit/build-angular:extract-i18n", + "builder": "@angular/build:extract-i18n", "options": { "buildTarget": "ngx-reactome-base:build" } }, "test": { - "builder": "@angular-devkit/build-angular:karma", + "builder": "@angular/build:unit-test", "options": { - "polyfills": [ - "zone.js", - "zone.js/testing" - ], - "tsConfig": "tsconfig.spec.json", - "assets": [ - "src/favicon.ico", - "src/assets" - ], - "styles": [ - "src/styles.css" - ], - "scripts": [] + "tsConfig": "tsconfig.spec.json" } } } @@ -98,7 +86,7 @@ "prefix": "lib", "architect": { "build": { - "builder": "@angular-devkit/build-angular:ng-packagr", + "builder": "@angular/build:ng-packagr", "options": { "project": "projects/ngx-reactome-style/ng-package.json" }, @@ -111,16 +99,6 @@ } }, "defaultConfiguration": "production" - }, - "test": { - "builder": "@angular-devkit/build-angular:karma", - "options": { - "tsConfig": "projects/ngx-reactome-style/tsconfig.spec.json", - "polyfills": [ - "zone.js", - "zone.js/testing" - ] - } } } }, @@ -131,7 +109,7 @@ "prefix": "lib", "architect": { "build": { - "builder": "@angular-devkit/build-angular:ng-packagr", + "builder": "@angular/build:ng-packagr", "options": { "project": "projects/ngx-reactome-diagram/ng-package.json" }, @@ -146,13 +124,9 @@ "defaultConfiguration": "production" }, "test": { - "builder": "@angular-devkit/build-angular:karma", + "builder": "@angular/build:unit-test", "options": { - "tsConfig": "projects/ngx-reactome-diagram/tsconfig.spec.json", - "polyfills": [ - "zone.js", - "zone.js/testing" - ] + "tsConfig": "projects/ngx-reactome-diagram/tsconfig.spec.json" } } } @@ -164,7 +138,7 @@ "prefix": "lib", "architect": { "build": { - "builder": "@angular-devkit/build-angular:ng-packagr", + "builder": "@angular/build:ng-packagr", "options": { "project": "projects/ngx-reactome-cytoscape-style/ng-package.json" }, @@ -179,13 +153,9 @@ "defaultConfiguration": "production" }, "test": { - "builder": "@angular-devkit/build-angular:karma", + "builder": "@angular/build:unit-test", "options": { - "tsConfig": "projects/ngx-reactome-cytoscape-style/tsconfig.spec.json", - "polyfills": [ - "zone.js", - "zone.js/testing" - ] + "tsConfig": "projects/ngx-reactome-cytoscape-style/tsconfig.spec.json" } } } diff --git a/package-lock.json b/package-lock.json index c3f9bef..5cf1f6a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -30,23 +30,18 @@ "zone.js": "~0.15.0" }, "devDependencies": { - "@angular-devkit/build-angular": "^21.2.24", + "@angular/build": "^21.2.24", "@angular/cli": "^21.2.24", "@angular/compiler-cli": "^21.2.25", "@types/chroma-js": "^3.1.2", "@types/cytoscape-fcose": "^2.2.4", - "@types/jasmine": "~4.3.0", "@types/lodash": "^4.14.202", "angular-cli-ghpages": "^1.0.6", - "jasmine-core": "~4.6.0", - "karma": "~6.4.0", - "karma-chrome-launcher": "~3.2.0", - "karma-coverage": "~2.2.0", - "karma-jasmine": "~5.1.0", - "karma-jasmine-html-reporter": "~2.1.0", + "jsdom": "^30.1.1", "ng-packagr": "^21.2.7", "npm-run-all": "^4.1.1", - "typescript": "~5.9.3" + "typescript": "~5.9.3", + "vitest": "^4.1.11" } }, "node_modules/@algolia/abtesting": { @@ -322,67 +317,143 @@ "dev": true, "peer": true }, - "node_modules/@angular-devkit/build-angular": { + "node_modules/@angular-devkit/core": { + "version": "16.2.14", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-16.2.14.tgz", + "integrity": "sha512-Ui14/d2+p7lnmXlK/AX2ieQEGInBV75lonNtPQgwrYgskF8ufCuN0DyVZQUy9fJDkC+xQxbJyYrby/BS0R0e7w==", + "dev": true, + "peer": true, + "dependencies": { + "ajv": "8.12.0", + "ajv-formats": "2.1.1", + "jsonc-parser": "3.2.0", + "picomatch": "2.3.1", + "rxjs": "7.8.1", + "source-map": "0.7.4" + }, + "engines": { + "node": "^16.14.0 || >=18.10.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/core/node_modules/jsonc-parser": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", + "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", + "dev": true, + "peer": true + }, + "node_modules/@angular-devkit/core/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "peer": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/@angular-devkit/schematics": { + "version": "16.2.14", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-16.2.14.tgz", + "integrity": "sha512-B6LQKInCT8w5zx5Pbroext5eFFRTCJdTwHN8GhcVS8IeKCnkeqVTQLjB4lBUg7LEm8Y7UHXwzrVxmk+f+MBXhw==", + "dev": true, + "peer": true, + "dependencies": { + "@angular-devkit/core": "16.2.14", + "jsonc-parser": "3.2.0", + "magic-string": "0.30.1", + "ora": "5.4.1", + "rxjs": "7.8.1" + }, + "engines": { + "node": "^16.14.0 || >=18.10.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular-devkit/schematics/node_modules/jsonc-parser": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", + "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", + "dev": true, + "peer": true + }, + "node_modules/@angular-devkit/schematics/node_modules/magic-string": { + "version": "0.30.1", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.1.tgz", + "integrity": "sha512-mbVKXPmS0z0G4XqFDCTllmDQ6coZzn94aMlb0o/A4HEHJCKcanlDZwYJgwnkmgD3jyWhUgj9VsPrfd972yPffA==", + "dev": true, + "peer": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.15" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@angular/animations": { + "version": "21.2.25", + "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-21.2.25.tgz", + "integrity": "sha512-75Ok3XvrFoP1lAATNqDQFN24RnGmkiOkzcMZ2B0JjYciHqDqp9Sb7v53suwtivW0UXfse4O5FjqMu4wQwzbFng==", + "deprecated": "@angular/animations is deprecated. Use `animate.enter` and `animate.leave` instead. For more information see: https://v22.angular.dev/guide/animations.", + "license": "MIT", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^20.19.0 || ^22.12.0 || >=24.0.0" + }, + "peerDependencies": { + "@angular/core": "21.2.25" + } + }, + "node_modules/@angular/build": { "version": "21.2.24", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-21.2.24.tgz", - "integrity": "sha512-qJ7ZrKsa08rXkYp5eeVQtepdl+t81Tfl47USit1Uk3VmwOPYoiH/6O0AIemgX2nlqN6FfKk0nVANJZBLcje0Dg==", + "resolved": "https://registry.npmjs.org/@angular/build/-/build-21.2.24.tgz", + "integrity": "sha512-NurM2W7Q/lCGonkYgSNNxGrh9AYH3LksekYRVxl0KxVKa8Z5x6oMYlLfyI4Lv9Q4C1/x1SXv3xNxgYu/nIW4vA==", "dev": true, "license": "MIT", "dependencies": { "@ampproject/remapping": "2.3.0", "@angular-devkit/architect": "0.2102.24", - "@angular-devkit/build-webpack": "0.2102.24", - "@angular-devkit/core": "21.2.24", - "@angular/build": "21.2.24", "@babel/core": "7.29.7", - "@babel/generator": "7.29.1", "@babel/helper-annotate-as-pure": "7.27.3", "@babel/helper-split-export-declaration": "7.24.7", - "@babel/plugin-transform-async-generator-functions": "7.29.0", - "@babel/plugin-transform-async-to-generator": "7.28.6", - "@babel/plugin-transform-runtime": "7.29.0", - "@babel/preset-env": "7.29.2", - "@babel/runtime": "7.29.2", - "@discoveryjs/json-ext": "0.6.3", - "@ngtools/webpack": "21.2.24", - "ansi-colors": "4.1.3", - "autoprefixer": "10.4.27", - "babel-loader": "10.0.0", + "@inquirer/confirm": "5.1.21", + "@vitejs/plugin-basic-ssl": "2.1.4", + "beasties": "0.4.1", "browserslist": "^4.26.0", - "copy-webpack-plugin": "14.0.0", - "css-loader": "7.1.3", - "esbuild-wasm": "0.28.1", - "http-proxy-middleware": "3.0.7", + "esbuild": "0.28.1", + "https-proxy-agent": "7.0.6", "istanbul-lib-instrument": "6.0.3", "jsonc-parser": "3.3.1", - "karma-source-map-support": "1.4.0", - "less": "4.9.0", - "less-loader": "12.3.1", - "license-webpack-plugin": "4.0.2", - "loader-utils": "3.3.1", - "mini-css-extract-plugin": "2.10.0", - "open": "11.0.0", - "ora": "9.3.0", + "listr2": "9.0.5", + "magic-string": "0.30.21", + "mrmime": "2.0.1", + "parse5-html-rewriting-stream": "8.0.0", "picomatch": "4.0.4", "piscina": "5.2.0", - "postcss": "8.5.23", - "postcss-loader": "8.2.0", - "resolve-url-loader": "5.0.0", - "rxjs": "7.8.2", + "rolldown": "1.0.0-rc.4", "sass": "1.97.3", - "sass-loader": "16.0.7", "semver": "7.7.4", - "source-map-loader": "5.0.0", "source-map-support": "0.5.21", - "terser": "5.46.0", "tinyglobby": "0.2.15", - "tree-kill": "1.2.2", - "tslib": "2.8.1", - "webpack": "5.105.2", - "webpack-dev-middleware": "7.4.5", - "webpack-dev-server": "5.2.6", - "webpack-merge": "6.0.1", - "webpack-subresource-integrity": "5.1.0" + "undici": "7.29.1", + "vite": "7.3.6", + "watchpack": "2.5.1" }, "engines": { "node": "^20.19.0 || ^22.12.0 || >=24.0.0", @@ -390,9 +461,10 @@ "yarn": ">= 1.13.0" }, "optionalDependencies": { - "esbuild": "0.28.1" + "lmdb": "3.5.1" }, "peerDependencies": { + "@angular/compiler": "^21.0.0", "@angular/compiler-cli": "^21.0.0", "@angular/core": "^21.0.0", "@angular/localize": "^21.0.0", @@ -400,15 +472,14 @@ "@angular/platform-server": "^21.0.0", "@angular/service-worker": "^21.0.0", "@angular/ssr": "^21.2.24", - "@web/test-runner": "^0.20.0", - "browser-sync": "^3.0.2", - "jest": "^30.2.0", - "jest-environment-jsdom": "^30.2.0", - "karma": "^6.3.0", + "karma": "^6.4.0", + "less": "^4.2.0", "ng-packagr": "^21.0.0", - "protractor": "^7.0.0", + "postcss": "^8.4.0", "tailwindcss": "^2.0.0 || ^3.0.0 || ^4.0.0", - "typescript": ">=5.9 <6.0" + "tslib": "^2.3.0", + "typescript": ">=5.9 <6.0", + "vitest": "^4.0.8" }, "peerDependenciesMeta": { "@angular/core": { @@ -429,33 +500,27 @@ "@angular/ssr": { "optional": true }, - "@web/test-runner": { - "optional": true - }, - "browser-sync": { - "optional": true - }, - "jest": { - "optional": true - }, - "jest-environment-jsdom": { + "karma": { "optional": true }, - "karma": { + "less": { "optional": true }, "ng-packagr": { "optional": true }, - "protractor": { + "postcss": { "optional": true }, "tailwindcss": { "optional": true + }, + "vitest": { + "optional": true } } }, - "node_modules/@angular-devkit/build-angular/node_modules/@angular-devkit/architect": { + "node_modules/@angular/build/node_modules/@angular-devkit/architect": { "version": "0.2102.24", "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.2102.24.tgz", "integrity": "sha512-U/d5l/1rfrNSlbGjMTunyzwxh+2vJce3y0r0tIx/NOFZbnYhq+gx+e33mR6oxI4yk/1Jks67ltvstrJuBbVbYg==", @@ -474,7 +539,7 @@ "yarn": ">= 1.13.0" } }, - "node_modules/@angular-devkit/build-angular/node_modules/@angular-devkit/core": { + "node_modules/@angular/build/node_modules/@angular-devkit/core": { "version": "21.2.24", "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-21.2.24.tgz", "integrity": "sha512-QLYLd6OcfQS5qWTlzG1/d8lFTcJDFcsY6sOaGVtrruYiDxrbeM2iJttoIoKzvbNPROFyo3fANVQJOVhytpXWPg==", @@ -502,7 +567,7 @@ } } }, - "node_modules/@angular-devkit/build-angular/node_modules/ajv": { + "node_modules/@angular/build/node_modules/ajv": { "version": "8.18.0", "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.18.0.tgz", "integrity": "sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==", @@ -519,7 +584,7 @@ "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/@angular-devkit/build-angular/node_modules/ajv-formats": { + "node_modules/@angular/build/node_modules/ajv-formats": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-3.0.1.tgz", "integrity": "sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==", @@ -537,105 +602,300 @@ } } }, - "node_modules/@angular-devkit/build-angular/node_modules/ansi-regex": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.4.0.tgz", - "integrity": "sha512-KzTVk2tCWAHtYrvvvaP8bJKJq2pVinhLcGEQdtLIYPbmNGNyYe8QwNaTUYQp2J7/vIsUKt5QCqAfUkYyG9DkOw==", + "node_modules/@angular/build/node_modules/istanbul-lib-instrument": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz", + "integrity": "sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" + "license": "BSD-3-Clause", + "dependencies": { + "@babel/core": "^7.23.9", + "@babel/parser": "^7.23.9", + "@istanbuljs/schema": "^0.1.3", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^7.5.4" }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" + "engines": { + "node": ">=10" } }, - "node_modules/@angular-devkit/build-angular/node_modules/chalk": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.6.2.tgz", - "integrity": "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==", + "node_modules/@angular/build/node_modules/rxjs": { + "version": "7.8.2", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.2.tgz", + "integrity": "sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==", "dev": true, - "license": "MIT", - "engines": { - "node": "^12.17.0 || ^14.13 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.1.0" } }, - "node_modules/@angular-devkit/build-angular/node_modules/cli-cursor": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-5.0.0.tgz", - "integrity": "sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==", + "node_modules/@angular/build/node_modules/semver": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", + "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", "dev": true, - "license": "MIT", - "dependencies": { - "restore-cursor": "^5.0.0" + "license": "ISC", + "bin": { + "semver": "bin/semver.js" }, "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=10" } }, - "node_modules/@angular-devkit/build-angular/node_modules/cli-spinners": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-3.4.0.tgz", - "integrity": "sha512-bXfOC4QcT1tKXGorxL3wbJm6XJPDqEnij2gQ2m7ESQuE+/z9YFIWnl/5RpTiKWbMq3EVKR4fRLJGn6DVfu0mpw==", + "node_modules/@angular/build/node_modules/source-map": { + "version": "0.7.6", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.6.tgz", + "integrity": "sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==", "dev": true, - "license": "MIT", + "license": "BSD-3-Clause", "engines": { - "node": ">=18.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">= 12" } }, - "node_modules/@angular-devkit/build-angular/node_modules/is-interactive": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-2.0.0.tgz", - "integrity": "sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==", + "node_modules/@angular/build/node_modules/undici": { + "version": "7.29.1", + "resolved": "https://registry.npmjs.org/undici/-/undici-7.29.1.tgz", + "integrity": "sha512-RYONW2MeafgYlkVOKYKkA/Ag7BmXqgIWCa8t1m0JcxrQg9pI9lEqRhAOruOBCbAohOa/gkCF+iPi9hrgvTzu6Q==", "dev": true, "license": "MIT", "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=20.18.1" } }, - "node_modules/@angular-devkit/build-angular/node_modules/is-unicode-supported": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-2.1.0.tgz", - "integrity": "sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==", - "dev": true, + "node_modules/@angular/cdk": { + "version": "21.2.14", + "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-21.2.14.tgz", + "integrity": "sha512-806REq/CLf37nEhmmd8Q+ILN8z/RVG2vk2n8YZ/4TdHpcBCi5ux4AxLbpMmduLwGPOzPagJ6ggRzE5fnX0rmcQ==", "license": "MIT", - "engines": { - "node": ">=18" + "dependencies": { + "parse5": "^8.0.0", + "tslib": "^2.3.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependencies": { + "@angular/common": "^21.0.0 || ^22.0.0", + "@angular/core": "^21.0.0 || ^22.0.0", + "@angular/platform-browser": "^21.0.0 || ^22.0.0", + "rxjs": "^6.5.3 || ^7.4.0" } }, - "node_modules/@angular-devkit/build-angular/node_modules/istanbul-lib-instrument": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz", - "integrity": "sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==", + "node_modules/@angular/cli": { + "version": "21.2.24", + "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-21.2.24.tgz", + "integrity": "sha512-lx8baI3gssBv+xuwEf5wvAoBi7XSIB1RRuAmSnuAO2E4CAlJmU4eiVhKxd/haXvONH6peYxFGH2N6mSrkkHfIQ==", "dev": true, - "license": "BSD-3-Clause", + "license": "MIT", "dependencies": { - "@babel/core": "^7.23.9", - "@babel/parser": "^7.23.9", - "@istanbuljs/schema": "^0.1.3", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^7.5.4" + "@angular-devkit/architect": "0.2102.24", + "@angular-devkit/core": "21.2.24", + "@angular-devkit/schematics": "21.2.24", + "@inquirer/prompts": "7.10.1", + "@listr2/prompt-adapter-inquirer": "3.0.5", + "@modelcontextprotocol/sdk": "1.30.0", + "@schematics/angular": "21.2.24", + "@yarnpkg/lockfile": "1.1.0", + "algoliasearch": "5.48.1", + "ini": "6.0.0", + "jsonc-parser": "3.3.1", + "listr2": "9.0.5", + "npm-package-arg": "13.0.2", + "pacote": "21.5.1", + "parse5-html-rewriting-stream": "8.0.0", + "semver": "7.7.4", + "yargs": "18.0.0", + "zod": "4.3.6" + }, + "bin": { + "ng": "bin/ng.js" }, "engines": { - "node": ">=10" + "node": "^20.19.0 || ^22.12.0 || >=24.0.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular/cli/node_modules/@angular-devkit/architect": { + "version": "0.2102.24", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.2102.24.tgz", + "integrity": "sha512-U/d5l/1rfrNSlbGjMTunyzwxh+2vJce3y0r0tIx/NOFZbnYhq+gx+e33mR6oxI4yk/1Jks67ltvstrJuBbVbYg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@angular-devkit/core": "21.2.24", + "rxjs": "7.8.2" + }, + "bin": { + "architect": "bin/cli.js" + }, + "engines": { + "node": "^20.19.0 || ^22.12.0 || >=24.0.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular/cli/node_modules/@angular-devkit/core": { + "version": "21.2.24", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-21.2.24.tgz", + "integrity": "sha512-QLYLd6OcfQS5qWTlzG1/d8lFTcJDFcsY6sOaGVtrruYiDxrbeM2iJttoIoKzvbNPROFyo3fANVQJOVhytpXWPg==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "8.18.0", + "ajv-formats": "3.0.1", + "jsonc-parser": "3.3.1", + "picomatch": "4.0.4", + "rxjs": "7.8.2", + "source-map": "0.7.6" + }, + "engines": { + "node": "^20.19.0 || ^22.12.0 || >=24.0.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "peerDependencies": { + "chokidar": "^5.0.0" + }, + "peerDependenciesMeta": { + "chokidar": { + "optional": true + } + } + }, + "node_modules/@angular/cli/node_modules/@angular-devkit/schematics": { + "version": "21.2.24", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-21.2.24.tgz", + "integrity": "sha512-mLOme2vfbLrHFmMyM6ybPuGCnCvPiemXWdHnptY2Q7Hzum72DabfgtTNsrMcI2F5zrQV2DDQunNjC5cXqtq4/w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@angular-devkit/core": "21.2.24", + "jsonc-parser": "3.3.1", + "magic-string": "0.30.21", + "ora": "9.3.0", + "rxjs": "7.8.2" + }, + "engines": { + "node": "^20.19.0 || ^22.12.0 || >=24.0.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular/cli/node_modules/ajv": { + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.18.0.tgz", + "integrity": "sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/@angular/cli/node_modules/ajv-formats": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-3.0.1.tgz", + "integrity": "sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/@angular/cli/node_modules/ansi-regex": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.4.0.tgz", + "integrity": "sha512-KzTVk2tCWAHtYrvvvaP8bJKJq2pVinhLcGEQdtLIYPbmNGNyYe8QwNaTUYQp2J7/vIsUKt5QCqAfUkYyG9DkOw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@angular/cli/node_modules/chalk": { + "version": "5.6.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.6.2.tgz", + "integrity": "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@angular/cli/node_modules/cli-cursor": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-5.0.0.tgz", + "integrity": "sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==", + "dev": true, + "license": "MIT", + "dependencies": { + "restore-cursor": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@angular/cli/node_modules/cli-spinners": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-3.4.0.tgz", + "integrity": "sha512-bXfOC4QcT1tKXGorxL3wbJm6XJPDqEnij2gQ2m7ESQuE+/z9YFIWnl/5RpTiKWbMq3EVKR4fRLJGn6DVfu0mpw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@angular/cli/node_modules/is-interactive": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-2.0.0.tgz", + "integrity": "sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@angular/cli/node_modules/is-unicode-supported": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-2.1.0.tgz", + "integrity": "sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@angular-devkit/build-angular/node_modules/log-symbols": { + "node_modules/@angular/cli/node_modules/log-symbols": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-7.0.1.tgz", "integrity": "sha512-ja1E3yCr9i/0hmBVaM0bfwDjnGy8I/s6PP4DFp+yP+a+mrHO4Rm7DtmnqROTUkHIkqffC84YY7AeqX6oFk0WFg==", @@ -652,7 +912,7 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@angular-devkit/build-angular/node_modules/onetime": { + "node_modules/@angular/cli/node_modules/onetime": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/onetime/-/onetime-7.0.0.tgz", "integrity": "sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==", @@ -668,7 +928,7 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@angular-devkit/build-angular/node_modules/ora": { + "node_modules/@angular/cli/node_modules/ora": { "version": "9.3.0", "resolved": "https://registry.npmjs.org/ora/-/ora-9.3.0.tgz", "integrity": "sha512-lBX72MWFduWEf7v7uWf5DHp9Jn5BI8bNPGuFgtXMmr2uDz2Gz2749y3am3agSDdkhHPHYmmxEGSKH85ZLGzgXw==", @@ -691,7 +951,7 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@angular-devkit/build-angular/node_modules/restore-cursor": { + "node_modules/@angular/cli/node_modules/restore-cursor": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-5.1.0.tgz", "integrity": "sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==", @@ -708,7 +968,7 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@angular-devkit/build-angular/node_modules/rxjs": { + "node_modules/@angular/cli/node_modules/rxjs": { "version": "7.8.2", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.2.tgz", "integrity": "sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==", @@ -718,7 +978,7 @@ "tslib": "^2.1.0" } }, - "node_modules/@angular-devkit/build-angular/node_modules/semver": { + "node_modules/@angular/cli/node_modules/semver": { "version": "7.7.4", "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", @@ -731,7 +991,7 @@ "node": ">=10" } }, - "node_modules/@angular-devkit/build-angular/node_modules/signal-exit": { + "node_modules/@angular/cli/node_modules/signal-exit": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", @@ -744,7 +1004,7 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@angular-devkit/build-angular/node_modules/source-map": { + "node_modules/@angular/cli/node_modules/source-map": { "version": "0.7.6", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.6.tgz", "integrity": "sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==", @@ -754,7 +1014,7 @@ "node": ">= 12" } }, - "node_modules/@angular-devkit/build-angular/node_modules/string-width": { + "node_modules/@angular/cli/node_modules/string-width": { "version": "8.3.0", "resolved": "https://registry.npmjs.org/string-width/-/string-width-8.3.0.tgz", "integrity": "sha512-ZbmZM0JCihQN91dWnxoipT2KOEyHqEyfRXUyjuRhW8b/xnqPDoq4gWEVApTVa9db2wN8mmoikgFBbjh71+cGeQ==", @@ -771,7 +1031,7 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@angular-devkit/build-angular/node_modules/strip-ansi": { + "node_modules/@angular/cli/node_modules/strip-ansi": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz", "integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==", @@ -787,2992 +1047,2742 @@ "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, - "node_modules/@angular-devkit/build-webpack": { - "version": "0.2102.24", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.2102.24.tgz", - "integrity": "sha512-nXW4KRUM62J4+Y8Khb2PNEwK/b2hQ/2gwcOaeAKm+V/qQ/B2w/l8PjpJP21yLdd3jRZDFTvI6ASiq+P7b9QIkQ==", - "dev": true, + "node_modules/@angular/common": { + "version": "21.2.25", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-21.2.25.tgz", + "integrity": "sha512-1oxSrFqMyJF6xYXBDrciZSe3A67E5feYQXhmxH3d0hLe0wWM/pFZTvCvSnA65wHj8NTonuI7/HMBPwRKddHoGw==", "license": "MIT", "dependencies": { - "@angular-devkit/architect": "0.2102.24", - "rxjs": "7.8.2" + "tslib": "^2.3.0" }, "engines": { - "node": "^20.19.0 || ^22.12.0 || >=24.0.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" + "node": "^20.19.0 || ^22.12.0 || >=24.0.0" }, "peerDependencies": { - "webpack": "^5.30.0", - "webpack-dev-server": "^5.0.2" + "@angular/core": "21.2.25", + "rxjs": "^6.5.3 || ^7.4.0" } }, - "node_modules/@angular-devkit/build-webpack/node_modules/@angular-devkit/architect": { - "version": "0.2102.24", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.2102.24.tgz", - "integrity": "sha512-U/d5l/1rfrNSlbGjMTunyzwxh+2vJce3y0r0tIx/NOFZbnYhq+gx+e33mR6oxI4yk/1Jks67ltvstrJuBbVbYg==", - "dev": true, + "node_modules/@angular/compiler": { + "version": "21.2.25", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-21.2.25.tgz", + "integrity": "sha512-jR/TiwrHeLEOPT3fVp9q14UkCsBNni8xUIfof8F7JZW4Ze7/LpTLI2OWxajckWmR0+kCKam5RhWeFd5m/F553Q==", "license": "MIT", "dependencies": { - "@angular-devkit/core": "21.2.24", - "rxjs": "7.8.2" - }, - "bin": { - "architect": "bin/cli.js" + "tslib": "^2.3.0" }, "engines": { - "node": "^20.19.0 || ^22.12.0 || >=24.0.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" + "node": "^20.19.0 || ^22.12.0 || >=24.0.0" } }, - "node_modules/@angular-devkit/build-webpack/node_modules/@angular-devkit/core": { - "version": "21.2.24", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-21.2.24.tgz", - "integrity": "sha512-QLYLd6OcfQS5qWTlzG1/d8lFTcJDFcsY6sOaGVtrruYiDxrbeM2iJttoIoKzvbNPROFyo3fANVQJOVhytpXWPg==", + "node_modules/@angular/compiler-cli": { + "version": "21.2.25", + "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-21.2.25.tgz", + "integrity": "sha512-5qMekFc1QNJ7zxTqekOTRnY9WgYSo5nfqED14sou15uScepL+yDM07UrvVsR94CGc78/nhevYWLXbb4iPPZ00Q==", "dev": true, "license": "MIT", "dependencies": { - "ajv": "8.18.0", - "ajv-formats": "3.0.1", - "jsonc-parser": "3.3.1", - "picomatch": "4.0.4", - "rxjs": "7.8.2", - "source-map": "0.7.6" + "@babel/core": "7.29.7", + "@jridgewell/sourcemap-codec": "^1.4.14", + "chokidar": "^5.0.0", + "convert-source-map": "^1.5.1", + "reflect-metadata": "^0.2.0", + "semver": "^7.0.0", + "tslib": "^2.3.0", + "yargs": "^18.0.0" + }, + "bin": { + "ng-xi18n": "bundles/src/bin/ng_xi18n.js", + "ngc": "bundles/src/bin/ngc.js" }, "engines": { - "node": "^20.19.0 || ^22.12.0 || >=24.0.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" + "node": "^20.19.0 || ^22.12.0 || >=24.0.0" }, "peerDependencies": { - "chokidar": "^5.0.0" + "@angular/compiler": "21.2.25", + "typescript": ">=5.9 <6.1" }, "peerDependenciesMeta": { - "chokidar": { + "typescript": { "optional": true } } }, - "node_modules/@angular-devkit/build-webpack/node_modules/ajv": { - "version": "8.18.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.18.0.tgz", - "integrity": "sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==", + "node_modules/@angular/compiler-cli/node_modules/chokidar": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-5.0.0.tgz", + "integrity": "sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw==", "dev": true, "license": "MIT", "dependencies": { - "fast-deep-equal": "^3.1.3", - "fast-uri": "^3.0.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2" + "readdirp": "^5.0.0" + }, + "engines": { + "node": ">= 20.19.0" }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" + "url": "https://paulmillr.com/funding/" } }, - "node_modules/@angular-devkit/build-webpack/node_modules/ajv-formats": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-3.0.1.tgz", - "integrity": "sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==", + "node_modules/@angular/compiler-cli/node_modules/readdirp": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-5.1.1.tgz", + "integrity": "sha512-Kko+Y5XQ6fM+Ce3dq3m9YGxnacYZYl9cA1wZjaF3Vbry2L3i1qVg8+CAgNPsXRArPMUMCaOR7oa9Nqntc43JKA==", "dev": true, "license": "MIT", + "engines": { + "node": ">= 20.19.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@angular/core": { + "version": "21.2.25", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-21.2.25.tgz", + "integrity": "sha512-cku7EX0igTPnuqEWZ1NiQY4Pn1g2xBljQSk1+bXRKnudJiZCK8e1u2v0byNzWuKwmdz7kKXjz71o224HrtccVA==", + "license": "MIT", "dependencies": { - "ajv": "^8.0.0" + "tslib": "^2.3.0" + }, + "engines": { + "node": "^20.19.0 || ^22.12.0 || >=24.0.0" }, "peerDependencies": { - "ajv": "^8.0.0" + "@angular/compiler": "21.2.25", + "rxjs": "^6.5.3 || ^7.4.0", + "zone.js": "~0.15.0 || ~0.16.0" }, "peerDependenciesMeta": { - "ajv": { + "@angular/compiler": { + "optional": true + }, + "zone.js": { "optional": true } } }, - "node_modules/@angular-devkit/build-webpack/node_modules/rxjs": { - "version": "7.8.2", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.2.tgz", - "integrity": "sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==", - "dev": true, - "license": "Apache-2.0", + "node_modules/@angular/forms": { + "version": "21.2.25", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-21.2.25.tgz", + "integrity": "sha512-EQADo64/BaCKO1uGcQyHcYW1y2JwQMOfWQUteBsqFODMwoRQK96VH5Lf/8vUwvV7gvFrlA4FhVXjsv2KVdfPuw==", + "license": "MIT", "dependencies": { - "tslib": "^2.1.0" + "@standard-schema/spec": "^1.0.0", + "tslib": "^2.3.0" + }, + "engines": { + "node": "^20.19.0 || ^22.12.0 || >=24.0.0" + }, + "peerDependencies": { + "@angular/common": "21.2.25", + "@angular/core": "21.2.25", + "@angular/platform-browser": "21.2.25", + "rxjs": "^6.5.3 || ^7.4.0" } }, - "node_modules/@angular-devkit/build-webpack/node_modules/source-map": { - "version": "0.7.6", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.6.tgz", - "integrity": "sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">= 12" + "node_modules/@angular/material": { + "version": "21.2.14", + "resolved": "https://registry.npmjs.org/@angular/material/-/material-21.2.14.tgz", + "integrity": "sha512-fMQca8VRtei93JRRG9qQ+u08DCb0nga59Esoakq5yx3+A1NfdpFeUS1tBns56U04o8KAaIAwZK3NBqXz8ZKNqg==", + "license": "MIT", + "dependencies": { + "tslib": "^2.3.0" + }, + "peerDependencies": { + "@angular/cdk": "21.2.14", + "@angular/common": "^21.0.0 || ^22.0.0", + "@angular/core": "^21.0.0 || ^22.0.0", + "@angular/forms": "^21.0.0 || ^22.0.0", + "@angular/platform-browser": "^21.0.0 || ^22.0.0", + "rxjs": "^6.5.3 || ^7.4.0" } }, - "node_modules/@angular-devkit/core": { - "version": "16.2.14", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-16.2.14.tgz", - "integrity": "sha512-Ui14/d2+p7lnmXlK/AX2ieQEGInBV75lonNtPQgwrYgskF8ufCuN0DyVZQUy9fJDkC+xQxbJyYrby/BS0R0e7w==", - "dev": true, - "peer": true, + "node_modules/@angular/platform-browser": { + "version": "21.2.25", + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-21.2.25.tgz", + "integrity": "sha512-hQgeKZiKt42P+jcf9j7o3c1GSOwOXrAYX2hXCs4A0+/AQ1neAQ20bjjUAgz1fGC4P3bNdurw1ZLLhMA+ZBKPtg==", + "license": "MIT", "dependencies": { - "ajv": "8.12.0", - "ajv-formats": "2.1.1", - "jsonc-parser": "3.2.0", - "picomatch": "2.3.1", - "rxjs": "7.8.1", - "source-map": "0.7.4" + "tslib": "^2.3.0" }, "engines": { - "node": "^16.14.0 || >=18.10.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" + "node": "^20.19.0 || ^22.12.0 || >=24.0.0" }, "peerDependencies": { - "chokidar": "^3.5.2" + "@angular/animations": "21.2.25", + "@angular/common": "21.2.25", + "@angular/core": "21.2.25" }, "peerDependenciesMeta": { - "chokidar": { + "@angular/animations": { "optional": true } } }, - "node_modules/@angular-devkit/core/node_modules/jsonc-parser": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", - "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", - "dev": true, - "peer": true - }, - "node_modules/@angular-devkit/core/node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "peer": true, + "node_modules/@angular/platform-browser-dynamic": { + "version": "21.2.25", + "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-21.2.25.tgz", + "integrity": "sha512-ZtMCtLGXaEg+2LoXafnlPOZ2axwlwvy7rxQU8lSgruG9pBib6rL74h1OLUiBWwErkcyEZPx2rnSC6Pt03S9sQA==", + "deprecated": "@angular/platform-browser-dynamic is deprecated. Use `@angular/platform-browser` instead.", + "license": "MIT", + "dependencies": { + "tslib": "^2.3.0" + }, "engines": { - "node": ">=8.6" + "node": "^20.19.0 || ^22.12.0 || >=24.0.0" }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" + "peerDependencies": { + "@angular/common": "21.2.25", + "@angular/compiler": "21.2.25", + "@angular/core": "21.2.25", + "@angular/platform-browser": "21.2.25" } }, - "node_modules/@angular-devkit/schematics": { - "version": "16.2.14", - "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-16.2.14.tgz", - "integrity": "sha512-B6LQKInCT8w5zx5Pbroext5eFFRTCJdTwHN8GhcVS8IeKCnkeqVTQLjB4lBUg7LEm8Y7UHXwzrVxmk+f+MBXhw==", - "dev": true, - "peer": true, + "node_modules/@angular/router": { + "version": "21.2.25", + "resolved": "https://registry.npmjs.org/@angular/router/-/router-21.2.25.tgz", + "integrity": "sha512-85ZwJCBEpaXBmezusZLlgW2JzEEByzerlWT34I6IK/ZN4AKG8m2B/vlbTkKmHuzCOGWx1L7xFtPg/URkGGKwSA==", + "license": "MIT", "dependencies": { - "@angular-devkit/core": "16.2.14", - "jsonc-parser": "3.2.0", - "magic-string": "0.30.1", - "ora": "5.4.1", - "rxjs": "7.8.1" + "tslib": "^2.3.0" }, "engines": { - "node": "^16.14.0 || >=18.10.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" + "node": "^20.19.0 || ^22.12.0 || >=24.0.0" + }, + "peerDependencies": { + "@angular/common": "21.2.25", + "@angular/core": "21.2.25", + "@angular/platform-browser": "21.2.25", + "rxjs": "^6.5.3 || ^7.4.0" } }, - "node_modules/@angular-devkit/schematics/node_modules/jsonc-parser": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", - "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", - "dev": true, - "peer": true - }, - "node_modules/@angular-devkit/schematics/node_modules/magic-string": { - "version": "0.30.1", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.1.tgz", - "integrity": "sha512-mbVKXPmS0z0G4XqFDCTllmDQ6coZzn94aMlb0o/A4HEHJCKcanlDZwYJgwnkmgD3jyWhUgj9VsPrfd972yPffA==", + "node_modules/@asamuzakjp/css-color": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/@asamuzakjp/css-color/-/css-color-7.1.3.tgz", + "integrity": "sha512-1t1U8Cm3RBl9vh3RAZhjkPaduzLSvQJRToRrxpGR/eDRW99mOREleuu+mWfiFa795bUzjwht7NgphCKTs2ianQ==", "dev": true, - "peer": true, + "license": "MIT", "dependencies": { - "@jridgewell/sourcemap-codec": "^1.4.15" + "@csstools/css-calc": "^3.4.2", + "@csstools/css-color-parser": "^4.2.5", + "@csstools/css-parser-algorithms": "^4.0.2", + "@csstools/css-tokenizer": "^4.0.2", + "lru-cache": "^11.5.3" }, "engines": { - "node": ">=12" + "node": "^22.22.2 || ^24.15.0 || >=26.0.0" } }, - "node_modules/@angular/animations": { - "version": "21.2.25", - "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-21.2.25.tgz", - "integrity": "sha512-75Ok3XvrFoP1lAATNqDQFN24RnGmkiOkzcMZ2B0JjYciHqDqp9Sb7v53suwtivW0UXfse4O5FjqMu4wQwzbFng==", - "deprecated": "@angular/animations is deprecated. Use `animate.enter` and `animate.leave` instead. For more information see: https://v22.angular.dev/guide/animations.", - "license": "MIT", - "dependencies": { - "tslib": "^2.3.0" - }, + "node_modules/@asamuzakjp/css-color/node_modules/lru-cache": { + "version": "11.5.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.5.3.tgz", + "integrity": "sha512-U4N8FgzmWxc8k1VH8Kr6lQg18U7Fjvby6wXHVRX/ZZ7IwWbRMgrRbP0Wrb5q5NVinryp4SQampHKdvtecItxUg==", + "dev": true, + "license": "BlueOak-1.0.0", "engines": { - "node": "^20.19.0 || ^22.12.0 || >=24.0.0" - }, - "peerDependencies": { - "@angular/core": "21.2.25" + "node": "20 || >=22" } }, - "node_modules/@angular/build": { - "version": "21.2.24", - "resolved": "https://registry.npmjs.org/@angular/build/-/build-21.2.24.tgz", - "integrity": "sha512-NurM2W7Q/lCGonkYgSNNxGrh9AYH3LksekYRVxl0KxVKa8Z5x6oMYlLfyI4Lv9Q4C1/x1SXv3xNxgYu/nIW4vA==", + "node_modules/@asamuzakjp/dom-selector": { + "version": "9.2.4", + "resolved": "https://registry.npmjs.org/@asamuzakjp/dom-selector/-/dom-selector-9.2.4.tgz", + "integrity": "sha512-YnVzxDxLaqL0t7Q4wfcgHZjg55Wm6y5EaO7Bhu3q9J7wq/8iw3PhsnWiOQhYekx4VexnbkgWpTT6n+QIV7kczw==", "dev": true, "license": "MIT", "dependencies": { - "@ampproject/remapping": "2.3.0", - "@angular-devkit/architect": "0.2102.24", - "@babel/core": "7.29.7", - "@babel/helper-annotate-as-pure": "7.27.3", - "@babel/helper-split-export-declaration": "7.24.7", - "@inquirer/confirm": "5.1.21", - "@vitejs/plugin-basic-ssl": "2.1.4", - "beasties": "0.4.1", - "browserslist": "^4.26.0", - "esbuild": "0.28.1", - "https-proxy-agent": "7.0.6", - "istanbul-lib-instrument": "6.0.3", - "jsonc-parser": "3.3.1", - "listr2": "9.0.5", - "magic-string": "0.30.21", - "mrmime": "2.0.1", - "parse5-html-rewriting-stream": "8.0.0", - "picomatch": "4.0.4", - "piscina": "5.2.0", - "rolldown": "1.0.0-rc.4", - "sass": "1.97.3", - "semver": "7.7.4", - "source-map-support": "0.5.21", - "tinyglobby": "0.2.15", - "undici": "7.29.1", - "vite": "7.3.6", - "watchpack": "2.5.1" + "bidi-js": "^1.1.0", + "css-tree": "^3.2.1", + "is-potential-custom-element-name": "^1.0.1", + "lru-cache": "^11.5.3" }, "engines": { - "node": "^20.19.0 || ^22.12.0 || >=24.0.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" - }, - "optionalDependencies": { - "lmdb": "3.5.1" - }, - "peerDependencies": { - "@angular/compiler": "^21.0.0", - "@angular/compiler-cli": "^21.0.0", - "@angular/core": "^21.0.0", - "@angular/localize": "^21.0.0", - "@angular/platform-browser": "^21.0.0", - "@angular/platform-server": "^21.0.0", - "@angular/service-worker": "^21.0.0", - "@angular/ssr": "^21.2.24", - "karma": "^6.4.0", - "less": "^4.2.0", - "ng-packagr": "^21.0.0", - "postcss": "^8.4.0", - "tailwindcss": "^2.0.0 || ^3.0.0 || ^4.0.0", - "tslib": "^2.3.0", - "typescript": ">=5.9 <6.0", - "vitest": "^4.0.8" - }, - "peerDependenciesMeta": { - "@angular/core": { - "optional": true - }, - "@angular/localize": { - "optional": true - }, - "@angular/platform-browser": { - "optional": true - }, - "@angular/platform-server": { - "optional": true - }, - "@angular/service-worker": { - "optional": true - }, - "@angular/ssr": { - "optional": true - }, - "karma": { - "optional": true - }, - "less": { - "optional": true - }, - "ng-packagr": { - "optional": true - }, - "postcss": { - "optional": true - }, - "tailwindcss": { - "optional": true - }, - "vitest": { - "optional": true - } + "node": "^22.22.2 || ^24.15.0 || >=26.0.0" } }, - "node_modules/@angular/build/node_modules/@angular-devkit/architect": { - "version": "0.2102.24", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.2102.24.tgz", - "integrity": "sha512-U/d5l/1rfrNSlbGjMTunyzwxh+2vJce3y0r0tIx/NOFZbnYhq+gx+e33mR6oxI4yk/1Jks67ltvstrJuBbVbYg==", + "node_modules/@asamuzakjp/dom-selector/node_modules/lru-cache": { + "version": "11.5.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.5.3.tgz", + "integrity": "sha512-U4N8FgzmWxc8k1VH8Kr6lQg18U7Fjvby6wXHVRX/ZZ7IwWbRMgrRbP0Wrb5q5NVinryp4SQampHKdvtecItxUg==", "dev": true, - "license": "MIT", - "dependencies": { - "@angular-devkit/core": "21.2.24", - "rxjs": "7.8.2" - }, - "bin": { - "architect": "bin/cli.js" - }, + "license": "BlueOak-1.0.0", "engines": { - "node": "^20.19.0 || ^22.12.0 || >=24.0.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" + "node": "20 || >=22" } }, - "node_modules/@angular/build/node_modules/@angular-devkit/core": { - "version": "21.2.24", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-21.2.24.tgz", - "integrity": "sha512-QLYLd6OcfQS5qWTlzG1/d8lFTcJDFcsY6sOaGVtrruYiDxrbeM2iJttoIoKzvbNPROFyo3fANVQJOVhytpXWPg==", + "node_modules/@babel/code-frame": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.7.tgz", + "integrity": "sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw==", "dev": true, "license": "MIT", "dependencies": { - "ajv": "8.18.0", - "ajv-formats": "3.0.1", - "jsonc-parser": "3.3.1", - "picomatch": "4.0.4", - "rxjs": "7.8.2", - "source-map": "0.7.6" + "@babel/helper-validator-identifier": "^7.29.7", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" }, "engines": { - "node": "^20.19.0 || ^22.12.0 || >=24.0.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" - }, - "peerDependencies": { - "chokidar": "^5.0.0" - }, - "peerDependenciesMeta": { - "chokidar": { - "optional": true - } + "node": ">=6.9.0" } }, - "node_modules/@angular/build/node_modules/ajv": { - "version": "8.18.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.18.0.tgz", - "integrity": "sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==", + "node_modules/@babel/compat-data": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.29.7.tgz", + "integrity": "sha512-locTkQyKvwIEgBzVrn8693ebc97F2U8ZHjbXwDXJ5Fn2TCpNwTlKcaKLkdHop5c/icOFE7qt7Q9JC5hnKNa6Gg==", "dev": true, "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.3", - "fast-uri": "^3.0.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" + "engines": { + "node": ">=6.9.0" } }, - "node_modules/@angular/build/node_modules/ajv-formats": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-3.0.1.tgz", - "integrity": "sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==", + "node_modules/@babel/core": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.29.7.tgz", + "integrity": "sha512-RgHBCvtjbOK2gXSNBNIkNoEc9qoVEtau3hj8gEqKQuL3HZAibKarWFEI3Lfm6EYKkLalOh8eSrj9b+ch9H/VBA==", "dev": true, "license": "MIT", "dependencies": { - "ajv": "^8.0.0" + "@babel/code-frame": "^7.29.7", + "@babel/generator": "^7.29.7", + "@babel/helper-compilation-targets": "^7.29.7", + "@babel/helper-module-transforms": "^7.29.7", + "@babel/helpers": "^7.29.7", + "@babel/parser": "^7.29.7", + "@babel/template": "^7.29.7", + "@babel/traverse": "^7.29.7", + "@babel/types": "^7.29.7", + "@jridgewell/remapping": "^2.3.5", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" }, - "peerDependencies": { - "ajv": "^8.0.0" + "engines": { + "node": ">=6.9.0" }, - "peerDependenciesMeta": { - "ajv": { - "optional": true - } + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" } }, - "node_modules/@angular/build/node_modules/istanbul-lib-instrument": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz", - "integrity": "sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==", + "node_modules/@babel/core/node_modules/@babel/generator": { + "version": "7.29.8", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.8.tgz", + "integrity": "sha512-gZbepsdh3WDtgZKWL+vTPh71LSBrm/Y4/QDZBVCcYfmeTEEuoOYwlSy+G1StfJg+/Zy550u/3TATbm7qDbbMtg==", "dev": true, - "license": "BSD-3-Clause", + "license": "MIT", "dependencies": { - "@babel/core": "^7.23.9", - "@babel/parser": "^7.23.9", - "@istanbuljs/schema": "^0.1.3", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^7.5.4" + "@babel/parser": "^7.29.8", + "@babel/types": "^7.29.8", + "@jridgewell/gen-mapping": "^0.3.12", + "@jridgewell/trace-mapping": "^0.3.28", + "jsesc": "^3.0.2" }, "engines": { - "node": ">=10" + "node": ">=6.9.0" } }, - "node_modules/@angular/build/node_modules/rxjs": { - "version": "7.8.2", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.2.tgz", - "integrity": "sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "tslib": "^2.1.0" - } + "node_modules/@babel/core/node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true }, - "node_modules/@angular/build/node_modules/semver": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", - "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", + "node_modules/@babel/core/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, - "license": "ISC", "bin": { "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" } }, - "node_modules/@angular/build/node_modules/source-map": { - "version": "0.7.6", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.6.tgz", - "integrity": "sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==", + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.27.3", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.3.tgz", + "integrity": "sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==", "dev": true, - "license": "BSD-3-Clause", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.27.3" + }, "engines": { - "node": ">= 12" + "node": ">=6.9.0" } }, - "node_modules/@angular/build/node_modules/undici": { - "version": "7.29.1", - "resolved": "https://registry.npmjs.org/undici/-/undici-7.29.1.tgz", - "integrity": "sha512-RYONW2MeafgYlkVOKYKkA/Ag7BmXqgIWCa8t1m0JcxrQg9pI9lEqRhAOruOBCbAohOa/gkCF+iPi9hrgvTzu6Q==", + "node_modules/@babel/helper-compilation-targets": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.29.7.tgz", + "integrity": "sha512-wem6WaBj4NaVYVdNhLPPVacES6ZJ+KBBfSkTMD3YZxbP3rm3Di85tJU5ljaUNhaOynt+Aj0xruhYuzQBt8n71g==", "dev": true, "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.29.7", + "@babel/helper-validator-option": "^7.29.7", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, "engines": { - "node": ">=20.18.1" + "node": ">=6.9.0" } }, - "node_modules/@angular/cdk": { - "version": "21.2.14", - "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-21.2.14.tgz", - "integrity": "sha512-806REq/CLf37nEhmmd8Q+ILN8z/RVG2vk2n8YZ/4TdHpcBCi5ux4AxLbpMmduLwGPOzPagJ6ggRzE5fnX0rmcQ==", - "license": "MIT", - "dependencies": { - "parse5": "^8.0.0", - "tslib": "^2.3.0" - }, - "peerDependencies": { - "@angular/common": "^21.0.0 || ^22.0.0", - "@angular/core": "^21.0.0 || ^22.0.0", - "@angular/platform-browser": "^21.0.0 || ^22.0.0", - "rxjs": "^6.5.3 || ^7.4.0" + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" } }, - "node_modules/@angular/cli": { - "version": "21.2.24", - "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-21.2.24.tgz", - "integrity": "sha512-lx8baI3gssBv+xuwEf5wvAoBi7XSIB1RRuAmSnuAO2E4CAlJmU4eiVhKxd/haXvONH6peYxFGH2N6mSrkkHfIQ==", + "node_modules/@babel/helper-globals": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.29.7.tgz", + "integrity": "sha512-3nQVUAtvkKH9zahfWgw96Jc/uFOmjACE1kQz82E2lqWmHBgjzbNlsC22nuQTfahmWeQtTq5nQ/4Nnd2A1wj4zA==", "dev": true, "license": "MIT", - "dependencies": { - "@angular-devkit/architect": "0.2102.24", - "@angular-devkit/core": "21.2.24", - "@angular-devkit/schematics": "21.2.24", - "@inquirer/prompts": "7.10.1", - "@listr2/prompt-adapter-inquirer": "3.0.5", - "@modelcontextprotocol/sdk": "1.30.0", - "@schematics/angular": "21.2.24", - "@yarnpkg/lockfile": "1.1.0", - "algoliasearch": "5.48.1", - "ini": "6.0.0", - "jsonc-parser": "3.3.1", - "listr2": "9.0.5", - "npm-package-arg": "13.0.2", - "pacote": "21.5.1", - "parse5-html-rewriting-stream": "8.0.0", - "semver": "7.7.4", - "yargs": "18.0.0", - "zod": "4.3.6" - }, - "bin": { - "ng": "bin/ng.js" - }, "engines": { - "node": "^20.19.0 || ^22.12.0 || >=24.0.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" + "node": ">=6.9.0" } }, - "node_modules/@angular/cli/node_modules/@angular-devkit/architect": { - "version": "0.2102.24", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.2102.24.tgz", - "integrity": "sha512-U/d5l/1rfrNSlbGjMTunyzwxh+2vJce3y0r0tIx/NOFZbnYhq+gx+e33mR6oxI4yk/1Jks67ltvstrJuBbVbYg==", + "node_modules/@babel/helper-module-imports": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.29.7.tgz", + "integrity": "sha512-ejHwrQQYcm9xnTivShn2IDOlIzInN34AXskvq9QicvCtEzq1Vzclu/tKF8Jq1Cg8JG2GL6/EmjgsCT7lXepE3g==", "dev": true, "license": "MIT", "dependencies": { - "@angular-devkit/core": "21.2.24", - "rxjs": "7.8.2" - }, - "bin": { - "architect": "bin/cli.js" + "@babel/traverse": "^7.29.7", + "@babel/types": "^7.29.7" }, "engines": { - "node": "^20.19.0 || ^22.12.0 || >=24.0.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" + "node": ">=6.9.0" } }, - "node_modules/@angular/cli/node_modules/@angular-devkit/core": { - "version": "21.2.24", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-21.2.24.tgz", - "integrity": "sha512-QLYLd6OcfQS5qWTlzG1/d8lFTcJDFcsY6sOaGVtrruYiDxrbeM2iJttoIoKzvbNPROFyo3fANVQJOVhytpXWPg==", + "node_modules/@babel/helper-module-transforms": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.29.7.tgz", + "integrity": "sha512-UPUVSyXbOh627KiCIGQSgwWzGeBKLkaJ9PJEdrngIwMSzxLR4jS4+f1f1jb7VzBbg8nFLaYotvVPFCTqdrmTAg==", "dev": true, "license": "MIT", "dependencies": { - "ajv": "8.18.0", - "ajv-formats": "3.0.1", - "jsonc-parser": "3.3.1", - "picomatch": "4.0.4", - "rxjs": "7.8.2", - "source-map": "0.7.6" + "@babel/helper-module-imports": "^7.29.7", + "@babel/helper-validator-identifier": "^7.29.7", + "@babel/traverse": "^7.29.7" }, "engines": { - "node": "^20.19.0 || ^22.12.0 || >=24.0.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" + "node": ">=6.9.0" }, "peerDependencies": { - "chokidar": "^5.0.0" - }, - "peerDependenciesMeta": { - "chokidar": { - "optional": true - } + "@babel/core": "^7.0.0" } }, - "node_modules/@angular/cli/node_modules/@angular-devkit/schematics": { - "version": "21.2.24", - "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-21.2.24.tgz", - "integrity": "sha512-mLOme2vfbLrHFmMyM6ybPuGCnCvPiemXWdHnptY2Q7Hzum72DabfgtTNsrMcI2F5zrQV2DDQunNjC5cXqtq4/w==", + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.7.tgz", + "integrity": "sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==", "dev": true, "license": "MIT", "dependencies": { - "@angular-devkit/core": "21.2.24", - "jsonc-parser": "3.3.1", - "magic-string": "0.30.21", - "ora": "9.3.0", - "rxjs": "7.8.2" + "@babel/types": "^7.24.7" }, "engines": { - "node": "^20.19.0 || ^22.12.0 || >=24.0.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" + "node": ">=6.9.0" } }, - "node_modules/@angular/cli/node_modules/ajv": { - "version": "8.18.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.18.0.tgz", - "integrity": "sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==", + "node_modules/@babel/helper-string-parser": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.29.7.tgz", + "integrity": "sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==", "dev": true, "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.3", - "fast-uri": "^3.0.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" + "engines": { + "node": ">=6.9.0" } }, - "node_modules/@angular/cli/node_modules/ajv-formats": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-3.0.1.tgz", - "integrity": "sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==", + "node_modules/@babel/helper-validator-identifier": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.29.7.tgz", + "integrity": "sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==", "dev": true, "license": "MIT", - "dependencies": { - "ajv": "^8.0.0" - }, - "peerDependencies": { - "ajv": "^8.0.0" - }, - "peerDependenciesMeta": { - "ajv": { - "optional": true - } + "engines": { + "node": ">=6.9.0" } }, - "node_modules/@angular/cli/node_modules/ansi-regex": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.4.0.tgz", - "integrity": "sha512-KzTVk2tCWAHtYrvvvaP8bJKJq2pVinhLcGEQdtLIYPbmNGNyYe8QwNaTUYQp2J7/vIsUKt5QCqAfUkYyG9DkOw==", + "node_modules/@babel/helper-validator-option": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.29.7.tgz", + "integrity": "sha512-N9ZErrD+yW5geCDtBqnOoxmR8+tNKiGuxKlDpuJxfsqpa2dFcexaziGAE/qoHLiDDreVNMupxGmSoNlyvsA3gw==", "dev": true, "license": "MIT", "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" + "node": ">=6.9.0" } }, - "node_modules/@angular/cli/node_modules/chalk": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.6.2.tgz", - "integrity": "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==", + "node_modules/@babel/helpers": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.29.7.tgz", + "integrity": "sha512-1k2lAGRMfHTcwuNYcCNUmaUffmQv8KWMfh2iJUUeRlwlwH4FdNG7mfPI10NPfLHJFThE4Tyr4mv7kTNZOiPuBg==", "dev": true, "license": "MIT", - "engines": { - "node": "^12.17.0 || ^14.13 || >=16.0.0" + "dependencies": { + "@babel/template": "^7.29.7", + "@babel/types": "^7.29.7" }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "engines": { + "node": ">=6.9.0" } }, - "node_modules/@angular/cli/node_modules/cli-cursor": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-5.0.0.tgz", - "integrity": "sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==", + "node_modules/@babel/parser": { + "version": "7.29.9", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.9.tgz", + "integrity": "sha512-CjXrNHTnvqBVqHgdBysY3vk2T8tpJHb5/RMeHJBTyVa9xgugCB0CJTx/3oO8RV2QRQP391RWpB7D6hLjm8V9uA==", "dev": true, "license": "MIT", "dependencies": { - "restore-cursor": "^5.0.0" + "@babel/types": "^7.29.8" }, - "engines": { - "node": ">=18" + "bin": { + "parser": "bin/babel-parser.js" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": ">=6.0.0" } }, - "node_modules/@angular/cli/node_modules/cli-spinners": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-3.4.0.tgz", - "integrity": "sha512-bXfOC4QcT1tKXGorxL3wbJm6XJPDqEnij2gQ2m7ESQuE+/z9YFIWnl/5RpTiKWbMq3EVKR4fRLJGn6DVfu0mpw==", + "node_modules/@babel/template": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.29.7.tgz", + "integrity": "sha512-puq+Gf35oI24FeN11LkoUQFqv9uwNeWpxXZi/Ji3rRIoKAzKnxRaZ+Gkj0vKS9ZCiTESfng1N9LyOyXvo+m+Gg==", "dev": true, "license": "MIT", - "engines": { - "node": ">=18.20" + "dependencies": { + "@babel/code-frame": "^7.29.7", + "@babel/parser": "^7.29.7", + "@babel/types": "^7.29.7" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": ">=6.9.0" } }, - "node_modules/@angular/cli/node_modules/is-interactive": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-2.0.0.tgz", - "integrity": "sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==", + "node_modules/@babel/traverse": { + "version": "7.29.8", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.29.8.tgz", + "integrity": "sha512-I5z7H3bf/41ktsNVLtpN0wAa336HkqIHQ5BuPLEhTkt1jVSyZpeNKIzTgEWmlxjdg81R0IgUCcaE+Ok3NvrfZg==", "dev": true, "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@angular/cli/node_modules/is-unicode-supported": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-2.1.0.tgz", - "integrity": "sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" + "dependencies": { + "@babel/code-frame": "^7.29.7", + "@babel/generator": "^7.29.8", + "@babel/helper-globals": "^7.29.7", + "@babel/parser": "^7.29.8", + "@babel/template": "^7.29.7", + "@babel/types": "^7.29.8", + "debug": "^4.3.1" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": ">=6.9.0" } }, - "node_modules/@angular/cli/node_modules/log-symbols": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-7.0.1.tgz", - "integrity": "sha512-ja1E3yCr9i/0hmBVaM0bfwDjnGy8I/s6PP4DFp+yP+a+mrHO4Rm7DtmnqROTUkHIkqffC84YY7AeqX6oFk0WFg==", + "node_modules/@babel/traverse/node_modules/@babel/generator": { + "version": "7.29.8", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.8.tgz", + "integrity": "sha512-gZbepsdh3WDtgZKWL+vTPh71LSBrm/Y4/QDZBVCcYfmeTEEuoOYwlSy+G1StfJg+/Zy550u/3TATbm7qDbbMtg==", "dev": true, "license": "MIT", "dependencies": { - "is-unicode-supported": "^2.0.0", - "yoctocolors": "^2.1.1" + "@babel/parser": "^7.29.8", + "@babel/types": "^7.29.8", + "@jridgewell/gen-mapping": "^0.3.12", + "@jridgewell/trace-mapping": "^0.3.28", + "jsesc": "^3.0.2" }, "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=6.9.0" } }, - "node_modules/@angular/cli/node_modules/onetime": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-7.0.0.tgz", - "integrity": "sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==", + "node_modules/@babel/types": { + "version": "7.29.8", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.8.tgz", + "integrity": "sha512-Vj1jF3cPfxg7OAfoI7QnVKLoILlm2JF9pnVHrX8qx7AHMiYWT+NDAA7jChlNgRS4WTLc/fD1lXLmPixluj+3Gg==", "dev": true, "license": "MIT", "dependencies": { - "mimic-function": "^5.0.0" + "@babel/helper-string-parser": "^7.29.7", + "@babel/helper-validator-identifier": "^7.29.7" }, "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=6.9.0" } }, - "node_modules/@angular/cli/node_modules/ora": { - "version": "9.3.0", - "resolved": "https://registry.npmjs.org/ora/-/ora-9.3.0.tgz", - "integrity": "sha512-lBX72MWFduWEf7v7uWf5DHp9Jn5BI8bNPGuFgtXMmr2uDz2Gz2749y3am3agSDdkhHPHYmmxEGSKH85ZLGzgXw==", + "node_modules/@bramus/specificity": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/@bramus/specificity/-/specificity-2.4.2.tgz", + "integrity": "sha512-ctxtJ/eA+t+6q2++vj5j7FYX3nRu311q1wfYH3xjlLOsczhlhxAg2FWNUXhpGvAw3BWo1xBcvOV6/YLc2r5FJw==", "dev": true, "license": "MIT", "dependencies": { - "chalk": "^5.6.2", - "cli-cursor": "^5.0.0", - "cli-spinners": "^3.2.0", - "is-interactive": "^2.0.0", - "is-unicode-supported": "^2.1.0", - "log-symbols": "^7.0.1", - "stdin-discarder": "^0.3.1", - "string-width": "^8.1.0" + "css-tree": "^3.0.0" }, + "bin": { + "specificity": "bin/cli.js" + } + }, + "node_modules/@csstools/color-helpers": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-6.1.2.tgz", + "integrity": "sha512-grhRy3OKmniaAEKXMjua5z/EODX0MSqBGjunw8+j/3HQjOnahs2AGhvEOIYVUWcU6ScApbhLhVrQTX8XqrMrow==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", "engines": { - "node": ">=20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=20.19.0" } }, - "node_modules/@angular/cli/node_modules/restore-cursor": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-5.1.0.tgz", - "integrity": "sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==", + "node_modules/@csstools/css-calc": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-3.4.3.tgz", + "integrity": "sha512-iex20d8CHVkyvg6B7UKV7uHnI2Bqo9g+EFfT9E0y+GvTvhZ/DwONJ+9aKb1dlqm0ZiGsL5RXjp0fCoJYnkeDjA==", "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], "license": "MIT", - "dependencies": { - "onetime": "^7.0.0", - "signal-exit": "^4.1.0" - }, "engines": { - "node": ">=18" + "node": ">=20.19.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependencies": { + "@csstools/css-parser-algorithms": "^4.0.2", + "@csstools/css-tokenizer": "^4.0.2" } }, - "node_modules/@angular/cli/node_modules/rxjs": { - "version": "7.8.2", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.2.tgz", - "integrity": "sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==", + "node_modules/@csstools/css-color-parser": { + "version": "4.2.6", + "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-4.2.6.tgz", + "integrity": "sha512-iiPQ3iRWwnJkeEn6RIu6SJPr7hYrLz6XZ9s/QZl+2/LI5KQVjpl2fdmDSZKuD4xP6GMmMPgHFFXg6k1Wkz0Trg==", "dev": true, - "license": "Apache-2.0", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", "dependencies": { - "tslib": "^2.1.0" - } - }, - "node_modules/@angular/cli/node_modules/semver": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", - "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" + "@csstools/color-helpers": "^6.1.2", + "@csstools/css-calc": "^3.4.3" }, "engines": { - "node": ">=10" + "node": ">=20.19.0" + }, + "peerDependencies": { + "@csstools/css-parser-algorithms": "^4.0.2", + "@csstools/css-tokenizer": "^4.0.2" } }, - "node_modules/@angular/cli/node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "node_modules/@csstools/css-parser-algorithms": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-4.0.2.tgz", + "integrity": "sha512-40cSKyMvK+tq4qz6Awrlye2WGuOKt3FwPgtGg6KTfbHOWNw+Rk1rzbAtZnZ6IBhsY491HLRnDXwoyBAijmmILA==", "dev": true, - "license": "ISC", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", "engines": { - "node": ">=14" + "node": ">=20.19.0" }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "peerDependencies": { + "@csstools/css-tokenizer": "^4.0.2" } }, - "node_modules/@angular/cli/node_modules/source-map": { - "version": "0.7.6", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.6.tgz", - "integrity": "sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==", + "node_modules/@csstools/css-syntax-patches-for-csstree": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/@csstools/css-syntax-patches-for-csstree/-/css-syntax-patches-for-csstree-1.1.15.tgz", + "integrity": "sha512-J0u7HkVl2nzSlhsiTOp4AmwcUQ3D+mGEEKfBy/7To5/y7F2OHwyLrXfrhR0SMgr4p5Lo+eaMVSeai24zUcBIxA==", "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">= 12" + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "peerDependencies": { + "css-tree": "^3.2.1" + }, + "peerDependenciesMeta": { + "css-tree": { + "optional": true + } } }, - "node_modules/@angular/cli/node_modules/string-width": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-8.3.0.tgz", - "integrity": "sha512-ZbmZM0JCihQN91dWnxoipT2KOEyHqEyfRXUyjuRhW8b/xnqPDoq4gWEVApTVa9db2wN8mmoikgFBbjh71+cGeQ==", + "node_modules/@csstools/css-tokenizer": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-4.0.2.tgz", + "integrity": "sha512-OoKoR0f76dCY666JlcbhmVTs2drYj1GUXZTYTcbUgJjh9Nv41aFfZ21bPQTERm5+L5cBDo466NltB2lplS5GBw==", "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], "license": "MIT", - "dependencies": { - "get-east-asian-width": "^1.5.0", - "strip-ansi": "^7.1.2" - }, "engines": { - "node": ">=20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=20.19.0" } }, - "node_modules/@angular/cli/node_modules/strip-ansi": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz", - "integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==", + "node_modules/@emnapi/core": { + "version": "1.11.3", + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.11.3.tgz", + "integrity": "sha512-zLpS5asjEb7lq8jYLq37N6XKaE41DIexlY1rF/z4/tIl3wo13Sqm28fRyfIsKZD+NZ8mM5RoKkpW/rBcuoSZSg==", "dev": true, "license": "MIT", + "optional": true, + "peer": true, "dependencies": { - "ansi-regex": "^6.2.2" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" + "@emnapi/wasi-threads": "1.2.3", + "tslib": "^2.4.0" } }, - "node_modules/@angular/common": { - "version": "21.2.25", - "resolved": "https://registry.npmjs.org/@angular/common/-/common-21.2.25.tgz", - "integrity": "sha512-1oxSrFqMyJF6xYXBDrciZSe3A67E5feYQXhmxH3d0hLe0wWM/pFZTvCvSnA65wHj8NTonuI7/HMBPwRKddHoGw==", + "node_modules/@emnapi/runtime": { + "version": "1.11.3", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.11.3.tgz", + "integrity": "sha512-Xz4Tpyki7XyrpbUK1jR1AhdAdaXyhhY4lZ3neLodmhpuWfy2PAQN5B46sAiU4liOXGLkHypn/qU+jvfWSCYYLA==", + "dev": true, "license": "MIT", + "optional": true, + "peer": true, "dependencies": { - "tslib": "^2.3.0" - }, - "engines": { - "node": "^20.19.0 || ^22.12.0 || >=24.0.0" - }, - "peerDependencies": { - "@angular/core": "21.2.25", - "rxjs": "^6.5.3 || ^7.4.0" + "tslib": "^2.4.0" } }, - "node_modules/@angular/compiler": { - "version": "21.2.25", - "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-21.2.25.tgz", - "integrity": "sha512-jR/TiwrHeLEOPT3fVp9q14UkCsBNni8xUIfof8F7JZW4Ze7/LpTLI2OWxajckWmR0+kCKam5RhWeFd5m/F553Q==", + "node_modules/@emnapi/wasi-threads": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.3.tgz", + "integrity": "sha512-ELEBe8PsLvvJ6QMr0zLt8ffvOHW/dc1m3CEzNMg7aJUv3bMaoDtw2TXyDAwkYBuroxxuHEwhRTLJSe5sya547g==", + "dev": true, "license": "MIT", + "optional": true, + "peer": true, "dependencies": { - "tslib": "^2.3.0" - }, - "engines": { - "node": "^20.19.0 || ^22.12.0 || >=24.0.0" + "tslib": "^2.4.0" } }, - "node_modules/@angular/compiler-cli": { - "version": "21.2.25", - "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-21.2.25.tgz", - "integrity": "sha512-5qMekFc1QNJ7zxTqekOTRnY9WgYSo5nfqED14sou15uScepL+yDM07UrvVsR94CGc78/nhevYWLXbb4iPPZ00Q==", + "node_modules/@esbuild/aix-ppc64": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.28.1.tgz", + "integrity": "sha512-Svl7tq8k/08+p6CXPpRjQ1fKX+1odH/BQbb48fV6fj3CWHhsoIOoY87w1oHXm0qEpkIK3ZfVgp0hed3XBXzXMQ==", + "cpu": [ + "ppc64" + ], "dev": true, "license": "MIT", - "dependencies": { - "@babel/core": "7.29.7", - "@jridgewell/sourcemap-codec": "^1.4.14", - "chokidar": "^5.0.0", - "convert-source-map": "^1.5.1", - "reflect-metadata": "^0.2.0", - "semver": "^7.0.0", - "tslib": "^2.3.0", - "yargs": "^18.0.0" - }, - "bin": { - "ng-xi18n": "bundles/src/bin/ng_xi18n.js", - "ngc": "bundles/src/bin/ngc.js" - }, + "optional": true, + "os": [ + "aix" + ], "engines": { - "node": "^20.19.0 || ^22.12.0 || >=24.0.0" - }, - "peerDependencies": { - "@angular/compiler": "21.2.25", - "typescript": ">=5.9 <6.1" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "node": ">=18" } }, - "node_modules/@angular/compiler-cli/node_modules/chokidar": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-5.0.0.tgz", - "integrity": "sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw==", + "node_modules/@esbuild/android-arm": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.28.1.tgz", + "integrity": "sha512-0k2F129Xdio1TdJfzJ8sy1Q47vUD2NnwdhiAf7drUN1EBTfPf4hsFCtmMgu/6m8JSzsBrlmVjudMBQqOfG8usQ==", + "cpu": [ + "arm" + ], "dev": true, "license": "MIT", - "dependencies": { - "readdirp": "^5.0.0" - }, + "optional": true, + "os": [ + "android" + ], "engines": { - "node": ">= 20.19.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" + "node": ">=18" } }, - "node_modules/@angular/compiler-cli/node_modules/readdirp": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-5.1.1.tgz", - "integrity": "sha512-Kko+Y5XQ6fM+Ce3dq3m9YGxnacYZYl9cA1wZjaF3Vbry2L3i1qVg8+CAgNPsXRArPMUMCaOR7oa9Nqntc43JKA==", + "node_modules/@esbuild/android-arm64": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.28.1.tgz", + "integrity": "sha512-34EGEbCIAgosYz6goLcopX6Mo7NyGv9tfwEM2/7Ce2VcVRk568iSvniGWcUXIy7wEDR1wzolcxcriFVrWYcwBg==", + "cpu": [ + "arm64" + ], "dev": true, "license": "MIT", + "optional": true, + "os": [ + "android" + ], "engines": { - "node": ">= 20.19.0" - }, - "funding": { - "type": "individual", - "url": "https://paulmillr.com/funding/" + "node": ">=18" } }, - "node_modules/@angular/core": { - "version": "21.2.25", - "resolved": "https://registry.npmjs.org/@angular/core/-/core-21.2.25.tgz", - "integrity": "sha512-cku7EX0igTPnuqEWZ1NiQY4Pn1g2xBljQSk1+bXRKnudJiZCK8e1u2v0byNzWuKwmdz7kKXjz71o224HrtccVA==", + "node_modules/@esbuild/android-x64": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.28.1.tgz", + "integrity": "sha512-dbwY7ltSMDWsRatcRpCnES4F+im88OCUgGZjy52shC7GqHRE/cYlxNbB4Z4UpJswpcc4Qxd2oE/ufM0p61IKng==", + "cpu": [ + "x64" + ], + "dev": true, "license": "MIT", - "dependencies": { - "tslib": "^2.3.0" - }, + "optional": true, + "os": [ + "android" + ], "engines": { - "node": "^20.19.0 || ^22.12.0 || >=24.0.0" - }, - "peerDependencies": { - "@angular/compiler": "21.2.25", - "rxjs": "^6.5.3 || ^7.4.0", - "zone.js": "~0.15.0 || ~0.16.0" - }, - "peerDependenciesMeta": { - "@angular/compiler": { - "optional": true - }, - "zone.js": { - "optional": true - } + "node": ">=18" } }, - "node_modules/@angular/forms": { - "version": "21.2.25", - "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-21.2.25.tgz", - "integrity": "sha512-EQADo64/BaCKO1uGcQyHcYW1y2JwQMOfWQUteBsqFODMwoRQK96VH5Lf/8vUwvV7gvFrlA4FhVXjsv2KVdfPuw==", + "node_modules/@esbuild/darwin-arm64": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.28.1.tgz", + "integrity": "sha512-TZbWkQY7kvTAXbXUT7uVACR5cMHsDiSz9z7ZKAX/RTq/WJEk3QyRr0wZpNhBDX+/0CtdqUIJlOiodQcta6tY3Q==", + "cpu": [ + "arm64" + ], + "dev": true, "license": "MIT", - "dependencies": { - "@standard-schema/spec": "^1.0.0", - "tslib": "^2.3.0" - }, + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": "^20.19.0 || ^22.12.0 || >=24.0.0" - }, - "peerDependencies": { - "@angular/common": "21.2.25", - "@angular/core": "21.2.25", - "@angular/platform-browser": "21.2.25", - "rxjs": "^6.5.3 || ^7.4.0" + "node": ">=18" } }, - "node_modules/@angular/material": { - "version": "21.2.14", - "resolved": "https://registry.npmjs.org/@angular/material/-/material-21.2.14.tgz", - "integrity": "sha512-fMQca8VRtei93JRRG9qQ+u08DCb0nga59Esoakq5yx3+A1NfdpFeUS1tBns56U04o8KAaIAwZK3NBqXz8ZKNqg==", + "node_modules/@esbuild/darwin-x64": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.28.1.tgz", + "integrity": "sha512-zfdzgK9ACBNZLI/CyHTOx81SyNbM6YXn7rxSgX97VjyiPl9W1i4Ka4fgKECEoFCKGpvBj5qArWIGgQjOwkgskQ==", + "cpu": [ + "x64" + ], + "dev": true, "license": "MIT", - "dependencies": { - "tslib": "^2.3.0" - }, - "peerDependencies": { - "@angular/cdk": "21.2.14", - "@angular/common": "^21.0.0 || ^22.0.0", - "@angular/core": "^21.0.0 || ^22.0.0", - "@angular/forms": "^21.0.0 || ^22.0.0", - "@angular/platform-browser": "^21.0.0 || ^22.0.0", - "rxjs": "^6.5.3 || ^7.4.0" + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" } }, - "node_modules/@angular/platform-browser": { - "version": "21.2.25", - "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-21.2.25.tgz", - "integrity": "sha512-hQgeKZiKt42P+jcf9j7o3c1GSOwOXrAYX2hXCs4A0+/AQ1neAQ20bjjUAgz1fGC4P3bNdurw1ZLLhMA+ZBKPtg==", + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.28.1.tgz", + "integrity": "sha512-wG2EA8ENdEI0qhkSZMjfqrdY+ziCYCPMmtZjjIwOmXFjmyzEHn+UUxk5of+SYsjtfs3VpnlC7QLzSI5hY/rOAw==", + "cpu": [ + "arm64" + ], + "dev": true, "license": "MIT", - "dependencies": { - "tslib": "^2.3.0" - }, + "optional": true, + "os": [ + "freebsd" + ], "engines": { - "node": "^20.19.0 || ^22.12.0 || >=24.0.0" - }, - "peerDependencies": { - "@angular/animations": "21.2.25", - "@angular/common": "21.2.25", - "@angular/core": "21.2.25" - }, - "peerDependenciesMeta": { - "@angular/animations": { - "optional": true - } + "node": ">=18" } }, - "node_modules/@angular/platform-browser-dynamic": { - "version": "21.2.25", - "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-21.2.25.tgz", - "integrity": "sha512-ZtMCtLGXaEg+2LoXafnlPOZ2axwlwvy7rxQU8lSgruG9pBib6rL74h1OLUiBWwErkcyEZPx2rnSC6Pt03S9sQA==", - "deprecated": "@angular/platform-browser-dynamic is deprecated. Use `@angular/platform-browser` instead.", + "node_modules/@esbuild/freebsd-x64": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.28.1.tgz", + "integrity": "sha512-i7dZ9vQgnvSCzi/rYCXNgtF/U+eKZNJBzu3eTQbRgHnM7tNSizLOkRFAl3qzVc/Op/u5YkHHa4pf/3DOYHthLQ==", + "cpu": [ + "x64" + ], + "dev": true, "license": "MIT", - "dependencies": { - "tslib": "^2.3.0" - }, + "optional": true, + "os": [ + "freebsd" + ], "engines": { - "node": "^20.19.0 || ^22.12.0 || >=24.0.0" - }, - "peerDependencies": { - "@angular/common": "21.2.25", - "@angular/compiler": "21.2.25", - "@angular/core": "21.2.25", - "@angular/platform-browser": "21.2.25" + "node": ">=18" } }, - "node_modules/@angular/router": { - "version": "21.2.25", - "resolved": "https://registry.npmjs.org/@angular/router/-/router-21.2.25.tgz", - "integrity": "sha512-85ZwJCBEpaXBmezusZLlgW2JzEEByzerlWT34I6IK/ZN4AKG8m2B/vlbTkKmHuzCOGWx1L7xFtPg/URkGGKwSA==", + "node_modules/@esbuild/linux-arm": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.28.1.tgz", + "integrity": "sha512-qVXBOHQS+d5Y722GwJzJUtOLlX7km3CraOaGormF1pDtPd2C/l1SHRPgjLunLGe51Sh5YYWKMFDyV4SxgMQYTQ==", + "cpu": [ + "arm" + ], + "dev": true, "license": "MIT", - "dependencies": { - "tslib": "^2.3.0" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": "^20.19.0 || ^22.12.0 || >=24.0.0" - }, - "peerDependencies": { - "@angular/common": "21.2.25", - "@angular/core": "21.2.25", - "@angular/platform-browser": "21.2.25", - "rxjs": "^6.5.3 || ^7.4.0" + "node": ">=18" } }, - "node_modules/@babel/code-frame": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.7.tgz", - "integrity": "sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw==", + "node_modules/@esbuild/linux-arm64": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.28.1.tgz", + "integrity": "sha512-yHs+0uc8+nvEAfAfxrWQKK5peSNzBc4PegcMO0EJ2hT71uA7vB8Ihg2e77R2P7SG5uYjPbHlLLmve4LLLRCf0g==", + "cpu": [ + "arm64" + ], "dev": true, "license": "MIT", - "dependencies": { - "@babel/helper-validator-identifier": "^7.29.7", - "js-tokens": "^4.0.0", - "picocolors": "^1.1.1" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=6.9.0" + "node": ">=18" } }, - "node_modules/@babel/compat-data": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.29.7.tgz", - "integrity": "sha512-locTkQyKvwIEgBzVrn8693ebc97F2U8ZHjbXwDXJ5Fn2TCpNwTlKcaKLkdHop5c/icOFE7qt7Q9JC5hnKNa6Gg==", + "node_modules/@esbuild/linux-ia32": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.28.1.tgz", + "integrity": "sha512-d1z4ZuP0ajrfz/FhGT4vv278rX8KnPPJx8i5+AtK7TYbx9Le9F1hyzurZpkEyjkGa9dUGhQow4C1NmeGvqxN2w==", + "cpu": [ + "ia32" + ], "dev": true, "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=6.9.0" + "node": ">=18" } }, - "node_modules/@babel/core": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.29.7.tgz", - "integrity": "sha512-RgHBCvtjbOK2gXSNBNIkNoEc9qoVEtau3hj8gEqKQuL3HZAibKarWFEI3Lfm6EYKkLalOh8eSrj9b+ch9H/VBA==", + "node_modules/@esbuild/linux-loong64": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.28.1.tgz", + "integrity": "sha512-M5sRjUVZrkm1OAPR3dlOYzNmN+loZKGVi1VUQGrwuqLcbR6qeAz+famMhjASeH3YVKvZz+zT1jlh/keC3Rj/lg==", + "cpu": [ + "loong64" + ], "dev": true, "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.29.7", - "@babel/generator": "^7.29.7", - "@babel/helper-compilation-targets": "^7.29.7", - "@babel/helper-module-transforms": "^7.29.7", - "@babel/helpers": "^7.29.7", - "@babel/parser": "^7.29.7", - "@babel/template": "^7.29.7", - "@babel/traverse": "^7.29.7", - "@babel/types": "^7.29.7", - "@jridgewell/remapping": "^2.3.5", - "convert-source-map": "^2.0.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.3", - "semver": "^6.3.1" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" + "node": ">=18" } }, - "node_modules/@babel/core/node_modules/@babel/generator": { - "version": "7.29.8", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.8.tgz", - "integrity": "sha512-gZbepsdh3WDtgZKWL+vTPh71LSBrm/Y4/QDZBVCcYfmeTEEuoOYwlSy+G1StfJg+/Zy550u/3TATbm7qDbbMtg==", + "node_modules/@esbuild/linux-mips64el": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.28.1.tgz", + "integrity": "sha512-mRObBZeHh2OxcBFPWE/FjylkRgZdYuiTR3vaTozquCGOH14iP9oN4x4Ge81CoIDYQrXmIxpFumJBu5MtZpnQJQ==", + "cpu": [ + "mips64el" + ], "dev": true, "license": "MIT", - "dependencies": { - "@babel/parser": "^7.29.8", - "@babel/types": "^7.29.8", - "@jridgewell/gen-mapping": "^0.3.12", - "@jridgewell/trace-mapping": "^0.3.28", - "jsesc": "^3.0.2" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=6.9.0" + "node": ">=18" } }, - "node_modules/@babel/core/node_modules/convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true - }, - "node_modules/@babel/core/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "node_modules/@esbuild/linux-ppc64": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.28.1.tgz", + "integrity": "sha512-slScBsMAb3GFDcdrCgLwZtPYRoH2H/youv10QiZyRjmsP48fznoveWytSgCI/R0ZcUgpc0ZhIUEx6LHts8yrfQ==", + "cpu": [ + "ppc64" + ], "dev": true, - "bin": { - "semver": "bin/semver.js" + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" } }, - "node_modules/@babel/generator": { - "version": "7.29.1", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.1.tgz", - "integrity": "sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw==", + "node_modules/@esbuild/linux-riscv64": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.28.1.tgz", + "integrity": "sha512-kw0owk1o0GFETUJyW0jc0G4Yzs0BHZn0JDZ8JRT088vjJYX777BAs1fDGxAC+q831qOs2DTC96mNsG2opdfyyQ==", + "cpu": [ + "riscv64" + ], "dev": true, "license": "MIT", - "dependencies": { - "@babel/parser": "^7.29.0", - "@babel/types": "^7.29.0", - "@jridgewell/gen-mapping": "^0.3.12", - "@jridgewell/trace-mapping": "^0.3.28", - "jsesc": "^3.0.2" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=6.9.0" + "node": ">=18" } }, - "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.27.3", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.3.tgz", - "integrity": "sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==", + "node_modules/@esbuild/linux-s390x": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.28.1.tgz", + "integrity": "sha512-/lAIjX8aYFRByhh6L5rYtPEDRqa9de/4V/juOXcta5frjvzXO4/sqEtyytse0g3zZFuWu5cDN0MkLz2qRDD2Ag==", + "cpu": [ + "s390x" + ], "dev": true, "license": "MIT", - "dependencies": { - "@babel/types": "^7.27.3" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=6.9.0" + "node": ">=18" } }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.29.7.tgz", - "integrity": "sha512-wem6WaBj4NaVYVdNhLPPVacES6ZJ+KBBfSkTMD3YZxbP3rm3Di85tJU5ljaUNhaOynt+Aj0xruhYuzQBt8n71g==", + "node_modules/@esbuild/linux-x64": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.28.1.tgz", + "integrity": "sha512-u/anNYF2mmVOEDwLtnQ1wOr3EZ9sTNGLWrsYGYwHWzGA3Si84IOkHXlbWTD1NB+9/1lcnweYKO54uhxZydNzfA==", + "cpu": [ + "x64" + ], "dev": true, "license": "MIT", - "dependencies": { - "@babel/compat-data": "^7.29.7", - "@babel/helper-validator-option": "^7.29.7", - "browserslist": "^4.24.0", - "lru-cache": "^5.1.1", - "semver": "^6.3.1" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=6.9.0" + "node": ">=18" } }, - "node_modules/@babel/helper-compilation-targets/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.28.1.tgz", + "integrity": "sha512-oks0DYbLwWMmaakTsCb+zL4E+aHRVLom9IJZOAthMQEPiQmydXHkziYEsGYRx0uNV/IjEKGAV941JzH02pflqw==", + "cpu": [ + "arm64" + ], "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" } }, - "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.29.7.tgz", - "integrity": "sha512-IY3ZD9Tmooqr3TUhc3DUWxiuo8xx1DWLhd5M7hQ+ZWJamqM2BbalrBJb2MisSLoYorOj75U03qULCxQTY9r3hg==", + "node_modules/@esbuild/netbsd-x64": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.28.1.tgz", + "integrity": "sha512-aeL6lAnN89Hz43Mlh1G8ARasbuoYvSITDEx0tHh5b7jJnHcssqgjy9Yx430GDpmCa6OyrKoS0aNRjKundRizGg==", + "cpu": [ + "x64" + ], "dev": true, "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.29.7", - "@babel/helper-member-expression-to-functions": "^7.29.7", - "@babel/helper-optimise-call-expression": "^7.29.7", - "@babel/helper-replace-supers": "^7.29.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.29.7", - "@babel/traverse": "^7.29.7", - "semver": "^6.3.1" - }, + "optional": true, + "os": [ + "netbsd" + ], "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" + "node": ">=18" } }, - "node_modules/@babel/helper-create-class-features-plugin/node_modules/@babel/helper-annotate-as-pure": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.29.7.tgz", - "integrity": "sha512-OoK6239jHPuSQOoS0kfTVKn0b/rVTk0seKq4Gd2UMLtmOVLjDC0ki3e+c90Trqv2gMfvJFqkiljrr568+qddiw==", + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.28.1.tgz", + "integrity": "sha512-MEFJe5C3R8pwXdZ5Y21oo6m7ePiS0d9pWucn99O/wvyJZChoIQKrQDxKrGeW8F5+T0okTHesAmDeiHDTIq0V/Q==", + "cpu": [ + "arm64" + ], "dev": true, "license": "MIT", - "dependencies": { - "@babel/types": "^7.29.7" - }, + "optional": true, + "os": [ + "openbsd" + ], "engines": { - "node": ">=6.9.0" + "node": ">=18" } }, - "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.29.7.tgz", - "integrity": "sha512-907Uymvqgg1dwUA+7IGwFAOSYzQOuzPXKNJ1yxzwPffzkYFg2q2eHi1fIOs6sXkG9NbIUMunnUlkYsfRFNvomg==", + "node_modules/@esbuild/openbsd-x64": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.28.1.tgz", + "integrity": "sha512-i/ZLIOafE0Z8cI/XANJAixoJL/uRAoS2xOA3rb0xN+KK0K177cMAsQYkzHtBrtMXAKuAc7HGgcWiZ/sRC1Nxgw==", + "cpu": [ + "x64" + ], "dev": true, "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.29.7", - "regexpu-core": "^6.3.1", - "semver": "^6.3.1" - }, + "optional": true, + "os": [ + "openbsd" + ], "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" + "node": ">=18" } }, - "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/@babel/helper-annotate-as-pure": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.29.7.tgz", - "integrity": "sha512-OoK6239jHPuSQOoS0kfTVKn0b/rVTk0seKq4Gd2UMLtmOVLjDC0ki3e+c90Trqv2gMfvJFqkiljrr568+qddiw==", + "node_modules/@esbuild/openharmony-arm64": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.28.1.tgz", + "integrity": "sha512-ge+Z7EXFNt2BO1oAMsVpiQ8EwndV9i1xXerAeTIK7AtPs3bKFXQM7nlRxDSIUIMeueR1CNXxqztLzdNeReKBJg==", + "cpu": [ + "arm64" + ], "dev": true, "license": "MIT", - "dependencies": { - "@babel/types": "^7.29.7" - }, + "optional": true, + "os": [ + "openharmony" + ], "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.6.8", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.8.tgz", - "integrity": "sha512-47UwBLPpQi1NoWzLuHNjRoHlYXMwIJoBf7MFou6viC/sIHWYygpvr0B6IAyh5sBdA2nr2LPIRww8lfaUVQINBA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-compilation-targets": "^7.28.6", - "@babel/helper-plugin-utils": "^7.28.6", - "debug": "^4.4.3", - "lodash.debounce": "^4.0.8", - "resolve": "^1.22.11" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + "node": ">=18" } }, - "node_modules/@babel/helper-define-polyfill-provider/node_modules/debug": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", - "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "node_modules/@esbuild/sunos-x64": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.28.1.tgz", + "integrity": "sha512-BEjgtECkL3vY+SaSQ6nzVfiALUeFxpawyp8Jmf5PtYhf1Ug40N1h/hxlhts+f1FvSvarEigdxS3BlSMI2PJLcQ==", + "cpu": [ + "x64" + ], "dev": true, "license": "MIT", - "dependencies": { - "ms": "^2.1.3" - }, + "optional": true, + "os": [ + "sunos" + ], "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "node": ">=18" } }, - "node_modules/@babel/helper-define-polyfill-provider/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@babel/helper-globals": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.29.7.tgz", - "integrity": "sha512-3nQVUAtvkKH9zahfWgw96Jc/uFOmjACE1kQz82E2lqWmHBgjzbNlsC22nuQTfahmWeQtTq5nQ/4Nnd2A1wj4zA==", + "node_modules/@esbuild/win32-arm64": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.28.1.tgz", + "integrity": "sha512-lCv9eK/H6ZJWbE7bh2nw54CZ9M2nupBxJcTsdk/QQnWkdSjKGuxmmH8/GWrlT1eMmZfn4dGcCjRte397WqfQXA==", + "cpu": [ + "arm64" + ], "dev": true, "license": "MIT", + "optional": true, + "os": [ + "win32" + ], "engines": { - "node": ">=6.9.0" + "node": ">=18" } }, - "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.29.7.tgz", - "integrity": "sha512-j+7JYmk1JYDtACIGj0QJqqWZjoUpMoEikQGADMaHgCMCSDqd2+P32rfcibUNrGOMWrlzK1WJBdxrB3JJQZwWtg==", + "node_modules/@esbuild/win32-ia32": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.28.1.tgz", + "integrity": "sha512-zvb/mB2bSCoJOpoCBgYKKpX6YM6mJBlBUVUtVj41DlZJVEB6/0CKlRYxP5wWl1C1ILiCoAU5wZZ4q1P3qeS6Eg==", + "cpu": [ + "ia32" + ], "dev": true, "license": "MIT", - "dependencies": { - "@babel/traverse": "^7.29.7", - "@babel/types": "^7.29.7" - }, + "optional": true, + "os": [ + "win32" + ], "engines": { - "node": ">=6.9.0" + "node": ">=18" } }, - "node_modules/@babel/helper-module-imports": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.29.7.tgz", - "integrity": "sha512-ejHwrQQYcm9xnTivShn2IDOlIzInN34AXskvq9QicvCtEzq1Vzclu/tKF8Jq1Cg8JG2GL6/EmjgsCT7lXepE3g==", + "node_modules/@esbuild/win32-x64": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.28.1.tgz", + "integrity": "sha512-bm4Mowrv+GXMlpWX++EcXw/iLyd1o3+bJkC2DkWXYVvgZCqD/bSj9ctZeAMC3cIxgjRVR2Dufaiu4YPxr5gW1A==", + "cpu": [ + "x64" + ], "dev": true, "license": "MIT", - "dependencies": { - "@babel/traverse": "^7.29.7", - "@babel/types": "^7.29.7" - }, + "optional": true, + "os": [ + "win32" + ], "engines": { - "node": ">=6.9.0" + "node": ">=18" } }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.29.7.tgz", - "integrity": "sha512-UPUVSyXbOh627KiCIGQSgwWzGeBKLkaJ9PJEdrngIwMSzxLR4jS4+f1f1jb7VzBbg8nFLaYotvVPFCTqdrmTAg==", + "node_modules/@exodus/bytes": { + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/@exodus/bytes/-/bytes-1.16.0.tgz", + "integrity": "sha512-IcpW84uEn3N7ETtNZMlxKhfl6Pec8rUNGOTBtWbK1FKhJxIFAptZyVrvVRVBimAJxJCgc3PxepxkdWWG4DVzfA==", "dev": true, "license": "MIT", - "dependencies": { - "@babel/helper-module-imports": "^7.29.7", - "@babel/helper-validator-identifier": "^7.29.7", - "@babel/traverse": "^7.29.7" - }, "engines": { - "node": ">=6.9.0" + "node": "^20.19.0 || ^22.12.0 || >=24.0.0" }, "peerDependencies": { - "@babel/core": "^7.0.0" + "@noble/hashes": "^1.8.0 || ^2.0.0" + }, + "peerDependenciesMeta": { + "@noble/hashes": { + "optional": true + } } }, - "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.29.7.tgz", - "integrity": "sha512-+kmGVjcT9RGYzoDwdwEqEvGgKe3BYq+O1iGzjFubaNgZHwYHP6lsF2Yghf4kEuv9BV7tYDZ913aBW9am6YKong==", + "node_modules/@gar/promise-retry": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@gar/promise-retry/-/promise-retry-1.0.3.tgz", + "integrity": "sha512-GmzA9ckNokPypTg10pgpeHNQe7ph+iIKKmhKu3Ob9ANkswreCx7R3cKmY781K8QK3AqVL3xVh9A42JvIAbkkSA==", "dev": true, "license": "MIT", - "dependencies": { - "@babel/types": "^7.29.7" - }, "engines": { - "node": ">=6.9.0" + "node": "^20.17.0 || >=22.9.0" } }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.29.7.tgz", - "integrity": "sha512-G7sHYigPY17oO5SYWnfD/0MTBwVR781S/JI643e/JhUYgVgWE/61SoW3NH9KWUKyKq5LVh3npif99Wkt6j86Jw==", + "node_modules/@harperfast/extended-iterable": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@harperfast/extended-iterable/-/extended-iterable-1.0.3.tgz", + "integrity": "sha512-sSAYhQca3rDWtQUHSAPeO7axFIUJOI6hn1gjRC5APVE1a90tuyT8f5WIgRsFhhWA7htNkju2veB9eWL6YHi/Lw==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } + "license": "Apache-2.0", + "optional": true }, - "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.29.7.tgz", - "integrity": "sha512-16AMiW26DbXWBbr3B8wNozKM0ydMLB892vaOaJW/fPJdnT8vJk5sdkQcU/isqUxyCE0cEoa8wZOcbgDuC4b6Og==", + "node_modules/@hono/node-server": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@hono/node-server/-/node-server-2.1.3.tgz", + "integrity": "sha512-TA//nWMqPhbfdfneACk6t5a9eqbS9lABEPyKn0/xZTah3H3U2XaVg85rJFl0/Fyit0I552YDHgXGVSf3GwqbUw==", "dev": true, "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.29.7", - "@babel/helper-wrap-function": "^7.29.7", - "@babel/traverse": "^7.29.7" - }, "engines": { - "node": ">=6.9.0" + "node": ">=20" }, "peerDependencies": { - "@babel/core": "^7.0.0" + "hono": "^4" } }, - "node_modules/@babel/helper-remap-async-to-generator/node_modules/@babel/helper-annotate-as-pure": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.29.7.tgz", - "integrity": "sha512-OoK6239jHPuSQOoS0kfTVKn0b/rVTk0seKq4Gd2UMLtmOVLjDC0ki3e+c90Trqv2gMfvJFqkiljrr568+qddiw==", + "node_modules/@inquirer/ansi": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@inquirer/ansi/-/ansi-1.0.2.tgz", + "integrity": "sha512-S8qNSZiYzFd0wAcyG5AXCvUHC5Sr7xpZ9wZ2py9XR88jUz8wooStVx5M6dRzczbBWjic9NP7+rY0Xi7qqK/aMQ==", "dev": true, "license": "MIT", - "dependencies": { - "@babel/types": "^7.29.7" - }, "engines": { - "node": ">=6.9.0" + "node": ">=18" } }, - "node_modules/@babel/helper-replace-supers": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.29.7.tgz", - "integrity": "sha512-atfGXWSeCiF4DnKZIfmJfQRkSw9b9gNNXR1kqKjbhG4pGYCOnkp8OcTB8E3NXjBu8NpheSnOeNKz8KT7UNFTmQ==", + "node_modules/@inquirer/checkbox": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/@inquirer/checkbox/-/checkbox-4.3.2.tgz", + "integrity": "sha512-VXukHf0RR1doGe6Sm4F0Em7SWYLTHSsbGfJdS9Ja2bX5/D5uwVOEjr07cncLROdBvmnvCATYEWlHqYmXv2IlQA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-member-expression-to-functions": "^7.29.7", - "@babel/helper-optimise-call-expression": "^7.29.7", - "@babel/traverse": "^7.29.7" + "@inquirer/ansi": "^1.0.2", + "@inquirer/core": "^10.3.2", + "@inquirer/figures": "^1.0.15", + "@inquirer/type": "^3.0.10", + "yoctocolors-cjs": "^2.1.3" }, "engines": { - "node": ">=6.9.0" + "node": ">=18" }, "peerDependencies": { - "@babel/core": "^7.0.0" + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } } }, - "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.29.7.tgz", - "integrity": "sha512-brcMGQaVzIeUb+6/bs1Av0f8YuNNjKY2JyvfRCsFuFsdKccEQ5Ges2y74D74NZ1Rz8lKJ9ksJkfqwQFJ/iNEyQ==", + "node_modules/@inquirer/confirm": { + "version": "5.1.21", + "resolved": "https://registry.npmjs.org/@inquirer/confirm/-/confirm-5.1.21.tgz", + "integrity": "sha512-KR8edRkIsUayMXV+o3Gv+q4jlhENF9nMYUZs9PA2HzrXeHI8M5uDag70U7RJn9yyiMZSbtF5/UexBtAVtZGSbQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/traverse": "^7.29.7", - "@babel/types": "^7.29.7" + "@inquirer/core": "^10.3.2", + "@inquirer/type": "^3.0.10" }, "engines": { - "node": ">=6.9.0" + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } } }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.7.tgz", - "integrity": "sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==", + "node_modules/@inquirer/core": { + "version": "10.3.2", + "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-10.3.2.tgz", + "integrity": "sha512-43RTuEbfP8MbKzedNqBrlhhNKVwoK//vUFNW3Q3vZ88BLcrs4kYpGg+B2mm5p2K/HfygoCxuKwJJiv8PbGmE0A==", "dev": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-string-parser": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.29.7.tgz", - "integrity": "sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.29.7.tgz", - "integrity": "sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==", - "dev": true, - "license": "MIT", + "@inquirer/ansi": "^1.0.2", + "@inquirer/figures": "^1.0.15", + "@inquirer/type": "^3.0.10", + "cli-width": "^4.1.0", + "mute-stream": "^2.0.0", + "signal-exit": "^4.1.0", + "wrap-ansi": "^6.2.0", + "yoctocolors-cjs": "^2.1.3" + }, "engines": { - "node": ">=6.9.0" + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } } }, - "node_modules/@babel/helper-validator-option": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.29.7.tgz", - "integrity": "sha512-N9ZErrD+yW5geCDtBqnOoxmR8+tNKiGuxKlDpuJxfsqpa2dFcexaziGAE/qoHLiDDreVNMupxGmSoNlyvsA3gw==", + "node_modules/@inquirer/core/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", "dev": true, - "license": "MIT", + "license": "ISC", "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-wrap-function": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.29.7.tgz", - "integrity": "sha512-iES0Skag9ERIF68aXadpO6dbXa03mNWK3sEqJaMnLNs/eC3l0lkImdfoy6Y09/SfkpawdAB4RjQ7PVA7TcVGdw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/template": "^7.29.7", - "@babel/traverse": "^7.29.7", - "@babel/types": "^7.29.7" + "node": ">=14" }, - "engines": { - "node": ">=6.9.0" + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@babel/helpers": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.29.7.tgz", - "integrity": "sha512-1k2lAGRMfHTcwuNYcCNUmaUffmQv8KWMfh2iJUUeRlwlwH4FdNG7mfPI10NPfLHJFThE4Tyr4mv7kTNZOiPuBg==", + "node_modules/@inquirer/editor": { + "version": "4.2.23", + "resolved": "https://registry.npmjs.org/@inquirer/editor/-/editor-4.2.23.tgz", + "integrity": "sha512-aLSROkEwirotxZ1pBaP8tugXRFCxW94gwrQLxXfrZsKkfjOYC1aRvAZuhpJOb5cu4IBTJdsCigUlf2iCOu4ZDQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/template": "^7.29.7", - "@babel/types": "^7.29.7" + "@inquirer/core": "^10.3.2", + "@inquirer/external-editor": "^1.0.3", + "@inquirer/type": "^3.0.10" }, "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/parser": { - "version": "7.29.9", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.9.tgz", - "integrity": "sha512-CjXrNHTnvqBVqHgdBysY3vk2T8tpJHb5/RMeHJBTyVa9xgugCB0CJTx/3oO8RV2QRQP391RWpB7D6hLjm8V9uA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.29.8" + "node": ">=18" }, - "bin": { - "parser": "bin/babel-parser.js" + "peerDependencies": { + "@types/node": ">=18" }, - "engines": { - "node": ">=6.0.0" + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } } }, - "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.29.7.tgz", - "integrity": "sha512-j8SrR0zLZrRsC09DlszEx8FpMiwukKffYXMK0d5LmOglO7vGG6sz/BR/20yHqWH+Lnn31JTt2PE3hIWNgM2J6w==", + "node_modules/@inquirer/expand": { + "version": "4.0.23", + "resolved": "https://registry.npmjs.org/@inquirer/expand/-/expand-4.0.23.tgz", + "integrity": "sha512-nRzdOyFYnpeYTTR2qFwEVmIWypzdAx/sIkCMeTNTcflFOovfqUk+HcFhQQVBftAh9gmGrpFj6QcGEqrDMDOiew==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.29.7", - "@babel/traverse": "^7.29.7" + "@inquirer/core": "^10.3.2", + "@inquirer/type": "^3.0.10", + "yoctocolors-cjs": "^2.1.3" }, "engines": { - "node": ">=6.9.0" + "node": ">=18" }, "peerDependencies": { - "@babel/core": "^7.0.0" + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } } }, - "node_modules/@babel/plugin-bugfix-safari-class-field-initializer-scope": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.29.7.tgz", - "integrity": "sha512-r8j8escF+U2FUHo0KOhPUdMzUO+jp9fInva6+ACVAF3Y97Ev+5iNZwiqTghmzNeWwDkOPlYuTcfb1vDaoZKmAQ==", + "node_modules/@inquirer/external-editor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@inquirer/external-editor/-/external-editor-1.0.3.tgz", + "integrity": "sha512-RWbSrDiYmO4LbejWY7ttpxczuwQyZLBUyygsA9Nsv95hpzUWwnNTVQmAq3xuh7vNwCp07UTmE5i11XAEExx4RA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.29.7" + "chardet": "^2.1.1", + "iconv-lite": "^0.7.0" }, "engines": { - "node": ">=6.9.0" + "node": ">=18" }, "peerDependencies": { - "@babel/core": "^7.0.0" + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } } }, - "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.29.7.tgz", - "integrity": "sha512-GE1TFSiuFeGsCxmYXZl8HwoPrVlwe4rHPFE8weieGKZqnDORK+Ar3vgWMgW+AOxQ6/2TgLSKx9p6W7O4rC6qgQ==", + "node_modules/@inquirer/external-editor/node_modules/iconv-lite": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.3.tgz", + "integrity": "sha512-IKXpvIzjnC9XTAUbVBcMfGS0EPaIXtW6v+zr+RRp+hqULEpo0owZax6wyRwPOJbWbzjYspQwusTsfVr0ifh4uQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.29.7" + "safer-buffer": ">= 2.1.2 < 3.0.0" }, "engines": { - "node": ">=6.9.0" + "node": ">=0.10.0" }, - "peerDependencies": { - "@babel/core": "^7.0.0" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" } }, - "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.29.7.tgz", - "integrity": "sha512-QQt9qKHZ2sg/kivaLr7lnQr8HVrQDdBNSfCsTjiDxRuX/K5ORyKq+Bu8Xr0cDE3Dfkv0cw28Ve0EKyKMvulkOw==", + "node_modules/@inquirer/figures": { + "version": "1.0.15", + "resolved": "https://registry.npmjs.org/@inquirer/figures/-/figures-1.0.15.tgz", + "integrity": "sha512-t2IEY+unGHOzAaVM5Xx6DEWKeXlDDcNPeDyUpsRc6CUhBfU3VQOEl+Vssh7VNp1dR8MdUJBWhuObjXCsVpjN5g==", "dev": true, "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.29.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.29.7", - "@babel/plugin-transform-optional-chaining": "^7.29.7" - }, "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.13.0" + "node": ">=18" } }, - "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.29.7.tgz", - "integrity": "sha512-pn6QacGLgvCcwc+syUhKE/qSjV2D1IHDB84RNxWYSt1mW3K/SCtjinZ2p0cETJxAWBjPy3K/1lHwG5BjjPxNlw==", + "node_modules/@inquirer/input": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@inquirer/input/-/input-4.3.1.tgz", + "integrity": "sha512-kN0pAM4yPrLjJ1XJBjDxyfDduXOuQHrBB8aLDMueuwUGn+vNpF7Gq7TvyVxx8u4SHlFFj4trmj+a2cbpG4Jn1g==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.29.7", - "@babel/traverse": "^7.29.7" + "@inquirer/core": "^10.3.2", + "@inquirer/type": "^3.0.10" }, "engines": { - "node": ">=6.9.0" + "node": ">=18" }, "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-proposal-private-property-in-object": { - "version": "7.21.0-placeholder-for-preset-env.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", - "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" + "@types/node": ">=18" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } } }, - "node_modules/@babel/plugin-syntax-import-assertions": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.29.7.tgz", - "integrity": "sha512-/An1OCBN93thpBAGyfsK2pcf0jvju1SAtKkL2Ny++B5Sy6sqgzXDQH1cZxWbF96Wuk+bn41MDA9bLd4VVAw6rw==", + "node_modules/@inquirer/number": { + "version": "3.0.23", + "resolved": "https://registry.npmjs.org/@inquirer/number/-/number-3.0.23.tgz", + "integrity": "sha512-5Smv0OK7K0KUzUfYUXDXQc9jrf8OHo4ktlEayFlelCjwMXz0299Y8OrI+lj7i4gCBY15UObk76q0QtxjzFcFcg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.29.7" + "@inquirer/core": "^10.3.2", + "@inquirer/type": "^3.0.10" }, "engines": { - "node": ">=6.9.0" + "node": ">=18" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } } }, - "node_modules/@babel/plugin-syntax-import-attributes": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.29.7.tgz", - "integrity": "sha512-zGYcYfq/WmZ4V+kBIXQon9dSSc8ircGZqw9ZaNhhGj9nZkeBu1jHLBDQqYYi5WA9uawvA2sIMbry2nCFhf5Djg==", + "node_modules/@inquirer/password": { + "version": "4.0.23", + "resolved": "https://registry.npmjs.org/@inquirer/password/-/password-4.0.23.tgz", + "integrity": "sha512-zREJHjhT5vJBMZX/IUbyI9zVtVfOLiTO66MrF/3GFZYZ7T4YILW5MSkEYHceSii/KtRk+4i3RE7E1CUXA2jHcA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.29.7" + "@inquirer/ansi": "^1.0.2", + "@inquirer/core": "^10.3.2", + "@inquirer/type": "^3.0.10" }, "engines": { - "node": ">=6.9.0" + "node": ">=18" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } } }, - "node_modules/@babel/plugin-syntax-unicode-sets-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", - "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", + "node_modules/@inquirer/prompts": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@inquirer/prompts/-/prompts-7.10.1.tgz", + "integrity": "sha512-Dx/y9bCQcXLI5ooQ5KyvA4FTgeo2jYj/7plWfV5Ak5wDPKQZgudKez2ixyfz7tKXzcJciTxqLeK7R9HItwiByg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" + "@inquirer/checkbox": "^4.3.2", + "@inquirer/confirm": "^5.1.21", + "@inquirer/editor": "^4.2.23", + "@inquirer/expand": "^4.0.23", + "@inquirer/input": "^4.3.1", + "@inquirer/number": "^3.0.23", + "@inquirer/password": "^4.0.23", + "@inquirer/rawlist": "^4.1.11", + "@inquirer/search": "^3.2.2", + "@inquirer/select": "^4.4.2" }, "engines": { - "node": ">=6.9.0" + "node": ">=18" }, "peerDependencies": { - "@babel/core": "^7.0.0" + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } } }, - "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.29.7.tgz", - "integrity": "sha512-N7zArUXWzAMzm+/N0uPBeVB3Fam5lMxtUwMmDK5f/IBBS7a7p1qeUoxd/6CckXoxUdgsntq1Dh8xNW06maZbDQ==", + "node_modules/@inquirer/rawlist": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/@inquirer/rawlist/-/rawlist-4.1.11.tgz", + "integrity": "sha512-+LLQB8XGr3I5LZN/GuAHo+GpDJegQwuPARLChlMICNdwW7OwV2izlCSCxN6cqpL0sMXmbKbFcItJgdQq5EBXTw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.29.7" + "@inquirer/core": "^10.3.2", + "@inquirer/type": "^3.0.10", + "yoctocolors-cjs": "^2.1.3" }, "engines": { - "node": ">=6.9.0" + "node": ">=18" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } } }, - "node_modules/@babel/plugin-transform-async-generator-functions": { - "version": "7.29.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.29.0.tgz", - "integrity": "sha512-va0VdWro4zlBr2JsXC+ofCPB2iG12wPtVGTWFx2WLDOM3nYQZZIGP82qku2eW/JR83sD+k2k+CsNtyEbUqhU6w==", + "node_modules/@inquirer/search": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/@inquirer/search/-/search-3.2.2.tgz", + "integrity": "sha512-p2bvRfENXCZdWF/U2BXvnSI9h+tuA8iNqtUKb9UWbmLYCRQxd8WkvwWvYn+3NgYaNwdUkHytJMGG4MMLucI1kA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.28.6", - "@babel/helper-remap-async-to-generator": "^7.27.1", - "@babel/traverse": "^7.29.0" + "@inquirer/core": "^10.3.2", + "@inquirer/figures": "^1.0.15", + "@inquirer/type": "^3.0.10", + "yoctocolors-cjs": "^2.1.3" }, "engines": { - "node": ">=6.9.0" + "node": ">=18" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.28.6.tgz", - "integrity": "sha512-ilTRcmbuXjsMmcZ3HASTe4caH5Tpo93PkTxF9oG2VZsSWsahydmcEHhix9Ik122RcTnZnUzPbmux4wh1swfv7g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-module-imports": "^7.28.6", - "@babel/helper-plugin-utils": "^7.28.6", - "@babel/helper-remap-async-to-generator": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" + "@types/node": ">=18" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } } }, - "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.29.7.tgz", - "integrity": "sha512-cUSmjh72N+rN4PrkFlN1dJwNCwjVp5d38/CQrEsFggkD10UiFlBFgdH3tv5dNsLuHY+3S8db2xCHjhZcv5WgvA==", + "node_modules/@inquirer/select": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/@inquirer/select/-/select-4.4.2.tgz", + "integrity": "sha512-l4xMuJo55MAe+N7Qr4rX90vypFwCajSakx59qe/tMaC1aEHWLyw68wF4o0A4SLAY4E0nd+Vt+EyskeDIqu1M6w==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.29.7" + "@inquirer/ansi": "^1.0.2", + "@inquirer/core": "^10.3.2", + "@inquirer/figures": "^1.0.15", + "@inquirer/type": "^3.0.10", + "yoctocolors-cjs": "^2.1.3" }, "engines": { - "node": ">=6.9.0" + "node": ">=18" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } } }, - "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.29.7.tgz", - "integrity": "sha512-ONyr4+AZhKh8yKWInVxU9AXA9EbsyeLcL6V0dJy6M2/62vuvpGm29zzuymbTpdc451GEpDIdAyPLP3r+P61yKQ==", + "node_modules/@inquirer/type": { + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-3.0.10.tgz", + "integrity": "sha512-BvziSRxfz5Ov8ch0z/n3oijRSEcEsHnhggm4xFZe93DHcUCTlutlq9Ox4SVENAfcRD22UQq7T/atg9Wr3k09eA==", "dev": true, "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.29.7" - }, "engines": { - "node": ">=6.9.0" + "node": ">=18" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } } }, - "node_modules/@babel/plugin-transform-class-properties": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.29.7.tgz", - "integrity": "sha512-GtcpjFvanPfzNQi3eTitsCqtRRmmqzpy/A+yhTR1HaZo1Ly3EA8ZXxlPyHdR8/IuRMYc3E4wdGBewB2QKQjAaA==", + "node_modules/@isaacs/fs-minipass": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@isaacs/fs-minipass/-/fs-minipass-4.0.1.tgz", + "integrity": "sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==", "dev": true, - "license": "MIT", + "license": "ISC", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.29.7", - "@babel/helper-plugin-utils": "^7.29.7" + "minipass": "^7.0.4" }, "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=18.0.0" } }, - "node_modules/@babel/plugin-transform-class-static-block": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.29.7.tgz", - "integrity": "sha512-kibJgmEdX2iMwsHY2tSZNDgj8PwIlCQz7FK9KuGKO8zsuoUwSEhoNnNVp/emKWrbY4HeO6kkXfdMqRKKKXBm2A==", + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.29.7", - "@babel/helper-plugin-utils": "^7.29.7" - }, "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.12.0" + "node": ">=8" } }, - "node_modules/@babel/plugin-transform-classes": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.29.7.tgz", - "integrity": "sha512-qV0OGGBVacduzQHE649JyCneOFI/maT+YKsO+K4Yi3xv2wTPNjM/W2o2gdzMwEAZz7fXNTHAe0NcSg30bIN69g==", + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.29.7", - "@babel/helper-compilation-targets": "^7.29.7", - "@babel/helper-globals": "^7.29.7", - "@babel/helper-plugin-utils": "^7.29.7", - "@babel/helper-replace-supers": "^7.29.7", - "@babel/traverse": "^7.29.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" } }, - "node_modules/@babel/plugin-transform-classes/node_modules/@babel/helper-annotate-as-pure": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.29.7.tgz", - "integrity": "sha512-OoK6239jHPuSQOoS0kfTVKn0b/rVTk0seKq4Gd2UMLtmOVLjDC0ki3e+c90Trqv2gMfvJFqkiljrr568+qddiw==", + "node_modules/@jridgewell/remapping": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", + "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.29.7" - }, - "engines": { - "node": ">=6.9.0" + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" } }, - "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.29.7.tgz", - "integrity": "sha512-RK7/IyU5phpuCdBAuig5VkzG/EnbDaui5SQGdU9BFrHdV+mV4cUjLMQ9lJDjLNtWHsqtiefpGZUXQP2BiTYMsA==", + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.29.7", - "@babel/template": "^7.29.7" - }, "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=6.0.0" } }, - "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.29.7.tgz", - "integrity": "sha512-iPX8aD6H9zV5s7ZsqTdNocPN/MGQ5sSMnElKrktxjJRMnB2jN/1p2+R7GkfD6CAYoVFqy5A4XnSIUeGgJzIWpg==", + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.6.0.tgz", + "integrity": "sha512-T7jf+5zgsZHwNJ4lvQ7/aezbyk0nNX+zJVWpmHA7VYsEx7a7qr5Rg5IbtJFqkgze5Y2sruq1RUY8Q837Od7iFw==", "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.29.7", - "@babel/traverse": "^7.29.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } + "license": "MIT" }, - "node_modules/@babel/plugin-transform-dotall-regex": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.29.7.tgz", - "integrity": "sha512-3qc18hsD2RdZiyJNDNc7HQpv6xbncwh8FYtxNFFzclSyh/trPD9KkVR9BDECUjDLvb7yJVF15GfYUuC+LMkkiQ==", + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.29.7", - "@babel/helper-plugin-utils": "^7.29.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" } }, - "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.29.7.tgz", - "integrity": "sha512-6IvRRriEMqnBwD6chtxdLpMYCHWEzN+oL5cyQtjykya19UgzbmKhxmhZgKC/LHxS2nYr9Q/qYPZ5Lr6jOL9+yQ==", + "node_modules/@listr2/prompt-adapter-inquirer": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@listr2/prompt-adapter-inquirer/-/prompt-adapter-inquirer-3.0.5.tgz", + "integrity": "sha512-WELs+hj6xcilkloBXYf9XXK8tYEnKsgLj01Xl5ONUJpKjmT5hGVUzNUS5tooUxs7pGMrw+jFD/41WpqW4V3LDA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.29.7" + "@inquirer/type": "^3.0.8" }, "engines": { - "node": ">=6.9.0" + "node": ">=20.0.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@inquirer/prompts": ">= 3 < 8", + "listr2": "9.0.5" } }, - "node_modules/@babel/plugin-transform-duplicate-named-capturing-groups-regex": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.29.7.tgz", - "integrity": "sha512-2wiIyo2BjtgU7HufSeDnL9L2O7zr8jmhFKuSr65VpRkUiRKRNpb0mdlk56+XPPKoIrfHqzbMuglDvZun0RISsA==", + "node_modules/@lmdb/lmdb-darwin-arm64": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-darwin-arm64/-/lmdb-darwin-arm64-3.5.1.tgz", + "integrity": "sha512-tpfN4kKrrMpQ+If1l8bhmoNkECJi0iOu6AEdrTJvWVC+32sLxTARX5Rsu579mPImRP9YFWfWgeRQ5oav7zApQQ==", + "cpu": [ + "arm64" + ], "dev": true, "license": "MIT", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.29.7", - "@babel/helper-plugin-utils": "^7.29.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } + "optional": true, + "os": [ + "darwin" + ] }, - "node_modules/@babel/plugin-transform-dynamic-import": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.29.7.tgz", - "integrity": "sha512-giOlEm/EFjfjr+te9NsdjkUo2v4f8rS/SXPumRVHAtbNcyNlvtREkU1dZzaIDclNpnaVhlCqRdFKhJBjBikzLg==", + "node_modules/@lmdb/lmdb-darwin-x64": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-darwin-x64/-/lmdb-darwin-x64-3.5.1.tgz", + "integrity": "sha512-+a2tTfc3rmWhLAolFUWRgJtpSuu+Fw/yjn4rF406NMxhfjbMuiOUTDRvRlMFV+DzyjkwnokisskHbCWkS3Ly5w==", + "cpu": [ + "x64" + ], "dev": true, "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.29.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } + "optional": true, + "os": [ + "darwin" + ] }, - "node_modules/@babel/plugin-transform-explicit-resource-management": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-explicit-resource-management/-/plugin-transform-explicit-resource-management-7.29.7.tgz", - "integrity": "sha512-Rstj7coNz8sE+7Ju7ihpHLI564lsK5pUpNNlvptCIC/16E/S5hbl6n3kESPKdNRmqEWlpn5xpS5Q2dvXBsySLw==", + "node_modules/@lmdb/lmdb-linux-arm": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-arm/-/lmdb-linux-arm-3.5.1.tgz", + "integrity": "sha512-0EgcE6reYr8InjD7V37EgXcYrloqpxVPINy3ig1MwDSbl6LF/vXTYRH9OE1Ti1D8YZnB35ZH9aTcdfSb5lql2A==", + "cpu": [ + "arm" + ], "dev": true, "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.29.7", - "@babel/plugin-transform-destructuring": "^7.29.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.29.7.tgz", - "integrity": "sha512-zFpMOTLZBdW5LfObqcSbL6kefg4R4eLdmvS0wbN9M6D5Mym/sKm9toOoWyVOa+xDjvCnuWcHls2YonXwHvH3CQ==", + "node_modules/@lmdb/lmdb-linux-arm64": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-arm64/-/lmdb-linux-arm64-3.5.1.tgz", + "integrity": "sha512-aoERa5B6ywXdyFeYGQ1gbQpkMkDbEo45qVoXE5QpIRavqjnyPwjOulMkmkypkmsbJ5z4Wi0TBztON8agCTG0Vg==", + "cpu": [ + "arm64" + ], "dev": true, "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.29.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/@babel/plugin-transform-export-namespace-from": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.29.7.tgz", - "integrity": "sha512-24B2nOy2TeJSMheqwPD4DDQOV/elLSIlKxjZt4i05H5AgdPdWR3n18HnNrcJ+j76WJd9gbwb9jPjNYUy6RautA==", + "node_modules/@lmdb/lmdb-linux-x64": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-x64/-/lmdb-linux-x64-3.5.1.tgz", + "integrity": "sha512-SqNDY1+vpji7bh0sFH5wlWyFTOzjbDOl0/kB5RLLYDAFyd/uw3n7wyrmas3rYPpAW7z18lMOi1yKlTPv967E3g==", + "cpu": [ + "x64" + ], "dev": true, "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.29.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/@babel/plugin-transform-for-of": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.29.7.tgz", - "integrity": "sha512-zeSIHh0+E1Um1WJRXCFlHQYu2ieJNdivLLjlBEp+dIBu3S51n+SZZmIXjxnItw6pz56Cn+KvK68BIBVsxq2JiQ==", + "node_modules/@lmdb/lmdb-win32-arm64": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-win32-arm64/-/lmdb-win32-arm64-3.5.1.tgz", + "integrity": "sha512-50v0O1Lt37cwrmR9vWZK5hRW0Aw+KEmxJJ75fge/zIYdvNKB/0bSMSVR5Uc2OV9JhosIUyklOmrEvavwNJ8D6w==", + "cpu": [ + "arm64" + ], "dev": true, "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.29.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.29.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } + "optional": true, + "os": [ + "win32" + ] }, - "node_modules/@babel/plugin-transform-function-name": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.29.7.tgz", - "integrity": "sha512-otRWaHXE6fbAGkePvaj/kvs3HsqXfPhlnzwSOlnFgbqCPMd975dW+4wZ00WFBt+/YlBGcJwNrARQTOJOb4ZrIg==", + "node_modules/@lmdb/lmdb-win32-x64": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-win32-x64/-/lmdb-win32-x64-3.5.1.tgz", + "integrity": "sha512-qwosvPyl+zpUlp3gRb7UcJ3H8S28XHCzkv0Y0EgQToXjQP91ZD67EHSCDmaLjtKhe+GVIW5om1KUpzVLA0l6pg==", + "cpu": [ + "x64" + ], "dev": true, "license": "MIT", - "dependencies": { - "@babel/helper-compilation-targets": "^7.29.7", - "@babel/helper-plugin-utils": "^7.29.7", - "@babel/traverse": "^7.29.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } + "optional": true, + "os": [ + "win32" + ] }, - "node_modules/@babel/plugin-transform-json-strings": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.29.7.tgz", - "integrity": "sha512-RRnE2+eon1rJAq8MnoF1b5kTpY1vU88twHcvcKMrsqP/jxIRqDVs9iJB5fqPuqyeFAW0wJo4MlUIPpQCq/aRsg==", + "node_modules/@modelcontextprotocol/sdk": { + "version": "1.30.0", + "resolved": "https://registry.npmjs.org/@modelcontextprotocol/sdk/-/sdk-1.30.0.tgz", + "integrity": "sha512-xKd8OIzlqNzcqcNumGAa6g+PW2kjD5vrpcKOnfldAUPP3j7lnqMPwlTXQm8gF+UwH72z0lqaRbjr9hqGz0eITA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.29.7" + "@hono/node-server": "^1.19.9 || ^2.0.5", + "ajv": "^8.17.1", + "ajv-formats": "^3.0.1", + "content-type": "^1.0.5", + "cors": "^2.8.5", + "cross-spawn": "^7.0.5", + "eventsource": "^3.0.2", + "eventsource-parser": "^3.0.0", + "express": "^5.2.1", + "express-rate-limit": "^8.2.1", + "hono": "^4.11.4", + "jose": "^6.1.3", + "json-schema-typed": "^8.0.2", + "pkce-challenge": "^5.0.0", + "raw-body": "^3.0.0", + "zod": "^3.25 || ^4.0", + "zod-to-json-schema": "^3.25.1" }, "engines": { - "node": ">=6.9.0" + "node": ">=18" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@cfworker/json-schema": "^4.1.1", + "zod": "^3.25 || ^4.0" + }, + "peerDependenciesMeta": { + "@cfworker/json-schema": { + "optional": true + }, + "zod": { + "optional": false + } } }, - "node_modules/@babel/plugin-transform-literals": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.29.7.tgz", - "integrity": "sha512-DZ/oLP21ZuWx1vKqnoNv6/tvEK48AQOBRai40CX9dTjGluvT/YZCyY3rryDtyUqCEoyNroy5KKPwX2iQCiRvyw==", + "node_modules/@modelcontextprotocol/sdk/node_modules/ajv": { + "version": "8.20.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.20.0.tgz", + "integrity": "sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.29.7" - }, - "engines": { - "node": ">=6.9.0" + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/@babel/plugin-transform-logical-assignment-operators": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.29.7.tgz", - "integrity": "sha512-A0H91hh6W8MFRkp5TqJmMr39jzGD1A1E1Ysiv2O06Sfbhkapm+XyIzxWCEh5kqwOZ1/8QZ0dY3SeQ7XBqfJd5Q==", + "node_modules/@modelcontextprotocol/sdk/node_modules/ajv-formats": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-3.0.1.tgz", + "integrity": "sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.29.7" - }, - "engines": { - "node": ">=6.9.0" + "ajv": "^8.0.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } } }, - "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.29.7.tgz", - "integrity": "sha512-hl1kwFZCCiDyfH25Xmco9jTrkPgnS9pmOzSG7W5I4SaGbLeqKv417hcU2RKmaxoPEgsoJh7ZPOrnPGq99bHoUg==", + "node_modules/@modelcontextprotocol/sdk/node_modules/iconv-lite": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.3.tgz", + "integrity": "sha512-IKXpvIzjnC9XTAUbVBcMfGS0EPaIXtW6v+zr+RRp+hqULEpo0owZax6wyRwPOJbWbzjYspQwusTsfVr0ifh4uQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.29.7" + "safer-buffer": ">= 2.1.2 < 3.0.0" }, "engines": { - "node": ">=6.9.0" + "node": ">=0.10.0" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" } }, - "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.29.7.tgz", - "integrity": "sha512-fxtQoH3m5ywUSIfaH0FGCzWu4McsYon5bD3K4XnskC7f+OyQMj7rsOMi4NvvmJ83WwBAg4UCe+ov4VZlqEvyew==", + "node_modules/@modelcontextprotocol/sdk/node_modules/raw-body": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-3.0.2.tgz", + "integrity": "sha512-K5zQjDllxWkf7Z5xJdV0/B0WTNqx6vxG70zJE4N0kBs4LovmEYWJzQGxC9bS9RAKu3bgM40lrd5zoLJ12MQ5BA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-module-transforms": "^7.29.7", - "@babel/helper-plugin-utils": "^7.29.7" + "bytes": "~3.1.2", + "http-errors": "~2.0.1", + "iconv-lite": "~0.7.0", + "unpipe": "~1.0.0" }, "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">= 0.10" } }, - "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.29.7.tgz", - "integrity": "sha512-j0vCldybPC5b5dwCQOJ21uKtHzt7hxLygJTg9eF1ScfaikEDNfzn94XoW5Fi+seBR0nCyL23xaBFFkq7dTM8XQ==", + "node_modules/@msgpackr-extract/msgpackr-extract-darwin-arm64": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-darwin-arm64/-/msgpackr-extract-darwin-arm64-3.0.4.tgz", + "integrity": "sha512-LCkGo6JDfaBhgST7UpPWgNgLINpcpabaHfyz5OBx75nUYxBsaEPxjnyNjWpeb/xBup/682QnBfRBy2/LvPutZQ==", + "cpu": [ + "arm64" + ], "dev": true, "license": "MIT", - "dependencies": { - "@babel/helper-module-transforms": "^7.29.7", - "@babel/helper-plugin-utils": "^7.29.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } + "optional": true, + "os": [ + "darwin" + ] }, - "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.29.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.29.8.tgz", - "integrity": "sha512-6iSnEK0zlkLKU4heofK/AdmRD4e2SHVpJMtrwnTCzhnaM98ria4rTrOXBBi45BTTYnJtO8txnPsX4fChYXkmeA==", + "node_modules/@msgpackr-extract/msgpackr-extract-darwin-x64": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-darwin-x64/-/msgpackr-extract-darwin-x64-3.0.4.tgz", + "integrity": "sha512-zExlW9zUJKZH/tOtVMttwjKa4Xm/3KcNjnE3dPN92uCktwavMxpgCA3MoJK/DOnTWsQgo224OaST27/mPNAf+w==", + "cpu": [ + "x64" + ], "dev": true, "license": "MIT", - "dependencies": { - "@babel/helper-module-transforms": "^7.29.7", - "@babel/helper-plugin-utils": "^7.29.7", - "@babel/helper-validator-identifier": "^7.29.7", - "@babel/traverse": "^7.29.8" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } + "optional": true, + "os": [ + "darwin" + ] }, - "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.29.7.tgz", - "integrity": "sha512-B4UkaTK3QpgCwJnrxKfMPKdo92CN7OKXAlpAAnM3UPu0Q0lCCk57ylA9AJbRy2v8dDKOPAAWcoR6CMyeoHwRCA==", + "node_modules/@msgpackr-extract/msgpackr-extract-linux-arm": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-arm/-/msgpackr-extract-linux-arm-3.0.4.tgz", + "integrity": "sha512-Tg3yX65f5GbtXLkrYEHE5oibZG9epyYWas7FogTTEJeDEF9JlXJzKgXaNhT3UXlTOeA+AfZpYZYZ0uPj7Cfquw==", + "cpu": [ + "arm" + ], "dev": true, "license": "MIT", - "dependencies": { - "@babel/helper-module-transforms": "^7.29.7", - "@babel/helper-plugin-utils": "^7.29.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.29.7.tgz", - "integrity": "sha512-vuFoLwr4qnv2xbZ16SQd6uPcH5FNrLHhk/Jzo++0XJFcaDsr4gjJVg6j398oMHiC+83k/GiBzviwF5KBJkPUtQ==", + "node_modules/@msgpackr-extract/msgpackr-extract-linux-arm64": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-arm64/-/msgpackr-extract-linux-arm64-3.0.4.tgz", + "integrity": "sha512-dgX0P/9wGPJeHFBG+ZmhgE6bmtMt7NP5CRBGyyktpopdk/mW4POnrpQsSLtKI1dwpc+pPLuXHDh6vvskyQE/sw==", + "cpu": [ + "arm64" + ], "dev": true, "license": "MIT", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.29.7", - "@babel/helper-plugin-utils": "^7.29.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/@babel/plugin-transform-new-target": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.29.7.tgz", - "integrity": "sha512-fEo41GmsOUhOBlw8ioo6zvjX5Xc2Lqkzlyfqbpsk3eB6TReV18uhxZ0esfEokVbY2+PVJAQHNKxER6lGrzNd3A==", + "node_modules/@msgpackr-extract/msgpackr-extract-linux-x64": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-x64/-/msgpackr-extract-linux-x64-3.0.4.tgz", + "integrity": "sha512-8TNXMEjJc3QEy7R/x1INhgiU+XakDAFUzBhaz7+Rbrs8NH5UQeHQxxmzsSBJGyV6I1jW79undiQm8tOI+D+8FQ==", + "cpu": [ + "x64" + ], "dev": true, "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.29.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.29.7.tgz", - "integrity": "sha512-idmp1dFaekP9GbcMvG24Kvw2BfhFZjHnNJCkV4WuIY4PskJzwI3f1N5OdgYke38T7rftO6ERulFRn2cFeZwRkg==", + "node_modules/@msgpackr-extract/msgpackr-extract-win32-x64": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-win32-x64/-/msgpackr-extract-win32-x64-3.0.4.tgz", + "integrity": "sha512-CmCXPQrkbwExx3j946/PtHWHbYJiCRBRDl4BlkRQcJB/YOwQxJRTpoo7aTsortjgoJ1x7opzTSxn7C+ASSLVjQ==", + "cpu": [ + "x64" + ], "dev": true, "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.29.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } + "optional": true, + "os": [ + "win32" + ] }, - "node_modules/@babel/plugin-transform-numeric-separator": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.29.7.tgz", - "integrity": "sha512-zR7fv/z14OjgHl4AgRtkDBvBMhIzCxqV/qN/2BCRC7LjFwvuzjYe7gDWxC4Wl/SNsLM6SE1IWvRPYMgSJaUvNw==", + "node_modules/@napi-rs/lzma-linux-x64-gnu": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/@napi-rs/lzma-linux-x64-gnu/-/lzma-linux-x64-gnu-1.5.1.tgz", + "integrity": "sha512-oTXEIha4SsuXdTA4Iyskj0kpdx2yVXdhd75c2v3xGrHFfVMsbhTPZU/nMPL4sWKo4pBHm3aucLaqGlF696dTyQ==", + "cpu": [ + "x64" + ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.29.7" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": "^22.20 || ^24.12 || >=25" } }, - "node_modules/@babel/plugin-transform-object-rest-spread": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.29.7.tgz", - "integrity": "sha512-Ld98jn4c0smUywL57m7SgsHq3OpThOa6LqZJif3G6jYOovPleoFhVrBJ1WegRApSFB2wu4+RelAj9AC9G08Z4A==", + "node_modules/@napi-rs/nice": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice/-/nice-1.1.1.tgz", + "integrity": "sha512-xJIPs+bYuc9ASBl+cvGsKbGrJmS6fAKaSZCnT0lhahT5rhA2VVy9/EcIgd2JhtEuFOJNx7UHNn/qiTPTY4nrQw==", "dev": true, "license": "MIT", - "dependencies": { - "@babel/helper-compilation-targets": "^7.29.7", - "@babel/helper-plugin-utils": "^7.29.7", - "@babel/plugin-transform-destructuring": "^7.29.7", - "@babel/plugin-transform-parameters": "^7.29.7", - "@babel/traverse": "^7.29.7" - }, + "optional": true, "engines": { - "node": ">=6.9.0" + "node": ">= 10" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Brooooooklyn" + }, + "optionalDependencies": { + "@napi-rs/nice-android-arm-eabi": "1.1.1", + "@napi-rs/nice-android-arm64": "1.1.1", + "@napi-rs/nice-darwin-arm64": "1.1.1", + "@napi-rs/nice-darwin-x64": "1.1.1", + "@napi-rs/nice-freebsd-x64": "1.1.1", + "@napi-rs/nice-linux-arm-gnueabihf": "1.1.1", + "@napi-rs/nice-linux-arm64-gnu": "1.1.1", + "@napi-rs/nice-linux-arm64-musl": "1.1.1", + "@napi-rs/nice-linux-ppc64-gnu": "1.1.1", + "@napi-rs/nice-linux-riscv64-gnu": "1.1.1", + "@napi-rs/nice-linux-s390x-gnu": "1.1.1", + "@napi-rs/nice-linux-x64-gnu": "1.1.1", + "@napi-rs/nice-linux-x64-musl": "1.1.1", + "@napi-rs/nice-openharmony-arm64": "1.1.1", + "@napi-rs/nice-win32-arm64-msvc": "1.1.1", + "@napi-rs/nice-win32-ia32-msvc": "1.1.1", + "@napi-rs/nice-win32-x64-msvc": "1.1.1" } }, - "node_modules/@babel/plugin-transform-object-super": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.29.7.tgz", - "integrity": "sha512-Ea/diGcw0twB5IlZPO5sgET6fJsLJqPABqTuFWIR+iMPGPZJkATEIWx0wa+aEQ5UY1CBQyP/gkAiLEqn1vBiQA==", + "node_modules/@napi-rs/nice-android-arm-eabi": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-android-arm-eabi/-/nice-android-arm-eabi-1.1.1.tgz", + "integrity": "sha512-kjirL3N6TnRPv5iuHw36wnucNqXAO46dzK9oPb0wj076R5Xm8PfUVA9nAFB5ZNMmfJQJVKACAPd/Z2KYMppthw==", + "cpu": [ + "arm" + ], "dev": true, "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.29.7", - "@babel/helper-replace-supers": "^7.29.7" - }, + "optional": true, + "os": [ + "android" + ], "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">= 10" } }, - "node_modules/@babel/plugin-transform-optional-catch-binding": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.29.7.tgz", - "integrity": "sha512-sLsyndxK2VwX6yNUOakMb7Sh553ZTe/vVM1XJ+9Z5aW1ytsc8xOIwmyk05NNjN60vkc5/KqoTH6hB4V41LJhng==", + "node_modules/@napi-rs/nice-android-arm64": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-android-arm64/-/nice-android-arm64-1.1.1.tgz", + "integrity": "sha512-blG0i7dXgbInN5urONoUCNf+DUEAavRffrO7fZSeoRMJc5qD+BJeNcpr54msPF6qfDD6kzs9AQJogZvT2KD5nw==", + "cpu": [ + "arm64" + ], "dev": true, "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.29.7" - }, + "optional": true, + "os": [ + "android" + ], "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">= 10" } }, - "node_modules/@babel/plugin-transform-optional-chaining": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.29.7.tgz", - "integrity": "sha512-6GM1dhvK3gNODkXcEcMCOLEDCLSoZ/sBbro2Ax8HURyasQ4NshagQixkRFdh5niI6E4gmA/jYI/4aT7rRos3ZQ==", + "node_modules/@napi-rs/nice-darwin-arm64": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-darwin-arm64/-/nice-darwin-arm64-1.1.1.tgz", + "integrity": "sha512-s/E7w45NaLqTGuOjC2p96pct4jRfo61xb9bU1unM/MJ/RFkKlJyJDx7OJI/O0ll/hrfpqKopuAFDV8yo0hfT7A==", + "cpu": [ + "arm64" + ], "dev": true, "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.29.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.29.7" - }, + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">= 10" } }, - "node_modules/@babel/plugin-transform-parameters": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.29.7.tgz", - "integrity": "sha512-ZDOBqV/qLYJI0YElr8DcENEyARsFQeESqWXH6gZlghYXuPPjvweuDhP4VyEi4BlUBlLRFZVjxoZDMjxhLW766g==", + "node_modules/@napi-rs/nice-darwin-x64": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-darwin-x64/-/nice-darwin-x64-1.1.1.tgz", + "integrity": "sha512-dGoEBnVpsdcC+oHHmW1LRK5eiyzLwdgNQq3BmZIav+9/5WTZwBYX7r5ZkQC07Nxd3KHOCkgbHSh4wPkH1N1LiQ==", + "cpu": [ + "x64" + ], "dev": true, "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.29.7" - }, + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">= 10" } }, - "node_modules/@babel/plugin-transform-private-methods": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.29.7.tgz", - "integrity": "sha512-/6Rz4DK1ETDEM/bWHsPHcaEe7ZaT1EqSXjtSP/L0DijOYuaUhiRiOKcwpZ8P7zR4xXEHc2ITdiCgBm9Tpyv9ug==", + "node_modules/@napi-rs/nice-freebsd-x64": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-freebsd-x64/-/nice-freebsd-x64-1.1.1.tgz", + "integrity": "sha512-kHv4kEHAylMYmlNwcQcDtXjklYp4FCf0b05E+0h6nDHsZ+F0bDe04U/tXNOqrx5CmIAth4vwfkjjUmp4c4JktQ==", + "cpu": [ + "x64" + ], "dev": true, "license": "MIT", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.29.7", - "@babel/helper-plugin-utils": "^7.29.7" - }, + "optional": true, + "os": [ + "freebsd" + ], "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">= 10" } }, - "node_modules/@babel/plugin-transform-private-property-in-object": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.29.7.tgz", - "integrity": "sha512-+BNo06dnrzdNNqCm1X6YUaVv0DKk8Q+JYcoZfOkLhYWNCXzlwTSRq8zGWayT1csjcpNXV9CQTBRRbmTLZac5cA==", + "node_modules/@napi-rs/nice-linux-arm-gnueabihf": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-arm-gnueabihf/-/nice-linux-arm-gnueabihf-1.1.1.tgz", + "integrity": "sha512-E1t7K0efyKXZDoZg1LzCOLxgolxV58HCkaEkEvIYQx12ht2pa8hoBo+4OB3qh7e+QiBlp1SRf+voWUZFxyhyqg==", + "cpu": [ + "arm" + ], "dev": true, "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.29.7", - "@babel/helper-create-class-features-plugin": "^7.29.7", - "@babel/helper-plugin-utils": "^7.29.7" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">= 10" } }, - "node_modules/@babel/plugin-transform-private-property-in-object/node_modules/@babel/helper-annotate-as-pure": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.29.7.tgz", - "integrity": "sha512-OoK6239jHPuSQOoS0kfTVKn0b/rVTk0seKq4Gd2UMLtmOVLjDC0ki3e+c90Trqv2gMfvJFqkiljrr568+qddiw==", + "node_modules/@napi-rs/nice-linux-arm64-gnu": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-arm64-gnu/-/nice-linux-arm64-gnu-1.1.1.tgz", + "integrity": "sha512-CIKLA12DTIZlmTaaKhQP88R3Xao+gyJxNWEn04wZwC2wmRapNnxCUZkVwggInMJvtVElA+D4ZzOU5sX4jV+SmQ==", + "cpu": [ + "arm64" + ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", - "dependencies": { - "@babel/types": "^7.29.7" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=6.9.0" + "node": ">= 10" } }, - "node_modules/@babel/plugin-transform-property-literals": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.29.7.tgz", - "integrity": "sha512-bOMRLQuI0A5ZqHq3OWJ89/rXpJ/NJrbVhXiP4zwPGMs6kpcVsuTUNjwoE30K0Qm3mf48a/TnRYYD6vPNqcg6jA==", + "node_modules/@napi-rs/nice-linux-arm64-musl": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-arm64-musl/-/nice-linux-arm64-musl-1.1.1.tgz", + "integrity": "sha512-+2Rzdb3nTIYZ0YJF43qf2twhqOCkiSrHx2Pg6DJaCPYhhaxbLcdlV8hCRMHghQ+EtZQWGNcS2xF4KxBhSGeutg==", + "cpu": [ + "arm64" + ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.29.7" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">= 10" } }, - "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.29.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.29.8.tgz", - "integrity": "sha512-0UpIXPtdDtMXfnV2OJAVMLpj3H/92vmkA6lpSRakmycJvj3VUy6Xs1dM8tXRugupykr5WB+LpiVl0J8LMVg2mg==", + "node_modules/@napi-rs/nice-linux-ppc64-gnu": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-ppc64-gnu/-/nice-linux-ppc64-gnu-1.1.1.tgz", + "integrity": "sha512-4FS8oc0GeHpwvv4tKciKkw3Y4jKsL7FRhaOeiPei0X9T4Jd619wHNe4xCLmN2EMgZoeGg+Q7GY7BsvwKpL22Tg==", + "cpu": [ + "ppc64" + ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.29.7" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">= 10" } }, - "node_modules/@babel/plugin-transform-regexp-modifiers": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.29.7.tgz", - "integrity": "sha512-mB5Fs0VWrJ42ZCmc8114v60qetdaUVNkj9PmSZRmanCZM3S9hm0CFRLjRmYIsuXav14l2jvZ+4T8iiCGnhj3nQ==", + "node_modules/@napi-rs/nice-linux-riscv64-gnu": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-riscv64-gnu/-/nice-linux-riscv64-gnu-1.1.1.tgz", + "integrity": "sha512-HU0nw9uD4FO/oGCCk409tCi5IzIZpH2agE6nN4fqpwVlCn5BOq0MS1dXGjXaG17JaAvrlpV5ZeyZwSon10XOXw==", + "cpu": [ + "riscv64" + ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.29.7", - "@babel/helper-plugin-utils": "^7.29.7" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" + "node": ">= 10" } }, - "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.29.7.tgz", - "integrity": "sha512-5+YhdpVgmfSmwZyLMftfaiffLRMHjzIRHFHHLdibcSyJm2pasMrKHrO3Ptrt2DRshjvpgjEJJ1zVW14WPq/6QA==", + "node_modules/@napi-rs/nice-linux-s390x-gnu": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-s390x-gnu/-/nice-linux-s390x-gnu-1.1.1.tgz", + "integrity": "sha512-2YqKJWWl24EwrX0DzCQgPLKQBxYDdBxOHot1KWEq7aY2uYeX+Uvtv4I8xFVVygJDgf6/92h9N3Y43WPx8+PAgQ==", + "cpu": [ + "s390x" + ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.29.7" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">= 10" } }, - "node_modules/@babel/plugin-transform-runtime": { - "version": "7.29.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.29.0.tgz", - "integrity": "sha512-jlaRT5dJtMaMCV6fAuLbsQMSwz/QkvaHOHOSXRitGGwSpR1blCY4KUKoyP2tYO8vJcqYe8cEj96cqSztv3uF9w==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-module-imports": "^7.28.6", - "@babel/helper-plugin-utils": "^7.28.6", - "babel-plugin-polyfill-corejs2": "^0.4.14", - "babel-plugin-polyfill-corejs3": "^0.13.0", - "babel-plugin-polyfill-regenerator": "^0.6.5", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-runtime/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.29.7.tgz", - "integrity": "sha512-I+WYbGBAiCn7nA6xBrlgPH+MB7HWb4u8pv5S0Pv7OtwNvIFvCCb24YlttKEeUFVurfBCEaOTnuhlqsb7f0Z5Dg==", + "node_modules/@napi-rs/nice-linux-x64-gnu": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-x64-gnu/-/nice-linux-x64-gnu-1.1.1.tgz", + "integrity": "sha512-/gaNz3R92t+dcrfCw/96pDopcmec7oCcAQ3l/M+Zxr82KT4DljD37CpgrnXV+pJC263JkW572pdbP3hP+KjcIg==", + "cpu": [ + "x64" + ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.29.7" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">= 10" } }, - "node_modules/@babel/plugin-transform-spread": { - "version": "7.29.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.29.8.tgz", - "integrity": "sha512-4S9ksMGVWUshvgK0mKfvZky7leuG5/uoFVwMpAomJ8bMoDJiNHRVmc1EglwW/CmGVSqqWpEbXm9FmbRit22qoA==", + "node_modules/@napi-rs/nice-linux-x64-musl": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-x64-musl/-/nice-linux-x64-musl-1.1.1.tgz", + "integrity": "sha512-xScCGnyj/oppsNPMnevsBe3pvNaoK7FGvMjT35riz9YdhB2WtTG47ZlbxtOLpjeO9SqqQ2J2igCmz6IJOD5JYw==", + "cpu": [ + "x64" + ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.29.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.29.7" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">= 10" } }, - "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.29.7.tgz", - "integrity": "sha512-BCHzNYJGe9l7EpwwDBN/ztlL2NYFFq8hp9ddjtUEM9f2O7S7kKV/lL6Fwo7IF7NSkYhPK2vO+86nIGltA90MsA==", + "node_modules/@napi-rs/nice-openharmony-arm64": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-openharmony-arm64/-/nice-openharmony-arm64-1.1.1.tgz", + "integrity": "sha512-6uJPRVwVCLDeoOaNyeiW0gp2kFIM4r7PL2MczdZQHkFi9gVlgm+Vn+V6nTWRcu856mJ2WjYJiumEajfSm7arPQ==", + "cpu": [ + "arm64" + ], "dev": true, "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.29.7" - }, + "optional": true, + "os": [ + "openharmony" + ], "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">= 10" } }, - "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.29.7.tgz", - "integrity": "sha512-NCSEJ4sLFU2gqAub45HYh4fus2yQ36rr6ei6vpU7NdoJqCpxvEG8E6eJpscGyXP3VHD2Ny+fSXr04k1hoUrFqA==", + "node_modules/@napi-rs/nice-win32-arm64-msvc": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-win32-arm64-msvc/-/nice-win32-arm64-msvc-1.1.1.tgz", + "integrity": "sha512-uoTb4eAvM5B2aj/z8j+Nv8OttPf2m+HVx3UjA5jcFxASvNhQriyCQF1OB1lHL43ZhW+VwZlgvjmP5qF3+59atA==", + "cpu": [ + "arm64" + ], "dev": true, "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.29.7" - }, + "optional": true, + "os": [ + "win32" + ], "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">= 10" } }, - "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.29.7.tgz", - "integrity": "sha512-223mNGoTkBiTEWFoK+Q6Go3tueMRclO8vxxxxquNCYuNI4jWOofFKJRRDu6SDrB8Sgo1UEGW9T4GAQ8ZyRso1A==", + "node_modules/@napi-rs/nice-win32-ia32-msvc": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-win32-ia32-msvc/-/nice-win32-ia32-msvc-1.1.1.tgz", + "integrity": "sha512-CNQqlQT9MwuCsg1Vd/oKXiuH+TcsSPJmlAFc5frFyX/KkOh0UpBLEj7aoY656d5UKZQMQFP7vJNa1DNUNORvug==", + "cpu": [ + "ia32" + ], "dev": true, "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.29.7" - }, + "optional": true, + "os": [ + "win32" + ], "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">= 10" } }, - "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.29.7.tgz", - "integrity": "sha512-jCfXxSjf94lf4E0hKE0AByxF6F3/pVFqRdUUNkDJhsY0m1ZKjnN6ZYyMeHNpzflxb/0q5b7t3p+BE+SLF1WOtA==", + "node_modules/@napi-rs/nice-win32-x64-msvc": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-win32-x64-msvc/-/nice-win32-x64-msvc-1.1.1.tgz", + "integrity": "sha512-vB+4G/jBQCAh0jelMTY3+kgFy00Hlx2f2/1zjMoH821IbplbWZOkLiTYXQkygNTzQJTq5cvwBDgn2ppHD+bglQ==", + "cpu": [ + "x64" + ], "dev": true, "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.29.7" - }, + "optional": true, + "os": [ + "win32" + ], "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">= 10" } }, - "node_modules/@babel/plugin-transform-unicode-property-regex": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.29.7.tgz", - "integrity": "sha512-OgZ+zoAJgZLUCunsTRQ5LAjOywDv5zzZ2/hQ5aMw1pGXyY2rtE8/chXYUmu3AlVHKpm10KEdG9aMwbI/K76ZGw==", + "node_modules/@napi-rs/wasm-runtime": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.2.4.tgz", + "integrity": "sha512-AJxoUD2/15ESHbvpcyjU274nsAPLuOtPHCk0vKJM5pj//Fg/B1FXNWjPnXTT9PymCYYiHo4zPj0ZomXBKhoy7g==", "dev": true, "license": "MIT", + "optional": true, "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.29.7", - "@babel/helper-plugin-utils": "^7.29.7" + "@tybys/wasm-util": "^0.10.3" }, "engines": { - "node": ">=6.9.0" + "node": "^20.19.0 || ^22.13.0 || >=23.5.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Brooooooklyn" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@emnapi/core": "^1.7.1 || ^2.0.0-alpha.4", + "@emnapi/runtime": "^1.7.1 || ^2.0.0-alpha.4" } }, - "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.29.7.tgz", - "integrity": "sha512-7D/x/23/d/3VqZ0QA+LGbZMlGwZjztBygSWWWsfTPoQ1oQ6Q1P6Mr3d0kk42XabyUVw+fha3LqdRsFqeKqvCyA==", - "dev": true, - "license": "MIT", + "node_modules/@ngneat/until-destroy": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/@ngneat/until-destroy/-/until-destroy-10.0.0.tgz", + "integrity": "sha512-xXFAabQ4YVJ82LYxdgUlaKZyR3dSbxqG3woSyaclzxfCgWMEDweCcM/GGYbNiHJa0WwklI98RXHvca+UyCxpeg==", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.29.7", - "@babel/helper-plugin-utils": "^7.29.7" - }, - "engines": { - "node": ">=6.9.0" + "tslib": "^2.3.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@angular/core": ">=13", + "rxjs": "^6.4.0 || ^7.0.0" } }, - "node_modules/@babel/plugin-transform-unicode-sets-regex": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.29.7.tgz", - "integrity": "sha512-BLOhLht9DOJwIxlmp91wHvkXv1lguuHS3/FwUO8HL1H0u8s4hR1gASVFyilu9iGtcTRYqjTZmlsFFeQletntEg==", + "node_modules/@npmcli/agent": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@npmcli/agent/-/agent-4.0.2.tgz", + "integrity": "sha512-EUEuWAxnL07Sp5/iC/1X6Xj+XThUvnbei9zfRWZdEXa7lss9RTHMhAHBeg+MZ5To9s/gGaSI+UwZTPdYMvKSeg==", "dev": true, - "license": "MIT", + "license": "ISC", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.29.7", - "@babel/helper-plugin-utils": "^7.29.7" + "agent-base": "^7.1.0", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.1", + "lru-cache": "^11.2.1", + "socks-proxy-agent": "^8.0.3" }, "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" + "node": "^20.17.0 || >=22.9.0" } }, - "node_modules/@babel/preset-env": { - "version": "7.29.2", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.29.2.tgz", - "integrity": "sha512-DYD23veRYGvBFhcTY1iUvJnDNpuqNd/BzBwCvzOTKUnJjKg5kpUBh3/u9585Agdkgj+QuygG7jLfOPWMa2KVNw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/compat-data": "^7.29.0", - "@babel/helper-compilation-targets": "^7.28.6", - "@babel/helper-plugin-utils": "^7.28.6", - "@babel/helper-validator-option": "^7.27.1", - "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.28.5", - "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.27.1", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.27.1", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.27.1", - "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.28.6", - "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", - "@babel/plugin-syntax-import-assertions": "^7.28.6", - "@babel/plugin-syntax-import-attributes": "^7.28.6", - "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", - "@babel/plugin-transform-arrow-functions": "^7.27.1", - "@babel/plugin-transform-async-generator-functions": "^7.29.0", - "@babel/plugin-transform-async-to-generator": "^7.28.6", - "@babel/plugin-transform-block-scoped-functions": "^7.27.1", - "@babel/plugin-transform-block-scoping": "^7.28.6", - "@babel/plugin-transform-class-properties": "^7.28.6", - "@babel/plugin-transform-class-static-block": "^7.28.6", - "@babel/plugin-transform-classes": "^7.28.6", - "@babel/plugin-transform-computed-properties": "^7.28.6", - "@babel/plugin-transform-destructuring": "^7.28.5", - "@babel/plugin-transform-dotall-regex": "^7.28.6", - "@babel/plugin-transform-duplicate-keys": "^7.27.1", - "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.29.0", - "@babel/plugin-transform-dynamic-import": "^7.27.1", - "@babel/plugin-transform-explicit-resource-management": "^7.28.6", - "@babel/plugin-transform-exponentiation-operator": "^7.28.6", - "@babel/plugin-transform-export-namespace-from": "^7.27.1", - "@babel/plugin-transform-for-of": "^7.27.1", - "@babel/plugin-transform-function-name": "^7.27.1", - "@babel/plugin-transform-json-strings": "^7.28.6", - "@babel/plugin-transform-literals": "^7.27.1", - "@babel/plugin-transform-logical-assignment-operators": "^7.28.6", - "@babel/plugin-transform-member-expression-literals": "^7.27.1", - "@babel/plugin-transform-modules-amd": "^7.27.1", - "@babel/plugin-transform-modules-commonjs": "^7.28.6", - "@babel/plugin-transform-modules-systemjs": "^7.29.0", - "@babel/plugin-transform-modules-umd": "^7.27.1", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.29.0", - "@babel/plugin-transform-new-target": "^7.27.1", - "@babel/plugin-transform-nullish-coalescing-operator": "^7.28.6", - "@babel/plugin-transform-numeric-separator": "^7.28.6", - "@babel/plugin-transform-object-rest-spread": "^7.28.6", - "@babel/plugin-transform-object-super": "^7.27.1", - "@babel/plugin-transform-optional-catch-binding": "^7.28.6", - "@babel/plugin-transform-optional-chaining": "^7.28.6", - "@babel/plugin-transform-parameters": "^7.27.7", - "@babel/plugin-transform-private-methods": "^7.28.6", - "@babel/plugin-transform-private-property-in-object": "^7.28.6", - "@babel/plugin-transform-property-literals": "^7.27.1", - "@babel/plugin-transform-regenerator": "^7.29.0", - "@babel/plugin-transform-regexp-modifiers": "^7.28.6", - "@babel/plugin-transform-reserved-words": "^7.27.1", - "@babel/plugin-transform-shorthand-properties": "^7.27.1", - "@babel/plugin-transform-spread": "^7.28.6", - "@babel/plugin-transform-sticky-regex": "^7.27.1", - "@babel/plugin-transform-template-literals": "^7.27.1", - "@babel/plugin-transform-typeof-symbol": "^7.27.1", - "@babel/plugin-transform-unicode-escapes": "^7.27.1", - "@babel/plugin-transform-unicode-property-regex": "^7.28.6", - "@babel/plugin-transform-unicode-regex": "^7.27.1", - "@babel/plugin-transform-unicode-sets-regex": "^7.28.6", - "@babel/preset-modules": "0.1.6-no-external-plugins", - "babel-plugin-polyfill-corejs2": "^0.4.15", - "babel-plugin-polyfill-corejs3": "^0.14.0", - "babel-plugin-polyfill-regenerator": "^0.6.6", - "core-js-compat": "^3.48.0", - "semver": "^6.3.1" - }, + "node_modules/@npmcli/agent/node_modules/lru-cache": { + "version": "11.5.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.5.3.tgz", + "integrity": "sha512-U4N8FgzmWxc8k1VH8Kr6lQg18U7Fjvby6wXHVRX/ZZ7IwWbRMgrRbP0Wrb5q5NVinryp4SQampHKdvtecItxUg==", + "dev": true, + "license": "BlueOak-1.0.0", "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": "20 || >=22" } }, - "node_modules/@babel/preset-env/node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.14.2", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.14.2.tgz", - "integrity": "sha512-coWpDLJ410R781Npmn/SIBZEsAetR4xVi0SxLMXPaMO4lSf1MwnkGYMtkFxew0Dn8B3/CpbpYxN0JCgg8mn67g==", + "node_modules/@npmcli/fs": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-5.0.0.tgz", + "integrity": "sha512-7OsC1gNORBEawOa5+j2pXN9vsicaIOH5cPXxoR6fJOmH6/EXpJB2CajXOu1fPRFun2m1lktEFX11+P89hqO/og==", "dev": true, - "license": "MIT", + "license": "ISC", "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.6.8", - "core-js-compat": "^3.48.0" + "semver": "^7.3.5" }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + "engines": { + "node": "^20.17.0 || >=22.9.0" } }, - "node_modules/@babel/preset-env/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "node_modules/@npmcli/git": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-7.0.2.tgz", + "integrity": "sha512-oeolHDjExNAJAnlYP2qzNjMX/Xi9bmu78C9dIGr4xjobrSKbuMYCph8lTzn4vnW3NjIqVmw/f8BCfouqyJXlRg==", "dev": true, "license": "ISC", - "bin": { - "semver": "bin/semver.js" + "dependencies": { + "@gar/promise-retry": "^1.0.0", + "@npmcli/promise-spawn": "^9.0.0", + "ini": "^6.0.0", + "lru-cache": "^11.2.1", + "npm-pick-manifest": "^11.0.1", + "proc-log": "^6.0.0", + "semver": "^7.3.5", + "which": "^6.0.0" + }, + "engines": { + "node": "^20.17.0 || >=22.9.0" } }, - "node_modules/@babel/preset-modules": { - "version": "0.1.6-no-external-plugins", - "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", - "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", + "node_modules/@npmcli/git/node_modules/isexe": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-4.0.0.tgz", + "integrity": "sha512-FFUtZMpoZ8RqHS3XeXEmHWLA4thH+ZxCv2lOiPIn1Xc7CxrqhWzNSDzD+/chS/zbYezmiwWLdQC09JdQKmthOw==", "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/types": "^7.4.4", - "esutils": "^2.0.2" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=20" } }, - "node_modules/@babel/runtime": { - "version": "7.29.2", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.29.2.tgz", - "integrity": "sha512-JiDShH45zKHWyGe4ZNVRrCjBz8Nh9TMmZG1kh4QTK8hCBTWBi8Da+i7s1fJw7/lYpM4ccepSNfqzZ/QvABBi5g==", + "node_modules/@npmcli/git/node_modules/lru-cache": { + "version": "11.5.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.5.3.tgz", + "integrity": "sha512-U4N8FgzmWxc8k1VH8Kr6lQg18U7Fjvby6wXHVRX/ZZ7IwWbRMgrRbP0Wrb5q5NVinryp4SQampHKdvtecItxUg==", "dev": true, - "license": "MIT", + "license": "BlueOak-1.0.0", "engines": { - "node": ">=6.9.0" + "node": "20 || >=22" } }, - "node_modules/@babel/template": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.29.7.tgz", - "integrity": "sha512-puq+Gf35oI24FeN11LkoUQFqv9uwNeWpxXZi/Ji3rRIoKAzKnxRaZ+Gkj0vKS9ZCiTESfng1N9LyOyXvo+m+Gg==", + "node_modules/@npmcli/git/node_modules/which": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/which/-/which-6.0.1.tgz", + "integrity": "sha512-oGLe46MIrCRqX7ytPUf66EAYvdeMIZYn3WaocqqKZAxrBpkqHfL/qvTyJ/bTk5+AqHCjXmrv3CEWgy368zhRUg==", "dev": true, - "license": "MIT", + "license": "ISC", "dependencies": { - "@babel/code-frame": "^7.29.7", - "@babel/parser": "^7.29.7", - "@babel/types": "^7.29.7" + "isexe": "^4.0.0" + }, + "bin": { + "node-which": "bin/which.js" }, "engines": { - "node": ">=6.9.0" + "node": "^20.17.0 || >=22.9.0" } }, - "node_modules/@babel/traverse": { - "version": "7.29.8", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.29.8.tgz", - "integrity": "sha512-I5z7H3bf/41ktsNVLtpN0wAa336HkqIHQ5BuPLEhTkt1jVSyZpeNKIzTgEWmlxjdg81R0IgUCcaE+Ok3NvrfZg==", + "node_modules/@npmcli/installed-package-contents": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-4.0.0.tgz", + "integrity": "sha512-yNyAdkBxB72gtZ4GrwXCM0ZUedo9nIbOMKfGjt6Cu6DXf0p8y1PViZAKDC8q8kv/fufx0WTjRBdSlyrvnP7hmA==", "dev": true, - "license": "MIT", + "license": "ISC", "dependencies": { - "@babel/code-frame": "^7.29.7", - "@babel/generator": "^7.29.8", - "@babel/helper-globals": "^7.29.7", - "@babel/parser": "^7.29.8", - "@babel/template": "^7.29.7", - "@babel/types": "^7.29.8", - "debug": "^4.3.1" + "npm-bundled": "^5.0.0", + "npm-normalize-package-bin": "^5.0.0" + }, + "bin": { + "installed-package-contents": "bin/index.js" }, "engines": { - "node": ">=6.9.0" + "node": "^20.17.0 || >=22.9.0" } }, - "node_modules/@babel/traverse/node_modules/@babel/generator": { - "version": "7.29.8", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.8.tgz", - "integrity": "sha512-gZbepsdh3WDtgZKWL+vTPh71LSBrm/Y4/QDZBVCcYfmeTEEuoOYwlSy+G1StfJg+/Zy550u/3TATbm7qDbbMtg==", + "node_modules/@npmcli/node-gyp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/node-gyp/-/node-gyp-5.0.0.tgz", + "integrity": "sha512-uuG5HZFXLfyFKqg8QypsmgLQW7smiRjVc45bqD/ofZZcR/uxEjgQU8qDPv0s9TEeMUiAAU/GC5bR6++UdTirIQ==", "dev": true, - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.29.8", - "@babel/types": "^7.29.8", - "@jridgewell/gen-mapping": "^0.3.12", - "@jridgewell/trace-mapping": "^0.3.28", - "jsesc": "^3.0.2" - }, + "license": "ISC", "engines": { - "node": ">=6.9.0" + "node": "^20.17.0 || >=22.9.0" } }, - "node_modules/@babel/types": { - "version": "7.29.8", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.8.tgz", - "integrity": "sha512-Vj1jF3cPfxg7OAfoI7QnVKLoILlm2JF9pnVHrX8qx7AHMiYWT+NDAA7jChlNgRS4WTLc/fD1lXLmPixluj+3Gg==", + "node_modules/@npmcli/package-json": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/@npmcli/package-json/-/package-json-7.0.5.tgz", + "integrity": "sha512-iVuTlG3ORq2iaVa1IWUxAO/jIp77tUKBhoMjuzYW2kL4MLN1bi/ofqkZ7D7OOwh8coAx1/S2ge0rMdGv8sLSOQ==", "dev": true, - "license": "MIT", + "license": "ISC", "dependencies": { - "@babel/helper-string-parser": "^7.29.7", - "@babel/helper-validator-identifier": "^7.29.7" + "@npmcli/git": "^7.0.0", + "glob": "^13.0.0", + "hosted-git-info": "^9.0.0", + "json-parse-even-better-errors": "^5.0.0", + "proc-log": "^6.0.0", + "semver": "^7.5.3", + "spdx-expression-parse": "^4.0.0" }, "engines": { - "node": ">=6.9.0" + "node": "^20.17.0 || >=22.9.0" } }, - "node_modules/@colors/colors": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", - "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", + "node_modules/@npmcli/package-json/node_modules/balanced-match": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", + "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", "dev": true, + "license": "MIT", "engines": { - "node": ">=0.1.90" + "node": "18 || 20 || >=22" } }, - "node_modules/@discoveryjs/json-ext": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.6.3.tgz", - "integrity": "sha512-4B4OijXeVNOPZlYA2oEwWOTkzyltLao+xbotHQeqN++Rv27Y6s818+n2Qkp8q+Fxhn0t/5lA5X1Mxktud8eayQ==", + "node_modules/@npmcli/package-json/node_modules/brace-expansion": { + "version": "5.0.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.12.tgz", + "integrity": "sha512-YovQ3rzhaLMIrDjNDMkNS01tea93qhEhG5xy8f6+R0l+dw3Ki+5sCoIoI942iuLZTHWogWktgwVDhU09iNEimQ==", "dev": true, "license": "MIT", + "dependencies": { + "balanced-match": "^4.0.2" + }, "engines": { - "node": ">=14.17.0" + "node": "20 || >=22" } }, - "node_modules/@emnapi/core": { - "version": "1.11.3", - "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.11.3.tgz", - "integrity": "sha512-zLpS5asjEb7lq8jYLq37N6XKaE41DIexlY1rF/z4/tIl3wo13Sqm28fRyfIsKZD+NZ8mM5RoKkpW/rBcuoSZSg==", + "node_modules/@npmcli/package-json/node_modules/glob": { + "version": "13.0.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-13.0.6.tgz", + "integrity": "sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw==", "dev": true, - "license": "MIT", - "optional": true, - "peer": true, + "license": "BlueOak-1.0.0", "dependencies": { - "@emnapi/wasi-threads": "1.2.3", - "tslib": "^2.4.0" + "minimatch": "^10.2.2", + "minipass": "^7.1.3", + "path-scurry": "^2.0.2" + }, + "engines": { + "node": "18 || 20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@emnapi/runtime": { - "version": "1.11.3", - "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.11.3.tgz", - "integrity": "sha512-Xz4Tpyki7XyrpbUK1jR1AhdAdaXyhhY4lZ3neLodmhpuWfy2PAQN5B46sAiU4liOXGLkHypn/qU+jvfWSCYYLA==", + "node_modules/@npmcli/package-json/node_modules/minimatch": { + "version": "10.2.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.6.tgz", + "integrity": "sha512-vpLQEs+VLCr1nU0BXS07maYoFwlDAH0gngQuuttxIwutDFEMHq2blX+8vpgxDdK3J1PwjCJiep77OitTZ4Ll1A==", "dev": true, - "license": "MIT", - "optional": true, - "peer": true, + "license": "BlueOak-1.0.0", "dependencies": { - "tslib": "^2.4.0" + "brace-expansion": "^5.0.8" + }, + "engines": { + "node": "18 || 20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@emnapi/wasi-threads": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.3.tgz", - "integrity": "sha512-ELEBe8PsLvvJ6QMr0zLt8ffvOHW/dc1m3CEzNMg7aJUv3bMaoDtw2TXyDAwkYBuroxxuHEwhRTLJSe5sya547g==", + "node_modules/@npmcli/package-json/node_modules/spdx-expression-parse": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-4.0.0.tgz", + "integrity": "sha512-Clya5JIij/7C6bRR22+tnGXbc4VKlibKSVj2iHvVeX5iMW7s1SIQlqu699JkODJJIhh/pUu8L0/VLh8xflD+LQ==", "dev": true, "license": "MIT", - "optional": true, - "peer": true, "dependencies": { - "tslib": "^2.4.0" + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" } }, - "node_modules/@esbuild/aix-ppc64": { - "version": "0.28.1", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.28.1.tgz", - "integrity": "sha512-Svl7tq8k/08+p6CXPpRjQ1fKX+1odH/BQbb48fV6fj3CWHhsoIOoY87w1oHXm0qEpkIK3ZfVgp0hed3XBXzXMQ==", - "cpu": [ - "ppc64" - ], + "node_modules/@npmcli/promise-spawn": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-9.0.1.tgz", + "integrity": "sha512-OLUaoqBuyxeTqUvjA3FZFiXUfYC1alp3Sa99gW3EUDz3tZ3CbXDdcZ7qWKBzicrJleIgucoWamWH1saAmH/l2Q==", "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "aix" - ], + "license": "ISC", + "dependencies": { + "which": "^6.0.0" + }, "engines": { - "node": ">=18" + "node": "^20.17.0 || >=22.9.0" } }, - "node_modules/@esbuild/android-arm": { - "version": "0.28.1", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.28.1.tgz", - "integrity": "sha512-0k2F129Xdio1TdJfzJ8sy1Q47vUD2NnwdhiAf7drUN1EBTfPf4hsFCtmMgu/6m8JSzsBrlmVjudMBQqOfG8usQ==", - "cpu": [ - "arm" - ], + "node_modules/@npmcli/promise-spawn/node_modules/isexe": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-4.0.0.tgz", + "integrity": "sha512-FFUtZMpoZ8RqHS3XeXEmHWLA4thH+ZxCv2lOiPIn1Xc7CxrqhWzNSDzD+/chS/zbYezmiwWLdQC09JdQKmthOw==", "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], + "license": "BlueOak-1.0.0", "engines": { - "node": ">=18" + "node": ">=20" } }, - "node_modules/@esbuild/android-arm64": { - "version": "0.28.1", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.28.1.tgz", - "integrity": "sha512-34EGEbCIAgosYz6goLcopX6Mo7NyGv9tfwEM2/7Ce2VcVRk568iSvniGWcUXIy7wEDR1wzolcxcriFVrWYcwBg==", - "cpu": [ - "arm64" - ], + "node_modules/@npmcli/promise-spawn/node_modules/which": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/which/-/which-6.0.1.tgz", + "integrity": "sha512-oGLe46MIrCRqX7ytPUf66EAYvdeMIZYn3WaocqqKZAxrBpkqHfL/qvTyJ/bTk5+AqHCjXmrv3CEWgy368zhRUg==", "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], + "license": "ISC", + "dependencies": { + "isexe": "^4.0.0" + }, + "bin": { + "node-which": "bin/which.js" + }, "engines": { - "node": ">=18" + "node": "^20.17.0 || >=22.9.0" } }, - "node_modules/@esbuild/android-x64": { - "version": "0.28.1", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.28.1.tgz", - "integrity": "sha512-dbwY7ltSMDWsRatcRpCnES4F+im88OCUgGZjy52shC7GqHRE/cYlxNbB4Z4UpJswpcc4Qxd2oE/ufM0p61IKng==", - "cpu": [ - "x64" - ], + "node_modules/@npmcli/redact": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/redact/-/redact-4.0.0.tgz", + "integrity": "sha512-gOBg5YHMfZy+TfHArfVogwgfBeQnKbbGo3pSUyK/gSI0AVu+pEiDVcKlQb0D8Mg1LNRZILZ6XG8I5dJ4KuAd9Q==", "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], + "license": "ISC", "engines": { - "node": ">=18" + "node": "^20.17.0 || >=22.9.0" } }, - "node_modules/@esbuild/darwin-arm64": { - "version": "0.28.1", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.28.1.tgz", - "integrity": "sha512-TZbWkQY7kvTAXbXUT7uVACR5cMHsDiSz9z7ZKAX/RTq/WJEk3QyRr0wZpNhBDX+/0CtdqUIJlOiodQcta6tY3Q==", - "cpu": [ - "arm64" - ], + "node_modules/@npmcli/run-script": { + "version": "10.0.4", + "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-10.0.4.tgz", + "integrity": "sha512-mGUWr1uMnf0le2TwfOZY4SFxZGXGfm4Jtay/nwAa2FLNAKXUoUwaGwBMNH36UHPtinWfTSJ3nqFQr0091CxVGg==", "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], + "license": "ISC", + "dependencies": { + "@npmcli/node-gyp": "^5.0.0", + "@npmcli/package-json": "^7.0.0", + "@npmcli/promise-spawn": "^9.0.0", + "node-gyp": "^12.1.0", + "proc-log": "^6.0.0" + }, "engines": { - "node": ">=18" + "node": "^20.17.0 || >=22.9.0" } }, - "node_modules/@esbuild/darwin-x64": { - "version": "0.28.1", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.28.1.tgz", - "integrity": "sha512-zfdzgK9ACBNZLI/CyHTOx81SyNbM6YXn7rxSgX97VjyiPl9W1i4Ka4fgKECEoFCKGpvBj5qArWIGgQjOwkgskQ==", - "cpu": [ - "x64" - ], + "node_modules/@oxc-project/types": { + "version": "0.113.0", + "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.113.0.tgz", + "integrity": "sha512-Tp3XmgxwNQ9pEN9vxgJBAqdRamHibi76iowQ38O2I4PMpcvNRQNVsU2n1x1nv9yh0XoTrGFzf7cZSGxmixxrhA==", "dev": true, "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/Boshen" + } + }, + "node_modules/@parcel/watcher": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.6.0.tgz", + "integrity": "sha512-7FNeNl8NCE7aINx7WXiKQrPYZWC/hvrTsmk6zmxbI7LTXE7hVek/n8AfVgpe2y82zl3w0HvCHN0bVKMBoJcC0w==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", "optional": true, - "os": [ - "darwin" - ], + "dependencies": { + "detect-libc": "^2.0.3", + "is-glob": "^4.0.3", + "node-addon-api": "^7.0.0", + "picomatch": "^4.0.4" + }, "engines": { - "node": ">=18" + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "@parcel/watcher-android-arm64": "2.6.0", + "@parcel/watcher-darwin-arm64": "2.6.0", + "@parcel/watcher-darwin-x64": "2.6.0", + "@parcel/watcher-freebsd-x64": "2.6.0", + "@parcel/watcher-linux-arm-glibc": "2.6.0", + "@parcel/watcher-linux-arm-musl": "2.6.0", + "@parcel/watcher-linux-arm64-glibc": "2.6.0", + "@parcel/watcher-linux-arm64-musl": "2.6.0", + "@parcel/watcher-linux-x64-glibc": "2.6.0", + "@parcel/watcher-linux-x64-musl": "2.6.0", + "@parcel/watcher-win32-arm64": "2.6.0", + "@parcel/watcher-win32-x64": "2.6.0" } }, - "node_modules/@esbuild/freebsd-arm64": { - "version": "0.28.1", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.28.1.tgz", - "integrity": "sha512-wG2EA8ENdEI0qhkSZMjfqrdY+ziCYCPMmtZjjIwOmXFjmyzEHn+UUxk5of+SYsjtfs3VpnlC7QLzSI5hY/rOAw==", + "node_modules/@parcel/watcher-android-arm64": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.6.0.tgz", + "integrity": "sha512-trgpLSCKRC/huFjXX/Smh+0sWe4+YtKfktIToiMl59ghz7z+qkH6kMvNnUbLyRs9N11t8l4svSCs1+5B3rOAhA==", "cpu": [ "arm64" ], @@ -3780,220 +3790,294 @@ "license": "MIT", "optional": true, "os": [ - "freebsd" + "android" ], "engines": { - "node": ">=18" + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" } }, - "node_modules/@esbuild/freebsd-x64": { - "version": "0.28.1", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.28.1.tgz", - "integrity": "sha512-i7dZ9vQgnvSCzi/rYCXNgtF/U+eKZNJBzu3eTQbRgHnM7tNSizLOkRFAl3qzVc/Op/u5YkHHa4pf/3DOYHthLQ==", + "node_modules/@parcel/watcher-darwin-arm64": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.6.0.tgz", + "integrity": "sha512-Y3QV0gl7Q1zbfueunkWIERICbEojQFCgpyG7YqOGNFLsckXyI1xu9mAIUpKY9QBYzBtSkN8dBPwd3yiAO9ovMw==", "cpu": [ - "x64" + "arm64" ], "dev": true, "license": "MIT", "optional": true, "os": [ - "freebsd" + "darwin" ], "engines": { - "node": ">=18" + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" } }, - "node_modules/@esbuild/linux-arm": { - "version": "0.28.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.28.1.tgz", - "integrity": "sha512-qVXBOHQS+d5Y722GwJzJUtOLlX7km3CraOaGormF1pDtPd2C/l1SHRPgjLunLGe51Sh5YYWKMFDyV4SxgMQYTQ==", + "node_modules/@parcel/watcher-darwin-x64": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.6.0.tgz", + "integrity": "sha512-Ohv6OpzhUfKYD7Beb8kDvG0jbIxORCYY1JRdZnaBtnjjkJxgD7ZVL0nw2sCYd0yTMKTvz3nnTnOF3cDifK+kvw==", "cpu": [ - "arm" + "x64" ], "dev": true, "license": "MIT", "optional": true, "os": [ - "linux" + "darwin" ], "engines": { - "node": ">=18" + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" } }, - "node_modules/@esbuild/linux-arm64": { - "version": "0.28.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.28.1.tgz", - "integrity": "sha512-yHs+0uc8+nvEAfAfxrWQKK5peSNzBc4PegcMO0EJ2hT71uA7vB8Ihg2e77R2P7SG5uYjPbHlLLmve4LLLRCf0g==", + "node_modules/@parcel/watcher-freebsd-x64": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.6.0.tgz", + "integrity": "sha512-5HmXvDgs8VK+74jF9y9/2FE3/OnlcKmc56tjmSrEuZjpSZOGL+fvAu+HKJBdPs9uwoP2hE6TlSUpXZ/C5jUFmQ==", "cpu": [ - "arm64" + "x64" ], "dev": true, "license": "MIT", "optional": true, "os": [ - "linux" + "freebsd" ], "engines": { - "node": ">=18" + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" } }, - "node_modules/@esbuild/linux-ia32": { - "version": "0.28.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.28.1.tgz", - "integrity": "sha512-d1z4ZuP0ajrfz/FhGT4vv278rX8KnPPJx8i5+AtK7TYbx9Le9F1hyzurZpkEyjkGa9dUGhQow4C1NmeGvqxN2w==", + "node_modules/@parcel/watcher-linux-arm-glibc": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.6.0.tgz", + "integrity": "sha512-Ps/hui3A+vMbjdqlqAowK2ZL8+BO8dBjxeWXj6npTBs3jx4wWmbPpaLuqwrQrSqIVMCnpWo238bJ1U37GhQOYg==", "cpu": [ - "ia32" + "arm" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=18" + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" } }, - "node_modules/@esbuild/linux-loong64": { - "version": "0.28.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.28.1.tgz", - "integrity": "sha512-M5sRjUVZrkm1OAPR3dlOYzNmN+loZKGVi1VUQGrwuqLcbR6qeAz+famMhjASeH3YVKvZz+zT1jlh/keC3Rj/lg==", + "node_modules/@parcel/watcher-linux-arm-musl": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.6.0.tgz", + "integrity": "sha512-9c6AUHgHoG+IY88MRIHupztQiQnrbqHYQjkM2btA+Bf/wQnQMuiD0Wfk1EVv3TlNT3x41uU71rn6E4xh/+zvkw==", "cpu": [ - "loong64" + "arm" ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=18" + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" } }, - "node_modules/@esbuild/linux-mips64el": { - "version": "0.28.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.28.1.tgz", - "integrity": "sha512-mRObBZeHh2OxcBFPWE/FjylkRgZdYuiTR3vaTozquCGOH14iP9oN4x4Ge81CoIDYQrXmIxpFumJBu5MtZpnQJQ==", + "node_modules/@parcel/watcher-linux-arm64-glibc": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.6.0.tgz", + "integrity": "sha512-yHRqS2owEXe6Hic9z6Mh1ECsCd+ODVOGvZDyciqRd21+v+o+DnXMOrw50DSpIG2sb8GPEaPPmfeCAWKPJdq46g==", "cpu": [ - "mips64el" + "arm64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=18" + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" } }, - "node_modules/@esbuild/linux-ppc64": { - "version": "0.28.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.28.1.tgz", - "integrity": "sha512-slScBsMAb3GFDcdrCgLwZtPYRoH2H/youv10QiZyRjmsP48fznoveWytSgCI/R0ZcUgpc0ZhIUEx6LHts8yrfQ==", + "node_modules/@parcel/watcher-linux-arm64-musl": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.6.0.tgz", + "integrity": "sha512-WhB2e/V7rqdHHWZusBSPuy5Ei8S6lSz6FE5TKKQz5h3a0O+C+mhY7vxU9b/stqvMb8beLnPY82ZrFTLKs+SrKA==", "cpu": [ - "ppc64" + "arm64" ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=18" + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" } }, - "node_modules/@esbuild/linux-riscv64": { - "version": "0.28.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.28.1.tgz", - "integrity": "sha512-kw0owk1o0GFETUJyW0jc0G4Yzs0BHZn0JDZ8JRT088vjJYX777BAs1fDGxAC+q831qOs2DTC96mNsG2opdfyyQ==", + "node_modules/@parcel/watcher-linux-x64-glibc": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.6.0.tgz", + "integrity": "sha512-ulGE6x6Oz6iAwg75T8YQSoguBWasniIbX+QWpaYPcCnDOpdWX3k+4xbEYPZVLxOuoJI+svJJPD3sEj8G7lrQ3A==", "cpu": [ - "riscv64" + "x64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=18" + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" } }, - "node_modules/@esbuild/linux-s390x": { - "version": "0.28.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.28.1.tgz", - "integrity": "sha512-/lAIjX8aYFRByhh6L5rYtPEDRqa9de/4V/juOXcta5frjvzXO4/sqEtyytse0g3zZFuWu5cDN0MkLz2qRDD2Ag==", + "node_modules/@parcel/watcher-linux-x64-musl": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.6.0.tgz", + "integrity": "sha512-tkBYKt7YQrjIJWYDnto2YgO8MRkjlMTSNoRHzsXinBqbLdeOM3L32wPZJvIZxqaLMfSlS/4sUjH/6STVP/XDLw==", "cpu": [ - "s390x" + "x64" ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=18" + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" } }, - "node_modules/@esbuild/linux-x64": { - "version": "0.28.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.28.1.tgz", - "integrity": "sha512-u/anNYF2mmVOEDwLtnQ1wOr3EZ9sTNGLWrsYGYwHWzGA3Si84IOkHXlbWTD1NB+9/1lcnweYKO54uhxZydNzfA==", + "node_modules/@parcel/watcher-win32-arm64": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.6.0.tgz", + "integrity": "sha512-gIZAP23jaHjGWasY/TY6yL7NHFClf0Ga7FN+iINvk+KN94rhm94lYZhFsbYFNcA04/onvGD9kKmiJLJB2HbNwQ==", "cpu": [ - "x64" + "arm64" ], "dev": true, "license": "MIT", "optional": true, "os": [ - "linux" + "win32" ], "engines": { - "node": ">=18" + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" } }, - "node_modules/@esbuild/netbsd-arm64": { - "version": "0.28.1", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.28.1.tgz", - "integrity": "sha512-oks0DYbLwWMmaakTsCb+zL4E+aHRVLom9IJZOAthMQEPiQmydXHkziYEsGYRx0uNV/IjEKGAV941JzH02pflqw==", + "node_modules/@parcel/watcher-win32-x64": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.6.0.tgz", + "integrity": "sha512-cA+/pXV2YkfxlIcXOQ5fSWqAzzPyD78/x5qbK/I0vUkrlYHA8TIz+MXjAbGouguKVSI4bOmkTSJ1/poVSsgt+A==", "cpu": [ - "arm64" + "x64" ], "dev": true, "license": "MIT", "optional": true, "os": [ - "netbsd" + "win32" ], "engines": { - "node": ">=18" - } + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } }, - "node_modules/@esbuild/netbsd-x64": { - "version": "0.28.1", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.28.1.tgz", - "integrity": "sha512-aeL6lAnN89Hz43Mlh1G8ARasbuoYvSITDEx0tHh5b7jJnHcssqgjy9Yx430GDpmCa6OyrKoS0aNRjKundRizGg==", + "node_modules/@parcel/watcher/node_modules/node-addon-api": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz", + "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/@rolldown/binding-android-arm64": { + "version": "1.0.0-rc.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.0.0-rc.4.tgz", + "integrity": "sha512-vRq9f4NzvbdZavhQbjkJBx7rRebDKYR9zHfO/Wg486+I7bSecdUapzCm5cyXoK+LHokTxgSq7A5baAXUZkIz0w==", "cpu": [ - "x64" + "arm64" ], "dev": true, "license": "MIT", "optional": true, "os": [ - "netbsd" + "android" ], "engines": { - "node": ">=18" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@esbuild/openbsd-arm64": { - "version": "0.28.1", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.28.1.tgz", - "integrity": "sha512-MEFJe5C3R8pwXdZ5Y21oo6m7ePiS0d9pWucn99O/wvyJZChoIQKrQDxKrGeW8F5+T0okTHesAmDeiHDTIq0V/Q==", + "node_modules/@rolldown/binding-darwin-arm64": { + "version": "1.0.0-rc.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.0.0-rc.4.tgz", + "integrity": "sha512-kFgEvkWLqt3YCgKB5re9RlIrx9bRsvyVUnaTakEpOPuLGzLpLapYxE9BufJNvPg8GjT6mB1alN4yN1NjzoeM8Q==", "cpu": [ "arm64" ], @@ -4001,16 +4085,16 @@ "license": "MIT", "optional": true, "os": [ - "openbsd" + "darwin" ], "engines": { - "node": ">=18" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@esbuild/openbsd-x64": { - "version": "0.28.1", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.28.1.tgz", - "integrity": "sha512-i/ZLIOafE0Z8cI/XANJAixoJL/uRAoS2xOA3rb0xN+KK0K177cMAsQYkzHtBrtMXAKuAc7HGgcWiZ/sRC1Nxgw==", + "node_modules/@rolldown/binding-darwin-x64": { + "version": "1.0.0-rc.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.0.0-rc.4.tgz", + "integrity": "sha512-JXmaOJGsL/+rsmMfutcDjxWM2fTaVgCHGoXS7nE8Z3c9NAYjGqHvXrAhMUZvMpHS/k7Mg+X7n/MVKb7NYWKKww==", "cpu": [ "x64" ], @@ -4018,8200 +4102,1766 @@ "license": "MIT", "optional": true, "os": [ - "openbsd" + "darwin" ], "engines": { - "node": ">=18" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@esbuild/openharmony-arm64": { - "version": "0.28.1", - "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.28.1.tgz", - "integrity": "sha512-ge+Z7EXFNt2BO1oAMsVpiQ8EwndV9i1xXerAeTIK7AtPs3bKFXQM7nlRxDSIUIMeueR1CNXxqztLzdNeReKBJg==", + "node_modules/@rolldown/binding-freebsd-x64": { + "version": "1.0.0-rc.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.0.0-rc.4.tgz", + "integrity": "sha512-ep3Catd6sPnHTM0P4hNEvIv5arnDvk01PfyJIJ+J3wVCG1eEaPo09tvFqdtcaTrkwQy0VWR24uz+cb4IsK53Qw==", "cpu": [ - "arm64" + "x64" ], "dev": true, "license": "MIT", "optional": true, "os": [ - "openharmony" + "freebsd" ], "engines": { - "node": ">=18" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@esbuild/sunos-x64": { - "version": "0.28.1", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.28.1.tgz", - "integrity": "sha512-BEjgtECkL3vY+SaSQ6nzVfiALUeFxpawyp8Jmf5PtYhf1Ug40N1h/hxlhts+f1FvSvarEigdxS3BlSMI2PJLcQ==", + "node_modules/@rolldown/binding-linux-arm-gnueabihf": { + "version": "1.0.0-rc.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.0.0-rc.4.tgz", + "integrity": "sha512-LwA5ayKIpnsgXJEwWc3h8wPiS33NMIHd9BhsV92T8VetVAbGe2qXlJwNVDGHN5cOQ22R9uYvbrQir2AB+ntT2w==", "cpu": [ - "x64" + "arm" ], "dev": true, "license": "MIT", "optional": true, "os": [ - "sunos" + "linux" ], "engines": { - "node": ">=18" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@esbuild/win32-arm64": { - "version": "0.28.1", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.28.1.tgz", - "integrity": "sha512-lCv9eK/H6ZJWbE7bh2nw54CZ9M2nupBxJcTsdk/QQnWkdSjKGuxmmH8/GWrlT1eMmZfn4dGcCjRte397WqfQXA==", + "node_modules/@rolldown/binding-linux-arm64-gnu": { + "version": "1.0.0-rc.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.0.0-rc.4.tgz", + "integrity": "sha512-AC1WsGdlV1MtGay/OQ4J9T7GRadVnpYRzTcygV1hKnypbYN20Yh4t6O1Sa2qRBMqv1etulUknqXjc3CTIsBu6A==", "cpu": [ "arm64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ - "win32" + "linux" ], "engines": { - "node": ">=18" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@esbuild/win32-ia32": { - "version": "0.28.1", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.28.1.tgz", - "integrity": "sha512-zvb/mB2bSCoJOpoCBgYKKpX6YM6mJBlBUVUtVj41DlZJVEB6/0CKlRYxP5wWl1C1ILiCoAU5wZZ4q1P3qeS6Eg==", + "node_modules/@rolldown/binding-linux-arm64-musl": { + "version": "1.0.0-rc.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.0.0-rc.4.tgz", + "integrity": "sha512-lU+6rgXXViO61B4EudxtVMXSOfiZONR29Sys5VGSetUY7X8mg9FCKIIjcPPj8xNDeYzKl+H8F/qSKOBVFJChCQ==", "cpu": [ - "ia32" + "arm64" ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ - "win32" + "linux" ], "engines": { - "node": ">=18" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@esbuild/win32-x64": { - "version": "0.28.1", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.28.1.tgz", - "integrity": "sha512-bm4Mowrv+GXMlpWX++EcXw/iLyd1o3+bJkC2DkWXYVvgZCqD/bSj9ctZeAMC3cIxgjRVR2Dufaiu4YPxr5gW1A==", + "node_modules/@rolldown/binding-linux-x64-gnu": { + "version": "1.0.0-rc.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.0.0-rc.4.tgz", + "integrity": "sha512-DZaN1f0PGp/bSvKhtw50pPsnln4T13ycDq1FrDWRiHmWt1JeW+UtYg9touPFf8yt993p8tS2QjybpzKNTxYEwg==", "cpu": [ "x64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ - "win32" + "linux" ], "engines": { - "node": ">=18" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@gar/promise-retry": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@gar/promise-retry/-/promise-retry-1.0.3.tgz", - "integrity": "sha512-GmzA9ckNokPypTg10pgpeHNQe7ph+iIKKmhKu3Ob9ANkswreCx7R3cKmY781K8QK3AqVL3xVh9A42JvIAbkkSA==", + "node_modules/@rolldown/binding-linux-x64-musl": { + "version": "1.0.0-rc.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.0.0-rc.4.tgz", + "integrity": "sha512-RnGxwZLN7fhMMAItnD6dZ7lvy+TI7ba+2V54UF4dhaWa/p8I/ys1E73KO6HmPmgz92ZkfD8TXS1IMV8+uhbR9g==", + "cpu": [ + "x64" + ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": "^20.17.0 || >=22.9.0" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@harperfast/extended-iterable": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@harperfast/extended-iterable/-/extended-iterable-1.0.3.tgz", - "integrity": "sha512-sSAYhQca3rDWtQUHSAPeO7axFIUJOI6hn1gjRC5APVE1a90tuyT8f5WIgRsFhhWA7htNkju2veB9eWL6YHi/Lw==", + "node_modules/@rolldown/binding-openharmony-arm64": { + "version": "1.0.0-rc.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.0.0-rc.4.tgz", + "integrity": "sha512-6lcI79+X8klGiGd8yHuTgQRjuuJYNggmEml+RsyN596P23l/zf9FVmJ7K0KVKkFAeYEdg0iMUKyIxiV5vebDNQ==", + "cpu": [ + "arm64" + ], "dev": true, - "license": "Apache-2.0", - "optional": true + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } }, - "node_modules/@hono/node-server": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/@hono/node-server/-/node-server-2.1.3.tgz", - "integrity": "sha512-TA//nWMqPhbfdfneACk6t5a9eqbS9lABEPyKn0/xZTah3H3U2XaVg85rJFl0/Fyit0I552YDHgXGVSf3GwqbUw==", + "node_modules/@rolldown/binding-wasm32-wasi": { + "version": "1.0.0-rc.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.0.0-rc.4.tgz", + "integrity": "sha512-wz7ohsKCAIWy91blZ/1FlpPdqrsm1xpcEOQVveWoL6+aSPKL4VUcoYmmzuLTssyZxRpEwzuIxL/GDsvpjaBtOw==", + "cpu": [ + "wasm32" + ], "dev": true, "license": "MIT", - "engines": { - "node": ">=20" + "optional": true, + "dependencies": { + "@napi-rs/wasm-runtime": "^1.1.1" }, - "peerDependencies": { - "hono": "^4" + "engines": { + "node": ">=14.0.0" } }, - "node_modules/@inquirer/ansi": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@inquirer/ansi/-/ansi-1.0.2.tgz", - "integrity": "sha512-S8qNSZiYzFd0wAcyG5AXCvUHC5Sr7xpZ9wZ2py9XR88jUz8wooStVx5M6dRzczbBWjic9NP7+rY0Xi7qqK/aMQ==", + "node_modules/@rolldown/binding-win32-arm64-msvc": { + "version": "1.0.0-rc.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.0.0-rc.4.tgz", + "integrity": "sha512-cfiMrfuWCIgsFmcVG0IPuO6qTRHvF7NuG3wngX1RZzc6dU8FuBFb+J3MIR5WrdTNozlumfgL4cvz+R4ozBCvsQ==", + "cpu": [ + "arm64" + ], "dev": true, "license": "MIT", + "optional": true, + "os": [ + "win32" + ], "engines": { - "node": ">=18" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@inquirer/checkbox": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/@inquirer/checkbox/-/checkbox-4.3.2.tgz", - "integrity": "sha512-VXukHf0RR1doGe6Sm4F0Em7SWYLTHSsbGfJdS9Ja2bX5/D5uwVOEjr07cncLROdBvmnvCATYEWlHqYmXv2IlQA==", + "node_modules/@rolldown/binding-win32-x64-msvc": { + "version": "1.0.0-rc.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.0.0-rc.4.tgz", + "integrity": "sha512-p6UeR9y7ht82AH57qwGuFYn69S6CZ7LLKdCKy/8T3zS9VTrJei2/CGsTUV45Da4Z9Rbhc7G4gyWQ/Ioamqn09g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/pluginutils": { + "version": "1.0.0-rc.4", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-rc.4.tgz", + "integrity": "sha512-1BrrmTu0TWfOP1riA8uakjFc9bpIUGzVKETsOtzY39pPga8zELGDl8eu1Dx7/gjM5CAz14UknsUMpBO8L+YntQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@rollup/plugin-json": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-json/-/plugin-json-6.1.0.tgz", + "integrity": "sha512-EGI2te5ENk1coGeADSIwZ7G2Q8CJS2sF120T7jLw4xFw9n7wIOXHo+kIYRAoVpJAN+kmqZSoO3Fp4JtoNF4ReA==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/ansi": "^1.0.2", - "@inquirer/core": "^10.3.2", - "@inquirer/figures": "^1.0.15", - "@inquirer/type": "^3.0.10", - "yoctocolors-cjs": "^2.1.3" + "@rollup/pluginutils": "^5.1.0" }, "engines": { - "node": ">=18" + "node": ">=14.0.0" }, "peerDependencies": { - "@types/node": ">=18" + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" }, "peerDependenciesMeta": { - "@types/node": { + "rollup": { "optional": true } } }, - "node_modules/@inquirer/confirm": { - "version": "5.1.21", - "resolved": "https://registry.npmjs.org/@inquirer/confirm/-/confirm-5.1.21.tgz", - "integrity": "sha512-KR8edRkIsUayMXV+o3Gv+q4jlhENF9nMYUZs9PA2HzrXeHI8M5uDag70U7RJn9yyiMZSbtF5/UexBtAVtZGSbQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@inquirer/core": "^10.3.2", - "@inquirer/type": "^3.0.10" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@types/node": ">=18" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - } - } - }, - "node_modules/@inquirer/core": { - "version": "10.3.2", - "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-10.3.2.tgz", - "integrity": "sha512-43RTuEbfP8MbKzedNqBrlhhNKVwoK//vUFNW3Q3vZ88BLcrs4kYpGg+B2mm5p2K/HfygoCxuKwJJiv8PbGmE0A==", + "node_modules/@rollup/pluginutils": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.4.0.tgz", + "integrity": "sha512-MfPp06CjRLfXQ3wY0R8vJDYBy/MvVcc9OulEfR0B8Iv9ko+GCNaRZ+EpJYFl27LhKsZK0o420sYCRHCjfCgeUg==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/ansi": "^1.0.2", - "@inquirer/figures": "^1.0.15", - "@inquirer/type": "^3.0.10", - "cli-width": "^4.1.0", - "mute-stream": "^2.0.0", - "signal-exit": "^4.1.0", - "wrap-ansi": "^6.2.0", - "yoctocolors-cjs": "^2.1.3" + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^4.0.2" }, "engines": { - "node": ">=18" + "node": ">=14.0.0" }, "peerDependencies": { - "@types/node": ">=18" + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" }, "peerDependenciesMeta": { - "@types/node": { + "rollup": { "optional": true } } }, - "node_modules/@inquirer/core/node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.64.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.64.0.tgz", + "integrity": "sha512-FLLpX941CD/7aBvX3GqLGBM9OvY5PGXTryPJkG5r5/OuBpZpV5k45Uo3RxAvqd35tsyc3hH1bhtz921IKzoIzg==", + "cpu": [ + "arm" + ], "dev": true, - "license": "ISC", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } + "license": "MIT", + "optional": true, + "os": [ + "android" + ] }, - "node_modules/@inquirer/editor": { - "version": "4.2.23", - "resolved": "https://registry.npmjs.org/@inquirer/editor/-/editor-4.2.23.tgz", - "integrity": "sha512-aLSROkEwirotxZ1pBaP8tugXRFCxW94gwrQLxXfrZsKkfjOYC1aRvAZuhpJOb5cu4IBTJdsCigUlf2iCOu4ZDQ==", + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.64.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.64.0.tgz", + "integrity": "sha512-iI32XM/jnDYJsvx5ai/za/7gWO9XoSeFFtU06/ZCaRgyilfJOjaopD3nOpk2WrTCGOyeDt4hleUiGOAnd5tHNg==", + "cpu": [ + "arm64" + ], "dev": true, "license": "MIT", - "dependencies": { - "@inquirer/core": "^10.3.2", - "@inquirer/external-editor": "^1.0.3", - "@inquirer/type": "^3.0.10" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@types/node": ">=18" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - } - } + "optional": true, + "os": [ + "android" + ] }, - "node_modules/@inquirer/expand": { - "version": "4.0.23", - "resolved": "https://registry.npmjs.org/@inquirer/expand/-/expand-4.0.23.tgz", - "integrity": "sha512-nRzdOyFYnpeYTTR2qFwEVmIWypzdAx/sIkCMeTNTcflFOovfqUk+HcFhQQVBftAh9gmGrpFj6QcGEqrDMDOiew==", + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.64.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.64.0.tgz", + "integrity": "sha512-dRBZlbt2sEtF8Mn4MODThze9fIPdDoOhVSlXMAKy5dQbOYK9pOOoPY4Fat3OTtr0+8zbJo5TTZwlsfxY/kDNJg==", + "cpu": [ + "arm64" + ], "dev": true, "license": "MIT", - "dependencies": { - "@inquirer/core": "^10.3.2", - "@inquirer/type": "^3.0.10", - "yoctocolors-cjs": "^2.1.3" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@types/node": ">=18" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - } - } + "optional": true, + "os": [ + "darwin" + ] }, - "node_modules/@inquirer/external-editor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@inquirer/external-editor/-/external-editor-1.0.3.tgz", - "integrity": "sha512-RWbSrDiYmO4LbejWY7ttpxczuwQyZLBUyygsA9Nsv95hpzUWwnNTVQmAq3xuh7vNwCp07UTmE5i11XAEExx4RA==", + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.64.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.64.0.tgz", + "integrity": "sha512-Y3whrJOMucfkhgNkvcM93M6j8C53iEAMmPMYD99C6G1kUy4ELigLWk9ar2/4aCBSRgsql0zdlOemLgW2m5GZgQ==", + "cpu": [ + "x64" + ], "dev": true, "license": "MIT", - "dependencies": { - "chardet": "^2.1.1", - "iconv-lite": "^0.7.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@types/node": ">=18" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - } - } + "optional": true, + "os": [ + "darwin" + ] }, - "node_modules/@inquirer/external-editor/node_modules/iconv-lite": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.3.tgz", - "integrity": "sha512-IKXpvIzjnC9XTAUbVBcMfGS0EPaIXtW6v+zr+RRp+hqULEpo0owZax6wyRwPOJbWbzjYspQwusTsfVr0ifh4uQ==", + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.64.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.64.0.tgz", + "integrity": "sha512-S6S1GEzPjFF6IONYJX3AKt/799+8RgBgCcwRnUo+Ep1IvBxUbw5M51iU0TDdK2NWWVnSvCQ8yi6Em0fGASMOng==", + "cpu": [ + "arm64" + ], "dev": true, "license": "MIT", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" - } + "optional": true, + "os": [ + "freebsd" + ] }, - "node_modules/@inquirer/figures": { - "version": "1.0.15", - "resolved": "https://registry.npmjs.org/@inquirer/figures/-/figures-1.0.15.tgz", - "integrity": "sha512-t2IEY+unGHOzAaVM5Xx6DEWKeXlDDcNPeDyUpsRc6CUhBfU3VQOEl+Vssh7VNp1dR8MdUJBWhuObjXCsVpjN5g==", + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.64.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.64.0.tgz", + "integrity": "sha512-Ed1DPoFENkXj4IGzSB12SesV40iP6LxCCrbTIkSGIQBpOOxpBM+0kj62lmaeIHfMWTDoddqTOtqc7s8LYfn+Pw==", + "cpu": [ + "x64" + ], "dev": true, "license": "MIT", - "engines": { - "node": ">=18" - } + "optional": true, + "os": [ + "freebsd" + ] }, - "node_modules/@inquirer/input": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/@inquirer/input/-/input-4.3.1.tgz", - "integrity": "sha512-kN0pAM4yPrLjJ1XJBjDxyfDduXOuQHrBB8aLDMueuwUGn+vNpF7Gq7TvyVxx8u4SHlFFj4trmj+a2cbpG4Jn1g==", + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.64.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.64.0.tgz", + "integrity": "sha512-J/6xhutJPtFyIkmHdf4olOdHHKH5kOJNumojdWn+Elv5ICEYTVOa362Vw27TxsK0BLzb1le3EDlO3UbvFK1lnQ==", + "cpu": [ + "arm" + ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", - "dependencies": { - "@inquirer/core": "^10.3.2", - "@inquirer/type": "^3.0.10" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@types/node": ">=18" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - } - } + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/@inquirer/number": { - "version": "3.0.23", - "resolved": "https://registry.npmjs.org/@inquirer/number/-/number-3.0.23.tgz", - "integrity": "sha512-5Smv0OK7K0KUzUfYUXDXQc9jrf8OHo4ktlEayFlelCjwMXz0299Y8OrI+lj7i4gCBY15UObk76q0QtxjzFcFcg==", + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.64.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.64.0.tgz", + "integrity": "sha512-G4L/Nnx59d2LvDoV/P4S5lZ7oVLT6hodOHMacqjiq2LL2gts86KbkEBTYL53+fBt0odhf7XPIbIATGoYiJctxg==", + "cpu": [ + "arm" + ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT", - "dependencies": { - "@inquirer/core": "^10.3.2", - "@inquirer/type": "^3.0.10" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@types/node": ">=18" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - } - } - }, - "node_modules/@inquirer/password": { - "version": "4.0.23", - "resolved": "https://registry.npmjs.org/@inquirer/password/-/password-4.0.23.tgz", - "integrity": "sha512-zREJHjhT5vJBMZX/IUbyI9zVtVfOLiTO66MrF/3GFZYZ7T4YILW5MSkEYHceSii/KtRk+4i3RE7E1CUXA2jHcA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@inquirer/ansi": "^1.0.2", - "@inquirer/core": "^10.3.2", - "@inquirer/type": "^3.0.10" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@types/node": ">=18" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - } - } - }, - "node_modules/@inquirer/prompts": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@inquirer/prompts/-/prompts-7.10.1.tgz", - "integrity": "sha512-Dx/y9bCQcXLI5ooQ5KyvA4FTgeo2jYj/7plWfV5Ak5wDPKQZgudKez2ixyfz7tKXzcJciTxqLeK7R9HItwiByg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@inquirer/checkbox": "^4.3.2", - "@inquirer/confirm": "^5.1.21", - "@inquirer/editor": "^4.2.23", - "@inquirer/expand": "^4.0.23", - "@inquirer/input": "^4.3.1", - "@inquirer/number": "^3.0.23", - "@inquirer/password": "^4.0.23", - "@inquirer/rawlist": "^4.1.11", - "@inquirer/search": "^3.2.2", - "@inquirer/select": "^4.4.2" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@types/node": ">=18" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - } - } + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/@inquirer/rawlist": { - "version": "4.1.11", - "resolved": "https://registry.npmjs.org/@inquirer/rawlist/-/rawlist-4.1.11.tgz", - "integrity": "sha512-+LLQB8XGr3I5LZN/GuAHo+GpDJegQwuPARLChlMICNdwW7OwV2izlCSCxN6cqpL0sMXmbKbFcItJgdQq5EBXTw==", + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.64.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.64.0.tgz", + "integrity": "sha512-zF16pvJDEUksGYRbfnXne7pdklAyj2XDmJeYKgP93oq0cUyX9Y8O7lUo1R+IY1GagP/YBvCEDCe7eEcAKpw//g==", + "cpu": [ + "arm64" + ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", - "dependencies": { - "@inquirer/core": "^10.3.2", - "@inquirer/type": "^3.0.10", - "yoctocolors-cjs": "^2.1.3" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@types/node": ">=18" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - } - } + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/@inquirer/search": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/@inquirer/search/-/search-3.2.2.tgz", - "integrity": "sha512-p2bvRfENXCZdWF/U2BXvnSI9h+tuA8iNqtUKb9UWbmLYCRQxd8WkvwWvYn+3NgYaNwdUkHytJMGG4MMLucI1kA==", + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.64.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.64.0.tgz", + "integrity": "sha512-nIggWn8n+w12+R5lsV+PYYoUY8vuObxPAQqJI7WES+9v0qspYuAHoZMfYM0yLxlipasT5BY9ht5W8t5c/rSCkg==", + "cpu": [ + "arm64" + ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT", - "dependencies": { - "@inquirer/core": "^10.3.2", - "@inquirer/figures": "^1.0.15", - "@inquirer/type": "^3.0.10", - "yoctocolors-cjs": "^2.1.3" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@types/node": ">=18" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - } - } + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/@inquirer/select": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/@inquirer/select/-/select-4.4.2.tgz", - "integrity": "sha512-l4xMuJo55MAe+N7Qr4rX90vypFwCajSakx59qe/tMaC1aEHWLyw68wF4o0A4SLAY4E0nd+Vt+EyskeDIqu1M6w==", + "node_modules/@rollup/rollup-linux-loong64-gnu": { + "version": "4.64.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.64.0.tgz", + "integrity": "sha512-WLOTiHPzszP0dxIMsHpFeDSOSB5I49Mj8K4+yKE3H1X/D0JRG5XZ5jrctJLMjnUc/LUzaKiwq6EHWNJ8pup8PA==", + "cpu": [ + "loong64" + ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", - "dependencies": { - "@inquirer/ansi": "^1.0.2", - "@inquirer/core": "^10.3.2", - "@inquirer/figures": "^1.0.15", - "@inquirer/type": "^3.0.10", - "yoctocolors-cjs": "^2.1.3" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@types/node": ">=18" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - } - } + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/@inquirer/type": { - "version": "3.0.10", - "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-3.0.10.tgz", - "integrity": "sha512-BvziSRxfz5Ov8ch0z/n3oijRSEcEsHnhggm4xFZe93DHcUCTlutlq9Ox4SVENAfcRD22UQq7T/atg9Wr3k09eA==", + "node_modules/@rollup/rollup-linux-loong64-musl": { + "version": "4.64.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.64.0.tgz", + "integrity": "sha512-35RK9aRhh7g7Pmeu5gQ01aCvrhXzj9LoBE6xtUcEH1ns+nyTaSzxSpADmBQINu4QiTDGvmQYwo1j5hlg1rRXFw==", + "cpu": [ + "loong64" + ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT", - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@types/node": ">=18" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - } - } - }, - "node_modules/@isaacs/fs-minipass": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@isaacs/fs-minipass/-/fs-minipass-4.0.1.tgz", - "integrity": "sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==", - "dev": true, - "license": "ISC", - "dependencies": { - "minipass": "^7.0.4" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", - "dev": true, - "engines": { - "node": ">=8" - } + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.13", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", - "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", + "node_modules/@rollup/rollup-linux-ppc64-gnu": { + "version": "4.64.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.64.0.tgz", + "integrity": "sha512-RqTfnpoTjuWfPAmqK5p2edt2AMCDJWm6oTn7sKfmyx+6tRga0ip05SJ977o6udTcIiDeF/CJMUfkaN4gtWt6Aw==", + "cpu": [ + "ppc64" + ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.5.0", - "@jridgewell/trace-mapping": "^0.3.24" - } + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/@jridgewell/remapping": { - "version": "2.3.5", - "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", - "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", + "node_modules/@rollup/rollup-linux-ppc64-musl": { + "version": "4.64.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.64.0.tgz", + "integrity": "sha512-RQjZPigjxFvFZDijG6rjlSXxhRaTf9zLYVpGK+lVcga64oMqP1GbgVqCb46eHTTceSIgp89Ja0y5aPe3GFBYHg==", + "cpu": [ + "ppc64" + ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT", - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.24" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", - "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/source-map": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", - "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", - "dev": true, - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.25" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.6.0.tgz", - "integrity": "sha512-T7jf+5zgsZHwNJ4lvQ7/aezbyk0nNX+zJVWpmHA7VYsEx7a7qr5Rg5IbtJFqkgze5Y2sruq1RUY8Q837Od7iFw==", - "dev": true, - "license": "MIT" - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.31", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", - "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "node_modules/@jsonjoy.com/base64": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/base64/-/base64-1.1.2.tgz", - "integrity": "sha512-q6XAnWQDIMA3+FTiOYajoYqySkO+JSat0ytXGSuRdq9uXE7o92gzuQwQM14xaCRlBLGq3v5miDGC4vkVTn54xA==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=10.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/streamich" - }, - "peerDependencies": { - "tslib": "2" - } - }, - "node_modules/@jsonjoy.com/buffers": { - "version": "17.67.0", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/buffers/-/buffers-17.67.0.tgz", - "integrity": "sha512-tfExRpYxBvi32vPs9ZHaTjSP4fHAfzSmcahOfNxtvGHcyJel+aibkPlGeBB+7AoC6hL7lXIE++8okecBxx7lcw==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=10.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/streamich" - }, - "peerDependencies": { - "tslib": "2" - } - }, - "node_modules/@jsonjoy.com/codegen": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/codegen/-/codegen-1.0.0.tgz", - "integrity": "sha512-E8Oy+08cmCf0EK/NMxpaJZmOxPqM+6iSe2S4nlSBrPZOORoDJILxtbSUEDKQyTamm/BVAhIGllOBNU79/dwf0g==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=10.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/streamich" - }, - "peerDependencies": { - "tslib": "2" - } - }, - "node_modules/@jsonjoy.com/fs-core": { - "version": "4.80.0", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-core/-/fs-core-4.80.0.tgz", - "integrity": "sha512-qMKWshnyjbyhm+NbzqGE3w5y1mckFFEMj0aDPU2/JBNh1BzIjVy9esq9lBmRnNVmhMEkxwDzLZ8Gqh5G1P5Dag==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@jsonjoy.com/fs-node-builtins": "4.80.0", - "@jsonjoy.com/fs-node-utils": "4.80.0", - "thingies": "^2.5.0" - }, - "engines": { - "node": ">=10.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/streamich" - }, - "peerDependencies": { - "tslib": "2" - } - }, - "node_modules/@jsonjoy.com/fs-fsa": { - "version": "4.80.0", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-fsa/-/fs-fsa-4.80.0.tgz", - "integrity": "sha512-ZBEKl7J6dbkRCfmrFV48Re211A/FHqniTUhsWCsaRteNSOqMgkX3qF1UreVgwB9oSPm81JLAwhIi6Lb/NH/PoA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@jsonjoy.com/fs-core": "4.80.0", - "@jsonjoy.com/fs-node-builtins": "4.80.0", - "@jsonjoy.com/fs-node-utils": "4.80.0", - "thingies": "^2.5.0" - }, - "engines": { - "node": ">=10.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/streamich" - }, - "peerDependencies": { - "tslib": "2" - } - }, - "node_modules/@jsonjoy.com/fs-node": { - "version": "4.80.0", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-node/-/fs-node-4.80.0.tgz", - "integrity": "sha512-yiBlUfkMMRFFGy8CD/h2zd5rPnrM6bjlF+nx2LRAxNV6hOSiuObQIUEE7m7y2VTMisjxCRtzINH94bFGySWL7g==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@jsonjoy.com/fs-core": "4.80.0", - "@jsonjoy.com/fs-node-builtins": "4.80.0", - "@jsonjoy.com/fs-node-utils": "4.80.0", - "@jsonjoy.com/fs-print": "4.80.0", - "@jsonjoy.com/fs-snapshot": "4.80.0", - "glob-to-regex.js": "^1.3.1", - "thingies": "^2.5.0" - }, - "engines": { - "node": ">=10.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/streamich" - }, - "peerDependencies": { - "tslib": "2" - } - }, - "node_modules/@jsonjoy.com/fs-node-builtins": { - "version": "4.80.0", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-node-builtins/-/fs-node-builtins-4.80.0.tgz", - "integrity": "sha512-OIOIhqaWiwUySFMny4epIAoviXsyMaQQ63PTc3zH+5HEOvarl5hpUmZIhp2m5+OfyKAh5ylxXnQIgew1OgJDVw==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=10.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/streamich" - }, - "peerDependencies": { - "tslib": "2" - } - }, - "node_modules/@jsonjoy.com/fs-node-to-fsa": { - "version": "4.80.0", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-node-to-fsa/-/fs-node-to-fsa-4.80.0.tgz", - "integrity": "sha512-ljeaR5xwtX1EyRmB0wvXANUMQZ3mjKcm7z8s2N8D8SLQ04CcAGtUhHFRZQXFb9mhgFyEVMydQGQtSOFS7pcrFQ==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@jsonjoy.com/fs-fsa": "4.80.0", - "@jsonjoy.com/fs-node-builtins": "4.80.0", - "@jsonjoy.com/fs-node-utils": "4.80.0" - }, - "engines": { - "node": ">=10.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/streamich" - }, - "peerDependencies": { - "tslib": "2" - } - }, - "node_modules/@jsonjoy.com/fs-node-utils": { - "version": "4.80.0", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-node-utils/-/fs-node-utils-4.80.0.tgz", - "integrity": "sha512-xwHeVVi3f+Khg/Fmb8i5qoYVmQ08QznE5TWhQokUmIZjz4KBPzU+zt/+bahBI6G1ghtqajt27lWuAciIxApuzA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@jsonjoy.com/fs-node-builtins": "4.80.0", - "glob-to-regex.js": "^1.3.1" - }, - "engines": { - "node": ">=10.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/streamich" - }, - "peerDependencies": { - "tslib": "2" - } - }, - "node_modules/@jsonjoy.com/fs-print": { - "version": "4.80.0", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-print/-/fs-print-4.80.0.tgz", - "integrity": "sha512-1ocZLJw/m/xlq0moaIHO7HV9nHRVBUvdc2zMzhsJGkFOrqfwWvexfCv5cYCPPLRhP+9p3yunoi4Ep5YhRORC9Q==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@jsonjoy.com/fs-node-utils": "4.80.0", - "tree-dump": "^1.1.0" - }, - "engines": { - "node": ">=10.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/streamich" - }, - "peerDependencies": { - "tslib": "2" - } - }, - "node_modules/@jsonjoy.com/fs-snapshot": { - "version": "4.80.0", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-snapshot/-/fs-snapshot-4.80.0.tgz", - "integrity": "sha512-3AV23Q1H228KTtJKTUE0nNq8FCtxSvtENOLrEat80wkAJCKHuqQEv8yjhpS8Bei2OEFJAnluGXp9Ri2SWBlROw==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@jsonjoy.com/buffers": "^17.65.0", - "@jsonjoy.com/fs-node-utils": "4.80.0", - "@jsonjoy.com/json-pack": "^17.65.0", - "@jsonjoy.com/util": "^17.65.0" - }, - "engines": { - "node": ">=10.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/streamich" - }, - "peerDependencies": { - "tslib": "2" - } - }, - "node_modules/@jsonjoy.com/fs-snapshot/node_modules/@jsonjoy.com/base64": { - "version": "17.67.0", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/base64/-/base64-17.67.0.tgz", - "integrity": "sha512-5SEsJGsm15aP8TQGkDfJvz9axgPwAEm98S5DxOuYe8e1EbfajcDmgeXXzccEjh+mLnjqEKrkBdjHWS5vFNwDdw==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=10.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/streamich" - }, - "peerDependencies": { - "tslib": "2" - } - }, - "node_modules/@jsonjoy.com/fs-snapshot/node_modules/@jsonjoy.com/codegen": { - "version": "17.67.0", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/codegen/-/codegen-17.67.0.tgz", - "integrity": "sha512-idnkUplROpdBOV0HMcwhsCUS5TRUi9poagdGs70A6S4ux9+/aPuKbh8+UYRTLYQHtXvAdNfQWXDqZEx5k4Dj2Q==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=10.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/streamich" - }, - "peerDependencies": { - "tslib": "2" - } - }, - "node_modules/@jsonjoy.com/fs-snapshot/node_modules/@jsonjoy.com/json-pack": { - "version": "17.67.0", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/json-pack/-/json-pack-17.67.0.tgz", - "integrity": "sha512-t0ejURcGaZsn1ClbJ/3kFqSOjlryd92eQY465IYrezsXmPcfHPE/av4twRSxf6WE+TkZgLY+71vCZbiIiFKA/w==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@jsonjoy.com/base64": "17.67.0", - "@jsonjoy.com/buffers": "17.67.0", - "@jsonjoy.com/codegen": "17.67.0", - "@jsonjoy.com/json-pointer": "17.67.0", - "@jsonjoy.com/util": "17.67.0", - "hyperdyperid": "^1.2.0", - "thingies": "^2.5.0", - "tree-dump": "^1.1.0" - }, - "engines": { - "node": ">=10.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/streamich" - }, - "peerDependencies": { - "tslib": "2" - } - }, - "node_modules/@jsonjoy.com/fs-snapshot/node_modules/@jsonjoy.com/json-pointer": { - "version": "17.67.0", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/json-pointer/-/json-pointer-17.67.0.tgz", - "integrity": "sha512-+iqOFInH+QZGmSuaybBUNdh7yvNrXvqR+h3wjXm0N/3JK1EyyFAeGJvqnmQL61d1ARLlk/wJdFKSL+LHJ1eaUA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@jsonjoy.com/util": "17.67.0" - }, - "engines": { - "node": ">=10.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/streamich" - }, - "peerDependencies": { - "tslib": "2" - } - }, - "node_modules/@jsonjoy.com/fs-snapshot/node_modules/@jsonjoy.com/util": { - "version": "17.67.0", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/util/-/util-17.67.0.tgz", - "integrity": "sha512-6+8xBaz1rLSohlGh68D1pdw3AwDi9xydm8QNlAFkvnavCJYSze+pxoW2VKP8p308jtlMRLs5NTHfPlZLd4w7ew==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@jsonjoy.com/buffers": "17.67.0", - "@jsonjoy.com/codegen": "17.67.0" - }, - "engines": { - "node": ">=10.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/streamich" - }, - "peerDependencies": { - "tslib": "2" - } - }, - "node_modules/@jsonjoy.com/json-pack": { - "version": "1.21.0", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/json-pack/-/json-pack-1.21.0.tgz", - "integrity": "sha512-+AKG+R2cfZMShzrF2uQw34v3zbeDYUqnQ+jg7ORic3BGtfw9p/+N6RJbq/kkV8JmYZaINknaEQ2m0/f693ZPpg==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@jsonjoy.com/base64": "^1.1.2", - "@jsonjoy.com/buffers": "^1.2.0", - "@jsonjoy.com/codegen": "^1.0.0", - "@jsonjoy.com/json-pointer": "^1.0.2", - "@jsonjoy.com/util": "^1.9.0", - "hyperdyperid": "^1.2.0", - "thingies": "^2.5.0", - "tree-dump": "^1.1.0" - }, - "engines": { - "node": ">=10.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/streamich" - }, - "peerDependencies": { - "tslib": "2" - } - }, - "node_modules/@jsonjoy.com/json-pack/node_modules/@jsonjoy.com/buffers": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/buffers/-/buffers-1.2.1.tgz", - "integrity": "sha512-12cdlDwX4RUM3QxmUbVJWqZ/mrK6dFQH4Zxq6+r1YXKXYBNgZXndx2qbCJwh3+WWkCSn67IjnlG3XYTvmvYtgA==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=10.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/streamich" - }, - "peerDependencies": { - "tslib": "2" - } - }, - "node_modules/@jsonjoy.com/json-pointer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/json-pointer/-/json-pointer-1.0.2.tgz", - "integrity": "sha512-Fsn6wM2zlDzY1U+v4Nc8bo3bVqgfNTGcn6dMgs6FjrEnt4ZCe60o6ByKRjOGlI2gow0aE/Q41QOigdTqkyK5fg==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@jsonjoy.com/codegen": "^1.0.0", - "@jsonjoy.com/util": "^1.9.0" - }, - "engines": { - "node": ">=10.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/streamich" - }, - "peerDependencies": { - "tslib": "2" - } - }, - "node_modules/@jsonjoy.com/util": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/util/-/util-1.9.0.tgz", - "integrity": "sha512-pLuQo+VPRnN8hfPqUTLTHk126wuYdXVxE6aDmjSeV4NCAgyxWbiOIeNJVtID3h1Vzpoi9m4jXezf73I6LgabgQ==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@jsonjoy.com/buffers": "^1.0.0", - "@jsonjoy.com/codegen": "^1.0.0" - }, - "engines": { - "node": ">=10.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/streamich" - }, - "peerDependencies": { - "tslib": "2" - } - }, - "node_modules/@jsonjoy.com/util/node_modules/@jsonjoy.com/buffers": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/buffers/-/buffers-1.2.1.tgz", - "integrity": "sha512-12cdlDwX4RUM3QxmUbVJWqZ/mrK6dFQH4Zxq6+r1YXKXYBNgZXndx2qbCJwh3+WWkCSn67IjnlG3XYTvmvYtgA==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=10.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/streamich" - }, - "peerDependencies": { - "tslib": "2" - } - }, - "node_modules/@leichtgewicht/ip-codec": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz", - "integrity": "sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==", - "dev": true, - "license": "MIT" - }, - "node_modules/@listr2/prompt-adapter-inquirer": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@listr2/prompt-adapter-inquirer/-/prompt-adapter-inquirer-3.0.5.tgz", - "integrity": "sha512-WELs+hj6xcilkloBXYf9XXK8tYEnKsgLj01Xl5ONUJpKjmT5hGVUzNUS5tooUxs7pGMrw+jFD/41WpqW4V3LDA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@inquirer/type": "^3.0.8" - }, - "engines": { - "node": ">=20.0.0" - }, - "peerDependencies": { - "@inquirer/prompts": ">= 3 < 8", - "listr2": "9.0.5" - } - }, - "node_modules/@lmdb/lmdb-darwin-arm64": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/@lmdb/lmdb-darwin-arm64/-/lmdb-darwin-arm64-3.5.1.tgz", - "integrity": "sha512-tpfN4kKrrMpQ+If1l8bhmoNkECJi0iOu6AEdrTJvWVC+32sLxTARX5Rsu579mPImRP9YFWfWgeRQ5oav7zApQQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@lmdb/lmdb-darwin-x64": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/@lmdb/lmdb-darwin-x64/-/lmdb-darwin-x64-3.5.1.tgz", - "integrity": "sha512-+a2tTfc3rmWhLAolFUWRgJtpSuu+Fw/yjn4rF406NMxhfjbMuiOUTDRvRlMFV+DzyjkwnokisskHbCWkS3Ly5w==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@lmdb/lmdb-linux-arm": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-arm/-/lmdb-linux-arm-3.5.1.tgz", - "integrity": "sha512-0EgcE6reYr8InjD7V37EgXcYrloqpxVPINy3ig1MwDSbl6LF/vXTYRH9OE1Ti1D8YZnB35ZH9aTcdfSb5lql2A==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@lmdb/lmdb-linux-arm64": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-arm64/-/lmdb-linux-arm64-3.5.1.tgz", - "integrity": "sha512-aoERa5B6ywXdyFeYGQ1gbQpkMkDbEo45qVoXE5QpIRavqjnyPwjOulMkmkypkmsbJ5z4Wi0TBztON8agCTG0Vg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@lmdb/lmdb-linux-x64": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-x64/-/lmdb-linux-x64-3.5.1.tgz", - "integrity": "sha512-SqNDY1+vpji7bh0sFH5wlWyFTOzjbDOl0/kB5RLLYDAFyd/uw3n7wyrmas3rYPpAW7z18lMOi1yKlTPv967E3g==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@lmdb/lmdb-win32-arm64": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/@lmdb/lmdb-win32-arm64/-/lmdb-win32-arm64-3.5.1.tgz", - "integrity": "sha512-50v0O1Lt37cwrmR9vWZK5hRW0Aw+KEmxJJ75fge/zIYdvNKB/0bSMSVR5Uc2OV9JhosIUyklOmrEvavwNJ8D6w==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@lmdb/lmdb-win32-x64": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/@lmdb/lmdb-win32-x64/-/lmdb-win32-x64-3.5.1.tgz", - "integrity": "sha512-qwosvPyl+zpUlp3gRb7UcJ3H8S28XHCzkv0Y0EgQToXjQP91ZD67EHSCDmaLjtKhe+GVIW5om1KUpzVLA0l6pg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@modelcontextprotocol/sdk": { - "version": "1.30.0", - "resolved": "https://registry.npmjs.org/@modelcontextprotocol/sdk/-/sdk-1.30.0.tgz", - "integrity": "sha512-xKd8OIzlqNzcqcNumGAa6g+PW2kjD5vrpcKOnfldAUPP3j7lnqMPwlTXQm8gF+UwH72z0lqaRbjr9hqGz0eITA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@hono/node-server": "^1.19.9 || ^2.0.5", - "ajv": "^8.17.1", - "ajv-formats": "^3.0.1", - "content-type": "^1.0.5", - "cors": "^2.8.5", - "cross-spawn": "^7.0.5", - "eventsource": "^3.0.2", - "eventsource-parser": "^3.0.0", - "express": "^5.2.1", - "express-rate-limit": "^8.2.1", - "hono": "^4.11.4", - "jose": "^6.1.3", - "json-schema-typed": "^8.0.2", - "pkce-challenge": "^5.0.0", - "raw-body": "^3.0.0", - "zod": "^3.25 || ^4.0", - "zod-to-json-schema": "^3.25.1" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@cfworker/json-schema": "^4.1.1", - "zod": "^3.25 || ^4.0" - }, - "peerDependenciesMeta": { - "@cfworker/json-schema": { - "optional": true - }, - "zod": { - "optional": false - } - } - }, - "node_modules/@modelcontextprotocol/sdk/node_modules/ajv": { - "version": "8.20.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.20.0.tgz", - "integrity": "sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA==", - "dev": true, - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.3", - "fast-uri": "^3.0.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/@modelcontextprotocol/sdk/node_modules/ajv-formats": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-3.0.1.tgz", - "integrity": "sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ajv": "^8.0.0" - }, - "peerDependencies": { - "ajv": "^8.0.0" - }, - "peerDependenciesMeta": { - "ajv": { - "optional": true - } - } - }, - "node_modules/@modelcontextprotocol/sdk/node_modules/iconv-lite": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.3.tgz", - "integrity": "sha512-IKXpvIzjnC9XTAUbVBcMfGS0EPaIXtW6v+zr+RRp+hqULEpo0owZax6wyRwPOJbWbzjYspQwusTsfVr0ifh4uQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" - } - }, - "node_modules/@modelcontextprotocol/sdk/node_modules/raw-body": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-3.0.2.tgz", - "integrity": "sha512-K5zQjDllxWkf7Z5xJdV0/B0WTNqx6vxG70zJE4N0kBs4LovmEYWJzQGxC9bS9RAKu3bgM40lrd5zoLJ12MQ5BA==", - "dev": true, - "license": "MIT", - "dependencies": { - "bytes": "~3.1.2", - "http-errors": "~2.0.1", - "iconv-lite": "~0.7.0", - "unpipe": "~1.0.0" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/@msgpackr-extract/msgpackr-extract-darwin-arm64": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-darwin-arm64/-/msgpackr-extract-darwin-arm64-3.0.4.tgz", - "integrity": "sha512-LCkGo6JDfaBhgST7UpPWgNgLINpcpabaHfyz5OBx75nUYxBsaEPxjnyNjWpeb/xBup/682QnBfRBy2/LvPutZQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@msgpackr-extract/msgpackr-extract-darwin-x64": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-darwin-x64/-/msgpackr-extract-darwin-x64-3.0.4.tgz", - "integrity": "sha512-zExlW9zUJKZH/tOtVMttwjKa4Xm/3KcNjnE3dPN92uCktwavMxpgCA3MoJK/DOnTWsQgo224OaST27/mPNAf+w==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@msgpackr-extract/msgpackr-extract-linux-arm": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-arm/-/msgpackr-extract-linux-arm-3.0.4.tgz", - "integrity": "sha512-Tg3yX65f5GbtXLkrYEHE5oibZG9epyYWas7FogTTEJeDEF9JlXJzKgXaNhT3UXlTOeA+AfZpYZYZ0uPj7Cfquw==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@msgpackr-extract/msgpackr-extract-linux-arm64": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-arm64/-/msgpackr-extract-linux-arm64-3.0.4.tgz", - "integrity": "sha512-dgX0P/9wGPJeHFBG+ZmhgE6bmtMt7NP5CRBGyyktpopdk/mW4POnrpQsSLtKI1dwpc+pPLuXHDh6vvskyQE/sw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@msgpackr-extract/msgpackr-extract-linux-x64": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-x64/-/msgpackr-extract-linux-x64-3.0.4.tgz", - "integrity": "sha512-8TNXMEjJc3QEy7R/x1INhgiU+XakDAFUzBhaz7+Rbrs8NH5UQeHQxxmzsSBJGyV6I1jW79undiQm8tOI+D+8FQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@msgpackr-extract/msgpackr-extract-win32-x64": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-win32-x64/-/msgpackr-extract-win32-x64-3.0.4.tgz", - "integrity": "sha512-CmCXPQrkbwExx3j946/PtHWHbYJiCRBRDl4BlkRQcJB/YOwQxJRTpoo7aTsortjgoJ1x7opzTSxn7C+ASSLVjQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@napi-rs/lzma-linux-x64-gnu": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/@napi-rs/lzma-linux-x64-gnu/-/lzma-linux-x64-gnu-1.5.1.tgz", - "integrity": "sha512-oTXEIha4SsuXdTA4Iyskj0kpdx2yVXdhd75c2v3xGrHFfVMsbhTPZU/nMPL4sWKo4pBHm3aucLaqGlF696dTyQ==", - "cpu": [ - "x64" - ], - "dev": true, - "libc": [ - "glibc" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^22.20 || ^24.12 || >=25" - } - }, - "node_modules/@napi-rs/nice": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@napi-rs/nice/-/nice-1.1.1.tgz", - "integrity": "sha512-xJIPs+bYuc9ASBl+cvGsKbGrJmS6fAKaSZCnT0lhahT5rhA2VVy9/EcIgd2JhtEuFOJNx7UHNn/qiTPTY4nrQw==", - "dev": true, - "license": "MIT", - "optional": true, - "engines": { - "node": ">= 10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/Brooooooklyn" - }, - "optionalDependencies": { - "@napi-rs/nice-android-arm-eabi": "1.1.1", - "@napi-rs/nice-android-arm64": "1.1.1", - "@napi-rs/nice-darwin-arm64": "1.1.1", - "@napi-rs/nice-darwin-x64": "1.1.1", - "@napi-rs/nice-freebsd-x64": "1.1.1", - "@napi-rs/nice-linux-arm-gnueabihf": "1.1.1", - "@napi-rs/nice-linux-arm64-gnu": "1.1.1", - "@napi-rs/nice-linux-arm64-musl": "1.1.1", - "@napi-rs/nice-linux-ppc64-gnu": "1.1.1", - "@napi-rs/nice-linux-riscv64-gnu": "1.1.1", - "@napi-rs/nice-linux-s390x-gnu": "1.1.1", - "@napi-rs/nice-linux-x64-gnu": "1.1.1", - "@napi-rs/nice-linux-x64-musl": "1.1.1", - "@napi-rs/nice-openharmony-arm64": "1.1.1", - "@napi-rs/nice-win32-arm64-msvc": "1.1.1", - "@napi-rs/nice-win32-ia32-msvc": "1.1.1", - "@napi-rs/nice-win32-x64-msvc": "1.1.1" - } - }, - "node_modules/@napi-rs/nice-android-arm-eabi": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@napi-rs/nice-android-arm-eabi/-/nice-android-arm-eabi-1.1.1.tgz", - "integrity": "sha512-kjirL3N6TnRPv5iuHw36wnucNqXAO46dzK9oPb0wj076R5Xm8PfUVA9nAFB5ZNMmfJQJVKACAPd/Z2KYMppthw==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@napi-rs/nice-android-arm64": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@napi-rs/nice-android-arm64/-/nice-android-arm64-1.1.1.tgz", - "integrity": "sha512-blG0i7dXgbInN5urONoUCNf+DUEAavRffrO7fZSeoRMJc5qD+BJeNcpr54msPF6qfDD6kzs9AQJogZvT2KD5nw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@napi-rs/nice-darwin-arm64": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@napi-rs/nice-darwin-arm64/-/nice-darwin-arm64-1.1.1.tgz", - "integrity": "sha512-s/E7w45NaLqTGuOjC2p96pct4jRfo61xb9bU1unM/MJ/RFkKlJyJDx7OJI/O0ll/hrfpqKopuAFDV8yo0hfT7A==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@napi-rs/nice-darwin-x64": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@napi-rs/nice-darwin-x64/-/nice-darwin-x64-1.1.1.tgz", - "integrity": "sha512-dGoEBnVpsdcC+oHHmW1LRK5eiyzLwdgNQq3BmZIav+9/5WTZwBYX7r5ZkQC07Nxd3KHOCkgbHSh4wPkH1N1LiQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@napi-rs/nice-freebsd-x64": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@napi-rs/nice-freebsd-x64/-/nice-freebsd-x64-1.1.1.tgz", - "integrity": "sha512-kHv4kEHAylMYmlNwcQcDtXjklYp4FCf0b05E+0h6nDHsZ+F0bDe04U/tXNOqrx5CmIAth4vwfkjjUmp4c4JktQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@napi-rs/nice-linux-arm-gnueabihf": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-arm-gnueabihf/-/nice-linux-arm-gnueabihf-1.1.1.tgz", - "integrity": "sha512-E1t7K0efyKXZDoZg1LzCOLxgolxV58HCkaEkEvIYQx12ht2pa8hoBo+4OB3qh7e+QiBlp1SRf+voWUZFxyhyqg==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@napi-rs/nice-linux-arm64-gnu": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-arm64-gnu/-/nice-linux-arm64-gnu-1.1.1.tgz", - "integrity": "sha512-CIKLA12DTIZlmTaaKhQP88R3Xao+gyJxNWEn04wZwC2wmRapNnxCUZkVwggInMJvtVElA+D4ZzOU5sX4jV+SmQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "libc": [ - "glibc" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@napi-rs/nice-linux-arm64-musl": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-arm64-musl/-/nice-linux-arm64-musl-1.1.1.tgz", - "integrity": "sha512-+2Rzdb3nTIYZ0YJF43qf2twhqOCkiSrHx2Pg6DJaCPYhhaxbLcdlV8hCRMHghQ+EtZQWGNcS2xF4KxBhSGeutg==", - "cpu": [ - "arm64" - ], - "dev": true, - "libc": [ - "musl" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@napi-rs/nice-linux-ppc64-gnu": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-ppc64-gnu/-/nice-linux-ppc64-gnu-1.1.1.tgz", - "integrity": "sha512-4FS8oc0GeHpwvv4tKciKkw3Y4jKsL7FRhaOeiPei0X9T4Jd619wHNe4xCLmN2EMgZoeGg+Q7GY7BsvwKpL22Tg==", - "cpu": [ - "ppc64" - ], - "dev": true, - "libc": [ - "glibc" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@napi-rs/nice-linux-riscv64-gnu": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-riscv64-gnu/-/nice-linux-riscv64-gnu-1.1.1.tgz", - "integrity": "sha512-HU0nw9uD4FO/oGCCk409tCi5IzIZpH2agE6nN4fqpwVlCn5BOq0MS1dXGjXaG17JaAvrlpV5ZeyZwSon10XOXw==", - "cpu": [ - "riscv64" - ], - "dev": true, - "libc": [ - "glibc" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@napi-rs/nice-linux-s390x-gnu": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-s390x-gnu/-/nice-linux-s390x-gnu-1.1.1.tgz", - "integrity": "sha512-2YqKJWWl24EwrX0DzCQgPLKQBxYDdBxOHot1KWEq7aY2uYeX+Uvtv4I8xFVVygJDgf6/92h9N3Y43WPx8+PAgQ==", - "cpu": [ - "s390x" - ], - "dev": true, - "libc": [ - "glibc" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@napi-rs/nice-linux-x64-gnu": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-x64-gnu/-/nice-linux-x64-gnu-1.1.1.tgz", - "integrity": "sha512-/gaNz3R92t+dcrfCw/96pDopcmec7oCcAQ3l/M+Zxr82KT4DljD37CpgrnXV+pJC263JkW572pdbP3hP+KjcIg==", - "cpu": [ - "x64" - ], - "dev": true, - "libc": [ - "glibc" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@napi-rs/nice-linux-x64-musl": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-x64-musl/-/nice-linux-x64-musl-1.1.1.tgz", - "integrity": "sha512-xScCGnyj/oppsNPMnevsBe3pvNaoK7FGvMjT35riz9YdhB2WtTG47ZlbxtOLpjeO9SqqQ2J2igCmz6IJOD5JYw==", - "cpu": [ - "x64" - ], - "dev": true, - "libc": [ - "musl" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@napi-rs/nice-openharmony-arm64": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@napi-rs/nice-openharmony-arm64/-/nice-openharmony-arm64-1.1.1.tgz", - "integrity": "sha512-6uJPRVwVCLDeoOaNyeiW0gp2kFIM4r7PL2MczdZQHkFi9gVlgm+Vn+V6nTWRcu856mJ2WjYJiumEajfSm7arPQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openharmony" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@napi-rs/nice-win32-arm64-msvc": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@napi-rs/nice-win32-arm64-msvc/-/nice-win32-arm64-msvc-1.1.1.tgz", - "integrity": "sha512-uoTb4eAvM5B2aj/z8j+Nv8OttPf2m+HVx3UjA5jcFxASvNhQriyCQF1OB1lHL43ZhW+VwZlgvjmP5qF3+59atA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@napi-rs/nice-win32-ia32-msvc": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@napi-rs/nice-win32-ia32-msvc/-/nice-win32-ia32-msvc-1.1.1.tgz", - "integrity": "sha512-CNQqlQT9MwuCsg1Vd/oKXiuH+TcsSPJmlAFc5frFyX/KkOh0UpBLEj7aoY656d5UKZQMQFP7vJNa1DNUNORvug==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@napi-rs/nice-win32-x64-msvc": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@napi-rs/nice-win32-x64-msvc/-/nice-win32-x64-msvc-1.1.1.tgz", - "integrity": "sha512-vB+4G/jBQCAh0jelMTY3+kgFy00Hlx2f2/1zjMoH821IbplbWZOkLiTYXQkygNTzQJTq5cvwBDgn2ppHD+bglQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@napi-rs/wasm-runtime": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.2.4.tgz", - "integrity": "sha512-AJxoUD2/15ESHbvpcyjU274nsAPLuOtPHCk0vKJM5pj//Fg/B1FXNWjPnXTT9PymCYYiHo4zPj0ZomXBKhoy7g==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "@tybys/wasm-util": "^0.10.3" - }, - "engines": { - "node": "^20.19.0 || ^22.13.0 || >=23.5.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/Brooooooklyn" - }, - "peerDependencies": { - "@emnapi/core": "^1.7.1 || ^2.0.0-alpha.4", - "@emnapi/runtime": "^1.7.1 || ^2.0.0-alpha.4" - } - }, - "node_modules/@ngneat/until-destroy": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/@ngneat/until-destroy/-/until-destroy-10.0.0.tgz", - "integrity": "sha512-xXFAabQ4YVJ82LYxdgUlaKZyR3dSbxqG3woSyaclzxfCgWMEDweCcM/GGYbNiHJa0WwklI98RXHvca+UyCxpeg==", - "dependencies": { - "tslib": "^2.3.0" - }, - "peerDependencies": { - "@angular/core": ">=13", - "rxjs": "^6.4.0 || ^7.0.0" - } - }, - "node_modules/@ngtools/webpack": { - "version": "21.2.24", - "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-21.2.24.tgz", - "integrity": "sha512-9l6pXbXUGQscJgSL1rc960tmw2c0QkNABhWyDysaKTAX3Lu/7cjEckIxZNlGsdoK/TwetC23R2CRZdbMqvGszw==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^20.19.0 || ^22.12.0 || >=24.0.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" - }, - "peerDependencies": { - "@angular/compiler-cli": "^21.0.0", - "typescript": ">=5.9 <6.0", - "webpack": "^5.54.0" - } - }, - "node_modules/@noble/hashes": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.8.0.tgz", - "integrity": "sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^14.21.3 || >=16" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/@npmcli/agent": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@npmcli/agent/-/agent-4.0.2.tgz", - "integrity": "sha512-EUEuWAxnL07Sp5/iC/1X6Xj+XThUvnbei9zfRWZdEXa7lss9RTHMhAHBeg+MZ5To9s/gGaSI+UwZTPdYMvKSeg==", - "dev": true, - "license": "ISC", - "dependencies": { - "agent-base": "^7.1.0", - "http-proxy-agent": "^7.0.0", - "https-proxy-agent": "^7.0.1", - "lru-cache": "^11.2.1", - "socks-proxy-agent": "^8.0.3" - }, - "engines": { - "node": "^20.17.0 || >=22.9.0" - } - }, - "node_modules/@npmcli/agent/node_modules/lru-cache": { - "version": "11.5.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.5.3.tgz", - "integrity": "sha512-U4N8FgzmWxc8k1VH8Kr6lQg18U7Fjvby6wXHVRX/ZZ7IwWbRMgrRbP0Wrb5q5NVinryp4SQampHKdvtecItxUg==", - "dev": true, - "license": "BlueOak-1.0.0", - "engines": { - "node": "20 || >=22" - } - }, - "node_modules/@npmcli/fs": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-5.0.0.tgz", - "integrity": "sha512-7OsC1gNORBEawOa5+j2pXN9vsicaIOH5cPXxoR6fJOmH6/EXpJB2CajXOu1fPRFun2m1lktEFX11+P89hqO/og==", - "dev": true, - "license": "ISC", - "dependencies": { - "semver": "^7.3.5" - }, - "engines": { - "node": "^20.17.0 || >=22.9.0" - } - }, - "node_modules/@npmcli/git": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-7.0.2.tgz", - "integrity": "sha512-oeolHDjExNAJAnlYP2qzNjMX/Xi9bmu78C9dIGr4xjobrSKbuMYCph8lTzn4vnW3NjIqVmw/f8BCfouqyJXlRg==", - "dev": true, - "license": "ISC", - "dependencies": { - "@gar/promise-retry": "^1.0.0", - "@npmcli/promise-spawn": "^9.0.0", - "ini": "^6.0.0", - "lru-cache": "^11.2.1", - "npm-pick-manifest": "^11.0.1", - "proc-log": "^6.0.0", - "semver": "^7.3.5", - "which": "^6.0.0" - }, - "engines": { - "node": "^20.17.0 || >=22.9.0" - } - }, - "node_modules/@npmcli/git/node_modules/isexe": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-4.0.0.tgz", - "integrity": "sha512-FFUtZMpoZ8RqHS3XeXEmHWLA4thH+ZxCv2lOiPIn1Xc7CxrqhWzNSDzD+/chS/zbYezmiwWLdQC09JdQKmthOw==", - "dev": true, - "license": "BlueOak-1.0.0", - "engines": { - "node": ">=20" - } - }, - "node_modules/@npmcli/git/node_modules/lru-cache": { - "version": "11.5.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.5.3.tgz", - "integrity": "sha512-U4N8FgzmWxc8k1VH8Kr6lQg18U7Fjvby6wXHVRX/ZZ7IwWbRMgrRbP0Wrb5q5NVinryp4SQampHKdvtecItxUg==", - "dev": true, - "license": "BlueOak-1.0.0", - "engines": { - "node": "20 || >=22" - } - }, - "node_modules/@npmcli/git/node_modules/which": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/which/-/which-6.0.1.tgz", - "integrity": "sha512-oGLe46MIrCRqX7ytPUf66EAYvdeMIZYn3WaocqqKZAxrBpkqHfL/qvTyJ/bTk5+AqHCjXmrv3CEWgy368zhRUg==", - "dev": true, - "license": "ISC", - "dependencies": { - "isexe": "^4.0.0" - }, - "bin": { - "node-which": "bin/which.js" - }, - "engines": { - "node": "^20.17.0 || >=22.9.0" - } - }, - "node_modules/@npmcli/installed-package-contents": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-4.0.0.tgz", - "integrity": "sha512-yNyAdkBxB72gtZ4GrwXCM0ZUedo9nIbOMKfGjt6Cu6DXf0p8y1PViZAKDC8q8kv/fufx0WTjRBdSlyrvnP7hmA==", - "dev": true, - "license": "ISC", - "dependencies": { - "npm-bundled": "^5.0.0", - "npm-normalize-package-bin": "^5.0.0" - }, - "bin": { - "installed-package-contents": "bin/index.js" - }, - "engines": { - "node": "^20.17.0 || >=22.9.0" - } - }, - "node_modules/@npmcli/node-gyp": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@npmcli/node-gyp/-/node-gyp-5.0.0.tgz", - "integrity": "sha512-uuG5HZFXLfyFKqg8QypsmgLQW7smiRjVc45bqD/ofZZcR/uxEjgQU8qDPv0s9TEeMUiAAU/GC5bR6++UdTirIQ==", - "dev": true, - "license": "ISC", - "engines": { - "node": "^20.17.0 || >=22.9.0" - } - }, - "node_modules/@npmcli/package-json": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/@npmcli/package-json/-/package-json-7.0.5.tgz", - "integrity": "sha512-iVuTlG3ORq2iaVa1IWUxAO/jIp77tUKBhoMjuzYW2kL4MLN1bi/ofqkZ7D7OOwh8coAx1/S2ge0rMdGv8sLSOQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "@npmcli/git": "^7.0.0", - "glob": "^13.0.0", - "hosted-git-info": "^9.0.0", - "json-parse-even-better-errors": "^5.0.0", - "proc-log": "^6.0.0", - "semver": "^7.5.3", - "spdx-expression-parse": "^4.0.0" - }, - "engines": { - "node": "^20.17.0 || >=22.9.0" - } - }, - "node_modules/@npmcli/package-json/node_modules/balanced-match": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", - "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", - "dev": true, - "license": "MIT", - "engines": { - "node": "18 || 20 || >=22" - } - }, - "node_modules/@npmcli/package-json/node_modules/brace-expansion": { - "version": "5.0.12", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.12.tgz", - "integrity": "sha512-YovQ3rzhaLMIrDjNDMkNS01tea93qhEhG5xy8f6+R0l+dw3Ki+5sCoIoI942iuLZTHWogWktgwVDhU09iNEimQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^4.0.2" - }, - "engines": { - "node": "20 || >=22" - } - }, - "node_modules/@npmcli/package-json/node_modules/glob": { - "version": "13.0.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-13.0.6.tgz", - "integrity": "sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw==", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "minimatch": "^10.2.2", - "minipass": "^7.1.3", - "path-scurry": "^2.0.2" - }, - "engines": { - "node": "18 || 20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@npmcli/package-json/node_modules/minimatch": { - "version": "10.2.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.6.tgz", - "integrity": "sha512-vpLQEs+VLCr1nU0BXS07maYoFwlDAH0gngQuuttxIwutDFEMHq2blX+8vpgxDdK3J1PwjCJiep77OitTZ4Ll1A==", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "brace-expansion": "^5.0.8" - }, - "engines": { - "node": "18 || 20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@npmcli/package-json/node_modules/spdx-expression-parse": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-4.0.0.tgz", - "integrity": "sha512-Clya5JIij/7C6bRR22+tnGXbc4VKlibKSVj2iHvVeX5iMW7s1SIQlqu699JkODJJIhh/pUu8L0/VLh8xflD+LQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/@npmcli/promise-spawn": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-9.0.1.tgz", - "integrity": "sha512-OLUaoqBuyxeTqUvjA3FZFiXUfYC1alp3Sa99gW3EUDz3tZ3CbXDdcZ7qWKBzicrJleIgucoWamWH1saAmH/l2Q==", - "dev": true, - "license": "ISC", - "dependencies": { - "which": "^6.0.0" - }, - "engines": { - "node": "^20.17.0 || >=22.9.0" - } - }, - "node_modules/@npmcli/promise-spawn/node_modules/isexe": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-4.0.0.tgz", - "integrity": "sha512-FFUtZMpoZ8RqHS3XeXEmHWLA4thH+ZxCv2lOiPIn1Xc7CxrqhWzNSDzD+/chS/zbYezmiwWLdQC09JdQKmthOw==", - "dev": true, - "license": "BlueOak-1.0.0", - "engines": { - "node": ">=20" - } - }, - "node_modules/@npmcli/promise-spawn/node_modules/which": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/which/-/which-6.0.1.tgz", - "integrity": "sha512-oGLe46MIrCRqX7ytPUf66EAYvdeMIZYn3WaocqqKZAxrBpkqHfL/qvTyJ/bTk5+AqHCjXmrv3CEWgy368zhRUg==", - "dev": true, - "license": "ISC", - "dependencies": { - "isexe": "^4.0.0" - }, - "bin": { - "node-which": "bin/which.js" - }, - "engines": { - "node": "^20.17.0 || >=22.9.0" - } - }, - "node_modules/@npmcli/redact": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@npmcli/redact/-/redact-4.0.0.tgz", - "integrity": "sha512-gOBg5YHMfZy+TfHArfVogwgfBeQnKbbGo3pSUyK/gSI0AVu+pEiDVcKlQb0D8Mg1LNRZILZ6XG8I5dJ4KuAd9Q==", - "dev": true, - "license": "ISC", - "engines": { - "node": "^20.17.0 || >=22.9.0" - } - }, - "node_modules/@npmcli/run-script": { - "version": "10.0.4", - "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-10.0.4.tgz", - "integrity": "sha512-mGUWr1uMnf0le2TwfOZY4SFxZGXGfm4Jtay/nwAa2FLNAKXUoUwaGwBMNH36UHPtinWfTSJ3nqFQr0091CxVGg==", - "dev": true, - "license": "ISC", - "dependencies": { - "@npmcli/node-gyp": "^5.0.0", - "@npmcli/package-json": "^7.0.0", - "@npmcli/promise-spawn": "^9.0.0", - "node-gyp": "^12.1.0", - "proc-log": "^6.0.0" - }, - "engines": { - "node": "^20.17.0 || >=22.9.0" - } - }, - "node_modules/@oxc-project/types": { - "version": "0.113.0", - "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.113.0.tgz", - "integrity": "sha512-Tp3XmgxwNQ9pEN9vxgJBAqdRamHibi76iowQ38O2I4PMpcvNRQNVsU2n1x1nv9yh0XoTrGFzf7cZSGxmixxrhA==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/Boshen" - } - }, - "node_modules/@parcel/watcher": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.6.0.tgz", - "integrity": "sha512-7FNeNl8NCE7aINx7WXiKQrPYZWC/hvrTsmk6zmxbI7LTXE7hVek/n8AfVgpe2y82zl3w0HvCHN0bVKMBoJcC0w==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "optional": true, - "dependencies": { - "detect-libc": "^2.0.3", - "is-glob": "^4.0.3", - "node-addon-api": "^7.0.0", - "picomatch": "^4.0.4" - }, - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - }, - "optionalDependencies": { - "@parcel/watcher-android-arm64": "2.6.0", - "@parcel/watcher-darwin-arm64": "2.6.0", - "@parcel/watcher-darwin-x64": "2.6.0", - "@parcel/watcher-freebsd-x64": "2.6.0", - "@parcel/watcher-linux-arm-glibc": "2.6.0", - "@parcel/watcher-linux-arm-musl": "2.6.0", - "@parcel/watcher-linux-arm64-glibc": "2.6.0", - "@parcel/watcher-linux-arm64-musl": "2.6.0", - "@parcel/watcher-linux-x64-glibc": "2.6.0", - "@parcel/watcher-linux-x64-musl": "2.6.0", - "@parcel/watcher-win32-arm64": "2.6.0", - "@parcel/watcher-win32-x64": "2.6.0" - } - }, - "node_modules/@parcel/watcher-android-arm64": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.6.0.tgz", - "integrity": "sha512-trgpLSCKRC/huFjXX/Smh+0sWe4+YtKfktIToiMl59ghz7z+qkH6kMvNnUbLyRs9N11t8l4svSCs1+5B3rOAhA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-darwin-arm64": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.6.0.tgz", - "integrity": "sha512-Y3QV0gl7Q1zbfueunkWIERICbEojQFCgpyG7YqOGNFLsckXyI1xu9mAIUpKY9QBYzBtSkN8dBPwd3yiAO9ovMw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-darwin-x64": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.6.0.tgz", - "integrity": "sha512-Ohv6OpzhUfKYD7Beb8kDvG0jbIxORCYY1JRdZnaBtnjjkJxgD7ZVL0nw2sCYd0yTMKTvz3nnTnOF3cDifK+kvw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-freebsd-x64": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.6.0.tgz", - "integrity": "sha512-5HmXvDgs8VK+74jF9y9/2FE3/OnlcKmc56tjmSrEuZjpSZOGL+fvAu+HKJBdPs9uwoP2hE6TlSUpXZ/C5jUFmQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-linux-arm-glibc": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.6.0.tgz", - "integrity": "sha512-Ps/hui3A+vMbjdqlqAowK2ZL8+BO8dBjxeWXj6npTBs3jx4wWmbPpaLuqwrQrSqIVMCnpWo238bJ1U37GhQOYg==", - "cpu": [ - "arm" - ], - "dev": true, - "libc": [ - "glibc" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-linux-arm-musl": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.6.0.tgz", - "integrity": "sha512-9c6AUHgHoG+IY88MRIHupztQiQnrbqHYQjkM2btA+Bf/wQnQMuiD0Wfk1EVv3TlNT3x41uU71rn6E4xh/+zvkw==", - "cpu": [ - "arm" - ], - "dev": true, - "libc": [ - "musl" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-linux-arm64-glibc": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.6.0.tgz", - "integrity": "sha512-yHRqS2owEXe6Hic9z6Mh1ECsCd+ODVOGvZDyciqRd21+v+o+DnXMOrw50DSpIG2sb8GPEaPPmfeCAWKPJdq46g==", - "cpu": [ - "arm64" - ], - "dev": true, - "libc": [ - "glibc" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-linux-arm64-musl": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.6.0.tgz", - "integrity": "sha512-WhB2e/V7rqdHHWZusBSPuy5Ei8S6lSz6FE5TKKQz5h3a0O+C+mhY7vxU9b/stqvMb8beLnPY82ZrFTLKs+SrKA==", - "cpu": [ - "arm64" - ], - "dev": true, - "libc": [ - "musl" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-linux-x64-glibc": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.6.0.tgz", - "integrity": "sha512-ulGE6x6Oz6iAwg75T8YQSoguBWasniIbX+QWpaYPcCnDOpdWX3k+4xbEYPZVLxOuoJI+svJJPD3sEj8G7lrQ3A==", - "cpu": [ - "x64" - ], - "dev": true, - "libc": [ - "glibc" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-linux-x64-musl": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.6.0.tgz", - "integrity": "sha512-tkBYKt7YQrjIJWYDnto2YgO8MRkjlMTSNoRHzsXinBqbLdeOM3L32wPZJvIZxqaLMfSlS/4sUjH/6STVP/XDLw==", - "cpu": [ - "x64" - ], - "dev": true, - "libc": [ - "musl" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-win32-arm64": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.6.0.tgz", - "integrity": "sha512-gIZAP23jaHjGWasY/TY6yL7NHFClf0Ga7FN+iINvk+KN94rhm94lYZhFsbYFNcA04/onvGD9kKmiJLJB2HbNwQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-win32-x64": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.6.0.tgz", - "integrity": "sha512-cA+/pXV2YkfxlIcXOQ5fSWqAzzPyD78/x5qbK/I0vUkrlYHA8TIz+MXjAbGouguKVSI4bOmkTSJ1/poVSsgt+A==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher/node_modules/node-addon-api": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz", - "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==", - "dev": true, - "license": "MIT", - "optional": true - }, - "node_modules/@peculiar/asn1-cms": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-cms/-/asn1-cms-2.10.0.tgz", - "integrity": "sha512-CkX0H4NCIOMHOU3rh2xXZywinYZ/EnJlaOlJiGI0e5L4XjFqHf4iH30LMbXWChVppdA9ljbanjtzQFOhDNfTWg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@peculiar/asn1-schema": "^2.10.0", - "@peculiar/asn1-x509": "^2.10.0", - "@peculiar/asn1-x509-attr": "^2.10.0", - "asn1js": "^3.0.10", - "tslib": "^2.8.1" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@peculiar/asn1-csr": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-csr/-/asn1-csr-2.10.0.tgz", - "integrity": "sha512-jTPTr/9rxKM+niQLMF3jiAMb0lWHUhUHIuSOhdGCIfpB4FAQYf9SoiXOgxP8bS/68IB+bj+1OHvVnDVCQfVUZw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@peculiar/asn1-schema": "^2.10.0", - "@peculiar/asn1-x509": "^2.10.0", - "asn1js": "^3.0.10", - "tslib": "^2.8.1" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@peculiar/asn1-ecc": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-ecc/-/asn1-ecc-2.10.0.tgz", - "integrity": "sha512-GFd3iOjFrWX+QWH2R2dO5QSJyyRGv9CIBKtRlGlPNCvb2RvmCbBDexe91MJgV76c69d998Xsa+CvuQ98seoiPg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@peculiar/asn1-schema": "^2.10.0", - "@peculiar/asn1-x509": "^2.10.0", - "asn1js": "^3.0.10", - "tslib": "^2.8.1" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@peculiar/asn1-pfx": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-pfx/-/asn1-pfx-2.10.0.tgz", - "integrity": "sha512-1y3QK9ZH1IPleAMmRoJlPS10eGkAWnULETW8zDFNUK1ffqpG7zmDY+kYBMYQgwlcQZ2iitLm2z2EBP0xzRXpaA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@peculiar/asn1-cms": "^2.10.0", - "@peculiar/asn1-pkcs8": "^2.10.0", - "@peculiar/asn1-rsa": "^2.10.0", - "@peculiar/asn1-schema": "^2.10.0", - "asn1js": "^3.0.10", - "tslib": "^2.8.1" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@peculiar/asn1-pkcs8": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-pkcs8/-/asn1-pkcs8-2.10.0.tgz", - "integrity": "sha512-Ri+BZT9bnwqlHWmhs7lvWjvJRxKev2hA2+4EbZajgeYWCbR8hyv0znF4DhsFouOhMj2nSDV/iGJ6DMQtwITnCw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@peculiar/asn1-schema": "^2.10.0", - "@peculiar/asn1-x509": "^2.10.0", - "asn1js": "^3.0.10", - "tslib": "^2.8.1" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@peculiar/asn1-pkcs9": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-pkcs9/-/asn1-pkcs9-2.10.0.tgz", - "integrity": "sha512-XIXsbDQFezYk6fudczkuvawkRD4GNpISGCqfYhdkJlvcGF/RFknU+0DDJagOaJqBf+PdPzk4J9oMqDGcvfR9HQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@peculiar/asn1-cms": "^2.10.0", - "@peculiar/asn1-pfx": "^2.10.0", - "@peculiar/asn1-pkcs8": "^2.10.0", - "@peculiar/asn1-schema": "^2.10.0", - "@peculiar/asn1-x509": "^2.10.0", - "@peculiar/asn1-x509-attr": "^2.10.0", - "asn1js": "^3.0.10", - "tslib": "^2.8.1" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@peculiar/asn1-rsa": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-rsa/-/asn1-rsa-2.10.0.tgz", - "integrity": "sha512-4Jvmwlh3gZAhNZ4/u7JSyLuce9hofOFZ4o3PYKAccCImGnyaT5CMym/ATgvAvqpOYFNW531oPZvJlEBhJy9VfA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@peculiar/asn1-schema": "^2.10.0", - "@peculiar/asn1-x509": "^2.10.0", - "asn1js": "^3.0.10", - "tslib": "^2.8.1" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@peculiar/asn1-schema": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-schema/-/asn1-schema-2.10.0.tgz", - "integrity": "sha512-GhokD41lV4gQrrLYm3wCkHfBOnJrnhDMgt4XeMW8gzfE1UdJqIuSwsE+ggf82XBjUXRJylcm+KIGQFa4utIVLw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@peculiar/utils": "^2.0.2", - "asn1js": "^3.0.10", - "tslib": "^2.8.1" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@peculiar/asn1-x509": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-x509/-/asn1-x509-2.10.0.tgz", - "integrity": "sha512-ucNVg8+ANveTpMN3fy9lA2alryONdXc2A4cEG2hMniWbvQt+YOZoe8BI80YYNO8FBcuDY1qbDQ4uQGQVraHxGA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@peculiar/asn1-schema": "^2.10.0", - "@peculiar/utils": "^2.0.2", - "asn1js": "^3.0.10", - "tslib": "^2.8.1" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@peculiar/asn1-x509-attr": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-x509-attr/-/asn1-x509-attr-2.10.0.tgz", - "integrity": "sha512-/85GtKOKmgvuSJNlaFfwGWNdRSZZ+hpF02NyM01XiCdzpaZONiBltDyfluFPvFx966CR+ZHNSG1jniwpy07oGg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@peculiar/asn1-schema": "^2.10.0", - "@peculiar/asn1-x509": "^2.10.0", - "asn1js": "^3.0.10", - "tslib": "^2.8.1" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@peculiar/utils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@peculiar/utils/-/utils-2.0.3.tgz", - "integrity": "sha512-+oL3HPFRIZ1St2K50lWCXiioIgSoxzz7R1J3uF6neO2yl1sgmpgY6XXJH4BdpoDkMWznQTeYF6oWNDZLCdQ4eQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "tslib": "^2.8.1" - } - }, - "node_modules/@peculiar/x509": { - "version": "1.14.3", - "resolved": "https://registry.npmjs.org/@peculiar/x509/-/x509-1.14.3.tgz", - "integrity": "sha512-C2Xj8FZ0uHWeCXXqX5B4/gVFQmtSkiuOolzAgutjTfseNOHT3pUjljDZsTSxXFGgio54bCzVFqmEOUrIVk8RDA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@peculiar/asn1-cms": "^2.6.0", - "@peculiar/asn1-csr": "^2.6.0", - "@peculiar/asn1-ecc": "^2.6.0", - "@peculiar/asn1-pkcs9": "^2.6.0", - "@peculiar/asn1-rsa": "^2.6.0", - "@peculiar/asn1-schema": "^2.6.0", - "@peculiar/asn1-x509": "^2.6.0", - "pvtsutils": "^1.3.6", - "reflect-metadata": "^0.2.2", - "tslib": "^2.8.1", - "tsyringe": "^4.10.0" - }, - "engines": { - "node": ">=20.0.0" - } - }, - "node_modules/@rolldown/binding-android-arm64": { - "version": "1.0.0-rc.4", - "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.0.0-rc.4.tgz", - "integrity": "sha512-vRq9f4NzvbdZavhQbjkJBx7rRebDKYR9zHfO/Wg486+I7bSecdUapzCm5cyXoK+LHokTxgSq7A5baAXUZkIz0w==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-darwin-arm64": { - "version": "1.0.0-rc.4", - "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.0.0-rc.4.tgz", - "integrity": "sha512-kFgEvkWLqt3YCgKB5re9RlIrx9bRsvyVUnaTakEpOPuLGzLpLapYxE9BufJNvPg8GjT6mB1alN4yN1NjzoeM8Q==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-darwin-x64": { - "version": "1.0.0-rc.4", - "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.0.0-rc.4.tgz", - "integrity": "sha512-JXmaOJGsL/+rsmMfutcDjxWM2fTaVgCHGoXS7nE8Z3c9NAYjGqHvXrAhMUZvMpHS/k7Mg+X7n/MVKb7NYWKKww==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-freebsd-x64": { - "version": "1.0.0-rc.4", - "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.0.0-rc.4.tgz", - "integrity": "sha512-ep3Catd6sPnHTM0P4hNEvIv5arnDvk01PfyJIJ+J3wVCG1eEaPo09tvFqdtcaTrkwQy0VWR24uz+cb4IsK53Qw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-linux-arm-gnueabihf": { - "version": "1.0.0-rc.4", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.0.0-rc.4.tgz", - "integrity": "sha512-LwA5ayKIpnsgXJEwWc3h8wPiS33NMIHd9BhsV92T8VetVAbGe2qXlJwNVDGHN5cOQ22R9uYvbrQir2AB+ntT2w==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-linux-arm64-gnu": { - "version": "1.0.0-rc.4", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.0.0-rc.4.tgz", - "integrity": "sha512-AC1WsGdlV1MtGay/OQ4J9T7GRadVnpYRzTcygV1hKnypbYN20Yh4t6O1Sa2qRBMqv1etulUknqXjc3CTIsBu6A==", - "cpu": [ - "arm64" - ], - "dev": true, - "libc": [ - "glibc" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-linux-arm64-musl": { - "version": "1.0.0-rc.4", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.0.0-rc.4.tgz", - "integrity": "sha512-lU+6rgXXViO61B4EudxtVMXSOfiZONR29Sys5VGSetUY7X8mg9FCKIIjcPPj8xNDeYzKl+H8F/qSKOBVFJChCQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "libc": [ - "musl" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-linux-x64-gnu": { - "version": "1.0.0-rc.4", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.0.0-rc.4.tgz", - "integrity": "sha512-DZaN1f0PGp/bSvKhtw50pPsnln4T13ycDq1FrDWRiHmWt1JeW+UtYg9touPFf8yt993p8tS2QjybpzKNTxYEwg==", - "cpu": [ - "x64" - ], - "dev": true, - "libc": [ - "glibc" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-linux-x64-musl": { - "version": "1.0.0-rc.4", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.0.0-rc.4.tgz", - "integrity": "sha512-RnGxwZLN7fhMMAItnD6dZ7lvy+TI7ba+2V54UF4dhaWa/p8I/ys1E73KO6HmPmgz92ZkfD8TXS1IMV8+uhbR9g==", - "cpu": [ - "x64" - ], - "dev": true, - "libc": [ - "musl" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-openharmony-arm64": { - "version": "1.0.0-rc.4", - "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.0.0-rc.4.tgz", - "integrity": "sha512-6lcI79+X8klGiGd8yHuTgQRjuuJYNggmEml+RsyN596P23l/zf9FVmJ7K0KVKkFAeYEdg0iMUKyIxiV5vebDNQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openharmony" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-wasm32-wasi": { - "version": "1.0.0-rc.4", - "resolved": "https://registry.npmjs.org/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.0.0-rc.4.tgz", - "integrity": "sha512-wz7ohsKCAIWy91blZ/1FlpPdqrsm1xpcEOQVveWoL6+aSPKL4VUcoYmmzuLTssyZxRpEwzuIxL/GDsvpjaBtOw==", - "cpu": [ - "wasm32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "@napi-rs/wasm-runtime": "^1.1.1" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@rolldown/binding-win32-arm64-msvc": { - "version": "1.0.0-rc.4", - "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.0.0-rc.4.tgz", - "integrity": "sha512-cfiMrfuWCIgsFmcVG0IPuO6qTRHvF7NuG3wngX1RZzc6dU8FuBFb+J3MIR5WrdTNozlumfgL4cvz+R4ozBCvsQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-win32-x64-msvc": { - "version": "1.0.0-rc.4", - "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.0.0-rc.4.tgz", - "integrity": "sha512-p6UeR9y7ht82AH57qwGuFYn69S6CZ7LLKdCKy/8T3zS9VTrJei2/CGsTUV45Da4Z9Rbhc7G4gyWQ/Ioamqn09g==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/pluginutils": { - "version": "1.0.0-rc.4", - "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-rc.4.tgz", - "integrity": "sha512-1BrrmTu0TWfOP1riA8uakjFc9bpIUGzVKETsOtzY39pPga8zELGDl8eu1Dx7/gjM5CAz14UknsUMpBO8L+YntQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/@rollup/plugin-json": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@rollup/plugin-json/-/plugin-json-6.1.0.tgz", - "integrity": "sha512-EGI2te5ENk1coGeADSIwZ7G2Q8CJS2sF120T7jLw4xFw9n7wIOXHo+kIYRAoVpJAN+kmqZSoO3Fp4JtoNF4ReA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@rollup/pluginutils": "^5.1.0" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" - }, - "peerDependenciesMeta": { - "rollup": { - "optional": true - } - } - }, - "node_modules/@rollup/pluginutils": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.4.0.tgz", - "integrity": "sha512-MfPp06CjRLfXQ3wY0R8vJDYBy/MvVcc9OulEfR0B8Iv9ko+GCNaRZ+EpJYFl27LhKsZK0o420sYCRHCjfCgeUg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0", - "estree-walker": "^2.0.2", - "picomatch": "^4.0.2" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" - }, - "peerDependenciesMeta": { - "rollup": { - "optional": true - } - } - }, - "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.64.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.64.0.tgz", - "integrity": "sha512-FLLpX941CD/7aBvX3GqLGBM9OvY5PGXTryPJkG5r5/OuBpZpV5k45Uo3RxAvqd35tsyc3hH1bhtz921IKzoIzg==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@rollup/rollup-android-arm64": { - "version": "4.64.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.64.0.tgz", - "integrity": "sha512-iI32XM/jnDYJsvx5ai/za/7gWO9XoSeFFtU06/ZCaRgyilfJOjaopD3nOpk2WrTCGOyeDt4hleUiGOAnd5tHNg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.64.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.64.0.tgz", - "integrity": "sha512-dRBZlbt2sEtF8Mn4MODThze9fIPdDoOhVSlXMAKy5dQbOYK9pOOoPY4Fat3OTtr0+8zbJo5TTZwlsfxY/kDNJg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.64.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.64.0.tgz", - "integrity": "sha512-Y3whrJOMucfkhgNkvcM93M6j8C53iEAMmPMYD99C6G1kUy4ELigLWk9ar2/4aCBSRgsql0zdlOemLgW2m5GZgQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.64.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.64.0.tgz", - "integrity": "sha512-S6S1GEzPjFF6IONYJX3AKt/799+8RgBgCcwRnUo+Ep1IvBxUbw5M51iU0TDdK2NWWVnSvCQ8yi6Em0fGASMOng==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ] - }, - "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.64.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.64.0.tgz", - "integrity": "sha512-Ed1DPoFENkXj4IGzSB12SesV40iP6LxCCrbTIkSGIQBpOOxpBM+0kj62lmaeIHfMWTDoddqTOtqc7s8LYfn+Pw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ] - }, - "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.64.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.64.0.tgz", - "integrity": "sha512-J/6xhutJPtFyIkmHdf4olOdHHKH5kOJNumojdWn+Elv5ICEYTVOa362Vw27TxsK0BLzb1le3EDlO3UbvFK1lnQ==", - "cpu": [ - "arm" - ], - "dev": true, - "libc": [ - "glibc" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.64.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.64.0.tgz", - "integrity": "sha512-G4L/Nnx59d2LvDoV/P4S5lZ7oVLT6hodOHMacqjiq2LL2gts86KbkEBTYL53+fBt0odhf7XPIbIATGoYiJctxg==", - "cpu": [ - "arm" - ], - "dev": true, - "libc": [ - "musl" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.64.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.64.0.tgz", - "integrity": "sha512-zF16pvJDEUksGYRbfnXne7pdklAyj2XDmJeYKgP93oq0cUyX9Y8O7lUo1R+IY1GagP/YBvCEDCe7eEcAKpw//g==", - "cpu": [ - "arm64" - ], - "dev": true, - "libc": [ - "glibc" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.64.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.64.0.tgz", - "integrity": "sha512-nIggWn8n+w12+R5lsV+PYYoUY8vuObxPAQqJI7WES+9v0qspYuAHoZMfYM0yLxlipasT5BY9ht5W8t5c/rSCkg==", - "cpu": [ - "arm64" - ], - "dev": true, - "libc": [ - "musl" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-loong64-gnu": { - "version": "4.64.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.64.0.tgz", - "integrity": "sha512-WLOTiHPzszP0dxIMsHpFeDSOSB5I49Mj8K4+yKE3H1X/D0JRG5XZ5jrctJLMjnUc/LUzaKiwq6EHWNJ8pup8PA==", - "cpu": [ - "loong64" - ], - "dev": true, - "libc": [ - "glibc" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-loong64-musl": { - "version": "4.64.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.64.0.tgz", - "integrity": "sha512-35RK9aRhh7g7Pmeu5gQ01aCvrhXzj9LoBE6xtUcEH1ns+nyTaSzxSpADmBQINu4QiTDGvmQYwo1j5hlg1rRXFw==", - "cpu": [ - "loong64" - ], - "dev": true, - "libc": [ - "musl" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-ppc64-gnu": { - "version": "4.64.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.64.0.tgz", - "integrity": "sha512-RqTfnpoTjuWfPAmqK5p2edt2AMCDJWm6oTn7sKfmyx+6tRga0ip05SJ977o6udTcIiDeF/CJMUfkaN4gtWt6Aw==", - "cpu": [ - "ppc64" - ], - "dev": true, - "libc": [ - "glibc" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-ppc64-musl": { - "version": "4.64.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.64.0.tgz", - "integrity": "sha512-RQjZPigjxFvFZDijG6rjlSXxhRaTf9zLYVpGK+lVcga64oMqP1GbgVqCb46eHTTceSIgp89Ja0y5aPe3GFBYHg==", - "cpu": [ - "ppc64" - ], - "dev": true, - "libc": [ - "musl" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.64.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.64.0.tgz", - "integrity": "sha512-tjL58mgQcTRnDRpeky+Sth1MKQeYi2Ct6r3Luq9E5aTSjnM/i/JbozqZkKqp9thM5+oDSZxo+05f9kdQedfTGA==", - "cpu": [ - "riscv64" - ], - "dev": true, - "libc": [ - "glibc" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-riscv64-musl": { - "version": "4.64.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.64.0.tgz", - "integrity": "sha512-ictoRyVaoZ8C67myHef+8hhCa6IplXJJ/xUCkVCxziV4zxMZh+jvhkhGsPBLqj1S72fnqD0QH5zL4lcaa4X7DQ==", - "cpu": [ - "riscv64" - ], - "dev": true, - "libc": [ - "musl" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.64.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.64.0.tgz", - "integrity": "sha512-8aVvZ2hfr9RLFzBQkQNmYeHLDja8fLeQAmLt757zdKN/B+8L809KlLJKctQjS22wZotptV8G6o7fVPuAs8S1tQ==", - "cpu": [ - "s390x" - ], - "dev": true, - "libc": [ - "glibc" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.64.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.64.0.tgz", - "integrity": "sha512-2dEF8GAcDKwshUfydD+GhosppNyBzhVUHkdFF3CXd3FpOkzj/RZzF5aoEtzklujklT5qFVRU2GK/cFeLaTNKVg==", - "cpu": [ - "x64" - ], - "dev": true, - "libc": [ - "glibc" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.64.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.64.0.tgz", - "integrity": "sha512-3XHTvoo2hKkh0MiOfS7SkhHjMaaWF7P4F3drocZZaho/Z8w7h/jpnuBHm91BOQLfvrKHs1yR+zir4E8RI3XzTQ==", - "cpu": [ - "x64" - ], - "dev": true, - "libc": [ - "musl" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-openbsd-x64": { - "version": "4.64.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.64.0.tgz", - "integrity": "sha512-HKtkzodL4a3KFWDXDoO61cRynAWTR3LnAE0oGtfG9lcNFpNuVYUFOByxDgNqEvic9rvaQbAj+SFwTEWDptRaIw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ] - }, - "node_modules/@rollup/rollup-openharmony-arm64": { - "version": "4.64.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.64.0.tgz", - "integrity": "sha512-JBsxqiY16uyyCujtoC3s7zL+SrYyNElptD7K4V+KUoJ2V8/XG3hPWpheK+SuPwNh1cikJvIZmIdsrYXvD6PLJw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openharmony" - ] - }, - "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.64.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.64.0.tgz", - "integrity": "sha512-S5Qrijh37qhnUYQ0ay8WN3LuWeKjow7wTUyCOPMZtnXiBXYXdsZETI6ZLfYnQAKovltckPLBFdNeD61P2rJc7g==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.64.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.64.0.tgz", - "integrity": "sha512-zbZ6iMmLFEsCtTdc2/y1F/cDFVNNCPF7Ae8PCT/wdPE//hGwYp6r+MyCLMFX+kOeIe09Pz6ASfnnfpSTN1FJQQ==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-x64-gnu": { - "version": "4.64.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.64.0.tgz", - "integrity": "sha512-L6Hw69oNpuYaOr1zCG30v0/DqKYCSRwodPGwIcVZ/6f8SOzq9rxtL/xNVI5MO4wjli+Ko0ErK9uHJL3mNPt8wQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.64.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.64.0.tgz", - "integrity": "sha512-nl+CTWIgOGszQmUz/kanfgrfFZ4qiwxKIfT/ryl3N3Ewk5tqizmYtNXiqb7Bu/fDtNgu1kyxdFiAUJNur3iysg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/wasm-node": { - "version": "4.64.0", - "resolved": "https://registry.npmjs.org/@rollup/wasm-node/-/wasm-node-4.64.0.tgz", - "integrity": "sha512-Z/de+MVpPvzOf55PE1oihpipLVt1VFP/OmtZvKQtsWaxatzqpQ2CfvFgVkQ/QaZ5TAMO+Taed2gpbBfzmM+wFQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/estree": "1.0.9" - }, - "bin": { - "rollup": "dist/bin/rollup" - }, - "engines": { - "node": ">=18.0.0", - "npm": ">=8.0.0" - }, - "optionalDependencies": { - "@napi-rs/lzma-linux-x64-gnu": "1.5.1", - "fsevents": "~2.3.2" - } - }, - "node_modules/@schematics/angular": { - "version": "21.2.24", - "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-21.2.24.tgz", - "integrity": "sha512-eGBr4Yhg/A8Lt8QGtWxmXAyKboX8QBwbDG1hSyApQfHAh9iNFbV7mgWSmk0qPWvRJM38s0t3EEkEg79QZ98dWQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@angular-devkit/core": "21.2.24", - "@angular-devkit/schematics": "21.2.24", - "jsonc-parser": "3.3.1" - }, - "engines": { - "node": "^20.19.0 || ^22.12.0 || >=24.0.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" - } - }, - "node_modules/@schematics/angular/node_modules/@angular-devkit/core": { - "version": "21.2.24", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-21.2.24.tgz", - "integrity": "sha512-QLYLd6OcfQS5qWTlzG1/d8lFTcJDFcsY6sOaGVtrruYiDxrbeM2iJttoIoKzvbNPROFyo3fANVQJOVhytpXWPg==", - "dev": true, - "license": "MIT", - "dependencies": { - "ajv": "8.18.0", - "ajv-formats": "3.0.1", - "jsonc-parser": "3.3.1", - "picomatch": "4.0.4", - "rxjs": "7.8.2", - "source-map": "0.7.6" - }, - "engines": { - "node": "^20.19.0 || ^22.12.0 || >=24.0.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" - }, - "peerDependencies": { - "chokidar": "^5.0.0" - }, - "peerDependenciesMeta": { - "chokidar": { - "optional": true - } - } - }, - "node_modules/@schematics/angular/node_modules/@angular-devkit/schematics": { - "version": "21.2.24", - "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-21.2.24.tgz", - "integrity": "sha512-mLOme2vfbLrHFmMyM6ybPuGCnCvPiemXWdHnptY2Q7Hzum72DabfgtTNsrMcI2F5zrQV2DDQunNjC5cXqtq4/w==", - "dev": true, - "license": "MIT", - "dependencies": { - "@angular-devkit/core": "21.2.24", - "jsonc-parser": "3.3.1", - "magic-string": "0.30.21", - "ora": "9.3.0", - "rxjs": "7.8.2" - }, - "engines": { - "node": "^20.19.0 || ^22.12.0 || >=24.0.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" - } - }, - "node_modules/@schematics/angular/node_modules/ajv": { - "version": "8.18.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.18.0.tgz", - "integrity": "sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==", - "dev": true, - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.3", - "fast-uri": "^3.0.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/@schematics/angular/node_modules/ajv-formats": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-3.0.1.tgz", - "integrity": "sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ajv": "^8.0.0" - }, - "peerDependencies": { - "ajv": "^8.0.0" - }, - "peerDependenciesMeta": { - "ajv": { - "optional": true - } - } - }, - "node_modules/@schematics/angular/node_modules/ansi-regex": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.4.0.tgz", - "integrity": "sha512-KzTVk2tCWAHtYrvvvaP8bJKJq2pVinhLcGEQdtLIYPbmNGNyYe8QwNaTUYQp2J7/vIsUKt5QCqAfUkYyG9DkOw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/@schematics/angular/node_modules/chalk": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.6.2.tgz", - "integrity": "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.17.0 || ^14.13 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@schematics/angular/node_modules/cli-cursor": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-5.0.0.tgz", - "integrity": "sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==", - "dev": true, - "license": "MIT", - "dependencies": { - "restore-cursor": "^5.0.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@schematics/angular/node_modules/cli-spinners": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-3.4.0.tgz", - "integrity": "sha512-bXfOC4QcT1tKXGorxL3wbJm6XJPDqEnij2gQ2m7ESQuE+/z9YFIWnl/5RpTiKWbMq3EVKR4fRLJGn6DVfu0mpw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@schematics/angular/node_modules/is-interactive": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-2.0.0.tgz", - "integrity": "sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@schematics/angular/node_modules/is-unicode-supported": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-2.1.0.tgz", - "integrity": "sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@schematics/angular/node_modules/log-symbols": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-7.0.1.tgz", - "integrity": "sha512-ja1E3yCr9i/0hmBVaM0bfwDjnGy8I/s6PP4DFp+yP+a+mrHO4Rm7DtmnqROTUkHIkqffC84YY7AeqX6oFk0WFg==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-unicode-supported": "^2.0.0", - "yoctocolors": "^2.1.1" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@schematics/angular/node_modules/onetime": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-7.0.0.tgz", - "integrity": "sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "mimic-function": "^5.0.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@schematics/angular/node_modules/ora": { - "version": "9.3.0", - "resolved": "https://registry.npmjs.org/ora/-/ora-9.3.0.tgz", - "integrity": "sha512-lBX72MWFduWEf7v7uWf5DHp9Jn5BI8bNPGuFgtXMmr2uDz2Gz2749y3am3agSDdkhHPHYmmxEGSKH85ZLGzgXw==", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^5.6.2", - "cli-cursor": "^5.0.0", - "cli-spinners": "^3.2.0", - "is-interactive": "^2.0.0", - "is-unicode-supported": "^2.1.0", - "log-symbols": "^7.0.1", - "stdin-discarder": "^0.3.1", - "string-width": "^8.1.0" - }, - "engines": { - "node": ">=20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@schematics/angular/node_modules/restore-cursor": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-5.1.0.tgz", - "integrity": "sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==", - "dev": true, - "license": "MIT", - "dependencies": { - "onetime": "^7.0.0", - "signal-exit": "^4.1.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@schematics/angular/node_modules/rxjs": { - "version": "7.8.2", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.2.tgz", - "integrity": "sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "tslib": "^2.1.0" - } - }, - "node_modules/@schematics/angular/node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@schematics/angular/node_modules/source-map": { - "version": "0.7.6", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.6.tgz", - "integrity": "sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">= 12" - } - }, - "node_modules/@schematics/angular/node_modules/string-width": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-8.3.0.tgz", - "integrity": "sha512-ZbmZM0JCihQN91dWnxoipT2KOEyHqEyfRXUyjuRhW8b/xnqPDoq4gWEVApTVa9db2wN8mmoikgFBbjh71+cGeQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "get-east-asian-width": "^1.5.0", - "strip-ansi": "^7.1.2" - }, - "engines": { - "node": ">=20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@schematics/angular/node_modules/strip-ansi": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz", - "integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^6.2.2" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/@sigstore/bundle": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@sigstore/bundle/-/bundle-4.0.0.tgz", - "integrity": "sha512-NwCl5Y0V6Di0NexvkTqdoVfmjTaQwoLM236r89KEojGmq/jMls8S+zb7yOwAPdXvbwfKDlP+lmXgAL4vKSQT+A==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@sigstore/protobuf-specs": "^0.5.0" - }, - "engines": { - "node": "^20.17.0 || >=22.9.0" - } - }, - "node_modules/@sigstore/core": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/@sigstore/core/-/core-3.2.1.tgz", - "integrity": "sha512-qRsxPnCrbC/puegGxKuynfnxgLiHqWStrSjxkoB4YKqq3Z3s4cyZyj42ZdWFAEblNP65C+rBH8EuREHIXoi83g==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^20.17.0 || >=22.9.0" - } - }, - "node_modules/@sigstore/protobuf-specs": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/@sigstore/protobuf-specs/-/protobuf-specs-0.5.2.tgz", - "integrity": "sha512-SQqvFMt4V78fdjcDdYX6HbiVSOR4QK3ZgwCa2KOsopAgPIHy1rU5UDUmzLl02r5oyyaYcYHR1hpwDRk/yUe+Mw==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^18.17.0 || >=20.5.0" - } - }, - "node_modules/@sigstore/sign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/@sigstore/sign/-/sign-4.1.1.tgz", - "integrity": "sha512-Hf4xglukg0XXQ2RiD5vSoLjdPe8OBUPA8XeVjUObheuDcWdYWrnH/BNmxZCzkAy68MzmNCxXLeurJvs6hcP2OQ==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@gar/promise-retry": "^1.0.2", - "@sigstore/bundle": "^4.0.0", - "@sigstore/core": "^3.2.0", - "@sigstore/protobuf-specs": "^0.5.0", - "make-fetch-happen": "^15.0.4", - "proc-log": "^6.1.0" - }, - "engines": { - "node": "^20.17.0 || >=22.9.0" - } - }, - "node_modules/@sigstore/tuf": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@sigstore/tuf/-/tuf-4.0.2.tgz", - "integrity": "sha512-TCAzTy0xzdP79EnxSjq9KQ3eaR7+FmudLC6eRKknVKZbV7ZNlGLClAAQb/HMNJ5n2OBNk2GT1tEmU0xuPr+SLQ==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@sigstore/protobuf-specs": "^0.5.0", - "tuf-js": "^4.1.0" - }, - "engines": { - "node": "^20.17.0 || >=22.9.0" - } - }, - "node_modules/@sigstore/verify": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@sigstore/verify/-/verify-3.1.1.tgz", - "integrity": "sha512-qv7+G3J2cc6wwFj3yKvXOamzqhMwSk1ogPGmhpS8iXllcPrJaIIBA+4HbttlHVu1pqWTdmaCH/WE7UOC51kdoA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@sigstore/bundle": "^4.0.0", - "@sigstore/core": "^3.2.1", - "@sigstore/protobuf-specs": "^0.5.0" - }, - "engines": { - "node": "^20.17.0 || >=22.9.0" - } - }, - "node_modules/@socket.io/component-emitter": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.2.tgz", - "integrity": "sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==", - "dev": true - }, - "node_modules/@standard-schema/spec": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@standard-schema/spec/-/spec-1.1.0.tgz", - "integrity": "sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==", - "license": "MIT" - }, - "node_modules/@tufjs/canonical-json": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@tufjs/canonical-json/-/canonical-json-2.0.0.tgz", - "integrity": "sha512-yVtV8zsdo8qFHe+/3kw81dSLyF7D576A5cCFCi4X7B39tWT7SekaEFUnvnWJHz+9qO7qJTah1JbrDjWKqFtdWA==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/@tufjs/models": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@tufjs/models/-/models-4.1.0.tgz", - "integrity": "sha512-Y8cK9aggNRsqJVaKUlEYs4s7CvQ1b1ta2DVPyAimb0I2qhzjNk+A+mxvll/klL0RlfuIUei8BF7YWiua4kQqww==", - "dev": true, - "license": "MIT", - "dependencies": { - "@tufjs/canonical-json": "2.0.0", - "minimatch": "^10.1.1" - }, - "engines": { - "node": "^20.17.0 || >=22.9.0" - } - }, - "node_modules/@tufjs/models/node_modules/balanced-match": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", - "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", - "dev": true, - "license": "MIT", - "engines": { - "node": "18 || 20 || >=22" - } - }, - "node_modules/@tufjs/models/node_modules/brace-expansion": { - "version": "5.0.12", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.12.tgz", - "integrity": "sha512-YovQ3rzhaLMIrDjNDMkNS01tea93qhEhG5xy8f6+R0l+dw3Ki+5sCoIoI942iuLZTHWogWktgwVDhU09iNEimQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^4.0.2" - }, - "engines": { - "node": "20 || >=22" - } - }, - "node_modules/@tufjs/models/node_modules/minimatch": { - "version": "10.2.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.6.tgz", - "integrity": "sha512-vpLQEs+VLCr1nU0BXS07maYoFwlDAH0gngQuuttxIwutDFEMHq2blX+8vpgxDdK3J1PwjCJiep77OitTZ4Ll1A==", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "brace-expansion": "^5.0.8" - }, - "engines": { - "node": "18 || 20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@tybys/wasm-util": { - "version": "0.10.4", - "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.4.tgz", - "integrity": "sha512-W3c4gRigFS0T/Ma4qIYF3GDAc5AQdHb1yL5znJT1Zv1YaD9Kitx656wBjvr19qbiosmZT8lWDM5BEMynUqX65A==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "tslib": "^2.4.0" - } - }, - "node_modules/@types/body-parser": { - "version": "1.19.6", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.6.tgz", - "integrity": "sha512-HLFeCYgz89uk22N5Qg3dvGvsv46B8GLvKKo1zKG4NybA8U2DiEO3w9lqGg29t/tfLRJpJ6iQxnVw4OnB7MoM9g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/connect": "*", - "@types/node": "*" - } - }, - "node_modules/@types/bonjour": { - "version": "3.5.13", - "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.13.tgz", - "integrity": "sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/chroma-js": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@types/chroma-js/-/chroma-js-3.1.2.tgz", - "integrity": "sha512-YBTQqArPN8A0niHXCwrO1z5x++a+6l0mLBykncUpr23oIPW7L4h39s6gokdK/bDrPmSh8+TjMmrhBPnyiaWPmQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/connect": { - "version": "3.4.38", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", - "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/connect-history-api-fallback": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.4.tgz", - "integrity": "sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/express-serve-static-core": "*", - "@types/node": "*" - } - }, - "node_modules/@types/cookie": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz", - "integrity": "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==", - "dev": true - }, - "node_modules/@types/cors": { - "version": "2.8.17", - "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.17.tgz", - "integrity": "sha512-8CGDvrBj1zgo2qE+oS3pOCyYNqCPryMWY2bGfwA0dcfopWGgxs+78df0Rs3rc9THP4JkOhLsAa+15VdpAqkcUA==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/cytoscape": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/@types/cytoscape/-/cytoscape-3.21.0.tgz", - "integrity": "sha512-RN5SPiyVDpUP+LoOlxxlOYAMzkE7iuv3gA1jt3Hx2qTwArpZVPPdO+SI0hUj49OAn4QABR7JK9Gi0hibzGE0Aw==", - "dev": true - }, - "node_modules/@types/cytoscape-fcose": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/@types/cytoscape-fcose/-/cytoscape-fcose-2.2.4.tgz", - "integrity": "sha512-QwWtnT8HI9h+DHhG5krGc1ZY0Ex+cn85MvX96ZNAjSxuXiZDnjIZW/ypVkvvubTjIY4rSdkJY1D/Nsn8NDpmAw==", - "dev": true, - "dependencies": { - "@types/cytoscape": "*" - } - }, - "node_modules/@types/eslint": { - "version": "9.6.1", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-9.6.1.tgz", - "integrity": "sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/estree": "*", - "@types/json-schema": "*" - } - }, - "node_modules/@types/eslint-scope": { - "version": "3.7.7", - "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", - "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/eslint": "*", - "@types/estree": "*" - } - }, - "node_modules/@types/estree": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.9.tgz", - "integrity": "sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/express": { - "version": "4.17.25", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.25.tgz", - "integrity": "sha512-dVd04UKsfpINUnK0yBoYHDF3xu7xVH4BuDotC/xGuycx4CgbP48X/KF/586bcObxT0HENHXEU8Nqtu6NR+eKhw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.33", - "@types/qs": "*", - "@types/serve-static": "^1" - } - }, - "node_modules/@types/express-serve-static-core": { - "version": "4.19.9", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.9.tgz", - "integrity": "sha512-QP2ESEe/ImWY0HDwNAnK9PvEffUyhLTnWkk7KXzHfyeWAnlrDe1fN77bXl6ia8KT3wPlmA7t9/VPRpnf4Ex9sg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*", - "@types/send": "*" - } - }, - "node_modules/@types/http-errors": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.5.tgz", - "integrity": "sha512-r8Tayk8HJnX0FztbZN7oVqGccWgw98T/0neJphO91KkmOzug1KkofZURD4UaD5uH8AqcFLfdPErnBod0u71/qg==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/http-proxy": { - "version": "1.17.17", - "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.17.tgz", - "integrity": "sha512-ED6LB+Z1AVylNTu7hdzuBqOgMnvG/ld6wGCG8wFnAzKX5uyW2K3WD52v0gnLCTK/VLpXtKckgWuyScYK6cSPaw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/jasmine": { - "version": "4.3.6", - "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-4.3.6.tgz", - "integrity": "sha512-3N0FpQTeiWjm+Oo1WUYWguUS7E6JLceiGTriFrG8k5PU7zRLJCzLcWURU3wjMbZGS//a2/LgjsnO3QxIlwxt9g==", - "dev": true - }, - "node_modules/@types/json-schema": { - "version": "7.0.15", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", - "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", - "dev": true - }, - "node_modules/@types/lodash": { - "version": "4.17.0", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.0.tgz", - "integrity": "sha512-t7dhREVv6dbNj0q17X12j7yDG4bD/DHYX7o5/DbDxobP0HnGPgpRz2Ej77aL7TZT3DSw13fqUTj8J4mMnqa7WA==", - "dev": true - }, - "node_modules/@types/mime": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", - "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/node": { - "version": "26.6.4", - "resolved": "https://registry.npmjs.org/@types/node/-/node-26.6.4.tgz", - "integrity": "sha512-ldVPDCzj7fsaGZrLB0NuHuTvJcsNasysBAqMolr/cgxrLd1xbqxIr3XJiPnHHJUCxj5sNF1vnRj9aWnrVh5Jcg==", - "dev": true, - "license": "MIT", - "dependencies": { - "undici-types": "~8.9.0" - } - }, - "node_modules/@types/qs": { - "version": "6.15.1", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.15.1.tgz", - "integrity": "sha512-GZHUBZR9hckSUhrxmp1nG6NwdpM9fCunJwyThLW1X3AyHgd9IlHb6VANpQQqDr2o/qQp6McZ3y/IA2rVzKzSbw==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/range-parser": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", - "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/retry": { - "version": "0.12.2", - "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.2.tgz", - "integrity": "sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/send": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@types/send/-/send-1.2.1.tgz", - "integrity": "sha512-arsCikDvlU99zl1g69TcAB3mzZPpxgw0UQnaHeC1Nwb015xp8bknZv5rIfri9xTOcMuaVgvabfIRA7PSZVuZIQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/serve-index": { - "version": "1.9.4", - "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.4.tgz", - "integrity": "sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/express": "*" - } - }, - "node_modules/@types/serve-static": { - "version": "1.15.10", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.10.tgz", - "integrity": "sha512-tRs1dB+g8Itk72rlSI2ZrW6vZg0YrLI81iQSTkMmOqnqCaNr/8Ek4VwWcN5vZgCYWbg/JJSGBlUaYGAOP73qBw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/http-errors": "*", - "@types/node": "*", - "@types/send": "<1" - } - }, - "node_modules/@types/serve-static/node_modules/@types/send": { - "version": "0.17.6", - "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.6.tgz", - "integrity": "sha512-Uqt8rPBE8SY0RK8JB1EzVOIZ32uqy8HwdxCnoCOsYrvnswqmFZ/k+9Ikidlk/ImhsdvBsloHbAlewb2IEBV/Og==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/mime": "^1", - "@types/node": "*" - } - }, - "node_modules/@types/sockjs": { - "version": "0.3.36", - "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.36.tgz", - "integrity": "sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/ws": { - "version": "8.18.2", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.18.2.tgz", - "integrity": "sha512-67MQl+fpWKVTT1NYdnmo3U4sc/xPo/zQBncVnI74qmQa0z/b+1g6iYqNmGCPbxO+zz2aklb08a0oHfegiVd0/w==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@vitejs/plugin-basic-ssl": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-basic-ssl/-/plugin-basic-ssl-2.1.4.tgz", - "integrity": "sha512-HXciTXN/sDBYWgeAD4V4s0DN0g72x5mlxQhHxtYu3Tt8BLa6MzcJZUyDVFCdtjNs3bfENVHVzOsmooTVuNgAAw==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^18.0.0 || ^20.0.0 || >=22.0.0" - }, - "peerDependencies": { - "vite": "^6.0.0 || ^7.0.0" - } - }, - "node_modules/@webassemblyjs/ast": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.14.1.tgz", - "integrity": "sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@webassemblyjs/helper-numbers": "1.13.2", - "@webassemblyjs/helper-wasm-bytecode": "1.13.2" - } - }, - "node_modules/@webassemblyjs/floating-point-hex-parser": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz", - "integrity": "sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@webassemblyjs/helper-api-error": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz", - "integrity": "sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/@webassemblyjs/helper-buffer": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz", - "integrity": "sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@webassemblyjs/helper-numbers": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz", - "integrity": "sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@webassemblyjs/floating-point-hex-parser": "1.13.2", - "@webassemblyjs/helper-api-error": "1.13.2", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/helper-wasm-bytecode": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz", - "integrity": "sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@webassemblyjs/helper-wasm-section": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz", - "integrity": "sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@webassemblyjs/ast": "1.14.1", - "@webassemblyjs/helper-buffer": "1.14.1", - "@webassemblyjs/helper-wasm-bytecode": "1.13.2", - "@webassemblyjs/wasm-gen": "1.14.1" - } - }, - "node_modules/@webassemblyjs/ieee754": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz", - "integrity": "sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@xtuc/ieee754": "^1.2.0" - } - }, - "node_modules/@webassemblyjs/leb128": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.13.2.tgz", - "integrity": "sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/utf8": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.13.2.tgz", - "integrity": "sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/@webassemblyjs/wasm-edit": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz", - "integrity": "sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@webassemblyjs/ast": "1.14.1", - "@webassemblyjs/helper-buffer": "1.14.1", - "@webassemblyjs/helper-wasm-bytecode": "1.13.2", - "@webassemblyjs/helper-wasm-section": "1.14.1", - "@webassemblyjs/wasm-gen": "1.14.1", - "@webassemblyjs/wasm-opt": "1.14.1", - "@webassemblyjs/wasm-parser": "1.14.1", - "@webassemblyjs/wast-printer": "1.14.1" - } - }, - "node_modules/@webassemblyjs/wasm-gen": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz", - "integrity": "sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@webassemblyjs/ast": "1.14.1", - "@webassemblyjs/helper-wasm-bytecode": "1.13.2", - "@webassemblyjs/ieee754": "1.13.2", - "@webassemblyjs/leb128": "1.13.2", - "@webassemblyjs/utf8": "1.13.2" - } - }, - "node_modules/@webassemblyjs/wasm-opt": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz", - "integrity": "sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@webassemblyjs/ast": "1.14.1", - "@webassemblyjs/helper-buffer": "1.14.1", - "@webassemblyjs/wasm-gen": "1.14.1", - "@webassemblyjs/wasm-parser": "1.14.1" - } - }, - "node_modules/@webassemblyjs/wasm-parser": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz", - "integrity": "sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@webassemblyjs/ast": "1.14.1", - "@webassemblyjs/helper-api-error": "1.13.2", - "@webassemblyjs/helper-wasm-bytecode": "1.13.2", - "@webassemblyjs/ieee754": "1.13.2", - "@webassemblyjs/leb128": "1.13.2", - "@webassemblyjs/utf8": "1.13.2" - } - }, - "node_modules/@webassemblyjs/wast-printer": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz", - "integrity": "sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@webassemblyjs/ast": "1.14.1", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@xtuc/ieee754": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", - "dev": true, - "license": "BSD-3-Clause" - }, - "node_modules/@xtuc/long": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", - "dev": true, - "license": "Apache-2.0" - }, - "node_modules/@yarnpkg/lockfile": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz", - "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==", - "dev": true - }, - "node_modules/abbrev": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-4.0.0.tgz", - "integrity": "sha512-a1wflyaL0tHtJSmLSOVybYhy22vRih4eduhhrkcjgrWGnRfrZtovJ2FRjxuTtkkj47O/baf0R86QU5OuYpz8fA==", - "dev": true, - "license": "ISC", - "engines": { - "node": "^20.17.0 || >=22.9.0" - } - }, - "node_modules/accepts": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", - "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", - "dev": true, - "dependencies": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/acorn": { - "version": "8.18.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.18.0.tgz", - "integrity": "sha512-lGq+9yr1/GuAWaVYIHRjvvySG5/4VfKIvC8EWxStPdcDh/Ka7FG3twP6v4d5BkravUilhIAsG4Qj83t02LWUPQ==", - "dev": true, - "license": "MIT", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-import-phases": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/acorn-import-phases/-/acorn-import-phases-1.0.4.tgz", - "integrity": "sha512-wKmbr/DDiIXzEOiWrTTUcDm24kQ2vGfZQvM2fwg2vXqR5uW6aapr7ObPtj1th32b9u90/Pf4AItvdTh42fBmVQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10.13.0" - }, - "peerDependencies": { - "acorn": "^8.14.0" - } - }, - "node_modules/adjust-sourcemap-loader": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-4.0.0.tgz", - "integrity": "sha512-OXwN5b9pCUXNQHJpwwD2qP40byEmSgzj8B4ydSN0uMNYWiFmJ6x6KwUllMmfk8Rwu/HJDFR7U8ubsWBoN0Xp0A==", - "dev": true, - "dependencies": { - "loader-utils": "^2.0.0", - "regex-parser": "^2.2.11" - }, - "engines": { - "node": ">=8.9" - } - }, - "node_modules/adjust-sourcemap-loader/node_modules/loader-utils": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", - "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", - "dev": true, - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - }, - "engines": { - "node": ">=8.9.0" - } - }, - "node_modules/agent-base": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz", - "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 14" - } - }, - "node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "dev": true, - "peer": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ajv-formats": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", - "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", - "dev": true, - "peer": true, - "dependencies": { - "ajv": "^8.0.0" - }, - "peerDependencies": { - "ajv": "^8.0.0" - }, - "peerDependenciesMeta": { - "ajv": { - "optional": true - } - } - }, - "node_modules/ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "dev": true, - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.3" - }, - "peerDependencies": { - "ajv": "^8.8.2" - } - }, - "node_modules/algoliasearch": { - "version": "5.48.1", - "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-5.48.1.tgz", - "integrity": "sha512-Rf7xmeuIo7nb6S4mp4abW2faW8DauZyE2faBIKFaUfP3wnpOvNSbiI5AwVhqBNj0jPgBWEvhyCu0sLjN2q77Rg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@algolia/abtesting": "1.14.1", - "@algolia/client-abtesting": "5.48.1", - "@algolia/client-analytics": "5.48.1", - "@algolia/client-common": "5.48.1", - "@algolia/client-insights": "5.48.1", - "@algolia/client-personalization": "5.48.1", - "@algolia/client-query-suggestions": "5.48.1", - "@algolia/client-search": "5.48.1", - "@algolia/ingestion": "1.48.1", - "@algolia/monitoring": "1.48.1", - "@algolia/recommend": "5.48.1", - "@algolia/requester-browser-xhr": "5.48.1", - "@algolia/requester-fetch": "5.48.1", - "@algolia/requester-node-http": "5.48.1" - }, - "engines": { - "node": ">= 14.0.0" - } - }, - "node_modules/angular-cli-ghpages": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/angular-cli-ghpages/-/angular-cli-ghpages-1.0.7.tgz", - "integrity": "sha512-7uq+NSqmhVBnA1uimVQVoQfXP80aSJc/nZGdRUiADcTeRQFPamaQUbh4bn2EHiC9TJn44lDOEGnzdhAej0wz6w==", - "dev": true, - "dependencies": { - "commander": "^3.0.0-0", - "fs-extra": "^9.0.1", - "gh-pages": "^3.1.0" - }, - "bin": { - "angular-cli-ghpages": "angular-cli-ghpages", - "ngh": "angular-cli-ghpages" - }, - "peerDependencies": { - "@angular-devkit/architect": ">= 0.900 < 0.1602.0", - "@angular-devkit/core": "^9.0.0 || ^10.0.0 || ^11.0.0 || ^12.0.0 || ^13.0.0 || ^14.0.0 || ^15.0.0 || ^16.0.0", - "@angular-devkit/schematics": "^9.0.0 || ^10.0.0 || ^11.0.0 || ^12.0.0 || ^13.0.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" - } - }, - "node_modules/angular-cli-ghpages/node_modules/commander": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/commander/-/commander-3.0.2.tgz", - "integrity": "sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow==", - "dev": true - }, - "node_modules/angular-cli-ghpages/node_modules/fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dev": true, - "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/angular-cli-ghpages/node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/angular-cli-ghpages/node_modules/universalify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", - "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", - "dev": true, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/ansi-colors": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", - "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/ansi-escapes": { - "version": "7.3.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-7.3.0.tgz", - "integrity": "sha512-BvU8nYgGQBxcmMuEeUEmNTvrMVjJNSH7RgW24vXexN4Ven6qCvy4TntnvlnwnMLTVlcRQQdbRY8NKnaIoeWDNg==", - "dev": true, - "license": "MIT", - "dependencies": { - "environment": "^1.0.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ansi-html-community": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", - "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==", - "dev": true, - "engines": [ - "node >= 0.8.0" - ], - "license": "Apache-2.0", - "bin": { - "ansi-html": "bin/ansi-html" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dev": true, - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/anymatch/node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true, - "license": "Python-2.0" - }, - "node_modules/array-buffer-byte-length": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", - "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.5", - "is-array-buffer": "^3.0.4" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", - "dev": true, - "license": "MIT" - }, - "node_modules/array-union": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", - "integrity": "sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==", - "dev": true, - "dependencies": { - "array-uniq": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array-uniq": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", - "integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/arraybuffer.prototype.slice": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", - "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", - "dev": true, - "dependencies": { - "array-buffer-byte-length": "^1.0.1", - "call-bind": "^1.0.5", - "define-properties": "^1.2.1", - "es-abstract": "^1.22.3", - "es-errors": "^1.2.1", - "get-intrinsic": "^1.2.3", - "is-array-buffer": "^3.0.4", - "is-shared-array-buffer": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/asn1js": { - "version": "3.0.10", - "resolved": "https://registry.npmjs.org/asn1js/-/asn1js-3.0.10.tgz", - "integrity": "sha512-S2s3aOytiKdFRdulw2qPE51MzjzVOisppcVv7jVFR+Kw0kxwvFrDcYA0h7Ndqbmj0HkMIXYWaoj7fli8kgx1eg==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "pvtsutils": "^1.3.6", - "pvutils": "^1.1.5", - "tslib": "^2.8.1" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/async": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", - "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", - "dev": true, - "dependencies": { - "lodash": "^4.17.14" - } - }, - "node_modules/at-least-node": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", - "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", - "dev": true, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/autoprefixer": { - "version": "10.4.27", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.27.tgz", - "integrity": "sha512-NP9APE+tO+LuJGn7/9+cohklunJsXWiaWEfV3si4Gi/XHDwVNgkwr1J3RQYFIvPy76GmJ9/bW8vyoU1LcxwKHA==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/autoprefixer" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "browserslist": "^4.28.1", - "caniuse-lite": "^1.0.30001774", - "fraction.js": "^5.3.4", - "picocolors": "^1.1.1", - "postcss-value-parser": "^4.2.0" - }, - "bin": { - "autoprefixer": "bin/autoprefixer" - }, - "engines": { - "node": "^10 || ^12 || >=14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/available-typed-arrays": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", - "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", - "dev": true, - "dependencies": { - "possible-typed-array-names": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/babel-loader": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-10.0.0.tgz", - "integrity": "sha512-z8jt+EdS61AMw22nSfoNJAZ0vrtmhPRVi6ghL3rCeRZI8cdNYFiV5xeV3HbE7rlZZNmGH8BVccwWt8/ED0QOHA==", - "dev": true, - "license": "MIT", - "dependencies": { - "find-up": "^5.0.0" - }, - "engines": { - "node": "^18.20.0 || ^20.10.0 || >=22.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.12.0", - "webpack": ">=5.61.0" - } - }, - "node_modules/babel-loader/node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/babel-loader/node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/babel-loader/node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/babel-loader/node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.4.17", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.17.tgz", - "integrity": "sha512-aTyf30K/rqAsNwN76zYrdtx8obu0E4KoUME29B1xj+B3WxgvWkp943vYQ+z8Mv3lw9xHXMHpvSPOBxzAkIa94w==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/compat-data": "^7.28.6", - "@babel/helper-define-polyfill-provider": "^0.6.8", - "semver": "^6.3.1" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.13.0.tgz", - "integrity": "sha512-U+GNwMdSFgzVmfhNm8GJUX88AadB3uo9KpJqS3FaqNIPKgySuvMb+bHPsOmmuWyIcuqZj/pzt1RUIUZns4y2+A==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.6.5", - "core-js-compat": "^3.43.0" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.6.8", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.8.tgz", - "integrity": "sha512-M762rNHfSF1EV3SLtnCJXFoQbbIIz0OyRwnCmV0KPC7qosSfCO0QLTSuJX3ayAebubhE6oYBAYPrBA5ljowaZg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.6.8" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "peer": true - }, - "node_modules/base64id": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz", - "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==", - "dev": true, - "engines": { - "node": "^4.5.0 || >= 5.9" - } - }, - "node_modules/baseline-browser-mapping": { - "version": "2.11.27", - "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.11.27.tgz", - "integrity": "sha512-ElY12DaROGuan+lMmZ8Cvo/ZUbXPe7Enc/9VU/b1T3Kp4dwytRcNdR8DoSJN5SNJT/CuvcCA0DHDVmMOCePdRQ==", - "dev": true, - "license": "Apache-2.0", - "bin": { - "baseline-browser-mapping": "dist/cli.cjs" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/batch": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", - "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==", - "dev": true, - "license": "MIT" - }, - "node_modules/beasties": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/beasties/-/beasties-0.4.1.tgz", - "integrity": "sha512-2Imdcw3LznDuxAbJM26RHniOLAzE6WgrK8OuvVXCQtNBS8rsnD9zsSEa3fHl4hHpUY7BYTlrpvtPVbvu9G6neg==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "css-select": "^6.0.0", - "css-what": "^7.0.0", - "dom-serializer": "^2.0.0", - "domhandler": "^5.0.3", - "htmlparser2": "^10.0.0", - "picocolors": "^1.1.1", - "postcss": "^8.4.49", - "postcss-media-query-parser": "^0.2.3", - "postcss-safe-parser": "^7.0.1" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/big.js": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", - "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/binary-extensions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", - "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/bl": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", - "dev": true, - "peer": true, - "dependencies": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, - "node_modules/body-parser": { - "version": "1.20.8", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.8.tgz", - "integrity": "sha512-JNcyFQ64OiijEkPzUBTCe+hyPXUD/3LEldGQ6iF5LR1w00mx9o7xtDWHXBY2iItjdCFGoilOLNQbH943ut7pHA==", - "dev": true, - "license": "MIT", - "dependencies": { - "bytes": "~3.1.2", - "content-type": "~1.0.5", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "~1.2.0", - "http-errors": "~2.0.1", - "iconv-lite": "~0.4.24", - "on-finished": "~2.4.1", - "qs": "~6.16.0", - "raw-body": "~2.5.3", - "type-is": "~1.6.18", - "unpipe": "~1.0.0" - }, - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/body-parser/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/body-parser/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "node_modules/bonjour-service": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.4.4.tgz", - "integrity": "sha512-jCZcVv7eoc4QesRscwEZtSROBen+6LpKAmBIsQYQrsAeVHLyMXWX/t6eIV5KiRZYNUBl8eVqImEEMQ8L5+c/Kw==", - "dev": true, - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.3", - "multicast-dns": "^7.2.5" - } - }, - "node_modules/boolbase": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", - "dev": true, - "license": "ISC" - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", - "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", - "dev": true, - "license": "MIT", - "dependencies": { - "fill-range": "^7.1.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/browserslist": { - "version": "4.29.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.29.3.tgz", - "integrity": "sha512-1R4kiYKXGViqEN0CnoDrXc1StD9niAwu+j2dukWzrD4bJgsD4lDmEp0CRbc6E/vYJIfTHwPmwyaKtVSudICdPA==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "baseline-browser-mapping": "^2.11.26", - "caniuse-lite": "^1.0.30001813", - "electron-to-chromium": "^1.5.439", - "node-releases": "^2.0.57", - "update-browserslist-db": "^1.3.3" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "peer": true, - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true - }, - "node_modules/bundle-name": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-4.1.1.tgz", - "integrity": "sha512-DdH81/zPLVS11EUgWq3tEu/xn+EzljlMYooDNdzWEnFha3R3NBMpMV1UqYIpjYHV/SgpFKMIX1Oh7o06SjM/oA==", - "dev": true, - "license": "MIT", - "dependencies": { - "run-applescript": "^7.0.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/bytestreamjs": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/bytestreamjs/-/bytestreamjs-2.0.1.tgz", - "integrity": "sha512-U1Z/ob71V/bXfVABvNr/Kumf5VyeQRBEm6Txb0PQ6S7V5GpBM3w4Cbqz/xPDicR5tN0uvDifng8C+5qECeGwyQ==", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/cacache": { - "version": "20.0.4", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-20.0.4.tgz", - "integrity": "sha512-M3Lab8NPYlZU2exsL3bMVvMrMqgwCnMWfdZbK28bn3pK6APT/Te/I8hjRPNu1uwORY9a1eEQoifXbKPQMfMTOA==", - "dev": true, - "license": "ISC", - "dependencies": { - "@npmcli/fs": "^5.0.0", - "fs-minipass": "^3.0.0", - "glob": "^13.0.0", - "lru-cache": "^11.1.0", - "minipass": "^7.0.3", - "minipass-collect": "^2.0.1", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "p-map": "^7.0.2", - "ssri": "^13.0.0" - }, - "engines": { - "node": "^20.17.0 || >=22.9.0" - } - }, - "node_modules/cacache/node_modules/balanced-match": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", - "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", - "dev": true, - "license": "MIT", - "engines": { - "node": "18 || 20 || >=22" - } - }, - "node_modules/cacache/node_modules/brace-expansion": { - "version": "5.0.12", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.12.tgz", - "integrity": "sha512-YovQ3rzhaLMIrDjNDMkNS01tea93qhEhG5xy8f6+R0l+dw3Ki+5sCoIoI942iuLZTHWogWktgwVDhU09iNEimQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^4.0.2" - }, - "engines": { - "node": "20 || >=22" - } - }, - "node_modules/cacache/node_modules/glob": { - "version": "13.0.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-13.0.6.tgz", - "integrity": "sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw==", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "minimatch": "^10.2.2", - "minipass": "^7.1.3", - "path-scurry": "^2.0.2" - }, - "engines": { - "node": "18 || 20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/cacache/node_modules/lru-cache": { - "version": "11.5.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.5.3.tgz", - "integrity": "sha512-U4N8FgzmWxc8k1VH8Kr6lQg18U7Fjvby6wXHVRX/ZZ7IwWbRMgrRbP0Wrb5q5NVinryp4SQampHKdvtecItxUg==", - "dev": true, - "license": "BlueOak-1.0.0", - "engines": { - "node": "20 || >=22" - } - }, - "node_modules/cacache/node_modules/minimatch": { - "version": "10.2.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.6.tgz", - "integrity": "sha512-vpLQEs+VLCr1nU0BXS07maYoFwlDAH0gngQuuttxIwutDFEMHq2blX+8vpgxDdK3J1PwjCJiep77OitTZ4Ll1A==", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "brace-expansion": "^5.0.8" - }, - "engines": { - "node": "18 || 20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/call-bind": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", - "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", - "dev": true, - "dependencies": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "set-function-length": "^1.2.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/call-bind-apply-helpers": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", - "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/call-bound": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", - "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.2", - "get-intrinsic": "^1.3.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001814", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001814.tgz", - "integrity": "sha512-/Uaf1lAzr59XcMpW0o96WoEfr+VXK2OX4U9AgFoiSHsVJ4HppnIFUjtYzsyDH2+tgANaQb2/oxYGwCPapN1FpA==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "CC-BY-4.0" - }, - "node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/chardet": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-2.2.0.tgz", - "integrity": "sha512-rddelWYNPRrXq6PtNEN2S3f6t9ILzvqaN5pVgi4kqt9jHQaXIial9PznB5iSPVlQSLNaaH22ItWz3EJtQ10+OA==", - "dev": true, - "license": "MIT" - }, - "node_modules/chokidar": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", - "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", - "dev": true, - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/chownr": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-3.0.0.tgz", - "integrity": "sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==", - "dev": true, - "license": "BlueOak-1.0.0", - "engines": { - "node": ">=18" - } - }, - "node_modules/chroma-js": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/chroma-js/-/chroma-js-3.2.0.tgz", - "integrity": "sha512-os/OippSlX1RlWWr+QDPcGUZs0uoqr32urfxESG9U93lhUfbnlyckte84Q8P1UQY/qth983AS1JONKmLS4T0nw==", - "license": "(BSD-3-Clause AND Apache-2.0)" - }, - "node_modules/chrome-trace-event": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", - "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", - "dev": true, - "engines": { - "node": ">=6.0" - } - }, - "node_modules/cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "dev": true, - "peer": true, - "dependencies": { - "restore-cursor": "^3.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cli-spinners": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz", - "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", - "dev": true, - "peer": true, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cli-truncate": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-5.2.0.tgz", - "integrity": "sha512-xRwvIOMGrfOAnM1JYtqQImuaNtDEv9v6oIYAs4LIHwTiKee8uwvIi363igssOC0O5U04i4AlENs79LQLu9tEMw==", - "dev": true, - "license": "MIT", - "dependencies": { - "slice-ansi": "^8.0.0", - "string-width": "^8.2.0" - }, - "engines": { - "node": ">=20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cli-truncate/node_modules/ansi-regex": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.4.0.tgz", - "integrity": "sha512-KzTVk2tCWAHtYrvvvaP8bJKJq2pVinhLcGEQdtLIYPbmNGNyYe8QwNaTUYQp2J7/vIsUKt5QCqAfUkYyG9DkOw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/cli-truncate/node_modules/string-width": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-8.3.0.tgz", - "integrity": "sha512-ZbmZM0JCihQN91dWnxoipT2KOEyHqEyfRXUyjuRhW8b/xnqPDoq4gWEVApTVa9db2wN8mmoikgFBbjh71+cGeQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "get-east-asian-width": "^1.5.0", - "strip-ansi": "^7.1.2" - }, - "engines": { - "node": ">=20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cli-truncate/node_modules/strip-ansi": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz", - "integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^6.2.2" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/cli-width": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-4.1.0.tgz", - "integrity": "sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">= 12" - } - }, - "node_modules/cliui": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-9.0.1.tgz", - "integrity": "sha512-k7ndgKhwoQveBL+/1tqGJYNz097I7WOvwbmmU2AR5+magtbjPWQTS1C5vzGkBC8Ym8UWRzfKUzUUqFLypY4Q+w==", - "dev": true, - "license": "ISC", - "dependencies": { - "string-width": "^7.2.0", - "strip-ansi": "^7.1.0", - "wrap-ansi": "^9.0.0" - }, - "engines": { - "node": ">=20" - } - }, - "node_modules/cliui/node_modules/ansi-regex": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.4.0.tgz", - "integrity": "sha512-KzTVk2tCWAHtYrvvvaP8bJKJq2pVinhLcGEQdtLIYPbmNGNyYe8QwNaTUYQp2J7/vIsUKt5QCqAfUkYyG9DkOw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/cliui/node_modules/ansi-styles": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", - "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/cliui/node_modules/emoji-regex": { - "version": "10.6.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.6.0.tgz", - "integrity": "sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==", - "dev": true, - "license": "MIT" - }, - "node_modules/cliui/node_modules/string-width": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", - "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^10.3.0", - "get-east-asian-width": "^1.0.0", - "strip-ansi": "^7.1.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cliui/node_modules/strip-ansi": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz", - "integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^6.2.2" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/cliui/node_modules/wrap-ansi": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.2.tgz", - "integrity": "sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^6.2.1", - "string-width": "^7.0.0", - "strip-ansi": "^7.1.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/clone": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", - "dev": true, - "peer": true, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/clone-deep": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", - "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-plain-object": "^2.0.4", - "kind-of": "^6.0.2", - "shallow-clone": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "node_modules/colorette": { - "version": "2.0.20", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", - "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", - "dev": true, - "license": "MIT" - }, - "node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, - "node_modules/common-path-prefix": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-3.0.0.tgz", - "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==", - "dev": true, - "license": "ISC" - }, - "node_modules/commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", - "dev": true - }, - "node_modules/compressible": { - "version": "2.0.18", - "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", - "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", - "dev": true, - "license": "MIT", - "dependencies": { - "mime-db": ">= 1.43.0 < 2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/compression": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/compression/-/compression-1.8.2.tgz", - "integrity": "sha512-o8vI5RE5A6EVVOd9o41jKp41aJom+QTEO/Bx8MYNjexMo/Bv2WOjUfZr+aL0WnYSgymUy6zeguqLTsIhV0gMvQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "bytes": "3.1.2", - "compressible": "~2.0.18", - "debug": "2.6.9", - "destroy": "1.2.0", - "negotiator": "~0.6.4", - "on-headers": "~1.1.0", - "safe-buffer": "5.2.1", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.8.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" - } - }, - "node_modules/compression/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/compression/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true, - "license": "MIT" - }, - "node_modules/compression/node_modules/negotiator": { - "version": "0.6.4", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.4.tgz", - "integrity": "sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true - }, - "node_modules/connect": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz", - "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==", - "dev": true, - "dependencies": { - "debug": "2.6.9", - "finalhandler": "1.1.2", - "parseurl": "~1.3.3", - "utils-merge": "1.0.1" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/connect-history-api-fallback": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz", - "integrity": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8" - } - }, - "node_modules/connect/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/connect/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "node_modules/content-disposition": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-1.1.0.tgz", - "integrity": "sha512-5jRCH9Z/+DRP7rkvY83B+yGIGX96OYdJmzngqnw2SBSxqCFPd0w2km3s5iawpGX8krnwSGmF0FW5Nhr0Hfai3g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" - } - }, - "node_modules/content-type": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", - "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", - "dev": true - }, - "node_modules/cookie": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", - "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/cookie-signature": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.2.2.tgz", - "integrity": "sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.6.0" - } - }, - "node_modules/copy-anything": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-3.0.5.tgz", - "integrity": "sha512-yCEafptTtb4bk7GLEQoM8KVJpxAfdBJYaXyzQEgQQQgYrZiDp8SJmGKlYza6CYjEDNstAdNdKA3UuoULlEbS6w==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-what": "^4.1.8" - }, - "engines": { - "node": ">=12.13" - }, - "funding": { - "url": "https://github.com/sponsors/mesqueeb" - } - }, - "node_modules/copy-webpack-plugin": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-14.0.0.tgz", - "integrity": "sha512-3JLW90aBGeaTLpM7mYQKpnVdgsUZRExY55giiZgLuX/xTQRUs1dOCwbBnWnvY6Q6rfZoXMNwzOQJCSZPppfqXA==", - "dev": true, - "license": "MIT", - "dependencies": { - "glob-parent": "^6.0.1", - "normalize-path": "^3.0.0", - "schema-utils": "^4.2.0", - "serialize-javascript": "^7.0.3", - "tinyglobby": "^0.2.12" - }, - "engines": { - "node": ">= 20.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.1.0" - } - }, - "node_modules/copy-webpack-plugin/node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/core-js-compat": { - "version": "3.50.0", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.50.0.tgz", - "integrity": "sha512-XGpFGbMLHwSt74YLTKho7Ib242qi6O8MSX+sRokV4oz7iKXvQWGYZthjIhjRGMxjzVkAubBO512dKGYcefmX3Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "browserslist": "^4.28.7" - }, - "engines": { - "node": ">=6.4.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/cors": { - "version": "2.8.5", - "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", - "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", - "dev": true, - "dependencies": { - "object-assign": "^4", - "vary": "^1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/cose-base": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/cose-base/-/cose-base-2.2.0.tgz", - "integrity": "sha512-AzlgcsCbUMymkADOJtQm3wO9S3ltPfYOFD5033keQn9NJzIbtnZj+UdBJe7DYml/8TdbtHJW3j58SOnKhWY/5g==", - "dependencies": { - "layout-base": "^2.0.0" - } - }, - "node_modules/cosmiconfig": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.2.tgz", - "integrity": "sha512-gtTZxTDau1wL7Y7zifc2dd8jHSK/k6BTx/2Xp/BpdlAdnlYWFVt7qhJqgwi7637yRwRQ3qL4ZidbB4I8tA5VOg==", - "dev": true, - "license": "MIT", - "dependencies": { - "env-paths": "^2.2.1", - "import-fresh": "^3.3.0", - "js-yaml": "^4.1.0", - "parse-json": "^5.2.0" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/d-fischer" - }, - "peerDependencies": { - "typescript": ">=4.9.5" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/cross-spawn": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", - "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", - "dev": true, - "license": "MIT", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/cross-spawn/node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "license": "ISC", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/css-loader": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-7.1.3.tgz", - "integrity": "sha512-frbERmjT0UC5lMheWpJmMilnt9GEhbZJN/heUb7/zaJYeIzj5St9HvDcfshzzOqbsS+rYpMk++2SD3vGETDSyA==", - "dev": true, - "license": "MIT", - "dependencies": { - "icss-utils": "^5.1.0", - "postcss": "^8.4.40", - "postcss-modules-extract-imports": "^3.1.0", - "postcss-modules-local-by-default": "^4.0.5", - "postcss-modules-scope": "^3.2.0", - "postcss-modules-values": "^4.0.0", - "postcss-value-parser": "^4.2.0", - "semver": "^7.6.3" - }, - "engines": { - "node": ">= 18.12.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "@rspack/core": "0.x || 1.x", - "webpack": "^5.27.0" - }, - "peerDependenciesMeta": { - "@rspack/core": { - "optional": true - }, - "webpack": { - "optional": true - } - } - }, - "node_modules/css-select": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-6.0.0.tgz", - "integrity": "sha512-rZZVSLle8v0+EY8QAkDWrKhpgt6SA5OtHsgBnsj6ZaLb5dmDVOWUDtQitd9ydxxvEjhewNudS6eTVU7uOyzvXw==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "boolbase": "^1.0.0", - "css-what": "^7.0.0", - "domhandler": "^5.0.3", - "domutils": "^3.2.2", - "nth-check": "^2.1.1" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/css-what": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-7.0.0.tgz", - "integrity": "sha512-wD5oz5xibMOPHzy13CyGmogB3phdvcDaB5t0W/Nr5Z2O/agcB8YwOz6e2Lsp10pNDzBoDO9nVa3RGs/2BttpHQ==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">= 6" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", - "dev": true, - "license": "MIT", - "bin": { - "cssesc": "bin/cssesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/custom-event": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz", - "integrity": "sha512-GAj5FOq0Hd+RsCGVJxZuKaIDXDf3h6GQoNEjFgbLLI/trgtavwUbSnZ5pVfg27DVCaWjIohryS0JFwIJyT2cMg==", - "dev": true - }, - "node_modules/cytoscape": { - "version": "3.34.3", - "resolved": "https://registry.npmjs.org/cytoscape/-/cytoscape-3.34.3.tgz", - "integrity": "sha512-yfYGhRcGAntq6YBD583j4n0Eg3jIxvWmZtz/5uz9UYkeIStSlMxuUja+ec5j3iBD8nv1rwaOAYMW09tBdkSeaQ==", - "license": "MIT", - "engines": { - "node": ">=0.10" - } - }, - "node_modules/cytoscape-fcose": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/cytoscape-fcose/-/cytoscape-fcose-2.2.0.tgz", - "integrity": "sha512-ki1/VuRIHFCzxWNrsshHYPs6L7TvLu3DL+TyIGEsRcvVERmxokbf5Gdk7mFxZnTdiGtnA4cfSmjZJMviqSuZrQ==", - "dependencies": { - "cose-base": "^2.2.0" - }, - "peerDependencies": { - "cytoscape": "^3.2.0" - } - }, - "node_modules/cytoscape-layers": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cytoscape-layers/-/cytoscape-layers-3.1.0.tgz", - "integrity": "sha512-HhldyRPURRn4axeDsCiKdKqiZN8bcoWjclLXl3kWekDd7Wy4QHo5cntm4W4kxL/R0u8AA9VAfmNB1P7nJ9scew==", - "license": "MIT", - "peerDependencies": { - "cytoscape": "^3.23.0" - } - }, - "node_modules/data-view-buffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz", - "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.6", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/data-view-byte-length": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz", - "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.7", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/data-view-byte-offset": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz", - "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.6", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/date-format": { - "version": "4.0.14", - "resolved": "https://registry.npmjs.org/date-format/-/date-format-4.0.14.tgz", - "integrity": "sha512-39BOQLs9ZjKh0/patS9nrT8wc3ioX3/eA/zgbKNopnF2wCqJEoxywwwElATYvRsXdnOxA/OQeQoFZ3rFjVajhg==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/default-browser": { - "version": "5.5.1", - "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-5.5.1.tgz", - "integrity": "sha512-m1pAzaJgZ/gssEqlOhJkPJp8Xly7QyW6xcrkUa2KKcDeDSEMP7X8xipU3snUcfisTQx0w1AGae+9UtJSfVnXGw==", - "dev": true, - "license": "MIT", - "dependencies": { - "bundle-name": "^4.1.0", - "default-browser-id": "^5.0.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/default-browser-id": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-5.0.1.tgz", - "integrity": "sha512-x1VCxdX4t+8wVfd1so/9w+vQ4vx7lKd2Qp5tDRutErwmR85OgmfX7RlLRMWafRMY7hbEiXIbudNrjOAPa/hL8Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/defaults": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", - "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", - "dev": true, - "peer": true, - "dependencies": { - "clone": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/define-data-property": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", - "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", - "dev": true, - "dependencies": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "gopd": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/define-lazy-prop": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz", - "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/define-properties": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", - "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", - "dev": true, - "dependencies": { - "define-data-property": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/dependency-graph": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-1.0.0.tgz", - "integrity": "sha512-cW3gggJ28HZ/LExwxP2B++aiKxhJXMSIt9K48FOXQkm+vuG5gyatXnLsONRJdzO/7VfjDIiaOOa/bs4l464Lwg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/destroy": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", - "dev": true, - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/detect-libc": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", - "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", - "dev": true, - "license": "Apache-2.0", - "optional": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/detect-node": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", - "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", - "dev": true, - "license": "MIT" - }, - "node_modules/di": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/di/-/di-0.0.1.tgz", - "integrity": "sha512-uJaamHkagcZtHPqCIHZxnFrXlunQXgBOsZSUOWwFw31QJCAbyTBoHMW75YOTur5ZNx8pIeAKgf6GWIgaqqiLhA==", - "dev": true - }, - "node_modules/dns-packet": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.6.1.tgz", - "integrity": "sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@leichtgewicht/ip-codec": "^2.0.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/dom-serialize": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/dom-serialize/-/dom-serialize-2.2.1.tgz", - "integrity": "sha512-Yra4DbvoW7/Z6LBN560ZwXMjoNOSAN2wRsKFGc4iBeso+mpIA6qj1vfdf9HpMaKAqG6wXTy+1SYEzmNpKXOSsQ==", - "dev": true, - "dependencies": { - "custom-event": "~1.0.0", - "ent": "~2.2.0", - "extend": "^3.0.0", - "void-elements": "^2.0.0" - } - }, - "node_modules/dom-serializer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", - "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", - "dev": true, - "license": "MIT", - "dependencies": { - "domelementtype": "^2.3.0", - "domhandler": "^5.0.2", - "entities": "^4.2.0" - }, - "funding": { - "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" - } - }, - "node_modules/domelementtype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", - "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ], - "license": "BSD-2-Clause" - }, - "node_modules/domhandler": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", - "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "domelementtype": "^2.3.0" - }, - "engines": { - "node": ">= 4" - }, - "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" - } - }, - "node_modules/domutils": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz", - "integrity": "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "dom-serializer": "^2.0.0", - "domelementtype": "^2.3.0", - "domhandler": "^5.0.3" - }, - "funding": { - "url": "https://github.com/fb55/domutils?sponsor=1" - } - }, - "node_modules/dunder-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", - "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.1", - "es-errors": "^1.3.0", - "gopd": "^1.2.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", - "dev": true - }, - "node_modules/electron-to-chromium": { - "version": "1.5.444", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.444.tgz", - "integrity": "sha512-5ss/uJfoDYDHT0lfJzT6FbcskIzROIOPf0BbbFkGcvDzoJU7i//9GDrwwIHQVmIsrAGiF3ihpADBRIsrEFt1rQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/email-addresses": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/email-addresses/-/email-addresses-3.1.0.tgz", - "integrity": "sha512-k0/r7GrWVL32kZlGwfPNgB2Y/mMXVTq/decgLczm/j34whdaspNrZO8CnXPf1laaHxI6ptUlsnAxN+UAPw+fzg==", - "dev": true - }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "node_modules/emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/engine.io": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.5.4.tgz", - "integrity": "sha512-KdVSDKhVKyOi+r5uEabrDLZw2qXStVvCsEB/LN3mw4WFi6Gx50jTyuxYVCwAAC0U46FdnzP/ScKRBTXb/NiEOg==", - "dev": true, - "dependencies": { - "@types/cookie": "^0.4.1", - "@types/cors": "^2.8.12", - "@types/node": ">=10.0.0", - "accepts": "~1.3.4", - "base64id": "2.0.0", - "cookie": "~0.4.1", - "cors": "~2.8.5", - "debug": "~4.3.1", - "engine.io-parser": "~5.2.1", - "ws": "~8.11.0" - }, - "engines": { - "node": ">=10.2.0" - } - }, - "node_modules/engine.io-parser": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.2.2.tgz", - "integrity": "sha512-RcyUFKA93/CXH20l4SoVvzZfrSDMOTUS3bWVpTt2FuFP+XYrL8i8oonHP7WInRyVHXh0n/ORtoeiE1os+8qkSw==", - "dev": true, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/enhanced-resolve": { - "version": "5.26.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.26.0.tgz", - "integrity": "sha512-9vhedylFonb2YGogzUKX6+Ja72gOJbN1QHAqdrvqLwhdl/QWbKopzoUC9EbQNVsAns/bx/4uyqalrQAoy1IByw==", - "dev": true, - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.2.4", - "tapable": "^2.3.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/ent": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz", - "integrity": "sha512-GHrMyVZQWvTIdDtpiEXdHZnFQKzeO09apj8Cbl4pKWy4i0Oprcq17usfDt5aO63swf0JOeMWjWQE/LzgSRuWpA==", - "dev": true - }, - "node_modules/entities": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", - "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.12" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/env-paths": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", - "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/environment": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/environment/-/environment-1.1.0.tgz", - "integrity": "sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/errno": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", - "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "prr": "~1.0.1" - }, - "bin": { - "errno": "cli.js" - } - }, - "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, - "node_modules/es-abstract": { - "version": "1.23.3", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz", - "integrity": "sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==", - "dev": true, - "dependencies": { - "array-buffer-byte-length": "^1.0.1", - "arraybuffer.prototype.slice": "^1.0.3", - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.7", - "data-view-buffer": "^1.0.1", - "data-view-byte-length": "^1.0.1", - "data-view-byte-offset": "^1.0.0", - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "es-set-tostringtag": "^2.0.3", - "es-to-primitive": "^1.2.1", - "function.prototype.name": "^1.1.6", - "get-intrinsic": "^1.2.4", - "get-symbol-description": "^1.0.2", - "globalthis": "^1.0.3", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.2", - "has-proto": "^1.0.3", - "has-symbols": "^1.0.3", - "hasown": "^2.0.2", - "internal-slot": "^1.0.7", - "is-array-buffer": "^3.0.4", - "is-callable": "^1.2.7", - "is-data-view": "^1.0.1", - "is-negative-zero": "^2.0.3", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.3", - "is-string": "^1.0.7", - "is-typed-array": "^1.1.13", - "is-weakref": "^1.0.2", - "object-inspect": "^1.13.1", - "object-keys": "^1.1.1", - "object.assign": "^4.1.5", - "regexp.prototype.flags": "^1.5.2", - "safe-array-concat": "^1.1.2", - "safe-regex-test": "^1.0.3", - "string.prototype.trim": "^1.2.9", - "string.prototype.trimend": "^1.0.8", - "string.prototype.trimstart": "^1.0.8", - "typed-array-buffer": "^1.0.2", - "typed-array-byte-length": "^1.0.1", - "typed-array-byte-offset": "^1.0.2", - "typed-array-length": "^1.0.6", - "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.15" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es-define-property": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", - "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-errors": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", - "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-module-lexer": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-2.3.2.tgz", - "integrity": "sha512-poHGpORABojJJucnV9KbOavETW8lBVnphkW77ER5/BQ5Fz7oXSoCNek7IH3vR5nRjdsEz926ibFYX8KtLQmdyw==", - "dev": true, - "license": "MIT" - }, - "node_modules/es-object-atoms": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.2.tgz", - "integrity": "sha512-HWcBoN6NileqtSydK2FqHbS/LoDd2pqrnQHLyJzBj4kOp/ky2MWMN694xOfkK8/SnUsW2DH7EfyVlydKCsm1Zw==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-set-tostringtag": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", - "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.2.4", - "has-tostringtag": "^1.0.2", - "hasown": "^2.0.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dev": true, - "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/esbuild": { - "version": "0.28.1", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.28.1.tgz", - "integrity": "sha512-HrJrvZv5ayxBzPfwphOoNzkzOIIlifzk0KJrGK2c8R4+LKpMtpYLQeUdjnwjWv/LZlkH2laZk+4w78pi99D4Vw==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=18" - }, - "optionalDependencies": { - "@esbuild/aix-ppc64": "0.28.1", - "@esbuild/android-arm": "0.28.1", - "@esbuild/android-arm64": "0.28.1", - "@esbuild/android-x64": "0.28.1", - "@esbuild/darwin-arm64": "0.28.1", - "@esbuild/darwin-x64": "0.28.1", - "@esbuild/freebsd-arm64": "0.28.1", - "@esbuild/freebsd-x64": "0.28.1", - "@esbuild/linux-arm": "0.28.1", - "@esbuild/linux-arm64": "0.28.1", - "@esbuild/linux-ia32": "0.28.1", - "@esbuild/linux-loong64": "0.28.1", - "@esbuild/linux-mips64el": "0.28.1", - "@esbuild/linux-ppc64": "0.28.1", - "@esbuild/linux-riscv64": "0.28.1", - "@esbuild/linux-s390x": "0.28.1", - "@esbuild/linux-x64": "0.28.1", - "@esbuild/netbsd-arm64": "0.28.1", - "@esbuild/netbsd-x64": "0.28.1", - "@esbuild/openbsd-arm64": "0.28.1", - "@esbuild/openbsd-x64": "0.28.1", - "@esbuild/openharmony-arm64": "0.28.1", - "@esbuild/sunos-x64": "0.28.1", - "@esbuild/win32-arm64": "0.28.1", - "@esbuild/win32-ia32": "0.28.1", - "@esbuild/win32-x64": "0.28.1" - } - }, - "node_modules/esbuild-wasm": { - "version": "0.28.1", - "resolved": "https://registry.npmjs.org/esbuild-wasm/-/esbuild-wasm-0.28.1.tgz", - "integrity": "sha512-p/GD4E8oYRjg3kjdKrnMb0s4PzXgJF42e0MF4H0+ACyK/kIlFRp3e0fzOleIG+wBBm6MM3XQrbpe7soEA+vJIA==", - "dev": true, - "license": "MIT", - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/escalade": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", - "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", - "dev": true - }, - "node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dev": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esrecurse/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estree-walker": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", - "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", - "dev": true, - "license": "MIT" + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.64.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.64.0.tgz", + "integrity": "sha512-tjL58mgQcTRnDRpeky+Sth1MKQeYi2Ct6r3Luq9E5aTSjnM/i/JbozqZkKqp9thM5+oDSZxo+05f9kdQedfTGA==", + "cpu": [ + "riscv64" + ], "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.10.0" - } + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "node_modules/@rollup/rollup-linux-riscv64-musl": { + "version": "4.64.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.64.0.tgz", + "integrity": "sha512-ictoRyVaoZ8C67myHef+8hhCa6IplXJJ/xUCkVCxziV4zxMZh+jvhkhGsPBLqj1S72fnqD0QH5zL4lcaa4X7DQ==", + "cpu": [ + "riscv64" + ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/eventemitter3": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", - "dev": true + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.64.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.64.0.tgz", + "integrity": "sha512-8aVvZ2hfr9RLFzBQkQNmYeHLDja8fLeQAmLt757zdKN/B+8L809KlLJKctQjS22wZotptV8G6o7fVPuAs8S1tQ==", + "cpu": [ + "s390x" + ], "dev": true, - "engines": { - "node": ">=0.8.x" - } + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/eventsource": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-3.0.7.tgz", - "integrity": "sha512-CRT1WTyuQoD771GW56XEZFQ/ZoSfWid1alKGDYMmkt2yl8UXrVR4pspqWNEcqKvVIzg6PAltWjxcSSPrboA4iA==", + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.64.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.64.0.tgz", + "integrity": "sha512-2dEF8GAcDKwshUfydD+GhosppNyBzhVUHkdFF3CXd3FpOkzj/RZzF5aoEtzklujklT5qFVRU2GK/cFeLaTNKVg==", + "cpu": [ + "x64" + ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", - "dependencies": { - "eventsource-parser": "^3.0.1" - }, - "engines": { - "node": ">=18.0.0" - } + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/eventsource-parser": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/eventsource-parser/-/eventsource-parser-3.1.1.tgz", - "integrity": "sha512-EKN1vKAMcZ8MlYMpaNuxN6R9yakzH6uajHcHVTqWJzvu5pWw9DyhbP35HH8MVBQ+dZjAfDxk+A8NiR9KWaXiyQ==", + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.64.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.64.0.tgz", + "integrity": "sha512-3XHTvoo2hKkh0MiOfS7SkhHjMaaWF7P4F3drocZZaho/Z8w7h/jpnuBHm91BOQLfvrKHs1yR+zir4E8RI3XzTQ==", + "cpu": [ + "x64" + ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT", - "engines": { - "node": ">=18.0.0" - } + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/exponential-backoff": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.3.tgz", - "integrity": "sha512-ZgEeZXj30q+I0EN+CbSSpIyPaJ5HVQD18Z1m+u1FXbAeT94mr1zw50q4q6jiiC447Nl/YTcIYSAftiGqetwXCA==", + "node_modules/@rollup/rollup-openbsd-x64": { + "version": "4.64.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.64.0.tgz", + "integrity": "sha512-HKtkzodL4a3KFWDXDoO61cRynAWTR3LnAE0oGtfG9lcNFpNuVYUFOByxDgNqEvic9rvaQbAj+SFwTEWDptRaIw==", + "cpu": [ + "x64" + ], "dev": true, - "license": "Apache-2.0" + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ] }, - "node_modules/express": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/express/-/express-5.2.1.tgz", - "integrity": "sha512-hIS4idWWai69NezIdRt2xFVofaF4j+6INOpJlVOLDO8zXGpUVEVzIYk12UUi2JzjEzWL3IOAxcTubgz9Po0yXw==", + "node_modules/@rollup/rollup-openharmony-arm64": { + "version": "4.64.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.64.0.tgz", + "integrity": "sha512-JBsxqiY16uyyCujtoC3s7zL+SrYyNElptD7K4V+KUoJ2V8/XG3hPWpheK+SuPwNh1cikJvIZmIdsrYXvD6PLJw==", + "cpu": [ + "arm64" + ], "dev": true, "license": "MIT", - "dependencies": { - "accepts": "^2.0.0", - "body-parser": "^2.2.1", - "content-disposition": "^1.0.0", - "content-type": "^1.0.5", - "cookie": "^0.7.1", - "cookie-signature": "^1.2.1", - "debug": "^4.4.0", - "depd": "^2.0.0", - "encodeurl": "^2.0.0", - "escape-html": "^1.0.3", - "etag": "^1.8.1", - "finalhandler": "^2.1.0", - "fresh": "^2.0.0", - "http-errors": "^2.0.0", - "merge-descriptors": "^2.0.0", - "mime-types": "^3.0.0", - "on-finished": "^2.4.1", - "once": "^1.4.0", - "parseurl": "^1.3.3", - "proxy-addr": "^2.0.7", - "qs": "^6.14.0", - "range-parser": "^1.2.1", - "router": "^2.2.0", - "send": "^1.1.0", - "serve-static": "^2.2.0", - "statuses": "^2.0.1", - "type-is": "^2.0.1", - "vary": "^1.1.2" - }, - "engines": { - "node": ">= 18" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" - } + "optional": true, + "os": [ + "openharmony" + ] }, - "node_modules/express-rate-limit": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/express-rate-limit/-/express-rate-limit-8.7.0.tgz", - "integrity": "sha512-hOwV7WOxXfjRpAM1DSJWZDXx3GhplwD8IfwuwvogD8i1Qnkgosw/H45s4ZnFAUHDAhPjlY9hLBvJhKmGMyY26g==", + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.64.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.64.0.tgz", + "integrity": "sha512-S5Qrijh37qhnUYQ0ay8WN3LuWeKjow7wTUyCOPMZtnXiBXYXdsZETI6ZLfYnQAKovltckPLBFdNeD61P2rJc7g==", + "cpu": [ + "arm64" + ], "dev": true, "license": "MIT", - "dependencies": { - "debug": "^4.4.3", - "ip-address": "^10.2.0" - }, - "engines": { - "node": ">= 16" - }, - "funding": { - "url": "https://github.com/sponsors/express-rate-limit" - }, - "peerDependencies": { - "express": ">= 4.11" - } + "optional": true, + "os": [ + "win32" + ] }, - "node_modules/express-rate-limit/node_modules/debug": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", - "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.64.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.64.0.tgz", + "integrity": "sha512-zbZ6iMmLFEsCtTdc2/y1F/cDFVNNCPF7Ae8PCT/wdPE//hGwYp6r+MyCLMFX+kOeIe09Pz6ASfnnfpSTN1FJQQ==", + "cpu": [ + "ia32" + ], "dev": true, "license": "MIT", - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } + "optional": true, + "os": [ + "win32" + ] }, - "node_modules/express-rate-limit/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "node_modules/@rollup/rollup-win32-x64-gnu": { + "version": "4.64.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.64.0.tgz", + "integrity": "sha512-L6Hw69oNpuYaOr1zCG30v0/DqKYCSRwodPGwIcVZ/6f8SOzq9rxtL/xNVI5MO4wjli+Ko0ErK9uHJL3mNPt8wQ==", + "cpu": [ + "x64" + ], "dev": true, - "license": "MIT" + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] }, - "node_modules/express/node_modules/accepts": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-2.0.0.tgz", - "integrity": "sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng==", + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.64.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.64.0.tgz", + "integrity": "sha512-nl+CTWIgOGszQmUz/kanfgrfFZ4qiwxKIfT/ryl3N3Ewk5tqizmYtNXiqb7Bu/fDtNgu1kyxdFiAUJNur3iysg==", + "cpu": [ + "x64" + ], "dev": true, "license": "MIT", - "dependencies": { - "mime-types": "^3.0.0", - "negotiator": "^1.0.0" - }, - "engines": { - "node": ">= 0.6" - } + "optional": true, + "os": [ + "win32" + ] }, - "node_modules/express/node_modules/body-parser": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-2.3.0.tgz", - "integrity": "sha512-2cGmJupaNgg+QUwVLAucDuWuoMZ6EX9iHDRswZ5lsNYEmwPaRknMPCLZz07yTzVq/83p4o/wzbDZbBrTvGGTIw==", + "node_modules/@rollup/wasm-node": { + "version": "4.64.0", + "resolved": "https://registry.npmjs.org/@rollup/wasm-node/-/wasm-node-4.64.0.tgz", + "integrity": "sha512-Z/de+MVpPvzOf55PE1oihpipLVt1VFP/OmtZvKQtsWaxatzqpQ2CfvFgVkQ/QaZ5TAMO+Taed2gpbBfzmM+wFQ==", "dev": true, "license": "MIT", "dependencies": { - "bytes": "^3.1.2", - "content-type": "^2.0.0", - "debug": "^4.4.3", - "http-errors": "^2.0.1", - "iconv-lite": "^0.7.2", - "on-finished": "^2.4.1", - "qs": "^6.15.2", - "raw-body": "^3.0.2", - "type-is": "^2.1.0" + "@types/estree": "1.0.9" }, - "engines": { - "node": ">=18" + "bin": { + "rollup": "dist/bin/rollup" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" - } - }, - "node_modules/express/node_modules/body-parser/node_modules/content-type": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-2.1.0.tgz", - "integrity": "sha512-mj7UPXE0jaqaOsukNZRUEfEi2AcL7C/vwmwcHV0O97eO1E1pxBZuyjlZrx5seTaNBg1U6+o35wpa35Qfcc+7ag==", - "dev": true, - "license": "MIT", "engines": { - "node": ">=18" + "node": ">=18.0.0", + "npm": ">=8.0.0" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" + "optionalDependencies": { + "@napi-rs/lzma-linux-x64-gnu": "1.5.1", + "fsevents": "~2.3.2" } }, - "node_modules/express/node_modules/cookie": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", - "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", + "node_modules/@schematics/angular": { + "version": "21.2.24", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-21.2.24.tgz", + "integrity": "sha512-eGBr4Yhg/A8Lt8QGtWxmXAyKboX8QBwbDG1hSyApQfHAh9iNFbV7mgWSmk0qPWvRJM38s0t3EEkEg79QZ98dWQ==", "dev": true, "license": "MIT", + "dependencies": { + "@angular-devkit/core": "21.2.24", + "@angular-devkit/schematics": "21.2.24", + "jsonc-parser": "3.3.1" + }, "engines": { - "node": ">= 0.6" + "node": "^20.19.0 || ^22.12.0 || >=24.0.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" } }, - "node_modules/express/node_modules/debug": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", - "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "node_modules/@schematics/angular/node_modules/@angular-devkit/core": { + "version": "21.2.24", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-21.2.24.tgz", + "integrity": "sha512-QLYLd6OcfQS5qWTlzG1/d8lFTcJDFcsY6sOaGVtrruYiDxrbeM2iJttoIoKzvbNPROFyo3fANVQJOVhytpXWPg==", "dev": true, "license": "MIT", "dependencies": { - "ms": "^2.1.3" + "ajv": "8.18.0", + "ajv-formats": "3.0.1", + "jsonc-parser": "3.3.1", + "picomatch": "4.0.4", + "rxjs": "7.8.2", + "source-map": "0.7.6" }, "engines": { - "node": ">=6.0" + "node": "^20.19.0 || ^22.12.0 || >=24.0.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "peerDependencies": { + "chokidar": "^5.0.0" }, "peerDependenciesMeta": { - "supports-color": { + "chokidar": { "optional": true } } }, - "node_modules/express/node_modules/encodeurl": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", - "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "node_modules/@schematics/angular/node_modules/@angular-devkit/schematics": { + "version": "21.2.24", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-21.2.24.tgz", + "integrity": "sha512-mLOme2vfbLrHFmMyM6ybPuGCnCvPiemXWdHnptY2Q7Hzum72DabfgtTNsrMcI2F5zrQV2DDQunNjC5cXqtq4/w==", "dev": true, "license": "MIT", + "dependencies": { + "@angular-devkit/core": "21.2.24", + "jsonc-parser": "3.3.1", + "magic-string": "0.30.21", + "ora": "9.3.0", + "rxjs": "7.8.2" + }, "engines": { - "node": ">= 0.8" + "node": "^20.19.0 || ^22.12.0 || >=24.0.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" } }, - "node_modules/express/node_modules/finalhandler": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-2.1.1.tgz", - "integrity": "sha512-S8KoZgRZN+a5rNwqTxlZZePjT/4cnm0ROV70LedRHZ0p8u9fRID0hJUZQpkKLzro8LfmC8sx23bY6tVNxv8pQA==", + "node_modules/@schematics/angular/node_modules/ajv": { + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.18.0.tgz", + "integrity": "sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==", "dev": true, "license": "MIT", "dependencies": { - "debug": "^4.4.0", - "encodeurl": "^2.0.0", - "escape-html": "^1.0.3", - "on-finished": "^2.4.1", - "parseurl": "^1.3.3", - "statuses": "^2.0.1" - }, - "engines": { - "node": ">= 18.0.0" + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/express/node_modules/iconv-lite": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.3.tgz", - "integrity": "sha512-IKXpvIzjnC9XTAUbVBcMfGS0EPaIXtW6v+zr+RRp+hqULEpo0owZax6wyRwPOJbWbzjYspQwusTsfVr0ifh4uQ==", + "node_modules/@schematics/angular/node_modules/ajv-formats": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-3.0.1.tgz", + "integrity": "sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==", "dev": true, "license": "MIT", "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" + "ajv": "^8.0.0" }, - "engines": { - "node": ">=0.10.0" + "peerDependencies": { + "ajv": "^8.0.0" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" + "peerDependenciesMeta": { + "ajv": { + "optional": true + } } }, - "node_modules/express/node_modules/media-typer": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-1.1.1.tgz", - "integrity": "sha512-yz3xRaG20c6/BOzvYoDaGtPmGscs7YivItZEEqe6GbwNfHuxu9YNmvnEkMzKldAGY4/80pRcQRZSEnhquk9XuQ==", + "node_modules/@schematics/angular/node_modules/ansi-regex": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.4.0.tgz", + "integrity": "sha512-KzTVk2tCWAHtYrvvvaP8bJKJq2pVinhLcGEQdtLIYPbmNGNyYe8QwNaTUYQp2J7/vIsUKt5QCqAfUkYyG9DkOw==", "dev": true, "license": "MIT", "engines": { - "node": ">= 0.8" + "node": ">=12" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" - } - }, - "node_modules/express/node_modules/mime-db": { - "version": "1.54.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", - "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" + "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, - "node_modules/express/node_modules/mime-types": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.2.tgz", - "integrity": "sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==", + "node_modules/@schematics/angular/node_modules/chalk": { + "version": "5.6.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.6.2.tgz", + "integrity": "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==", "dev": true, "license": "MIT", - "dependencies": { - "mime-db": "^1.54.0" - }, "engines": { - "node": ">=18" + "node": "^12.17.0 || ^14.13 || >=16.0.0" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/express/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true, - "license": "MIT" - }, - "node_modules/express/node_modules/negotiator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-1.1.0.tgz", - "integrity": "sha512-NMPBRMJgiQHjbd8phG3Vebdx4kZ1H121rbl5IkMqeOsahptB9BKo/d7oJ3zTXqTgagn2bWlNSXkh0QUGM31RYg==", + "node_modules/@schematics/angular/node_modules/cli-cursor": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-5.0.0.tgz", + "integrity": "sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==", "dev": true, "license": "MIT", "dependencies": { - "content-type": "^2.1.0" - }, - "engines": { - "node": ">=18" + "restore-cursor": "^5.0.0" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" - } - }, - "node_modules/express/node_modules/negotiator/node_modules/content-type": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-2.1.0.tgz", - "integrity": "sha512-mj7UPXE0jaqaOsukNZRUEfEi2AcL7C/vwmwcHV0O97eO1E1pxBZuyjlZrx5seTaNBg1U6+o35wpa35Qfcc+7ag==", - "dev": true, - "license": "MIT", "engines": { "node": ">=18" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" - } - }, - "node_modules/express/node_modules/raw-body": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-3.0.2.tgz", - "integrity": "sha512-K5zQjDllxWkf7Z5xJdV0/B0WTNqx6vxG70zJE4N0kBs4LovmEYWJzQGxC9bS9RAKu3bgM40lrd5zoLJ12MQ5BA==", - "dev": true, - "license": "MIT", - "dependencies": { - "bytes": "~3.1.2", - "http-errors": "~2.0.1", - "iconv-lite": "~0.7.0", - "unpipe": "~1.0.0" - }, - "engines": { - "node": ">= 0.10" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/express/node_modules/statuses": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz", - "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==", + "node_modules/@schematics/angular/node_modules/cli-spinners": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-3.4.0.tgz", + "integrity": "sha512-bXfOC4QcT1tKXGorxL3wbJm6XJPDqEnij2gQ2m7ESQuE+/z9YFIWnl/5RpTiKWbMq3EVKR4fRLJGn6DVfu0mpw==", "dev": true, "license": "MIT", "engines": { - "node": ">= 0.8" + "node": ">=18.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/express/node_modules/type-is": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-2.1.0.tgz", - "integrity": "sha512-faYHw0anBbc/kWF3zFTEnxSFOAGUX9GFbOBthvDdLsIlEoWOFOtS0zgCiQYwIskL9iGXZL3kAXD8OoZ4GmMATA==", + "node_modules/@schematics/angular/node_modules/is-interactive": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-2.0.0.tgz", + "integrity": "sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==", "dev": true, "license": "MIT", - "dependencies": { - "content-type": "^2.0.0", - "media-typer": "^1.1.0", - "mime-types": "^3.0.0" - }, "engines": { - "node": ">= 18" + "node": ">=12" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/express/node_modules/type-is/node_modules/content-type": { + "node_modules/@schematics/angular/node_modules/is-unicode-supported": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-2.1.0.tgz", - "integrity": "sha512-mj7UPXE0jaqaOsukNZRUEfEi2AcL7C/vwmwcHV0O97eO1E1pxBZuyjlZrx5seTaNBg1U6+o35wpa35Qfcc+7ag==", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-2.1.0.tgz", + "integrity": "sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==", "dev": true, "license": "MIT", "engines": { "node": ">=18" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "dev": true - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "node_modules/fast-uri": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.8.tgz", - "integrity": "sha512-GZMtZUTNRpOVIECoXwLNZS5xUGE+mVNbTB8h/7Rwh2TFWcBQiPzTgyZi05BF9UMZKkLJv8XBRJTlU7zg8+ZfMg==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fastify" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/fastify" - } - ], - "license": "BSD-3-Clause" - }, - "node_modules/faye-websocket": { - "version": "0.11.4", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", - "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", + "node_modules/@schematics/angular/node_modules/log-symbols": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-7.0.1.tgz", + "integrity": "sha512-ja1E3yCr9i/0hmBVaM0bfwDjnGy8I/s6PP4DFp+yP+a+mrHO4Rm7DtmnqROTUkHIkqffC84YY7AeqX6oFk0WFg==", "dev": true, - "license": "Apache-2.0", + "license": "MIT", "dependencies": { - "websocket-driver": ">=0.5.1" + "is-unicode-supported": "^2.0.0", + "yoctocolors": "^2.1.1" }, "engines": { - "node": ">=0.8.0" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/fdir": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", - "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "node_modules/@schematics/angular/node_modules/onetime": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-7.0.0.tgz", + "integrity": "sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==", "dev": true, "license": "MIT", - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "picomatch": "^3 || ^4" + "dependencies": { + "mimic-function": "^5.0.0" }, - "peerDependenciesMeta": { - "picomatch": { - "optional": true - } - } - }, - "node_modules/filename-reserved-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz", - "integrity": "sha512-lc1bnsSr4L4Bdif8Xb/qrtokGbq5zlsms/CYH8PP+WtCkGNF65DPiQY8vG3SakEdRn8Dlnm+gW/qWKKjS5sZzQ==", - "dev": true, "engines": { - "node": ">=4" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/filenamify": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/filenamify/-/filenamify-4.3.0.tgz", - "integrity": "sha512-hcFKyUG57yWGAzu1CMt/dPzYZuv+jAJUT85bL8mrXvNe6hWj6yEHEc4EdcgiA6Z3oi1/9wXJdZPXF2dZNgwgOg==", + "node_modules/@schematics/angular/node_modules/ora": { + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/ora/-/ora-9.3.0.tgz", + "integrity": "sha512-lBX72MWFduWEf7v7uWf5DHp9Jn5BI8bNPGuFgtXMmr2uDz2Gz2749y3am3agSDdkhHPHYmmxEGSKH85ZLGzgXw==", "dev": true, + "license": "MIT", "dependencies": { - "filename-reserved-regex": "^2.0.0", - "strip-outer": "^1.0.1", - "trim-repeated": "^1.0.0" + "chalk": "^5.6.2", + "cli-cursor": "^5.0.0", + "cli-spinners": "^3.2.0", + "is-interactive": "^2.0.0", + "is-unicode-supported": "^2.1.0", + "log-symbols": "^7.0.1", + "stdin-discarder": "^0.3.1", + "string-width": "^8.1.0" }, "engines": { - "node": ">=8" + "node": ">=20" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/fill-range": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", - "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "node_modules/@schematics/angular/node_modules/restore-cursor": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-5.1.0.tgz", + "integrity": "sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==", "dev": true, "license": "MIT", "dependencies": { - "to-regex-range": "^5.0.1" + "onetime": "^7.0.0", + "signal-exit": "^4.1.0" }, "engines": { - "node": ">=8" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/finalhandler": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", - "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "node_modules/@schematics/angular/node_modules/rxjs": { + "version": "7.8.2", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.2.tgz", + "integrity": "sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==", "dev": true, + "license": "Apache-2.0", "dependencies": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "statuses": "~1.5.0", - "unpipe": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" + "tslib": "^2.1.0" } }, - "node_modules/finalhandler/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "node_modules/@schematics/angular/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", "dev": true, - "dependencies": { - "ms": "2.0.0" + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/finalhandler/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true + "node_modules/@schematics/angular/node_modules/source-map": { + "version": "0.7.6", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.6.tgz", + "integrity": "sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">= 12" + } }, - "node_modules/finalhandler/node_modules/on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==", + "node_modules/@schematics/angular/node_modules/string-width": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-8.3.0.tgz", + "integrity": "sha512-ZbmZM0JCihQN91dWnxoipT2KOEyHqEyfRXUyjuRhW8b/xnqPDoq4gWEVApTVa9db2wN8mmoikgFBbjh71+cGeQ==", "dev": true, + "license": "MIT", "dependencies": { - "ee-first": "1.1.1" + "get-east-asian-width": "^1.5.0", + "strip-ansi": "^7.1.2" }, "engines": { - "node": ">= 0.8" + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/find-cache-directory": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/find-cache-directory/-/find-cache-directory-6.0.0.tgz", - "integrity": "sha512-CvFd5ivA6HcSHbD+59P7CyzINHXzwhuQK8RY7CxJZtgDSAtRlHiCaQpZQ2lMR/WRyUIEmzUvL6G2AGurMfegZA==", + "node_modules/@schematics/angular/node_modules/strip-ansi": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz", + "integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==", "dev": true, "license": "MIT", "dependencies": { - "common-path-prefix": "^3.0.0", - "pkg-dir": "^8.0.0" + "ansi-regex": "^6.2.2" }, "engines": { - "node": ">=20" + "node": ">=12" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, - "node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "node_modules/@sigstore/bundle": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@sigstore/bundle/-/bundle-4.0.0.tgz", + "integrity": "sha512-NwCl5Y0V6Di0NexvkTqdoVfmjTaQwoLM236r89KEojGmq/jMls8S+zb7yOwAPdXvbwfKDlP+lmXgAL4vKSQT+A==", "dev": true, + "license": "Apache-2.0", "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" + "@sigstore/protobuf-specs": "^0.5.0" }, "engines": { - "node": ">=8" + "node": "^20.17.0 || >=22.9.0" } }, - "node_modules/find-up-simple": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/find-up-simple/-/find-up-simple-1.0.1.tgz", - "integrity": "sha512-afd4O7zpqHeRyg4PfDQsXmlDe2PfdHtJt6Akt8jOWaApLOZk5JXs6VMR29lz03pRe9mpykrRCYIYxaJYcfpncQ==", + "node_modules/@sigstore/core": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/@sigstore/core/-/core-3.2.1.tgz", + "integrity": "sha512-qRsxPnCrbC/puegGxKuynfnxgLiHqWStrSjxkoB4YKqq3Z3s4cyZyj42ZdWFAEblNP65C+rBH8EuREHIXoi83g==", "dev": true, - "license": "MIT", + "license": "Apache-2.0", "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": "^20.17.0 || >=22.9.0" } }, - "node_modules/flat": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", - "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "node_modules/@sigstore/protobuf-specs": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/@sigstore/protobuf-specs/-/protobuf-specs-0.5.2.tgz", + "integrity": "sha512-SQqvFMt4V78fdjcDdYX6HbiVSOR4QK3ZgwCa2KOsopAgPIHy1rU5UDUmzLl02r5oyyaYcYHR1hpwDRk/yUe+Mw==", "dev": true, - "license": "BSD-3-Clause", - "bin": { - "flat": "cli.js" + "license": "Apache-2.0", + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/@sigstore/sign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/@sigstore/sign/-/sign-4.1.1.tgz", + "integrity": "sha512-Hf4xglukg0XXQ2RiD5vSoLjdPe8OBUPA8XeVjUObheuDcWdYWrnH/BNmxZCzkAy68MzmNCxXLeurJvs6hcP2OQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@gar/promise-retry": "^1.0.2", + "@sigstore/bundle": "^4.0.0", + "@sigstore/core": "^3.2.0", + "@sigstore/protobuf-specs": "^0.5.0", + "make-fetch-happen": "^15.0.4", + "proc-log": "^6.1.0" + }, + "engines": { + "node": "^20.17.0 || >=22.9.0" } }, - "node_modules/flatted": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", - "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", - "dev": true - }, - "node_modules/follow-redirects": { - "version": "1.15.6", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", - "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", + "node_modules/@sigstore/tuf": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@sigstore/tuf/-/tuf-4.0.2.tgz", + "integrity": "sha512-TCAzTy0xzdP79EnxSjq9KQ3eaR7+FmudLC6eRKknVKZbV7ZNlGLClAAQb/HMNJ5n2OBNk2GT1tEmU0xuPr+SLQ==", "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "engines": { - "node": ">=4.0" + "license": "Apache-2.0", + "dependencies": { + "@sigstore/protobuf-specs": "^0.5.0", + "tuf-js": "^4.1.0" }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } + "engines": { + "node": "^20.17.0 || >=22.9.0" } }, - "node_modules/for-each": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "node_modules/@sigstore/verify": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@sigstore/verify/-/verify-3.1.1.tgz", + "integrity": "sha512-qv7+G3J2cc6wwFj3yKvXOamzqhMwSk1ogPGmhpS8iXllcPrJaIIBA+4HbttlHVu1pqWTdmaCH/WE7UOC51kdoA==", "dev": true, + "license": "Apache-2.0", "dependencies": { - "is-callable": "^1.1.3" + "@sigstore/bundle": "^4.0.0", + "@sigstore/core": "^3.2.1", + "@sigstore/protobuf-specs": "^0.5.0" + }, + "engines": { + "node": "^20.17.0 || >=22.9.0" } }, - "node_modules/forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "node_modules/@standard-schema/spec": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@standard-schema/spec/-/spec-1.1.0.tgz", + "integrity": "sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==", + "license": "MIT" + }, + "node_modules/@tufjs/canonical-json": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tufjs/canonical-json/-/canonical-json-2.0.0.tgz", + "integrity": "sha512-yVtV8zsdo8qFHe+/3kw81dSLyF7D576A5cCFCi4X7B39tWT7SekaEFUnvnWJHz+9qO7qJTah1JbrDjWKqFtdWA==", "dev": true, "license": "MIT", "engines": { - "node": ">= 0.6" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/fraction.js": { - "version": "5.3.4", - "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-5.3.4.tgz", - "integrity": "sha512-1X1NTtiJphryn/uLQz3whtY6jK3fTqoE3ohKs0tT+Ujr1W59oopxmoEh7Lu5p6vBaPbgoM0bzveAW4Qi5RyWDQ==", + "node_modules/@tufjs/models": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@tufjs/models/-/models-4.1.0.tgz", + "integrity": "sha512-Y8cK9aggNRsqJVaKUlEYs4s7CvQ1b1ta2DVPyAimb0I2qhzjNk+A+mxvll/klL0RlfuIUei8BF7YWiua4kQqww==", "dev": true, "license": "MIT", - "engines": { - "node": "*" + "dependencies": { + "@tufjs/canonical-json": "2.0.0", + "minimatch": "^10.1.1" }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/rawify" + "engines": { + "node": "^20.17.0 || >=22.9.0" } }, - "node_modules/fresh": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-2.0.0.tgz", - "integrity": "sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==", + "node_modules/@tufjs/models/node_modules/balanced-match": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", + "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", "dev": true, "license": "MIT", "engines": { - "node": ">= 0.8" + "node": "18 || 20 || >=22" } }, - "node_modules/fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "node_modules/@tufjs/models/node_modules/brace-expansion": { + "version": "5.0.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.12.tgz", + "integrity": "sha512-YovQ3rzhaLMIrDjNDMkNS01tea93qhEhG5xy8f6+R0l+dw3Ki+5sCoIoI942iuLZTHWogWktgwVDhU09iNEimQ==", "dev": true, + "license": "MIT", "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" + "balanced-match": "^4.0.2" }, "engines": { - "node": ">=6 <7 || >=8" + "node": "20 || >=22" } }, - "node_modules/fs-minipass": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.3.tgz", - "integrity": "sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==", + "node_modules/@tufjs/models/node_modules/minimatch": { + "version": "10.2.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.6.tgz", + "integrity": "sha512-vpLQEs+VLCr1nU0BXS07maYoFwlDAH0gngQuuttxIwutDFEMHq2blX+8vpgxDdK3J1PwjCJiep77OitTZ4Ll1A==", "dev": true, - "license": "ISC", + "license": "BlueOak-1.0.0", "dependencies": { - "minipass": "^7.0.3" + "brace-expansion": "^5.0.8" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "18 || 20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true - }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "node_modules/@tybys/wasm-util": { + "version": "0.10.4", + "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.4.tgz", + "integrity": "sha512-W3c4gRigFS0T/Ma4qIYF3GDAc5AQdHb1yL5znJT1Zv1YaD9Kitx656wBjvr19qbiosmZT8lWDM5BEMynUqX65A==", "dev": true, - "hasInstallScript": true, + "license": "MIT", "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "dependencies": { + "tslib": "^2.4.0" } }, - "node_modules/function.prototype.name": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", - "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", + "node_modules/@types/chai": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-5.2.3.tgz", + "integrity": "sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "functions-have-names": "^1.2.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "@types/deep-eql": "*", + "assertion-error": "^2.0.1" } }, - "node_modules/functions-have-names": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", - "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "node_modules/@types/chroma-js": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@types/chroma-js/-/chroma-js-3.1.2.tgz", + "integrity": "sha512-YBTQqArPN8A0niHXCwrO1z5x++a+6l0mLBykncUpr23oIPW7L4h39s6gokdK/bDrPmSh8+TjMmrhBPnyiaWPmQ==", "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } + "license": "MIT" }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "node_modules/@types/cytoscape": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/@types/cytoscape/-/cytoscape-3.21.0.tgz", + "integrity": "sha512-RN5SPiyVDpUP+LoOlxxlOYAMzkE7iuv3gA1jt3Hx2qTwArpZVPPdO+SI0hUj49OAn4QABR7JK9Gi0hibzGE0Aw==", + "dev": true + }, + "node_modules/@types/cytoscape-fcose": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/@types/cytoscape-fcose/-/cytoscape-fcose-2.2.4.tgz", + "integrity": "sha512-QwWtnT8HI9h+DHhG5krGc1ZY0Ex+cn85MvX96ZNAjSxuXiZDnjIZW/ypVkvvubTjIY4rSdkJY1D/Nsn8NDpmAw==", "dev": true, - "engines": { - "node": ">=6.9.0" + "dependencies": { + "@types/cytoscape": "*" } }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "node_modules/@types/deep-eql": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/deep-eql/-/deep-eql-4.0.2.tgz", + "integrity": "sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==", "dev": true, - "engines": { - "node": "6.* || 8.* || >= 10.*" - } + "license": "MIT" }, - "node_modules/get-east-asian-width": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.7.0.tgz", - "integrity": "sha512-XjH1AECxf0giL2V1aU8vKyRR2ppRUb5c0EvT7zuJTokQ74bNo52zOtghqdWIqrhUD79fo3x0WfKZdOqxF6LG1Q==", + "node_modules/@types/estree": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.9.tgz", + "integrity": "sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "license": "MIT" }, - "node_modules/get-intrinsic": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", - "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "node_modules/@types/lodash": { + "version": "4.17.0", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.0.tgz", + "integrity": "sha512-t7dhREVv6dbNj0q17X12j7yDG4bD/DHYX7o5/DbDxobP0HnGPgpRz2Ej77aL7TZT3DSw13fqUTj8J4mMnqa7WA==", + "dev": true + }, + "node_modules/@vitejs/plugin-basic-ssl": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-basic-ssl/-/plugin-basic-ssl-2.1.4.tgz", + "integrity": "sha512-HXciTXN/sDBYWgeAD4V4s0DN0g72x5mlxQhHxtYu3Tt8BLa6MzcJZUyDVFCdtjNs3bfENVHVzOsmooTVuNgAAw==", "dev": true, "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.2", - "es-define-property": "^1.0.1", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.1.1", - "function-bind": "^1.1.2", - "get-proto": "^1.0.1", - "gopd": "^1.2.0", - "has-symbols": "^1.1.0", - "hasown": "^2.0.2", - "math-intrinsics": "^1.1.0" - }, "engines": { - "node": ">= 0.4" + "node": "^18.0.0 || ^20.0.0 || >=22.0.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", - "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "peerDependencies": { + "vite": "^6.0.0 || ^7.0.0" + } + }, + "node_modules/@vitest/expect": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-4.1.11.tgz", + "integrity": "sha512-VX2x5vNJXET47KAFzwERI+KRMtTTCSWTfSMKsW7JsUsXV4psq++e3DvZpuTDOpHcxytiDs6p2nhVb2tVDiiUYw==", "dev": true, "license": "MIT", "dependencies": { - "dunder-proto": "^1.0.1", - "es-object-atoms": "^1.0.0" + "@standard-schema/spec": "^1.1.0", + "@types/chai": "^5.2.2", + "@vitest/spy": "4.1.11", + "@vitest/utils": "4.1.11", + "chai": "^6.2.2", + "tinyrainbow": "^3.1.0" }, - "engines": { - "node": ">= 0.4" + "funding": { + "url": "https://opencollective.com/vitest" } }, - "node_modules/get-symbol-description": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", - "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", + "node_modules/@vitest/mocker": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-4.1.11.tgz", + "integrity": "sha512-2XJVD55d1o5AZous5CCGKS74g/riOj9odEt2bQpCVZeblHyHdnMeFl4jl0XjU21stf4mbjUkew2eXQZt65g5CQ==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.5", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4" - }, - "engines": { - "node": ">= 0.4" + "@vitest/spy": "4.1.11", + "estree-walker": "^3.0.3", + "magic-string": "^0.30.21" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "msw": "^2.4.9", + "vite": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "msw": { + "optional": true + }, + "vite": { + "optional": true + } } }, - "node_modules/gh-pages": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/gh-pages/-/gh-pages-3.2.3.tgz", - "integrity": "sha512-jA1PbapQ1jqzacECfjUaO9gV8uBgU6XNMV0oXLtfCX3haGLe5Atq8BxlrADhbD6/UdG9j6tZLWAkAybndOXTJg==", + "node_modules/@vitest/mocker/node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", "dev": true, + "license": "MIT", "dependencies": { - "async": "^2.6.1", - "commander": "^2.18.0", - "email-addresses": "^3.0.1", - "filenamify": "^4.3.0", - "find-cache-dir": "^3.3.1", - "fs-extra": "^8.1.0", - "globby": "^6.1.0" - }, - "bin": { - "gh-pages": "bin/gh-pages.js", - "gh-pages-clean": "bin/gh-pages-clean.js" - }, - "engines": { - "node": ">=10" + "@types/estree": "^1.0.0" } }, - "node_modules/gh-pages/node_modules/find-cache-dir": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", - "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "node_modules/@vitest/pretty-format": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-4.1.11.tgz", + "integrity": "sha512-yiZzPbGTS9Sr/JpFl8zHrcIkAofNbFV6k21vIgQN/cY/oxZeXhJv5sc/MBJ5jFKWmWs+oJHw0UXLZjmf931+Vw==", "dev": true, + "license": "MIT", "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - }, - "engines": { - "node": ">=8" + "tinyrainbow": "^3.1.0" }, "funding": { - "url": "https://github.com/avajs/find-cache-dir?sponsor=1" + "url": "https://opencollective.com/vitest" } }, - "node_modules/gh-pages/node_modules/globby": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", - "integrity": "sha512-KVbFv2TQtbzCoxAnfD6JcHZTYCzyliEaaeM/gH8qQdkKr5s0OP9scEgvdcngyk7AVdY6YVW/TJHd+lQ/Df3Daw==", + "node_modules/@vitest/runner": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-4.1.11.tgz", + "integrity": "sha512-LztvUgdwMNJMIkj3hQnnxiC2Xy1zNxq928W/xhjCLaNCzqTZOudjwbQf6v9IntZGPw132i2Lq2rgTRZHD3JHNw==", "dev": true, + "license": "MIT", "dependencies": { - "array-union": "^1.0.1", - "glob": "^7.0.3", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" + "@vitest/utils": "4.1.11", + "pathe": "^2.0.3" }, - "engines": { - "node": ">=0.10.0" + "funding": { + "url": "https://opencollective.com/vitest" } }, - "node_modules/gh-pages/node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "node_modules/@vitest/snapshot": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-4.1.11.tgz", + "integrity": "sha512-pN7ikn1ON7h8ee4gIAp4AzyK+zBtJPzVbqOgu5LCEh4VaJVbPQcgYQYJIMGQPXVeJJq1fnfazis7a5pFNPahog==", "dev": true, + "license": "MIT", "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" + "@vitest/pretty-format": "4.1.11", + "@vitest/utils": "4.1.11", + "magic-string": "^0.30.21", + "pathe": "^2.0.3" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://opencollective.com/vitest" } }, - "node_modules/gh-pages/node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "node_modules/@vitest/spy": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-4.1.11.tgz", + "integrity": "sha512-apNa/prQy2qCeywhnixOHPRCgGNhvg7T4Dapfl1GahLp/R+uhBm5cPyFoNVyqsNd2h1nJxL6BqqdIjiABL60YA==", "dev": true, - "engines": { - "node": ">=0.10.0" + "license": "MIT", + "funding": { + "url": "https://opencollective.com/vitest" } }, - "node_modules/gh-pages/node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "node_modules/@vitest/utils": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-4.1.11.tgz", + "integrity": "sha512-zTCVGpyFsGWBhllOyKlTw/vnr6D9qxsfSDyfbyZmTyjHw5N/VuvzHpHoQjm2ZJzn4RJgx5w4r7V0er69CmLgPQ==", "dev": true, + "license": "MIT", "dependencies": { - "find-up": "^4.0.0" + "@vitest/pretty-format": "4.1.11", + "convert-source-map": "^2.0.0", + "tinyrainbow": "^3.1.0" }, - "engines": { - "node": ">=8" + "funding": { + "url": "https://opencollective.com/vitest" } }, - "node_modules/gh-pages/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "node_modules/@vitest/utils/node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", "dev": true, - "bin": { - "semver": "bin/semver.js" - } + "license": "MIT" }, - "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "node_modules/@yarnpkg/lockfile": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz", + "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==", + "dev": true + }, + "node_modules/abbrev": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-4.0.0.tgz", + "integrity": "sha512-a1wflyaL0tHtJSmLSOVybYhy22vRih4eduhhrkcjgrWGnRfrZtovJ2FRjxuTtkkj47O/baf0R86QU5OuYpz8fA==", "dev": true, - "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" - }, + "license": "ISC", "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": "^20.17.0 || >=22.9.0" } }, - "node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "node_modules/agent-base": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz", + "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==", "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, + "license": "MIT", "engines": { - "node": ">= 6" + "node": ">= 14" } }, - "node_modules/glob-to-regex.js": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/glob-to-regex.js/-/glob-to-regex.js-1.3.1.tgz", - "integrity": "sha512-zhWhMRsgnOym+1txhUmYJGD6eUsbUdrZv55gCYKuJX8t2p3+M8My23PD09bEIsreGUs5pnSa/idmcfp2/IlqGg==", + "node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=10.0" + "peer": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" }, "funding": { "type": "github", - "url": "https://github.com/sponsors/streamich" - }, - "peerDependencies": { - "tslib": "2" + "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/glob-to-regexp": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", - "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", - "dev": true, - "license": "BSD-2-Clause" - }, - "node_modules/globalthis": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", - "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", + "node_modules/ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", "dev": true, + "peer": true, "dependencies": { - "define-properties": "^1.2.1", - "gopd": "^1.0.1" + "ajv": "^8.0.0" }, - "engines": { - "node": ">= 0.4" + "peerDependencies": { + "ajv": "^8.0.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependenciesMeta": { + "ajv": { + "optional": true + } } }, - "node_modules/gopd": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", - "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "node_modules/algoliasearch": { + "version": "5.48.1", + "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-5.48.1.tgz", + "integrity": "sha512-Rf7xmeuIo7nb6S4mp4abW2faW8DauZyE2faBIKFaUfP3wnpOvNSbiI5AwVhqBNj0jPgBWEvhyCu0sLjN2q77Rg==", "dev": true, "license": "MIT", - "engines": { - "node": ">= 0.4" + "dependencies": { + "@algolia/abtesting": "1.14.1", + "@algolia/client-abtesting": "5.48.1", + "@algolia/client-analytics": "5.48.1", + "@algolia/client-common": "5.48.1", + "@algolia/client-insights": "5.48.1", + "@algolia/client-personalization": "5.48.1", + "@algolia/client-query-suggestions": "5.48.1", + "@algolia/client-search": "5.48.1", + "@algolia/ingestion": "1.48.1", + "@algolia/monitoring": "1.48.1", + "@algolia/recommend": "5.48.1", + "@algolia/requester-browser-xhr": "5.48.1", + "@algolia/requester-fetch": "5.48.1", + "@algolia/requester-node-http": "5.48.1" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true - }, - "node_modules/handle-thing": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", - "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", - "dev": true, - "license": "MIT" - }, - "node_modules/has-bigints": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", - "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, "engines": { - "node": ">=4" + "node": ">= 14.0.0" } }, - "node_modules/has-property-descriptors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", - "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "node_modules/angular-cli-ghpages": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/angular-cli-ghpages/-/angular-cli-ghpages-1.0.7.tgz", + "integrity": "sha512-7uq+NSqmhVBnA1uimVQVoQfXP80aSJc/nZGdRUiADcTeRQFPamaQUbh4bn2EHiC9TJn44lDOEGnzdhAej0wz6w==", "dev": true, "dependencies": { - "es-define-property": "^1.0.0" + "commander": "^3.0.0-0", + "fs-extra": "^9.0.1", + "gh-pages": "^3.1.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-proto": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", - "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", - "dev": true, - "engines": { - "node": ">= 0.4" + "bin": { + "angular-cli-ghpages": "angular-cli-ghpages", + "ngh": "angular-cli-ghpages" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependencies": { + "@angular-devkit/architect": ">= 0.900 < 0.1602.0", + "@angular-devkit/core": "^9.0.0 || ^10.0.0 || ^11.0.0 || ^12.0.0 || ^13.0.0 || ^14.0.0 || ^15.0.0 || ^16.0.0", + "@angular-devkit/schematics": "^9.0.0 || ^10.0.0 || ^11.0.0 || ^12.0.0 || ^13.0.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" } }, - "node_modules/has-symbols": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", - "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } + "node_modules/angular-cli-ghpages/node_modules/commander": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/commander/-/commander-3.0.2.tgz", + "integrity": "sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow==", + "dev": true }, - "node_modules/has-tostringtag": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", - "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "node_modules/angular-cli-ghpages/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", "dev": true, "dependencies": { - "has-symbols": "^1.0.3" + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=10" } }, - "node_modules/hasown": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", - "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "node_modules/angular-cli-ghpages/node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", "dev": true, "dependencies": { - "function-bind": "^1.1.2" + "universalify": "^2.0.0" }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/angular-cli-ghpages/node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true, "engines": { - "node": ">= 0.4" + "node": ">= 10.0.0" } }, - "node_modules/hono": { - "version": "4.13.12", - "resolved": "https://registry.npmjs.org/hono/-/hono-4.13.12.tgz", - "integrity": "sha512-6E2QDAc9Ick9Sq77ZrGS/dk2WUYni91aufTw6LJKpV7w8kW5/GxVUc650FOADOmlwg3K+f7Pun6XlV+pYmW6gw==", + "node_modules/ansi-colors": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", "dev": true, "license": "MIT", "engines": { - "node": ">=16.9.0" + "node": ">=6" } }, - "node_modules/hosted-git-info": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-9.0.3.tgz", - "integrity": "sha512-Hc+ghLoSt6QaYZUv0WBiIvmMDZuZZ7oaDvdH8MbfOO4lOsxdXLEvuC6ePoGs9H1X9oCLyq6+NVN0MKqD+ydxyg==", + "node_modules/ansi-escapes": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-7.3.0.tgz", + "integrity": "sha512-BvU8nYgGQBxcmMuEeUEmNTvrMVjJNSH7RgW24vXexN4Ven6qCvy4TntnvlnwnMLTVlcRQQdbRY8NKnaIoeWDNg==", "dev": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "lru-cache": "^11.1.0" + "environment": "^1.0.0" }, "engines": { - "node": "^20.17.0 || >=22.9.0" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/hosted-git-info/node_modules/lru-cache": { - "version": "11.5.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.5.3.tgz", - "integrity": "sha512-U4N8FgzmWxc8k1VH8Kr6lQg18U7Fjvby6wXHVRX/ZZ7IwWbRMgrRbP0Wrb5q5NVinryp4SQampHKdvtecItxUg==", + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, - "license": "BlueOak-1.0.0", "engines": { - "node": "20 || >=22" + "node": ">=8" } }, - "node_modules/hpack.js": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", - "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, - "license": "MIT", "dependencies": { - "inherits": "^2.0.1", - "obuf": "^1.0.0", - "readable-stream": "^2.0.1", - "wbuf": "^1.1.0" + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" } }, - "node_modules/hpack.js/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "node_modules/array-buffer-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", + "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", "dev": true, - "license": "MIT", "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" + "call-bind": "^1.0.5", + "is-array-buffer": "^3.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/hpack.js/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true, - "license": "MIT" - }, - "node_modules/hpack.js/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "node_modules/array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==", "dev": true, - "license": "MIT", "dependencies": { - "safe-buffer": "~5.1.0" + "array-uniq": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" } }, - "node_modules/html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "dev": true - }, - "node_modules/htmlparser2": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-10.1.0.tgz", - "integrity": "sha512-VTZkM9GWRAtEpveh7MSF6SjjrpNVNNVJfFup7xTY3UpFtm67foy9HDVXneLtFVt4pMz5kZtgNcvCniNFb1hlEQ==", + "node_modules/array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==", "dev": true, - "funding": [ - "https://github.com/fb55/htmlparser2?sponsor=1", - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ], - "license": "MIT", - "dependencies": { - "domelementtype": "^2.3.0", - "domhandler": "^5.0.3", - "domutils": "^3.2.2", - "entities": "^7.0.1" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/htmlparser2/node_modules/entities": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/entities/-/entities-7.0.1.tgz", - "integrity": "sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==", + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", + "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", "dev": true, - "license": "BSD-2-Clause", + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.3", + "es-errors": "^1.2.1", + "get-intrinsic": "^1.2.3", + "is-array-buffer": "^3.0.4", + "is-shared-array-buffer": "^1.0.2" + }, "engines": { - "node": ">=0.12" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/http-cache-semantics": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.2.0.tgz", - "integrity": "sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ==", - "dev": true, - "license": "BSD-2-Clause" - }, - "node_modules/http-deceiver": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", - "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==", - "dev": true, - "license": "MIT" - }, - "node_modules/http-errors": { + "node_modules/assertion-error": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz", - "integrity": "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz", + "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==", "dev": true, "license": "MIT", - "dependencies": { - "depd": "~2.0.0", - "inherits": "~2.0.4", - "setprototypeof": "~1.2.0", - "statuses": "~2.0.2", - "toidentifier": "~1.0.1" - }, "engines": { - "node": ">= 0.8" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" + "node": ">=12" } }, - "node_modules/http-errors/node_modules/statuses": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz", - "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==", + "node_modules/async": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", + "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", + "dev": true, + "dependencies": { + "lodash": "^4.17.14" + } + }, + "node_modules/at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", "dev": true, - "license": "MIT", "engines": { - "node": ">= 0.8" + "node": ">= 4.0.0" } }, - "node_modules/http-parser-js": { - "version": "0.5.10", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.10.tgz", - "integrity": "sha512-Pysuw9XpUq5dVc/2SMHpuTY01RFl8fttgcyunjL7eEMhGM3cI4eOmiCycJDVCo/7O7ClfQD3SaI6ftDzqOXYMA==", - "dev": true, - "license": "MIT" - }, - "node_modules/http-proxy": { - "version": "1.18.1", - "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", - "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "node_modules/available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", "dev": true, "dependencies": { - "eventemitter3": "^4.0.0", - "follow-redirects": "^1.0.0", - "requires-port": "^1.0.0" + "possible-typed-array-names": "^1.0.0" }, "engines": { - "node": ">=8.0.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/http-proxy-agent": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", - "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", "dev": true, - "license": "MIT", - "dependencies": { - "agent-base": "^7.1.0", - "debug": "^4.3.4" + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "peer": true + }, + "node_modules/baseline-browser-mapping": { + "version": "2.11.27", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.11.27.tgz", + "integrity": "sha512-ElY12DaROGuan+lMmZ8Cvo/ZUbXPe7Enc/9VU/b1T3Kp4dwytRcNdR8DoSJN5SNJT/CuvcCA0DHDVmMOCePdRQ==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "baseline-browser-mapping": "dist/cli.cjs" }, "engines": { - "node": ">= 14" + "node": ">=6.0.0" } }, - "node_modules/http-proxy-middleware": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-3.0.7.tgz", - "integrity": "sha512-iwbQltVlx8bCrqePUM8C+hllHvdawVhQJaLrj1X7qllkvFQdXFsr16pW/mo9+JDVjN+QO2XUx9jd8SmoFkE5qw==", + "node_modules/beasties": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/beasties/-/beasties-0.4.1.tgz", + "integrity": "sha512-2Imdcw3LznDuxAbJM26RHniOLAzE6WgrK8OuvVXCQtNBS8rsnD9zsSEa3fHl4hHpUY7BYTlrpvtPVbvu9G6neg==", "dev": true, - "license": "MIT", + "license": "Apache-2.0", "dependencies": { - "@types/http-proxy": "^1.17.15", - "debug": "^4.3.6", - "http-proxy": "^1.18.1", - "is-glob": "^4.0.3", - "is-plain-object": "^5.0.0", - "micromatch": "^4.0.8" + "css-select": "^6.0.0", + "css-what": "^7.0.0", + "dom-serializer": "^2.0.0", + "domhandler": "^5.0.3", + "htmlparser2": "^10.0.0", + "picocolors": "^1.1.1", + "postcss": "^8.4.49", + "postcss-media-query-parser": "^0.2.3", + "postcss-safe-parser": "^7.0.1" }, "engines": { - "node": "^14.18.0 || ^16.10.0 || >=18.0.0" + "node": ">=18.0.0" } }, - "node_modules/http-proxy-middleware/node_modules/debug": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", - "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "node_modules/bidi-js": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/bidi-js/-/bidi-js-1.1.0.tgz", + "integrity": "sha512-fX1Onk0tdVPC7obPWB5EbJ1z7NVhLq4m2xZLq2YXBkxzMXIGRpNMU88n0EPgWseKl12J7zXs7qrDxPK4sRs2fg==", "dev": true, "license": "MIT", "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "require-from-string": "^2.0.2" } }, - "node_modules/http-proxy-middleware/node_modules/is-plain-object": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.1.0.tgz", - "integrity": "sha512-bUi/yjmtKYcRVUtWRGr0UA6xEFh2I6zWUwMrUXB3s7bmYCaZ8a+0ZsTRkrawh/mzlSD1Y0Ph8bp/U+TvBpWDNw==", + "node_modules/bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" + "peer": true, + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" } }, - "node_modules/http-proxy-middleware/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", "dev": true, - "license": "MIT" + "license": "ISC" }, - "node_modules/https-proxy-agent": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", - "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, - "license": "MIT", "dependencies": { - "agent-base": "^7.1.2", - "debug": "4" - }, - "engines": { - "node": ">= 14" + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, - "node_modules/hyperdyperid": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/hyperdyperid/-/hyperdyperid-1.2.0.tgz", - "integrity": "sha512-Y93lCzHYgGWdrJ66yIktxiaGULYc6oGiABxhcO5AufBeOyoIdZF7bIfLaOrbM0iGIOXQQgxxRrFEnb+Y6w1n4A==", + "node_modules/browserslist": { + "version": "4.29.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.29.3.tgz", + "integrity": "sha512-1R4kiYKXGViqEN0CnoDrXc1StD9niAwu+j2dukWzrD4bJgsD4lDmEp0CRbc6E/vYJIfTHwPmwyaKtVSudICdPA==", "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], "license": "MIT", - "engines": { - "node": ">=10.18" - } - }, - "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" + "baseline-browser-mapping": "^2.11.26", + "caniuse-lite": "^1.0.30001813", + "electron-to-chromium": "^1.5.439", + "node-releases": "^2.0.57", + "update-browserslist-db": "^1.3.3" }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/icss-utils": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", - "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", - "dev": true, - "license": "ISC", - "engines": { - "node": "^10 || ^12 || >= 14" + "bin": { + "browserslist": "cli.js" }, - "peerDependencies": { - "postcss": "^8.1.0" + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" } }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", "dev": true, "funding": [ { @@ -12227,22 +5877,50 @@ "url": "https://feross.org/support" } ], - "peer": true + "peer": true, + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } }, - "node_modules/ignore-walk": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-8.0.0.tgz", - "integrity": "sha512-FCeMZT4NiRQGh+YkeKMtWrOmBgWjHjMJ26WQWrRQyoyzqevdaGSakUaJW5xQYmjLlUVk2qUnCjYVBax9EKKg8A==", + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/cacache": { + "version": "20.0.4", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-20.0.4.tgz", + "integrity": "sha512-M3Lab8NPYlZU2exsL3bMVvMrMqgwCnMWfdZbK28bn3pK6APT/Te/I8hjRPNu1uwORY9a1eEQoifXbKPQMfMTOA==", "dev": true, "license": "ISC", "dependencies": { - "minimatch": "^10.0.3" + "@npmcli/fs": "^5.0.0", + "fs-minipass": "^3.0.0", + "glob": "^13.0.0", + "lru-cache": "^11.1.0", + "minipass": "^7.0.3", + "minipass-collect": "^2.0.1", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "p-map": "^7.0.2", + "ssri": "^13.0.0" }, "engines": { "node": "^20.17.0 || >=22.9.0" } }, - "node_modules/ignore-walk/node_modules/balanced-match": { + "node_modules/cacache/node_modules/balanced-match": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", @@ -12252,20 +5930,48 @@ "node": "18 || 20 || >=22" } }, - "node_modules/ignore-walk/node_modules/brace-expansion": { - "version": "5.0.12", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.12.tgz", - "integrity": "sha512-YovQ3rzhaLMIrDjNDMkNS01tea93qhEhG5xy8f6+R0l+dw3Ki+5sCoIoI942iuLZTHWogWktgwVDhU09iNEimQ==", + "node_modules/cacache/node_modules/brace-expansion": { + "version": "5.0.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.12.tgz", + "integrity": "sha512-YovQ3rzhaLMIrDjNDMkNS01tea93qhEhG5xy8f6+R0l+dw3Ki+5sCoIoI942iuLZTHWogWktgwVDhU09iNEimQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^4.0.2" + }, + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/cacache/node_modules/glob": { + "version": "13.0.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-13.0.6.tgz", + "integrity": "sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "minimatch": "^10.2.2", + "minipass": "^7.1.3", + "path-scurry": "^2.0.2" + }, + "engines": { + "node": "18 || 20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/cacache/node_modules/lru-cache": { + "version": "11.5.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.5.3.tgz", + "integrity": "sha512-U4N8FgzmWxc8k1VH8Kr6lQg18U7Fjvby6wXHVRX/ZZ7IwWbRMgrRbP0Wrb5q5NVinryp4SQampHKdvtecItxUg==", "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^4.0.2" - }, + "license": "BlueOak-1.0.0", "engines": { "node": "20 || >=22" } }, - "node_modules/ignore-walk/node_modules/minimatch": { + "node_modules/cacache/node_modules/minimatch": { "version": "10.2.6", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.6.tgz", "integrity": "sha512-vpLQEs+VLCr1nU0BXS07maYoFwlDAH0gngQuuttxIwutDFEMHq2blX+8vpgxDdK3J1PwjCJiep77OitTZ4Ll1A==", @@ -12281,414 +5987,598 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/immutable": { - "version": "5.1.9", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-5.1.9.tgz", - "integrity": "sha512-m8nVez3rwrgmWxtLMt1ZYXB2Lv7OKYn/disyxAlSDYAlKSlFoPPfIAmAM/M5xqL4m4C/wAPw7S2/CNaUii1Hxg==", + "node_modules/call-bind": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", "dev": true, - "license": "MIT" + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "node_modules/import-fresh": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", - "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", "dev": true, "license": "MIT", "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" }, "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">= 0.4" } }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "node_modules/call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", "dev": true, + "license": "MIT", "dependencies": { - "once": "^1.3.0", - "wrappy": "1" + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true + "node_modules/caniuse-lite": { + "version": "1.0.30001814", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001814.tgz", + "integrity": "sha512-/Uaf1lAzr59XcMpW0o96WoEfr+VXK2OX4U9AgFoiSHsVJ4HppnIFUjtYzsyDH2+tgANaQb2/oxYGwCPapN1FpA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" }, - "node_modules/ini": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/ini/-/ini-6.0.0.tgz", - "integrity": "sha512-IBTdIkzZNOpqm7q3dRqJvMaldXjDHWkEDfrwGEQTs5eaQMWV+djAhR+wahyNNMAa+qpbDUhBMVt4ZKNwpPm7xQ==", + "node_modules/chai": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/chai/-/chai-6.3.0.tgz", + "integrity": "sha512-XWAtwJ6OHO+tj0EKCs0Y2UamnyOxseZWltU4x2U2wh8g4AigdjwvtUjvLP2tqkA/avxHEtzxNaqGq/YGNwckKg==", "dev": true, - "license": "ISC", + "license": "MIT", "engines": { - "node": "^20.17.0 || >=22.9.0" + "node": ">=18" } }, - "node_modules/injection-js": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/injection-js/-/injection-js-2.6.1.tgz", - "integrity": "sha512-dbR5bdhi7TWDoCye9cByZqeg/gAfamm8Vu3G1KZOTYkOif8WkuM8CD0oeDPtZYMzT5YH76JAFB7bkmyY9OJi2A==", + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, - "license": "MIT", "dependencies": { - "tslib": "^2.0.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" } }, - "node_modules/internal-slot": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", - "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", + "node_modules/chardet": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-2.2.0.tgz", + "integrity": "sha512-rddelWYNPRrXq6PtNEN2S3f6t9ILzvqaN5pVgi4kqt9jHQaXIial9PznB5iSPVlQSLNaaH22ItWz3EJtQ10+OA==", + "dev": true, + "license": "MIT" + }, + "node_modules/chownr": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-3.0.0.tgz", + "integrity": "sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==", + "dev": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=18" + } + }, + "node_modules/chroma-js": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/chroma-js/-/chroma-js-3.2.0.tgz", + "integrity": "sha512-os/OippSlX1RlWWr+QDPcGUZs0uoqr32urfxESG9U93lhUfbnlyckte84Q8P1UQY/qth983AS1JONKmLS4T0nw==", + "license": "(BSD-3-Clause AND Apache-2.0)" + }, + "node_modules/cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", "dev": true, + "peer": true, "dependencies": { - "es-errors": "^1.3.0", - "hasown": "^2.0.0", - "side-channel": "^1.0.4" + "restore-cursor": "^3.1.0" }, "engines": { - "node": ">= 0.4" + "node": ">=8" } }, - "node_modules/ip-address": { - "version": "10.7.3", - "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.7.3.tgz", - "integrity": "sha512-A1kdq/tSb5QjvKvAMgIoEvDBIgL7qaqVP/jkvSwYYRZ9iEzvPpopxp2wQfu3SuZRHtpHNxMn8Fs0bS+gf5Xmwg==", + "node_modules/cli-spinners": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz", + "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", + "dev": true, + "peer": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-truncate": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-5.2.0.tgz", + "integrity": "sha512-xRwvIOMGrfOAnM1JYtqQImuaNtDEv9v6oIYAs4LIHwTiKee8uwvIi363igssOC0O5U04i4AlENs79LQLu9tEMw==", "dev": true, "license": "MIT", + "dependencies": { + "slice-ansi": "^8.0.0", + "string-width": "^8.2.0" + }, "engines": { - "node": ">= 12" + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "node_modules/cli-truncate/node_modules/ansi-regex": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.4.0.tgz", + "integrity": "sha512-KzTVk2tCWAHtYrvvvaP8bJKJq2pVinhLcGEQdtLIYPbmNGNyYe8QwNaTUYQp2J7/vIsUKt5QCqAfUkYyG9DkOw==", "dev": true, "license": "MIT", "engines": { - "node": ">= 0.10" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, - "node_modules/is-array-buffer": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", - "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", + "node_modules/cli-truncate/node_modules/string-width": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-8.3.0.tgz", + "integrity": "sha512-ZbmZM0JCihQN91dWnxoipT2KOEyHqEyfRXUyjuRhW8b/xnqPDoq4gWEVApTVa9db2wN8mmoikgFBbjh71+cGeQ==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1" + "get-east-asian-width": "^1.5.0", + "strip-ansi": "^7.1.2" }, "engines": { - "node": ">= 0.4" + "node": ">=20" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "dev": true - }, - "node_modules/is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "node_modules/cli-truncate/node_modules/strip-ansi": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz", + "integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==", "dev": true, + "license": "MIT", "dependencies": { - "has-bigints": "^1.0.1" + "ansi-regex": "^6.2.2" + }, + "engines": { + "node": ">=12" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "node_modules/cli-width": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-4.1.0.tgz", + "integrity": "sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==", "dev": true, - "dependencies": { - "binary-extensions": "^2.0.0" - }, + "license": "ISC", "engines": { - "node": ">=8" + "node": ">= 12" } }, - "node_modules/is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "node_modules/cliui": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-9.0.1.tgz", + "integrity": "sha512-k7ndgKhwoQveBL+/1tqGJYNz097I7WOvwbmmU2AR5+magtbjPWQTS1C5vzGkBC8Ym8UWRzfKUzUUqFLypY4Q+w==", "dev": true, + "license": "ISC", "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" + "string-width": "^7.2.0", + "strip-ansi": "^7.1.0", + "wrap-ansi": "^9.0.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=20" } }, - "node_modules/is-callable": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "node_modules/cliui/node_modules/ansi-regex": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.4.0.tgz", + "integrity": "sha512-KzTVk2tCWAHtYrvvvaP8bJKJq2pVinhLcGEQdtLIYPbmNGNyYe8QwNaTUYQp2J7/vIsUKt5QCqAfUkYyG9DkOw==", "dev": true, + "license": "MIT", "engines": { - "node": ">= 0.4" + "node": ">=12" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, - "node_modules/is-core-module": { - "version": "2.16.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", - "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", + "node_modules/cliui/node_modules/ansi-styles": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", + "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", "dev": true, "license": "MIT", - "dependencies": { - "hasown": "^2.0.2" - }, "engines": { - "node": ">= 0.4" + "node": ">=12" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/is-data-view": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz", - "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==", + "node_modules/cliui/node_modules/emoji-regex": { + "version": "10.6.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.6.0.tgz", + "integrity": "sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==", + "dev": true, + "license": "MIT" + }, + "node_modules/cliui/node_modules/string-width": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", + "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", "dev": true, + "license": "MIT", "dependencies": { - "is-typed-array": "^1.1.13" + "emoji-regex": "^10.3.0", + "get-east-asian-width": "^1.0.0", + "strip-ansi": "^7.1.0" }, "engines": { - "node": ">= 0.4" + "node": ">=18" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-date-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "node_modules/cliui/node_modules/strip-ansi": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz", + "integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==", "dev": true, + "license": "MIT", "dependencies": { - "has-tostringtag": "^1.0.0" + "ansi-regex": "^6.2.2" }, "engines": { - "node": ">= 0.4" + "node": ">=12" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, - "node_modules/is-docker": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz", - "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==", + "node_modules/cliui/node_modules/wrap-ansi": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.2.tgz", + "integrity": "sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww==", "dev": true, "license": "MIT", - "bin": { - "is-docker": "cli.js" + "dependencies": { + "ansi-styles": "^6.2.1", + "string-width": "^7.0.0", + "strip-ansi": "^7.1.0" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=18" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "node_modules/clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", "dev": true, + "peer": true, "engines": { - "node": ">=0.10.0" + "node": ">=0.8" } }, - "node_modules/is-fullwidth-code-point": { + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/colorette": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", + "dev": true, + "license": "MIT" + }, + "node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "node_modules/common-path-prefix": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-3.0.0.tgz", + "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==", + "dev": true, + "license": "ISC" + }, + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", + "dev": true + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/content-disposition": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-1.1.0.tgz", + "integrity": "sha512-5jRCH9Z/+DRP7rkvY83B+yGIGX96OYdJmzngqnw2SBSxqCFPd0w2km3s5iawpGX8krnwSGmF0FW5Nhr0Hfai3g==", "dev": true, + "license": "MIT", "engines": { - "node": ">=8" + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" } }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", "dev": true, - "dependencies": { - "is-extglob": "^2.1.1" - }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.6" } }, - "node_modules/is-in-ssh": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-in-ssh/-/is-in-ssh-1.0.0.tgz", - "integrity": "sha512-jYa6Q9rH90kR1vKB6NM7qqd1mge3Fx4Dhw5TVlK1MUBqhEOuCagrEHMevNuCcbECmXZ0ThXkRm+Ymr51HwEPAw==", + "node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true + }, + "node_modules/cookie-signature": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.2.2.tgz", + "integrity": "sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg==", "dev": true, "license": "MIT", "engines": { - "node": ">=20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=6.6.0" } }, - "node_modules/is-inside-container": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz", - "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==", + "node_modules/copy-anything": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-3.0.5.tgz", + "integrity": "sha512-yCEafptTtb4bk7GLEQoM8KVJpxAfdBJYaXyzQEgQQQgYrZiDp8SJmGKlYza6CYjEDNstAdNdKA3UuoULlEbS6w==", "dev": true, "license": "MIT", "dependencies": { - "is-docker": "^3.0.0" - }, - "bin": { - "is-inside-container": "cli.js" + "is-what": "^4.1.8" }, "engines": { - "node": ">=14.16" + "node": ">=12.13" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/mesqueeb" } }, - "node_modules/is-interactive": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", - "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", + "node_modules/cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", "dev": true, - "peer": true, + "dependencies": { + "object-assign": "^4", + "vary": "^1" + }, "engines": { - "node": ">=8" + "node": ">= 0.10" } }, - "node_modules/is-negative-zero": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", - "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", + "node_modules/cose-base": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/cose-base/-/cose-base-2.2.0.tgz", + "integrity": "sha512-AzlgcsCbUMymkADOJtQm3wO9S3ltPfYOFD5033keQn9NJzIbtnZj+UdBJe7DYml/8TdbtHJW3j58SOnKhWY/5g==", + "dependencies": { + "layout-base": "^2.0.0" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, "engines": { - "node": ">= 0.4" + "node": ">= 8" + } + }, + "node_modules/cross-spawn/node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" } }, - "node_modules/is-network-error": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/is-network-error/-/is-network-error-1.3.2.tgz", - "integrity": "sha512-PhBY86zaxNZUuWP6h13Vu5oFe0XY6/UlKzQnYFELzGVHygP3MxmvTfYSG7GN3aIab/iWudSMgjSnG9Dq+nHrgA==", + "node_modules/css-select": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-6.0.0.tgz", + "integrity": "sha512-rZZVSLle8v0+EY8QAkDWrKhpgt6SA5OtHsgBnsj6ZaLb5dmDVOWUDtQitd9ydxxvEjhewNudS6eTVU7uOyzvXw==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=16" + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^7.0.0", + "domhandler": "^5.0.3", + "domutils": "^3.2.2", + "nth-check": "^2.1.1" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/fb55" } }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "node_modules/css-tree": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-3.2.1.tgz", + "integrity": "sha512-X7sjQzceUhu1u7Y/ylrRZFU2FS6LRiFVp6rKLPg23y3x3c3DOKAwuXGDp+PAGjh6CSnCjYeAul8pcT8bAl+lSA==", "dev": true, "license": "MIT", + "dependencies": { + "mdn-data": "2.27.1", + "source-map-js": "^1.2.1" + }, "engines": { - "node": ">=0.12.0" + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" } }, - "node_modules/is-number-object": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", - "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "node_modules/css-what": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-7.0.0.tgz", + "integrity": "sha512-wD5oz5xibMOPHzy13CyGmogB3phdvcDaB5t0W/Nr5Z2O/agcB8YwOz6e2Lsp10pNDzBoDO9nVa3RGs/2BttpHQ==", "dev": true, - "dependencies": { - "has-tostringtag": "^1.0.0" - }, + "license": "BSD-2-Clause", "engines": { - "node": ">= 0.4" + "node": ">= 6" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/fb55" } }, - "node_modules/is-plain-obj": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", - "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", - "dev": true, + "node_modules/cytoscape": { + "version": "3.34.3", + "resolved": "https://registry.npmjs.org/cytoscape/-/cytoscape-3.34.3.tgz", + "integrity": "sha512-yfYGhRcGAntq6YBD583j4n0Eg3jIxvWmZtz/5uz9UYkeIStSlMxuUja+ec5j3iBD8nv1rwaOAYMW09tBdkSeaQ==", "license": "MIT", "engines": { - "node": ">=10" + "node": ">=0.10" + } + }, + "node_modules/cytoscape-fcose": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/cytoscape-fcose/-/cytoscape-fcose-2.2.0.tgz", + "integrity": "sha512-ki1/VuRIHFCzxWNrsshHYPs6L7TvLu3DL+TyIGEsRcvVERmxokbf5Gdk7mFxZnTdiGtnA4cfSmjZJMviqSuZrQ==", + "dependencies": { + "cose-base": "^2.2.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependencies": { + "cytoscape": "^3.2.0" } }, - "node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "node_modules/cytoscape-layers": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cytoscape-layers/-/cytoscape-layers-3.1.0.tgz", + "integrity": "sha512-HhldyRPURRn4axeDsCiKdKqiZN8bcoWjclLXl3kWekDd7Wy4QHo5cntm4W4kxL/R0u8AA9VAfmNB1P7nJ9scew==", + "license": "MIT", + "peerDependencies": { + "cytoscape": "^3.23.0" + } + }, + "node_modules/data-urls": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-7.0.0.tgz", + "integrity": "sha512-23XHcCF+coGYevirZceTVD7NdJOqVn+49IHyxgszm+JIiHLoB2TkmPtsYkNWT1pvRSGkc35L6NHs0yHkN2SumA==", "dev": true, "license": "MIT", "dependencies": { - "isobject": "^3.0.1" + "whatwg-mimetype": "^5.0.0", + "whatwg-url": "^16.0.0" }, "engines": { - "node": ">=0.10.0" + "node": "^20.19.0 || ^22.12.0 || >=24.0.0" } }, - "node_modules/is-promise": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz", - "integrity": "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "node_modules/data-urls/node_modules/whatwg-url": { + "version": "16.0.1", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-16.0.1.tgz", + "integrity": "sha512-1to4zXBxmXHV3IiSSEInrreIlu02vUOvrhxJJH5vcxYTBDAx51cqZiKdyTxlecdKNSjj8EcxGBxNf6Vg+945gw==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" + "@exodus/bytes": "^1.11.0", + "tr46": "^6.0.0", + "webidl-conversions": "^8.0.1" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": "^20.19.0 || ^22.12.0 || >=24.0.0" } }, - "node_modules/is-shared-array-buffer": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", - "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", + "node_modules/data-view-buffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz", + "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==", "dev": true, "dependencies": { - "call-bind": "^1.0.7" + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" }, "engines": { "node": ">= 0.4" @@ -12697,13 +6587,15 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "node_modules/data-view-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz", + "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==", "dev": true, "dependencies": { - "has-tostringtag": "^1.0.0" + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" }, "engines": { "node": ">= 0.4" @@ -12712,13 +6604,15 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "node_modules/data-view-byte-offset": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz", + "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==", "dev": true, "dependencies": { - "has-symbols": "^1.0.2" + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" }, "engines": { "node": ">= 0.4" @@ -12727,1120 +6621,978 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-typed-array": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", - "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dev": true, "dependencies": { - "which-typed-array": "^1.1.14" + "ms": "2.1.2" }, "engines": { - "node": ">= 0.4" + "node": ">=6.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, - "node_modules/is-unicode-supported": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "node_modules/decimal.js": { + "version": "10.6.0", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.6.0.tgz", + "integrity": "sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==", + "dev": true, + "license": "MIT" + }, + "node_modules/defaults": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", + "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", "dev": true, "peer": true, - "engines": { - "node": ">=10" + "dependencies": { + "clone": "^1.0.2" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-weakref": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", "dev": true, "dependencies": { - "call-bind": "^1.0.2" + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-what": { - "version": "4.1.16", - "resolved": "https://registry.npmjs.org/is-what/-/is-what-4.1.16.tgz", - "integrity": "sha512-ZhMwEosbFJkA0YhFnNDgTM4ZxDRsS6HqTo7qsZM08fehyRYIYa0yHu5R6mgo1n/8MgaPBXiPimPD77baVFYg+A==", - "dev": true, - "license": "MIT", "engines": { - "node": ">=12.13" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/mesqueeb" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-wsl": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-3.1.1.tgz", - "integrity": "sha512-e6rvdUCiQCAuumZslxRJWR/Doq4VpPR82kqclvcS0efgt430SlGIk05vdCN58+VrzgtIcfNODjozVielycD4Sw==", + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", "dev": true, - "license": "MIT", "dependencies": { - "is-inside-container": "^1.0.0" - }, - "engines": { - "node": ">=16" + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/isbinaryfile": { - "version": "4.0.10", - "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.10.tgz", - "integrity": "sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==", - "dev": true, "engines": { - "node": ">= 8.0.0" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/gjtorikian/" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/isexe": { + "node_modules/depd": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true - }, - "node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/istanbul-lib-coverage": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", - "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-instrument": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", - "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", - "dev": true, - "dependencies": { - "@babel/core": "^7.12.3", - "@babel/parser": "^7.14.7", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-instrument/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/istanbul-lib-report": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", - "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", - "dev": true, - "dependencies": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^4.0.0", - "supports-color": "^7.1.0" - }, + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "dev": true, "engines": { - "node": ">=10" + "node": ">= 0.8" } }, - "node_modules/istanbul-lib-report/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "node_modules/dependency-graph": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-1.0.0.tgz", + "integrity": "sha512-cW3gggJ28HZ/LExwxP2B++aiKxhJXMSIt9K48FOXQkm+vuG5gyatXnLsONRJdzO/7VfjDIiaOOa/bs4l464Lwg==", "dev": true, + "license": "MIT", "engines": { - "node": ">=8" + "node": ">=4" } }, - "node_modules/istanbul-lib-report/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/detect-libc": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", + "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, + "license": "Apache-2.0", + "optional": true, "engines": { "node": ">=8" } }, - "node_modules/istanbul-lib-source-maps": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", - "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", "dev": true, + "license": "MIT", "dependencies": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" }, - "engines": { - "node": ">=10" + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" } }, - "node_modules/istanbul-lib-source-maps/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", "dev": true, - "engines": { - "node": ">=0.10.0" - } + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "BSD-2-Clause" }, - "node_modules/istanbul-reports": { - "version": "3.1.7", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz", - "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==", + "node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" + "domelementtype": "^2.3.0" }, "engines": { - "node": ">=8" + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" } }, - "node_modules/jasmine-core": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-4.6.0.tgz", - "integrity": "sha512-O236+gd0ZXS8YAjFx8xKaJ94/erqUliEkJTDedyE7iHvv4ZVqi+q+8acJxu05/WJDKm512EUNn809In37nWlAQ==", - "dev": true - }, - "node_modules/jest-worker": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", - "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "node_modules/domutils": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz", + "integrity": "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==", "dev": true, - "license": "MIT", + "license": "BSD-2-Clause", "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" }, - "engines": { - "node": ">= 10.13.0" + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" } }, - "node_modules/jest-worker/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", "dev": true, "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, "engines": { - "node": ">=8" + "node": ">= 0.4" } }, - "node_modules/jest-worker/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "dev": true + }, + "node_modules/electron-to-chromium": { + "version": "1.5.444", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.444.tgz", + "integrity": "sha512-5ss/uJfoDYDHT0lfJzT6FbcskIzROIOPf0BbbFkGcvDzoJU7i//9GDrwwIHQVmIsrAGiF3ihpADBRIsrEFt1rQ==", "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, + "license": "ISC" + }, + "node_modules/email-addresses": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/email-addresses/-/email-addresses-3.1.0.tgz", + "integrity": "sha512-k0/r7GrWVL32kZlGwfPNgB2Y/mMXVTq/decgLczm/j34whdaspNrZO8CnXPf1laaHxI6ptUlsnAxN+UAPw+fzg==", + "dev": true + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "dev": true, + "license": "BSD-2-Clause", "engines": { - "node": ">=10" + "node": ">=0.12" }, "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" + "url": "https://github.com/fb55/entities?sponsor=1" } }, - "node_modules/jiti": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.7.0.tgz", - "integrity": "sha512-AC/7JofJvZGrrneWNaEnJeOLUx+JlGt7tNa0wZiRPT4MY1wmfKjt2+6O2p2uz2+skll8OZZmJMNqeke7kKbNgQ==", + "node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", "dev": true, - "license": "MIT", - "bin": { - "jiti": "lib/jiti-cli.mjs" + "engines": { + "node": ">=6" } }, - "node_modules/jose": { - "version": "6.2.12", - "resolved": "https://registry.npmjs.org/jose/-/jose-6.2.12.tgz", - "integrity": "sha512-9NiFmJEex0sy2Dk58j2UGBSHgUs2ypF9eZSu4L6vjOX3Dp96Sw1F3uL+H+D1sx02jZZdzUT0HgvCy59CuvXcWw==", + "node_modules/environment": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/environment/-/environment-1.1.0.tgz", + "integrity": "sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==", "dev": true, "license": "MIT", + "engines": { + "node": ">=18" + }, "funding": { - "url": "https://github.com/sponsors/panva" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/js-yaml": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.3.2.tgz", - "integrity": "sha512-SFNOvSJ+Dgf/9An904Yx+CgSlIPCkIpao4qo51lpee25TIRejdH3rhR4EZMGoNx3/TP3O+wzWuiTFl4sqbltzA==", + "node_modules/errno": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", + "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/puzrin" - }, - { - "type": "github", - "url": "https://github.com/sponsors/nodeca" - } - ], "license": "MIT", + "optional": true, "dependencies": { - "argparse": "^2.0.1" + "prr": "~1.0.1" }, "bin": { - "js-yaml": "bin/js-yaml.js" + "errno": "cli.js" } }, - "node_modules/jsesc": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", - "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", "dev": true, - "license": "MIT", - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=6" + "dependencies": { + "is-arrayish": "^0.2.1" } }, - "node_modules/json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", - "dev": true - }, - "node_modules/json-parse-even-better-errors": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-5.0.0.tgz", - "integrity": "sha512-ZF1nxZ28VhQouRWhUcVlUIN3qwSgPuswK05s/HIaoetAoE/9tngVmCHjSxmSQPav1nd+lPtTL0YZ/2AFdR/iYQ==", + "node_modules/es-abstract": { + "version": "1.23.3", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz", + "integrity": "sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==", "dev": true, - "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "arraybuffer.prototype.slice": "^1.0.3", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "data-view-buffer": "^1.0.1", + "data-view-byte-length": "^1.0.1", + "data-view-byte-offset": "^1.0.0", + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-set-tostringtag": "^2.0.3", + "es-to-primitive": "^1.2.1", + "function.prototype.name": "^1.1.6", + "get-intrinsic": "^1.2.4", + "get-symbol-description": "^1.0.2", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.0.3", + "has-symbols": "^1.0.3", + "hasown": "^2.0.2", + "internal-slot": "^1.0.7", + "is-array-buffer": "^3.0.4", + "is-callable": "^1.2.7", + "is-data-view": "^1.0.1", + "is-negative-zero": "^2.0.3", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.3", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.13", + "is-weakref": "^1.0.2", + "object-inspect": "^1.13.1", + "object-keys": "^1.1.1", + "object.assign": "^4.1.5", + "regexp.prototype.flags": "^1.5.2", + "safe-array-concat": "^1.1.2", + "safe-regex-test": "^1.0.3", + "string.prototype.trim": "^1.2.9", + "string.prototype.trimend": "^1.0.8", + "string.prototype.trimstart": "^1.0.8", + "typed-array-buffer": "^1.0.2", + "typed-array-byte-length": "^1.0.1", + "typed-array-byte-offset": "^1.0.2", + "typed-array-length": "^1.0.6", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.15" + }, "engines": { - "node": "^20.17.0 || >=22.9.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - }, - "node_modules/json-schema-typed": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/json-schema-typed/-/json-schema-typed-8.0.2.tgz", - "integrity": "sha512-fQhoXdcvc3V28x7C7BMs4P5+kNlgUURe2jmUT1T//oBRMDrqy1QPelJimwZGo7Hg9VPV3EQV5Bnq4hbFy2vetA==", - "dev": true, - "license": "BSD-2-Clause" - }, - "node_modules/json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", "dev": true, - "bin": { - "json5": "lib/cli.js" - }, + "license": "MIT", "engines": { - "node": ">=6" + "node": ">= 0.4" } }, - "node_modules/jsonc-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.3.1.tgz", - "integrity": "sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", "dev": true, - "optionalDependencies": { - "graceful-fs": "^4.1.6" + "engines": { + "node": ">= 0.4" } }, - "node_modules/jsonparse": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", - "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==", + "node_modules/es-module-lexer": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-2.3.2.tgz", + "integrity": "sha512-poHGpORABojJJucnV9KbOavETW8lBVnphkW77ER5/BQ5Fz7oXSoCNek7IH3vR5nRjdsEz926ibFYX8KtLQmdyw==", "dev": true, - "engines": [ - "node >= 0.2.0" - ], "license": "MIT" }, - "node_modules/karma": { - "version": "6.4.3", - "resolved": "https://registry.npmjs.org/karma/-/karma-6.4.3.tgz", - "integrity": "sha512-LuucC/RE92tJ8mlCwqEoRWXP38UMAqpnq98vktmS9SznSoUPPUJQbc91dHcxcunROvfQjdORVA/YFviH+Xci9Q==", + "node_modules/es-object-atoms": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.2.tgz", + "integrity": "sha512-HWcBoN6NileqtSydK2FqHbS/LoDd2pqrnQHLyJzBj4kOp/ky2MWMN694xOfkK8/SnUsW2DH7EfyVlydKCsm1Zw==", "dev": true, + "license": "MIT", "dependencies": { - "@colors/colors": "1.5.0", - "body-parser": "^1.19.0", - "braces": "^3.0.2", - "chokidar": "^3.5.1", - "connect": "^3.7.0", - "di": "^0.0.1", - "dom-serialize": "^2.2.1", - "glob": "^7.1.7", - "graceful-fs": "^4.2.6", - "http-proxy": "^1.18.1", - "isbinaryfile": "^4.0.8", - "lodash": "^4.17.21", - "log4js": "^6.4.1", - "mime": "^2.5.2", - "minimatch": "^3.0.4", - "mkdirp": "^0.5.5", - "qjobs": "^1.2.0", - "range-parser": "^1.2.1", - "rimraf": "^3.0.2", - "socket.io": "^4.7.2", - "source-map": "^0.6.1", - "tmp": "^0.2.1", - "ua-parser-js": "^0.7.30", - "yargs": "^16.1.1" - }, - "bin": { - "karma": "bin/karma" + "es-errors": "^1.3.0" }, "engines": { - "node": ">= 10" - } - }, - "node_modules/karma-chrome-launcher": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-3.2.0.tgz", - "integrity": "sha512-rE9RkUPI7I9mAxByQWkGJFXfFD6lE4gC5nPuZdobf/QdTEJI6EU4yIay/cfU/xV4ZxlM5JiTv7zWYgA64NpS5Q==", - "dev": true, - "dependencies": { - "which": "^1.2.1" + "node": ">= 0.4" } }, - "node_modules/karma-coverage": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/karma-coverage/-/karma-coverage-2.2.1.tgz", - "integrity": "sha512-yj7hbequkQP2qOSb20GuNSIyE//PgJWHwC2IydLE6XRtsnaflv+/OSGNssPjobYUlhVVagy99TQpqUt3vAUG7A==", + "node_modules/es-set-tostringtag": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", + "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", "dev": true, "dependencies": { - "istanbul-lib-coverage": "^3.2.0", - "istanbul-lib-instrument": "^5.1.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.1", - "istanbul-reports": "^3.0.5", - "minimatch": "^3.0.4" + "get-intrinsic": "^1.2.4", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.1" }, "engines": { - "node": ">=10.0.0" + "node": ">= 0.4" } }, - "node_modules/karma-jasmine": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/karma-jasmine/-/karma-jasmine-5.1.0.tgz", - "integrity": "sha512-i/zQLFrfEpRyQoJF9fsCdTMOF5c2dK7C7OmsuKg2D0YSsuZSfQDiLuaiktbuio6F2wiCsZSnSnieIQ0ant/uzQ==", + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", "dev": true, "dependencies": { - "jasmine-core": "^4.1.0" + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" }, "engines": { - "node": ">=12" + "node": ">= 0.4" }, - "peerDependencies": { - "karma": "^6.0.0" - } - }, - "node_modules/karma-jasmine-html-reporter": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/karma-jasmine-html-reporter/-/karma-jasmine-html-reporter-2.1.0.tgz", - "integrity": "sha512-sPQE1+nlsn6Hwb5t+HHwyy0A1FNCVKuL1192b+XNauMYWThz2kweiBVW1DqloRpVvZIJkIoHVB7XRpK78n1xbQ==", - "dev": true, - "peerDependencies": { - "jasmine-core": "^4.0.0 || ^5.0.0", - "karma": "^6.0.0", - "karma-jasmine": "^5.0.0" - } - }, - "node_modules/karma-source-map-support": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/karma-source-map-support/-/karma-source-map-support-1.4.0.tgz", - "integrity": "sha512-RsBECncGO17KAoJCYXjv+ckIz+Ii9NCi+9enk+rq6XC81ezYkb4/RHE6CTXdA7IOJqoF3wcaLfVG0CPmE5ca6A==", - "dev": true, - "dependencies": { - "source-map-support": "^0.5.5" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/karma/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/esbuild": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.28.1.tgz", + "integrity": "sha512-HrJrvZv5ayxBzPfwphOoNzkzOIIlifzk0KJrGK2c8R4+LKpMtpYLQeUdjnwjWv/LZlkH2laZk+4w78pi99D4Vw==", "dev": true, - "dependencies": { - "color-convert": "^2.0.1" + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" }, "engines": { - "node": ">=8" + "node": ">=18" }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/karma/node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.28.1", + "@esbuild/android-arm": "0.28.1", + "@esbuild/android-arm64": "0.28.1", + "@esbuild/android-x64": "0.28.1", + "@esbuild/darwin-arm64": "0.28.1", + "@esbuild/darwin-x64": "0.28.1", + "@esbuild/freebsd-arm64": "0.28.1", + "@esbuild/freebsd-x64": "0.28.1", + "@esbuild/linux-arm": "0.28.1", + "@esbuild/linux-arm64": "0.28.1", + "@esbuild/linux-ia32": "0.28.1", + "@esbuild/linux-loong64": "0.28.1", + "@esbuild/linux-mips64el": "0.28.1", + "@esbuild/linux-ppc64": "0.28.1", + "@esbuild/linux-riscv64": "0.28.1", + "@esbuild/linux-s390x": "0.28.1", + "@esbuild/linux-x64": "0.28.1", + "@esbuild/netbsd-arm64": "0.28.1", + "@esbuild/netbsd-x64": "0.28.1", + "@esbuild/openbsd-arm64": "0.28.1", + "@esbuild/openbsd-x64": "0.28.1", + "@esbuild/openharmony-arm64": "0.28.1", + "@esbuild/sunos-x64": "0.28.1", + "@esbuild/win32-arm64": "0.28.1", + "@esbuild/win32-ia32": "0.28.1", + "@esbuild/win32-x64": "0.28.1" } }, - "node_modules/karma/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, + "license": "MIT", "engines": { - "node": ">=7.0.0" + "node": ">=6" } }, - "node_modules/karma/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", "dev": true }, - "node_modules/karma/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">=0.8.0" } }, - "node_modules/karma/node_modules/tmp": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.3.tgz", - "integrity": "sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==", + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", "dev": true, - "engines": { - "node": ">=14.14" - } + "license": "MIT" }, - "node_modules/karma/node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, + "license": "MIT", "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + "node": ">= 0.6" } }, - "node_modules/karma/node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "node_modules/eventsource": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-3.0.7.tgz", + "integrity": "sha512-CRT1WTyuQoD771GW56XEZFQ/ZoSfWid1alKGDYMmkt2yl8UXrVR4pspqWNEcqKvVIzg6PAltWjxcSSPrboA4iA==", "dev": true, + "license": "MIT", "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" + "eventsource-parser": "^3.0.1" }, "engines": { - "node": ">=10" - } - }, - "node_modules/karma/node_modules/yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "dev": true, - "engines": { - "node": ">=10" + "node": ">=18.0.0" } }, - "node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "node_modules/eventsource-parser": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/eventsource-parser/-/eventsource-parser-3.1.1.tgz", + "integrity": "sha512-EKN1vKAMcZ8MlYMpaNuxN6R9yakzH6uajHcHVTqWJzvu5pWw9DyhbP35HH8MVBQ+dZjAfDxk+A8NiR9KWaXiyQ==", "dev": true, "license": "MIT", "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/launch-editor": { - "version": "2.14.1", - "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.14.1.tgz", - "integrity": "sha512-QWBrQsMpH7gPr965dsKD/3cKWiNoTjpATQf++Xq63N6sKRGMwlVXz41O1IZTMfZQgBctD/K5Zt06+/I6pP6+HA==", - "dev": true, - "license": "MIT", - "dependencies": { - "picocolors": "^1.1.1", - "shell-quote": "^1.8.4" - } - }, - "node_modules/layout-base": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/layout-base/-/layout-base-2.0.1.tgz", - "integrity": "sha512-dp3s92+uNI1hWIpPGH3jK2kxE2lMjdXdr+DH8ynZHpd6PUlH6x6cbuXnoMmiNumznqaNO31xu9e79F0uuZ0JFg==" - }, - "node_modules/less": { - "version": "4.9.0", - "resolved": "https://registry.npmjs.org/less/-/less-4.9.0.tgz", - "integrity": "sha512-umRhrCH7fCi8Uj2RcwKjJdvUORTjeWqkdKx0LbcZvjIwsAVsnIAGcxHaqowPeBFBjQuWOeC/bve0AlpFzF/+SQ==", + "node": ">=18.0.0" + } + }, + "node_modules/expect-type": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.4.0.tgz", + "integrity": "sha512-KfYbmpRm0VbLjEvVa9yGwCi9GI34xvi7A/HXYWQO65CSD2u3MczUJSuwXKFIxlGsgBQizV9q5J9NHj4VG0n+pA==", "dev": true, "license": "Apache-2.0", - "dependencies": { - "copy-anything": "^3.0.5", - "parse-node-version": "^1.0.1" - }, - "bin": { - "lessc": "bin/lessc" - }, "engines": { - "node": ">=18" - }, - "optionalDependencies": { - "errno": "^0.1.1", - "graceful-fs": "^4.1.2", - "make-dir": "^5.1.0", - "mime": "^1.4.1", - "needle": "^3.1.0", - "probe-image-size": "^7.2.3", - "source-map": "~0.6.0" + "node": ">=12.0.0" } }, - "node_modules/less-loader": { - "version": "12.3.1", - "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-12.3.1.tgz", - "integrity": "sha512-JZZmG7gMzoDP3VGeEG8Sh6FW5wygB5jYL7Wp29FFihuRTsIBacqO3LbRPr2yStYD11riVf13selLm/CPFRDBRQ==", + "node_modules/exponential-backoff": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.3.tgz", + "integrity": "sha512-ZgEeZXj30q+I0EN+CbSSpIyPaJ5HVQD18Z1m+u1FXbAeT94mr1zw50q4q6jiiC447Nl/YTcIYSAftiGqetwXCA==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/express": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/express/-/express-5.2.1.tgz", + "integrity": "sha512-hIS4idWWai69NezIdRt2xFVofaF4j+6INOpJlVOLDO8zXGpUVEVzIYk12UUi2JzjEzWL3IOAxcTubgz9Po0yXw==", "dev": true, "license": "MIT", + "dependencies": { + "accepts": "^2.0.0", + "body-parser": "^2.2.1", + "content-disposition": "^1.0.0", + "content-type": "^1.0.5", + "cookie": "^0.7.1", + "cookie-signature": "^1.2.1", + "debug": "^4.4.0", + "depd": "^2.0.0", + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "etag": "^1.8.1", + "finalhandler": "^2.1.0", + "fresh": "^2.0.0", + "http-errors": "^2.0.0", + "merge-descriptors": "^2.0.0", + "mime-types": "^3.0.0", + "on-finished": "^2.4.1", + "once": "^1.4.0", + "parseurl": "^1.3.3", + "proxy-addr": "^2.0.7", + "qs": "^6.14.0", + "range-parser": "^1.2.1", + "router": "^2.2.0", + "send": "^1.1.0", + "serve-static": "^2.2.0", + "statuses": "^2.0.1", + "type-is": "^2.0.1", + "vary": "^1.1.2" + }, "engines": { - "node": ">= 18.12.0" + "node": ">= 18" }, "funding": { "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "@rspack/core": "0.x || ^1.0.0 || ^2.0.0-0", - "less": "^3.5.0 || ^4.0.0", - "webpack": "^5.0.0" - }, - "peerDependenciesMeta": { - "@rspack/core": { - "optional": true - }, - "webpack": { - "optional": true - } + "url": "https://opencollective.com/express" } }, - "node_modules/less/node_modules/make-dir": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-5.1.0.tgz", - "integrity": "sha512-IfpFq6UM39dUNiphpA6uDezNx/AvWyhwfICWPR3t1VspkgkMZrL+Rk1RbN1bx+aeNYwOrqGJgEgV3yotk+ZUVw==", + "node_modules/express-rate-limit": { + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/express-rate-limit/-/express-rate-limit-8.7.0.tgz", + "integrity": "sha512-hOwV7WOxXfjRpAM1DSJWZDXx3GhplwD8IfwuwvogD8i1Qnkgosw/H45s4ZnFAUHDAhPjlY9hLBvJhKmGMyY26g==", "dev": true, "license": "MIT", - "optional": true, + "dependencies": { + "debug": "^4.4.3", + "ip-address": "^10.2.0" + }, "engines": { - "node": ">=18" + "node": ">= 16" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/express-rate-limit" + }, + "peerDependencies": { + "express": ">= 4.11" } }, - "node_modules/less/node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "node_modules/express-rate-limit/node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", "dev": true, "license": "MIT", - "optional": true, - "bin": { - "mime": "cli.js" + "dependencies": { + "ms": "^2.1.3" }, "engines": { - "node": ">=4" - } - }, - "node_modules/less/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "license": "BSD-3-Clause", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/license-webpack-plugin": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/license-webpack-plugin/-/license-webpack-plugin-4.0.2.tgz", - "integrity": "sha512-771TFWFD70G1wLTC4oU2Cw4qvtmNrIw+wRvBtn+okgHl7slJVi7zfNcdmqDL72BojM30VNJ2UHylr1o77U37Jw==", - "dev": true, - "dependencies": { - "webpack-sources": "^3.0.0" + "node": ">=6.0" }, "peerDependenciesMeta": { - "webpack": { - "optional": true - }, - "webpack-sources": { + "supports-color": { "optional": true } } }, - "node_modules/lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "node_modules/express-rate-limit/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "dev": true, "license": "MIT" }, - "node_modules/listr2": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/listr2/-/listr2-9.0.5.tgz", - "integrity": "sha512-ME4Fb83LgEgwNw96RKNvKV4VTLuXfoKudAmm2lP8Kk87KaMK0/Xrx/aAkMWmT8mDb+3MlFDspfbCs7adjRxA2g==", + "node_modules/express/node_modules/accepts": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-2.0.0.tgz", + "integrity": "sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng==", "dev": true, "license": "MIT", "dependencies": { - "cli-truncate": "^5.0.0", - "colorette": "^2.0.20", - "eventemitter3": "^5.0.1", - "log-update": "^6.1.0", - "rfdc": "^1.4.1", - "wrap-ansi": "^9.0.0" + "mime-types": "^3.0.0", + "negotiator": "^1.0.0" }, "engines": { - "node": ">=20.0.0" + "node": ">= 0.6" } }, - "node_modules/listr2/node_modules/ansi-regex": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.4.0.tgz", - "integrity": "sha512-KzTVk2tCWAHtYrvvvaP8bJKJq2pVinhLcGEQdtLIYPbmNGNyYe8QwNaTUYQp2J7/vIsUKt5QCqAfUkYyG9DkOw==", + "node_modules/express/node_modules/body-parser": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-2.3.0.tgz", + "integrity": "sha512-2cGmJupaNgg+QUwVLAucDuWuoMZ6EX9iHDRswZ5lsNYEmwPaRknMPCLZz07yTzVq/83p4o/wzbDZbBrTvGGTIw==", "dev": true, "license": "MIT", + "dependencies": { + "bytes": "^3.1.2", + "content-type": "^2.0.0", + "debug": "^4.4.3", + "http-errors": "^2.0.1", + "iconv-lite": "^0.7.2", + "on-finished": "^2.4.1", + "qs": "^6.15.2", + "raw-body": "^3.0.2", + "type-is": "^2.1.0" + }, "engines": { - "node": ">=12" + "node": ">=18" }, "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" + "type": "opencollective", + "url": "https://opencollective.com/express" } }, - "node_modules/listr2/node_modules/ansi-styles": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", - "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", + "node_modules/express/node_modules/body-parser/node_modules/content-type": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-2.1.0.tgz", + "integrity": "sha512-mj7UPXE0jaqaOsukNZRUEfEi2AcL7C/vwmwcHV0O97eO1E1pxBZuyjlZrx5seTaNBg1U6+o35wpa35Qfcc+7ag==", "dev": true, "license": "MIT", "engines": { - "node": ">=12" + "node": ">=18" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "type": "opencollective", + "url": "https://opencollective.com/express" } }, - "node_modules/listr2/node_modules/emoji-regex": { - "version": "10.6.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.6.0.tgz", - "integrity": "sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==", - "dev": true, - "license": "MIT" - }, - "node_modules/listr2/node_modules/eventemitter3": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.4.tgz", - "integrity": "sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw==", + "node_modules/express/node_modules/cookie": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", + "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", "dev": true, - "license": "MIT" + "license": "MIT", + "engines": { + "node": ">= 0.6" + } }, - "node_modules/listr2/node_modules/string-width": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", - "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", + "node_modules/express/node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", "dev": true, "license": "MIT", "dependencies": { - "emoji-regex": "^10.3.0", - "get-east-asian-width": "^1.0.0", - "strip-ansi": "^7.1.0" + "ms": "^2.1.3" }, "engines": { - "node": ">=18" + "node": ">=6.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, - "node_modules/listr2/node_modules/strip-ansi": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz", - "integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==", + "node_modules/express/node_modules/encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/express/node_modules/finalhandler": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-2.1.1.tgz", + "integrity": "sha512-S8KoZgRZN+a5rNwqTxlZZePjT/4cnm0ROV70LedRHZ0p8u9fRID0hJUZQpkKLzro8LfmC8sx23bY6tVNxv8pQA==", "dev": true, "license": "MIT", "dependencies": { - "ansi-regex": "^6.2.2" + "debug": "^4.4.0", + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "on-finished": "^2.4.1", + "parseurl": "^1.3.3", + "statuses": "^2.0.1" }, "engines": { - "node": ">=12" + "node": ">= 18.0.0" }, "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" + "type": "opencollective", + "url": "https://opencollective.com/express" } }, - "node_modules/listr2/node_modules/wrap-ansi": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.2.tgz", - "integrity": "sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww==", + "node_modules/express/node_modules/iconv-lite": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.3.tgz", + "integrity": "sha512-IKXpvIzjnC9XTAUbVBcMfGS0EPaIXtW6v+zr+RRp+hqULEpo0owZax6wyRwPOJbWbzjYspQwusTsfVr0ifh4uQ==", "dev": true, "license": "MIT", "dependencies": { - "ansi-styles": "^6.2.1", - "string-width": "^7.0.0", - "strip-ansi": "^7.1.0" + "safer-buffer": ">= 2.1.2 < 3.0.0" }, "engines": { - "node": ">=18" + "node": ">=0.10.0" }, "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + "type": "opencollective", + "url": "https://opencollective.com/express" } }, - "node_modules/lmdb": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/lmdb/-/lmdb-3.5.1.tgz", - "integrity": "sha512-NYHA0MRPjvNX+vSw8Xxg6FLKxzAG+e7Pt8RqAQA/EehzHVXq9SxDqJIN3JL1hK0dweb884y8kIh6rkWvPyg9Wg==", + "node_modules/express/node_modules/media-typer": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-1.1.1.tgz", + "integrity": "sha512-yz3xRaG20c6/BOzvYoDaGtPmGscs7YivItZEEqe6GbwNfHuxu9YNmvnEkMzKldAGY4/80pRcQRZSEnhquk9XuQ==", "dev": true, - "hasInstallScript": true, "license": "MIT", - "optional": true, - "dependencies": { - "@harperfast/extended-iterable": "^1.0.3", - "msgpackr": "^1.11.2", - "node-addon-api": "^6.1.0", - "node-gyp-build-optional-packages": "5.2.2", - "ordered-binary": "^1.5.3", - "weak-lru-cache": "^1.2.2" - }, - "bin": { - "download-lmdb-prebuilds": "bin/download-prebuilds.js" + "engines": { + "node": ">= 0.8" }, - "optionalDependencies": { - "@lmdb/lmdb-darwin-arm64": "3.5.1", - "@lmdb/lmdb-darwin-x64": "3.5.1", - "@lmdb/lmdb-linux-arm": "3.5.1", - "@lmdb/lmdb-linux-arm64": "3.5.1", - "@lmdb/lmdb-linux-x64": "3.5.1", - "@lmdb/lmdb-win32-arm64": "3.5.1", - "@lmdb/lmdb-win32-x64": "3.5.1" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" } }, - "node_modules/load-json-file": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", - "integrity": "sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==", + "node_modules/express/node_modules/mime-db": { + "version": "1.54.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", + "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" - }, + "license": "MIT", "engines": { - "node": ">=4" + "node": ">= 0.6" } }, - "node_modules/load-json-file/node_modules/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", + "node_modules/express/node_modules/mime-types": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.2.tgz", + "integrity": "sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==", "dev": true, + "license": "MIT", "dependencies": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" + "mime-db": "^1.54.0" }, "engines": { - "node": ">=4" + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" } }, - "node_modules/load-json-file/node_modules/pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "node_modules/express/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "dev": true, - "engines": { - "node": ">=4" - } + "license": "MIT" }, - "node_modules/loader-runner": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.2.tgz", - "integrity": "sha512-DFEqQ3ihfS9blba08cLfYf1NRAIEm+dDjic073DRDc3/JspI/8wYmtDsHwd3+4hwvdxSK7PGaElfTmm0awWJ4w==", + "node_modules/express/node_modules/negotiator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-1.1.0.tgz", + "integrity": "sha512-NMPBRMJgiQHjbd8phG3Vebdx4kZ1H121rbl5IkMqeOsahptB9BKo/d7oJ3zTXqTgagn2bWlNSXkh0QUGM31RYg==", "dev": true, "license": "MIT", + "dependencies": { + "content-type": "^2.1.0" + }, "engines": { - "node": ">=6.11.5" + "node": ">=18" }, "funding": { "type": "opencollective", - "url": "https://opencollective.com/webpack" + "url": "https://opencollective.com/express" } }, - "node_modules/loader-utils": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.3.1.tgz", - "integrity": "sha512-FMJTLMXfCLMLfJxcX9PFqX5qD88Z5MRGaZCVzfuqeZSPsyiBzs+pahDQjbIWz2QIzPZz0NX9Zy4FX3lmK6YHIg==", + "node_modules/express/node_modules/negotiator/node_modules/content-type": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-2.1.0.tgz", + "integrity": "sha512-mj7UPXE0jaqaOsukNZRUEfEi2AcL7C/vwmwcHV0O97eO1E1pxBZuyjlZrx5seTaNBg1U6+o35wpa35Qfcc+7ag==", "dev": true, "license": "MIT", "engines": { - "node": ">= 12.13.0" + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" } }, - "node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "node_modules/express/node_modules/raw-body": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-3.0.2.tgz", + "integrity": "sha512-K5zQjDllxWkf7Z5xJdV0/B0WTNqx6vxG70zJE4N0kBs4LovmEYWJzQGxC9bS9RAKu3bgM40lrd5zoLJ12MQ5BA==", "dev": true, + "license": "MIT", "dependencies": { - "p-locate": "^4.1.0" + "bytes": "~3.1.2", + "http-errors": "~2.0.1", + "iconv-lite": "~0.7.0", + "unpipe": "~1.0.0" }, "engines": { - "node": ">=8" + "node": ">= 0.10" } }, - "node_modules/lodash": { - "version": "4.18.1", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.18.1.tgz", - "integrity": "sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==", - "license": "MIT" - }, - "node_modules/lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", - "dev": true, - "license": "MIT" - }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "node_modules/express/node_modules/statuses": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz", + "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==", "dev": true, "license": "MIT", - "optional": true - }, - "node_modules/log-symbols": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", - "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", - "dev": true, - "peer": true, - "dependencies": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" - }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">= 0.8" } }, - "node_modules/log-symbols/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/express/node_modules/type-is": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-2.1.0.tgz", + "integrity": "sha512-faYHw0anBbc/kWF3zFTEnxSFOAGUX9GFbOBthvDdLsIlEoWOFOtS0zgCiQYwIskL9iGXZL3kAXD8OoZ4GmMATA==", "dev": true, - "peer": true, + "license": "MIT", "dependencies": { - "color-convert": "^2.0.1" + "content-type": "^2.0.0", + "media-typer": "^1.1.0", + "mime-types": "^3.0.0" }, "engines": { - "node": ">=8" + "node": ">= 18" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "type": "opencollective", + "url": "https://opencollective.com/express" } }, - "node_modules/log-symbols/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/express/node_modules/type-is/node_modules/content-type": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-2.1.0.tgz", + "integrity": "sha512-mj7UPXE0jaqaOsukNZRUEfEi2AcL7C/vwmwcHV0O97eO1E1pxBZuyjlZrx5seTaNBg1U6+o35wpa35Qfcc+7ag==", "dev": true, - "peer": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, + "license": "MIT", "engines": { - "node": ">=10" + "node": ">=18" }, "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "type": "opencollective", + "url": "https://opencollective.com/express" } }, - "node_modules/log-symbols/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/fast-uri": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.8.tgz", + "integrity": "sha512-GZMtZUTNRpOVIECoXwLNZS5xUGE+mVNbTB8h/7Rwh2TFWcBQiPzTgyZi05BF9UMZKkLJv8XBRJTlU7zg8+ZfMg==", "dev": true, - "peer": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], + "license": "BSD-3-Clause" }, - "node_modules/log-symbols/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", "dev": true, - "peer": true + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } }, - "node_modules/log-symbols/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "node_modules/filename-reserved-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz", + "integrity": "sha512-lc1bnsSr4L4Bdif8Xb/qrtokGbq5zlsms/CYH8PP+WtCkGNF65DPiQY8vG3SakEdRn8Dlnm+gW/qWKKjS5sZzQ==", "dev": true, - "peer": true, "engines": { - "node": ">=8" + "node": ">=4" } }, - "node_modules/log-symbols/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/filenamify": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/filenamify/-/filenamify-4.3.0.tgz", + "integrity": "sha512-hcFKyUG57yWGAzu1CMt/dPzYZuv+jAJUT85bL8mrXvNe6hWj6yEHEc4EdcgiA6Z3oi1/9wXJdZPXF2dZNgwgOg==", "dev": true, - "peer": true, "dependencies": { - "has-flag": "^4.0.0" + "filename-reserved-regex": "^2.0.0", + "strip-outer": "^1.0.1", + "trim-repeated": "^1.0.0" }, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/log-update": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/log-update/-/log-update-6.1.0.tgz", - "integrity": "sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w==", + "node_modules/find-cache-directory": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/find-cache-directory/-/find-cache-directory-6.0.0.tgz", + "integrity": "sha512-CvFd5ivA6HcSHbD+59P7CyzINHXzwhuQK8RY7CxJZtgDSAtRlHiCaQpZQ2lMR/WRyUIEmzUvL6G2AGurMfegZA==", "dev": true, "license": "MIT", "dependencies": { - "ansi-escapes": "^7.0.0", - "cli-cursor": "^5.0.0", - "slice-ansi": "^7.1.0", - "strip-ansi": "^7.1.0", - "wrap-ansi": "^9.0.0" + "common-path-prefix": "^3.0.0", + "pkg-dir": "^8.0.0" }, "engines": { - "node": ">=18" + "node": ">=20" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/log-update/node_modules/ansi-regex": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.4.0.tgz", - "integrity": "sha512-KzTVk2tCWAHtYrvvvaP8bJKJq2pVinhLcGEQdtLIYPbmNGNyYe8QwNaTUYQp2J7/vIsUKt5QCqAfUkYyG9DkOw==", + "node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/log-update/node_modules/ansi-styles": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", - "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", - "dev": true, - "license": "MIT", "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "node": ">=8" } }, - "node_modules/log-update/node_modules/cli-cursor": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-5.0.0.tgz", - "integrity": "sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==", + "node_modules/find-up-simple": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/find-up-simple/-/find-up-simple-1.0.1.tgz", + "integrity": "sha512-afd4O7zpqHeRyg4PfDQsXmlDe2PfdHtJt6Akt8jOWaApLOZk5JXs6VMR29lz03pRe9mpykrRCYIYxaJYcfpncQ==", "dev": true, "license": "MIT", - "dependencies": { - "restore-cursor": "^5.0.0" - }, "engines": { "node": ">=18" }, @@ -13848,1542 +7600,1515 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/log-update/node_modules/emoji-regex": { - "version": "10.6.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.6.0.tgz", - "integrity": "sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==", + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", "dev": true, - "license": "MIT" + "dependencies": { + "is-callable": "^1.1.3" + } }, - "node_modules/log-update/node_modules/is-fullwidth-code-point": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-5.1.0.tgz", - "integrity": "sha512-5XHYaSyiqADb4RnZ1Bdad6cPp8Toise4TzEjcOYDHZkTCbKgiUl7WTUCpNWHuxmDt91wnsZBc9xinNzopv3JMQ==", + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", "dev": true, "license": "MIT", - "dependencies": { - "get-east-asian-width": "^1.3.1" - }, "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">= 0.6" } }, - "node_modules/log-update/node_modules/onetime": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-7.0.0.tgz", - "integrity": "sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==", + "node_modules/fresh": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-2.0.0.tgz", + "integrity": "sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==", "dev": true, "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, "dependencies": { - "mimic-function": "^5.0.0" + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" }, "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=6 <7 || >=8" } }, - "node_modules/log-update/node_modules/restore-cursor": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-5.1.0.tgz", - "integrity": "sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==", + "node_modules/fs-minipass": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.3.tgz", + "integrity": "sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==", "dev": true, - "license": "MIT", + "license": "ISC", "dependencies": { - "onetime": "^7.0.0", - "signal-exit": "^4.1.0" + "minipass": "^7.0.3" }, "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/log-update/node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "dev": true, - "license": "ISC", + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": ">=14" - }, + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/log-update/node_modules/slice-ansi": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-7.1.2.tgz", - "integrity": "sha512-iOBWFgUX7caIZiuutICxVgX1SdxwAVFFKwt1EvMYYec/NWO5meOJ6K5uQxhrYBdQJne4KxiqZc+KptFOWFSI9w==", + "node_modules/function.prototype.name": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", + "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", "dev": true, - "license": "MIT", "dependencies": { - "ansi-styles": "^6.2.1", - "is-fullwidth-code-point": "^5.0.0" + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "functions-have-names": "^1.2.3" }, "engines": { - "node": ">=18" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/chalk/slice-ansi?sponsor=1" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/log-update/node_modules/string-width": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", - "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^10.3.0", - "get-east-asian-width": "^1.0.0", - "strip-ansi": "^7.1.0" - }, - "engines": { - "node": ">=18" - }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/log-update/node_modules/strip-ansi": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz", - "integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==", + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^6.2.2" - }, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" + "node": ">=6.9.0" } }, - "node_modules/log-update/node_modules/wrap-ansi": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.2.tgz", - "integrity": "sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww==", + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-east-asian-width": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.7.0.tgz", + "integrity": "sha512-XjH1AECxf0giL2V1aU8vKyRR2ppRUb5c0EvT7zuJTokQ74bNo52zOtghqdWIqrhUD79fo3x0WfKZdOqxF6LG1Q==", "dev": true, "license": "MIT", - "dependencies": { - "ansi-styles": "^6.2.1", - "string-width": "^7.0.0", - "strip-ansi": "^7.1.0" - }, "engines": { "node": ">=18" }, "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/log4js": { - "version": "6.9.1", - "resolved": "https://registry.npmjs.org/log4js/-/log4js-6.9.1.tgz", - "integrity": "sha512-1somDdy9sChrr9/f4UlzhdaGfDR2c/SaD2a4T7qEkG4jTS57/B3qmnjLYePwQ8cqWnUHZI0iAKxMBpCZICiZ2g==", + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", "dev": true, + "license": "MIT", "dependencies": { - "date-format": "^4.0.14", - "debug": "^4.3.4", - "flatted": "^3.2.7", - "rfdc": "^1.3.0", - "streamroller": "^3.1.5" + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" }, "engines": { - "node": ">=8.0" - } - }, - "node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, - "license": "ISC", - "dependencies": { - "yallist": "^3.0.2" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/magic-string": { - "version": "0.30.21", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", - "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", "dev": true, "license": "MIT", "dependencies": { - "@jridgewell/sourcemap-codec": "^1.5.5" + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" } }, - "node_modules/make-dir": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", - "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", + "node_modules/get-symbol-description": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", + "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", "dev": true, "dependencies": { - "semver": "^7.5.3" + "call-bind": "^1.0.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4" }, "engines": { - "node": ">=10" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/make-fetch-happen": { - "version": "15.0.6", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-15.0.6.tgz", - "integrity": "sha512-Je0fLJ0F5atA7F+eIlLzk+Wkcl57JDf4kf+EW8xiP5E31xOQxkIxTbgf1Oi1Lw9tRI9UEMRdI5Vz2xTzoNU1Jw==", + "node_modules/gh-pages": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/gh-pages/-/gh-pages-3.2.3.tgz", + "integrity": "sha512-jA1PbapQ1jqzacECfjUaO9gV8uBgU6XNMV0oXLtfCX3haGLe5Atq8BxlrADhbD6/UdG9j6tZLWAkAybndOXTJg==", "dev": true, - "license": "ISC", "dependencies": { - "@gar/promise-retry": "^1.0.0", - "@npmcli/agent": "^4.0.0", - "@npmcli/redact": "^4.0.0", - "cacache": "^20.0.1", - "http-cache-semantics": "^4.1.1", - "minipass": "^7.0.2", - "minipass-fetch": "^5.0.0", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^1.0.0", - "proc-log": "^6.0.0", - "ssri": "^13.0.0" + "async": "^2.6.1", + "commander": "^2.18.0", + "email-addresses": "^3.0.1", + "filenamify": "^4.3.0", + "find-cache-dir": "^3.3.1", + "fs-extra": "^8.1.0", + "globby": "^6.1.0" + }, + "bin": { + "gh-pages": "bin/gh-pages.js", + "gh-pages-clean": "bin/gh-pages-clean.js" }, "engines": { - "node": "^20.17.0 || >=22.9.0" + "node": ">=10" } }, - "node_modules/make-fetch-happen/node_modules/content-type": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-2.1.0.tgz", - "integrity": "sha512-mj7UPXE0jaqaOsukNZRUEfEi2AcL7C/vwmwcHV0O97eO1E1pxBZuyjlZrx5seTaNBg1U6+o35wpa35Qfcc+7ag==", + "node_modules/gh-pages/node_modules/find-cache-dir": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", "dev": true, - "license": "MIT", + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + }, "engines": { - "node": ">=18" + "node": ">=8" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" + "url": "https://github.com/avajs/find-cache-dir?sponsor=1" } }, - "node_modules/make-fetch-happen/node_modules/negotiator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-1.1.0.tgz", - "integrity": "sha512-NMPBRMJgiQHjbd8phG3Vebdx4kZ1H121rbl5IkMqeOsahptB9BKo/d7oJ3zTXqTgagn2bWlNSXkh0QUGM31RYg==", + "node_modules/gh-pages/node_modules/globby": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", + "integrity": "sha512-KVbFv2TQtbzCoxAnfD6JcHZTYCzyliEaaeM/gH8qQdkKr5s0OP9scEgvdcngyk7AVdY6YVW/TJHd+lQ/Df3Daw==", "dev": true, - "license": "MIT", "dependencies": { - "content-type": "^2.1.0" + "array-union": "^1.0.1", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" }, "engines": { - "node": ">=18" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" + "node": ">=0.10.0" } }, - "node_modules/math-intrinsics": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", - "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "node_modules/gh-pages/node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", "dev": true, - "license": "MIT", + "dependencies": { + "semver": "^6.0.0" + }, "engines": { - "node": ">= 0.4" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "node_modules/gh-pages/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", "dev": true, "engines": { - "node": ">= 0.6" + "node": ">=0.10.0" } }, - "node_modules/memfs": { - "version": "4.80.0", - "resolved": "https://registry.npmjs.org/memfs/-/memfs-4.80.0.tgz", - "integrity": "sha512-N70W2isi44XdGn7uPo9NJ4zRukcdkwSFHlnYx42SWOH/+hzqNc8P7+tVoA2up4z7faHvNi1RSNCFjxoYQ71VPQ==", + "node_modules/gh-pages/node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", "dev": true, - "license": "Apache-2.0", "dependencies": { - "@jsonjoy.com/fs-core": "4.80.0", - "@jsonjoy.com/fs-fsa": "4.80.0", - "@jsonjoy.com/fs-node": "4.80.0", - "@jsonjoy.com/fs-node-builtins": "4.80.0", - "@jsonjoy.com/fs-node-to-fsa": "4.80.0", - "@jsonjoy.com/fs-node-utils": "4.80.0", - "@jsonjoy.com/fs-print": "4.80.0", - "@jsonjoy.com/fs-snapshot": "4.80.0", - "@jsonjoy.com/json-pack": "^1.11.0", - "@jsonjoy.com/util": "^1.9.0", - "glob-to-regex.js": "^1.3.1", - "thingies": "^2.5.0", - "tree-dump": "^1.0.3", - "tslib": "^2.0.0" + "find-up": "^4.0.0" }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/streamich" + "engines": { + "node": ">=8" } }, - "node_modules/memorystream": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", - "integrity": "sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==", + "node_modules/gh-pages/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, - "engines": { - "node": ">= 0.10.0" + "bin": { + "semver": "bin/semver.js" } }, - "node_modules/merge-descriptors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-2.0.0.tgz", - "integrity": "sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g==", + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "dev": true, - "license": "MIT", + "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": ">=18" + "node": "*" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true, - "license": "MIT" - }, - "node_modules/methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "node_modules/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } + "license": "BSD-2-Clause" }, - "node_modules/micromatch": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", - "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "node_modules/globalthis": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", "dev": true, - "license": "MIT", "dependencies": { - "braces": "^3.0.3", - "picomatch": "^2.3.1" + "define-properties": "^1.2.1", + "gopd": "^1.0.1" }, "engines": { - "node": ">=8.6" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/micromatch/node_modules/picomatch": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz", - "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==", + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", "dev": true, "license": "MIT", "engines": { - "node": ">=8.6" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/jonschlinkert" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/mime": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", - "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true + }, + "node_modules/has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", "dev": true, - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4.0.0" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "dev": true, "engines": { - "node": ">= 0.6" + "node": ">=4" } }, - "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", "dev": true, "dependencies": { - "mime-db": "1.52.0" + "es-define-property": "^1.0.0" }, - "engines": { - "node": ">= 0.6" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "node_modules/has-proto": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", "dev": true, - "peer": true, "engines": { - "node": ">=6" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/mimic-function": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/mimic-function/-/mimic-function-5.0.1.tgz", - "integrity": "sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==", + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", "dev": true, "license": "MIT", "engines": { - "node": ">=18" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/mini-css-extract-plugin": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.10.0.tgz", - "integrity": "sha512-540P2c5dYnJlyJxTaSloliZexv8rji6rY8FhQN+WF/82iHQfA23j/xtJx97L+mXOML27EqksSek/g4eK7jaL3g==", + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", "dev": true, - "license": "MIT", "dependencies": { - "schema-utils": "^4.0.0", - "tapable": "^2.2.1" + "has-symbols": "^1.0.3" }, "engines": { - "node": ">= 12.13.0" + "node": ">= 0.4" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.0.0" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", - "dev": true, - "license": "ISC" - }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", "dev": true, "dependencies": { - "brace-expansion": "^1.1.7" + "function-bind": "^1.1.2" }, "engines": { - "node": "*" + "node": ">= 0.4" } }, - "node_modules/minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "node_modules/hono": { + "version": "4.13.12", + "resolved": "https://registry.npmjs.org/hono/-/hono-4.13.12.tgz", + "integrity": "sha512-6E2QDAc9Ick9Sq77ZrGS/dk2WUYni91aufTw6LJKpV7w8kW5/GxVUc650FOADOmlwg3K+f7Pun6XlV+pYmW6gw==", "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "license": "MIT", + "engines": { + "node": ">=16.9.0" } }, - "node_modules/minipass": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.3.tgz", - "integrity": "sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==", + "node_modules/hosted-git-info": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-9.0.3.tgz", + "integrity": "sha512-Hc+ghLoSt6QaYZUv0WBiIvmMDZuZZ7oaDvdH8MbfOO4lOsxdXLEvuC6ePoGs9H1X9oCLyq6+NVN0MKqD+ydxyg==", + "dev": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^11.1.0" + }, + "engines": { + "node": "^20.17.0 || >=22.9.0" + } + }, + "node_modules/hosted-git-info/node_modules/lru-cache": { + "version": "11.5.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.5.3.tgz", + "integrity": "sha512-U4N8FgzmWxc8k1VH8Kr6lQg18U7Fjvby6wXHVRX/ZZ7IwWbRMgrRbP0Wrb5q5NVinryp4SQampHKdvtecItxUg==", "dev": true, "license": "BlueOak-1.0.0", "engines": { - "node": ">=16 || 14 >=14.17" + "node": "20 || >=22" } }, - "node_modules/minipass-collect": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-2.0.1.tgz", - "integrity": "sha512-D7V8PO9oaz7PWGLbCACuI1qEOsq7UKfLotx/C0Aet43fCUB/wfQ7DYeq2oR/svFJGYDHPr38SHATeaj/ZoKHKw==", + "node_modules/html-encoding-sniffer": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-7.0.0.tgz", + "integrity": "sha512-UikN5yr7xsCDAq87Or5or0PAlD3HJJOKVzM05az588WnpDJ4Ux7a2A53Qi6gofGg2/EtvF/H4hCi/TXfCW4Y6w==", "dev": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "minipass": "^7.0.3" + "@exodus/bytes": "^1.15.1" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": "^22.13.0 || >=24.0.0" } }, - "node_modules/minipass-fetch": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-5.0.2.tgz", - "integrity": "sha512-2d0q2a8eCi2IRg/IGubCNRJoYbA1+YPXAzQVRFmB45gdGZafyivnZ5YSEfo3JikbjGxOdntGFvBQGqaSMXlAFQ==", + "node_modules/htmlparser2": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-10.1.0.tgz", + "integrity": "sha512-VTZkM9GWRAtEpveh7MSF6SjjrpNVNNVJfFup7xTY3UpFtm67foy9HDVXneLtFVt4pMz5kZtgNcvCniNFb1hlEQ==", "dev": true, + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], "license": "MIT", "dependencies": { - "minipass": "^7.0.3", - "minipass-sized": "^2.0.0", - "minizlib": "^3.0.1" - }, + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.2.2", + "entities": "^7.0.1" + } + }, + "node_modules/htmlparser2/node_modules/entities": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-7.0.1.tgz", + "integrity": "sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==", + "dev": true, + "license": "BSD-2-Clause", "engines": { - "node": "^20.17.0 || >=22.9.0" + "node": ">=0.12" }, - "optionalDependencies": { - "iconv-lite": "^0.7.2" + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" } }, - "node_modules/minipass-fetch/node_modules/iconv-lite": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.3.tgz", - "integrity": "sha512-IKXpvIzjnC9XTAUbVBcMfGS0EPaIXtW6v+zr+RRp+hqULEpo0owZax6wyRwPOJbWbzjYspQwusTsfVr0ifh4uQ==", + "node_modules/http-cache-semantics": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.2.0.tgz", + "integrity": "sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ==", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/http-errors": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz", + "integrity": "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==", "dev": true, "license": "MIT", - "optional": true, "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" + "depd": "~2.0.0", + "inherits": "~2.0.4", + "setprototypeof": "~1.2.0", + "statuses": "~2.0.2", + "toidentifier": "~1.0.1" }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.8" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/express" } }, - "node_modules/minipass-flush": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.7.tgz", - "integrity": "sha512-TbqTz9cUwWyHS2Dy89P3ocAGUGxKjjLuR9z8w4WUTGAVgEj17/4nhgo2Du56i0Fm3Pm30g4iA8Lcqctc76jCzA==", + "node_modules/http-errors/node_modules/statuses": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz", + "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==", "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "minipass": "^3.0.0" - }, + "license": "MIT", "engines": { - "node": ">= 8" + "node": ">= 0.8" } }, - "node_modules/minipass-flush/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "node_modules/http-proxy-agent": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", + "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", "dev": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "yallist": "^4.0.0" + "agent-base": "^7.1.0", + "debug": "^4.3.4" }, "engines": { - "node": ">=8" + "node": ">= 14" } }, - "node_modules/minipass-flush/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "node_modules/https-proxy-agent": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", + "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", "dev": true, - "license": "ISC" + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } }, - "node_modules/minipass-pipeline": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", - "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", "dev": true, - "license": "ISC", + "optional": true, "dependencies": { - "minipass": "^3.0.0" + "safer-buffer": ">= 2.1.2 < 3" }, "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, - "node_modules/minipass-pipeline/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "peer": true + }, + "node_modules/ignore-walk": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-8.0.0.tgz", + "integrity": "sha512-FCeMZT4NiRQGh+YkeKMtWrOmBgWjHjMJ26WQWrRQyoyzqevdaGSakUaJW5xQYmjLlUVk2qUnCjYVBax9EKKg8A==", "dev": true, "license": "ISC", "dependencies": { - "yallist": "^4.0.0" + "minimatch": "^10.0.3" }, "engines": { - "node": ">=8" + "node": "^20.17.0 || >=22.9.0" } }, - "node_modules/minipass-pipeline/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true, - "license": "ISC" - }, - "node_modules/minipass-sized": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-2.0.0.tgz", - "integrity": "sha512-zSsHhto5BcUVM2m1LurnXY6M//cGhVaegT71OfOXoprxT6o780GZd792ea6FfrQkuU4usHZIUczAQMRUE2plzA==", + "node_modules/ignore-walk/node_modules/balanced-match": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", + "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", "dev": true, - "license": "ISC", - "dependencies": { - "minipass": "^7.1.2" - }, + "license": "MIT", "engines": { - "node": ">=8" + "node": "18 || 20 || >=22" } }, - "node_modules/minizlib": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-3.1.0.tgz", - "integrity": "sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw==", + "node_modules/ignore-walk/node_modules/brace-expansion": { + "version": "5.0.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.12.tgz", + "integrity": "sha512-YovQ3rzhaLMIrDjNDMkNS01tea93qhEhG5xy8f6+R0l+dw3Ki+5sCoIoI942iuLZTHWogWktgwVDhU09iNEimQ==", "dev": true, "license": "MIT", "dependencies": { - "minipass": "^7.1.2" + "balanced-match": "^4.0.2" }, "engines": { - "node": ">= 18" + "node": "20 || >=22" } }, - "node_modules/mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "node_modules/ignore-walk/node_modules/minimatch": { + "version": "10.2.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.6.tgz", + "integrity": "sha512-vpLQEs+VLCr1nU0BXS07maYoFwlDAH0gngQuuttxIwutDFEMHq2blX+8vpgxDdK3J1PwjCJiep77OitTZ4Ll1A==", "dev": true, + "license": "BlueOak-1.0.0", "dependencies": { - "minimist": "^1.2.6" + "brace-expansion": "^5.0.8" }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/mrmime": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.1.tgz", - "integrity": "sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==", - "dev": true, - "license": "MIT", "engines": { - "node": ">=10" + "node": "18 || 20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/msgpackr": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/msgpackr/-/msgpackr-1.12.1.tgz", - "integrity": "sha512-4EUH9tQHnMmEgzW/MdAP0KIfa1T9AF+htl0ffe2n5vb2EKn9y2co8ccpgWko6S52Jy1PQZKwRnx5/KkYjtd9MQ==", + "node_modules/immutable": { + "version": "5.1.9", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-5.1.9.tgz", + "integrity": "sha512-m8nVez3rwrgmWxtLMt1ZYXB2Lv7OKYn/disyxAlSDYAlKSlFoPPfIAmAM/M5xqL4m4C/wAPw7S2/CNaUii1Hxg==", "dev": true, - "license": "MIT", - "optional": true, - "optionalDependencies": { - "msgpackr-extract": "^3.0.2" - } + "license": "MIT" }, - "node_modules/msgpackr-extract": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/msgpackr-extract/-/msgpackr-extract-3.0.4.tgz", - "integrity": "sha512-4kmO/MdyUIkLIvTPr8VHLil4AtoKIoniWPIEk5+CDy0xnWC84azhSFmuJ7PxZdsYtiP5kEeQsORAVIeMgxT+Hw==", + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", "dev": true, - "hasInstallScript": true, - "license": "MIT", - "optional": true, "dependencies": { - "node-gyp-build-optional-packages": "5.2.2" - }, - "bin": { - "download-msgpackr-prebuilds": "bin/download-prebuilds.js" - }, - "optionalDependencies": { - "@msgpackr-extract/msgpackr-extract-darwin-arm64": "3.0.4", - "@msgpackr-extract/msgpackr-extract-darwin-x64": "3.0.4", - "@msgpackr-extract/msgpackr-extract-linux-arm": "3.0.4", - "@msgpackr-extract/msgpackr-extract-linux-arm64": "3.0.4", - "@msgpackr-extract/msgpackr-extract-linux-x64": "3.0.4", - "@msgpackr-extract/msgpackr-extract-win32-x64": "3.0.4" + "once": "^1.3.0", + "wrappy": "1" } }, - "node_modules/multicast-dns": { - "version": "7.2.5", - "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz", - "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==", - "dev": true, - "license": "MIT", - "dependencies": { - "dns-packet": "^5.2.2", - "thunky": "^1.0.2" - }, - "bin": { - "multicast-dns": "cli.js" - } + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true }, - "node_modules/mute-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-2.0.0.tgz", - "integrity": "sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA==", + "node_modules/ini": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-6.0.0.tgz", + "integrity": "sha512-IBTdIkzZNOpqm7q3dRqJvMaldXjDHWkEDfrwGEQTs5eaQMWV+djAhR+wahyNNMAa+qpbDUhBMVt4ZKNwpPm7xQ==", "dev": true, "license": "ISC", "engines": { - "node": "^18.17.0 || >=20.5.0" + "node": "^20.17.0 || >=22.9.0" } }, - "node_modules/nanoid": { - "version": "3.3.19", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.19.tgz", - "integrity": "sha512-Y2tUNy4ouw6tq5oDSKeQYGOyhkUBhNOcGV/02KC+6kd9eDGqdZd++mjMiIDilrBYvjEnCYvVtsuHCuP+okSfug==", + "node_modules/injection-js": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/injection-js/-/injection-js-2.6.1.tgz", + "integrity": "sha512-dbR5bdhi7TWDoCye9cByZqeg/gAfamm8Vu3G1KZOTYkOif8WkuM8CD0oeDPtZYMzT5YH76JAFB7bkmyY9OJi2A==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], "license": "MIT", - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + "dependencies": { + "tslib": "^2.0.0" } }, - "node_modules/nblas": { - "version": "2.1.13", - "resolved": "https://registry.npmjs.org/nblas/-/nblas-2.1.13.tgz", - "integrity": "sha512-LsnxQIUhMToa3+J/B5t799pXYKKskmfyMwmpDf6BS/MY46tzViZd/Bixc4fl5CEizbWJ/huaj4k0Vojv112MEQ==", - "hasInstallScript": true, - "optional": true - }, - "node_modules/needle": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/needle/-/needle-3.5.0.tgz", - "integrity": "sha512-jaQyPKKk2YokHrEg+vFDYxXIHTCBgiZwSHOoVx/8V3GIBS8/VN6NdVRmg8q1ERtPkMvmOvebsgga4sAj5hls/w==", + "node_modules/internal-slot": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", + "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", "dev": true, - "license": "MIT", - "optional": true, "dependencies": { - "iconv-lite": "^0.6.3", - "sax": "^1.2.4" - }, - "bin": { - "needle": "bin/needle" + "es-errors": "^1.3.0", + "hasown": "^2.0.0", + "side-channel": "^1.0.4" }, "engines": { - "node": ">= 4.4.x" + "node": ">= 0.4" } }, - "node_modules/needle/node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "node_modules/ip-address": { + "version": "10.7.3", + "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.7.3.tgz", + "integrity": "sha512-A1kdq/tSb5QjvKvAMgIoEvDBIgL7qaqVP/jkvSwYYRZ9iEzvPpopxp2wQfu3SuZRHtpHNxMn8Fs0bS+gf5Xmwg==", "dev": true, "license": "MIT", - "optional": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, "engines": { - "node": ">=0.10.0" + "node": ">= 12" } }, - "node_modules/negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", "dev": true, + "license": "MIT", "engines": { - "node": ">= 0.6" + "node": ">= 0.10" } }, - "node_modules/neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "dev": true - }, - "node_modules/ng-packagr": { - "version": "21.2.7", - "resolved": "https://registry.npmjs.org/ng-packagr/-/ng-packagr-21.2.7.tgz", - "integrity": "sha512-G1LWptU48IbGQcAqW77JfPpGwga5dI+XUOsyBDD1zPuA1QeLqnQTPqV4tSkbL8WZJwwmqgttRrL89DD35p8vuQ==", + "node_modules/is-array-buffer": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", + "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", "dev": true, - "license": "MIT", "dependencies": { - "@ampproject/remapping": "^2.3.0", - "@rollup/plugin-json": "^6.1.0", - "@rollup/wasm-node": "^4.24.0", - "ajv": "^8.17.1", - "ansi-colors": "^4.1.3", - "browserslist": "^4.26.0", - "chokidar": "^5.0.0", - "commander": "^14.0.0", - "dependency-graph": "^1.0.0", - "esbuild": "^0.28.1", - "find-cache-directory": "^6.0.0", - "injection-js": "^2.4.0", - "jsonc-parser": "^3.3.1", - "less": "^4.2.0", - "ora": "^9.0.0", - "piscina": "^5.0.0", - "postcss": "^8.4.47", - "rollup-plugin-dts": "~6.4.1", - "rxjs": "^7.8.1", - "sass": "^1.81.0", - "tinyglobby": "^0.2.12" - }, - "bin": { - "ng-packagr": "src/cli/main.js" + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1" }, "engines": { - "node": "^20.19.0 || ^22.12.0 || >=24.0.0" - }, - "optionalDependencies": { - "rollup": "^4.24.0" - }, - "peerDependencies": { - "@angular/compiler-cli": "^21.0.0 || ^21.2.0-next", - "tailwindcss": "^2.0.0 || ^3.0.0 || ^4.0.0", - "tslib": "^2.3.0", - "typescript": ">=5.9 <6.0" + "node": ">= 0.4" }, - "peerDependenciesMeta": { - "tailwindcss": { - "optional": true - } + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/ng-packagr/node_modules/ajv": { - "version": "8.20.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.20.0.tgz", - "integrity": "sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA==", + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", "dev": true, - "license": "MIT", "dependencies": { - "fast-deep-equal": "^3.1.3", - "fast-uri": "^3.0.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2" + "has-bigints": "^1.0.1" }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/ng-packagr/node_modules/ansi-regex": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.4.0.tgz", - "integrity": "sha512-KzTVk2tCWAHtYrvvvaP8bJKJq2pVinhLcGEQdtLIYPbmNGNyYe8QwNaTUYQp2J7/vIsUKt5QCqAfUkYyG9DkOw==", + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", "dev": true, - "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, "engines": { - "node": ">=12" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/ng-packagr/node_modules/chalk": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.6.2.tgz", - "integrity": "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==", + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", "dev": true, - "license": "MIT", "engines": { - "node": "^12.17.0 || ^14.13 || >=16.0.0" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/ng-packagr/node_modules/chokidar": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-5.0.0.tgz", - "integrity": "sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw==", + "node_modules/is-core-module": { + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", "dev": true, "license": "MIT", "dependencies": { - "readdirp": "^5.0.0" + "hasown": "^2.0.2" }, "engines": { - "node": ">= 20.19.0" + "node": ">= 0.4" }, "funding": { - "url": "https://paulmillr.com/funding/" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/ng-packagr/node_modules/cli-cursor": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-5.0.0.tgz", - "integrity": "sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==", + "node_modules/is-data-view": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz", + "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==", "dev": true, - "license": "MIT", "dependencies": { - "restore-cursor": "^5.0.0" + "is-typed-array": "^1.1.13" }, "engines": { - "node": ">=18" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/ng-packagr/node_modules/cli-spinners": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-3.4.0.tgz", - "integrity": "sha512-bXfOC4QcT1tKXGorxL3wbJm6XJPDqEnij2gQ2m7ESQuE+/z9YFIWnl/5RpTiKWbMq3EVKR4fRLJGn6DVfu0mpw==", + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", "dev": true, - "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, "engines": { - "node": ">=18.20" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/ng-packagr/node_modules/commander": { - "version": "14.0.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-14.0.3.tgz", - "integrity": "sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw==", + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "dev": true, - "license": "MIT", + "optional": true, "engines": { - "node": ">=20" + "node": ">=0.10.0" } }, - "node_modules/ng-packagr/node_modules/is-interactive": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-2.0.0.tgz", - "integrity": "sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==", + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true, - "license": "MIT", "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=8" } }, - "node_modules/ng-packagr/node_modules/is-unicode-supported": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-2.1.0.tgz", - "integrity": "sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==", + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" + "optional": true, + "dependencies": { + "is-extglob": "^2.1.1" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/ng-packagr/node_modules/log-symbols": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-7.0.1.tgz", - "integrity": "sha512-ja1E3yCr9i/0hmBVaM0bfwDjnGy8I/s6PP4DFp+yP+a+mrHO4Rm7DtmnqROTUkHIkqffC84YY7AeqX6oFk0WFg==", + "node_modules/is-interactive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", "dev": true, - "license": "MIT", - "dependencies": { - "is-unicode-supported": "^2.0.0", - "yoctocolors": "^2.1.1" - }, + "peer": true, "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=8" } }, - "node_modules/ng-packagr/node_modules/onetime": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-7.0.0.tgz", - "integrity": "sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==", + "node_modules/is-negative-zero": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", + "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", "dev": true, - "license": "MIT", - "dependencies": { - "mimic-function": "^5.0.0" - }, "engines": { - "node": ">=18" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/ng-packagr/node_modules/ora": { - "version": "9.4.1", - "resolved": "https://registry.npmjs.org/ora/-/ora-9.4.1.tgz", - "integrity": "sha512-6VlU9MLXbjVQD04AZCMX28hVtA5bUoadvUqO76MUCVA0ilwJbMiHsITRPfyVm6p/BC0Av/BXMujx39WCe1LEqw==", + "node_modules/is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", "dev": true, - "license": "MIT", "dependencies": { - "chalk": "^5.6.2", - "cli-cursor": "^5.0.0", - "cli-spinners": "^3.2.0", - "is-interactive": "^2.0.0", - "is-unicode-supported": "^2.1.0", - "log-symbols": "^7.0.1", - "stdin-discarder": "^0.3.2", - "string-width": "^8.1.0" + "has-tostringtag": "^1.0.0" }, "engines": { - "node": ">=20" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/ng-packagr/node_modules/readdirp": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-5.1.1.tgz", - "integrity": "sha512-Kko+Y5XQ6fM+Ce3dq3m9YGxnacYZYl9cA1wZjaF3Vbry2L3i1qVg8+CAgNPsXRArPMUMCaOR7oa9Nqntc43JKA==", + "node_modules/is-potential-custom-element-name": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", + "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", "dev": true, - "license": "MIT", - "engines": { - "node": ">= 20.19.0" - }, - "funding": { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } + "license": "MIT" }, - "node_modules/ng-packagr/node_modules/restore-cursor": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-5.1.0.tgz", - "integrity": "sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==", + "node_modules/is-promise": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz", + "integrity": "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==", "dev": true, - "license": "MIT", - "dependencies": { - "onetime": "^7.0.0", - "signal-exit": "^4.1.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "license": "MIT" }, - "node_modules/ng-packagr/node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", "dev": true, - "license": "ISC", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, "engines": { - "node": ">=14" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/ng-packagr/node_modules/string-width": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-8.3.0.tgz", - "integrity": "sha512-ZbmZM0JCihQN91dWnxoipT2KOEyHqEyfRXUyjuRhW8b/xnqPDoq4gWEVApTVa9db2wN8mmoikgFBbjh71+cGeQ==", + "node_modules/is-shared-array-buffer": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", + "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", "dev": true, - "license": "MIT", "dependencies": { - "get-east-asian-width": "^1.5.0", - "strip-ansi": "^7.1.2" + "call-bind": "^1.0.7" }, "engines": { - "node": ">=20" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/ng-packagr/node_modules/strip-ansi": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz", - "integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==", + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", "dev": true, - "license": "MIT", "dependencies": { - "ansi-regex": "^6.2.2" + "has-tostringtag": "^1.0.0" }, "engines": { - "node": ">=12" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", - "dev": true - }, - "node_modules/nlapack": { - "version": "2.0.9", - "resolved": "https://registry.npmjs.org/nlapack/-/nlapack-2.0.9.tgz", - "integrity": "sha512-NnTUNKURkoRfwjNhCygmtLgu4l3gNwxSM+54U4ovnMX50biSElmOGb9yUALNfhoahfm0EGdk/GLySrZLA8yGTw==", - "hasInstallScript": true, - "optional": true - }, - "node_modules/node-addon-api": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-6.1.0.tgz", - "integrity": "sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==", - "dev": true, - "license": "MIT", - "optional": true - }, - "node_modules/node-gyp": { - "version": "12.4.0", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-12.4.0.tgz", - "integrity": "sha512-OMcPNvqTCFUnNaBlmdgq+lfNqY7gTiSmNRDjY3uAXRyudeKZEZxu3CLtjMQrx4zZxCX2b/mpNqTtwuCJgXhHkw==", + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", "dev": true, - "license": "MIT", "dependencies": { - "env-paths": "^2.2.0", - "exponential-backoff": "^3.1.1", - "graceful-fs": "^4.2.6", - "nopt": "^9.0.0", - "proc-log": "^6.0.0", - "semver": "^7.3.5", - "tar": "^7.5.4", - "tinyglobby": "^0.2.12", - "undici": "^6.25.0", - "which": "^6.0.0" - }, - "bin": { - "node-gyp": "bin/node-gyp.js" + "has-symbols": "^1.0.2" }, "engines": { - "node": "^20.17.0 || >=22.9.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/node-gyp-build-optional-packages": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.2.2.tgz", - "integrity": "sha512-s+w+rBWnpTMwSFbaE0UXsRlg7hU4FjekKU4eyAih5T8nJuNZT1nNsskXpxmeqSK9UzkBl6UgRlnKc8hz8IEqOw==", + "node_modules/is-typed-array": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", + "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", "dev": true, - "license": "MIT", - "optional": true, "dependencies": { - "detect-libc": "^2.0.1" + "which-typed-array": "^1.1.14" }, - "bin": { - "node-gyp-build-optional-packages": "bin.js", - "node-gyp-build-optional-packages-optional": "optional.js", - "node-gyp-build-optional-packages-test": "build-test.js" + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/node-gyp/node_modules/isexe": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-4.0.0.tgz", - "integrity": "sha512-FFUtZMpoZ8RqHS3XeXEmHWLA4thH+ZxCv2lOiPIn1Xc7CxrqhWzNSDzD+/chS/zbYezmiwWLdQC09JdQKmthOw==", + "node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", "dev": true, - "license": "BlueOak-1.0.0", + "peer": true, "engines": { - "node": ">=20" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/node-gyp/node_modules/which": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/which/-/which-6.0.1.tgz", - "integrity": "sha512-oGLe46MIrCRqX7ytPUf66EAYvdeMIZYn3WaocqqKZAxrBpkqHfL/qvTyJ/bTk5+AqHCjXmrv3CEWgy368zhRUg==", + "node_modules/is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", "dev": true, - "license": "ISC", "dependencies": { - "isexe": "^4.0.0" - }, - "bin": { - "node-which": "bin/which.js" + "call-bind": "^1.0.2" }, - "engines": { - "node": "^20.17.0 || >=22.9.0" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/node-releases": { - "version": "2.0.57", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.57.tgz", - "integrity": "sha512-kQK9LGGFiHtrWiNhZtA7Qbw17AQz+dmsEKODRIVTXA9+e5MS/2gZEBhYJt13GrAz5/IOZKddH/0Z3TP/Zgo+yw==", + "node_modules/is-what": { + "version": "4.1.16", + "resolved": "https://registry.npmjs.org/is-what/-/is-what-4.1.16.tgz", + "integrity": "sha512-ZhMwEosbFJkA0YhFnNDgTM4ZxDRsS6HqTo7qsZM08fehyRYIYa0yHu5R6mgo1n/8MgaPBXiPimPD77baVFYg+A==", "dev": true, "license": "MIT", "engines": { - "node": ">=18" + "node": ">=12.13" + }, + "funding": { + "url": "https://github.com/sponsors/mesqueeb" } }, - "node_modules/nopt": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-9.0.0.tgz", - "integrity": "sha512-Zhq3a+yFKrYwSBluL4H9XP3m3y5uvQkB/09CwDruCiRmR/UJYnn9W4R48ry0uGC70aeTPKLynBtscP9efFFcPw==", + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", "dev": true, - "license": "ISC", - "dependencies": { - "abbrev": "^4.0.0" - }, - "bin": { - "nopt": "bin/nopt.js" - }, "engines": { - "node": "^20.17.0 || >=22.9.0" + "node": ">=8" } }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "node_modules/jose": { + "version": "6.2.12", + "resolved": "https://registry.npmjs.org/jose/-/jose-6.2.12.tgz", + "integrity": "sha512-9NiFmJEex0sy2Dk58j2UGBSHgUs2ypF9eZSu4L6vjOX3Dp96Sw1F3uL+H+D1sx02jZZdzUT0HgvCy59CuvXcWw==", "dev": true, - "engines": { - "node": ">=0.10.0" + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/panva" } }, - "node_modules/npm-bundled": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-5.0.0.tgz", - "integrity": "sha512-JLSpbzh6UUXIEoqPsYBvVNVmyrjVZ1fzEFbqxKkTJQkWBO3xFzFT+KDnSKQWwOQNbuWRwt5LSD6HOTLGIWzfrw==", + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", "dev": true, - "license": "ISC", + "license": "MIT" + }, + "node_modules/jsdom": { + "version": "30.1.1", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-30.1.1.tgz", + "integrity": "sha512-FahmoPK5vbPc+jxV1iErMHmAZypCZ942NHF4+qqaWAuvaKKTBZxawnmAtrbGWLU7MtlxfqIP0qw6aSI+aWGtLg==", + "dev": true, + "license": "MIT", "dependencies": { - "npm-normalize-package-bin": "^5.0.0" + "@asamuzakjp/css-color": "^7.0.0", + "@asamuzakjp/dom-selector": "^9.2.1", + "@bramus/specificity": "^2.4.2", + "@csstools/css-syntax-patches-for-csstree": "^1.1.13", + "@exodus/bytes": "^1.15.1", + "css-tree": "^3.2.1", + "data-urls": "^7.0.0", + "decimal.js": "^10.6.0", + "html-encoding-sniffer": "^7.0.0", + "is-potential-custom-element-name": "^1.0.1", + "lru-cache": "^11.5.2", + "parse5": "^8.0.1", + "saxes": "^6.0.0", + "tough-cookie": "^6.0.2", + "undici": "^8.10.2", + "w3c-xmlserializer": "^6.0.0", + "webidl-conversions": "^8.0.1", + "whatwg-mimetype": "^5.0.0", + "whatwg-url": "^17.1.1", + "xml-name-validator": "^5.0.0" }, "engines": { - "node": "^20.17.0 || >=22.9.0" + "node": "^22.22.2 || ^24.15.0 || >=26.0.0" + }, + "peerDependencies": { + "canvas": "^3.2.3" + }, + "peerDependenciesMeta": { + "canvas": { + "optional": true + } } }, - "node_modules/npm-install-checks": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-8.0.0.tgz", - "integrity": "sha512-ScAUdMpyzkbpxoNekQ3tNRdFI8SJ86wgKZSQZdUxT+bj0wVFpsEMWnkXP0twVe1gJyNF5apBWDJhhIbgrIViRA==", + "node_modules/jsdom/node_modules/lru-cache": { + "version": "11.5.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.5.3.tgz", + "integrity": "sha512-U4N8FgzmWxc8k1VH8Kr6lQg18U7Fjvby6wXHVRX/ZZ7IwWbRMgrRbP0Wrb5q5NVinryp4SQampHKdvtecItxUg==", "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "semver": "^7.1.1" - }, + "license": "BlueOak-1.0.0", "engines": { - "node": "^20.17.0 || >=22.9.0" + "node": "20 || >=22" } }, - "node_modules/npm-normalize-package-bin": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-5.0.0.tgz", - "integrity": "sha512-CJi3OS4JLsNMmr2u07OJlhcrPxCeOeP/4xq67aWNai6TNWWbTrlNDgl8NcFKVlcBKp18GPj+EzbNIgrBfZhsag==", + "node_modules/jsdom/node_modules/undici": { + "version": "8.11.2", + "resolved": "https://registry.npmjs.org/undici/-/undici-8.11.2.tgz", + "integrity": "sha512-u4UB2/IrKdU6lFxumHmmo1a3fCQO5tzQllRorfoRS63txhrB7xTpSn1PftwC4qEHkOaqP95fCWW4lJzwErwzhQ==", "dev": true, - "license": "ISC", + "license": "MIT", "engines": { - "node": "^20.17.0 || >=22.9.0" + "node": ">=22.19.0" } }, - "node_modules/npm-package-arg": { - "version": "13.0.2", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-13.0.2.tgz", - "integrity": "sha512-IciCE3SY3uE84Ld8WZU23gAPPV9rIYod4F+rc+vJ7h7cwAJt9Vk6TVsK60ry7Uj3SRS3bqRRIGuTp9YVlk6WNA==", + "node_modules/jsesc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", "dev": true, - "license": "ISC", - "dependencies": { - "hosted-git-info": "^9.0.0", - "proc-log": "^6.0.0", - "semver": "^7.3.5", - "validate-npm-package-name": "^7.0.0" + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" }, "engines": { - "node": "^20.17.0 || >=22.9.0" + "node": ">=6" } }, - "node_modules/npm-packlist": { - "version": "10.0.4", - "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-10.0.4.tgz", - "integrity": "sha512-uMW73iajD8hiH4ZBxEV3HC+eTnppIqwakjOYuvgddnalIw2lJguKviK1pcUJDlIWm1wSJkchpDZDSVVsZEYRng==", + "node_modules/json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true + }, + "node_modules/json-parse-even-better-errors": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-5.0.0.tgz", + "integrity": "sha512-ZF1nxZ28VhQouRWhUcVlUIN3qwSgPuswK05s/HIaoetAoE/9tngVmCHjSxmSQPav1nd+lPtTL0YZ/2AFdR/iYQ==", "dev": true, - "license": "ISC", - "dependencies": { - "ignore-walk": "^8.0.0", - "proc-log": "^6.0.0" - }, + "license": "MIT", "engines": { "node": "^20.17.0 || >=22.9.0" } }, - "node_modules/npm-pick-manifest": { - "version": "11.0.3", - "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-11.0.3.tgz", - "integrity": "sha512-buzyCfeoGY/PxKqmBqn1IUJrZnUi1VVJTdSSRPGI60tJdUhUoSQFhs0zycJokDdOznQentgrpf8LayEHyyYlqQ==", + "node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "node_modules/json-schema-typed": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/json-schema-typed/-/json-schema-typed-8.0.2.tgz", + "integrity": "sha512-fQhoXdcvc3V28x7C7BMs4P5+kNlgUURe2jmUT1T//oBRMDrqy1QPelJimwZGo7Hg9VPV3EQV5Bnq4hbFy2vetA==", "dev": true, - "license": "ISC", - "dependencies": { - "npm-install-checks": "^8.0.0", - "npm-normalize-package-bin": "^5.0.0", - "npm-package-arg": "^13.0.0", - "semver": "^7.3.5" + "license": "BSD-2-Clause" + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "bin": { + "json5": "lib/cli.js" }, "engines": { - "node": "^20.17.0 || >=22.9.0" + "node": ">=6" } }, - "node_modules/npm-registry-fetch": { - "version": "19.1.1", - "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-19.1.1.tgz", - "integrity": "sha512-TakBap6OM1w0H73VZVDf44iFXsOS3h+L4wVMXmbWOQroZgFhMch0juN6XSzBNlD965yIKvWg2dfu7NSiaYLxtw==", + "node_modules/jsonc-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.3.1.tgz", + "integrity": "sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==", "dev": true, - "license": "ISC", - "dependencies": { - "@npmcli/redact": "^4.0.0", - "jsonparse": "^1.3.1", - "make-fetch-happen": "^15.0.0", - "minipass": "^7.0.2", - "minipass-fetch": "^5.0.0", - "minizlib": "^3.0.1", - "npm-package-arg": "^13.0.0", - "proc-log": "^6.0.0" - }, - "engines": { - "node": "^20.17.0 || >=22.9.0" + "license": "MIT" + }, + "node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, + "optionalDependencies": { + "graceful-fs": "^4.1.6" } }, - "node_modules/npm-run-all": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/npm-run-all/-/npm-run-all-4.1.5.tgz", - "integrity": "sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==", + "node_modules/jsonparse": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==", + "dev": true, + "engines": [ + "node >= 0.2.0" + ], + "license": "MIT" + }, + "node_modules/layout-base": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/layout-base/-/layout-base-2.0.1.tgz", + "integrity": "sha512-dp3s92+uNI1hWIpPGH3jK2kxE2lMjdXdr+DH8ynZHpd6PUlH6x6cbuXnoMmiNumznqaNO31xu9e79F0uuZ0JFg==" + }, + "node_modules/less": { + "version": "4.9.0", + "resolved": "https://registry.npmjs.org/less/-/less-4.9.0.tgz", + "integrity": "sha512-umRhrCH7fCi8Uj2RcwKjJdvUORTjeWqkdKx0LbcZvjIwsAVsnIAGcxHaqowPeBFBjQuWOeC/bve0AlpFzF/+SQ==", "dev": true, + "license": "Apache-2.0", "dependencies": { - "ansi-styles": "^3.2.1", - "chalk": "^2.4.1", - "cross-spawn": "^6.0.5", - "memorystream": "^0.3.1", - "minimatch": "^3.0.4", - "pidtree": "^0.3.0", - "read-pkg": "^3.0.0", - "shell-quote": "^1.6.1", - "string.prototype.padend": "^3.0.0" + "copy-anything": "^3.0.5", + "parse-node-version": "^1.0.1" }, "bin": { - "npm-run-all": "bin/npm-run-all/index.js", - "run-p": "bin/run-p/index.js", - "run-s": "bin/run-s/index.js" + "lessc": "bin/lessc" }, "engines": { - "node": ">= 4" + "node": ">=18" + }, + "optionalDependencies": { + "errno": "^0.1.1", + "graceful-fs": "^4.1.2", + "make-dir": "^5.1.0", + "mime": "^1.4.1", + "needle": "^3.1.0", + "probe-image-size": "^7.2.3", + "source-map": "~0.6.0" } }, - "node_modules/npm-run-all/node_modules/cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "node_modules/less/node_modules/make-dir": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-5.1.0.tgz", + "integrity": "sha512-IfpFq6UM39dUNiphpA6uDezNx/AvWyhwfICWPR3t1VspkgkMZrL+Rk1RbN1bx+aeNYwOrqGJgEgV3yotk+ZUVw==", "dev": true, - "dependencies": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - }, + "license": "MIT", + "optional": true, "engines": { - "node": ">=4.8" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/npm-run-all/node_modules/path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", + "node_modules/less/node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", "dev": true, + "license": "MIT", + "optional": true, + "bin": { + "mime": "cli.js" + }, "engines": { "node": ">=4" } }, - "node_modules/npm-run-all/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "node_modules/less/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, - "bin": { - "semver": "bin/semver" + "license": "BSD-3-Clause", + "optional": true, + "engines": { + "node": ">=0.10.0" } }, - "node_modules/npm-run-all/node_modules/shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", + "node_modules/listr2": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-9.0.5.tgz", + "integrity": "sha512-ME4Fb83LgEgwNw96RKNvKV4VTLuXfoKudAmm2lP8Kk87KaMK0/Xrx/aAkMWmT8mDb+3MlFDspfbCs7adjRxA2g==", "dev": true, + "license": "MIT", "dependencies": { - "shebang-regex": "^1.0.0" + "cli-truncate": "^5.0.0", + "colorette": "^2.0.20", + "eventemitter3": "^5.0.1", + "log-update": "^6.1.0", + "rfdc": "^1.4.1", + "wrap-ansi": "^9.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=20.0.0" } }, - "node_modules/npm-run-all/node_modules/shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", + "node_modules/listr2/node_modules/ansi-regex": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.4.0.tgz", + "integrity": "sha512-KzTVk2tCWAHtYrvvvaP8bJKJq2pVinhLcGEQdtLIYPbmNGNyYe8QwNaTUYQp2J7/vIsUKt5QCqAfUkYyG9DkOw==", "dev": true, + "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, - "node_modules/nth-check": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", - "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "node_modules/listr2/node_modules/ansi-styles": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", + "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "boolbase": "^1.0.0" + "license": "MIT", + "engines": { + "node": ">=12" }, "funding": { - "url": "https://github.com/fb55/nth-check?sponsor=1" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "node_modules/listr2/node_modules/emoji-regex": { + "version": "10.6.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.6.0.tgz", + "integrity": "sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==", "dev": true, - "engines": { - "node": ">=0.10.0" - } + "license": "MIT" }, - "node_modules/object-inspect": { - "version": "1.13.4", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", - "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", + "node_modules/listr2/node_modules/eventemitter3": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.4.tgz", + "integrity": "sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw==", + "dev": true, + "license": "MIT" + }, + "node_modules/listr2/node_modules/string-width": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", + "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", "dev": true, "license": "MIT", + "dependencies": { + "emoji-regex": "^10.3.0", + "get-east-asian-width": "^1.0.0", + "strip-ansi": "^7.1.0" + }, "engines": { - "node": ">= 0.4" + "node": ">=18" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "node_modules/listr2/node_modules/strip-ansi": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz", + "integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==", "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.2.2" + }, "engines": { - "node": ">= 0.4" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, - "node_modules/object.assign": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", - "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", + "node_modules/listr2/node_modules/wrap-ansi": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.2.tgz", + "integrity": "sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.5", - "define-properties": "^1.2.1", - "has-symbols": "^1.0.3", - "object-keys": "^1.1.1" + "ansi-styles": "^6.2.1", + "string-width": "^7.0.0", + "strip-ansi": "^7.1.0" }, "engines": { - "node": ">= 0.4" + "node": ">=18" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/obuf": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", - "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", + "node_modules/lmdb": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/lmdb/-/lmdb-3.5.1.tgz", + "integrity": "sha512-NYHA0MRPjvNX+vSw8Xxg6FLKxzAG+e7Pt8RqAQA/EehzHVXq9SxDqJIN3JL1hK0dweb884y8kIh6rkWvPyg9Wg==", "dev": true, - "license": "MIT" + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@harperfast/extended-iterable": "^1.0.3", + "msgpackr": "^1.11.2", + "node-addon-api": "^6.1.0", + "node-gyp-build-optional-packages": "5.2.2", + "ordered-binary": "^1.5.3", + "weak-lru-cache": "^1.2.2" + }, + "bin": { + "download-lmdb-prebuilds": "bin/download-prebuilds.js" + }, + "optionalDependencies": { + "@lmdb/lmdb-darwin-arm64": "3.5.1", + "@lmdb/lmdb-darwin-x64": "3.5.1", + "@lmdb/lmdb-linux-arm": "3.5.1", + "@lmdb/lmdb-linux-arm64": "3.5.1", + "@lmdb/lmdb-linux-x64": "3.5.1", + "@lmdb/lmdb-win32-arm64": "3.5.1", + "@lmdb/lmdb-win32-x64": "3.5.1" + } }, - "node_modules/on-finished": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "node_modules/load-json-file": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", + "integrity": "sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==", "dev": true, "dependencies": { - "ee-first": "1.1.1" + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" }, "engines": { - "node": ">= 0.8" + "node": ">=4" } }, - "node_modules/on-headers": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.1.0.tgz", - "integrity": "sha512-737ZY3yNnXy37FHkQxPzt4UZ2UWPWiCZWLvFZ4fu5cueciegX0zGPnrlY6bwRg4FdQOe9YU8MkmJwGhoMybl8A==", + "node_modules/load-json-file/node_modules/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", "dev": true, - "license": "MIT", + "dependencies": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + }, "engines": { - "node": ">= 0.8" + "node": ">=4" } }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "node_modules/load-json-file/node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", "dev": true, - "dependencies": { - "wrappy": "1" + "engines": { + "node": ">=4" } }, - "node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, - "peer": true, "dependencies": { - "mimic-fn": "^2.1.0" + "p-locate": "^4.1.0" }, "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=8" } }, - "node_modules/open": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/open/-/open-11.0.0.tgz", - "integrity": "sha512-smsWv2LzFjP03xmvFoJ331ss6h+jixfA4UUV/Bsiyuu4YJPfN+FIQGOIiv4w9/+MoHkfkJ22UIaQWRVFRfH6Vw==", + "node_modules/lodash": { + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.18.1.tgz", + "integrity": "sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==", + "license": "MIT" + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", "dev": true, "license": "MIT", - "dependencies": { - "default-browser": "^5.4.0", - "define-lazy-prop": "^3.0.0", - "is-in-ssh": "^1.0.0", - "is-inside-container": "^1.0.0", - "powershell-utils": "^0.1.0", - "wsl-utils": "^0.3.0" - }, - "engines": { - "node": ">=20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "optional": true }, - "node_modules/ora": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", - "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", + "node_modules/log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", "dev": true, "peer": true, "dependencies": { - "bl": "^4.1.0", "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-spinners": "^2.5.0", - "is-interactive": "^1.0.0", - "is-unicode-supported": "^0.1.0", - "log-symbols": "^4.1.0", - "strip-ansi": "^6.0.0", - "wcwidth": "^1.0.1" + "is-unicode-supported": "^0.1.0" }, "engines": { "node": ">=10" @@ -15392,7 +9117,7 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/ora/node_modules/ansi-styles": { + "node_modules/log-symbols/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", @@ -15408,7 +9133,7 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/ora/node_modules/chalk": { + "node_modules/log-symbols/node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", @@ -15425,7 +9150,7 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/ora/node_modules/color-convert": { + "node_modules/log-symbols/node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", @@ -15438,14 +9163,14 @@ "node": ">=7.0.0" } }, - "node_modules/ora/node_modules/color-name": { + "node_modules/log-symbols/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true, "peer": true }, - "node_modules/ora/node_modules/has-flag": { + "node_modules/log-symbols/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", @@ -15455,60 +9180,178 @@ "node": ">=8" } }, - "node_modules/ora/node_modules/supports-color": { + "node_modules/log-symbols/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, - "peer": true, + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/log-update": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-6.1.0.tgz", + "integrity": "sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-escapes": "^7.0.0", + "cli-cursor": "^5.0.0", + "slice-ansi": "^7.1.0", + "strip-ansi": "^7.1.0", + "wrap-ansi": "^9.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-update/node_modules/ansi-regex": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.4.0.tgz", + "integrity": "sha512-KzTVk2tCWAHtYrvvvaP8bJKJq2pVinhLcGEQdtLIYPbmNGNyYe8QwNaTUYQp2J7/vIsUKt5QCqAfUkYyG9DkOw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/log-update/node_modules/ansi-styles": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", + "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/log-update/node_modules/cli-cursor": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-5.0.0.tgz", + "integrity": "sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==", + "dev": true, + "license": "MIT", + "dependencies": { + "restore-cursor": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-update/node_modules/emoji-regex": { + "version": "10.6.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.6.0.tgz", + "integrity": "sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==", + "dev": true, + "license": "MIT" + }, + "node_modules/log-update/node_modules/is-fullwidth-code-point": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-5.1.0.tgz", + "integrity": "sha512-5XHYaSyiqADb4RnZ1Bdad6cPp8Toise4TzEjcOYDHZkTCbKgiUl7WTUCpNWHuxmDt91wnsZBc9xinNzopv3JMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-east-asian-width": "^1.3.1" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-update/node_modules/onetime": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-7.0.0.tgz", + "integrity": "sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==", + "dev": true, + "license": "MIT", "dependencies": { - "has-flag": "^4.0.0" + "mimic-function": "^5.0.0" }, "engines": { - "node": ">=8" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/ordered-binary": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/ordered-binary/-/ordered-binary-1.6.2.tgz", - "integrity": "sha512-BY+qgDArmYpvvmij141xbkB4Cw8RFLBQM5Zj4MODFb1SyXBRE/xO4Xj/QWbR7aUEBxbkjuNdsFVCL2TmbYrlNg==", + "node_modules/log-update/node_modules/restore-cursor": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-5.1.0.tgz", + "integrity": "sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==", "dev": true, "license": "MIT", - "optional": true - }, - "node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, "dependencies": { - "p-try": "^2.0.0" + "onetime": "^7.0.0", + "signal-exit": "^4.1.0" }, "engines": { - "node": ">=6" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/p-locate": { + "node_modules/log-update/node_modules/signal-exit": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/log-update/node_modules/slice-ansi": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-7.1.2.tgz", + "integrity": "sha512-iOBWFgUX7caIZiuutICxVgX1SdxwAVFFKwt1EvMYYec/NWO5meOJ6K5uQxhrYBdQJne4KxiqZc+KptFOWFSI9w==", "dev": true, + "license": "MIT", "dependencies": { - "p-limit": "^2.2.0" + "ansi-styles": "^6.2.1", + "is-fullwidth-code-point": "^5.0.0" }, "engines": { - "node": ">=8" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" } }, - "node_modules/p-map": { - "version": "7.0.8", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-7.0.8.tgz", - "integrity": "sha512-MitaVsCuCFIvOLLPIU7NnfrZvS9H9h7kwMUkDo+T2pEISaJD48IV9S8iIdXB7PsvvdxyYcsSTTrr90XKsbulNw==", + "node_modules/log-update/node_modules/string-width": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", + "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", "dev": true, "license": "MIT", + "dependencies": { + "emoji-regex": "^10.3.0", + "get-east-asian-width": "^1.0.0", + "strip-ansi": "^7.1.0" + }, "engines": { "node": ">=18" }, @@ -15516,3716 +9359,3615 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/p-retry": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-6.2.1.tgz", - "integrity": "sha512-hEt02O4hUct5wtwg4H4KcWgDdm+l1bOaEy/hWzd8xtXB9BqxTWBBhb+2ImAtH4Cv4rPjV76xN3Zumqk3k3AhhQ==", + "node_modules/log-update/node_modules/strip-ansi": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz", + "integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==", "dev": true, "license": "MIT", "dependencies": { - "@types/retry": "0.12.2", - "is-network-error": "^1.0.0", - "retry": "^0.13.1" + "ansi-regex": "^6.2.2" }, "engines": { - "node": ">=16.17" + "node": ">=12" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, - "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "node_modules/log-update/node_modules/wrap-ansi": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.2.tgz", + "integrity": "sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww==", "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.2.1", + "string-width": "^7.0.0", + "strip-ansi": "^7.1.0" + }, "engines": { - "node": ">=6" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/pacote": { - "version": "21.5.1", - "resolved": "https://registry.npmjs.org/pacote/-/pacote-21.5.1.tgz", - "integrity": "sha512-KvcJ9iy3crysCsgqc4+PknH/w6jkrp8JN36mpZBPwNaDRwTfMZD37YzRazNstiZUOhuF5pno9f78n9mEJBavwg==", + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/magic-string": { + "version": "0.30.21", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", + "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.5" + } + }, + "node_modules/make-fetch-happen": { + "version": "15.0.6", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-15.0.6.tgz", + "integrity": "sha512-Je0fLJ0F5atA7F+eIlLzk+Wkcl57JDf4kf+EW8xiP5E31xOQxkIxTbgf1Oi1Lw9tRI9UEMRdI5Vz2xTzoNU1Jw==", "dev": true, "license": "ISC", "dependencies": { "@gar/promise-retry": "^1.0.0", - "@npmcli/git": "^7.0.0", - "@npmcli/installed-package-contents": "^4.0.0", - "@npmcli/package-json": "^7.0.0", - "@npmcli/promise-spawn": "^9.0.0", - "@npmcli/run-script": "^10.0.0", - "cacache": "^20.0.0", - "fs-minipass": "^3.0.0", + "@npmcli/agent": "^4.0.0", + "@npmcli/redact": "^4.0.0", + "cacache": "^20.0.1", + "http-cache-semantics": "^4.1.1", "minipass": "^7.0.2", - "npm-package-arg": "^13.0.0", - "npm-packlist": "^10.0.1", - "npm-pick-manifest": "^11.0.1", - "npm-registry-fetch": "^19.0.0", + "minipass-fetch": "^5.0.0", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^1.0.0", "proc-log": "^6.0.0", - "sigstore": "^4.0.0", - "ssri": "^13.0.0", - "tar": "^7.4.3" - }, - "bin": { - "pacote": "bin/index.js" + "ssri": "^13.0.0" }, "engines": { "node": "^20.17.0 || >=22.9.0" } }, - "node_modules/parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "node_modules/make-fetch-happen/node_modules/content-type": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-2.1.0.tgz", + "integrity": "sha512-mj7UPXE0jaqaOsukNZRUEfEi2AcL7C/vwmwcHV0O97eO1E1pxBZuyjlZrx5seTaNBg1U6+o35wpa35Qfcc+7ag==", "dev": true, "license": "MIT", - "dependencies": { - "callsites": "^3.0.0" - }, "engines": { - "node": ">=6" + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" } }, - "node_modules/parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "node_modules/make-fetch-happen/node_modules/negotiator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-1.1.0.tgz", + "integrity": "sha512-NMPBRMJgiQHjbd8phG3Vebdx4kZ1H121rbl5IkMqeOsahptB9BKo/d7oJ3zTXqTgagn2bWlNSXkh0QUGM31RYg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" + "content-type": "^2.1.0" }, "engines": { - "node": ">=8" + "node": ">=18" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "type": "opencollective", + "url": "https://opencollective.com/express" } }, - "node_modules/parse-json/node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true, - "license": "MIT" - }, - "node_modules/parse-node-version": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", - "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==", + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", "dev": true, "license": "MIT", "engines": { - "node": ">= 0.10" + "node": ">= 0.4" } }, - "node_modules/parse5": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-8.0.1.tgz", - "integrity": "sha512-z1e/HMG90obSGeidlli3hj7cbocou0/wa5HacvI3ASx34PecNjNQeaHNo5WIZpWofN9kgkqV1q5YvXe3F0FoPw==", - "license": "MIT", - "dependencies": { - "entities": "^8.0.0" - }, - "funding": { - "url": "https://github.com/inikulin/parse5?sponsor=1" - } + "node_modules/mdn-data": { + "version": "2.27.1", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.27.1.tgz", + "integrity": "sha512-9Yubnt3e8A0OKwxYSXyhLymGW4sCufcLG6VdiDdUGVkPhpqLxlvP5vl1983gQjJl3tqbrM731mjaZaP68AgosQ==", + "dev": true, + "license": "CC0-1.0" }, - "node_modules/parse5-html-rewriting-stream": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/parse5-html-rewriting-stream/-/parse5-html-rewriting-stream-8.0.0.tgz", - "integrity": "sha512-wzh11mj8KKkno1pZEu+l2EVeWsuKDfR5KNWZOTsslfUX8lPDZx77m9T0kIoAVkFtD1nx6YF8oh4BnPHvxMtNMw==", + "node_modules/memorystream": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", + "integrity": "sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==", "dev": true, - "license": "MIT", - "dependencies": { - "entities": "^6.0.0", - "parse5": "^8.0.0", - "parse5-sax-parser": "^8.0.0" - }, - "funding": { - "url": "https://github.com/inikulin/parse5?sponsor=1" + "engines": { + "node": ">= 0.10.0" } }, - "node_modules/parse5-html-rewriting-stream/node_modules/entities": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz", - "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==", + "node_modules/merge-descriptors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-2.0.0.tgz", + "integrity": "sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g==", "dev": true, - "license": "BSD-2-Clause", + "license": "MIT", "engines": { - "node": ">=0.12" + "node": ">=18" }, "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/parse5-sax-parser": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/parse5-sax-parser/-/parse5-sax-parser-8.0.0.tgz", - "integrity": "sha512-/dQ8UzHZwnrzs3EvDj6IkKrD/jIZyTlB+8XrHJvcjNgRdmWruNdN9i9RK/JtxakmlUdPwKubKPTCqvbTgzGhrw==", + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", "dev": true, - "license": "MIT", - "dependencies": { - "parse5": "^8.0.0" - }, - "funding": { - "url": "https://github.com/inikulin/parse5?sponsor=1" + "peer": true, + "engines": { + "node": ">=6" } }, - "node_modules/parse5/node_modules/entities": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-8.1.0.tgz", - "integrity": "sha512-kxL7msIffSuh9aaFAMD7rxAIuTRMAHMeBtgHW2yUdWw732ZNh4MehkF2gdjvtdmikkaIP9bFDDJOPlsvm7avrA==", - "license": "BSD-2-Clause", + "node_modules/mimic-function": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/mimic-function/-/mimic-function-5.0.1.tgz", + "integrity": "sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==", + "dev": true, + "license": "MIT", "engines": { - "node": ">=20.19.0" + "node": ">=18" }, "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, "engines": { - "node": ">= 0.8" + "node": "*" } }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "node_modules/minipass": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.3.tgz", + "integrity": "sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==", "dev": true, + "license": "BlueOak-1.0.0", "engines": { - "node": ">=8" + "node": ">=16 || 14 >=14.17" } }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "node_modules/minipass-collect": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-2.0.1.tgz", + "integrity": "sha512-D7V8PO9oaz7PWGLbCACuI1qEOsq7UKfLotx/C0Aet43fCUB/wfQ7DYeq2oR/svFJGYDHPr38SHATeaj/ZoKHKw==", "dev": true, + "license": "ISC", + "dependencies": { + "minipass": "^7.0.3" + }, "engines": { - "node": ">=0.10.0" + "node": ">=16 || 14 >=14.17" } }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "node_modules/minipass-fetch": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-5.0.2.tgz", + "integrity": "sha512-2d0q2a8eCi2IRg/IGubCNRJoYbA1+YPXAzQVRFmB45gdGZafyivnZ5YSEfo3JikbjGxOdntGFvBQGqaSMXlAFQ==", "dev": true, "license": "MIT", + "dependencies": { + "minipass": "^7.0.3", + "minipass-sized": "^2.0.0", + "minizlib": "^3.0.1" + }, "engines": { - "node": ">=8" + "node": "^20.17.0 || >=22.9.0" + }, + "optionalDependencies": { + "iconv-lite": "^0.7.2" } }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "node_modules/path-scurry": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.2.tgz", - "integrity": "sha512-3O/iVVsJAPsOnpwWIeD+d6z/7PmqApyQePUtCndjatj/9I5LylHvt5qluFaBT3I5h3r1ejfR056c+FCv+NnNXg==", + "node_modules/minipass-fetch/node_modules/iconv-lite": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.3.tgz", + "integrity": "sha512-IKXpvIzjnC9XTAUbVBcMfGS0EPaIXtW6v+zr+RRp+hqULEpo0owZax6wyRwPOJbWbzjYspQwusTsfVr0ifh4uQ==", "dev": true, - "license": "BlueOak-1.0.0", + "license": "MIT", + "optional": true, "dependencies": { - "lru-cache": "^11.0.0", - "minipass": "^7.1.2" + "safer-buffer": ">= 2.1.2 < 3.0.0" }, "engines": { - "node": "18 || 20 || >=22" + "node": ">=0.10.0" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "type": "opencollective", + "url": "https://opencollective.com/express" } }, - "node_modules/path-scurry/node_modules/lru-cache": { - "version": "11.5.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.5.3.tgz", - "integrity": "sha512-U4N8FgzmWxc8k1VH8Kr6lQg18U7Fjvby6wXHVRX/ZZ7IwWbRMgrRbP0Wrb5q5NVinryp4SQampHKdvtecItxUg==", + "node_modules/minipass-flush": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.7.tgz", + "integrity": "sha512-TbqTz9cUwWyHS2Dy89P3ocAGUGxKjjLuR9z8w4WUTGAVgEj17/4nhgo2Du56i0Fm3Pm30g4iA8Lcqctc76jCzA==", "dev": true, "license": "BlueOak-1.0.0", + "dependencies": { + "minipass": "^3.0.0" + }, "engines": { - "node": "20 || >=22" + "node": ">= 8" } }, - "node_modules/path-to-regexp": { - "version": "8.4.2", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-8.4.2.tgz", - "integrity": "sha512-qRcuIdP69NPm4qbACK+aDogI5CBDMi1jKe0ry5rSQJz8JVLsC7jV8XpiJjGRLLol3N+R5ihGYcrPLTno6pAdBA==", + "node_modules/minipass-flush/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", "dev": true, - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/picocolors": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", - "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "node_modules/minipass-flush/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true, "license": "ISC" }, - "node_modules/picomatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", - "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", + "node_modules/minipass-pipeline": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", + "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" + "engines": { + "node": ">=8" } }, - "node_modules/pidtree": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.3.1.tgz", - "integrity": "sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==", + "node_modules/minipass-pipeline/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", "dev": true, - "bin": { - "pidtree": "bin/pidtree.js" + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" }, "engines": { - "node": ">=0.10" + "node": ">=8" } }, - "node_modules/pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==", + "node_modules/minipass-pipeline/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true, + "license": "ISC" + }, + "node_modules/minipass-sized": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-2.0.0.tgz", + "integrity": "sha512-zSsHhto5BcUVM2m1LurnXY6M//cGhVaegT71OfOXoprxT6o780GZd792ea6FfrQkuU4usHZIUczAQMRUE2plzA==", "dev": true, + "license": "ISC", + "dependencies": { + "minipass": "^7.1.2" + }, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", + "node_modules/minizlib": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-3.1.0.tgz", + "integrity": "sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw==", "dev": true, + "license": "MIT", "dependencies": { - "pinkie": "^2.0.0" + "minipass": "^7.1.2" }, "engines": { - "node": ">=0.10.0" + "node": ">= 18" } }, - "node_modules/piscina": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/piscina/-/piscina-5.2.0.tgz", - "integrity": "sha512-DszUCKeVN/5G5QKo6jAVHL8fmKnkJvQ0ACiVgY7YGCq3TUB2oznAOayvZPIAdEThvhczkXR+qm3IHsNXpFCYfA==", + "node_modules/mrmime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.1.tgz", + "integrity": "sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==", "dev": true, "license": "MIT", "engines": { - "node": ">=20.x" - }, + "node": ">=10" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/msgpackr": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/msgpackr/-/msgpackr-1.12.1.tgz", + "integrity": "sha512-4EUH9tQHnMmEgzW/MdAP0KIfa1T9AF+htl0ffe2n5vb2EKn9y2co8ccpgWko6S52Jy1PQZKwRnx5/KkYjtd9MQ==", + "dev": true, + "license": "MIT", + "optional": true, "optionalDependencies": { - "@napi-rs/nice": "^1.0.4" + "msgpackr-extract": "^3.0.2" } }, - "node_modules/pkce-challenge": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/pkce-challenge/-/pkce-challenge-5.0.1.tgz", - "integrity": "sha512-wQ0b/W4Fr01qtpHlqSqspcj3EhBvimsdh0KlHhH8HRZnMsEa0ea2fTULOXOS9ccQr3om+GcGRk4e+isrZWV8qQ==", + "node_modules/msgpackr-extract": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/msgpackr-extract/-/msgpackr-extract-3.0.4.tgz", + "integrity": "sha512-4kmO/MdyUIkLIvTPr8VHLil4AtoKIoniWPIEk5+CDy0xnWC84azhSFmuJ7PxZdsYtiP5kEeQsORAVIeMgxT+Hw==", "dev": true, + "hasInstallScript": true, "license": "MIT", + "optional": true, + "dependencies": { + "node-gyp-build-optional-packages": "5.2.2" + }, + "bin": { + "download-msgpackr-prebuilds": "bin/download-prebuilds.js" + }, + "optionalDependencies": { + "@msgpackr-extract/msgpackr-extract-darwin-arm64": "3.0.4", + "@msgpackr-extract/msgpackr-extract-darwin-x64": "3.0.4", + "@msgpackr-extract/msgpackr-extract-linux-arm": "3.0.4", + "@msgpackr-extract/msgpackr-extract-linux-arm64": "3.0.4", + "@msgpackr-extract/msgpackr-extract-linux-x64": "3.0.4", + "@msgpackr-extract/msgpackr-extract-win32-x64": "3.0.4" + } + }, + "node_modules/mute-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-2.0.0.tgz", + "integrity": "sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA==", + "dev": true, + "license": "ISC", "engines": { - "node": ">=16.20.0" + "node": "^18.17.0 || >=20.5.0" } }, - "node_modules/pkg-dir": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-8.0.0.tgz", - "integrity": "sha512-4peoBq4Wks0riS0z8741NVv+/8IiTvqnZAr8QGgtdifrtpdXbNw/FxRS1l6NFqm4EMzuS0EDqNNx4XGaz8cuyQ==", + "node_modules/nanoid": { + "version": "3.3.19", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.19.tgz", + "integrity": "sha512-Y2tUNy4ouw6tq5oDSKeQYGOyhkUBhNOcGV/02KC+6kd9eDGqdZd++mjMiIDilrBYvjEnCYvVtsuHCuP+okSfug==", "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], "license": "MIT", - "dependencies": { - "find-up-simple": "^1.0.0" + "bin": { + "nanoid": "bin/nanoid.cjs" }, "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, - "node_modules/pkijs": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/pkijs/-/pkijs-3.4.1.tgz", - "integrity": "sha512-Oo/NZcSWccq8KyoG7gLE9fnltgHns+pNCjCAp/WmjsUySi+sX7y4z4Xqu4fVb42CDHzRPl33fjzT15V1wvcyhA==", + "node_modules/nblas": { + "version": "2.1.13", + "resolved": "https://registry.npmjs.org/nblas/-/nblas-2.1.13.tgz", + "integrity": "sha512-LsnxQIUhMToa3+J/B5t799pXYKKskmfyMwmpDf6BS/MY46tzViZd/Bixc4fl5CEizbWJ/huaj4k0Vojv112MEQ==", + "hasInstallScript": true, + "optional": true + }, + "node_modules/needle": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/needle/-/needle-3.5.0.tgz", + "integrity": "sha512-jaQyPKKk2YokHrEg+vFDYxXIHTCBgiZwSHOoVx/8V3GIBS8/VN6NdVRmg8q1ERtPkMvmOvebsgga4sAj5hls/w==", "dev": true, - "license": "BSD-3-Clause", - "workspaces": [ - "website" - ], + "license": "MIT", + "optional": true, "dependencies": { - "@noble/hashes": "1.8.0", - "asn1js": "^3.0.6", - "bytestreamjs": "^2.0.1", - "pvtsutils": "^1.3.6", - "pvutils": "^1.1.3", - "tslib": "^2.8.1" + "iconv-lite": "^0.6.3", + "sax": "^1.2.4" + }, + "bin": { + "needle": "bin/needle" }, "engines": { - "node": ">=16.0.0" - } - }, - "node_modules/possible-typed-array-names": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", - "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", - "dev": true, - "engines": { - "node": ">= 0.4" + "node": ">= 4.4.x" } }, - "node_modules/postcss": { - "version": "8.5.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.23.tgz", - "integrity": "sha512-g50586zr4bZmwFiTlflMu8E0bDTb5I5gertgwAKmsdUlTQIhZtunzUlD1WSzwcVWPoAVpsrA6vlfCD7oXvRwgg==", + "node_modules/needle/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], "license": "MIT", + "optional": true, "dependencies": { - "nanoid": "^3.3.16", - "picocolors": "^1.1.1", - "source-map-js": "^1.2.1" + "safer-buffer": ">= 2.1.2 < 3.0.0" }, "engines": { - "node": "^10 || ^12 || >=14" + "node": ">=0.10.0" } }, - "node_modules/postcss-loader": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-8.2.0.tgz", - "integrity": "sha512-tHX+RkpsXVcc7st4dSdDGliI+r4aAQDuv+v3vFYHixb6YgjreG5AG4SEB0kDK8u2s6htqEEpKlkhSBUTvWKYnA==", + "node_modules/ng-packagr": { + "version": "21.2.7", + "resolved": "https://registry.npmjs.org/ng-packagr/-/ng-packagr-21.2.7.tgz", + "integrity": "sha512-G1LWptU48IbGQcAqW77JfPpGwga5dI+XUOsyBDD1zPuA1QeLqnQTPqV4tSkbL8WZJwwmqgttRrL89DD35p8vuQ==", "dev": true, "license": "MIT", "dependencies": { - "cosmiconfig": "^9.0.0", - "jiti": "^2.5.1", - "semver": "^7.6.2" + "@ampproject/remapping": "^2.3.0", + "@rollup/plugin-json": "^6.1.0", + "@rollup/wasm-node": "^4.24.0", + "ajv": "^8.17.1", + "ansi-colors": "^4.1.3", + "browserslist": "^4.26.0", + "chokidar": "^5.0.0", + "commander": "^14.0.0", + "dependency-graph": "^1.0.0", + "esbuild": "^0.28.1", + "find-cache-directory": "^6.0.0", + "injection-js": "^2.4.0", + "jsonc-parser": "^3.3.1", + "less": "^4.2.0", + "ora": "^9.0.0", + "piscina": "^5.0.0", + "postcss": "^8.4.47", + "rollup-plugin-dts": "~6.4.1", + "rxjs": "^7.8.1", + "sass": "^1.81.0", + "tinyglobby": "^0.2.12" + }, + "bin": { + "ng-packagr": "src/cli/main.js" }, "engines": { - "node": ">= 18.12.0" + "node": "^20.19.0 || ^22.12.0 || >=24.0.0" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" + "optionalDependencies": { + "rollup": "^4.24.0" }, "peerDependencies": { - "@rspack/core": "0.x || 1.x", - "postcss": "^7.0.0 || ^8.0.1", - "webpack": "^5.0.0" + "@angular/compiler-cli": "^21.0.0 || ^21.2.0-next", + "tailwindcss": "^2.0.0 || ^3.0.0 || ^4.0.0", + "tslib": "^2.3.0", + "typescript": ">=5.9 <6.0" }, "peerDependenciesMeta": { - "@rspack/core": { - "optional": true - }, - "webpack": { + "tailwindcss": { "optional": true } } }, - "node_modules/postcss-media-query-parser": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz", - "integrity": "sha512-3sOlxmbKcSHMjlUXQZKQ06jOswE7oVkXPxmZdoB1r5l0q6gTFTQSHxNxOrCccElbW7dxNytifNEo8qidX2Vsig==", - "dev": true, - "license": "MIT" - }, - "node_modules/postcss-modules-extract-imports": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.1.0.tgz", - "integrity": "sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==", + "node_modules/ng-packagr/node_modules/ajv": { + "version": "8.20.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.20.0.tgz", + "integrity": "sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA==", "dev": true, - "license": "ISC", - "engines": { - "node": "^10 || ^12 || >= 14" + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" }, - "peerDependencies": { - "postcss": "^8.1.0" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/postcss-modules-local-by-default": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.2.0.tgz", - "integrity": "sha512-5kcJm/zk+GJDSfw+V/42fJ5fhjL5YbFDl8nVdXkJPLLW+Vf9mTD5Xe0wqIaDnLuL2U6cDNpTr+UQ+v2HWIBhzw==", + "node_modules/ng-packagr/node_modules/ansi-regex": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.4.0.tgz", + "integrity": "sha512-KzTVk2tCWAHtYrvvvaP8bJKJq2pVinhLcGEQdtLIYPbmNGNyYe8QwNaTUYQp2J7/vIsUKt5QCqAfUkYyG9DkOw==", "dev": true, "license": "MIT", - "dependencies": { - "icss-utils": "^5.0.0", - "postcss-selector-parser": "^7.0.0", - "postcss-value-parser": "^4.1.0" - }, "engines": { - "node": "^10 || ^12 || >= 14" + "node": ">=12" }, - "peerDependencies": { - "postcss": "^8.1.0" + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, - "node_modules/postcss-modules-scope": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.2.1.tgz", - "integrity": "sha512-m9jZstCVaqGjTAuny8MdgE88scJnCiQSlSrOWcTQgM2t32UBe+MUmFSO5t7VMSfAf/FJKImAxBav8ooCHJXCJA==", + "node_modules/ng-packagr/node_modules/chalk": { + "version": "5.6.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.6.2.tgz", + "integrity": "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==", "dev": true, - "license": "ISC", - "dependencies": { - "postcss-selector-parser": "^7.0.0" - }, + "license": "MIT", "engines": { - "node": "^10 || ^12 || >= 14" + "node": "^12.17.0 || ^14.13 || >=16.0.0" }, - "peerDependencies": { - "postcss": "^8.1.0" + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/postcss-modules-values": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", - "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", + "node_modules/ng-packagr/node_modules/chokidar": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-5.0.0.tgz", + "integrity": "sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw==", "dev": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "icss-utils": "^5.0.0" + "readdirp": "^5.0.0" }, "engines": { - "node": "^10 || ^12 || >= 14" + "node": ">= 20.19.0" }, - "peerDependencies": { - "postcss": "^8.1.0" + "funding": { + "url": "https://paulmillr.com/funding/" } }, - "node_modules/postcss-safe-parser": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-7.1.0.tgz", - "integrity": "sha512-1WzZxRLaAFwEh6Do+zyGpjWV3nGJNxxhuh7Ubu/q1ICImMgZJnLwhoaEpRbG4pJppp2Y1ncL9ffA2f+LhrefQg==", + "node_modules/ng-packagr/node_modules/cli-cursor": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-5.0.0.tgz", + "integrity": "sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==", "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss-safe-parser" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], "license": "MIT", + "dependencies": { + "restore-cursor": "^5.0.0" + }, "engines": { - "node": ">=18.0" + "node": ">=18" }, - "peerDependencies": { - "postcss": "^8.4.31" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/postcss-selector-parser": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.6.tgz", - "integrity": "sha512-7qASPzhKF2l2KLboRZux8CCTRMdGiV08vWmyKzPz22qZ7ZjQBOeY7rNzNoCLSUiftJ7HUq0GERHmxw/t0dCdMw==", + "node_modules/ng-packagr/node_modules/cli-spinners": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-3.4.0.tgz", + "integrity": "sha512-bXfOC4QcT1tKXGorxL3wbJm6XJPDqEnij2gQ2m7ESQuE+/z9YFIWnl/5RpTiKWbMq3EVKR4fRLJGn6DVfu0mpw==", "dev": true, "license": "MIT", - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, "engines": { - "node": ">=4" + "node": ">=18.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/postcss-value-parser": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/powershell-utils": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/powershell-utils/-/powershell-utils-0.1.0.tgz", - "integrity": "sha512-dM0jVuXJPsDN6DvRpea484tCUaMiXWjuCn++HGTqUWzGDjv5tZkEZldAJ/UMlqRYGFrD/etByo4/xOuC/snX2A==", + "node_modules/ng-packagr/node_modules/commander": { + "version": "14.0.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-14.0.3.tgz", + "integrity": "sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw==", "dev": true, "license": "MIT", "engines": { "node": ">=20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/probe-image-size": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/probe-image-size/-/probe-image-size-7.4.0.tgz", - "integrity": "sha512-cdEprVtZxV+awMde9X+4jILBFYh4CARxVrQaMl4wY4YcPWbul9jntXrIW95NInBDyJwcVUP3U0T6yukN8rMBaQ==", + "node_modules/ng-packagr/node_modules/is-interactive": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-2.0.0.tgz", + "integrity": "sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/puzrin" - }, - { - "type": "github", - "url": "https://github.com/sponsors/nodeca" - } - ], "license": "MIT", - "optional": true, - "dependencies": { - "lodash.merge": "^4.6.2", - "needle": "^2.5.2", - "stream-parser": "~0.3.1" + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/probe-image-size/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "node_modules/ng-packagr/node_modules/is-unicode-supported": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-2.1.0.tgz", + "integrity": "sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==", "dev": true, "license": "MIT", - "optional": true, - "dependencies": { - "ms": "^2.1.1" + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/probe-image-size/node_modules/needle": { - "version": "2.9.1", - "resolved": "https://registry.npmjs.org/needle/-/needle-2.9.1.tgz", - "integrity": "sha512-6R9fqJ5Zcmf+uYaFgdIHmLwNldn5HbK8L5ybn7Uz+ylX/rnOsSp1AHcvQSrCaFN+qNM1wpymHqD7mVasEOlHGQ==", + "node_modules/ng-packagr/node_modules/log-symbols": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-7.0.1.tgz", + "integrity": "sha512-ja1E3yCr9i/0hmBVaM0bfwDjnGy8I/s6PP4DFp+yP+a+mrHO4Rm7DtmnqROTUkHIkqffC84YY7AeqX6oFk0WFg==", "dev": true, "license": "MIT", - "optional": true, "dependencies": { - "debug": "^3.2.6", - "iconv-lite": "^0.4.4", - "sax": "^1.2.4" - }, - "bin": { - "needle": "bin/needle" + "is-unicode-supported": "^2.0.0", + "yoctocolors": "^2.1.1" }, "engines": { - "node": ">= 4.4.x" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/proc-log": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-6.1.0.tgz", - "integrity": "sha512-iG+GYldRf2BQ0UDUAd6JQ/RwzaQy6mXmsk/IzlYyal4A4SNFw54MeH4/tLkF4I5WoWG9SQwuqWzS99jaFQHBuQ==", + "node_modules/ng-packagr/node_modules/onetime": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-7.0.0.tgz", + "integrity": "sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==", "dev": true, - "license": "ISC", + "license": "MIT", + "dependencies": { + "mimic-function": "^5.0.0" + }, "engines": { - "node": "^20.17.0 || >=22.9.0" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true, - "license": "MIT" - }, - "node_modules/proxy-addr": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.8.tgz", - "integrity": "sha512-5nnx0yGyVUcY6t9RnWcARWtwT9F1D8O9rt08htPvnd49W1IgZtmLkhu9WfMzQj1cFxjHIO6connUNVW5k7AVyQ==", + "node_modules/ng-packagr/node_modules/ora": { + "version": "9.4.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-9.4.1.tgz", + "integrity": "sha512-6VlU9MLXbjVQD04AZCMX28hVtA5bUoadvUqO76MUCVA0ilwJbMiHsITRPfyVm6p/BC0Av/BXMujx39WCe1LEqw==", "dev": true, "license": "MIT", "dependencies": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" + "chalk": "^5.6.2", + "cli-cursor": "^5.0.0", + "cli-spinners": "^3.2.0", + "is-interactive": "^2.0.0", + "is-unicode-supported": "^2.1.0", + "log-symbols": "^7.0.1", + "stdin-discarder": "^0.3.2", + "string-width": "^8.1.0" }, "engines": { - "node": ">= 0.10" + "node": ">=20" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/prr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", + "node_modules/ng-packagr/node_modules/readdirp": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-5.1.1.tgz", + "integrity": "sha512-Kko+Y5XQ6fM+Ce3dq3m9YGxnacYZYl9cA1wZjaF3Vbry2L3i1qVg8+CAgNPsXRArPMUMCaOR7oa9Nqntc43JKA==", "dev": true, "license": "MIT", - "optional": true - }, - "node_modules/punycode": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", - "dev": true, - "peer": true, "engines": { - "node": ">=6" + "node": ">= 20.19.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" } }, - "node_modules/pvtsutils": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/pvtsutils/-/pvtsutils-1.3.6.tgz", - "integrity": "sha512-PLgQXQ6H2FWCaeRak8vvk1GW462lMxB5s3Jm673N82zI4vqtVUPuZdffdZbPDFRoU8kAhItWFtPCWiPpp4/EDg==", + "node_modules/ng-packagr/node_modules/restore-cursor": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-5.1.0.tgz", + "integrity": "sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==", "dev": true, "license": "MIT", "dependencies": { - "tslib": "^2.8.1" + "onetime": "^7.0.0", + "signal-exit": "^4.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/pvutils": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pvutils/-/pvutils-1.2.0.tgz", - "integrity": "sha512-BbubeCEyTuQjVMakvJQ/Sxbc93F2pwmbsxONT/ZRrwU7Ua38d8unYTwXpTVLAKJ4BDuH9IGztCjQcd/N/39Dvg==", + "node_modules/ng-packagr/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", "dev": true, - "license": "MIT", + "license": "ISC", "engines": { - "node": ">=16.0.0" + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/qjobs": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/qjobs/-/qjobs-1.2.0.tgz", - "integrity": "sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg==", + "node_modules/ng-packagr/node_modules/string-width": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-8.3.0.tgz", + "integrity": "sha512-ZbmZM0JCihQN91dWnxoipT2KOEyHqEyfRXUyjuRhW8b/xnqPDoq4gWEVApTVa9db2wN8mmoikgFBbjh71+cGeQ==", "dev": true, + "license": "MIT", + "dependencies": { + "get-east-asian-width": "^1.5.0", + "strip-ansi": "^7.1.2" + }, "engines": { - "node": ">=0.9" + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/qs": { - "version": "6.16.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.16.0.tgz", - "integrity": "sha512-h6fhOIaRrID2CbEY2fqs+7t+UXZo+MLAnU5gRIq85uFtdiUPCdsApMlHhXogKVM4HM2DVbIjGNTTYH2OcmP1vA==", + "node_modules/ng-packagr/node_modules/strip-ansi": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz", + "integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==", "dev": true, - "license": "BSD-3-Clause", + "license": "MIT", "dependencies": { - "es-define-property": "^1.0.1", - "side-channel": "^1.1.1" + "ansi-regex": "^6.2.2" }, "engines": { - "node": ">=0.6" + "node": ">=12" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, - "node_modules/range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "node_modules/nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true + }, + "node_modules/nlapack": { + "version": "2.0.9", + "resolved": "https://registry.npmjs.org/nlapack/-/nlapack-2.0.9.tgz", + "integrity": "sha512-NnTUNKURkoRfwjNhCygmtLgu4l3gNwxSM+54U4ovnMX50biSElmOGb9yUALNfhoahfm0EGdk/GLySrZLA8yGTw==", + "hasInstallScript": true, + "optional": true + }, + "node_modules/node-addon-api": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-6.1.0.tgz", + "integrity": "sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==", "dev": true, - "engines": { - "node": ">= 0.6" - } + "license": "MIT", + "optional": true }, - "node_modules/raw-body": { - "version": "2.5.3", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.3.tgz", - "integrity": "sha512-s4VSOf6yN0rvbRZGxs8Om5CWj6seneMwK3oDb4lWDH0UPhWcxwOWw5+qk24bxq87szX1ydrwylIOp2uG1ojUpA==", + "node_modules/node-gyp": { + "version": "12.4.0", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-12.4.0.tgz", + "integrity": "sha512-OMcPNvqTCFUnNaBlmdgq+lfNqY7gTiSmNRDjY3uAXRyudeKZEZxu3CLtjMQrx4zZxCX2b/mpNqTtwuCJgXhHkw==", "dev": true, "license": "MIT", "dependencies": { - "bytes": "~3.1.2", - "http-errors": "~2.0.1", - "iconv-lite": "~0.4.24", - "unpipe": "~1.0.0" + "env-paths": "^2.2.0", + "exponential-backoff": "^3.1.1", + "graceful-fs": "^4.2.6", + "nopt": "^9.0.0", + "proc-log": "^6.0.0", + "semver": "^7.3.5", + "tar": "^7.5.4", + "tinyglobby": "^0.2.12", + "undici": "^6.25.0", + "which": "^6.0.0" + }, + "bin": { + "node-gyp": "bin/node-gyp.js" }, "engines": { - "node": ">= 0.8" + "node": "^20.17.0 || >=22.9.0" } }, - "node_modules/read-pkg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", - "integrity": "sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==", + "node_modules/node-gyp-build-optional-packages": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.2.2.tgz", + "integrity": "sha512-s+w+rBWnpTMwSFbaE0UXsRlg7hU4FjekKU4eyAih5T8nJuNZT1nNsskXpxmeqSK9UzkBl6UgRlnKc8hz8IEqOw==", "dev": true, + "license": "MIT", + "optional": true, "dependencies": { - "load-json-file": "^4.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^3.0.0" + "detect-libc": "^2.0.1" }, - "engines": { - "node": ">=4" + "bin": { + "node-gyp-build-optional-packages": "bin.js", + "node-gyp-build-optional-packages-optional": "optional.js", + "node-gyp-build-optional-packages-test": "build-test.js" } }, - "node_modules/read-pkg/node_modules/hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "dev": true - }, - "node_modules/read-pkg/node_modules/normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "node_modules/node-gyp/node_modules/isexe": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-4.0.0.tgz", + "integrity": "sha512-FFUtZMpoZ8RqHS3XeXEmHWLA4thH+ZxCv2lOiPIn1Xc7CxrqhWzNSDzD+/chS/zbYezmiwWLdQC09JdQKmthOw==", "dev": true, - "dependencies": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=20" } }, - "node_modules/read-pkg/node_modules/path-type": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "node_modules/node-gyp/node_modules/which": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/which/-/which-6.0.1.tgz", + "integrity": "sha512-oGLe46MIrCRqX7ytPUf66EAYvdeMIZYn3WaocqqKZAxrBpkqHfL/qvTyJ/bTk5+AqHCjXmrv3CEWgy368zhRUg==", "dev": true, + "license": "ISC", "dependencies": { - "pify": "^3.0.0" + "isexe": "^4.0.0" + }, + "bin": { + "node-which": "bin/which.js" }, "engines": { - "node": ">=4" + "node": "^20.17.0 || >=22.9.0" } }, - "node_modules/read-pkg/node_modules/pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "node_modules/node-releases": { + "version": "2.0.57", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.57.tgz", + "integrity": "sha512-kQK9LGGFiHtrWiNhZtA7Qbw17AQz+dmsEKODRIVTXA9+e5MS/2gZEBhYJt13GrAz5/IOZKddH/0Z3TP/Zgo+yw==", "dev": true, + "license": "MIT", "engines": { - "node": ">=4" + "node": ">=18" } }, - "node_modules/read-pkg/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "node_modules/nopt": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-9.0.0.tgz", + "integrity": "sha512-Zhq3a+yFKrYwSBluL4H9XP3m3y5uvQkB/09CwDruCiRmR/UJYnn9W4R48ry0uGC70aeTPKLynBtscP9efFFcPw==", "dev": true, + "license": "ISC", + "dependencies": { + "abbrev": "^4.0.0" + }, "bin": { - "semver": "bin/semver" + "nopt": "bin/nopt.js" + }, + "engines": { + "node": "^20.17.0 || >=22.9.0" } }, - "node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "node_modules/npm-bundled": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-5.0.0.tgz", + "integrity": "sha512-JLSpbzh6UUXIEoqPsYBvVNVmyrjVZ1fzEFbqxKkTJQkWBO3xFzFT+KDnSKQWwOQNbuWRwt5LSD6HOTLGIWzfrw==", "dev": true, + "license": "ISC", "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" + "npm-normalize-package-bin": "^5.0.0" }, "engines": { - "node": ">= 6" + "node": "^20.17.0 || >=22.9.0" } }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "node_modules/npm-install-checks": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-8.0.0.tgz", + "integrity": "sha512-ScAUdMpyzkbpxoNekQ3tNRdFI8SJ86wgKZSQZdUxT+bj0wVFpsEMWnkXP0twVe1gJyNF5apBWDJhhIbgrIViRA==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "picomatch": "^2.2.1" + "semver": "^7.1.1" }, "engines": { - "node": ">=8.10.0" + "node": "^20.17.0 || >=22.9.0" } }, - "node_modules/readdirp/node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "node_modules/npm-normalize-package-bin": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-5.0.0.tgz", + "integrity": "sha512-CJi3OS4JLsNMmr2u07OJlhcrPxCeOeP/4xq67aWNai6TNWWbTrlNDgl8NcFKVlcBKp18GPj+EzbNIgrBfZhsag==", "dev": true, + "license": "ISC", "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" + "node": "^20.17.0 || >=22.9.0" } }, - "node_modules/reflect-metadata": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.2.2.tgz", - "integrity": "sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==", - "dev": true, - "license": "Apache-2.0" - }, - "node_modules/regenerate": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", - "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", - "dev": true, - "license": "MIT" - }, - "node_modules/regenerate-unicode-properties": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.3.0.tgz", - "integrity": "sha512-9ns8odR8e9q3otKeHj3DE80jZYKg6zVeZKE+zQmRKXFoVUcuiTGeO6iusDhPRoIQQPVPRvH+SfBhrTud4eczuw==", + "node_modules/npm-package-arg": { + "version": "13.0.2", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-13.0.2.tgz", + "integrity": "sha512-IciCE3SY3uE84Ld8WZU23gAPPV9rIYod4F+rc+vJ7h7cwAJt9Vk6TVsK60ry7Uj3SRS3bqRRIGuTp9YVlk6WNA==", "dev": true, - "license": "MIT", + "license": "ISC", "dependencies": { - "regenerate": "^1.4.2" + "hosted-git-info": "^9.0.0", + "proc-log": "^6.0.0", + "semver": "^7.3.5", + "validate-npm-package-name": "^7.0.0" }, "engines": { - "node": ">=4" + "node": "^20.17.0 || >=22.9.0" } }, - "node_modules/regex-parser": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.3.0.tgz", - "integrity": "sha512-TVILVSz2jY5D47F4mA4MppkBrafEaiUWJO/TcZHEIuI13AqoZMkK1WMA4Om1YkYbTx+9Ki1/tSUXbceyr9saRg==", - "dev": true - }, - "node_modules/regexp.prototype.flags": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz", - "integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==", + "node_modules/npm-packlist": { + "version": "10.0.4", + "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-10.0.4.tgz", + "integrity": "sha512-uMW73iajD8hiH4ZBxEV3HC+eTnppIqwakjOYuvgddnalIw2lJguKviK1pcUJDlIWm1wSJkchpDZDSVVsZEYRng==", "dev": true, + "license": "ISC", "dependencies": { - "call-bind": "^1.0.6", - "define-properties": "^1.2.1", - "es-errors": "^1.3.0", - "set-function-name": "^2.0.1" + "ignore-walk": "^8.0.0", + "proc-log": "^6.0.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": "^20.17.0 || >=22.9.0" } }, - "node_modules/regexpu-core": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.5.2.tgz", - "integrity": "sha512-zkmVH92DlzjSFc4xKGZp/2BXIFrDIdBQBC8gUXKCsMgKYb1bkCkxfSuoW1werDjaTEMTbULkHtKFHe1L+Abnaw==", + "node_modules/npm-pick-manifest": { + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-11.0.3.tgz", + "integrity": "sha512-buzyCfeoGY/PxKqmBqn1IUJrZnUi1VVJTdSSRPGI60tJdUhUoSQFhs0zycJokDdOznQentgrpf8LayEHyyYlqQ==", "dev": true, - "license": "MIT", + "license": "ISC", "dependencies": { - "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.3.0", - "regjsgen": "^0.8.0", - "regjsparser": "^0.13.0", - "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.2.1" + "npm-install-checks": "^8.0.0", + "npm-normalize-package-bin": "^5.0.0", + "npm-package-arg": "^13.0.0", + "semver": "^7.3.5" }, "engines": { - "node": ">=4" + "node": "^20.17.0 || >=22.9.0" } }, - "node_modules/regjsgen": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.8.0.tgz", - "integrity": "sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==", - "dev": true, - "license": "MIT" - }, - "node_modules/regjsparser": { - "version": "0.13.3", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.13.3.tgz", - "integrity": "sha512-ycwFAS14Jw4mppvmK4GR/J6u3WpWpjkEApehuHtLc/8VpPNpDMbQ4WjqwplXifGeyKOzHSFLmSPqzksDQE2Sfg==", + "node_modules/npm-registry-fetch": { + "version": "19.1.1", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-19.1.1.tgz", + "integrity": "sha512-TakBap6OM1w0H73VZVDf44iFXsOS3h+L4wVMXmbWOQroZgFhMch0juN6XSzBNlD965yIKvWg2dfu7NSiaYLxtw==", "dev": true, - "license": "BSD-2-Clause", + "license": "ISC", "dependencies": { - "jsesc": "~3.1.0" + "@npmcli/redact": "^4.0.0", + "jsonparse": "^1.3.1", + "make-fetch-happen": "^15.0.0", + "minipass": "^7.0.2", + "minipass-fetch": "^5.0.0", + "minizlib": "^3.0.1", + "npm-package-arg": "^13.0.0", + "proc-log": "^6.0.0" }, - "bin": { - "regjsparser": "bin/parser" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "dev": true, "engines": { - "node": ">=0.10.0" + "node": "^20.17.0 || >=22.9.0" } }, - "node_modules/requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", - "dev": true - }, - "node_modules/resolve": { - "version": "1.22.12", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.12.tgz", - "integrity": "sha512-TyeJ1zif53BPfHootBGwPRYT1RUt6oGWsaQr8UyZW/eAm9bKoijtvruSDEmZHm92CwS9nj7/fWttqPCgzep8CA==", + "node_modules/npm-run-all": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/npm-run-all/-/npm-run-all-4.1.5.tgz", + "integrity": "sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==", "dev": true, - "license": "MIT", "dependencies": { - "es-errors": "^1.3.0", - "is-core-module": "^2.16.1", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" + "ansi-styles": "^3.2.1", + "chalk": "^2.4.1", + "cross-spawn": "^6.0.5", + "memorystream": "^0.3.1", + "minimatch": "^3.0.4", + "pidtree": "^0.3.0", + "read-pkg": "^3.0.0", + "shell-quote": "^1.6.1", + "string.prototype.padend": "^3.0.0" }, "bin": { - "resolve": "bin/resolve" - }, - "engines": { - "node": ">= 0.4" + "npm-run-all": "bin/npm-run-all/index.js", + "run-p": "bin/run-p/index.js", + "run-s": "bin/run-s/index.js" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true, - "license": "MIT", "engines": { - "node": ">=4" + "node": ">= 4" } }, - "node_modules/resolve-url-loader": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-5.0.0.tgz", - "integrity": "sha512-uZtduh8/8srhBoMx//5bwqjQ+rfYOUq8zC9NrMUGtjBiGTtFJM42s58/36+hTqeqINcnYe08Nj3LkK9lW4N8Xg==", + "node_modules/npm-run-all/node_modules/cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", "dev": true, "dependencies": { - "adjust-sourcemap-loader": "^4.0.0", - "convert-source-map": "^1.7.0", - "loader-utils": "^2.0.0", - "postcss": "^8.2.14", - "source-map": "0.6.1" + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" }, "engines": { - "node": ">=12" + "node": ">=4.8" } }, - "node_modules/resolve-url-loader/node_modules/loader-utils": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", - "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "node_modules/npm-run-all/node_modules/path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", "dev": true, - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - }, "engines": { - "node": ">=8.9.0" + "node": ">=4" } }, - "node_modules/resolve-url-loader/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "node_modules/npm-run-all/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "dev": true, - "engines": { - "node": ">=0.10.0" + "bin": { + "semver": "bin/semver" } }, - "node_modules/restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "node_modules/npm-run-all/node_modules/shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", "dev": true, - "peer": true, - "dependencies": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" + "dependencies": { + "shebang-regex": "^1.0.0" }, "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, - "node_modules/retry": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", - "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", + "node_modules/npm-run-all/node_modules/shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", "dev": true, - "license": "MIT", "engines": { - "node": ">= 4" + "node": ">=0.10.0" } }, - "node_modules/rfdc": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.4.1.tgz", - "integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==", - "dev": true, - "license": "MIT" - }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" + "boolbase": "^1.0.0" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/fb55/nth-check?sponsor=1" } }, - "node_modules/rolldown": { - "version": "1.0.0-rc.4", - "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.0.0-rc.4.tgz", - "integrity": "sha512-V2tPDUrY3WSevrvU2E41ijZlpF+5PbZu4giH+VpNraaadsJGHa4fR6IFwsocVwEXDoAdIv5qgPPxgrvKAOIPtA==", + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", "dev": true, - "license": "MIT", - "dependencies": { - "@oxc-project/types": "=0.113.0", - "@rolldown/pluginutils": "1.0.0-rc.4" - }, - "bin": { - "rolldown": "bin/cli.mjs" - }, "engines": { - "node": "^20.19.0 || >=22.12.0" - }, - "optionalDependencies": { - "@rolldown/binding-android-arm64": "1.0.0-rc.4", - "@rolldown/binding-darwin-arm64": "1.0.0-rc.4", - "@rolldown/binding-darwin-x64": "1.0.0-rc.4", - "@rolldown/binding-freebsd-x64": "1.0.0-rc.4", - "@rolldown/binding-linux-arm-gnueabihf": "1.0.0-rc.4", - "@rolldown/binding-linux-arm64-gnu": "1.0.0-rc.4", - "@rolldown/binding-linux-arm64-musl": "1.0.0-rc.4", - "@rolldown/binding-linux-x64-gnu": "1.0.0-rc.4", - "@rolldown/binding-linux-x64-musl": "1.0.0-rc.4", - "@rolldown/binding-openharmony-arm64": "1.0.0-rc.4", - "@rolldown/binding-wasm32-wasi": "1.0.0-rc.4", - "@rolldown/binding-win32-arm64-msvc": "1.0.0-rc.4", - "@rolldown/binding-win32-x64-msvc": "1.0.0-rc.4" + "node": ">=0.10.0" } }, - "node_modules/rollup": { - "version": "4.64.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.64.0.tgz", - "integrity": "sha512-gjA/kFeDfffII8COoPsvLPvE16hWDTEc1+0QKQNKUkuV8iJjqsC4xXs8/FzuL0v9EV39kuxTbAgcFoTRyy2TGQ==", + "node_modules/object-inspect": { + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", "dev": true, "license": "MIT", - "dependencies": { - "@types/estree": "1.0.9" - }, - "bin": { - "rollup": "dist/bin/rollup" - }, "engines": { - "node": ">=18.0.0", - "npm": ">=8.0.0" + "node": ">= 0.4" }, - "optionalDependencies": { - "@napi-rs/lzma-linux-x64-gnu": "1.5.1", - "@rollup/rollup-android-arm-eabi": "4.64.0", - "@rollup/rollup-android-arm64": "4.64.0", - "@rollup/rollup-darwin-arm64": "4.64.0", - "@rollup/rollup-darwin-x64": "4.64.0", - "@rollup/rollup-freebsd-arm64": "4.64.0", - "@rollup/rollup-freebsd-x64": "4.64.0", - "@rollup/rollup-linux-arm-gnueabihf": "4.64.0", - "@rollup/rollup-linux-arm-musleabihf": "4.64.0", - "@rollup/rollup-linux-arm64-gnu": "4.64.0", - "@rollup/rollup-linux-arm64-musl": "4.64.0", - "@rollup/rollup-linux-loong64-gnu": "4.64.0", - "@rollup/rollup-linux-loong64-musl": "4.64.0", - "@rollup/rollup-linux-ppc64-gnu": "4.64.0", - "@rollup/rollup-linux-ppc64-musl": "4.64.0", - "@rollup/rollup-linux-riscv64-gnu": "4.64.0", - "@rollup/rollup-linux-riscv64-musl": "4.64.0", - "@rollup/rollup-linux-s390x-gnu": "4.64.0", - "@rollup/rollup-linux-x64-gnu": "4.64.0", - "@rollup/rollup-linux-x64-musl": "4.64.0", - "@rollup/rollup-openbsd-x64": "4.64.0", - "@rollup/rollup-openharmony-arm64": "4.64.0", - "@rollup/rollup-win32-arm64-msvc": "4.64.0", - "@rollup/rollup-win32-ia32-msvc": "4.64.0", - "@rollup/rollup-win32-x64-gnu": "4.64.0", - "@rollup/rollup-win32-x64-msvc": "4.64.0", - "fsevents": "~2.3.2" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/rollup-plugin-dts": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/rollup-plugin-dts/-/rollup-plugin-dts-6.4.1.tgz", - "integrity": "sha512-l//F3Zf7ID5GoOfLfD8kroBjQKEKpy1qfhtAdnpibFZMffPaylrg1CoDC2vGkPeTeyxUe4bVFCln2EFuL7IGGg==", + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", + "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", "dev": true, - "license": "LGPL-3.0-only", "dependencies": { - "@jridgewell/remapping": "^2.3.5", - "@jridgewell/sourcemap-codec": "^1.5.5", - "convert-source-map": "^2.0.0", - "magic-string": "^0.30.21" + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" }, "engines": { - "node": ">=20" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/Swatinem" - }, - "optionalDependencies": { - "@babel/code-frame": "^7.29.0" - }, - "peerDependencies": { - "rollup": "^3.29.4 || ^4", - "typescript": "^4.5 || ^5.0 || ^6.0" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/rollup-plugin-dts/node_modules/convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true, - "license": "MIT" - }, - "node_modules/router": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/router/-/router-2.2.0.tgz", - "integrity": "sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ==", + "node_modules/obug": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/obug/-/obug-2.2.1.tgz", + "integrity": "sha512-XrsrhT5sybtKI6wakr2SPOlGZWWYbUXZ7a0jT8/QOeAPau+1X/bSegNe5YR75oJmEZQbKningirmGOEJCIk61Q==", "dev": true, + "funding": [ + "https://github.com/sponsors/sxzz", + "https://opencollective.com/debug" + ], "license": "MIT", - "dependencies": { - "debug": "^4.4.0", - "depd": "^2.0.0", - "is-promise": "^4.0.0", - "parseurl": "^1.3.3", - "path-to-regexp": "^8.0.0" - }, "engines": { - "node": ">= 18" + "node": ">=12.20.0" } }, - "node_modules/router/node_modules/debug": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", - "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", "dev": true, - "license": "MIT", "dependencies": { - "ms": "^2.1.3" + "ee-first": "1.1.1" }, "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "node": ">= 0.8" } }, - "node_modules/router/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true, - "license": "MIT" - }, - "node_modules/run-applescript": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-7.1.0.tgz", - "integrity": "sha512-DPe5pVFaAsinSaV6QjQ6gdiedWDcRCbUuiQfQa2wmWV7+xC9bGulGI8+TdRmoFkAPaBXk8CrAbnlY2ISniJ47Q==", + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/rxjs": { - "version": "7.8.1", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", - "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", "dependencies": { - "tslib": "^2.1.0" + "wrappy": "1" } }, - "node_modules/safe-array-concat": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz", - "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==", + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", "dev": true, + "peer": true, "dependencies": { - "call-bind": "^1.0.7", - "get-intrinsic": "^1.2.4", - "has-symbols": "^1.0.3", - "isarray": "^2.0.5" + "mimic-fn": "^2.1.0" }, "engines": { - "node": ">=0.4" + "node": ">=6" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/safe-array-concat/node_modules/isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "dev": true - }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/safe-regex-test": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", - "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", + "node_modules/ora": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", + "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", "dev": true, + "peer": true, "dependencies": { - "call-bind": "^1.0.6", - "es-errors": "^1.3.0", - "is-regex": "^1.1.4" + "bl": "^4.1.0", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "log-symbols": "^4.1.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" }, "engines": { - "node": ">= 0.4" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, - "node_modules/sass": { - "version": "1.97.3", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.97.3.tgz", - "integrity": "sha512-fDz1zJpd5GycprAbu4Q2PV/RprsRtKC/0z82z0JLgdytmcq0+ujJbJ/09bPGDxCLkKY3Np5cRAOcWiVkLXJURg==", + "node_modules/ora/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "license": "MIT", + "peer": true, "dependencies": { - "chokidar": "^4.0.0", - "immutable": "^5.0.2", - "source-map-js": ">=0.6.2 <2.0.0" - }, - "bin": { - "sass": "sass.js" + "color-convert": "^2.0.1" }, "engines": { - "node": ">=14.0.0" + "node": ">=8" }, - "optionalDependencies": { - "@parcel/watcher": "^2.4.1" + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/sass-loader": { - "version": "16.0.7", - "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-16.0.7.tgz", - "integrity": "sha512-w6q+fRHourZ+e+xA1kcsF27iGM6jdB8teexYCfdUw0sYgcDNeZESnDNT9sUmmPm3ooziwUJXGwZJSTF3kOdBfA==", + "node_modules/ora/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, - "license": "MIT", + "peer": true, "dependencies": { - "neo-async": "^2.6.2" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">= 18.12.0" + "node": ">=10" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "@rspack/core": "0.x || ^1.0.0 || ^2.0.0-0", - "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0", - "sass": "^1.3.0", - "sass-embedded": "*", - "webpack": "^5.0.0" - }, - "peerDependenciesMeta": { - "@rspack/core": { - "optional": true - }, - "node-sass": { - "optional": true - }, - "sass": { - "optional": true - }, - "sass-embedded": { - "optional": true - }, - "webpack": { - "optional": true - } + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/sass/node_modules/chokidar": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", - "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", + "node_modules/ora/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, - "license": "MIT", + "peer": true, "dependencies": { - "readdirp": "^4.0.1" + "color-name": "~1.1.4" }, "engines": { - "node": ">= 14.16.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" + "node": ">=7.0.0" } }, - "node_modules/sass/node_modules/readdirp": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", - "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", + "node_modules/ora/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true, - "license": "MIT", + "peer": true + }, + "node_modules/ora/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "peer": true, "engines": { - "node": ">= 14.18.0" - }, - "funding": { - "type": "individual", - "url": "https://paulmillr.com/funding/" + "node": ">=8" } }, - "node_modules/sax": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.6.1.tgz", - "integrity": "sha512-42tBVwLWnaQvW5zc4HbZrTuWccECCZfBi92FDuwtqxasH+JbPB3/FOKb1m222K42R4WxuxzzMsTswfzgtSu64Q==", + "node_modules/ora/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, - "license": "BlueOak-1.0.0", - "optional": true, + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, "engines": { - "node": ">=11.0.0" + "node": ">=8" } }, - "node_modules/schema-utils": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.5.0.tgz", - "integrity": "sha512-zJlMCZ0cAR5p/Y4oVpRoqioDMJcGxaXRrQ/4rP4WyR84vc5z/DolXdbvXeDpTwbtocDFr2rhPqHPErDCUtz2kA==", + "node_modules/ordered-binary": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/ordered-binary/-/ordered-binary-1.6.2.tgz", + "integrity": "sha512-BY+qgDArmYpvvmij141xbkB4Cw8RFLBQM5Zj4MODFb1SyXBRE/xO4Xj/QWbR7aUEBxbkjuNdsFVCL2TmbYrlNg==", "dev": true, "license": "MIT", + "optional": true + }, + "node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, "dependencies": { - "@types/json-schema": "^7.0.15", - "ajv": "^8.20.0", - "ajv-formats": "^3.0.1", - "ajv-keywords": "^5.1.0" + "p-try": "^2.0.0" }, "engines": { - "node": ">= 10.13.0" + "node": ">=6" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/schema-utils/node_modules/ajv": { - "version": "8.20.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.20.0.tgz", - "integrity": "sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA==", + "node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, - "license": "MIT", "dependencies": { - "fast-deep-equal": "^3.1.3", - "fast-uri": "^3.0.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2" + "p-limit": "^2.2.0" }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" + "engines": { + "node": ">=8" } }, - "node_modules/schema-utils/node_modules/ajv-formats": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-3.0.1.tgz", - "integrity": "sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==", + "node_modules/p-map": { + "version": "7.0.8", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-7.0.8.tgz", + "integrity": "sha512-MitaVsCuCFIvOLLPIU7NnfrZvS9H9h7kwMUkDo+T2pEISaJD48IV9S8iIdXB7PsvvdxyYcsSTTrr90XKsbulNw==", "dev": true, "license": "MIT", - "dependencies": { - "ajv": "^8.0.0" - }, - "peerDependencies": { - "ajv": "^8.0.0" + "engines": { + "node": ">=18" }, - "peerDependenciesMeta": { - "ajv": { - "optional": true - } + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/select-hose": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", - "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==", + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true, - "license": "MIT" + "engines": { + "node": ">=6" + } }, - "node_modules/selfsigned": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-5.5.0.tgz", - "integrity": "sha512-ftnu3TW4+3eBfLRFnDEkzGxSF/10BJBkaLJuBHZX0kiPS7bRdlpZGu6YGt4KngMkdTwJE6MbjavFpqHvqVt+Ew==", + "node_modules/pacote": { + "version": "21.5.1", + "resolved": "https://registry.npmjs.org/pacote/-/pacote-21.5.1.tgz", + "integrity": "sha512-KvcJ9iy3crysCsgqc4+PknH/w6jkrp8JN36mpZBPwNaDRwTfMZD37YzRazNstiZUOhuF5pno9f78n9mEJBavwg==", "dev": true, - "license": "MIT", + "license": "ISC", "dependencies": { - "@peculiar/x509": "^1.14.2", - "pkijs": "^3.3.3" + "@gar/promise-retry": "^1.0.0", + "@npmcli/git": "^7.0.0", + "@npmcli/installed-package-contents": "^4.0.0", + "@npmcli/package-json": "^7.0.0", + "@npmcli/promise-spawn": "^9.0.0", + "@npmcli/run-script": "^10.0.0", + "cacache": "^20.0.0", + "fs-minipass": "^3.0.0", + "minipass": "^7.0.2", + "npm-package-arg": "^13.0.0", + "npm-packlist": "^10.0.1", + "npm-pick-manifest": "^11.0.1", + "npm-registry-fetch": "^19.0.0", + "proc-log": "^6.0.0", + "sigstore": "^4.0.0", + "ssri": "^13.0.0", + "tar": "^7.4.3" + }, + "bin": { + "pacote": "bin/index.js" }, "engines": { - "node": ">=18" + "node": "^20.17.0 || >=22.9.0" } }, - "node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "node_modules/parse-node-version": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", + "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==", "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, + "license": "MIT", "engines": { - "node": ">=10" + "node": ">= 0.10" + } + }, + "node_modules/parse5": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-8.0.1.tgz", + "integrity": "sha512-z1e/HMG90obSGeidlli3hj7cbocou0/wa5HacvI3ASx34PecNjNQeaHNo5WIZpWofN9kgkqV1q5YvXe3F0FoPw==", + "license": "MIT", + "dependencies": { + "entities": "^8.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" } }, - "node_modules/send": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/send/-/send-1.2.1.tgz", - "integrity": "sha512-1gnZf7DFcoIcajTjTwjwuDjzuz4PPcY2StKPlsGAQ1+YH20IRVrBaXSWmdjowTJ6u8Rc01PoYOGHXfP1mYcZNQ==", + "node_modules/parse5-html-rewriting-stream": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/parse5-html-rewriting-stream/-/parse5-html-rewriting-stream-8.0.0.tgz", + "integrity": "sha512-wzh11mj8KKkno1pZEu+l2EVeWsuKDfR5KNWZOTsslfUX8lPDZx77m9T0kIoAVkFtD1nx6YF8oh4BnPHvxMtNMw==", "dev": true, "license": "MIT", "dependencies": { - "debug": "^4.4.3", - "encodeurl": "^2.0.0", - "escape-html": "^1.0.3", - "etag": "^1.8.1", - "fresh": "^2.0.0", - "http-errors": "^2.0.1", - "mime-types": "^3.0.2", - "ms": "^2.1.3", - "on-finished": "^2.4.1", - "range-parser": "^1.2.1", - "statuses": "^2.0.2" + "entities": "^6.0.0", + "parse5": "^8.0.0", + "parse5-sax-parser": "^8.0.0" }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parse5-html-rewriting-stream/node_modules/entities": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz", + "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==", + "dev": true, + "license": "BSD-2-Clause", "engines": { - "node": ">= 18" + "node": ">=0.12" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" + "url": "https://github.com/fb55/entities?sponsor=1" } }, - "node_modules/send/node_modules/debug": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", - "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "node_modules/parse5-sax-parser": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/parse5-sax-parser/-/parse5-sax-parser-8.0.0.tgz", + "integrity": "sha512-/dQ8UzHZwnrzs3EvDj6IkKrD/jIZyTlB+8XrHJvcjNgRdmWruNdN9i9RK/JtxakmlUdPwKubKPTCqvbTgzGhrw==", "dev": true, "license": "MIT", "dependencies": { - "ms": "^2.1.3" + "parse5": "^8.0.0" }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parse5/node_modules/entities": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-8.1.0.tgz", + "integrity": "sha512-kxL7msIffSuh9aaFAMD7rxAIuTRMAHMeBtgHW2yUdWw732ZNh4MehkF2gdjvtdmikkaIP9bFDDJOPlsvm7avrA==", + "license": "BSD-2-Clause", "engines": { - "node": ">=6.0" + "node": ">=20.19.0" }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" } }, - "node_modules/send/node_modules/encodeurl": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", - "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", "dev": true, - "license": "MIT", "engines": { "node": ">= 0.8" } }, - "node_modules/send/node_modules/mime-db": { - "version": "1.54.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", - "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true, - "license": "MIT", "engines": { - "node": ">= 0.6" + "node": ">=8" } }, - "node_modules/send/node_modules/mime-types": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.2.tgz", - "integrity": "sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==", + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", "dev": true, - "license": "MIT", - "dependencies": { - "mime-db": "^1.54.0" - }, "engines": { - "node": ">=18" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" + "node": ">=0.10.0" } }, - "node_modules/send/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true, - "license": "MIT" - }, - "node_modules/send/node_modules/statuses": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz", - "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==", + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "dev": true, "license": "MIT", "engines": { - "node": ">= 0.8" + "node": ">=8" } }, - "node_modules/serialize-javascript": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-7.1.2.tgz", - "integrity": "sha512-GL2BWwVa6JydKO6l/ljVgjAZF4QJ3S7dWDWi53s5GZT8PJzD2fNxi67HANQGKAqPrwEpL5ba7gUBGi0Ls/sEoQ==", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=20.0.0" - } + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true }, - "node_modules/serve-index": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.2.tgz", - "integrity": "sha512-KDj11HScOaLmrPxl70KYNW1PksP4Nb/CLL2yvC+Qd2kHMPEEpfc4Re2e4FOay+bC/+XQl/7zAcWON3JVo5v3KQ==", + "node_modules/path-scurry": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.2.tgz", + "integrity": "sha512-3O/iVVsJAPsOnpwWIeD+d6z/7PmqApyQePUtCndjatj/9I5LylHvt5qluFaBT3I5h3r1ejfR056c+FCv+NnNXg==", "dev": true, - "license": "MIT", + "license": "BlueOak-1.0.0", "dependencies": { - "accepts": "~1.3.8", - "batch": "0.6.1", - "debug": "2.6.9", - "escape-html": "~1.0.3", - "http-errors": "~1.8.0", - "mime-types": "~2.1.35", - "parseurl": "~1.3.3" + "lru-cache": "^11.0.0", + "minipass": "^7.1.2" }, "engines": { - "node": ">= 0.8.0" + "node": "18 || 20 || >=22" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" - } - }, - "node_modules/serve-index/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "2.0.0" + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/serve-index/node_modules/depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "11.5.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.5.3.tgz", + "integrity": "sha512-U4N8FgzmWxc8k1VH8Kr6lQg18U7Fjvby6wXHVRX/ZZ7IwWbRMgrRbP0Wrb5q5NVinryp4SQampHKdvtecItxUg==", "dev": true, - "license": "MIT", + "license": "BlueOak-1.0.0", "engines": { - "node": ">= 0.6" + "node": "20 || >=22" } }, - "node_modules/serve-index/node_modules/http-errors": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", - "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", + "node_modules/path-to-regexp": { + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-8.4.2.tgz", + "integrity": "sha512-qRcuIdP69NPm4qbACK+aDogI5CBDMi1jKe0ry5rSQJz8JVLsC7jV8XpiJjGRLLol3N+R5ihGYcrPLTno6pAdBA==", "dev": true, "license": "MIT", - "dependencies": { - "depd": "~1.1.2", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.1" - }, - "engines": { - "node": ">= 0.6" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" } }, - "node_modules/serve-index/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "node_modules/pathe": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", + "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", "dev": true, "license": "MIT" }, - "node_modules/serve-static": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-2.2.1.tgz", - "integrity": "sha512-xRXBn0pPqQTVQiC8wyQrKs2MOlX24zQ0POGaj0kultvoOCstBQM5yvOhAVSUwOMjQtTvsPWoNCHfPGwaaQJhTw==", + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", "dev": true, - "license": "MIT", - "dependencies": { - "encodeurl": "^2.0.0", - "escape-html": "^1.0.3", - "parseurl": "^1.3.3", - "send": "^1.2.0" - }, - "engines": { - "node": ">= 18" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" - } + "license": "ISC" }, - "node_modules/serve-static/node_modules/encodeurl": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", - "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "node_modules/picomatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", + "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", "dev": true, "license": "MIT", "engines": { - "node": ">= 0.8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/set-function-length": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", - "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "node_modules/pidtree": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.3.1.tgz", + "integrity": "sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==", "dev": true, - "dependencies": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.2" + "bin": { + "pidtree": "bin/pidtree.js" }, "engines": { - "node": ">= 0.4" + "node": ">=0.10" } }, - "node_modules/set-function-name": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", - "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", + "node_modules/pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==", "dev": true, - "dependencies": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "functions-have-names": "^1.2.3", - "has-property-descriptors": "^1.0.2" - }, "engines": { - "node": ">= 0.4" + "node": ">=0.10.0" } }, - "node_modules/setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", - "dev": true - }, - "node_modules/shallow-clone": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", - "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "node_modules/pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", "dev": true, - "license": "MIT", "dependencies": { - "kind-of": "^6.0.2" + "pinkie": "^2.0.0" }, "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "node_modules/piscina": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/piscina/-/piscina-5.2.0.tgz", + "integrity": "sha512-DszUCKeVN/5G5QKo6jAVHL8fmKnkJvQ0ACiVgY7YGCq3TUB2oznAOayvZPIAdEThvhczkXR+qm3IHsNXpFCYfA==", "dev": true, "license": "MIT", - "dependencies": { - "shebang-regex": "^3.0.0" - }, "engines": { - "node": ">=8" + "node": ">=20.x" + }, + "optionalDependencies": { + "@napi-rs/nice": "^1.0.4" } }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "node_modules/pkce-challenge": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/pkce-challenge/-/pkce-challenge-5.0.1.tgz", + "integrity": "sha512-wQ0b/W4Fr01qtpHlqSqspcj3EhBvimsdh0KlHhH8HRZnMsEa0ea2fTULOXOS9ccQr3om+GcGRk4e+isrZWV8qQ==", "dev": true, "license": "MIT", "engines": { - "node": ">=8" + "node": ">=16.20.0" } }, - "node_modules/shell-quote": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.12.0.tgz", - "integrity": "sha512-PcByqNyT/38F2kDNi006HAMRJaULuBzq/FOsw3qdZvX/GA9W/jamDaRskgHjubHiftXK5sIFxLNkvrXUwcof6Q==", + "node_modules/pkg-dir": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-8.0.0.tgz", + "integrity": "sha512-4peoBq4Wks0riS0z8741NVv+/8IiTvqnZAr8QGgtdifrtpdXbNw/FxRS1l6NFqm4EMzuS0EDqNNx4XGaz8cuyQ==", "dev": true, "license": "MIT", + "dependencies": { + "find-up-simple": "^1.0.0" + }, "engines": { - "node": ">= 0.4" + "node": ">=18" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/side-channel": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.1.tgz", - "integrity": "sha512-6x6dK6zJdpTzF4sQeNYxwtvBzf6Eg4GtlesS94HOvTudUeyK2WXAaIfmDgsyslYrRBeFIlsi54AYsFGUuhmvrQ==", + "node_modules/possible-typed-array-names": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", + "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "object-inspect": "^1.13.4", - "side-channel-list": "^1.0.1", - "side-channel-map": "^1.0.1", - "side-channel-weakmap": "^1.0.2" - }, "engines": { "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/side-channel-list": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.1.tgz", - "integrity": "sha512-mjn/0bi/oUURjc5Xl7IaWi/OJJJumuoJFQJfDDyO46+hBWsfaVM65TBHq2eoZBhzl9EchxOijpkbRC8SVBQU0w==", + "node_modules/postcss": { + "version": "8.5.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.23.tgz", + "integrity": "sha512-g50586zr4bZmwFiTlflMu8E0bDTb5I5gertgwAKmsdUlTQIhZtunzUlD1WSzwcVWPoAVpsrA6vlfCD7oXvRwgg==", "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], "license": "MIT", "dependencies": { - "es-errors": "^1.3.0", - "object-inspect": "^1.13.4" + "nanoid": "^3.3.16", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": "^10 || ^12 || >=14" } }, - "node_modules/side-channel-map": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", - "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "node_modules/postcss-media-query-parser": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz", + "integrity": "sha512-3sOlxmbKcSHMjlUXQZKQ06jOswE7oVkXPxmZdoB1r5l0q6gTFTQSHxNxOrCccElbW7dxNytifNEo8qidX2Vsig==", + "dev": true, + "license": "MIT" + }, + "node_modules/postcss-safe-parser": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-7.1.0.tgz", + "integrity": "sha512-1WzZxRLaAFwEh6Do+zyGpjWV3nGJNxxhuh7Ubu/q1ICImMgZJnLwhoaEpRbG4pJppp2Y1ncL9ffA2f+LhrefQg==", "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss-safe-parser" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.5", - "object-inspect": "^1.13.3" - }, "engines": { - "node": ">= 0.4" + "node": ">=18.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependencies": { + "postcss": "^8.4.31" } }, - "node_modules/side-channel-weakmap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", - "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "node_modules/probe-image-size": { + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/probe-image-size/-/probe-image-size-7.4.0.tgz", + "integrity": "sha512-cdEprVtZxV+awMde9X+4jILBFYh4CARxVrQaMl4wY4YcPWbul9jntXrIW95NInBDyJwcVUP3U0T6yukN8rMBaQ==", "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/puzrin" + }, + { + "type": "github", + "url": "https://github.com/sponsors/nodeca" + } + ], "license": "MIT", + "optional": true, "dependencies": { - "call-bound": "^1.0.2", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.5", - "object-inspect": "^1.13.3", - "side-channel-map": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "lodash.merge": "^4.6.2", + "needle": "^2.5.2", + "stream-parser": "~0.3.1" } }, - "node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "node_modules/probe-image-size/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, - "peer": true + "license": "MIT", + "optional": true, + "dependencies": { + "ms": "^2.1.1" + } }, - "node_modules/sigstore": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/sigstore/-/sigstore-4.1.1.tgz", - "integrity": "sha512-endqECJkfhozrXMK5ngu/UAA0xVcVEFdnHJCElGaExypjW+HK5i6zu3NteLoaX/iFbRUbC3+DjttQs0GARr+5w==", + "node_modules/probe-image-size/node_modules/needle": { + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/needle/-/needle-2.9.1.tgz", + "integrity": "sha512-6R9fqJ5Zcmf+uYaFgdIHmLwNldn5HbK8L5ybn7Uz+ylX/rnOsSp1AHcvQSrCaFN+qNM1wpymHqD7mVasEOlHGQ==", "dev": true, - "license": "Apache-2.0", + "license": "MIT", + "optional": true, "dependencies": { - "@sigstore/bundle": "^4.0.0", - "@sigstore/core": "^3.2.1", - "@sigstore/protobuf-specs": "^0.5.0", - "@sigstore/sign": "^4.1.1", - "@sigstore/tuf": "^4.0.2", - "@sigstore/verify": "^3.1.1" + "debug": "^3.2.6", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" + }, + "bin": { + "needle": "bin/needle" }, + "engines": { + "node": ">= 4.4.x" + } + }, + "node_modules/proc-log": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-6.1.0.tgz", + "integrity": "sha512-iG+GYldRf2BQ0UDUAd6JQ/RwzaQy6mXmsk/IzlYyal4A4SNFw54MeH4/tLkF4I5WoWG9SQwuqWzS99jaFQHBuQ==", + "dev": true, + "license": "ISC", "engines": { "node": "^20.17.0 || >=22.9.0" } }, - "node_modules/slice-ansi": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-8.0.0.tgz", - "integrity": "sha512-stxByr12oeeOyY2BlviTNQlYV5xOj47GirPr4yA1hE9JCtxfQN0+tVbkxwCtYDQWhEKWFHsEK48ORg5jrouCAg==", + "node_modules/proxy-addr": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.8.tgz", + "integrity": "sha512-5nnx0yGyVUcY6t9RnWcARWtwT9F1D8O9rt08htPvnd49W1IgZtmLkhu9WfMzQj1cFxjHIO6connUNVW5k7AVyQ==", "dev": true, "license": "MIT", "dependencies": { - "ansi-styles": "^6.2.3", - "is-fullwidth-code-point": "^5.1.0" + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" }, "engines": { - "node": ">=20" + "node": ">= 0.10" }, "funding": { - "url": "https://github.com/chalk/slice-ansi?sponsor=1" + "type": "opencollective", + "url": "https://opencollective.com/express" } }, - "node_modules/slice-ansi/node_modules/ansi-styles": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", - "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", + "node_modules/prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", "dev": true, "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "optional": true + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "engines": { + "node": ">=6" } }, - "node_modules/slice-ansi/node_modules/is-fullwidth-code-point": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-5.1.0.tgz", - "integrity": "sha512-5XHYaSyiqADb4RnZ1Bdad6cPp8Toise4TzEjcOYDHZkTCbKgiUl7WTUCpNWHuxmDt91wnsZBc9xinNzopv3JMQ==", + "node_modules/qs": { + "version": "6.16.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.16.0.tgz", + "integrity": "sha512-h6fhOIaRrID2CbEY2fqs+7t+UXZo+MLAnU5gRIq85uFtdiUPCdsApMlHhXogKVM4HM2DVbIjGNTTYH2OcmP1vA==", "dev": true, - "license": "MIT", + "license": "BSD-3-Clause", "dependencies": { - "get-east-asian-width": "^1.3.1" + "es-define-property": "^1.0.1", + "side-channel": "^1.1.1" }, "engines": { - "node": ">=18" + "node": ">=0.6" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/smart-buffer": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", - "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", "dev": true, - "license": "MIT", "engines": { - "node": ">= 6.0.0", - "npm": ">= 3.0.0" + "node": ">= 0.6" } }, - "node_modules/socket.io": { - "version": "4.7.5", - "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.7.5.tgz", - "integrity": "sha512-DmeAkF6cwM9jSfmp6Dr/5/mfMwb5Z5qRrSXLpo3Fq5SqyU8CMF15jIN4ZhfSwu35ksM1qmHZDQ/DK5XTccSTvA==", + "node_modules/read-pkg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", + "integrity": "sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==", "dev": true, "dependencies": { - "accepts": "~1.3.4", - "base64id": "~2.0.0", - "cors": "~2.8.5", - "debug": "~4.3.2", - "engine.io": "~6.5.2", - "socket.io-adapter": "~2.5.2", - "socket.io-parser": "~4.2.4" + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" }, "engines": { - "node": ">=10.2.0" + "node": ">=4" } }, - "node_modules/socket.io-adapter": { - "version": "2.5.4", - "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.5.4.tgz", - "integrity": "sha512-wDNHGXGewWAjQPt3pyeYBtpWSq9cLE5UW1ZUPL/2eGK9jtse/FpXib7epSTsz0Q0m+6sg6Y4KtcFTlah1bdOVg==", + "node_modules/read-pkg/node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, + "node_modules/read-pkg/node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", "dev": true, "dependencies": { - "debug": "~4.3.4", - "ws": "~8.11.0" + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" } }, - "node_modules/socket.io-parser": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.4.tgz", - "integrity": "sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==", + "node_modules/read-pkg/node_modules/path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", "dev": true, "dependencies": { - "@socket.io/component-emitter": "~3.1.0", - "debug": "~4.3.1" + "pify": "^3.0.0" }, "engines": { - "node": ">=10.0.0" + "node": ">=4" } }, - "node_modules/sockjs": { - "version": "0.3.24", - "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", - "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", + "node_modules/read-pkg/node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", "dev": true, - "license": "MIT", - "dependencies": { - "faye-websocket": "^0.11.3", - "uuid": "^8.3.2", - "websocket-driver": "^0.7.4" + "engines": { + "node": ">=4" } }, - "node_modules/socks": { - "version": "2.8.10", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.10.tgz", - "integrity": "sha512-e0VyvkVTwVYViNovRkZ9aodhxVlyoMn7eJhVUPxZ+eK9P/7CBkxvvsBOHqFPEH416726W8tLXXXjKwqgTErrCQ==", + "node_modules/read-pkg/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "dev": true, - "license": "MIT", - "dependencies": { - "ip-address": "^10.1.1", - "smart-buffer": "^4.2.0" - }, - "engines": { - "node": ">= 10.0.0", - "npm": ">= 3.0.0" + "bin": { + "semver": "bin/semver" } }, - "node_modules/socks-proxy-agent": { - "version": "8.0.5", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.5.tgz", - "integrity": "sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw==", + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "dev": true, - "license": "MIT", + "peer": true, "dependencies": { - "agent-base": "^7.1.2", - "debug": "^4.3.4", - "socks": "^2.8.3" + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" }, "engines": { - "node": ">= 14" + "node": ">= 6" } }, - "node_modules/source-map": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", - "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "node_modules/reflect-metadata": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.2.2.tgz", + "integrity": "sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==", "dev": true, - "peer": true, + "license": "Apache-2.0" + }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz", + "integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.6", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "set-function-name": "^2.0.1" + }, "engines": { - "node": ">= 8" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/source-map-js": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", - "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", "dev": true, - "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } }, - "node_modules/source-map-loader": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-5.0.0.tgz", - "integrity": "sha512-k2Dur7CbSLcAH73sBcIkV5xjPV4SzqO1NJ7+XaQl8if3VODDUj3FNchNGpqgJSKbvUfJuhVdv8K2Eu8/TNl2eA==", + "node_modules/resolve": { + "version": "1.22.12", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.12.tgz", + "integrity": "sha512-TyeJ1zif53BPfHootBGwPRYT1RUt6oGWsaQr8UyZW/eAm9bKoijtvruSDEmZHm92CwS9nj7/fWttqPCgzep8CA==", "dev": true, + "license": "MIT", "dependencies": { - "iconv-lite": "^0.6.3", - "source-map-js": "^1.0.2" + "es-errors": "^1.3.0", + "is-core-module": "^2.16.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" }, "engines": { - "node": ">= 18.12.0" + "node": ">= 0.4" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, + "peer": true, + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" }, - "peerDependencies": { - "webpack": "^5.72.1" + "engines": { + "node": ">=8" } }, - "node_modules/source-map-loader/node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "node_modules/rfdc": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.4.1.tgz", + "integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==", + "dev": true, + "license": "MIT" + }, + "node_modules/rolldown": { + "version": "1.0.0-rc.4", + "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.0.0-rc.4.tgz", + "integrity": "sha512-V2tPDUrY3WSevrvU2E41ijZlpF+5PbZu4giH+VpNraaadsJGHa4fR6IFwsocVwEXDoAdIv5qgPPxgrvKAOIPtA==", "dev": true, + "license": "MIT", "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" + "@oxc-project/types": "=0.113.0", + "@rolldown/pluginutils": "1.0.0-rc.4" + }, + "bin": { + "rolldown": "bin/cli.mjs" }, "engines": { - "node": ">=0.10.0" + "node": "^20.19.0 || >=22.12.0" + }, + "optionalDependencies": { + "@rolldown/binding-android-arm64": "1.0.0-rc.4", + "@rolldown/binding-darwin-arm64": "1.0.0-rc.4", + "@rolldown/binding-darwin-x64": "1.0.0-rc.4", + "@rolldown/binding-freebsd-x64": "1.0.0-rc.4", + "@rolldown/binding-linux-arm-gnueabihf": "1.0.0-rc.4", + "@rolldown/binding-linux-arm64-gnu": "1.0.0-rc.4", + "@rolldown/binding-linux-arm64-musl": "1.0.0-rc.4", + "@rolldown/binding-linux-x64-gnu": "1.0.0-rc.4", + "@rolldown/binding-linux-x64-musl": "1.0.0-rc.4", + "@rolldown/binding-openharmony-arm64": "1.0.0-rc.4", + "@rolldown/binding-wasm32-wasi": "1.0.0-rc.4", + "@rolldown/binding-win32-arm64-msvc": "1.0.0-rc.4", + "@rolldown/binding-win32-x64-msvc": "1.0.0-rc.4" } }, - "node_modules/source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "node_modules/rollup": { + "version": "4.64.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.64.0.tgz", + "integrity": "sha512-gjA/kFeDfffII8COoPsvLPvE16hWDTEc1+0QKQNKUkuV8iJjqsC4xXs8/FzuL0v9EV39kuxTbAgcFoTRyy2TGQ==", "dev": true, + "license": "MIT", "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" + "@types/estree": "1.0.9" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@napi-rs/lzma-linux-x64-gnu": "1.5.1", + "@rollup/rollup-android-arm-eabi": "4.64.0", + "@rollup/rollup-android-arm64": "4.64.0", + "@rollup/rollup-darwin-arm64": "4.64.0", + "@rollup/rollup-darwin-x64": "4.64.0", + "@rollup/rollup-freebsd-arm64": "4.64.0", + "@rollup/rollup-freebsd-x64": "4.64.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.64.0", + "@rollup/rollup-linux-arm-musleabihf": "4.64.0", + "@rollup/rollup-linux-arm64-gnu": "4.64.0", + "@rollup/rollup-linux-arm64-musl": "4.64.0", + "@rollup/rollup-linux-loong64-gnu": "4.64.0", + "@rollup/rollup-linux-loong64-musl": "4.64.0", + "@rollup/rollup-linux-ppc64-gnu": "4.64.0", + "@rollup/rollup-linux-ppc64-musl": "4.64.0", + "@rollup/rollup-linux-riscv64-gnu": "4.64.0", + "@rollup/rollup-linux-riscv64-musl": "4.64.0", + "@rollup/rollup-linux-s390x-gnu": "4.64.0", + "@rollup/rollup-linux-x64-gnu": "4.64.0", + "@rollup/rollup-linux-x64-musl": "4.64.0", + "@rollup/rollup-openbsd-x64": "4.64.0", + "@rollup/rollup-openharmony-arm64": "4.64.0", + "@rollup/rollup-win32-arm64-msvc": "4.64.0", + "@rollup/rollup-win32-ia32-msvc": "4.64.0", + "@rollup/rollup-win32-x64-gnu": "4.64.0", + "@rollup/rollup-win32-x64-msvc": "4.64.0", + "fsevents": "~2.3.2" } }, - "node_modules/source-map-support/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "node_modules/rollup-plugin-dts": { + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/rollup-plugin-dts/-/rollup-plugin-dts-6.4.1.tgz", + "integrity": "sha512-l//F3Zf7ID5GoOfLfD8kroBjQKEKpy1qfhtAdnpibFZMffPaylrg1CoDC2vGkPeTeyxUe4bVFCln2EFuL7IGGg==", "dev": true, + "license": "LGPL-3.0-only", + "dependencies": { + "@jridgewell/remapping": "^2.3.5", + "@jridgewell/sourcemap-codec": "^1.5.5", + "convert-source-map": "^2.0.0", + "magic-string": "^0.30.21" + }, "engines": { - "node": ">=0.10.0" + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/Swatinem" + }, + "optionalDependencies": { + "@babel/code-frame": "^7.29.0" + }, + "peerDependencies": { + "rollup": "^3.29.4 || ^4", + "typescript": "^4.5 || ^5.0 || ^6.0" } }, - "node_modules/spdx-correct": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", - "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", + "node_modules/rollup-plugin-dts/node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", "dev": true, - "dependencies": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-exceptions": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", - "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", - "dev": true + "license": "MIT" }, - "node_modules/spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "node_modules/router": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/router/-/router-2.2.0.tgz", + "integrity": "sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ==", "dev": true, + "license": "MIT", "dependencies": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" + "debug": "^4.4.0", + "depd": "^2.0.0", + "is-promise": "^4.0.0", + "parseurl": "^1.3.3", + "path-to-regexp": "^8.0.0" + }, + "engines": { + "node": ">= 18" } }, - "node_modules/spdx-license-ids": { - "version": "3.0.17", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.17.tgz", - "integrity": "sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==", - "dev": true - }, - "node_modules/spdy": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", - "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", + "node_modules/router/node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", "dev": true, "license": "MIT", "dependencies": { - "debug": "^4.1.0", - "handle-thing": "^2.0.0", - "http-deceiver": "^1.2.7", - "select-hose": "^2.0.0", - "spdy-transport": "^3.0.0" + "ms": "^2.1.3" }, "engines": { - "node": ">=6.0.0" + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, - "node_modules/spdy-transport": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", - "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", + "node_modules/router/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "dev": true, - "license": "MIT", + "license": "MIT" + }, + "node_modules/rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", "dependencies": { - "debug": "^4.1.0", - "detect-node": "^2.0.4", - "hpack.js": "^2.1.6", - "obuf": "^1.1.2", - "readable-stream": "^3.0.6", - "wbuf": "^1.7.3" + "tslib": "^2.1.0" } }, - "node_modules/ssri": { - "version": "13.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-13.0.1.tgz", - "integrity": "sha512-QUiRf1+u9wPTL/76GTYlKttDEBWV1ga9ZXW8BG6kfdeyyM8LGPix9gROyg9V2+P0xNyF3X2Go526xKFdMZrHSQ==", + "node_modules/safe-array-concat": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz", + "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==", "dev": true, - "license": "ISC", "dependencies": { - "minipass": "^7.0.3" + "call-bind": "^1.0.7", + "get-intrinsic": "^1.2.4", + "has-symbols": "^1.0.3", + "isarray": "^2.0.5" }, "engines": { - "node": "^20.17.0 || >=22.9.0" + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "node_modules/safe-array-concat/node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", "dev": true, - "engines": { - "node": ">= 0.6" - } + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "peer": true }, - "node_modules/stdin-discarder": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/stdin-discarder/-/stdin-discarder-0.3.2.tgz", - "integrity": "sha512-eCPu1qRxPVkl5605OTWF8Wz40b4Mf45NY5LQmVPQ599knfs5QhASUm9GbJ5BDMDOXgrnh0wyEdvzmL//YMlw0A==", + "node_modules/safe-regex-test": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", + "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", "dev": true, - "license": "MIT", + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-regex": "^1.1.4" + }, "engines": { - "node": ">=18" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/stream-parser": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/stream-parser/-/stream-parser-0.3.1.tgz", - "integrity": "sha512-bJ/HgKq41nlKvlhccD5kaCr/P+Hu0wPNKPJOH7en+YrJu/9EgqUF+88w5Jb6KNcjOFMhfX4B2asfeAtIGuHObQ==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "debug": "2" - } + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true }, - "node_modules/stream-parser/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "node_modules/sass": { + "version": "1.97.3", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.97.3.tgz", + "integrity": "sha512-fDz1zJpd5GycprAbu4Q2PV/RprsRtKC/0z82z0JLgdytmcq0+ujJbJ/09bPGDxCLkKY3Np5cRAOcWiVkLXJURg==", "dev": true, "license": "MIT", - "optional": true, "dependencies": { - "ms": "2.0.0" + "chokidar": "^4.0.0", + "immutable": "^5.0.2", + "source-map-js": ">=0.6.2 <2.0.0" + }, + "bin": { + "sass": "sass.js" + }, + "engines": { + "node": ">=14.0.0" + }, + "optionalDependencies": { + "@parcel/watcher": "^2.4.1" } }, - "node_modules/stream-parser/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "node_modules/sass/node_modules/chokidar": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", + "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", "dev": true, "license": "MIT", - "optional": true - }, - "node_modules/streamroller": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-3.1.5.tgz", - "integrity": "sha512-KFxaM7XT+irxvdqSP1LGLgNWbYN7ay5owZ3r/8t77p+EtSUAfUgtl7be3xtqtOmGUl9K9YPO2ca8133RlTjvKw==", - "dev": true, "dependencies": { - "date-format": "^4.0.14", - "debug": "^4.3.4", - "fs-extra": "^8.1.0" + "readdirp": "^4.0.1" }, "engines": { - "node": ">=8.0" - } - }, - "node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.2.0" + "node": ">= 14.16.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" } }, - "node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "node_modules/sass/node_modules/readdirp": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", + "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, + "license": "MIT", "engines": { - "node": ">=8" + "node": ">= 14.18.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" } }, - "node_modules/string.prototype.padend": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.6.tgz", - "integrity": "sha512-XZpspuSB7vJWhvJc9DLSlrXl1mcA2BdoY5jjnS135ydXqLoqhs96JjDtCkjJEQHvfqZIp9hBuBMgI589peyx9Q==", + "node_modules/sax": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.6.1.tgz", + "integrity": "sha512-42tBVwLWnaQvW5zc4HbZrTuWccECCZfBi92FDuwtqxasH+JbPB3/FOKb1m222K42R4WxuxzzMsTswfzgtSu64Q==", "dev": true, - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-object-atoms": "^1.0.0" - }, + "license": "BlueOak-1.0.0", + "optional": true, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=11.0.0" } }, - "node_modules/string.prototype.trim": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", - "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==", + "node_modules/saxes": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz", + "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==", "dev": true, + "license": "ISC", "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.0", - "es-object-atoms": "^1.0.0" + "xmlchars": "^2.2.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=v12.22.7" } }, - "node_modules/string.prototype.trimend": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz", - "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==", + "node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" + "license": "ISC", + "bin": { + "semver": "bin/semver.js" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=10" } }, - "node_modules/string.prototype.trimstart": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", - "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", + "node_modules/send": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/send/-/send-1.2.1.tgz", + "integrity": "sha512-1gnZf7DFcoIcajTjTwjwuDjzuz4PPcY2StKPlsGAQ1+YH20IRVrBaXSWmdjowTJ6u8Rc01PoYOGHXfP1mYcZNQ==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" + "debug": "^4.4.3", + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "etag": "^1.8.1", + "fresh": "^2.0.0", + "http-errors": "^2.0.1", + "mime-types": "^3.0.2", + "ms": "^2.1.3", + "on-finished": "^2.4.1", + "range-parser": "^1.2.1", + "statuses": "^2.0.2" }, "engines": { - "node": ">= 0.4" + "node": ">= 18" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "type": "opencollective", + "url": "https://opencollective.com/express" } }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "node_modules/send/node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", "dev": true, + "license": "MIT", "dependencies": { - "ansi-regex": "^5.0.1" + "ms": "^2.1.3" }, "engines": { - "node": ">=8" + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, - "node_modules/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "node_modules/send/node_modules/encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", "dev": true, + "license": "MIT", "engines": { - "node": ">=4" + "node": ">= 0.8" } }, - "node_modules/strip-outer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/strip-outer/-/strip-outer-1.0.1.tgz", - "integrity": "sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg==", + "node_modules/send/node_modules/mime-db": { + "version": "1.54.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", + "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", "dev": true, - "dependencies": { - "escape-string-regexp": "^1.0.2" - }, + "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">= 0.6" } }, - "node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "node_modules/send/node_modules/mime-types": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.2.tgz", + "integrity": "sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==", "dev": true, + "license": "MIT", "dependencies": { - "has-flag": "^3.0.0" + "mime-db": "^1.54.0" }, "engines": { - "node": ">=4" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true, - "engines": { - "node": ">= 0.4" + "node": ">=18" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "type": "opencollective", + "url": "https://opencollective.com/express" } }, - "node_modules/tapable": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.3.tgz", - "integrity": "sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A==", + "node_modules/send/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/send/node_modules/statuses": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz", + "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==", "dev": true, "license": "MIT", "engines": { - "node": ">=6" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" + "node": ">= 0.8" } }, - "node_modules/tar": { - "version": "7.5.22", - "resolved": "https://registry.npmjs.org/tar/-/tar-7.5.22.tgz", - "integrity": "sha512-MFO/QzvtAOmJbkhOaCTvbGcFN9L9b+JunIsDwaKljSOdcLMea3NJ1k9Usz/rjdfSXTq4dfzfeS7W4p4YOAAHeA==", + "node_modules/serve-static": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-2.2.1.tgz", + "integrity": "sha512-xRXBn0pPqQTVQiC8wyQrKs2MOlX24zQ0POGaj0kultvoOCstBQM5yvOhAVSUwOMjQtTvsPWoNCHfPGwaaQJhTw==", "dev": true, - "license": "BlueOak-1.0.0", + "license": "MIT", "dependencies": { - "@isaacs/fs-minipass": "^4.0.0", - "chownr": "^3.0.0", - "minipass": "^7.1.2", - "minizlib": "^3.1.0", - "yallist": "^5.0.0" + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "parseurl": "^1.3.3", + "send": "^1.2.0" }, "engines": { - "node": ">=18" + "node": ">= 18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" } }, - "node_modules/tar/node_modules/yallist": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-5.0.0.tgz", - "integrity": "sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==", + "node_modules/serve-static/node_modules/encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", "dev": true, - "license": "BlueOak-1.0.0", + "license": "MIT", "engines": { - "node": ">=18" + "node": ">= 0.8" } }, - "node_modules/terser": { - "version": "5.46.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.46.0.tgz", - "integrity": "sha512-jTwoImyr/QbOWFFso3YoU3ik0jBBDJ6JTOQiy/J2YxVJdZCc+5u7skhNwiOR3FQIygFqVUPHl7qbbxtjW2K3Qg==", + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { - "@jridgewell/source-map": "^0.3.3", - "acorn": "^8.15.0", - "commander": "^2.20.0", - "source-map-support": "~0.5.20" - }, - "bin": { - "terser": "bin/terser" + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" }, "engines": { - "node": ">=10" + "node": ">= 0.4" } }, - "node_modules/terser-webpack-plugin": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.6.1.tgz", - "integrity": "sha512-201R5j+sJpK8nFWwKVyNfZot8FaJbLZDq5evriVzbV1wDtSXDjRUDRfJzHpAaxFDMEhsZL1QkeqM61wgsS3KaQ==", + "node_modules/set-function-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", "dev": true, - "license": "MIT", "dependencies": { - "@jridgewell/trace-mapping": "^0.3.25", - "jest-worker": "^27.4.5", - "schema-utils": "^4.3.0", - "terser": "^5.31.1" + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.2" }, "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.1.0" - }, - "peerDependenciesMeta": { - "@minify-html/node": { - "optional": true - }, - "@swc/core": { - "optional": true - }, - "@swc/css": { - "optional": true - }, - "@swc/html": { - "optional": true - }, - "clean-css": { - "optional": true - }, - "cssnano": { - "optional": true - }, - "csso": { - "optional": true - }, - "esbuild": { - "optional": true - }, - "html-minifier-terser": { - "optional": true - }, - "lightningcss": { - "optional": true - }, - "postcss": { - "optional": true - }, - "uglify-js": { - "optional": true - } + "node": ">= 0.4" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "dev": true + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/thingies": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/thingies/-/thingies-2.6.1.tgz", - "integrity": "sha512-cV/CMGTK3M4MlnJ/0At6ismOw/A0EEniDNScajjz/Br3c1sqE72YD01rGpPTKwd27wAxI5Pr+6+0w8yofzFRYw==", + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true, "license": "MIT", "engines": { - "node": ">=10.18" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/streamich" - }, - "peerDependencies": { - "tslib": "^2" + "node": ">=8" } }, - "node_modules/thunky": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", - "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", + "node_modules/shell-quote": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.12.0.tgz", + "integrity": "sha512-PcByqNyT/38F2kDNi006HAMRJaULuBzq/FOsw3qdZvX/GA9W/jamDaRskgHjubHiftXK5sIFxLNkvrXUwcof6Q==", "dev": true, - "license": "MIT" + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "node_modules/tinyglobby": { - "version": "0.2.15", - "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", - "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", + "node_modules/side-channel": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.1.tgz", + "integrity": "sha512-6x6dK6zJdpTzF4sQeNYxwtvBzf6Eg4GtlesS94HOvTudUeyK2WXAaIfmDgsyslYrRBeFIlsi54AYsFGUuhmvrQ==", "dev": true, "license": "MIT", "dependencies": { - "fdir": "^6.5.0", - "picomatch": "^4.0.3" + "es-errors": "^1.3.0", + "object-inspect": "^1.13.4", + "side-channel-list": "^1.0.1", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" }, "engines": { - "node": ">=12.0.0" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/SuperchupuDev" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "node_modules/side-channel-list": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.1.tgz", + "integrity": "sha512-mjn/0bi/oUURjc5Xl7IaWi/OJJJumuoJFQJfDDyO46+hBWsfaVM65TBHq2eoZBhzl9EchxOijpkbRC8SVBQU0w==", "dev": true, "license": "MIT", "dependencies": { - "is-number": "^7.0.0" + "es-errors": "^1.3.0", + "object-inspect": "^1.13.4" }, "engines": { - "node": ">=8.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/toidentifier": { + "node_modules/side-channel-map": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, "engines": { - "node": ">=0.6" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/tree-dump": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/tree-dump/-/tree-dump-1.1.0.tgz", - "integrity": "sha512-rMuvhU4MCDbcbnleZTFezWsaZXRFemSqAM+7jPnzUl1fo9w3YEKOxAeui0fz3OI4EU4hf23iyA7uQRVko+UaBA==", + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", "dev": true, - "license": "Apache-2.0", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" + }, "engines": { - "node": ">=10.0" + "node": ">= 0.4" }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/streamich" - }, - "peerDependencies": { - "tslib": "2" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/tree-kill": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", - "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", + "node_modules/siginfo": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz", + "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==", "dev": true, - "bin": { - "tree-kill": "cli.js" - } + "license": "ISC" }, - "node_modules/trim-repeated": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/trim-repeated/-/trim-repeated-1.0.0.tgz", - "integrity": "sha512-pkonvlKk8/ZuR0D5tLW8ljt5I8kmxp2XKymhepUeOdCEfKpZaktSArkLHZt76OB1ZvO9bssUsDty4SWhLvZpLg==", + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true, + "peer": true + }, + "node_modules/sigstore": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/sigstore/-/sigstore-4.1.1.tgz", + "integrity": "sha512-endqECJkfhozrXMK5ngu/UAA0xVcVEFdnHJCElGaExypjW+HK5i6zu3NteLoaX/iFbRUbC3+DjttQs0GARr+5w==", "dev": true, + "license": "Apache-2.0", "dependencies": { - "escape-string-regexp": "^1.0.2" + "@sigstore/bundle": "^4.0.0", + "@sigstore/core": "^3.2.1", + "@sigstore/protobuf-specs": "^0.5.0", + "@sigstore/sign": "^4.1.1", + "@sigstore/tuf": "^4.0.2", + "@sigstore/verify": "^3.1.1" }, "engines": { - "node": ">=0.10.0" + "node": "^20.17.0 || >=22.9.0" } }, - "node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD" - }, - "node_modules/tsyringe": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/tsyringe/-/tsyringe-4.10.0.tgz", - "integrity": "sha512-axr3IdNuVIxnaK5XGEUFTu3YmAQ6lllgrvqfEoR16g/HGnYY/6We4oWENtAnzK6/LpJ2ur9PAb80RBt7/U4ugw==", + "node_modules/slice-ansi": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-8.0.0.tgz", + "integrity": "sha512-stxByr12oeeOyY2BlviTNQlYV5xOj47GirPr4yA1hE9JCtxfQN0+tVbkxwCtYDQWhEKWFHsEK48ORg5jrouCAg==", "dev": true, "license": "MIT", "dependencies": { - "tslib": "^1.9.3" + "ansi-styles": "^6.2.3", + "is-fullwidth-code-point": "^5.1.0" }, "engines": { - "node": ">= 6.0.0" + "node": ">=20" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" } }, - "node_modules/tsyringe/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true, - "license": "0BSD" - }, - "node_modules/tuf-js": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/tuf-js/-/tuf-js-4.1.0.tgz", - "integrity": "sha512-50QV99kCKH5P/Vs4E2Gzp7BopNV+KzTXqWeaxrfu5IQJBOULRsTIS9seSsOVT8ZnGXzCyx55nYWAi4qJzpZKEQ==", + "node_modules/slice-ansi/node_modules/ansi-styles": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", + "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", "dev": true, "license": "MIT", - "dependencies": { - "@tufjs/models": "4.1.0", - "debug": "^4.4.3", - "make-fetch-happen": "^15.0.1" - }, "engines": { - "node": "^20.17.0 || >=22.9.0" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/tuf-js/node_modules/debug": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", - "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "node_modules/slice-ansi/node_modules/is-fullwidth-code-point": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-5.1.0.tgz", + "integrity": "sha512-5XHYaSyiqADb4RnZ1Bdad6cPp8Toise4TzEjcOYDHZkTCbKgiUl7WTUCpNWHuxmDt91wnsZBc9xinNzopv3JMQ==", "dev": true, "license": "MIT", "dependencies": { - "ms": "^2.1.3" + "get-east-asian-width": "^1.3.1" }, "engines": { - "node": ">=6.0" + "node": ">=18" }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/tuf-js/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "node_modules/smart-buffer": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", "dev": true, - "license": "MIT" + "license": "MIT", + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } }, - "node_modules/type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "node_modules/socks": { + "version": "2.8.10", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.10.tgz", + "integrity": "sha512-e0VyvkVTwVYViNovRkZ9aodhxVlyoMn7eJhVUPxZ+eK9P/7CBkxvvsBOHqFPEH416726W8tLXXXjKwqgTErrCQ==", "dev": true, + "license": "MIT", "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" + "ip-address": "^10.1.1", + "smart-buffer": "^4.2.0" }, "engines": { - "node": ">= 0.6" + "node": ">= 10.0.0", + "npm": ">= 3.0.0" } }, - "node_modules/typed-array-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", - "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==", + "node_modules/socks-proxy-agent": { + "version": "8.0.5", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.5.tgz", + "integrity": "sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", - "es-errors": "^1.3.0", - "is-typed-array": "^1.1.13" + "agent-base": "^7.1.2", + "debug": "^4.3.4", + "socks": "^2.8.3" }, "engines": { - "node": ">= 0.4" + "node": ">= 14" } }, - "node_modules/typed-array-byte-length": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", - "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", + "node_modules/source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", "dev": true, - "dependencies": { - "call-bind": "^1.0.7", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-proto": "^1.0.3", - "is-typed-array": "^1.1.13" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peer": true, + "engines": { + "node": ">= 8" } }, - "node_modules/typed-array-byte-offset": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz", - "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==", + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", "dev": true, - "dependencies": { - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.7", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-proto": "^1.0.3", - "is-typed-array": "^1.1.13" - }, + "license": "BSD-3-Clause", "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=0.10.0" } }, - "node_modules/typed-array-length": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.6.tgz", - "integrity": "sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==", + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", "dev": true, "dependencies": { - "call-bind": "^1.0.7", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-proto": "^1.0.3", - "is-typed-array": "^1.1.13", - "possible-typed-array-names": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" } }, - "node_modules/typed-assert": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/typed-assert/-/typed-assert-1.0.9.tgz", - "integrity": "sha512-KNNZtayBCtmnNmbo5mG47p1XsCyrx6iVqomjcZnec/1Y5GGARaxPs6r49RnSPeUP3YjNYiU9sQHAtY4BBvnZwg==", - "dev": true - }, - "node_modules/typescript": { - "version": "5.9.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", - "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", + "node_modules/source-map-support/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, - "license": "Apache-2.0", - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, "engines": { - "node": ">=14.17" + "node": ">=0.10.0" } }, - "node_modules/ua-parser-js": { - "version": "0.7.37", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.37.tgz", - "integrity": "sha512-xV8kqRKM+jhMvcHWUKthV9fNebIzrNy//2O9ZwWcfiBFR5f25XVZPLlEajk/sf3Ra15V92isyQqnIEXRDaZWEA==", + "node_modules/spdx-correct": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/ua-parser-js" - }, - { - "type": "paypal", - "url": "https://paypal.me/faisalman" - }, - { - "type": "github", - "url": "https://github.com/sponsors/faisalman" - } - ], - "engines": { - "node": "*" + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" } }, - "node_modules/unbox-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", - "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "node_modules/spdx-exceptions": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", + "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", + "dev": true + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "has-bigints": "^1.0.2", - "has-symbols": "^1.0.3", - "which-boxed-primitive": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" } }, - "node_modules/undici": { - "version": "6.29.0", - "resolved": "https://registry.npmjs.org/undici/-/undici-6.29.0.tgz", - "integrity": "sha512-R+RODBqp6i2pPflGdq+xIOUkl+RNfGgHwoinecKu/JCuf2uO06cOKoDbI2P7Dn6KcswdKwrczbU6IYJ6K8X+wg==", + "node_modules/spdx-license-ids": { + "version": "3.0.17", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.17.tgz", + "integrity": "sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==", + "dev": true + }, + "node_modules/ssri": { + "version": "13.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-13.0.1.tgz", + "integrity": "sha512-QUiRf1+u9wPTL/76GTYlKttDEBWV1ga9ZXW8BG6kfdeyyM8LGPix9gROyg9V2+P0xNyF3X2Go526xKFdMZrHSQ==", "dev": true, - "license": "MIT", + "license": "ISC", + "dependencies": { + "minipass": "^7.0.3" + }, "engines": { - "node": ">=18.17" + "node": "^20.17.0 || >=22.9.0" } }, - "node_modules/undici-types": { - "version": "8.9.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-8.9.0.tgz", - "integrity": "sha512-KTDyRTYX8sWmKXAikPHHSyc63CRPETMctyjKFupcC6OBLXT3xsN0e9aF7m+mIXutFWpUXuedtowG7iLOzp0kQg==", + "node_modules/stackback": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", + "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==", "dev": true, "license": "MIT" }, - "node_modules/unicode-canonical-property-names-ecmascript": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz", - "integrity": "sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==", + "node_modules/std-env": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/std-env/-/std-env-4.3.0.tgz", + "integrity": "sha512-OtU/EgQ1kIm5KwqQpBC6ZEMXrZRui11w8zgfTWp8cdO9B8OaPsbA8bTHO2P+HNo1VlUTGMVBwPhydu6poeXiag==", + "dev": true, + "license": "MIT" + }, + "node_modules/stdin-discarder": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/stdin-discarder/-/stdin-discarder-0.3.2.tgz", + "integrity": "sha512-eCPu1qRxPVkl5605OTWF8Wz40b4Mf45NY5LQmVPQ599knfs5QhASUm9GbJ5BDMDOXgrnh0wyEdvzmL//YMlw0A==", "dev": true, "license": "MIT", "engines": { - "node": ">=4" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/unicode-match-property-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", - "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "node_modules/stream-parser": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/stream-parser/-/stream-parser-0.3.1.tgz", + "integrity": "sha512-bJ/HgKq41nlKvlhccD5kaCr/P+Hu0wPNKPJOH7en+YrJu/9EgqUF+88w5Jb6KNcjOFMhfX4B2asfeAtIGuHObQ==", "dev": true, "license": "MIT", + "optional": true, "dependencies": { - "unicode-canonical-property-names-ecmascript": "^2.0.0", - "unicode-property-aliases-ecmascript": "^2.0.0" - }, - "engines": { - "node": ">=4" + "debug": "2" } }, - "node_modules/unicode-match-property-value-ecmascript": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.1.tgz", - "integrity": "sha512-JQ84qTuMg4nVkx8ga4A16a1epI9H6uTXAknqxkGF/aFfRLw1xC/Bp24HNLaZhHSkWd3+84t8iXnp1J0kYcZHhg==", + "node_modules/stream-parser/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "license": "MIT", - "engines": { - "node": ">=4" + "optional": true, + "dependencies": { + "ms": "2.0.0" } }, - "node_modules/unicode-property-aliases-ecmascript": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.2.0.tgz", - "integrity": "sha512-hpbDzxUY9BFwX+UeBnxv3Sh1q7HFxj48DTmXchNgRa46lO8uj3/1iEn3MiNUYTg1g9ctIqXCCERn8gYZhHC5lQ==", + "node_modules/stream-parser/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true, "license": "MIT", - "engines": { - "node": ">=4" - } + "optional": true }, - "node_modules/universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", "dev": true, - "engines": { - "node": ">= 4.0.0" + "peer": true, + "dependencies": { + "safe-buffer": "~5.2.0" } }, - "node_modules/unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, "engines": { - "node": ">= 0.8" + "node": ">=8" } }, - "node_modules/update-browserslist-db": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.3.3.tgz", - "integrity": "sha512-pJ2sYawQS0R/WI928Gj5GlPhTGzbMelq0+4INtSYNDV9ErKJcX6xjGWkoG/VnB3dpUm00zALaqkrUD77pO5TDQ==", + "node_modules/string.prototype.padend": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.6.tgz", + "integrity": "sha512-XZpspuSB7vJWhvJc9DLSlrXl1mcA2BdoY5jjnS135ydXqLoqhs96JjDtCkjJEQHvfqZIp9hBuBMgI589peyx9Q==", "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", "dependencies": { - "escalade": "^3.2.0", - "picocolors": "^1.1.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0" }, - "bin": { - "update-browserslist-db": "cli.js" + "engines": { + "node": ">= 0.4" }, - "peerDependencies": { - "browserslist": ">= 4.21.0" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "node_modules/string.prototype.trim": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", + "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==", "dev": true, - "peer": true, "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "dev": true - }, - "node_modules/utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", - "dev": true, + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.0", + "es-object-atoms": "^1.0.0" + }, "engines": { - "node": ">= 0.4.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "deprecated": "uuid@10 and below is no longer supported. For ESM codebases, update to uuid@latest. For CommonJS codebases, use uuid@11 (but be aware this version will likely be deprecated in 2028).", + "node_modules/string.prototype.trimend": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz", + "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==", "dev": true, - "license": "MIT", - "bin": { - "uuid": "dist/bin/uuid" + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "node_modules/string.prototype.trimstart": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", + "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", "dev": true, "dependencies": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/validate-npm-package-name": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-7.0.2.tgz", - "integrity": "sha512-hVDIBwsRruT73PbK7uP5ebUt+ezEtCmzZz3F59BSr2F6OVFnJ/6h8liuvdLrQ88Xmnk6/+xGGuq+pG9WwTuy3A==", + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, - "license": "ISC", + "dependencies": { + "ansi-regex": "^5.0.1" + }, "engines": { - "node": "^20.17.0 || >=22.9.0" + "node": ">=8" } }, - "node_modules/vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", "dev": true, "engines": { - "node": ">= 0.8" + "node": ">=4" } }, - "node_modules/vectorious": { - "version": "6.1.12", - "resolved": "https://registry.npmjs.org/vectorious/-/vectorious-6.1.12.tgz", - "integrity": "sha512-agC4qbdhdVe3DE5FEUazXjE5JOwm6BHhSePij3IZQdYLttYr6nBl8zUi0ZHyQWhOgNqh0b8Qh8w4UUfVzgnXqw==", - "optionalDependencies": { - "nblas": "^2.1.11", - "nlapack": "^2.0.7" + "node_modules/strip-outer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-outer/-/strip-outer-1.0.1.tgz", + "integrity": "sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^1.0.2" + }, + "engines": { + "node": ">=0.10.0" } }, - "node_modules/vite": { - "version": "7.3.6", - "resolved": "https://registry.npmjs.org/vite/-/vite-7.3.6.tgz", - "integrity": "sha512-4XP60spRGjSZFf1qYH+dJIkK2znL3zQfl9KkOV9MkkRR/3Dls0dxaBsQPTloEc5BLXWPL9vsOxopxyKoMmDueg==", + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, - "license": "MIT", "dependencies": { - "esbuild": "^0.27.0 || ^0.28.0", - "fdir": "^6.5.0", - "picomatch": "^4.0.3", - "postcss": "^8.5.6", - "rollup": "^4.43.0", - "tinyglobby": "^0.2.15" - }, - "bin": { - "vite": "bin/vite.js" + "has-flag": "^3.0.0" }, "engines": { - "node": "^20.19.0 || >=22.12.0" - }, - "funding": { - "url": "https://github.com/vitejs/vite?sponsor=1" - }, - "optionalDependencies": { - "fsevents": "~2.3.3" - }, - "peerDependencies": { - "@types/node": "^20.19.0 || >=22.12.0", - "jiti": ">=1.21.0", - "less": "^4.0.0", - "lightningcss": "^1.21.0", - "sass": "^1.70.0", - "sass-embedded": "^1.70.0", - "stylus": ">=0.54.8", - "sugarss": "^5.0.0", - "terser": "^5.16.0", - "tsx": "^4.8.1", - "yaml": "^2.4.2" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "jiti": { - "optional": true - }, - "less": { - "optional": true - }, - "lightningcss": { - "optional": true - }, - "sass": { - "optional": true - }, - "sass-embedded": { - "optional": true - }, - "stylus": { - "optional": true - }, - "sugarss": { - "optional": true - }, - "terser": { - "optional": true - }, - "tsx": { - "optional": true - }, - "yaml": { - "optional": true - } + "node": ">=4" } }, - "node_modules/void-elements": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz", - "integrity": "sha512-qZKX4RnBzH2ugr8Lxa7x+0V6XD9Sb/ouARtiasEQCHB1EVU4NXtmHsDDrx1dO4ne5fc3J6EW05BP1Dl0z0iung==", + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/watchpack": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.5.1.tgz", - "integrity": "sha512-Zn5uXdcFNIA1+1Ei5McRd+iRzfhENPCe7LeABkJtNulSxjma+l7ltNx55BWZkRlwRnpOgHqxnjyaDgJnNXnqzg==", + "node_modules/tar": { + "version": "7.5.22", + "resolved": "https://registry.npmjs.org/tar/-/tar-7.5.22.tgz", + "integrity": "sha512-MFO/QzvtAOmJbkhOaCTvbGcFN9L9b+JunIsDwaKljSOdcLMea3NJ1k9Usz/rjdfSXTq4dfzfeS7W4p4YOAAHeA==", "dev": true, - "license": "MIT", + "license": "BlueOak-1.0.0", "dependencies": { - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.1.2" + "@isaacs/fs-minipass": "^4.0.0", + "chownr": "^3.0.0", + "minipass": "^7.1.2", + "minizlib": "^3.1.0", + "yallist": "^5.0.0" }, "engines": { - "node": ">=10.13.0" + "node": ">=18" } }, - "node_modules/wbuf": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", - "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", + "node_modules/tar/node_modules/yallist": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-5.0.0.tgz", + "integrity": "sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==", "dev": true, - "license": "MIT", - "dependencies": { - "minimalistic-assert": "^1.0.0" + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=18" } }, - "node_modules/wcwidth": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", - "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", + "node_modules/tinybench": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz", + "integrity": "sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==", "dev": true, - "peer": true, - "dependencies": { - "defaults": "^1.0.3" - } + "license": "MIT" }, - "node_modules/weak-lru-cache": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/weak-lru-cache/-/weak-lru-cache-1.2.2.tgz", - "integrity": "sha512-DEAoo25RfSYMuTGc9vPJzZcZullwIqRDSI9LOy+fkCJPi6hykCnfKaXTuPBDuXAUcqHXyOgFtHNp/kB2FjYHbw==", + "node_modules/tinyexec": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-1.3.1.tgz", + "integrity": "sha512-GCvB3aoys96IuDFBMcTB46JOR6mdMtAToqwiW8JlWhsoh1mhHi/xn9ss/Dg7N555GiJyEt2qzoG/NHCwM6h1EA==", "dev": true, "license": "MIT", - "optional": true + "engines": { + "node": ">=18" + } }, - "node_modules/webpack": { - "version": "5.105.2", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.105.2.tgz", - "integrity": "sha512-dRXm0a2qcHPUBEzVk8uph0xWSjV/xZxenQQbLwnwP7caQCYpqG1qddwlyEkIDkYn0K8tvmcrZ+bOrzoQ3HxCDw==", + "node_modules/tinyglobby": { + "version": "0.2.15", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", + "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", "dev": true, "license": "MIT", "dependencies": { - "@types/eslint-scope": "^3.7.7", - "@types/estree": "^1.0.8", - "@types/json-schema": "^7.0.15", - "@webassemblyjs/ast": "^1.14.1", - "@webassemblyjs/wasm-edit": "^1.14.1", - "@webassemblyjs/wasm-parser": "^1.14.1", - "acorn": "^8.15.0", - "acorn-import-phases": "^1.0.3", - "browserslist": "^4.28.1", - "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.19.0", - "es-module-lexer": "^2.0.0", - "eslint-scope": "5.1.1", - "events": "^3.2.0", - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.2.11", - "json-parse-even-better-errors": "^2.3.1", - "loader-runner": "^4.3.1", - "mime-types": "^2.1.27", - "neo-async": "^2.6.2", - "schema-utils": "^4.3.3", - "tapable": "^2.3.0", - "terser-webpack-plugin": "^5.3.16", - "watchpack": "^2.5.1", - "webpack-sources": "^3.3.3" - }, - "bin": { - "webpack": "bin/webpack.js" + "fdir": "^6.5.0", + "picomatch": "^4.0.3" }, "engines": { - "node": ">=10.13.0" + "node": ">=12.0.0" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependenciesMeta": { - "webpack-cli": { - "optional": true - } + "url": "https://github.com/sponsors/SuperchupuDev" } }, - "node_modules/webpack-dev-middleware": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-7.4.5.tgz", - "integrity": "sha512-uxQ6YqGdE4hgDKNf7hUiPXOdtkXvBJXrfEGYSx7P7LC8hnUYGK70X6xQXUvXeNyBDDcsiQXpG2m3G9vxowaEuA==", + "node_modules/tinyrainbow": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-3.2.0.tgz", + "integrity": "sha512-LgO3D9yZJjApUiuUfl9iFAwrtaX4+lok3wJIqttGoKCHlWUqHqbQpnxCf82L8FjgKsh4iGo78hqJwgL8F6To2A==", "dev": true, "license": "MIT", - "dependencies": { - "colorette": "^2.0.10", - "memfs": "^4.43.1", - "mime-types": "^3.0.1", - "on-finished": "^2.4.1", - "range-parser": "^1.2.1", - "schema-utils": "^4.0.0" - }, "engines": { - "node": ">= 18.12.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.0.0" + "node": ">=14.0.0" + } + }, + "node_modules/tldts": { + "version": "7.4.16", + "resolved": "https://registry.npmjs.org/tldts/-/tldts-7.4.16.tgz", + "integrity": "sha512-QwBER5KMR86IIjpIiO7H/Z3IMJPsZ1A6RKPAqzTTgOyUQUSt9FdnKcqhTaJmkY6HVrgouZHZR0ncK5QxvmnQeg==", + "dev": true, + "license": "MIT", + "dependencies": { + "tldts-core": "^7.4.16" }, - "peerDependenciesMeta": { - "webpack": { - "optional": true - } + "bin": { + "tldts": "bin/cli.js" + } + }, + "node_modules/tldts-core": { + "version": "7.4.16", + "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-7.4.16.tgz", + "integrity": "sha512-MDolfaSJtlSK5Y0A1xl3277ekubZwobpBjugknDizI9O5Rm60a1m8k4ICK+MRsCDzPygT81mp3BBf5RKDlFRfA==", + "dev": true, + "license": "MIT" + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "dev": true, + "engines": { + "node": ">=0.6" } }, - "node_modules/webpack-dev-middleware/node_modules/mime-db": { - "version": "1.54.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", - "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", + "node_modules/tough-cookie": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-6.0.2.tgz", + "integrity": "sha512-exgYmnmL/sJpR3upZfXG5PoatXQii55xAiXGXzY+sROLZ/Y+SLcp9PgJNI9Vz37HpQ74WvDcLT8eqm+kV3FzrA==", "dev": true, - "license": "MIT", + "license": "BSD-3-Clause", + "dependencies": { + "tldts": "^7.0.5" + }, "engines": { - "node": ">= 0.6" + "node": ">=16" } }, - "node_modules/webpack-dev-middleware/node_modules/mime-types": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.2.tgz", - "integrity": "sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==", + "node_modules/tr46": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-6.0.0.tgz", + "integrity": "sha512-bLVMLPtstlZ4iMQHpFHTR7GAGj2jxi8Dg0s2h2MafAE4uSWF98FC/3MomU51iQAMf8/qDUbKWf5GxuvvVcXEhw==", "dev": true, "license": "MIT", "dependencies": { - "mime-db": "^1.54.0" + "punycode": "^2.3.1" }, "engines": { - "node": ">=18" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" + "node": ">=20" } }, - "node_modules/webpack-dev-server": { - "version": "5.2.6", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-5.2.6.tgz", - "integrity": "sha512-HNLRmamRvVavZQ+avceZifmv8hmdUjg43t6MI4SqJDwFdW7RPQwH5vzGhDRZSX59SgfbeHhLnq3g+uooWo7pVw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/bonjour": "^3.5.13", - "@types/connect-history-api-fallback": "^1.5.4", - "@types/express": "^4.17.25", - "@types/express-serve-static-core": "^4.17.21", - "@types/serve-index": "^1.9.4", - "@types/serve-static": "^1.15.5", - "@types/sockjs": "^0.3.36", - "@types/ws": "^8.5.10", - "ansi-html-community": "^0.0.8", - "bonjour-service": "^1.2.1", - "chokidar": "^3.6.0", - "colorette": "^2.0.10", - "compression": "^1.8.1", - "connect-history-api-fallback": "^2.0.0", - "express": "^4.22.1", - "graceful-fs": "^4.2.6", - "http-proxy-middleware": "^2.0.9", - "ipaddr.js": "^2.1.0", - "launch-editor": "^2.14.1", - "open": "^10.0.3", - "p-retry": "^6.2.0", - "schema-utils": "^4.2.0", - "selfsigned": "^5.5.0", - "serve-index": "^1.9.1", - "sockjs": "^0.3.24", - "spdy": "^4.0.2", - "webpack-dev-middleware": "^7.4.2", - "ws": "^8.18.0" - }, - "bin": { - "webpack-dev-server": "bin/webpack-dev-server.js" + "node_modules/trim-repeated": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-repeated/-/trim-repeated-1.0.0.tgz", + "integrity": "sha512-pkonvlKk8/ZuR0D5tLW8ljt5I8kmxp2XKymhepUeOdCEfKpZaktSArkLHZt76OB1ZvO9bssUsDty4SWhLvZpLg==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^1.0.2" }, "engines": { - "node": ">= 18.12.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.0.0" - }, - "peerDependenciesMeta": { - "webpack": { - "optional": true - }, - "webpack-cli": { - "optional": true - } + "node": ">=0.10.0" } }, - "node_modules/webpack-dev-server/node_modules/content-disposition": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" + }, + "node_modules/tuf-js": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/tuf-js/-/tuf-js-4.1.0.tgz", + "integrity": "sha512-50QV99kCKH5P/Vs4E2Gzp7BopNV+KzTXqWeaxrfu5IQJBOULRsTIS9seSsOVT8ZnGXzCyx55nYWAi4qJzpZKEQ==", "dev": true, "license": "MIT", "dependencies": { - "safe-buffer": "5.2.1" + "@tufjs/models": "4.1.0", + "debug": "^4.4.3", + "make-fetch-happen": "^15.0.1" }, "engines": { - "node": ">= 0.6" + "node": "^20.17.0 || >=22.9.0" } }, - "node_modules/webpack-dev-server/node_modules/cookie": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", - "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", + "node_modules/tuf-js/node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", "dev": true, "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, "engines": { - "node": ">= 0.6" + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, - "node_modules/webpack-dev-server/node_modules/cookie-signature": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.7.tgz", - "integrity": "sha512-NXdYc3dLr47pBkpUCHtKSwIOQXLVn8dZEuywboCOJY/osA0wFSLlSawr3KN8qXJEyX66FcONTH8EIlVuK0yyFA==", + "node_modules/tuf-js/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "dev": true, "license": "MIT" }, - "node_modules/webpack-dev-server/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "node_modules/typed-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", + "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==", "dev": true, - "license": "MIT", "dependencies": { - "ms": "2.0.0" + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" } }, - "node_modules/webpack-dev-server/node_modules/encodeurl": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", - "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "node_modules/typed-array-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", + "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", "dev": true, - "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" + }, "engines": { - "node": ">= 0.8" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/webpack-dev-server/node_modules/express": { - "version": "4.22.3", - "resolved": "https://registry.npmjs.org/express/-/express-4.22.3.tgz", - "integrity": "sha512-Bdcs4+3qlpVlx2NRn6fgX2Ue2/gGRaPeawebgclM0ERSCqDpA+owF1fdPwjJUTAJWMTuAaxjDf+hzb0/4eKvvw==", - "dev": true, - "license": "MIT", - "dependencies": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "~1.20.5", - "content-disposition": "~0.5.4", - "content-type": "~1.0.4", - "cookie": "~0.7.1", - "cookie-signature": "~1.0.6", - "debug": "2.6.9", - "depd": "2.0.0", - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "~1.3.1", - "fresh": "~0.5.2", - "http-errors": "~2.0.0", - "merge-descriptors": "1.0.3", - "methods": "~1.1.2", - "on-finished": "~2.4.1", - "parseurl": "~1.3.3", - "path-to-regexp": "~0.1.13", - "proxy-addr": "~2.0.7", - "qs": "~6.16.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "~0.19.0", - "serve-static": "~1.16.2", - "setprototypeof": "1.2.0", - "statuses": "~2.0.1", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" + "node_modules/typed-array-byte-offset": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz", + "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" }, "engines": { - "node": ">= 0.10.0" + "node": ">= 0.4" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/webpack-dev-server/node_modules/finalhandler": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.2.tgz", - "integrity": "sha512-aA4RyPcd3badbdABGDuTXCMTtOneUCAYH/gxoYRTZlIJdF0YPWuGqiAsIrhNnnqdXGswYk6dGujem4w80UJFhg==", + "node_modules/typed-array-length": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.6.tgz", + "integrity": "sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==", "dev": true, - "license": "MIT", "dependencies": { - "debug": "2.6.9", - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "on-finished": "~2.4.1", - "parseurl": "~1.3.3", - "statuses": "~2.0.2", - "unpipe": "~1.0.0" + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13", + "possible-typed-array-names": "^1.0.0" }, "engines": { - "node": ">= 0.8" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/webpack-dev-server/node_modules/fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "node_modules/typescript": { + "version": "5.9.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", + "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", "dev": true, - "license": "MIT", + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, "engines": { - "node": ">= 0.6" + "node": ">=14.17" } }, - "node_modules/webpack-dev-server/node_modules/http-proxy-middleware": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.10.tgz", - "integrity": "sha512-RKzRWNPxUZqbuk3BC5mGVJbBnWgr+diEnjJexIOytFbBzDy88Fbh/YvBr3DsNrl1jYAfjWfpATEv0NO35FDuPQ==", + "node_modules/unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", "dev": true, - "license": "MIT", "dependencies": { - "@types/http-proxy": "^1.17.8", - "http-proxy": "^1.18.1", - "is-glob": "^4.0.1", - "is-plain-obj": "^3.0.0", - "micromatch": "^4.0.2" - }, - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "@types/express": "^4.17.13" + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" }, - "peerDependenciesMeta": { - "@types/express": { - "optional": true - } + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/webpack-dev-server/node_modules/ipaddr.js": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.5.0.tgz", - "integrity": "sha512-aq+t5NAc+cS6rZQQVWC2x98CPqGtKKTMDd4Gaodv0wShnItdKg/51djkGJ1hqH+Oy0ivDftCbSLCQob8zso01w==", + "node_modules/undici": { + "version": "6.29.0", + "resolved": "https://registry.npmjs.org/undici/-/undici-6.29.0.tgz", + "integrity": "sha512-R+RODBqp6i2pPflGdq+xIOUkl+RNfGgHwoinecKu/JCuf2uO06cOKoDbI2P7Dn6KcswdKwrczbU6IYJ6K8X+wg==", "dev": true, "license": "MIT", "engines": { - "node": ">= 10" + "node": ">=18.17" } }, - "node_modules/webpack-dev-server/node_modules/merge-descriptors": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", - "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", + "node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": ">= 4.0.0" } }, - "node_modules/webpack-dev-server/node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", "dev": true, - "license": "MIT", - "bin": { - "mime": "cli.js" - }, "engines": { - "node": ">=4" + "node": ">= 0.8" } }, - "node_modules/webpack-dev-server/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "node_modules/update-browserslist-db": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.3.3.tgz", + "integrity": "sha512-pJ2sYawQS0R/WI928Gj5GlPhTGzbMelq0+4INtSYNDV9ErKJcX6xjGWkoG/VnB3dpUm00zALaqkrUD77pO5TDQ==", "dev": true, - "license": "MIT" + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } }, - "node_modules/webpack-dev-server/node_modules/open": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/open/-/open-10.2.0.tgz", - "integrity": "sha512-YgBpdJHPyQ2UE5x+hlSXcnejzAvD0b22U2OuAP+8OnlJT+PjWPxtgmGqKKc+RgTM63U9gN0YzrYc71R2WT/hTA==", + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "dev": true, - "license": "MIT", + "peer": true, "dependencies": { - "default-browser": "^5.2.1", - "define-lazy-prop": "^3.0.0", - "is-inside-container": "^1.0.0", - "wsl-utils": "^0.1.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "punycode": "^2.1.0" } }, - "node_modules/webpack-dev-server/node_modules/path-to-regexp": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.13.tgz", - "integrity": "sha512-A/AGNMFN3c8bOlvV9RreMdrv7jsmF9XIfDeCd87+I8RNg6s78BhJxMu69NEMHBSJFxKidViTEdruRwEk/WIKqA==", + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", "dev": true, - "license": "MIT" + "peer": true }, - "node_modules/webpack-dev-server/node_modules/send": { - "version": "0.19.2", - "resolved": "https://registry.npmjs.org/send/-/send-0.19.2.tgz", - "integrity": "sha512-VMbMxbDeehAxpOtWJXlcUS5E8iXh6QmN+BkRX1GARS3wRaXEEgzCcB10gTQazO42tpNIya8xIyNx8fll1OFPrg==", + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", "dev": true, - "license": "MIT", "dependencies": { - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "~0.5.2", - "http-errors": "~2.0.1", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "~2.4.1", - "range-parser": "~1.2.1", - "statuses": "~2.0.2" - }, - "engines": { - "node": ">= 0.8.0" + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" } }, - "node_modules/webpack-dev-server/node_modules/send/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true, - "license": "MIT" - }, - "node_modules/webpack-dev-server/node_modules/serve-static": { - "version": "1.16.3", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.3.tgz", - "integrity": "sha512-x0RTqQel6g5SY7Lg6ZreMmsOzncHFU7nhnRWkKgWuMTu5NN0DR5oruckMqRvacAN9d5w6ARnRBXl9xhDCgfMeA==", + "node_modules/validate-npm-package-name": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-7.0.2.tgz", + "integrity": "sha512-hVDIBwsRruT73PbK7uP5ebUt+ezEtCmzZz3F59BSr2F6OVFnJ/6h8liuvdLrQ88Xmnk6/+xGGuq+pG9WwTuy3A==", "dev": true, - "license": "MIT", - "dependencies": { - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "~0.19.1" - }, + "license": "ISC", "engines": { - "node": ">= 0.8.0" + "node": "^20.17.0 || >=22.9.0" } }, - "node_modules/webpack-dev-server/node_modules/statuses": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz", - "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==", + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", "dev": true, - "license": "MIT", "engines": { "node": ">= 0.8" } }, - "node_modules/webpack-dev-server/node_modules/ws": { - "version": "8.22.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.22.0.tgz", - "integrity": "sha512-Ydggc987+RO0AnWtZ/7Wq9FtNvcrL1b/RO0ud9mWjUPgDrsAAwQSF51sm2hm1XofbU/4jkpGEsLFsZZxU+1DOg==", + "node_modules/vectorious": { + "version": "6.1.12", + "resolved": "https://registry.npmjs.org/vectorious/-/vectorious-6.1.12.tgz", + "integrity": "sha512-agC4qbdhdVe3DE5FEUazXjE5JOwm6BHhSePij3IZQdYLttYr6nBl8zUi0ZHyQWhOgNqh0b8Qh8w4UUfVzgnXqw==", + "optionalDependencies": { + "nblas": "^2.1.11", + "nlapack": "^2.0.7" + } + }, + "node_modules/vite": { + "version": "7.3.6", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.3.6.tgz", + "integrity": "sha512-4XP60spRGjSZFf1qYH+dJIkK2znL3zQfl9KkOV9MkkRR/3Dls0dxaBsQPTloEc5BLXWPL9vsOxopxyKoMmDueg==", "dev": true, "license": "MIT", + "dependencies": { + "esbuild": "^0.27.0 || ^0.28.0", + "fdir": "^6.5.0", + "picomatch": "^4.0.3", + "postcss": "^8.5.6", + "rollup": "^4.43.0", + "tinyglobby": "^0.2.15" + }, + "bin": { + "vite": "bin/vite.js" + }, "engines": { - "node": ">=10.0.0" + "node": "^20.19.0 || >=22.12.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" }, "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" + "@types/node": "^20.19.0 || >=22.12.0", + "jiti": ">=1.21.0", + "less": "^4.0.0", + "lightningcss": "^1.21.0", + "sass": "^1.70.0", + "sass-embedded": "^1.70.0", + "stylus": ">=0.54.8", + "sugarss": "^5.0.0", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" }, "peerDependenciesMeta": { - "bufferutil": { + "@types/node": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { "optional": true }, - "utf-8-validate": { + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { "optional": true } } }, - "node_modules/webpack-dev-server/node_modules/wsl-utils": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/wsl-utils/-/wsl-utils-0.1.0.tgz", - "integrity": "sha512-h3Fbisa2nKGPxCpm89Hk33lBLsnaGBvctQopaBSOW/uIs6FTe1ATyAnKFJrzVs9vpGdsTe73WF3V4lIsk4Gacw==", + "node_modules/vitest": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-4.1.11.tgz", + "integrity": "sha512-fhACrNXUidIbGSBr5FlbuBkO7VWC1ZyLl0DO4CU2DrQoAPxX84Ysxs+HeGQpii5lZWV1Q4gBZTTu49mF+A6Edw==", "dev": true, "license": "MIT", "dependencies": { - "is-wsl": "^3.1.0" + "@vitest/expect": "4.1.11", + "@vitest/mocker": "4.1.11", + "@vitest/pretty-format": "4.1.11", + "@vitest/runner": "4.1.11", + "@vitest/snapshot": "4.1.11", + "@vitest/spy": "4.1.11", + "@vitest/utils": "4.1.11", + "es-module-lexer": "^2.0.0", + "expect-type": "^1.3.0", + "magic-string": "^0.30.21", + "obug": "^2.1.1", + "pathe": "^2.0.3", + "picomatch": "^4.0.3", + "std-env": "^4.0.0-rc.1", + "tinybench": "^2.9.0", + "tinyexec": "^1.0.2", + "tinyglobby": "^0.2.15", + "tinyrainbow": "^3.1.0", + "vite": "^6.0.0 || ^7.0.0 || ^8.0.0", + "why-is-node-running": "^2.3.0" + }, + "bin": { + "vitest": "vitest.mjs" }, "engines": { - "node": ">=18" + "node": "^20.0.0 || ^22.0.0 || >=24.0.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "@edge-runtime/vm": "*", + "@opentelemetry/api": "^1.9.0", + "@types/node": "^20.0.0 || ^22.0.0 || >=24.0.0", + "@vitest/browser-playwright": "4.1.11", + "@vitest/browser-preview": "4.1.11", + "@vitest/browser-webdriverio": "4.1.11", + "@vitest/coverage-istanbul": "4.1.11", + "@vitest/coverage-v8": "4.1.11", + "@vitest/ui": "4.1.11", + "happy-dom": "*", + "jsdom": "*", + "vite": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "@edge-runtime/vm": { + "optional": true + }, + "@opentelemetry/api": { + "optional": true + }, + "@types/node": { + "optional": true + }, + "@vitest/browser-playwright": { + "optional": true + }, + "@vitest/browser-preview": { + "optional": true + }, + "@vitest/browser-webdriverio": { + "optional": true + }, + "@vitest/coverage-istanbul": { + "optional": true + }, + "@vitest/coverage-v8": { + "optional": true + }, + "@vitest/ui": { + "optional": true + }, + "happy-dom": { + "optional": true + }, + "jsdom": { + "optional": true + }, + "vite": { + "optional": false + } } }, - "node_modules/webpack-merge": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-6.0.1.tgz", - "integrity": "sha512-hXXvrjtx2PLYx4qruKl+kyRSLc52V+cCvMxRjmKwoA+CBbbF5GfIBtR6kCvl0fYGqTUPKB+1ktVmTHqMOzgCBg==", + "node_modules/w3c-xmlserializer": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-6.0.0.tgz", + "integrity": "sha512-4Nsy8K5Tr6SPDH9jhKJOHf7ChDrc1zufZTVSF7x72hwuEXBqxqk9G6cK+K2NRUtB3iELRJqjXb4JPDMBjMTl2Q==", "dev": true, "license": "MIT", "dependencies": { - "clone-deep": "^4.0.1", - "flat": "^5.0.2", - "wildcard": "^2.0.1" + "xml-name-validator": "^5.0.0" }, "engines": { - "node": ">=18.0.0" + "node": "^22.22.2 || ^24.15.0 || >=26.0.0" } }, - "node_modules/webpack-sources": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.6.0.tgz", - "integrity": "sha512-EIMmPVvNI0CYXyRPp34F2Qk7W37/BZVZIofS6LAUnrNjCVahS+hO4mxwFJDjQjODTGZDtVzLYoN2+1dYkhk9qA==", + "node_modules/watchpack": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.5.1.tgz", + "integrity": "sha512-Zn5uXdcFNIA1+1Ei5McRd+iRzfhENPCe7LeABkJtNulSxjma+l7ltNx55BWZkRlwRnpOgHqxnjyaDgJnNXnqzg==", "dev": true, "license": "MIT", + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, "engines": { "node": ">=10.13.0" } }, - "node_modules/webpack-subresource-integrity": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/webpack-subresource-integrity/-/webpack-subresource-integrity-5.1.0.tgz", - "integrity": "sha512-sacXoX+xd8r4WKsy9MvH/q/vBtEHr86cpImXwyg74pFIpERKt6FmB8cXpeuh0ZLgclOlHI4Wcll7+R5L02xk9Q==", + "node_modules/wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", "dev": true, + "peer": true, "dependencies": { - "typed-assert": "^1.0.8" - }, - "engines": { - "node": ">= 12" - }, - "peerDependencies": { - "html-webpack-plugin": ">= 5.0.0-beta.1 < 6", - "webpack": "^5.12.0" - }, - "peerDependenciesMeta": { - "html-webpack-plugin": { - "optional": true - } + "defaults": "^1.0.3" } }, - "node_modules/webpack/node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true - }, - "node_modules/webpack/node_modules/watchpack": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.5.2.tgz", - "integrity": "sha512-6i/00NBjP4yGPs+caKSyRfpTF/8Torsu0MOW3mMzIbhgISFder8i7xbqgHlLMwJrdiN8ndBV3UA1/AfzPSr+jg==", + "node_modules/weak-lru-cache": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/weak-lru-cache/-/weak-lru-cache-1.2.2.tgz", + "integrity": "sha512-DEAoo25RfSYMuTGc9vPJzZcZullwIqRDSI9LOy+fkCJPi6hykCnfKaXTuPBDuXAUcqHXyOgFtHNp/kB2FjYHbw==", "dev": true, "license": "MIT", - "dependencies": { - "graceful-fs": "^4.1.2" - }, + "optional": true + }, + "node_modules/webidl-conversions": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-8.0.1.tgz", + "integrity": "sha512-BMhLD/Sw+GbJC21C/UgyaZX41nPt8bUTg+jWyDeg7e7YN4xOM05YPSIXceACnXVtqyEw/LMClUQMtMZ+PGGpqQ==", + "dev": true, + "license": "BSD-2-Clause", "engines": { - "node": ">=10.13.0" + "node": ">=20" } }, - "node_modules/websocket-driver": { - "version": "0.7.5", - "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.5.tgz", - "integrity": "sha512-ZL2+3c7kMBdIRCMz6l8jQMHyGVxj+UL+xVk74Ombiciboca8rHa15L86B19E5oh1pL9Ii/uj54gtsIrZGMo6zA==", + "node_modules/whatwg-mimetype": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-5.0.0.tgz", + "integrity": "sha512-sXcNcHOC51uPGF0P/D4NVtrkjSU2fNsm9iog4ZvZJsL3rjoDAzXZhkm2MWt1y+PUdggKAYVoMAIYcs78wJ51Cw==", "dev": true, - "license": "Apache-2.0", - "dependencies": { - "http-parser-js": ">=0.5.1", - "safe-buffer": ">=5.1.0", - "websocket-extensions": ">=0.1.1" - }, + "license": "MIT", "engines": { - "node": ">=0.8.0" + "node": ">=20" } }, - "node_modules/websocket-extensions": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", - "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", + "node_modules/whatwg-url": { + "version": "17.1.2", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-17.1.2.tgz", + "integrity": "sha512-TEZA+Zqxin7Jjsm2cjRohCmen5awh+hT6Zi3VZdqZlNRk7zvOI/9WpBFg/DWlA56bWnzwm6DuB8NS0EsxQH9uQ==", "dev": true, - "license": "Apache-2.0", + "license": "MIT", + "dependencies": { + "@exodus/bytes": "^1.15.1", + "tr46": "^6.0.0", + "webidl-conversions": "^8.0.1" + }, "engines": { - "node": ">=0.8.0" + "node": "^22.14.0 || >=24.0.0" } }, "node_modules/which": { @@ -19275,12 +13017,22 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/wildcard": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz", - "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==", + "node_modules/why-is-node-running": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz", + "integrity": "sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==", "dev": true, - "license": "MIT" + "license": "MIT", + "dependencies": { + "siginfo": "^2.0.0", + "stackback": "0.0.2" + }, + "bin": { + "why-is-node-running": "cli.js" + }, + "engines": { + "node": ">=8" + } }, "node_modules/wrap-ansi": { "version": "6.2.0", @@ -19339,43 +13091,22 @@ "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", "dev": true }, - "node_modules/ws": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", - "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", + "node_modules/xml-name-validator": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-5.0.0.tgz", + "integrity": "sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==", "dev": true, + "license": "Apache-2.0", "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } + "node": ">=18" } }, - "node_modules/wsl-utils": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/wsl-utils/-/wsl-utils-0.3.1.tgz", - "integrity": "sha512-g/eziiSUNBSsdDJtCLB8bdYEUMj4jR7AGeUo96p/3dTafgjHhpF4RiCFPiRILwjQoDXx5MqkBr4fwWtR3Ky4Wg==", + "node_modules/xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", "dev": true, - "license": "MIT", - "dependencies": { - "is-wsl": "^3.1.0", - "powershell-utils": "^0.1.0" - }, - "engines": { - "node": ">=20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "license": "MIT" }, "node_modules/y18n": { "version": "5.0.8", @@ -19475,19 +13206,6 @@ "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/yoctocolors": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/yoctocolors/-/yoctocolors-2.2.0.tgz", diff --git a/package.json b/package.json index f298e6c..101957f 100644 --- a/package.json +++ b/package.json @@ -4,12 +4,13 @@ "scripts": { "ng": "ng", "start": "ng serve", - "build": "ng build", + "build": "npm run build:libs && ng build ngx-reactome-base", "watch": "ng build --watch --configuration development", - "test": "ng test", + "test": "ng test ngx-reactome-cytoscape-style --watch=false && ng test ngx-reactome-diagram --watch=false && ng test ngx-reactome-base --watch=false", "build-style": "ng build ngx-reactome-style", "build-diagram": "ng build ngx-reactome-diagram && cd dist/ngx-reactome-diagram && npm pack", - "build-cytoscape-style": "ng build ngx-reactome-cytoscape-style && cd dist/ngx-reactome-cytoscape-style && npm pack" + "build-cytoscape-style": "ng build ngx-reactome-cytoscape-style && cd dist/ngx-reactome-cytoscape-style && npm pack", + "build:libs": "ng build ngx-reactome-cytoscape-style && ng build ngx-reactome-style && ng build ngx-reactome-diagram" }, "private": false, "dependencies": { @@ -35,22 +36,17 @@ "zone.js": "~0.15.0" }, "devDependencies": { - "@angular-devkit/build-angular": "^21.2.24", + "@angular/build": "^21.2.24", "@angular/cli": "^21.2.24", "@angular/compiler-cli": "^21.2.25", "@types/chroma-js": "^3.1.2", "@types/cytoscape-fcose": "^2.2.4", - "@types/jasmine": "~4.3.0", "@types/lodash": "^4.14.202", "angular-cli-ghpages": "^1.0.6", - "jasmine-core": "~4.6.0", - "karma": "~6.4.0", - "karma-chrome-launcher": "~3.2.0", - "karma-coverage": "~2.2.0", - "karma-jasmine": "~5.1.0", - "karma-jasmine-html-reporter": "~2.1.0", + "jsdom": "^30.1.1", "ng-packagr": "^21.2.7", "npm-run-all": "^4.1.1", - "typescript": "~5.9.3" + "typescript": "~5.9.3", + "vitest": "^4.1.11" } } diff --git a/projects/ngx-reactome-cytoscape-style/README.md b/projects/ngx-reactome-cytoscape-style/README.md index d98bdd0..099de94 100644 --- a/projects/ngx-reactome-cytoscape-style/README.md +++ b/projects/ngx-reactome-cytoscape-style/README.md @@ -233,7 +233,7 @@ After building your library with `ng build ngx-reactome-cytoscape-style`, go to ### Running unit tests -Run `ng test reactome-cytoscape-style` to execute the unit tests via [Karma](https://karma-runner.github.io). +Run `ng test ngx-reactome-cytoscape-style` to run the unit tests with Vitest. ### Further help diff --git a/projects/ngx-reactome-cytoscape-style/tsconfig.spec.json b/projects/ngx-reactome-cytoscape-style/tsconfig.spec.json index ce7048b..ff608bb 100644 --- a/projects/ngx-reactome-cytoscape-style/tsconfig.spec.json +++ b/projects/ngx-reactome-cytoscape-style/tsconfig.spec.json @@ -4,7 +4,7 @@ "compilerOptions": { "outDir": "../../out-tsc/spec", "types": [ - "jasmine" + "vitest/globals" ] }, "include": [ diff --git a/projects/ngx-reactome-diagram/README.md b/projects/ngx-reactome-diagram/README.md index 60929ec..a068e7d 100644 --- a/projects/ngx-reactome-diagram/README.md +++ b/projects/ngx-reactome-diagram/README.md @@ -232,7 +232,7 @@ After building your library with `ng build reactome-cytoscape-style`, go to the ### Running unit tests -Run `ng test reactome-cytoscape-style` to execute the unit tests via [Karma](https://karma-runner.github.io). +Run `ng test ngx-reactome-diagram` to run the unit tests with Vitest. ### Further help diff --git a/projects/ngx-reactome-diagram/src/lib/diagram-iterator/diagram-iterator.component.html b/projects/ngx-reactome-diagram/src/lib/diagram-iterator/diagram-iterator.component.html deleted file mode 100644 index f515a4e..0000000 --- a/projects/ngx-reactome-diagram/src/lib/diagram-iterator/diagram-iterator.component.html +++ /dev/null @@ -1,13 +0,0 @@ -
- - - - - Diagram ID - - - - -
- - diff --git a/projects/ngx-reactome-diagram/src/lib/diagram-iterator/diagram-iterator.component.scss b/projects/ngx-reactome-diagram/src/lib/diagram-iterator/diagram-iterator.component.scss deleted file mode 100644 index e69de29..0000000 diff --git a/projects/ngx-reactome-diagram/src/lib/diagram-iterator/diagram-iterator.component.spec.ts b/projects/ngx-reactome-diagram/src/lib/diagram-iterator/diagram-iterator.component.spec.ts deleted file mode 100644 index a92f76c..0000000 --- a/projects/ngx-reactome-diagram/src/lib/diagram-iterator/diagram-iterator.component.spec.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { ComponentFixture, TestBed } from '@angular/core/testing'; - -import { DiagramIteratorComponent } from './diagram-iterator.component'; - -describe('DiagramIteratorComponent', () => { - let component: DiagramIteratorComponent; - let fixture: ComponentFixture; - - beforeEach(() => { - TestBed.configureTestingModule({ - declarations: [DiagramIteratorComponent] - }); - fixture = TestBed.createComponent(DiagramIteratorComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/projects/ngx-reactome-diagram/src/lib/diagram-iterator/diagram-iterator.component.ts b/projects/ngx-reactome-diagram/src/lib/diagram-iterator/diagram-iterator.component.ts deleted file mode 100644 index 33163b4..0000000 --- a/projects/ngx-reactome-diagram/src/lib/diagram-iterator/diagram-iterator.component.ts +++ /dev/null @@ -1,47 +0,0 @@ -import {AfterViewInit, Component, ViewChild} from '@angular/core'; -import {ActivatedRoute, Router} from "@angular/router"; -import {HttpClient} from "@angular/common/http"; -import {DiagramComponent} from "../diagram/diagram.component"; -import {combineLatest} from "rxjs"; - -@Component({ - selector: 'cr-diagram-iterator', - templateUrl: './diagram-iterator.component.html', - styleUrls: ['./diagram-iterator.component.scss'], - standalone: false -}) -export class DiagramIteratorComponent implements AfterViewInit { - - @ViewChild('diagram') - diagram!: DiagramComponent; - - diagramId: string = ''; - - diagramIndex: number = 0; - diagramIds: string[] = []; - - constructor(private route: ActivatedRoute, private client: HttpClient, private router: Router) { - } - - ngAfterViewInit(): void { - combineLatest([ - this.route.params, - this.client.get('/assets/data/diagrams-dev-no-ehld.txt', {responseType: "text"}) - ]).subscribe(([params, diagrams]) => { - this.diagramIds = diagrams.split('\n').filter(s => s.length !== 0); - this.diagramId = this.diagramIds[0]; - }) - } - - next() { - this.diagramIndex++; - if (this.diagramIndex > this.diagramIds.length - 1) this.diagramIndex = 0; - this.diagramId = this.diagramIds[this.diagramIndex]; - } - previous() { - this.diagramIndex--; - if (this.diagramIndex < 0) this.diagramIndex = this.diagramIds.length - 1; - this.diagramId = this.diagramIds[this.diagramIndex]; - } - -} diff --git a/projects/ngx-reactome-diagram/src/lib/diagram/diagram.component.spec.ts b/projects/ngx-reactome-diagram/src/lib/diagram/diagram.component.spec.ts index b7bc1ff..c73822d 100644 --- a/projects/ngx-reactome-diagram/src/lib/diagram/diagram.component.spec.ts +++ b/projects/ngx-reactome-diagram/src/lib/diagram/diagram.component.spec.ts @@ -1,21 +1,29 @@ -import { ComponentFixture, TestBed } from '@angular/core/testing'; +import { TestBed } from '@angular/core/testing'; +import { provideHttpClient } from '@angular/common/http'; +import { provideHttpClientTesting } from '@angular/common/http/testing'; +import { provideRouter } from '@angular/router'; import { DiagramComponent } from './diagram.component'; +import { DIAGRAM_CONFIG_TOKEN } from '../services/diagram.service'; describe('DiagramComponent', () => { - let component: DiagramComponent; - let fixture: ComponentFixture; - + // jsdom has no matchMedia, which the theme reads. beforeEach(() => { - TestBed.configureTestingModule({ - declarations: [DiagramComponent] - }); - fixture = TestBed.createComponent(DiagramComponent); - component = fixture.componentInstance; - fixture.detectChanges(); + vi.stubGlobal('matchMedia', (media: string) => ({ media, matches: false })); }); + afterEach(() => vi.unstubAllGlobals()); - it('should create', () => { - expect(component).toBeTruthy(); + it('is created with what it injects', () => { + TestBed.configureTestingModule({ + imports: [DiagramComponent], + providers: [ + provideRouter([]), + provideHttpClient(), + provideHttpClientTesting(), + { provide: DIAGRAM_CONFIG_TOKEN, useValue: {} }, + ], + }); + const fixture = TestBed.createComponent(DiagramComponent); + expect(fixture.componentInstance).toBeTruthy(); }); }); diff --git a/projects/ngx-reactome-diagram/src/lib/services/diagram-state.service.spec.ts b/projects/ngx-reactome-diagram/src/lib/services/diagram-state.service.spec.ts index 115ac16..3d473ea 100644 --- a/projects/ngx-reactome-diagram/src/lib/services/diagram-state.service.spec.ts +++ b/projects/ngx-reactome-diagram/src/lib/services/diagram-state.service.spec.ts @@ -1,16 +1,36 @@ import { TestBed } from '@angular/core/testing'; +import { provideRouter, Router } from '@angular/router'; import { DiagramStateService } from './diagram-state.service'; -describe('BrowserStateServiceService', () => { +describe('DiagramStateService', () => { let service: DiagramStateService; + let router: Router; beforeEach(() => { - TestBed.configureTestingModule({}); + TestBed.configureTestingModule({ providers: [provideRouter([])] }); service = TestBed.inject(DiagramStateService); + router = TestBed.inject(Router); }); - it('should be created', () => { - expect(service).toBeTruthy(); + it('reads what to flag from the address, numbers as numbers', async () => { + await router.navigateByUrl('/?FLG=PKM,123'); + expect(service.get('flag')).toEqual(['PKM', 123]); + }); + + it('tells its subscribers when the address changes the state', async () => { + const flagged: unknown[] = []; + service.onChange.flag$.subscribe((flag) => flagged.push(flag)); + await router.navigateByUrl('/?FLG=PKM'); + expect(flagged.at(-1)).toEqual(['PKM']); + }); + + it('does not tell them when the address leaves the state as it was', async () => { + let emitted = 0; + await router.navigateByUrl('/?select=R-HSA-1'); + service.state$.subscribe(() => emitted++); + await router.navigateByUrl('/?select=R-HSA-1&unrelated=1'); + // Once on subscribing, and not again. + expect(emitted).toBe(1); }); }); diff --git a/projects/ngx-reactome-diagram/src/lib/services/diagram-state.service.ts b/projects/ngx-reactome-diagram/src/lib/services/diagram-state.service.ts index 7dc2ae5..0f3e9f1 100644 --- a/projects/ngx-reactome-diagram/src/lib/services/diagram-state.service.ts +++ b/projects/ngx-reactome-diagram/src/lib/services/diagram-state.service.ts @@ -65,11 +65,14 @@ export class DiagramStateService { const formerValue = param.value; if (isArray(param.value)) { const rawValue = params.get(token)!; - param.value = rawValue.split(',').map(v => v.charAt(0).match(/d/) ? parseInt(v) : v); + // A database id is a number; anything else, such as a gene name, a string. + param.value = rawValue.split(',').map(v => /^\d+$/.test(v) ? parseInt(v) : v); } else { param.value = params.get(token)!; } - change = change || formerValue == param.value; + // Changed when it differs from before. This was inverted, so a state + // read from the address reached no one and an unchanged one did. + change = change || formerValue?.toString() !== param.value?.toString(); } } if (change) this._state$.next(this.state); diff --git a/projects/ngx-reactome-diagram/src/lib/services/diagram.service.spec.ts b/projects/ngx-reactome-diagram/src/lib/services/diagram.service.spec.ts index e272600..d59ba3e 100644 --- a/projects/ngx-reactome-diagram/src/lib/services/diagram.service.spec.ts +++ b/projects/ngx-reactome-diagram/src/lib/services/diagram.service.spec.ts @@ -1,34 +1,36 @@ -import {TestBed} from '@angular/core/testing'; +import { TestBed } from '@angular/core/testing'; +import { provideHttpClient } from '@angular/common/http'; +import { HttpTestingController, provideHttpClientTesting } from '@angular/common/http/testing'; -import {DiagramService} from './diagram.service'; -import {HttpClient, HttpClientModule} from "@angular/common/http"; -import {concatMap, delay, from, interval, tap, zip} from "rxjs"; +import { DIAGRAM_CONFIG_TOKEN, DiagramService } from './diagram.service'; -describe('DiagramService', () => { - let service: DiagramService; - let client: HttpClient; - - beforeEach(() => { - TestBed.configureTestingModule({ - imports: [HttpClientModule], - teardown: {destroyAfterEach: false} - }); - service = TestBed.inject(DiagramService); - client = TestBed.inject(HttpClient); +function setUp(config: unknown) { + TestBed.configureTestingModule({ + providers: [ + provideHttpClient(), + provideHttpClientTesting(), + { provide: DIAGRAM_CONFIG_TOKEN, useValue: config }, + ], }); + return { + service: TestBed.inject(DiagramService), + http: TestBed.inject(HttpTestingController), + }; +} - it('should be created', () => { - expect(service).toBeTruthy(); +describe('DiagramService', () => { + it('loads a diagram and its graph from the configured address', () => { + const { service, http } = setUp({ diagramUrl: 'https://example.org/diagram' }); + service.getDiagram('R-HSA-1').subscribe(); + http.expectOne('https://example.org/diagram/R-HSA-1.json'); + http.expectOne('https://example.org/diagram/R-HSA-1.graph.json'); }); - it("shouldn't have too small edge to be rendered", () => { - zip( - interval(50), - client.get('/assets/data/diagrams-prod.txt', {responseType: "text"}).pipe( - concatMap(ids => from(ids.split('\n').filter(s => s.length !== 0))) - ) - ).pipe( - tap(([_, id]) => service.getDiagram(id).subscribe()), - ).subscribe(); - }) + it('loads from its default address when the configuration does not give one', () => { + const { service, http } = setUp({}); + service.getDiagram('R-HSA-1').subscribe(); + const requested = http.match(() => true).map((r) => r.request.url); + expect(requested.length).toBe(2); + for (const url of requested) expect(url).toMatch(/^https:\/\//); + }); }); diff --git a/projects/ngx-reactome-diagram/src/lib/services/diagram.service.ts b/projects/ngx-reactome-diagram/src/lib/services/diagram.service.ts index b83be51..bdc8211 100644 --- a/projects/ngx-reactome-diagram/src/lib/services/diagram.service.ts +++ b/projects/ngx-reactome-diagram/src/lib/services/diagram.service.ts @@ -77,7 +77,9 @@ export class DiagramService { constructor(private http: HttpClient, @Inject(DIAGRAM_CONFIG_TOKEN) private config: any) { // This is a service object. Therefore, we have to extract configure here if any - this.diagramUrl = this.config?.diagramUrl; + // The default stands when the configuration does not name an address; it + // was overwritten with undefined, and every request went to "undefined/...". + this.diagramUrl = this.config?.diagramUrl ?? this.diagramUrl; } nodeTypeMap = new Map([ diff --git a/projects/ngx-reactome-diagram/tsconfig.spec.json b/projects/ngx-reactome-diagram/tsconfig.spec.json index ce7048b..ff608bb 100644 --- a/projects/ngx-reactome-diagram/tsconfig.spec.json +++ b/projects/ngx-reactome-diagram/tsconfig.spec.json @@ -4,7 +4,7 @@ "compilerOptions": { "outDir": "../../out-tsc/spec", "types": [ - "jasmine" + "vitest/globals" ] }, "include": [ diff --git a/projects/ngx-reactome-style/README.md b/projects/ngx-reactome-style/README.md index d86ed9d..8a15583 100644 --- a/projects/ngx-reactome-style/README.md +++ b/projects/ngx-reactome-style/README.md @@ -18,7 +18,7 @@ After building your library with `ng build ngx-reactome-style`, go to the dist f ## Running unit tests -Run `ng test ngx-reactome-style` to execute the unit tests via [Karma](https://karma-runner.github.io). +This library is Sass only and has no unit tests. ## Further help diff --git a/projects/ngx-reactome-style/tsconfig.spec.json b/projects/ngx-reactome-style/tsconfig.spec.json deleted file mode 100644 index ce7048b..0000000 --- a/projects/ngx-reactome-style/tsconfig.spec.json +++ /dev/null @@ -1,14 +0,0 @@ -/* To learn more about this file see: https://angular.io/config/tsconfig. */ -{ - "extends": "../../tsconfig.json", - "compilerOptions": { - "outDir": "../../out-tsc/spec", - "types": [ - "jasmine" - ] - }, - "include": [ - "**/*.spec.ts", - "**/*.d.ts" - ] -} diff --git a/tsconfig.json b/tsconfig.json index 1535d90..639bb42 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -39,10 +39,6 @@ "enableI18nLegacyMessageIdFormat": false, "strictInjectionParameters": true, "strictInputAccessModifiers": true, - "strictTemplates": true, - "typeRoots": [ - "node_modules/@types", - "node_modules/ngx-reactome-cytoscape-style/types" - ] + "strictTemplates": true } } diff --git a/tsconfig.spec.json b/tsconfig.spec.json index be7e9da..ef606cb 100644 --- a/tsconfig.spec.json +++ b/tsconfig.spec.json @@ -4,7 +4,7 @@ "compilerOptions": { "outDir": "./out-tsc/spec", "types": [ - "jasmine" + "vitest/globals" ] }, "include": [ From 9a6d858293e299ad6597eeb23f77d2f145d4418b Mon Sep 17 00:00:00 2001 From: Adam Wright Date: Sat, 3 Oct 2026 15:14:40 +0000 Subject: [PATCH 46/49] Lint as WebsiteAngular does, and tighten the compiler ESLint with WebsiteAngular's rules (typescript-eslint, angular-eslint): rules that catch bugs, or that the code is clean of, are errors; the rest, mostly `any` flowing through the code, are warnings held at lint-baseline.json by scripts/check-lint.mjs, which fails when any rule's count rises. `npm run check:lint` runs it. The Angular migrations WebsiteAngular has made (inject, signals, output()) are counted warnings here until this code makes them. The 14 errors are fixed: a floating promise, unused variables, imports and a never-called function, optional chains, and two deprecated APIs. The diagram library carried an app's leftovers -- a main.ts importing an app.module that no longer exists, index.html, favicon, styles and a theme -- none used by the build; they are removed. @angular/animations was used only by the deprecated provider and is removed with it. tsconfig adds noUnusedLocals, noUnusedParameters, noUncheckedSideEffectImports and isolatedModules, and Angular's typeCheckHostBindings, strictStandalone and extended diagnostics as errors; their findings, five unused declarations, are fixed. Co-Authored-By: Claude Opus 5.5 --- eslint.config.js | 173 + lint-baseline.json | 21 + package-lock.json | 8832 ++++++++++------- package.json | 9 +- projects/ngx-reactome-diagram/src/favicon.ico | Bin 948 -> 0 bytes projects/ngx-reactome-diagram/src/index.html | 18 - .../src/lib/diagram/diagram.component.ts | 15 +- .../src/lib/services/diagram-state.service.ts | 4 +- .../src/lib/services/diagram.service.ts | 36 +- projects/ngx-reactome-diagram/src/main.ts | 7 - projects/ngx-reactome-diagram/src/styles.scss | 9 - .../src/theme/_palette.scss | 233 - .../src/theme/_variables.scss | 114 - .../src/theme/custom-theme.scss | 144 - .../src/theme/theme-helper.scss | 36 - scripts/check-lint.mjs | 167 + scripts/is-entry.mjs | 22 + src/app/app.config.ts | 3 +- tsconfig.json | 15 +- 19 files changed, 5787 insertions(+), 4071 deletions(-) create mode 100644 eslint.config.js create mode 100644 lint-baseline.json delete mode 100644 projects/ngx-reactome-diagram/src/favicon.ico delete mode 100644 projects/ngx-reactome-diagram/src/index.html delete mode 100644 projects/ngx-reactome-diagram/src/main.ts delete mode 100644 projects/ngx-reactome-diagram/src/styles.scss delete mode 100644 projects/ngx-reactome-diagram/src/theme/_palette.scss delete mode 100644 projects/ngx-reactome-diagram/src/theme/_variables.scss delete mode 100644 projects/ngx-reactome-diagram/src/theme/custom-theme.scss delete mode 100644 projects/ngx-reactome-diagram/src/theme/theme-helper.scss create mode 100644 scripts/check-lint.mjs create mode 100644 scripts/is-entry.mjs diff --git a/eslint.config.js b/eslint.config.js new file mode 100644 index 0000000..8f44c03 --- /dev/null +++ b/eslint.config.js @@ -0,0 +1,173 @@ +// @ts-check +/** + * Lint configuration, the same as reactome/WebsiteAngular's, where these + * libraries were developed. + * + * error - rules that catch bugs, or that the code is already clean of. A + * violation fails the build. + * warn - the rest: style, and rules with too many existing violations to + * fix at once (mostly `any` flowing through the code). They are + * counted against lint-baseline.json by scripts/check-lint.mjs, + * which fails when a count goes up, so they only shrink. + * + * The Angular migrations WebsiteAngular has completed -- inject(), signal + * inputs and queries, output() -- are warnings here until this code makes them. + */ +const eslint = require('@eslint/js'); +const tseslint = require('typescript-eslint'); +const angular = require('angular-eslint'); + +module.exports = tseslint.config( + { + // Generated, vendored, or build output: nothing to say about it. + ignores: [ + '**/dist/**', + '**/node_modules/**', + '**/.angular/**', + '**/out-tsc/**', + '**/coverage/**', + '**/*.d.ts', + ], + }, + { + files: ['**/*.ts'], + languageOptions: { + parserOptions: { + // projectService rather than a fixed `project` list: this is a + // multi-project workspace, and pointing at tsconfig.app.json alone left + // 178 files -- every library, every spec -- unparseable and therefore + // unlinted. + projectService: true, + tsconfigRootDir: __dirname, + }, + }, + extends: [ + eslint.configs.recommended, + ...tseslint.configs.recommended, + ...angular.configs.tsRecommended, + ], + processor: angular.processInlineTemplates, + // Severity here means one thing: whether the codebase is already clean of + // it. Rules with no existing violations stay errors, so a new one fails the + // build immediately. Rules that already have violations are warnings, + // counted against a baseline by scripts/check-lint.mjs so they can only go + // down. Fix a rule's last violation and it should be promoted to error. + rules: { + // Already clean -- left as errors by the recommended sets. + 'no-empty': ['error', { allowEmptyCatch: true }], + + // Now clean, so promoted to error: a promise nobody handles swallows its + // own failure, which is how a broken request renders an empty page with a + // clean console. All 58 were dealt with, so a new one is a regression. + '@typescript-eslint/no-floating-promises': 'error', + '@typescript-eslint/no-misused-promises': 'error', + // TypeScript's noUnusedLocals/noUnusedParameters cover the app and the + // libraries; this covers what no tsconfig does (specs, e2e, scripts). + '@typescript-eslint/no-unused-vars': [ + 'error', + { argsIgnorePattern: '^_', varsIgnorePattern: '^_', caughtErrors: 'none' }, + ], + '@typescript-eslint/no-explicit-any': 'warn', + '@typescript-eslint/no-non-null-assertion': 'warn', + // `any` flowing through the code: an API answer read as any, then passed, + // returned or dereferenced as if its shape were known. Warned, and held + // at today's count rule by rule (scripts/check-lint.mjs), so new code + // types what it reads while the existing ones (990, tests and e2e + // included) are worked down. + '@typescript-eslint/no-unsafe-assignment': 'warn', + '@typescript-eslint/no-unsafe-member-access': 'warn', + '@typescript-eslint/no-unsafe-call': 'warn', + '@typescript-eslint/no-unsafe-return': 'warn', + '@typescript-eslint/no-unsafe-argument': 'warn', + '@typescript-eslint/no-empty-object-type': 'warn', + '@typescript-eslint/no-namespace': 'warn', + '@typescript-eslint/no-unused-expressions': 'warn', + '@typescript-eslint/no-require-imports': 'warn', + 'prefer-const': 'warn', + 'no-useless-escape': 'warn', + // Migrated in full with ng generate @angular/core:inject-migration, so + // any new constructor injection is a step backwards. + '@angular-eslint/prefer-inject': 'warn', + // Migrated in full (signal inputs, outputs and queries, by Angular's own + // migrations, and every signal field readonly), so a decorator input or + // a reassignable signal field is new. + '@angular-eslint/prefer-signals': 'warn', + '@angular-eslint/prefer-output-emitter-ref': 'warn', + // Every deprecated API the code called has been replaced, so any use of + // one is new. Deprecated is how Angular, and the libraries, say what the + // next major version removes. + '@typescript-eslint/no-deprecated': 'error', + // A thrown string has no stack, and Angular does not wait for an async + // lifecycle hook, so its errors escape. The code has neither. + '@typescript-eslint/only-throw-error': 'error', + '@typescript-eslint/prefer-promise-reject-errors': 'error', + '@typescript-eslint/await-thenable': 'error', + // `a && a.b` guards one thing and says it twice; the rule rewrites only + // where the result cannot change, and each of the rest was checked by hand. + '@typescript-eslint/prefer-optional-chain': 'error', + // An object in a template literal becomes "[object Object]", an array + // "a,b" -- which is how a two-species filter put "9606,10090" into the + // PDF report's address and got a 404. + '@typescript-eslint/restrict-template-expressions': 'error', + // A switch over a union with no default that misses a member. A default + // branch counts as handling the rest: that is its job. + '@typescript-eslint/switch-exhaustiveness-check': [ + 'error', + { considerDefaultExhaustiveForUnions: true }, + ], + '@angular-eslint/no-async-lifecycle-method': 'error', + '@angular-eslint/prefer-standalone': 'warn', + '@angular-eslint/no-output-native': 'warn', + '@angular-eslint/no-input-rename': 'warn', + // All twelve removed, so a new empty hook is a new mistake. + '@angular-eslint/no-empty-lifecycle-method': 'error', + '@angular-eslint/use-lifecycle-interface': 'warn', + '@typescript-eslint/ban-ts-comment': 'warn', + '@typescript-eslint/no-wrapper-object-types': 'warn', + '@typescript-eslint/no-extra-non-null-assertion': 'warn', + '@typescript-eslint/prefer-as-const': 'warn', + '@angular-eslint/no-output-rename': 'warn', + 'no-useless-assignment': 'warn', + 'no-unused-vars': 'warn', + 'no-empty-pattern': 'warn', + }, + }, + { + files: ['**/*.html'], + extends: [...angular.configs.templateRecommended], + rules: { + // All nine were same-type comparisons, so `===` was a no-op change; a new + // `==` is a new chance of coercion. + '@angular-eslint/template/eqeqeq': 'error', + // Catches `!(value | async)`, which is truthy while the observable is + // still pending. The four there were meant exactly that, and now say so: + // `(value | async) !== true`. (The rule's own `=== false` would not be the + // same -- it is false while pending.) + '@angular-eslint/template/no-negated-async': 'error', + '@angular-eslint/template/prefer-control-flow': 'warn', + // A